Manuel PHP

Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Philip Olson
Georg Richter
Damien Seguy
Jakub Vrana

Edited by

Gabor Hojtsy

Ce fichier a été généré : Sat Apr 07 00:10:15 2007
Allez sur http://www.php.net/docs.php pour récupérer la version actuelle.

Copyright © 1997 - 2007 le groupe de documentation PHP


Manuel PHP

Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Philip Olson
Georg Richter
Damien Seguy
Jakub Vrana
Et bien d'autres
Avec, pour la traduction (par ordre alphabétique) :
Mehdi Achour
Vincent Briet
Jean-Sébastien Goupil
David Manusset
Guillaume Plessis
Damien Seguy
Yannick Torrès

2007-04-06

Copyright © 1997-2007 PHP Documentation Group

Préface
Auteurs et Contributeurs
I. Au moment de commencer
1. Introduction
2. Une introduction à PHP
II. Installation et configuration
3. Considérations générales sur l'installation
4. Installation sur les systèmes UNIX
5. Installation sur un système Mac OS X
6. Installation sur les système Windows
7. Installation d'extensions PECL
8. Des problèmes ?
9. Configuration
III. Référence du langage
10. La syntaxe de base
11. Les types
12. Les variables
13. Les constantes
14. Les expressions
15. Les opérateurs
16. Les structures de contrôle
17. Les fonctions
18. Les classes et les objets (PHP 4)
19. Les classes et les objets (PHP 5)
20. Les exceptions
21. Les références
IV. Sécurité
22. Introduction
23. Considérations générales
24. Binaires CGI
25. Installé en tant que module Apache
26. Sécurité des fichiers
27. Sécurité des bases de données
28. Rapport d'erreurs
29. Utilisation des variables super-globales
30. Données transmises par les internautes
31. Guillemets magiques
32. Masquer PHP
33. Être à jour
V. Caractéristiques
34. Identification HTTP avec PHP
35. Cookies
36. Sessions
37. Utiliser les XForms
38. Gestion des chargements de fichiers
39. Utilisation des fichiers à distance
40. Gestion des connexions
41. Connexions persistantes aux bases de données
42. Safe mode
43. Utiliser PHP en ligne de commande
VI. Référence des fonctions
I. Fonctions .NET
II. Fonctions Apache
III. Alternative PHP Cache
IV. Débogueur avancé pour PHP
V. Tableaux
VI. Aspell (Obsolète)
VII. Nombres de grande taille BCMath
VIII. Compilateur bytecode pour PHP
IX. Compression Bzip2
X. Calendrier
XI. Paiement CCVS (Obsolète)
XII. Classes et Objets
XIII. Fonctions Classkit
XIV. Fonctions ClibPDF
XV. COM et .Net (Windows)
XVI. Crack
XVII. Caractères
XVIII. CURL
XIX. Paiement Cybercash
XX. Fonctions Crédit Mutuel CyberMUT
XXI. Cyrus IMAP
XXII. Dates et heures
XXIII. Fonctions DB++
XXIV. DBA
XXV. dBase
XXVI. DBM (Obsolète)
XXVII. Fonctions dbx
XXVIII. Direct IO
XXIX. Accès aux dossiers
XXX. Fonctions DOM
XXXI. Fonctions DOM XML
XXXII. Fonctions enchant
XXXIII. Gestion des erreurs
XXXIV. EXIF
XXXV. Fonctions Expect
XXXVI. Fonctions de monitorage d'altération de fichiers
XXXVII. Forms Data Format
XXXVIII. Fonctions Fileinfo
XXXIX. Fonctions filePro
XL. Système de fichiers
XLI. Fonctions Filter
XLII. Fonctions Firebird/InterBase
XLIII. Fonctions Firebird/Interbase (PDO_FIREBIRD)
XLIV. Fonctions FriBiDi
XLV. FrontBase
XLVI. Fonctions FTP
XLVII. Fonctions
XLVIII. Fonctions GeoIP
XLIX. Fonctions Gettext
L. Fonctions GMP
LI. gnupg Fonctions
LII. Net_Gopher
LIII. Haru PDF Functions
LIV. Fonctions hash
LV. HTTP
LVI. Hyperwave
LVII. Hyperwave API
LVIII. i18n Fonctions
LIX. Fonctions IBM (PDO_IBM)
LX. Fonctions IBM DB2, Cloudscape et Apache Derby
LXI. ICAP
LXII. Iconv
LXIII. Fonctions ID3
LXIV. Fonctions d'administration d'IIS
LXV. Images
LXVI. Image magick Functions
LXVII. IMAP
LXVIII. Informix
LXIX. Fonctions Informix (PDO_INFORMIX)
LXX. Ingres II
LXXI. IRC
LXXII. Intégration de Java avec PHP
LXXIII. Fonctions JSON
LXXIV. KADM5
LXXV. LDAP
LXXVI. libxml
LXXVII. Lotus Notes
LXXVIII. Fonctions LZF
LXXIX. Mail
LXXX. Traitement d'Email
LXXXI. Mathématiques
LXXXII. MaxDB PHP Extension
LXXXIII. MCAL
LXXXIV. chiffrement mcrypt
LXXXV. Fonctions de paiement MCVE (Monetra)
LXXXVI. Fonctions Memcache
LXXXVII. Hash
LXXXVIII. Fonctions Mimetype
LXXXIX. Ming pour Flash
XC. Fonctions diverses
XCI. mnoGoSearch
XCII. Microsoft SQL Server
XCIII. Microsoft SQL Server et Fonctions Sybase (PDO_DBLIB)
XCIV. Sessions Mohawk
XCV. mSQL
XCVI. Chaînes de caractères multi-octets
XCVII. Fonctions muscat
XCVIII. MySQL
XCIX. Fonctions MySQL (PDO_MYSQL)
C. Extension MySQL améliorée
CI. Fonctions de contrôle d'écran de terminal
CII. Réseau
CIII. Fonctions Newt
CIV. Netscape Server API
CV. agrégation d'objets/Composition de fonctions
CVI. Overload
CVII. Fonctions Oracle
CVIII. Fonctions ODBC (unifiés)
CIX. Fonctions ODBC et DB2 (PDO_ODBC)
CX. oggvorbis
CXI. Gestion Audio OpenAL
CXII. OpenSSL
CXIII. Oracle (Obsolète)
CXIV. Fonctions Oracle (PDO_OCI)
CXV. Bufferisation de sortie
CXVI. Ovrimos SQL
CXVII. Accès aux fichiers Paradox
CXVIII. Fonctions Parsekit
CXIX. Contrôle des processus
CXX. Expressions rationnelles compatibles Perl
CXXI. Fonctions PDF
CXXII. Fonctions PDO
CXXIII. Phar archive stream and classes
CXXIV. Options PHP et informations
CXXV. Fonctions POSIX
CXXVI. Expressions rationnelles
CXXVII. PostgreSQL
CXXVIII. Fonctions PostgreSQL (PDO_PGSQL)
CXXIX. Impression
CXXX. Exécution de programmes externes
CXXXI. Création de document PostScript
CXXXII. Pspell
CXXXIII. qtdom
CXXXIV. Radius
CXXXV. Rar
CXXXVI. Readline (GNU)
CXXXVII. Recode (GNU)
CXXXVIII. Fonctions Lecture d'En-tête RPM
CXXXIX. Fonctions runkit
CXL. SAM - Messagerie asynchrone
CXLI. Extension client Satellite CORBA (Obsolète)
CXLII. SCA Functions
CXLIII. Fonctions SDO
CXLIV. Fonctions de Service d'Accès de Données SDO XML
CXLV. Fonctions SDO Relationnel Service d'Accès de Données
CXLVI. Sémaphores et gestion de la mémoire partagée
CXLVII. SESAM
CXLVIII. Sauvegarde d'Identifiant de session PostgreSQL
CXLIX. Sessions
CL. Mémoire partagée
CLI. Fonctions SimpleXML
CLII. Fonctions SNMP
CLIII. Fonctions SOAP
CLIV. Sockets
CLV. Fonctions Standard PHP Library (SPL)
CLVI. Fonctions SQLite
CLVII. Fonctions SQLite (PDO_SQLITE)
CLVIII. Shell2 sécurisé
CLIX. Fonctions statistics
CLX. Flux
CLXI. Chaînes de caractères (Strings)
CLXII. Shockwave Flash
CLXIII. Swish Functions
CLXIV. Sybase
CLXV. Fonctions TCP Wrappers
CLXVI. Tidy
CLXVII. Analyseur de code PHP
CLXVIII. Unicode Functions
CLXIX. URL
CLXX. Fonctions de gestion des variables
CLXXI. Paiement par Verisign
CLXXII. vpopmail
CLXXIII. API windows
CLXXIV. WDDX
CLXXV. Fonctions win32ps
CLXXVI. Fonctions win32service
CLXXVII. Fonctions xattr
CLXXVIII. Fonctions xdiff
CLXXIX. Analyseur syntaxique XML
CLXXX. XML-RPC
CLXXXI. XMLReader functions
CLXXXII. Fonctions XMLWriter
CLXXXIII. XSL
CLXXXIV. XSLT
CLXXXV. YAZ
CLXXXVI. NIS
CLXXXVII. Fonctions ZIP
CLXXXVIII. Compression Zlib
VII. PHP et le moteur interne Zend
44. Streams API for PHP Extension Authors
45. PDO Driver How-To
46. API Zend : Modification du coeur de PHP
47. TSRM API
48. Extending PHP 3
VIII. FAQ : foire Aux Questions
49. Informations générales
50. Listes de diffusions
51. Obtenir PHP
52. Considérations sur les bases de données
53. FAQ sur l'installation
54. Problèmes de compilation
55. Utiliser PHP
56. PHP et HTML
57. PHP et COM
58. PHP et les autres langages
59. Migrer de PHP 2 à PHP 3
60. Migrer de PHP 3 à PHP 4
61. Migration de PHP 4 à PHP 5
62. Questions diverses
IX. Annexes
A. Histoire de PHP
B. Migrating from PHP 5.1.x to PHP 5.2.x
C. Migration de PHP 4 à PHP 5
D. Migration de PHP 3 à PHP 4
E. Migration de PHP/FI 2 à PHP 3
F. Débogueur PHP
G. Options de configuration
H. Directives du php.ini
I. Liste des Fuseaux Horaires Supportés
J. Catégorie des extensions
K. Liste des alias
L. Mots réservés en PHP
M. Types des ressources PHP
N. Liste des protocoles supportés
O. Liste des filtres standards
P. Liste des modes de transport de sockets disponibles
Q. Comparaison de types en PHP
R. Liste des tokens de l'analyseur
S. Guide de nommage de l'espace utilisateur
T. À propos du manuel
U. Open Publication License
V. Index des fonctions
W. Eléments Absents
X. Version HTML Help
63. About This Edition
64. Using PHP Manual CHM Edition
65. The Full Text Search
66. Specialities of this Edition
67. Integrating the PHP Manual
68. Skin development
69. CHM Edition Credits

Suivant
Préface


Préface

Table des matières
Auteurs et Contributeurs

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

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

Vous pouvez télécharger ce manuel sous divers formats, sur http://www.php.net/download-docs.php, et sur le site de http://www.nexen.net/. 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éciseuse 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 : Jouni Ahto, Alexander Aulbach, Daniel Beckham, Stig Bakken, Jesus M. Castagnetto, Ron Chmara, Sean Coates, John Coggeshall, Simone Cortesi, Markus Fischer, Wez Furlong, Sara Golemon, Rui Hirokawa, Brad House, Pierre-Alain Joye, Etienne Kneuss, Moriyoshi Koizumi, Rasmus Lerdorf, Andrew Lindeman, Hannes Magnusson, Stanislav Malyshev, Rafael Martinez, Yasuo Ohgaki, Derick Rethans, Rob Richards, Sander Roobol, Egon Schmid, Thomas Schoefbeck, Sascha Schumann, Dan Scott, Masahiro Takagi, 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 et Egon Schmid.

Mainteneurs des notes utilisateurs

Les mainteneurs actuellement les plus actifs sont : Mehdi Achour, Friedhelm Betz, Etienne Kneuss, Nuno Lopes, Hannes Magnusson, Bobby Matthis et Philip Olson.

Ces personnes ont également déployé énormément d'efforts dans le maintien des notes utilisateurs : Daniel Beckham, 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, Rasmus Lerdorf, Matthew Li, Andrew Lindeman, Aidan Lister, Maxim Maletsky, James Moore, Sebastian Picklum, Derick Rethans, Sander Roobol, Damien Seguy, Jason Sheets, Maciek Sokolewicz, Tom Sommer, Jani Taskinen, Yasuo Ohgaki, Jakub Vrana, Lars Torben Wilson, Jim Winstead, Jared Wyles et Jeroen van Wolffelaar.

Précédent | Sommaire | Suivant
Manuel PHP |  | Au moment de commencer


Au moment de commencer

Manuel PHP
Précédent Suivant

I. Au moment de commencer

Table des matières
1. Introduction
2. Une introduction à PHP

Précédent | Sommaire | Suivant
Préface |  | Introduction


Introduction

Manuel PHP
Précédent Suivant

Chapitre 1. Introduction

Table des matières
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.

Réponse simple et claire, mais qu'est ce que cela veut dire ? Un exemple :

Exemple 1-1. Exemple d'introduction

<html>
    <head>
        <title>Exemple</title>
    </head>
    <body>

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

    </body>
</html>

Il est à noter la différence avec les autres scripts CGI écrits dans d'autres langages tels que le Perl ou le C : Au lieu d'écrire un programme avec de nombreuses lignes de commandes afin d'afficher une page HTML, vous écrivez une page HTML avec du code inclus à l'intérieur afin de réaliser une action précise (dans ce cas-là, afficher du texte). Le code PHP est inclus entre une balise de début 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. Si vous avez un script similaire sur votre serveur, 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.

Précédent | Sommaire | Suivant
Au moment de commencer | Niveau supérieur | Que peut faire PHP ?


Que peut faire PHP ?

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

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

  • Langage de script coté serveur. C'est l'utilisation la plus traditionnelle, et aussi le principal objet de PHP. Vous aurez besoin de trois composants pour l'exploiter : un analyseur PHP (CGI ou module serveur), un serveur web et un navigateur web. Vous devez exécuter le serveur web en corrélation avec PHP. Vous pouvez accéder au programme PHP avec l'aide du navigateur web. Tout ceci peut fonctionner sur votre propre machine si vous êtes juste expérimenté dans la programmation en PHP. Voyez la section d'installation pour plus d'informations.

  • Langage de programmation en ligne de commande. Vous pouvez écrire des scripts PHP et l'exécuter en ligne de commande, sans l'aide du serveur web et d'un navigateur. Il vous suffit de disposer de l'exécutable PHP. Cette utilisation est idéale pour les scripts qui sont exécutés régulièrement (avec un cron sous Unix ou Linux), ou un Task Scheduler (sous Windows). Ces scripts peuvent aussi être utilisés pour réaliser des opérations sur des fichiers texte. Voyez la section sur l'utilisation de PHP en ligne de commande pour plus d'informations.

  • Ecrire des applications clientes graphiques. PHP n'est probablement pas le meilleur langage pour écrire des applications clientes graphiques, mais si vous connaissez bien PHP et que vous souhaitez exploiter des fonctionnalités avancées dans vos applications clientes, vous pouvez utiliser PHP-GTK pour écrire de tels programmes. Vous avez aussi la possibilité d'écrire des applications très portables avec ce langage. PHP-GTK est une extension de PHP, qui n'est pas fournie dans la distribution de base. Si vous êtes intéressé par PHP-GTK, visitez son site web.

PHP est utilisable sur la majorité des systèmes d'exploitation, comme Linux, de nombreuses variantes Unix (incluant HP-UX, Solaris et OpenBSD), Microsoft Windows, Mac OS X, RISC OS et d'autres encore. PHP supporte aussi la plupart des serveurs web actuels : Apache, Microsoft Internet Information Server, Personal Web Server, Netscape et iPlanet servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd et beaucoup d'autres encore. Pour la majorité des serveurs web, PHP fonctionne comme module et, pour d'autres, il comme exécutable 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, ou encore un mélange des deux. Bien que le support de la couche objet ne soit pas très standard en PHP 4, beaucoup de bibliothèques et d'applications d'envergures (incluant la bibliothèque PEAR) ont été écrites en utilisant uniquement du code orienté objet. PHP 5 a rectifié les faiblesses de la couche objet de PHP 4 et a introduit un modèle objet complet.

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

Une des grandes forces de PHP est le support de nombreuses bases de données. Ecrire une page web exploitant une base de données est extrêmement simple. Les bases de données suivantes sont toutes supportées par PHP :

Adabas D | InterBase | PostgreSQL
dBase | FrontBase | SQLite
Empress | mSQL | Solid
FilePro (lecture seule) | Direct MS-SQL | Sybase
Hyperwave | MySQL | Velocis
IBM DB2 | ODBC | Unix dbm
Informix | Oracle (OCI7 et OCI8)
Ingres | Ovrimos

Il existe aussi une couche d'abstraction de base de données (nommée PDO) qui vous permettent de vous connecter de manière transparente à toute base de données supportée par cette extension. De plus, PHP supporte ODBC, ce qui vous permet de vous connecter à toute autre base de données qui supporte ce standard.

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 intéragir 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 instanciations d'objets Java, et les utilise de manière transparente comme objets intégrés. Vous pouvez aussi exploiter les objets distants avec CORBA.

PHP dispose de fonctionnalités extrêmement utiles pour le traitement de texte, allant des expressions rationnelles POSIX étendues ou Perl aux traitements des fichiers XML, avec les standards SAX et DOM (PHP 4). Vous pouvez utiliser les transformations XSLT. PHP 5 standardise toutes les extensions XML sur la base solide de libxml2 et en ettendant les fonctionnalités en ajoutant le support de SimpleXML et XMLReader.

Enfin, PHP dispose d'extensions très pratiques comme le moteur de recherche mnoGoSearch, la passerelle avec IRC, des outils de compression (gzip, bz2, zip) et de conversion calendaire, de traduction...

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.

Précédent | Sommaire | Suivant
Introduction | Niveau supérieur | Une introduction à PHP


Une introduction à PHP

Manuel PHP
Précédent Suivant

Chapitre 2. Une introduction à PHP

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

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

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

Le nécessaire

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

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

Vous pouvez soit installer ces logiciels individuellement ou bien d'une manière simplifiée. Notre manuel contient les instructions d'installation de PHP (en supposant que vous avez déjà un serveur web d'installé). Dans le cas où vous rencontriez des problèmes dans l'installation de PHP, nous vous suggérons de poser vos questions sur notre liste de diffusions réservée à cet usage. Si vous choisissez une version simplifiée, vous pouvez utiliser des des installeurs qui prennent en charge l'ensemble de l'installation en quelques clics. Il est facile de configurer un serveur web avec le support de PHP sur n'importe quel système d'exploitation, y compris MacOs, 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.

Précédent | Sommaire | Suivant
Que peut faire PHP ? | Niveau supérieur | Votre première page PHP


Votre première page PHP

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

Exemple 2-1. Notre premier script PHP : bonjour.php

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

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

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

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

Si vous avez essayé cet exemple et qu'il n'a rien affiché de spécial, ou même qu'une boîte de dialogue a surgi pour vous proposer de le télécharger, ou encore vous avez vu le code tel que nous l'avons écrit dans le fichier, alors votre serveur web ne supporte probablement pas PHP ou est mal configuré. Demandez à votre administrateur de l'activer pour vous, en utilisant le chapitre Installation. Si vous développer 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.

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.

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

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.

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

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

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

<?php phpinfo(); ?>

Précédent | Sommaire | Suivant
Une introduction à PHP | Niveau supérieur | Trucs pratiques


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 interesse ici est $_SERVER['HTTP_USER_AGENT'].

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

Pour afficher cette variable, nous pouvons simplement faire :

Exemple 2-3. Afficher le contenu d'une variable (élément de tableau)

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

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

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

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

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

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

Exemple 2-4. Exemple utilisant les structures de contrôle et les fonctions

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

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

Vous utilisez Internet Explorer<br />

Ici, nous introduisons plusieurs nouveaux concepts. Nous avons une structure if. Si vous êtes familier avec les syntaxes de base du langage C, cela ne vous surprendra pas. Si vous ne connaissez pas assez le langage C ou un autre langage où 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. Vous pouvez trouver une liste de livres PHP à ???.

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

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

Exemple 2-5. Passer du mode PHP au mode HTML et vice-versa

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

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

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

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

Précédent | Sommaire | Suivant
Votre première page PHP | Niveau supérieur | Utiliser un formulaire


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 d'origine externe à PHP pour plus d'informations et d'exemples sur comment utiliser les formulaires. Voici un exemple de formulaire HTML :

Exemple 2-6. Un simple formulaire HTML

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

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

Exemple 2-7. Afficher des données issues d'un formulaire

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

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

Bonjour Jean.
Tu as 29 ans.

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

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.

Précédent | Sommaire | Suivant
Trucs pratiques | Niveau supérieur | Utiliser des codes anciens avec les nouvelles versions de PHP


Utiliser des codes anciens avec les nouvelles versions de PHP

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

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

  • Les anciennes variables $HTTP_*_VARS (qui devaient être indiquées comme globales pour être utilisées dans une fonction ou une méthode) sont obsolètes. Les nouveaux tableaux superglobaux ont été introduits en PHP 4.1.0. Ce sont les variables suivantes : $_GET, $_POST, $_FILES, $_COOKIE, $_SERVER, $_ENV, $_REQUEST et $_SESSION. Les vieux tableaux $HTTP_*_VARS, tels que $HTTP_POST_VARS existent toujours depuis PHP 3. Depuis PHP 5.0.0, les tableaux prédéfinis PHP peuvent être désactivés avec l'option de configuration register_long_arrays.

  • Les variables externes ne sont plus enregistrées dans l'environnement par défaut. En d'autres termes, depuis PHP 4.2.0, la directive PHP register_globals vaut off par défaut dans le php.ini. La méthode recommandée pour accéder à ces valeurs est via les tableaux superglobaux mentionnés ci-dessus. Les anciens scripts, livres et tutoriaux continuent de considérer que cette directive devrait être à on. Lorsque cette directive est à on, vous pouvez utiliser la variable $id, si l'URL http://www.example.com/foo.php?id=42 a été appelée. Quelle que soit la valeur de la directive, $_GET['id'] est toujours disponible.

Pour plus de détails sur ces modifications, reportez-vous à la section sur les variables pré-définies.

Précédent | Sommaire | Suivant
Utiliser un formulaire | Niveau supérieur | Et aprè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. Vous pouvez aussi trouver d'autres exemples dans la section liens ("links", en anglais) du site http://www.php.net/links.php.

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

Précédent | Sommaire | Suivant
Utiliser des codes anciens avec les nouvelles versions de PHP | Niveau supérieur | Installation et configuration


Référence du langage

Manuel PHP
Précédent Suivant

III. Référence du langage

Table des matières
10. La syntaxe de base
11. Les types
12. Les variables
13. Les constantes
14. Les expressions
15. Les opérateurs
16. Les structures de contrôle
17. Les fonctions
18. Les classes et les objets (PHP 4)
19. Les classes et les objets (PHP 5)
20. Les exceptions
21. Les références

Précédent | Sommaire | Suivant
Comment modifier la configuration |  | La syntaxe de base


La syntaxe de base

Manuel PHP
Précédent Suivant

Chapitre 10. La syntaxe de base

Table des matières
Passer du HTML au PHP
Séparation des instructions
Commentaires

Passer du HTML au PHP

Lorsque PHP traite un fichier, il cherche les balises d'ouvertures et de fermetures, qui délimitent le code qu'il doit interpréter. De cette manière, cela permet à PHP d'être présent dans toutes sortes de documents, car tout ce qui se trouve en dehors des balises ouvrantes / fermantes de PHP est ignoré. La plupart du temps, vous verrez du code PHP dans des documents HTML, comme dans l'exemple ci-dessous.

Exemple 10-1. Code PHP dans un document HTML

<p>Ceci sera ignoré.</p>
<?php echo 'Alors que ceci sera analysé par PHP.'; ?>
<p>Ceci sera également ignoré.</p>

Vous pouvez également utiliser des structures plus avancées :

Exemple 10-2. Echappement avancé

<?php
if ($expression) {
    ?>
    <strong>Ceci est vrai.</strong>
    <?php
} else {
    ?>
    <strong>Ceci est faux.</strong>
    <?php
}
?>
Ceci fonctionne comme prévu parce que lorsque PHP rencontre la balise fermante ?>, il commence simplement à afficher ce qu'il rencontre jusqu'à ce qu'il rencontre une autre balise ouvrante. L'exemple ci-dessus est simple, bien sûr, mais pour afficher de gros bloc de textes, la mise à l'écart de ce type de bloc de l'analyseur de PHP est plus efficace que d'envoyer la totalité du texte en utilisant les fonctions echo() ou print().

Il y a quatre paires différentes de balises ouvrantes / fermantes qui peuvent être utilisées dans PHP. Deux de ces balises, <?php ?> et <script language="php"> </script>, sont toujours disponibles. Les deux autres sont les balises courtes et les balises du style ASP, et peuvent être activées ou désactivées depuis le fichier de configuration php.ini. Cependant, malgré le fait que des personnes trouvent les balises courtes et les balises du style ASP pratiques, elles sont moins portables et donc, généralement, non recommandées.

Note : Notez également que si vous intégrez PHP dans des documents XML ou XHTML, vous devez utiliser les balises <?php ?> pour rester conforme aux standards.

Exemple 10-3. Balises d'ouvertures et de fermetures PHP

1.  <?php echo 'Si vous voulez réaliser des documents XHTML ou XML, faites comme ceci'; ?>

2.  <script language="php">
        echo 'quelques éditeurs (comme FrontPage)
                 n\'aiment pas ce genre d\'instructions';
    </script>

3.  <? echo 'ceci est le plus simple, une instruction SGML'; ?>
    <?= expression ?> Ceci est la version courte pour "<? echo expression ?>"

4.  <% echo 'Vous pouvez optionnellement utiliser les balises ASP-style'; %>
    <%= $variable; # Ceci est la version courte pour "<% echo . . ." %>

Bien que les balises vues dans les exemples un et deux sont toutes les deux disponibles, l'exemple un est le plus communément utilisé et le plus recommandé des deux.

Les balises courtes (troisième exemple) ne sont disponibles que s'ils ont été activées via la directive short_open_tag du fichier de configuration php.ini, ou si PHP a été configuré avec l'option --enable-short-tags.

Note : Si vous utilisez PHP 3, vous devez également activer les balises courtes via la fonction short_tags(). Ceci est uniquement disponible en PHP 3 !

Les balises du style ASP (quatrième exemple) sont uniquement disponibles lorsqu'elles sont activées via la directive asp_tags du fichier de configuration php.ini.

Note : Le support des balises style ASP a été ajouté en PHP 3.0.4.

Note : L'utilisation des balises courtes doit être bani lors de développements d'applications ou de bibliothèques qui sont destinées à être redistribuées, ou déployées sur des serveurs qui ne sont pas sous votre contrôle, car les balises courtes peuvent ne pas être supportées sur le serveur cible. Pour réaliser du code portable, redistribuable, n'utilisez jamais les balises courtes.

Précédent | Sommaire | Suivant
Référence du langage | Niveau supérieur | Séparation des instructions


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 pas besoin d'utiliser un point-virgule pour terminer la dernière ligne d'un bloc PHP. La balise fermante d'un bloc inclura immédiatement un caractère de nouvelle ligne si un est présent.

Exemple 10-4. Séparation des instructions

<?php
    echo 'Ceci est un test';
?>

<?php echo 'Ceci est un test' ?>

<?php echo 'Oubli de la balise fermante';

Note : La balise fermante d'un bloc PHP à la fin d'un fichier est optionnel, et parfois, il est utile de l'omettre lors de l'utiliation de la fonction include() ou de la fonction require(), car les espaces non désirés n'apparaîteront pas à la fin des fichiers, et ainsi, vous pourrez toujours ajouter des en-têtes à la réponse plus tard. C'est utilie é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.

Précédent | Sommaire | Suivant
La syntaxe de base | Niveau supérieur | Commentaires


Commentaires

PHP supporte les commentaires 'C', 'C++' et Unix shell-style (style Perl). Par exemple :

Exemple 10-5. 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 comment jusqu'à la fin de la ligne ou le bloc courant de code PHP, le premier des deux. Ceci signifie que le code HTML après // ... ?> ou après # ... ?> SERA affiché : ?> terminera le mode PHP et retournera en mode HTML, et // ou # n'influencera pas cela. Si la directive de configuration asp_tags est activée, ce comportement sera identique avec // %> et # %>. Cependant, la balise </script> ne terminera pas le mode PHP dans un commentaire d'une seule ligne.

Exemple 10-6. 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 10-7. Les commentaires de type C

<?php
 /*
    echo 'Ceci est un test'; /* Ce commentaire posera un problème */
 */
?>

Précédent | Sommaire | Suivant
Séparation des instructions | Niveau supérieur | Les types


Les types

Manuel PHP
Précédent Suivant

Chapitre 11. Les types

Table des matières
Introduction
Booléens
Entiers
Les nombres décimaux
Les chaînes de caractères
Les tableaux
Les objets
Ressources
La valeur NULL
Pseudo-types utilisés dans cette documentation
Définition du type

Introduction

PHP supporte les huit types basiques suivants :

PHP supporte quatre types scalaires :

  • booléen

  • entier

  • nombre à virgule flottante

  • chaîne de caractères

PHP supporte deux types composés :

  • tableau

  • objet

PHP supporte deux types spéciaux :

  • ressource

  • NULL

Ce manuel introduit également quelques pseudo-types pour des raisons de lisibilité :

  • mixed

  • nombre

  • callback

Vous pouvez également trouver quelques références au type "double". Considérez le type "double" comme le type "float" (nombres décimaux), les deux noms existent uniquement pour des raisons historiques.

Habituellement, le type d'une variable n'est pas déclaré par le programmeur. Il est décidé au moment de l'exécution par PHP, en fonction du contexte dans lequel la variable est utilisée.

Note : Si vous voulez vérifier le type et la valeur d'une variable ou d'une expression, utilisez la fonction var_dump().

Note : Si vous souhaitez simplement une représentation lisible pour du débogage, utilisez la fonction gettype(). Pour vérifier la présence de certains types, n'utilisez pas gettype(), mais plutôt les fonctions is_type. Par exemple :

Exemple 11-1. Exemples de vérification de type de variable

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

// Ceci est un entier, on l'incrémente de 4
if (is_int($an_int)) {
    $an_int += 4;
}

// Si $bool est une chaîne, l'afficher
// (Ne pas imprimer n'importe quoi).
if (is_string($a_bool)) {
    echo 'Chaîne : ' . $a_bool;
}
?>

Si vous voulez forcer une variable à être convertie en un certain type, vous devez transtyper (cast) la variable ou utiliser la fonction settype().

Il est à noter qu'une variable peut se comporter de manière différente suivant les situations, en fonction du type qui lui est affecté. Pour plus d'informations, voir le paragraphe sur le transtypage. Vous pouvez également être intéressé par la table de comparaison des types, qui vous montrent des exemples variés concernant les relations de comparaison des types.

Précédent | Sommaire | Suivant
Commentaires | Niveau supérieur | Booléens


Booléens

C'est le type le plus simple. Un booléen exprime une valeur de vérité. Il peut prendre comme valeur soit TRUE soit FALSE.

Note : Le type booléen a été introduit en PHP 4.

Syntaxe

Vous pouvez utiliser les mots-clés 'TRUE' et 'FALSE' pour spécifier une valeur de type booléen. Ces mots-clés sont insensibles à la casse.

Exemple 11-2. Utilisation des mots-clés TRUE et FALSE

<?php
$foo = True; // assigne la valeur TRUE à la variable $foo
?>

Généralement, vous les créerez avec un des opérateurs qui retourne une valeur bool, pour les passer à une structure de contrôle.

Exemple 11-3. Utilisation des constantes TRUE et FALSE avec une structure de contrôle

<?php
// == est un opérateur d'égalité
// qui retourne un booléen
if ($action == 'show_version') {
    echo 'La version est la 1.23';
}

// Ceci n'est pas nécessaire
if ($show_separators == TRUE) {
    echo "<hr />\n";
}

// car vous pouvez simplement utiliser
if ($show_separators) {
    echo "<hr />\n";
}
?>

Conversion en booléen

Pour explicitement convertir une valeur en booléen, utilisez les opérateurs de transtypage (bool) ou (boolean). Cependant, dans la plupart des cas, vous n'avez pas besoin d'utiliser ces opérateurs de transtypage, car une valeur sera automatiquement convertie si un opérateur, une fonction ou une structure de contrôle requièrent un argument de type booléen.

Voir aussi le chapitre Définition du type.

Lors des conversions de valeurs de type bool, les valeurs suivantes sont considérées comme fausses (FALSE) :

  • Le booléen FALSE lui-même

  • L'entier 0 (zéro)

  • Le nombre à virgule flottante 0.0 (zéro)

  • La chaîne de caractères vide et la chaîne de caractères "0"

  • Le tableau vide (aucun élément)

  • L'objet vide (aucun élément) (PHP 4 uniquement)

  • Le type spécial NULL

  • Les objets SimpleXML créés depuis des balises vides

Toutes les autres valeurs sont considérées comme vraies (TRUE) (y compris les ressources).

Avertissement

-1 est considéré comme vrai, tout comme les nombres autres que zéro (aussi bien positifs que négatifs) !

Exemple 11-4. Conversion en booléen

<?php
var_dump((bool) "");        // bool(false)
var_dump((bool) 1);         // bool(true)
var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)
?>

Précédent | Sommaire | Suivant
Les types | Niveau supérieur | Entiers


Entiers

Un entier est un nombre de l'ensemble des entiers naturels Z : Z = {...., -2, -1, 0, 1, 2, ...}.

Voir aussi : Longueur arbitraire des entiers / GMP, les nombre à virgule flottante et les précisions arbitraires / BCMath.

Syntaxe

Les entiers peuvent être spécifiés en base décimale (dite aussi base 10), en hexadécimale (base 16) ou octale (base 8). Les entiers peuvent être optionnellement précédés par le signe plus ou moins (+ ou -).

Pour utiliser la notation octale, vous devez préfixer le nombre avec un zéro; pour utiliser la notation hexadécimale, vous devez préfixer le nombre avec 0x.

Exemple 11-5. Notations entières

<?php
$a = 1234; // nombre entier en base 10
$a = -123; // nombre entier négatif
$a = 0123; // nombre entier en base 8, octale (équivalent à 83 en base 10)
$a = 0x1A; // nombre entier en base 16, hexadécimale
           // (équivalent à 26 en base 10)
?>
Techniquement, la structure d'un entier suit les règles suivantes :

Exemple 11-6. Structure d'un entier

decimal     : [1-9][0-9]*
            | 0

hexadecimal : 0[xX][0-9a-fA-F]+

octal       : 0[0-7]+

integer     : [+-]?decimal
            | [+-]?hexadecimal
            | [+-]?octal
La taille des entiers dépend de la plate-forme de support, mais la valeur maximale est généralement de 2 milliards et des poussières (c'est un entier signé de 32 bits). PHP ne supporte pas les entiers non signés.

Avertissement

Si un caractère invalide est utilisé dans un entier octal (par exemple, 8 ou 9), le reste du nombre est ignoré.

Exemple 11-7. Interprétation des nombres octaux

<?php
var_dump(01090); // 010 octal = 8 decimal
?>

Dépassement de capacité des entiers

Si un nombre est hors de l'intervalle de validité des entiers, il sera interprété comme un float. De même, si vous effectuez une opération qui retourne un nombre hors de l'intervalle de validité des entiers, un float sera retourné.

Exemple 11-8. Dépassement de capacité des entiers

<?php
$large_number =  2147483647;
var_dump($large_number);
// affiche : int(2147483647)

$large_number =  2147483648;
var_dump($large_number);
// affiche : float(2147483648)

// c'est vrai aussi pour les entiers hexadécimaux entre 2^31 et 2^32-1:
var_dump( 0xffffffff );
// affiche : float(4294967295)

// cette méthode ne convient pas pour les entiers hexadécimaux supérieurs à 2^32-1 :
var_dump( 0x100000000 );
// affiche : int(2147483647)

$million = 1000000;
$large_number =  50000 * $million;
var_dump($large_number);
// affiche : float(50000000000)
?>

Avertissement

Malheureusement, il y a un bogue dans le moteur (corrigé en 4.1.0), qui fait que PHP ne fonctionne pas toujours bien lorsque des nombres négatifs sont utilisés. Lorsque les deux opérandes sont positifs, il n'y a pas de problèmes. Par exemple : -50000 * $million, conduit à -429496728. Cependant, lorsque les deux opérateurs sont positifs, il n'y a aucun problème.

Ceci a été résolu en PHP 4.1.0.

Il n'existe pas de division entière en PHP. 1/2 générera le float 0.5. Vous pouvez forcer la valeur au format entier pour faire l'arrondi ou bien utiliser la fonction round().

Exemple 11-9. Divisions entières

<?php
var_dump(25/7); // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7)); // float(4)
?>

Conversion en entiers

Pour explicitement convertir une valeur en entier, utilisez les opérateurs de transtypage (int) ou (integer). Cependant, dans la plupart des situations, vous n'en aurez pas besoin, car une valeur sera automatiquement convertie si un opérateur, une fonction ou tout autre élément du langage requiert un entier. Vous pouvez également convertir une valeur en entier avec la fonction intval().

Voir aussi la section sur les définitions de types.

Depuis un booléen

FALSE devient 0 (zéro), et TRUE devient 1 (un).

Depuis un nombre à virgule flottante

Lors de conversion entre un nombre décimal et un entier, le nombre sera arrondi à la valeur inférieure s'il est positif, et supérieure s'il est négatif (conversion dite 'vers zéro').

Si le nombre est hors de l'intervalle de validité des entiers, (généralement +/- 2.15e+9 = 2^31), le résultat est indéfini, car les nombres à virgule flottante n'ont pas assez de précision pour fournir une valeur exacte pour un entier. Aucune alerte, même pas le plus petit message ne sera affiché dans ce cas !

Avertissement

Ne transformez jamais une fraction inconnue en entier, car cela peut conduire à des résultats irrationnels.

Exemple 11-10. Attention aux erreurs de fractions

<?php
  echo (int) ( (0.1+0.7) * 10 );
// affiche 7!
?>
Pour plus d'informations, reportez-vous aux alertes liées aux nombres décimaux.

À partir de chaînes de caractères

Reportez-vous à la section des conversions de chaînes.

Conversion d'autres types

La conversion d'autres types en entier est indéfinie. En fait, PHP convertit d'abord la valeur en booléen.

Attention

Le comportement de la conversion en un entier est indéfini pour les autres types. En fait, le comportement est le même que si la valeur a d'abord été convertie en booléen. Cependant, ne vous fiez pas à ce comportement car il peut changer à tout moment.

Précédent | Sommaire | Suivant
Booléens | Niveau supérieur | Les nombres décimaux


Les nombres décimaux

Les nombres décimaux (connus aussi sous le vocable de "double", "float" ou "nombre réels") peuvent être spécifiés en utilisant la syntaxe suivante :

Exemple 11-11. Exemple de nombres décimaux

<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>

Formellement :

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

La taille des nombres décimaux dépend de la plate-forme. Un maximum de ~1.8e308 avec une précision de 14 décimales est une configuration répandue : c'est le format 64 bits IEEE.

Précision des nombres décimaux

Il est fréquent que de simples fractions décimales telles que 0.1 ou 0.7 ne puissent être converties au format interne binaire sans une légère perte de précision. Cela peut conduire à des résultats étonnants : par exemple, floor((0.1+0.7)*10) retournera 7 au lieu de 8 car le résultat de la représentation interne est 7.9999999999....

Tout ceci est lié au fait qu'il est impossible d'exprimer certaines fractions en un nombre fini de chiffres. Par exemple 1/3 s'écrira 0.3333333... en mode décimal.

Ne faites donc jamais confiance aux nombres à virgule jusqu'à leur dernière décimale et ne comparez jamais ces nombres avec l'opérateur d'égalité. Si vous avez besoin d'une précision particulière, reportez-vous au traitement des nombres de grande taille avec les bibliothèques BC ou GMP.

Conversion d'un nombre décimal

Pour savoir quand et comment des chaînes sont converties en nombres à virgules flottantes, voyez la section "Conversion de chaînes de caractères". Pour les valeurs d'autres types, la conversion est la même que si la valeur était d'abord convertie en entier, puis en nombre décimal. Voyez la section "Conversion d'un entier". Depuis PHP 5, une alerte est affichée si vous convertissez un objet en nombre décimal.

Précédent | Sommaire | Suivant
Entiers | Niveau supérieur | Les chaînes de caractères


Les chaînes de caractères

Les chaînes de caractères sont des séquences de caractères. En PHP, un caractère est un octet et il y en 256 de possibles. PHP n'a pas (encore ?) de support natif d'Unicode. Voir les fonctions utf8_encode() et utf8_decode() pour un support Unicode.

Note : La taille n'est pas un problème majeur pour une chaîne. Elle peut devenir très grande sans problème. Il n'y a pas à s'en faire pour cela.

Syntaxe

Une chaîne peut être spécifiée de trois manières différentes :

  • guillemets simples

  • guillemets doubles

  • syntaxe HereDoc

Guillemets simples

Le moyen le plus simple de spécifier une chaîne de caractères est d'utiliser les guillemets simples : '.

Pour spécifier un guillemet simple littéral, vous devez l'échapper avec un anti-slash (\), comme dans de nombreux langages. Si un anti-slash doit apparaître dans ou en fin de chaîne, il faudra le doubler. Notez que si vous essayez d'échapper n'importe quel autre caractère, l'anti-slash sera conservé ! Il n'y a pas besoin d'échapper d'autres caractères que le guillemet lui-même.

Note : En PHP 3, une alerte sera affichée si cela arrive avec un niveau de rapport d'erreur de E_NOTICE.

Note : Contrairement aux autres syntaxes, les variables présentes dans la chaîne ne seront PAS remplacées par leur valeur.

Exemple 11-12. Exemples d'interpolation des chaînes de caractères

<?php
echo 'Ceci est une chaîne simple';

echo 'Vous pouvez inclure des nouvelles
lignes dans une chaîne,
comme ceci.';

echo 'Arnold a coutume de dire : "I\'ll be back"';
// affiche : "I'll be back"

echo 'Êtes-vous sûr de vouloir effacer le dossier C:\\*.*?';
// affiche : Êtes-vous sûr de vouloir effacer le dossier C:\*.*?

echo 'Êtes-vous sûr de vouloir effacer le dossier C:\*.*?';
// affiche : Êtes-vous sûr de vouloir effacer le dossier C:\*.*?

echo 'Je suis en train de mettre une nouvelle ligne comme ceci : \n';
// affiche : Je suis en train de mettre une nouvelle ligne comme ceci : \n

echo 'Les variables ne seront pas $afficher $ici';
// affiche : Les variables ne seront pas $afficher $ici
?>

Guillemets doubles

Si la chaîne est entourée de guillemets doubles ("), PHP va comprendre certaines séquences de caractères :

Tableau 11-1. Les caractères spéciaux

Séquence | Valeur
\n | Nouvelle ligne (linefeed, LF ou 0x0A (10) en ASCII)
\r | Retour à la ligne (carriage return, CR ou 0x0D (13) en ASCII)
\t | Tabulation horizontale (HT ou 0x09 (9) en ASCII)
\\ | Anti-slash
\$ | Caractère $
\" | Guillemets doubles
\[0-7]{1,3} | Une séquence de caractères qui permet de rechercher un nombre en notation octale.
\x[0-9A-Fa-f]{1,2} | Une séquence de caractères qui permet de rechercher un nombre en notation hexadécimale.

Si vous essayez d'utiliser l'anti-slash sur n'importe quelle autre séquence, l'anti-slash sera affiché dans votre chaîne. Avant PHP 5.1.1, l'anti-slash dans \{$var} n'était pas affiché.

Le plus important pour les chaînes à guillemets doubles est le fait que les variables qui s'y trouvent seront remplacées par leur valeur. Voir la section sur le traitement des variables dans les chaînes pour plus de détails.

Syntaxe Heredoc

Un autre moyen de délimiter les chaînes est d'utiliser la synthaxe dite "Heredoc" ("<<<"). Tout d'abord, on place un identifiant (suivi d'une nouvelle ligne) suivi de <<<, puis la chaîne de caractères et ensuite, le même identifiant pour terminer la séquence.

L'identifiant fermant doit commencer à la première colonne de la ligne. L'identifiant utilisé doit suivre les mêmes règles que les étiquettes PHP : il ne doit contenir uniquement que des caractères alpha-numériques, et des soulignés ("_") et, enfin, commencer par un caractère alphabétique ou un souligné.

Avertissement

Il est très important de noter que la ligne qui contient l'identifiant de fermeture ne doit contenir aucun autre caractère, hormis, éventuellement, un point-virgule (;). Cela signifie notamment que l'identifiant ne doit pas être indenté et qu'il n'y a aucun caractère d'espacement ou de tabulation avant ou après le point virgule. Il est également important de noter que le premier caractère avant l'identifiant de fermeture doit être une nouvelle ligne, tel que définie par votre système. Par exemple, ce sera \r sous Macintosh. Le délimiteur de fermeture (suivi éventuellement d'un point-virgule) doit également être suivi d'un caractère de nouvelle ligne.

Si cette règle n'est pas respectée et que l'identifiant de fermeture n'est pas correct, alors, il ne sera pas considéré comme un identifiant fermant et PHP continuera d'en chercher un. Si dans ce cas aucun identifiant de fermeture n'est trouvé, une erreur d'analyse sera émise, contenant comme numéro de ligne la fin du script.

Il n'est pas autorisé d'utiliser la syntaxe "Heredoc" lors de l'initialisation des membres d'une classe. Utilisez une autre syntaxe pour les chaînes à la place.

Exemple 11-13. Exemple incorrect

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

La syntaxe Heredoc se comporte exactement comme une chaîne à guillemets doubles, sans les guillemets doubles. Cela signifie que vous n'avez pas à échapper les guillemets (simples ou doubles) dans cette syntaxe. Les variables sont remplacées par leur valeur et le même soin doit leur être apporté que dans les chaînes à guillemets doubles.

Exemple 11-14. Exemple de chaîne HereDoc

<?php
$str = <<<EOD
  Exemple de chaîne
  s'étalant sur
  plusieurs lignes
  avec la syntaxe heredoc
EOD;

/* Exemple plus complexe, avec des variables. */
class foo {
    var $foo;
    var $bar;
    function foo() {
        $this->foo = 'Foo';
        $this->bar = array('Bar1', 'Bar2', 'Bar3');
    }
}

$foo = new foo();
$name = 'MonNom';

echo <<<EOT
  Mon nom est "$name". J'affiche des $foo->foo.
  Maintenant, j'affiche un {$foo->bar[1]}.
  Ceci se traduit par un 'A' majuscule : \x41
EOT;
?>

Note : Le support Here doc a été ajouté en PHP 4.

Traitement des variables dans les chaînes

Lorsqu'une chaîne est spécifiée avec des guillemets doubles ou en utilisant la syntaxe heredoc, les variables qu'elle contient sont remplacées par leur valeur.

Il y a deux types de syntaxe, une simple et une complexe. La syntaxe simple est la plus courante et la plus pratique : elle fournit un moyen d'utiliser les variables, que ce soient des chaînes, des tableaux ou des membres d'objets.

La syntaxe complexe a été introduite en PHP 4 et peut être reconnue grâce aux accolades entourant les expressions.

Syntaxe simple

Dès qu'un signe dollar $ est rencontré, l'analyseur PHP va lire autant de caractères qu'il peut pour former un nom de variable valide. Entourez le nom de la variable avec des accolades pour indiquer explicitement son nom.

Exemple 11-15. Utilisation des accolades {} dans les chaînes

<?php
$boisson = 'vin';
echo "Du $boisson, du pain et du fromage !";
 // Correct, car "," n'est pas autorisé dans les noms de variables

echo 'Il a goûté plusieurs ' . $boissons;
 // Pas correct, car 's' peut faire partie d'un nom de variable, et PHP recherchera alors $boissons

echo "Il a goûté plusieurs ${boisson}s";
 // Correct
?>

De la même façon, vous pouvez utiliser un élément de tableau ou un membre d'objet. Pour les éléments de tableau, le crochet fermant ']' marquera la fin du nom de la variable. Pour les membres d'objets, les mêmes règles que ci-dessus s'appliquent. Cependant, il n'existe pas d'astuce comme cela pour les variables simples.

Exemple 11-16. Utilisation des accolades {} dans les chaînes pour les tableaux

<?php
// Ces exemples sont spécifiques à l'utilisation de tableaux dans une chaîne.
// Lorsque vous êtes hors d'une chaîne, utilisez toujours des guillemets
// autour des index de tableau, et n'utilisez pas d'{accolades}.

// Affichons toutes les erreurs
error_reporting(E_ALL);

$fruits = array('fraise' => 'rouge', 'banane' => 'jaune');

// Fonctionne mais notez que cela ne fonctionne pas comme
// si c'était hors d'une chaîne
echo "Une banane est $fruits[banane].";

// Fonctionne
echo "Une banane est {$fruits['banane']}.";

// Fonctionne mais PHP cherche une constante appelée banane
// tel que décrit ci-dessous
echo "Une banane est {$fruits[banane]}.";

// Ne fonctionne pas, il manque les accolades. Cela donne une erreur d'analyse
echo "Une banane est  $fruits['banane'].";

// Fonctionne
echo "Une banane est " . $fruits['banane'] . ".";

// Fonctionne
echo "Ce carré a un côté de $square->width mètres de large.";

// Ne fonctionne pas. Pour une solution, voyez la syntaxe complexe.
echo "Ce carré a un côté de $square->width00 centimètres.";
?>

Pour tout ce qui sera plus compliqué, voyez la syntaxe complexe.

Syntaxe complexe

La syntaxe est dite "complexe" car elle permet l'utilisation d' expressions complexes et non pas parce qu'elle serait obscure.

En fait, vous pouvez inclure n'importe quelle valeur qui est dans l'espace de nom avec cette syntaxe. Il suffit d'écrire une expression exactement comme si elle était hors de la chaîne, puis de l'entourer d'accolades {}. Puisque vous ne pouvez pas échapper les accolades, cette syntaxe ne commence qu'à partir du signe dollar, qui suit immédiatement l'accolade ouvrante. Vous pouvez utiliser "{\$" pour obtenir un "{$" littéral. Voici quelques exemples :

Exemple 11-17. Syntaxe complexe de chaîne

<?php
// Affichons toutes les erreurs
error_reporting(E_ALL);

$super = 'fantastique';

// Ne fonctionne pas. Affiche : Ceci est { fantastique}
echo "Ceci est { $super}";

// Fonctionne. Affiche Ceci est fantastique
echo "This is {$super}";
echo "This is ${super}";

// Fonctionne
echo "Ce carré a un coté de {$square->width}00 centimètres.";

// Fonctionne
echo "Ceci fonctionne : {$arr[4][3]}";

// Ceci est faut pour la même raison que $foo[bar] est faux
// hors d'une chaîne. En d'autres termes, cela va fonctionner
// car PHP recherche d'abord une constante appelée foo, mais
// il générera une note E_NOTICE (undefined constant).
echo "Ceci est faux : {$arr[foo][3]}";

// Fonctionne. Lorsque vous utilisez un tableau multidimensionnel dans
// une chaîne, n'oubliez jamais les accolades.
echo "Ceci fonctionne : {$arr['foo'][3]}";

// Fonctionne
echo "Ceci fonctionne : " . $arr['foo'][3];

echo "Vous pouvez même écrire {$obj->values[3]->name}";

echo "Ceci est une valeur de variable variable : {${$name}}";
?>

Note : Les appels des fonctions et des méthodes fonctionnent depuis PHP 5.

Accès et modification des caractères d'une chaîne

Les caractères d'une chaîne sont accessibles et modifiables en spécifiant leur offset (le premier caractère est d'offset 0) avec des crochets comme ceci : $str[42], donc, voyez une chaîne de caractères comme un tableau de caractères.

Note : On peut également y accéder en utilisant des accolades comme ceci : $str{42} pour effectuer la même chose. Cependant, l'utilisation des crochets est préférable car l'utilisation des accolades est devenue obsolète depuis PHP 6.

Exemple 11-18. Exemples de chaînes

<?php
// Lit le premier caractère de la chaîne
$str = 'Ceci est un test.';
$first = $str[0];

// Lit le troisième caractère de la chaîne
$third = $str[2];

// Lit le dernier caractère de la chaîne
$str = 'Ceci est un test.';
$last = $str[strlen($str)-1];

// Modifie le dernier caractère de la chaîne
$str = 'Ceci est un test.';
$str[strlen($str)-1] = 'e';

// Méthode alternative utilisant des {}, obsolète depuis PHP 6
$third = $str{2};

?>

Fonctions et opérateurs pratiques

Les chaînes peuvent être concaténées avec l'opérateur '.' (point). Notez que l'opérateur d'addition '+' (plus) ne fonctionnera pas. Reportez-vous à la section opérateurs de chaînes pour plus de détails.

Il y a une grande quantité de fonctions pratiques pour modifier les chaînes.

Reportez-vous à la section chaînes de caractères pour les fonctions les plus générales, à Expressions rationnelles Perl et Expressions rationnelles POSIX étendues pour les recherches et remplacements.

Il y a aussi les fonctions sur les URL, ainsi que des fonctions de chiffrage (mcrypt et mhash).

Finalement, si vous ne trouvez toujours pas votre bonheur, il y a les fonctions de types de caractères.

Conversion en une chaîne de caractères

Vous pouvez convertir une valeur en une chaîne de caractères en utilisant l'opérateur (string) ou bien la fonction strval(). La conversion en chaîne de caractères est automatiquement faite dans toutes les situations qui nécessitent une chaîne de caractères. Cela arrive lorsque vous utilisez des fonctions comme echo() ou print() ou encore lorsque vous comparez une valeur avec une chaîne de caractères. Lisez les sections du manuel sur les types et la définition du type pour comprendre plus facilement ce qui va suivre. Voir aussi la fonction settype().

Le booléen TRUE est converti en la chaîne de caractères "1", et le booléen FALSE est représenté par la chaîne de caractères vide "". De cette façon, vous pouvez convertir des booléens en chaîne de caractères et vice-versa.

Un entier ou un nombre à virgule flottante est converti en une chaîne de caractères qui représente ce nombre en décimal (y compris l'exposant des nombres décimaux).

Note : Le caractère représentant la séparation des décimales est définit dans les locales (catégorie LC_NUMERIC). Voir la fonction setlocale().

Les tableaux sont toujours convertis en la chaîne de caractères "Array", ce qui fait que vous ne pouvez pas afficher le contenu d'un tableau avec la fonction echo() ou print(). Pour voir un seul élément, vous devriez faire quelque chose comme : echo $arr['foo']. Voyez les informations ci-dessous pour plus de conseils.

Les objets sont automatiquement convertis en la chaîne de caractères "Object". Si vous souhaitez afficher le membre d'un objet, lisez le paragraphe ci-dessous. Si vous voulez connaître le nom de la classe de cet objet, utilisez la fonction get_class(). Depuis PHP 5, la méthode __toString() est utilisée si elle existe.

Les ressources sont toujours converties en chaîne de caractères "Resource id #1" où 1 est le nombre unique représentant la ressource, assigné par PHP au moment de l'exécution. Si vous souhaitez connaître le type d'une ressource, utilisez get_resource_type().

NULL est toujours converti en une chaîne de caractères vide.

Comme vous pouvez le voir, afficher des tableaux, des objets ou des ressources n'est pas pertinent par cette méthode. Reportez-vous aux fonctions print_r() et var_dump() pour avoir des outils plus pratiques.

Vous pouvez aussi convertir des valeurs PHP en chaînes pour les sauver dans un stockage. Cette méthode est appelée la linéarisation et peut être exploitée avec la fonction serialize(). Vous pouvez aussi linéariser des valeurs PHP en structure XML si vous avez le support WDDX dans votre configuration de PHP.

Conversion de chaînes de caractères

Lorsqu'une chaîne de caractères est évaluée comme une valeur numérique, le résultat et le type de la variable sont déterminés comme suit.

La chaîne de caractères est de type "double" si elle contient un des caractères '.', 'e' ou 'E'. Sinon, elle est de type entier ("integer").

La valeur est définie par la première partie de la chaîne. Si la chaîne de caractères débute par une valeur numérique cette valeur sera celle utilisée. Sinon, la valeur sera égale à 0 (zéro). Les données numériques valides ont un signe optionnel, suivies par un ou plusieurs digits (optionnellement, contenant un point de décimal), suivies par un exponentiel optionnel. L'exponentiel peut être un 'e' ou un 'E' suivi par un ou plusieurs digits.

Exemple 11-19. Exemples de conversions automatiques

<?php
$foo = 1 + "10.5";                // $foo est du type  float (11.5)
$foo = 1 + "-1.3e3";              // $foo est du type  float (-1299)
$foo = 1 + "bob-1.3e3";           // $foo est du type  integer (1)
$foo = 1 + "bob3";                // $foo est du type  integer (1)
$foo = 1 + "10 petits cochons";       // $foo est du type  integer (11)
$foo = 4 + "10.2 gros cochons"; // $foo est du type  float (14.2)
$foo = "10.0 cochons " + 1;          // $foo est du type  float (11)
$foo = "10.0 cochons " + 1.0;        // $foo est du type  float (11)
?>

Pour plus d'informations sur les conversions de type, voir les pages de man Unix à propos de la fonction strtod(3).

Si vous voulez tester l'un des exemples de cette section, vous pouvez faire un copier/coller et l'insérer dans un script pour voir comment il se comporte :

Exemple 11-20. Exemples de conversions

<?php
echo "\$foo==$foo; type is " . gettype( $foo ) . "<br />\n";
?>

Ne vous attendez pas à récupérer le code d'un caractère en le convertissant en un entier (comme vous pourriez le faire en C par exemple). Utilisez les fonctions ord() et chr() pour convertir les caractères en leurs codes.

Précédent | Sommaire | Suivant
Les nombres décimaux | Niveau supérieur | Les tableaux


Les tableaux

Un tableau PHP est en fait une association ordonnée (littéralement, une map). Une association est un type qui fait correspondre des valeurs à des clés. Ce type est optimisé de diverses façons, qui font que vous pouvez le manipuler comme un tableau à indices réels, une liste (vecteur) ou une table de hachage (qui est une implémentation d'association), dictionnaire, collection, pile, queue et encore d'autres. Comme une valeur peut elle-même être un tableau, vous pouvez simuler facilement un arbre.

Les détails d'implémentation de ces structures sont hors du champ de ce manuel, mais vous trouverez ici un exemple de toutes ces structures.

Syntaxe

Créer un tableau array()

Un tableau array peut être créé avec la fonction array(). Cette fonction prend en argument des structures key => value, séparées par des virgules.

array( [key =>]
value , ... )
// key est soit une chaîne de caractères
soit un entier positif
// value peut être n'importe quoi

Exemple 11-21. Affectations de tableaux

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

echo $arr["foo"]; // bar
echo $arr[12];    // 1
?>

Une clé key est soit un entier soit une chaîne de caractères. Si une clé est la représentation standard d'un entier positif, elle sera interprétée comme tel. (i.e. '8' sera interprété comme 8, tandis que '08' sera interprété comme '08'.) Les nombres à virgule flottante dans key seront transtypés en entier. Il n'y a aucune différence entre les tableaux indexés et les tableaux associatifs en PHP ; il n'y a qu'un type array, qui peut contenir soit des entiers, soit des chaînes en guise d'index.

Une valeur de tableau peut être de n'importe quel type.

Exemple 11-22. Création d'un tableau associatif

<?php
$arr = array("untableau" => array(6 => 5, 13 => 9, "a" => 42));

echo $arr["untableau"][6];    // 5
echo $arr["untableau"][13];   // 9
echo $arr["untableau"]["a"];  // 42
?>

Si vous omettez une clé lors de la spécification d'un tableau, l'indice maximum + 1 sera utilisé comme clé par défaut. Si aucun indice numérique n'a été généré, ce sera 0. Si vous en spécifiez une qui a déjà été assignée, la nouvelle valeur écrasera la précédente.

Exemple 11-23. Indexation automatique de tableau

<?php
// Ce tableau est identique à
array(5 => 43, 32, 56, "b" => 12);

// Celui ci
array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?>

Avertissement

Depuis PHP 4.3.0, le comportement de la génération des index décrit plus haut a changé. Maintenant, si vous ajoutez une rangée à un tableau dans lequel la clé maximale est négative, alors, la prochaine clé créée sera zéro (0). Avant, le nouvel index était défini à l'index maximal plus un, le même comportement que lorsque l'indice est positif.

Utiliser TRUE comme clé revient à utiliser le type entier de valeur 1. Utiliser FALSE comme clé revient à utiliser le type entier de valeur 0. Utiliser NULL comme clé revient à utiliser le type chaîne de caractères de valeur "". Utiliser la chaîne vide comme index va créer cet index, et ce n'est pas la même chose que d'utiliser des crochets vides.

Il n'est pas possible d'utiliser des tableaux ou des objets comme clés. Ce faisant, vous généreriez une alerte : Illegal offset type.

La syntaxe à crochets

Vous pouvez aussi modifier un tableau existant en lui assignant simplement des valeurs.

L'assignation de valeurs de tableau se fait en spécifiant la clé entre crochets. Si vous omettez la clé ("$tableau[]"), la valeur sera ajoutée à la fin du tableau.

$arr[key] = value;
$arr[] = value;
// key est soit une chaîne de caractères, soit un entier
// value peut être n'importe quoi
Si $arr n'existe pas, il sera créé. Cela en fait une alternative pour créer un tableau. Pour modifier une valeur, assignez-lui une nouvelle valeur. Pour supprimer une valeur, utilisez la fonction unset().

Exemple 11-24. Manipuler des éléments de tableau

<?php
$arr = array(5 => 1, 12 => 2);

$arr[] = 56;    // Ceci revient à $arr[13] = 56;
                // à ce moment du script

$arr["x"] = 42; // Ceci ajoute un nouvel élément
                // avec l'index "x"

unset($arr[5]); // Ceci efface un élément du tableau

unset($arr);    // Ceci efface tout le tableau
?>

Note : Comme indiqué ci-dessus, si vous fournissez des crochets sans spécifier de clé, le plus grand index entier existant est recherché et la nouvelle clé générée est cette valeur maximum + 1. Si aucune clé entière n'existe, la valeur sera alors 0. Si vous spécifiez une clé qui est déjà existante, vous écraserez le contenu précédent.

Avertissement

Depuis PHP 4.3.0, la génération d'index a changé. Si vous ajoutez un élément et que la valeur maximale de la clé est négative, alors la prochaine clé générée est 0. Auparavant, c'était la plus grande valeur + 1, négative ou pas. Cela reste le comportement pour les clés positives.

Notez que le maximum théorique n'a pas besoin d'exister au moment de la génération. Il peut simplement avoir existé dans le tableau à un moment depuis la dernière fois où le tableau a été ré-indexé. L'exemple suivant illustre bien ceci :

Exemple 11-25. La génération automatique de clé peut utiliser un ancien maximum

<?php
// Crée un simple tableau
$array = array(1, 2, 3, 4, 5);
print_r($array);

// On efface tous les éléments, mais on conserve le tableau
foreach ($array as $i => $value) {
    unset($array[$i]);
}
print_r($array);

// On ajoute une valeur : notez que la nouvelle clé est 5
// et non pas 0, comme on l'attendrait.
$array[] = 6;
print_r($array);

// Re-indexation :
$array = array_values($array);
$array[] = 7;
print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Array
(
)
Array
(
    [5] => 6
)
Array
(
    [0] => 6
    [1] => 7
)

Fonctions pratiques

Il y a toute une panoplie de fonctions pratiques pour travailler avec les tableaux.

Note : La fonction unset() permet d'effacer des index dans un tableau. Sachez bien que le tableau ne sera PAS ré-indexé. Si vous utilisez uniquement des index numériques (commençant à zéro et incrémentés de un), vous pouvez effectuer la ré-indexation en utilisant array_values().

Exemple 11-26. Manipuler des éléments de tableau

<?php
$a = array(1 => 'un', 2 => 'deux', 3 => 'trois');
unset($a[2]);

/* Cela va produire un tableau qui aurait été
   $a = array(1 => 'un', 3 => 'trois');
   et non pas
   $a = array(1 => 'un', 2 =>'trois');
*/

$b = array_values($a);
// Maintenant b est le tableau array(1 => 'un', 2 =>'trois')
?>

L'élément de langage foreach est spécifiquement dédié aux tableaux : il permet de passer en revue simplement les valeurs d'un tableau.

À faire et à ne pas faire avec les tableaux

Pourquoi est-ce que $foo[bar] est invalide ?

Vous devez toujours utiliser les guillemets autour de la chaîne de caractères placée en tant qu'index du tableau. Par exemple, utilisez $foo['bar'] et non pas $foo[bar]. Mais, pourquoi $foo[bar] est faux ? Vous pourriez avoir vu la syntaxe suivante en vos vieux scripts :

Exemple 11-27. Accès aux index de tableaux, ancienne méthode

<?php
$foo[bar] = 'ennemi';
echo $foo[bar];
// etc.
?>
C'est mauvais, mais ça marche. Pourquoi est-ce mauvais ? La raison est que PHP attend une constante entre crochets (bar) plutôt qu'une chaîne ('bar', notez les guillemets). Or, PHP pourrait définir dans le futur des constantes qui, malheureusement pour votre code, auront ce nom. En fait, cela fonctionne car la constante indéfinie est transformée en chaîne ayant la même valeur.

Note : Cela ne signifie pas que vous devez toujours mettre les clés entre guillemets. Vous n'allez pas utiliser les guillemets avec les clés qui sont des constantes ou des variables, car cela empêchera PHP de les interpréter correctement.

Exemple 11-28. Ne pas mettre les clés de tableaux entre guillemets

<?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 "\nChecking $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 :

Checking 0:
Notice: Undefined index:  $i in /Users/iboom/Desktop/CVS/docs/mysql/mysql.fr/- on line 10
Mauvais :
Bon : 1
Notice: Undefined index:  $i in /Users/iboom/Desktop/CVS/docs/mysql/mysql.fr/- on line 12
Mauvais :
Bon : 1

Checking 1:
Notice: Undefined index:  $i in /Users/iboom/Desktop/CVS/docs/mysql/mysql.fr/- on line 10
Mauvais :
Bon : 2
Notice: Undefined index:  $i in /Users/iboom/Desktop/CVS/docs/mysql/mysql.fr/- on line 12
Mauvais :
Bon : 2

D'autres exemples :

Exemple 11-29. Exemples de conflits de constantes indéfinies

<?php
// Affichons toutes les erreurs
error_reporting(E_ALL);

$arr = array('fruit' => 'pomme', 'legume' => 'carotte');

// Correct
print $arr['fruit'];  // pomme
print $arr['legume']; // carotte

// Incorrect. Cela fonctionne mais PHP affiche une alerte car
// il y a utilisation d'une constante indéfinie appelée fruit
//
// Notice: Use of undefined constant fruit - assumed 'fruit' in...
print $arr[fruit];    // pomme

// Définissons une constante pour illustrer le problème.
// Nous créons une constante appelée fruit, qui vaut 'legume'.
define('fruit','legume');

// Notez la différence
print $arr['fruit'];  // pomme
print $arr[fruit];    // carotte

// La suite est correcte si cela se passe dans une chaîne.
// Les constantes ne sont pas remplacées par leur valeur dans une chaîne
print "Bonjour $arr[fruit]";      // Bonjour pomme

// À une exception près, les accolades entourant un tableau dans une chaîne
// permettent d'utiliser les constantes
print "Bonjour {$arr[fruit]}";    // Bonjour carotte
print "Bonjour {$arr['fruit']}";  // Bonjour pomme

// Ceci ne fonctionnera pas et donnera une erreur d'analyse
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// Cela s'applique aussi aux superglobales dans les chaînes
print "Bonjour $arr['fruit']";
print "Bonjour $_GET['foo']";

// La concaténation est une alternative
print "Bonjour " . $arr['fruit']; // Bonjour pomme
?>

Lorsque vous activez l'error_reporting() pour afficher les erreurs de niveau E_NOTICE (en utilisant le niveau E_ALL) alors, vous verrez ces erreurs. Par défaut, error_reporting est trop faible pour les afficher.

Comme indiqué dans la section syntaxe, il doit y avoir une expression entre les crochets ('[' et ']'). Cela signifie que vous pouvez écrire ceci :

Exemple 11-30. Utilisation d'une expression dans un index de tableau

<?php
echo $arr[somefunc($bar)];
?>
Ceci est un exemple d'utilisation de retour de fonction comme index de tableau. PHP reconnaît aussi les constantes, comme la famille des E_*.

Exemple 11-31. Utilisation d'une constante dans un index de tableau

<?php
$error_descriptions[E_ERROR]   = 'Une erreur fatale est survenue';
$error_descriptions[E_WARNING] = 'PHP émet une alerte';
$error_descriptions[E_NOTICE]  = 'Ceci est juste une alerte informelle';
?>
Notez que E_ERROR est aussi un identifiant valide, tout comme bar dans le premier exemple. Mais le dernier exemple est identique à ceci :

Exemple 11-32. Utilisation d'une constante dans un index de tableau(2)

<?php
$error_descriptions[1] = 'Une erreur fatale est survenue';
$error_descriptions[2] = 'PHP émet une alerte';
$error_descriptions[8] = 'Ceci est juste une alerte informationnelle';
?>
car E_ERROR vaut 1, etc.

Comme nous l'avons déjà expliqué dans les exemples ci-dessus, $foo[bar] fonctionne mais est dangereux. Cela fonctionne car bar est identifié comme une constante. Mais si la constante n'existe pas, PHP suppose que vous souhaitez utiliser bar littéralement, sous la forme "bar", mais que vous avez oublié les guillemets.

Pourquoi est-ce aussi dangereux ?

À l'avenir, le groupe PHP peut décider d'ajouter une constante ou un autre mot clé, ou bien vous souhaiterez aussi ajouter une constante dans votre application et vous serez bloqué. Par exemple, vous ne pouvez pas utiliser des mots comme empty et default de cette manière, car ils sont déjà réservés.

Note : Pour insister, à l'intérieur d'une chaîne de caractères (chaîne de caractères) à guillemets doubles, il est correct de ne pas utiliser les guillemets simples dans les index et donc "$foo[bar]" est valide. Voyez les exemples ci-dessus pour plus de détails sur la syntaxe des variables dans les chaînes.

Conversion en tableau

Pour les types scalaires (entier, nombre à virgule flottante, chaîne de caractères, booléen et ressource), convertir une valeur en tableau retourne un tableau qui contient un élément (à l'index 0) qui est la valeur originale.

Si vous convertissez un tableau en objet, vous obtiendrez des propriétés ou bien cet objet comme élément de tableau. Les clés créées sont les noms des membres avec quelques exceptions : les variables privées ont le nom de la classe ajouté au début du nom de la variable ; les variables protégées ont un '*' ajouté au début du nom de la variable. Ces valeurs ajoutées ont des octets nuls dans l'autre sens. Ceci peut avoir un comportement inattendu.

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

Ce qui précède laisse penser que nous avons 2 clés nommées 'AA', alors qu'une seule est actuellement nommée '\0A\0A'.

Si vous convertissez la valeur NULL en tableau, vous obtiendrez un tableau vide.

Comparaisons de tableaux

Il est possible de comparer des tableaux grâce à la fonction array_diff() et aux opérateurs de tableaux.

Exemples

Le type tableau de PHP est très souple. Voici quelques exemples d'utilisation :

Exemple 11-33. Utilisation des tableaux

<?php
// ceci
$a = array( 'couleur' => 'rouge',
             'gout' => 'sucre',
             'forme' => 'rond',
             'nom'  => 'pomme',
                        4        // cette clé sera 0
          );

// est complètement équivalent à
$a['couleur'] = 'rouge';
$a['gout'] =    'sucre';
$a['forme'] =   'rond';
$a['nom'] =     'pomme';
$a[]        = 4;        // cette clé sera 0

$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
// va créer le tableau array( 0 => 'a' , 1 => 'b' , 2 => 'c' )
// ou plus simplement array('a' , 'b' , 'c' )
?>

Exemple 11-34. Utilisation de array()

<?php
// Array comme correspondance
$map = array( 'version'    => 4,
               'OS'         => 'Linux',
               'langue'       => 'français',
               'short_tags' => TRUE
             );
// valeur strictement numériques
$array = array( 7,
                 8,
                 0,
                 156,
                 -10
                );
// ceci est la même chose que array( 0 => 7, 1 => 8, ...)
$switching = array(         10, // clé = 0
                     5    =>  6,
                     3    =>  7,
                     'a'  =>  4,
                             11, // clé = 6 (index maximum : 5)
                     '8'  =>  2, // clé = 8 (entier!)
                     '02' => 77, // clé = '02'
                     0    => 12 // la valeur de la clé 10 sera remplacée par 12
                    );

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

Exemple 11-35. Collection

<?php
$couleurs = array('rouge', 'bleue', 'verte', 'jaune');

foreach ( $couleurs as $couleur ){
    echo "Aimez-vous la couleur $couleur ?\n";
}

?>

L'exemple ci-dessus va afficher :

Aimez-vous la couleur rouge ?
Aimez-vous la couleur bleue ?
Aimez-vous la couleur verte ?
Aimez-vous la couleur jaune ?

Changer les valeur du tableau directement est possible depuis PHP 5 en les passant par référence. Les versions précédentes nécessitent cette solution :

Exemple 11-36. Collection

<?php
// PHP 5
foreach ($colors as &$color) {
  $color = strtoupper($color);
}
unset($color); /* s'assure que l'écriture suivante
à $color ne modifie pas le dernier élément du tableau */

// Solution pour les anciennes versions de PHP
foreach ($colors as $key => $color) {
$colors[$key] = strtoupper($color);
}

print_r($colors);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => ROUGE
    [1] => BLEU
    [2] => VERT
    [3] => JAUNE
)

Cet exemple crée un tableau d'index minimal 1.

Exemple 11-37. Tableau en 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 11-38. Remplissage d'un tableau

<?php
// remplit un tableau avec les noms de fichiers d'un dossier
$handle = opendir('.');
  while ( $file = readdir($handle) ) {
    $files[] = $file;
}
closedir($handle);
?>

Les tableaux sont ordonnés. Vous pouvez modifier l'ordre des valeurs avec de nombreuses fonctions de classement. Voyez les fonctions de tableaux pour plus d'informations. Vous pouvez compter le nombre d'éléments d'un tableau en utilisant la fonction count().

Exemple 11-39. Tri de tableaux

<?php
sort($files);
print_r($files);
?>

Comme une valeur de tableau peut être n'importe quoi, elle peut aussi être un autre tableau. Comme cela, vous pouvez avoir des tableaux multidimensionnels et récursifs.

Exemple 11-40. Tableaux multidimensionnels, et récursifs

<?php
$fruits = array ( "fruits"  => array ( "a" => "orange",
                                       "b" => "banane",
                                       "c" => "pomme"
                                     ),
                  "nombre" => array ( 1,
                                       2,
                                       3,
                                       4,
                                       5,
                                       6,
                                     ),
                  "trou"   => array (      "premier",
                                       5 => "second",
                                            "troisième"
                                     )
                );

// Exemples d'utilisation des tableaux ci-dessus
echo $fruits["trou"][5];    // affiche "second"
echo $fruits["fruits"]["a"]; // affiche "orange"
unset($fruits["trou"][0]);  // supprime "premier"

// Créer un tableau multidimensionnel
$jus["pomme"]["vert"] = 'bon';
?>

Soyez conscient que l'assignation de valeurs dans un tableau entraîne automatiquement la copie de ces valeurs. Cela signifie aussi que le pointeur interne du tableau utilisé par la fonction current() et les fonctions similaires est initialisé. Vous devez utiliser l'opérateur de référence pour copier un tableau par référence.

Exemple 11-41. Copie dans 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
?>

Précédent | Sommaire | Suivant
Les chaînes de caractères | Niveau supérieur | Les objets


Les objets

Initialisation d'un objet

Pour initialiser un objet, vous devez utiliser la commande "new" afin de créer l'instance de l'objet.

Exemple 11-42. Création d'un objet

<?php
class foo
{
    function faire_foo()
    {
        echo "Faisant foo.";
    }
}

$bar = new foo;
$bar->faire_foo();
?>

Pour une discussion complète, lisez la section sur les classes et les objets.

Conversion en objet

Si un objet est converti en objet, il n'est pas modifié. Si une valeur d'un autre type est convertie en objet, une nouvelle instance de la classe stdClass sera créée. Si la valeur était NULL, la nouvelle instance sera vide. La conversion d'un tableau en objet fera que les propriétés seront nommées par les clés du tableau et avec les valeurs correspondantes. Par toutes les autres valeurs, une variable membre nommée scalar contiendra la valeur.

Exemple 11-43. Transtypage

<?php
$obj = (object) 'au revoir';
echo $obj->scalar;  // affiche 'au revoir'
?>

Précédent | Sommaire | Suivant
Les tableaux | Niveau supérieur | Ressources


Ressources

Une ressource ("resource" en anglais), est un type spécial, qui représente une référence sur une ressource externe. Les ressources sont créées par des fonctions dédiées. Reportez-vous à l'annexe Types des ressources PHP pour une liste exhaustive des fonctions créant et utilisant ces ressources.

Note : Le type de données "resource" a été introduit en PHP 4.

Voir aussi la fonction get_resource_type().

Conversion en ressource

Comme les ressources contiennent des valeurs très spéciales, comme des fichiers ouverts, des connexions aux bases de données, des images ou n'importe quoi d'autre, vous ne pouvez pas convertir une valeur en ressource.

Libérer des ressources

Grâce au système de comptabilisation des références introduit en PHP 4 (avec le moteur Zend), PHP détecte automatiquement qu'une ressource n'est plus utilisée (comme Java). Dans ce cas, toutes les ressources systèmes utilisées par cette ressource sont libérées automatiquement. Pour cette raison, il est rarement nécessaire de libérer la mémoire manuellement en utilisant les fonctions free_result associées.

Note : Les connexions persistantes représentent un cas particulier, elles ne seront PAS détruites. Voyez la section concernant les connexions persistantes.

Précédent | Sommaire | Suivant
Les objets | Niveau supérieur | La valeur NULL


La valeur NULL

La valeur spéciale NULL représente l'absence de valeur. Une variable avec la valeur NULL n'a pas de valeur.

Note : Le type NULL a été introduit en PHP 4.

Une variable est considérée comme NULL si :

  • lui a été assignée la constante NULL.

  • elle n'a été définie à aucune valeur en fait.

  • elle a été détruite par la fonction unset().

Syntaxe

Il y a seulement une valeur de type NULL et c'est le mot-clé NULL, insensible à la casse.

Exemple 11-44. La valeur NULL

<?php
$var = NULL;
?>

Voir aussi is_null() et unset().

Précédent | Sommaire | Suivant
Ressources | Niveau supérieur | Pseudo-types utilisés dans cette documentation


Pseudo-types utilisés dans cette documentation

mixed

mixed indique qu'un paramètre accepte plusieurs types, mais pas forcément tous les types.

gettype() par exemple, accepte tous les types de variables PHP, mais str_replace() n'accepte que des chaînes de caractères et des tableaux.

number

number indique qu'un paramètre peut être du type entier ou nombre à virgule flottante.

callback

Certaines fonctions comme call_user_function() ou usort() acceptent une fonction définie par l'utilisateur comme fonction de callback. Les fonctions de callback peuvent être des fonctions simples, mais aussi des objets ou des méthodes statiques de classes.

Une fonction PHP est passée simplement en indiquant son nom, sous
forme de chaîne de caractères. Vous pouvez passer une fonction
intégrée au langage ou une fonction définie par vos soins, à
l'exception de
array(),
echo(),
empty(),
eval(),
exit(),
isset(),
list(),
print() et
unset().

Une méthode d'un objet instancié est passée sous forme de tableau, contenant un objet comme élément d'index 0 et un nom de méthode comme élément 1.

Les méthodes statiques de classe peuvent aussi être passées dans l'objet instancié, mais en passant le nom de la classe comme valeur de l'index 0.

À part les fonctions communes définies par l'utilisateur, create_function() peut être utilisée pour créer une fonction anonyme de callback.

Exemple 11-45. Exemple de fonction de callback

<?php
// Exemple de fonction de callback
function ma_fonction_callback() {
    echo 'Bonjour le monde !';
}

// Exemple de méthode de callback
class MaClasse {
  function MaMethodeCallback() {
    echo 'Bonjour le monde !';
  }
}

// Type 1: Callback simple
call_user_func('ma_fonction_callback');

// Type 2: Appel d'une méthode statique de la classe
call_user_func(array('MyClass', 'MaMethodeCallback'));

// Type 3: Appel d'une méthode objet
$obj = new MaClasse();
call_user_func(array(&$obj, 'MaMethodeCallback'));
?>

Note : En PHP 4, vous devez utiliser une référence pour créer un callback qui pointe vers l'objet actuel, et non une copie de celui-ci. Pour plus de détails, lisez l'explication sur les références.

void

void en tant que type retourné signifie que la valeur retournée est inutile. void dans une liste de paramètres signifie que la fonction n'accepte aucun paramètre.

Précédent | Sommaire | Suivant
La valeur NULL | Niveau supérieur | Définition du type


Définition du type

PHP ne nécessite pas de déclaration explicite du type d'une variable. Le type d'une variable est déterminé par le contexte d'utilisation. Par exemple, si vous assignez une chaîne de caractères à la variable $var, $var devient une chaîne de caractère. Si vous assignez un nombre entier à $var, elle devient un entier.

Un exemple de convertisseur automatique de type est l'opérateur '+'. Si un des opérandes est de type double, alors tous les opérandes sont évalués comme des variables de type double et le résultat est de type double. Sinon, tous les opérandes sont évalués comme des variables de type entier et le résultat sera du type entier. Il est à noter que cela NE CHANGE PAS le type des opérandes. Le seul changement est la manière dont les opérandes sont évalués.

Exemple 11-46. Conversion automatique

<?php
$foo = "0";  // $foo est une chaîne de caractères (ASCII 48)
$foo += 2;   // $foo est maintenant du type entier (2)
$foo = $foo + 1.3;  // $foo est maintenant du type double (3.3)
$foo = 5 + "10 Petits cochons"; // $foo est du type entier (15)
$foo = 5 + "10 cochonnets";     // $foo est du type entier (15)
?>

Si les deux derniers exemples vous semblent obscurs ou si vous voulez forcer une variable a être évaluée avec un certain type, reportez-vous au paragraphe " Conversion de types".

Si vous voulez forcer le type d'une variable, vous pouvez vous reporter à la section concernant le transtypage. Si vous voulez changer le type d'une variable, utilisez la fonction settype().

Note : Le comportement de la conversion automatique en tableau est en fait indéfini.

De plus, vu que PHP supporte l'indexation de chaînes via des offsets en utilisant la même syntaxe que pour l'indexation des tableaux, l'exemple suivant est valide, quelles que soient les versions de PHP :

Exemple 11-47. Conversion automatique indéfinie

<?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;       // affiche : bar
?>

Voyez la section concernant l'accès aux caractères d'une chaîne pour plus de détails.

Transtypage

La conversion de type en PHP fonctionne de la même manière qu'en C : le nom du type désiré est écrit entre parenthèses devant la variable à transtyper ("cast").

Exemple 11-48. Transtypage

<?php
$foo = 10;   // $foo est un entier
$bar = (double) $foo;   // $bar est un double
?>

Les conversions autorisées sont :

  • (int), (integer) - type entier

  • (bool), (boolean) - booléen

  • (double), (float), (real) - type double

  • (string) - type chaîne de caractère

  • (array) - type tableau

  • (object) - type objet

Il est à noter que les tabulations et les espaces sont autorisés à l'intérieur des parenthèses, donc les lignes suivantes sont équivalentes :

Exemple 11-49. Transtypage et espaces

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

Note : Au lieu de transtyper une variable en chaîne, vous pouvez aussi l'insérer entre deux guillemets doubles :

Exemple 11-50. Transtypage en chaîne

<?php
$foo = 10;            // $foo est un entier
$str = "$foo";        // $str est une chaîne
$fst = (string) $foo; // $fst est aussi une chaîne

// Ceci affiche : "Identique"
if ($fst === $str) {
    echo 'Identique';
}
?>

Le transtypage n'a pas toujours un résultat prévisible lors du transtypage entre certains types. Pour plus d'informations, lisez :

  • Conversion en booléen

  • Conversion en entier

  • Conversion en nombre décimal

  • Conversion en chaîne de caractères

  • Conversion en tableau

  • Conversion en objet

  • Conversion en ressource

  • Le tableau de comparaison de types

Précédent | Sommaire | Suivant
Pseudo-types utilisés dans cette documentation | Niveau supérieur | Les variables


Les variables

Manuel PHP
Précédent Suivant

Chapitre 12. Les variables

Table des matières
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 (i.e. $x != $X).

Les noms de variables suivent les mêmes règles de nommage que les autres entités PHP. Un nom de variable valide doit commencer par une lettre ou un souligné (_), suivi de lettres, chiffres ou soulignés. Exprimé sous la forme d'une expression régulière, cela donne : '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

Note : Dans nos propos, une lettre peut être une des lettres minuscules (a à z) ou majuscules (A à Z) et les caractères ASCII de 127 à 255 (0x7f-0xff).

Astuce : Vous pourriez également avoir besoin de jeter un oeil sur Annexe S.

Pour obtenir des informations sur une variable, voyez les fonctions dédiées aux variables.

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

En PHP 3, 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.

Depuis PHP 4, 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 12-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 12-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, zéro, chaîne vide ou un tableau vide.

Exemple 12-4. Valeurs par défaut des variables non initialisées

<?php
echo ($unset_bool ? "true" : "false"); // false
$unset_int += 25; // 0 + 25 => 25
echo $unset_string . "abc"; // "" . "abc" => "abc"
$unset_array[3] = "def"; // array() + array(3 => "def") => array(3 => "def")
?>

Utiliser la valeur par défaut d'une variable non initialisée est problèmatique lorsque vous incluez un fichier dans un autre qui utilise le même nom de variable. C'est également un risque niveau sécurité lorsque register_globals est activé. Une erreur de niveau E_NOTICE sera émise lorsque vous travaillerez avec des variables non initialisées, cependant, aucune erreur ne sera lancée lorsque vous tenterez d'insérer un élément dans un tableau non initialisé. La structure de langage isset() peut être utilisée pour détecter si une variable a déjà été initialisée.

Précédent | Sommaire | Suivant
Définition du type | Niveau supérieur | Variables pré-définies


Variables pré-définies

PHP fourni 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 exécutable.

Avertissement

Depuis la version PHP 4.2.0, la valeur par défaut de la directive PHP register_globals est off. Ceci est une évolution majeure de PHP. Avoir la directive register_globals à off affecte les variables pré-définies du contexte global. Par exemple, pour lire DOCUMENT_ROOT vous devez utiliser $_SERVER['DOCUMENT_ROOT'] au lieu de $DOCUMENT_ROOT ou bien, il faut lire $_GET['id'] dans l'URL http://www.example.com/test.php?id=3 au lieu de $id ou encore $_ENV['HOME'] au lieu de $HOME.

Pour des informations liées à cette évolution, lisez la documentation de la directive register_globals, le chapitre sur la sécurité, à propos de l'Utilisation des variables superglobales, ainsi que les annonces de PHP 4.1.0 et 4.2.0.

L'utilisation des variables pré-définies de PHP, comme les tableaux superglobaux, est recommandée.

Depuis la version 4.1.0, PHP fournit un jeu de tableaux pré-définis, contenant les variables du serveur (si possible), les variables d'environnement et celle d'entrées. Ces nouveaux tableaux sont un peu particuliers, car ils sont automatiquement globaux : ils sont automatiquement disponibles dans tous les environnements d'exécution, sans avoir à utiliser le mot réservé global. Pour cette raison, ils sont dits 'superglobaux' (il n'y a pas de mécanisme PHP pour créer de telles variables. Les superglobales sont listées ci-dessous. Cependant, pour connaître le détails de leur contenu et une présentation approfondie sur les variables pré-définies PHP et leur nature, reportez-vous à la section variables pré-définies. De plus, vous noterez que les anciennes variables pré-définies ($HTTP_*_VARS) existent toujours. Depuis PHP 5.0.0, les tableaux prédéfinis PHP peuvent être désactivés avec l'option de configuration register_long_arrays.

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

Note : Même si les superglobales et HTTP_*_VARS peuvent exister en même temps, elles ne sont pas identiques, donc, le changement d'une ne changera pas l'autre.

Si certaines variables de variables_order ne sont pas définies, leur tableau pré-défini PHP correspondant est laissé vide.

Tableaux superglobaux de PHP

$GLOBALS

Contient une référence sur chaque variable qui est en fait disponible dans l'environnement d'exécution global. Les clés de ce tableau sont les noms des variables globales. $GLOBALS existe depuis PHP 3.

$_SERVER

Les variables fournies par le serveur web, ou bien directement liées à l'environnement d'exécution du script courant. C'est la nouvelle version de l'ancienne variable $HTTP_SERVER_VARS, qui est maintenant obsolète, mais toujours là.

$_GET

Les variables fournies au script via la chaîne de requête URL. C'est la nouvelle version de l'ancienne variable $HTTP_GET_VARS qui est maintenant obsolète, mais toujours là.

$_POST

Les variables fournies par le protocole HTTP en méthode POST. C'est la nouvelle version de l'ancienne variable $HTTP_POST_VARS qui est maintenant obsolète, mais toujours là.

$_COOKIE

Les variables fournies par le protocole HTTP, dans les cookies. C'est la nouvelle version de l'ancienne variable $HTTP_COOKIE_VARS qui est maintenant obsolète, mais toujours là.

$_FILES

Les variables fournies par le protocole HTTP, suite à un téléchargement de fichier. C'est la nouvelle version de l'ancienne variable $HTTP_POST_FILES qui est maintenant obsolète, mais toujours là. Voir Téléchargement par méthode POST, pour plus d'informations.

$_ENV

Les variables fournies par l'environnement. C'est la nouvelle version de l'ancienne variable $HTTP_ENV_VARS qui est maintenant obsolète, mais toujours là.

$_REQUEST

Les variables fournies au script par n'importe quel mécanisme d'entrée et qui ne doivent recevoir qu'une confiance limitée. Note : lorsque vous exécutez un script en ligne de commande, cette variable ne va pas inclure les variables argv et argc. Elles seront présentes dans la variable $_SERVER. La présence et la valeur des entrées de ce tableau sont réglés par la directive variables_order. Ce tableau n'est l'évolution d'aucune variable d'avant PHP 4.1.0.

Attention

Depuis PHP 4.3.0, les informations de la variable $_FILES ne sont plus intégrées dans la variable $_REQUEST.

Note : En ligne de commande, cette variable n'inclut pas les variables argv et argc : elles sont stockées dans le tableau $_SERVER.

$_SESSION

Les variables qui sont en fait enregistrées dans la session attachée au script. C'est la nouvelle version de l'ancienne variable $HTTP_SESSION_VARS. Voir le chapitre sur la gestion des sessions pour plus d'informations.

Précédent | Sommaire | Suivant
Les variables | Niveau supérieur | Portée des variables


Portée des variables

La portée d'une variable dépend du contexte dans lequel la variable est définie. Pour la majorité des variables, la portée concerne la totalité d'un script PHP. Mais, lorsque vous définissez une fonction, la portée d'une variable définie dans cette fonction est locale à la fonction. Par exemple :

Exemple 12-5. 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 :

Exemple 12-6. Les variables sont locales à la fonction (2)

<?php
$a = 1; /* portée globale */

function test() {
    echo $a; /* portée locale */
}
test();
?>

Le script n'affichera rien à l'écran car l'instruction echo() utilise la variable locale $a, et celle-ci n'a pas été assignée préalablement dans la fonction. Vous pouvez noter que ce concept diffère un petit peu du langage C dans lequel une variable globale est automatiquement accessible dans les fonctions, à moins d'être redéfinie localement dans la fonction. Cela peut poser des problèmes si vous redéfinissez des variables globales localement. En PHP, une variable globale doit être déclarée à l'intérieur de chaque fonction afin de pouvoir être utilisée dans cette fonction.

Le mot clé global

Commençons par un exemple avec global :

Exemple 12-7. 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 12-8. 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 12-9. Les variables super globales

<?php
function test_global() {

    // La plupart des variables pré-définies ne sont pas des "superglobales" et
    // requièrent le mot-clé 'global' pour être disponibles dans une fonction.
    global $HTTP_POST_VARS;

    echo $HTTP_POST_VARS['name'];

    // Les superglobales sont accessibles dans tous les contextes
    // et ne requièrent pas 'global'.  Les superglobales sont disponibles
    // depuis &php; 4.1.0 et HTTP_POST_VARS est de plus en plus
    // déprécié.
    echo $_POST['name'];
}
?>

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 12-10. 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 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 12-11. Les variables statiques (2)

<?php
function Test() {
    static $a = 0;
    echo $a;
    $a++;
}
?>

Maintenant, à 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 :

Exemple 12-12. Les variables statiques et la récursivité

<?php
function Test()
{
    static $count = 0;
    $count++;
    echo $count;
    if ($count < 10) {
        Test();
    }
    $count--;
}
?>

Note : Les variables statiques doivent être déclarées comme dans l'exemple ci-dessus. Tenter d'assigner des valeurs à ces variables qui sont le résultat d'expressions causera une erreur d'analyse.

Exemple 12-13. Déclaration de variables statiques

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

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

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

Le Zend Engine 1, sur qui repose PHP 4, implémente les options static et global pour les variables, en terme de références. 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 :

Exemple 12-14. Les variables statiques et les références

<?php
function test_global_ref() {
    global $obj;
    $obj = &new stdclass;
}

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

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

L'exemple ci-dessus va afficher :

NULL
object(stdClass)(0) {
}

Un comportement similaire s'applique à la commande static. Les références ne sont pas stockées dynamiquement :

Exemple 12-15. Les variables statiques et les références (2)

<?php
function &get_instance_ref() {
    static $obj;

    echo 'Objet statique : ';
    var_dump($obj);
    if (!isset($obj)) {
        // Assigne une référence à une variable statique
        $obj = &new stdclass;
    }
    $obj->property++;
    return $obj;
}

function &get_instance_noref() {
    static $obj;

    echo 'Objet statique : ';
    var_dump($obj);
    if (!isset($obj)) {
        // Assigne une objet à une variable statique
        $obj = new stdclass;
    }
    $obj->property++;
    return $obj;
}

$obj1 = get_instance_ref();
$still_obj1 = get_instance_ref();
echo "\n";
$obj2 = get_instance_noref();
$still_obj2 = get_instance_noref();
?>

L'exemple ci-dessus va afficher :

Objet statique : NULL
Objet statique : NULL

Objet statique : NULL
Objet statique : object(stdClass)(1) {
  ["property"]=>
  int(1)
}

Ces exemples illustrent les problèmes rencontrés lors de l'assignation de référence à des variables statiques, qui sont oubliées lorsque vous appelez &get_instance_ref() une seconde fois.

Précédent | Sommaire | Suivant
Variables pré-définies | Niveau supérieur | Les variables dynamiques


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 :

Exemple 12-16. Une variable classique

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

Exemple 12-17. Les variables variables

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

Exemple 12-18. Equivalent de variables variables

<?php
echo "$a ${$a}";
?>

produira le même affichage que :

Exemple 12-19. Equivalent de variables variables

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

Avertissement

Notez que les variables dynamiques ne peuvent pas être utilisées avec les tableaux Superglobaux de PHP.

Précédent | Sommaire | Suivant
Portée des variables | Niveau supérieur | Variables externes à PHP


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. Par exemple, considérons le formulaire suivant :

Exemple 12-20. 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>

Suivant votre configuration particulière et vos préférences, vous avez plusieurs méthodes pour accéder aux variables du formulaires. Voici quelques exemples :

Exemple 12-21. Accéder simplement à des variables de formulaires POST

<?php
// Disponibles depuis &php; 4.1.0

   echo $_POST['username'];
   echo $_REQUEST['username'];

   import_request_variables('p', 'p_');
   echo $p_username;

// Disponibles depuis &php; 3.

   echo $HTTP_POST_VARS['username'];

// Disponibles si la directive register_globals = on.  Depuis
// &php; 4.2.0 la valeur par défaut de cette directive est register_globals = off.
// Utiliser ou présumer cette méthode est découragé.

   echo $username;
?>

Utiliser un formulaire de type GET est similaire, hormis le fait que vous deviez utiliser les variables pré-définies de GET à la place. GET s'applique aussi à la QUERY_STRING (les informations disponibles après le '?' dans une URL). De ce fait, par exemple, http://www.example.com/test.php?id=3 contient les données de GET, qui sont accessibles via $_GET['id']. Voyez aussi $_REQUEST et import_request_variables().

Note : Les tableaux superglobaux, comme $_POST et $_GET sont disponibles depuis PHP 4.1.0.

Comme nous l'avons déjà dis, avant PHP 4.2.0, la valeur par défaut de register_globals était on. Dans PHP 3, elle était toujours à On. La communauté PHP n'encourage personne à utiliser cette directive et privilégie la valeur off et un code accordé.

Note : La directive de configuration magic_quotes_gpc affecte les valeurs de GET, POST et cookies. Si elle est activée, une valeur comme celle de (C'est "PHP!") sera magiquement transformée en (C\'est \"PHP!\"). La protection des caractères est nécessaire pour l'insertion dans les bases de données. Voyez aussi les fonctions addslashes(), stripslashes() et magic_quotes_sybase.

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 12-22. Variables de formulaires complexes

<?php
if ($_POST['action'] == 'submitted') {
    echo '<pre>';

    print_r($_POST);
    echo '<a href="'. $_SERVER['PHP_SELF'] .'">Essayez à nouveau</a>';

    echo '</pre>';
} else {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Nom   :  <input type="text" name="personal[name]" /><br />
    Email : <input type="text" name="personal[email]" /><br />
    Biere : <br />
    <select multiple name="vin[]">
        <option value="bordeaux">bordeaux</option>
        <option value="beaujolais">beaujolais</option>
        <option value="loire">loire</option>
    </select><br />
    <input type="hidden" name="action" value="submitted" />
    <input type="submit" name="submit" value="submit me!" />
</form>
<?php
}
?>

En PHP 3, la syntaxe des tableaux HTML est limitée aux tableaux uni-dimensionnels. En PHP 4, ces limitations ont été levées.

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 :

Exemple 12-23. Utilisation d'une image pour soumettre un formulaire

<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 les spécifications de Netscape. Les cookies sont un mécanisme permettant de stocker des données sur la machine cliente à des fins d'identification de l'utilisateur. Vous pouvez établir un cookie grâce à la fonction setcookie(). Les cookies font partie intégrante des en-têtes HTTP et donc la fonction setcookie() doit être appelée avant que le moindre affichage ne soit envoyé au navigateur. C'est la même restriction que pour la fonction header(). Les données contenus dans les cookies sont alors disponibles dans les tableaux de cookies appopriés, comme $_COOKIE, $HTTP_COOKIE_VARS mais aussi $_REQUEST. Lisez la page de la documentation sur la fonction setcookie() pour plus de détails ainsi que des exemples.

Si vous souhaitez assigner plusieurs valeurs à un seul cookie, il vous faut ajouter les caractères [] au nom de votre cookie. Par exemple :

Exemple 12-24. Utilisation de tableaux avec les cookies

<?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 "path" 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 12-25. Exemple avec setcookie()

<?php
if (isset($_COOKIE['compte'])) {
    $compte = $_COOKIE['compte'] + 1;
} else {
    $compte = 1;
}
setcookie('Panier', $compte, time()+3600);
setcookie("Panier[$compte]", $item, time()+3600);
?>

Cas des points dans les noms de variables

Typiquement, PHP ne modifie pas les noms des variables lorsqu'elles sont passées à un script. Cependant, il faut noter que les points (.) ne sont pas autorisés dans les noms de variables PHP. Pour cette raison, jetez un oeil sur :

<?php
  $varname.ext;  /* nom de variable invalide */
?>
Dans ce cas, l'analyseur croit voir la variable nommée $varname, suivie par l'opérateur de concaténation, et suivie encore par la chaîne sans guillemets (une chaîne sans guillemets et qui n'a pas de signification particulière). Visiblement, ce n'est pas ce qu'on attendait...

Pour cette raison, il est important de noter que PHP remplacera automatiquement les points des noms de variables entrantes par des soulignés (underscore).

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 souhaîtez. 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 chapître sur les types.

Précédent | Sommaire | Suivant
Les variables dynamiques | Niveau supérieur | Les constantes


Les constantes

Manuel PHP
Précédent Suivant

Chapitre 13. Les constantes

Table des matières
Syntaxe
Constantes magiques

Une constante est un identifiant (un nom) qui représente une valeur simple. Comme son nom le suggère, cette valeur ne peut jamais être modifiée durant l'exécution du script (les constantes magiques __FILE__ et __LINE__ sont les seules exceptions). Le nom d'une constante est sensible à la casse, par défaut. Par convention, les constantes sont toujours en majuscules.

Les noms de constantes suivent les mêmes règles que n'importe quel nom en PHP. Un nom de constante valide commence par une lettre ou un souligné (_), suivi d'un nombre quelconque de lettre, chiffres ou soulignés. Sous forme d'expression régulière, cela peut s'exprimer comme ceci : [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Astuce : Vous pourriez également avoir besoin de jeter un oeil sur Annexe S.

Exemple 13-1. Noms valides et invalides pour les constantes

<?php
// Noms valides
define("FOO",     "something");
define("FOO2",    "something else");
define("FOO_BAR", "something more");

// Noms invalides
define("2FOO",    "something");

// Ce nom est valide, mais évitez-le:
// PHP peut un jour fournir une constante magique nommée
// ainsi, ce qui va corrompre vos scripts.
define("__FOO__", "something");

?>

Note : Dans cette documentation, une lettre peut être un des caractères suivants : de a à z, de A à Z et tous les caractères ASCII de 127 à 255 (0x7f-0xff).

Tous comme les superglobals, les constantes sont accessibles de manière globale. Vous pouvez la définir n'importe où, et y accéder depuis n'importe quelle fonction.

Syntaxe

Vous pouvez définir une constante en utilisant la fonction define(). Une fois qu'une constante est définie, elle ne peut jamais être modifiée, ou détruite.

Seuls les types de données scalaires peuvent être placés dans une constante : c'est à dire les types booléen, entier, double et chaîne de caractères (soit bool, entier, double et string). Les constantes de type resource ne peuvent pas être définies.

Vous pouvez accéder à la valeur d'une constante en spécifiant simplement son nom. Contrairement aux variables, vous ne devez PAS préfixer le nom de la constante avec $. Vous pouvez aussi utiliser la fonction constant(), pour lire dynamiquement la valeur d'une constante, dont vous obtenez le nom dynamiquement (retour de fonction, par exemple). Utilisez la fonction get_defined_constants() pour connaître la liste de toutes les constantes définies.

Note : Les constantes et les variables globales utilisent deux espaces de noms différents. Ce qui implique que TRUE et $TRUE sont généralement différents (en tous cas, ils peuvent avoir des valeurs différentes).

Lorsque vous utilisez une constante non définie, PHP suppose que vous utilisez le nom de la constante. Une note sera générée. Utilisez la fonction defined() pour savoir si une constante existe ou pas.

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 ne peuvent contenir que des scalaires.

Exemple 13-2. Définir une constante

<?php
  define("CONSTANTE", "Bonjour le monde.");
  echo CONSTANTE; // affiche "Bonjour le monde."
  echo Constante; // affiche "Constante" et une note.
?>

Voir aussi les constantes de classe.

Précédent | Sommaire | Suivant
Variables externes à PHP | Niveau supérieur | Constantes magiques


Constantes magiques

PHP fournit un grand nombre de constantes magiques. Certaines constantes sont définies par différentes extensions, et ne seront présentes que si ces extensions sont compilées avec PHP, ou bien si l'extension a été chargée dynamiquement.

Il y a cinq constantes magiques qui changent suivant l'emplacement où elles sont utilisées. Par exemple, la valeur de __LINE__ dépend de la ligne où vous l'utilisez dans votre script. Ces constantes spéciales sont insensibles à la casse.

Tableau 13-1. Quelques constantes PHP magiques

Nom | Description
__LINE__ | La ligne courante dans le fichier.
__FILE__ | Le chemin complet et le nom du fichier courant. Si utilisé dans un include, le nom du fichier inclus est retourné. Depuis PHP 4.0.2, __FILE__ contient toujours le chemin absolu alors que les anciennes versions contenaient le chemin relatif, dans certaines circonstances.
__FUNCTION__ | Le nom de la fonction. (Ajouté en PHP 4.3.0) Depuis PHP 5, cette constante retourne le nom de la fonction comme il a été déclaré (sensible à la casse). En PHP 4, cette valeur est toujours en minuscule.
__CLASS__ | Le nom de la classe courante. (Ajouté en PHP 4.3.0) Depuis PHP 5, cette constante retourne le nom de la classe comme il a été déclaré (sensible à la casse). En PHP 4, cette valeur est toujours en minuscule.
__METHOD__ | Le nom de la méthode courante. (Ajouté en PHP 5.0.0) Le nom de la méthode est retourné comme il a été déclaré (sensible à la casse).

Voir aussi
get_class(),
get_object_vars(),
file_exists() et
function_exists().

Précédent | Sommaire | Suivant
Les constantes | Niveau supérieur | Les expressions


Les expressions

Manuel PHP
Précédent Suivant

Chapitre 14. Les expressions

Les expressions sont la partie la plus importante de PHP. En PHP, presque tout ce que vous écrivez est une expression. La manière la plus simple de définir une expression est : "tout ce qui a une valeur".

Les formes les plus simples d'expressions sont les constantes et les variables. Lorsque vous écrivez "$a = 5", vous assignez la valeur '5' à la variable $a. Bien évidemment, '5' vaut 5 ou, en d'autres termes, '5' est une expression avec pour valeur 5 (dans ce cas, '5' est un entier constant).

Après cette assignation, vous pouvez considérer que $a a pour valeur 5 et donc, écrire $b = $a, revient à écrire $b = 5. En d'autres termes, $a est une expression avec une valeur de 5. Si tout fonctionne correctement, c'est exactement ce qui arrive.

Un exemple plus complexe concerne les fonctions. Par exemple, considérons la fonction suivante :

Exemple 14-1. Affectation d'expressions

<?php
function foo () {
    return 5;
}
?>

En supposant que vous êtes familiers avec le concept de fonction, (si ce n'est pas le cas, jetez un oeil au chapitre concernant les fonctions), vous serez d'accord que $c = foo() est équivalent à $c = 5, et vous aurez tout à fait raison. Les fonctions sont des expressions qui ont la valeur de leur "valeur de retour". Si foo() renvoie 5, la valeur de l'expression 'foo()' est 5. Habituellement, les fonctions ne font pas que renvoyer une valeur constante mais réalisent des traitements.

Bien sûr, les valeurs en PHP n'ont pas à être des valeurs numériques, comme c'est souvent le cas. PHP supporte quatre types de variables scalaires : les valeurs entières (entier), les nombres à virgule flottante (float), les chaînes de caractères (chaîne de caractères) et les booléens (boolean). (une variable scalaire est une variable que vous ne pouvez pas scinder en morceaux, au contraire des tableaux par exemple). PHP supporte aussi deux types composés : les tableaux et les objets. Chacun de ces types de variables peut être affecté ou renvoyé par une fonction.

Les utilisateurs de PHP/FI 2 ne verront aucun changement. Malgré tout, PHP va plus loin dans la gestion des expressions, comme le font d'autres langages. PHP est un langage orienté expression, dans le sens où presque tout est une expression. Considérons l'exemple dont nous avons déjà parlé, '$a = 5'. Il est facile de voir qu'il y a deux valeurs qui entrent en jeu ici, la valeur numérique constante '5' et la valeur de la variable $a qui est mise à jour à la valeur 5. Mais, la vérité est qu'il y a une autre valeur qui entre en jeu ici et c'est la valeur de l'assignation elle-même. L'assignation elle-même est assignée à une valeur, dans ce cas-là 5. En pratique, cela signifie que '$a = 5' est une expression qui a pour valeur 5. Donc, écrire '$b = ($a = 5)' revient à écrire '$a = 5; $b = 5;' (un point virgule marque la fin d'une instruction). Comme les assignations sont analysées de droite à gauche, vous pouvez aussi bien écrire '$b = $a = 5'.

Un autre bon exemple du langage orienté expression est la pre-incrémentation et la post-incrémentation, (ainsi que la décrémentation). Les utilisateurs de PHP/FI 2 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. En PHP/FI 2, l'instruction '$a++' n'a aucune valeur (c'est-à-dire que ce n'est pas une expression) et vous ne pouvez donc pas l'utiliser. PHP ajoute les possibilités d'incrémentation et de décrémentation comme c'est le cas dans le langage C. En PHP, comme en C, il y a deux types d'opérateurs d'incrémentation (pre-incrémentation et post-incrémentation). Les deux types d'opérateur d'incrémentation jouent le même rôle (c'est-à-dire qu'ils incrémentent la variable). La différence vient de la valeur de l'opérateur d'incrémentation. L'opérateur de pre-incrémentation, qui s'écrit '++$variable', évalue la valeur incrémentée (PHP incrémente la variable avant de lire la valeur de cette variable, d'où le nom de pre-incrémentation). L'opérateur de post-incrémentation, qui s'écrit '$variable++', évalue la valeur de la variable avant de l'incrémenter (PHP incrémente la variable après avoir lu sa valeur, d'où le nom de post-incrémentation).

Un type d'expression très commun est l'expression de comparaison. Ces expressions sont évaluées à 0 ou 1, autrement dit FALSE ou TRUE, respectivement. PHP supporte les opérateurs de comparaison > (plus grand que), => (plus grand ou égal), == (égal à), < (plus petit que), <= (plus petit ou égal). Ces expressions sont utilisées de manière courante dans les instructions conditionnelles, comme l'instruction if.

Pour le dernier exemple d'expression, nous allons parler des combinaisons d'opérateurs/assignation. Vous savez que si vous voulez incrémenter la variable $a d'une unité, vous devez simplement écrire '$a++'. 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. 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 :

Exemple 14-2. L'opérateur conditionnel ternaire

<?php
  $first ? $second : $third
?>
Si la valeur de la première sous-expression est vraie (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 :

Exemple 14-3. Pré et post-incrémentation : exemples

<?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. L'expression '$b = $a = 5;', '$a = 5' est 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 (PHP n'a pas de type booléen). La véritable valeur d'une expression en PHP est calculée de la même manière qu'en Perl. Toute valeur numérique différente de 0 est considérée comme étant TRUE. Une chaîne de caractères vide et la chaîne de caractère 0 sont considérées comme FALSE. Toutes les autres valeurs sont vraies. Avec les types de variables non-scalaires (les tableaux et les objets), s'ils ne contiennent aucun élément, renvoient FALSE, sinon, ils renvoient TRUE.

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.

Précédent | Sommaire | Suivant
Constantes magiques | Niveau supérieur | Les opérateurs


Les opérateurs

Manuel PHP
Précédent Suivant

Chapitre 15. Les opérateurs

Table des matières
La précédence des opérateurs
Les opérateurs arithmétiques
Les opérateurs d'assignation
Opérateurs sur les bits
Opérateurs de comparaison
Opérateur de contrôle d'erreur
Opérateur d'exécution
Opérateurs d'incrémentation et décrémentation
Les opérateurs logiques
Opérateurs de chaînes
Opérateurs de tableaux
Opérateurs de types

Un opérateur est quelque chose que vous alimentez avec une ou plusieurs valeurs (ou expression, dans le jargon de programmation) qui retourne une autre valeur (donc que la construction elle-même devient une expression). Donc, vous pouvez penser aux fonctions ou constructions qui retournent une valeur (comme print) comme opérateur et celles qui retournent rien du tout (comme echo).

Il y a trois types d'opérateurs. Le premier, l'opérateur unaire, qui opère sur une seule valeur, par exemple ! (l'opérateur de négation) ou ++ (l'opérateur d'incrémentation). Le second groupe, les opérateurs binaires ; ce groupe contient la plupart des opérateurs supportés par PHP qui sont listés ci-dessous dans la section "La précédence des opérateurs".

Le troisième groupe est le groupe des opérateurs de terminaison : ?:. Ils doivent être utilisés pour choisir entre deux expressions dépendantes d'une troisième, plutôt que sélectionner deux phrases ou chemins d'exécution. Les expressions ternaires environnantes avec des parenthèses sont une très bonne idée.

La précédence des opérateurs

La priorité des opérateurs spécifie l'ordre dans lequel les valeurs doivent être analysées. Par exemple, dans l'expression 1 + 5 * 3, le résultat est 16 et non 18, car la multiplication ("*") a une priorité supérieure par rapport à l'addition ("+"). Des parenthèses peuvent être utilisées pour forcer la priorité, si nécessaire. Par exemple : (1 + 5) * 3 donnera 18. Si la priorité d'opérateur est égale, l'associativité de gauche à droite est utilisée.

Le tableau suivant dresse une liste de la priorité des différents opérateurs dans un ordre décroissant de priorité. Les opérateurs sur une même ligne ont une priorité équivalente et, dans ce cas, leur association décide de l'ordre de leur évaluation.

Tableau 15-1. Précédence des opérateurs

Associativité | Opérateurs | Information additionnelle
non-associative | new | new
gauche | [ | array()
non-associatif | ++ -- | incrémentation/décrémentation
non-associatif | ~ - (int) (float) (string) (array) (object) @ | types
non-associatif | instanceof | types
gauche | * / % | arithmétique
gauche | + - . | arithmétique et chaîne de caractères
gauche | << >> | bitwise
non-associatif | < <= > >= | comparaison
non-associatif | == != === !== | comparaison
gauche | & | bitwise et références
gauche | ^ | bitwise
gauche | | | bitwise
gauche | && | logique
gauche | || | logique
gauche | ? : | ternaire
droite | = += -= *= /= .= %= &= |= ^= <<= >>= | assignement
gauche | and | logique
gauche | xor | logique
gauche | or | logique
gauche | , | plusieurs utilisations

L'associativité de gauche signifie que l'expression est évaluée de gauche à droite, l'associativité de droite, l'inverse.

Exemple 15-1. Associativité

<?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2

$a = 1;
$b = 2;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
?>
Utilisez les parenthèses pour augmenter la lisibilité du code.

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.

Précédent | Sommaire | Suivant
Les expressions | Niveau supérieur | Les opérateurs arithmétiques


Les opérateurs arithmétiques

Vous rappelez-vous des opérations élémentaires apprises à l'école ? Les opérateurs arithmétiques fonctionnent comme elles.

Tableau 15-2. Opérations élémentaires

Exemple | Nom | Résultat
-$a | Négation | Opposé de $a.
$a + $b | Addition | Somme de $a et $b.
$a - $b | Soustraction | Différence de $a et $b.
$a * $b | Multiplication | Produit de $a et $b.
$a / $b | Division | Quotient de $a et $b.
$a % $b | Modulo | Reste de $a divisé par $b.

L'opérateur de division ("/") retourne une valeur entière (le résultat d'une division entière) si les deux opérandes sont entiers (ou bien des chaînes converties en entier).

Note : Souvenez-vous que $a % $b est négatif si $a est négatif.

Voir aussi le manuel sur les fonctions mathématiques.

Précédent | Sommaire | Suivant
Les opérateurs | Niveau supérieur | Les opérateurs d'assignation


Les opérateurs d'assignation

L'opérateur d'assignation 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'assignation est la valeur assignée. Par exemple, la valeur de l'expression '$a = 3' est la valeur 3. Cela permet d'utiliser des astuces telles que :

Exemple 15-2. Astuce d'assignation

<?php
$a = ($b = 4) + 5;
// $a est maintenant égal à 9, et $b vaut 4.
?>

En plus du simple opérateur d'assignation, 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 :

Exemple 15-3. Exemples avec les opérateurs d'assignation

<?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'assignation copie le contenu de la variable originale dans la nouvelle variable (assignation 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. Depuis PHP 4, l'assignation par référence est supportée, en utilisant la syntaxe $var = &$othervar;, mais ce n'était pas possible en PHP 3. 'L'assignation par référence' signifie que les deux variables contiennent les mêmes données, et que la modification de l'une affecte l'autre et rien n'est copié nul part. Pour plus d'informations sur les références, lisez l'explication sur les références. Depuis PHP 5, les objets sont assignés par référence, sans une demande spécifique du contraire en utilisant le nouveau mot clé clone.

Précédent | Sommaire | Suivant
Les opérateurs arithmétiques | Niveau supérieur | Opérateurs sur les bits


Opérateurs sur les bits

Les opérateurs sur les bits vous permettent de manipuler les bits dans un entier. Si les paramètres de gauche et de droite sont des chaînes de caractères, l'opérateur de bits agira sur les valeurs ASCII de ces caractères.

Exemple 15-4. Exemples avec les opérateurs sur les bits

<?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 la valeur asciie : s #0 #4 #0 #0 #0
                                 // 'a' ^ 'e' = #4
?>

Tableau 15-3. Les opérateurs sur les bits

Exemple | Nom | Résultat
$a & $b | ET (And) | Les bits positionnés à 1 dans $a ET dans $b sont positionnés à 1.
$a | $b | OU (Or) | Les bits positionnés à 1 dans $a OU $b sont positionnés à 1.
$a ^ $b | Xor | Les bits positionnés à 1 dans $a OU dans $b mais pas dans les deux sont positionnés à 1.
~ $a | NON (Not) | Les bits qui sont positionnés à 1 dans $a sont positionnés à 0, et vice versa.
$a << $b | Décalage à gauche | Décale les bits de $a, $b fois sur la gauche (chaque décalage équivaut à une multiplication par 2).
$a >> $b | Décalage à droite | Décalage des bits de $a, $b fois par la droite (chaque décalage équivaut à une division par 2).

Avertissement

N'effectuez pas de décalage à droite de plus de 32 bits sur les systèmes 32 bits. N'effectuez pas de décalage à droite dans le cas où le résultat est un nombre plus long que 32 bits.

Précédent | Sommaire | Suivant
Les opérateurs d'assignation | Niveau supérieur | Opérateurs de comparaison


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.

Tableau 15-4. Opérateurs de comparaison

Exemple | Nom | Résultat
$a == $b | Egal | TRUE si $a est égal à $b.
$a === $b | Identique | TRUE si $a est égal à $b et qu'ils sont de même type (introduit en PHP 4).
$a != $b | Différent | TRUE si $a est différent de $b.
$a <> $b | Différent | TRUE si $a est différent de $b.
$a !== $b | Différent | TRUE si $a est différent de $b ou bien qu'ils ne sont pas du même type. (introduit en PHP 4)
$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.

Si vous comparez un entier avec une chaîne, la chaîne est convertie en un nombre. Si vous comparez deux chaînes numériques, elles seront comparées en tant qu'entiers. Ces règles s'appliquent aussi à l'instruction switch.

<?php
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true

switch ("a") {
case 0:
    echo "0";
    break;
case "a": // jamais évalué parce que "a" est déjà trouvé avec 0
    echo "a";
    break;
}
?>

Pour les différents types, la comparaison est faite en suivant la table suivante (dans l'ordre).

Tableau 15-5. Comparaison avec plusieurs types

Type de l'opérande 1 | Type de l'opérande 2 | Résultat
null ou chaîne de caractères | string | Convertit NULL en "", comparaison numérique ou lexicale
booléen ou null | N'importe quoi | Convertit en booléen, FALSE < TRUE
objet | objet | Les classes internes peuvent définir leur propre méthode de comparaison; différentes classes ne sont pas comparables; entre objets de même classe, la comparaison se fait de la même façon que pour les tableaux (PHP 4), PHP 5 a son propre comportement
chaîne de caractères, ressource ou nombre | chaîne de caractères, ressource ou nombre | Transforme les chaînes de caractères et les ressources en nombres
tableaux | tableaux | Le tableau avec le moins de membres est plus petit, si la clé de l'opérande 1 n'est pas trouvée dans l'opérande 2, alors les tableaux ne sont pas comparables, sinon la comparaison se fait valeur par valeur (voir l'exemple suivant)
tableau | N'importe quoi | Le tableau est toujours plus grand
objet | N'importe quoi | L'objet est toujours plus grand

Exemple 15-5. Transcription des comparaisons standards des tableaux

<?php
// Les tableaux sont comparés comme ceci avec les opérateurs standards de comparaison
function standard_array_compare($op1, $op2)
{
   if (count($op1) < count($op2)) {
      return -1; // $op1 < $op2
   } elseif (count($op1) > count($op2)) {
      return 1; // $op1 > $op2
   }
   foreach ($op1 as $key => $val) {
      if (!array_key_exists($key, $op2)) {
         return null; // incomparable
      } elseif ($val < $op2[$key]) {
         return -1;
      } elseif ($val > $op2[$key]) {
         return 1;
      }
   }
   return 0; // $op1 == $op2
}
?>

Voir aussi strcasecmp(), strcmp() les opérateurs de tableaux, et le chapitre sur les types.

L'opérateur ternaire

Un autre opérateur conditionnel est l'opérateur ternaire (":?").

Exemple 15-6. Assignement 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.

Note : Notez que l'opérateur ternaire est une instruction, et il n'est pas évalué en tant que variable, mais en tant que résultat de l'instruction. Il est important de 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 dans les versions supérieures de PHP.

Note : Il est recommandé de ne pas "empiler" les expressions ternaires. Le comportement de PHP lors de l'utilisation de plus d'un opérateur ternaire dans une seule instruction n'est pas évident :

Exemple 15-7. Comportement de PHP

<?php
// A première vue, ce qui suit devrait retourner 'true'
echo (true?'true':false?'t':'f');

// cependant, l'expression ci-dessus retournera 't'
// car l'expression ternaire est évaluée de gauche à droite

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

// ici, vous pouvez voir que la première expression est évaluée à 'true',
// ce qui fait qu'elle est évaluée à (bool)true, ce qui retourne la branche
// 'vraie' de la seconde expression ternaire.
?>

Précédent | Sommaire | Suivant
Opérateurs sur les bits | Niveau supérieur | Opérateur de contrôle d'erreur


Opérateur de contrôle d'erreur

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

Si l'option track_errors est activée, les messages d'erreurs générés par une expression seront sauvés dans la variable globale $php_errormsg. Cette variable sera écrasée à chaque erreur. Il faut alors la surveiller souvent pour pouvoir l'utiliser.

Exemple 15-8. Opérateur de contrôle d'erreur

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

// Cela fonctionne avec n'importe quelle expression, pas seulement les fonctions
  $value = @$cache[$key];
// la ligne ci-dessus n'affichera pas d'alerte si la clé $key du tableau n'existe pas

?>

Note : L'opérateur @ ne fonctionne qu'avec les expressions. La règle générale de fonctionnement est la suivante : si vous pouvez prendre la valeur de quelque chose, vous pouvez le préfixer avec @. Par exemple, vous pouvez ajouter @ aux variables, fonctions, à include(), aux constantes, etc. Vous ne pourrez pas le faire avec des éléments de langage tels que les classes, if et foreach, etc.

Voir aussi error_reporting() et la section sur la gestion d'erreurs.

Avertissement

En fait, l'opérateur "@" va aussi désactiver les rapports d'erreurs critiques, qui stoppent l'exécution du script. Entre autres, si vous utilisez "@" pour supprimer les erreurs de certaines fonctions, et que cette fonction n'existe pas, ou qu'elle a été mal orthographiée, vous n'aurez aucune indication.

Précédent | Sommaire | Suivant
Opérateurs de comparaison | Niveau supérieur | Opérateur d'exécution


Opérateur d'exécution

PHP supporte un opérateur d'exécution : guillemets obliques ("``"). Notez bien qu'il ne s'agit pas de guillemets simples. PHP essaie d'exécuter le contenu de ces guillemets obliques comme une commande shell. Le résultat sera retourné (i.e. : il ne sera pas simplement envoyé à la sortie standard, il peut être assigné à une variable). Utilisez les guillemets obliques revient à utiliser la fonction shell_exec().

Exemple 15-9. Opérateur d'exécution

<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>

Note : Cet opérateur est désactivé lorsque le safe mode est activé ou bien que la fonction shell_exec() est désactivée.

Voir aussi le manuel à la section sur les fonctions d'exécution système, popen(), proc_open() et l'utilisation de PHP en ligne de commande.

Précédent | Sommaire | Suivant
Opérateur de contrôle d'erreur | Niveau supérieur | Opérateurs d'incrémentation et décrémentation


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

PHP supporte les opérateurs de pre- et post-incrémentation et décrémentation, comme en langage C.

Note : Les opérateurs d'incrémentation/décrémentation n'affectent pas les valeurs booléennes. La décrémentation des valeurs NULL n'a également aucun effet, mais leur incrémentation donnera comme résultat 1.

Tableau 15-6. 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 l'incrémente 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

Exemple 15-10. Exemples d'incrémentations et décrémentations

<?php
echo '<h3>Post-incrémentation</h3>';
$a = 5;
echo "Devrait valoir  5: " . $a++ . "<br />\n";
echo "Devrait valoir  6: " . $a . "<br />\n";
echo '<h3>Pre-incrémentation</h3>';
$a = 5;
echo "Devrait valoir  6: " . ++$a . "<br />\n";
echo "Devrait valoir  6: " . $a . "<br />\n";
echo '<h3>Post-décrémentation</h3>';
$a = 5;
echo "Devrait valoir  5: " . $a-- . "<br />\n";
echo "Devrait valoir  4: " . $a . "<br />\n";
echo '<h3>Pre-décrémentation</h3>';
$a = 5;
echo "Devrait valoir  4: " . --$a . "<br />\n";
echo "Devrait valoir  4: " . $a . "<br />\n";
?>

PHP suit les conventions de Perl pour la gestion des opérateurs arithmétiques, et non pas celle du C. Par exemple, en Perl 'Z'+1 retourne 'AA', alors qu'en C, 'Z'+1 retourne '[' (ord('Z') == 90, donc ord('[') == 91). Notez que les variables de caractères peuvent être incrémentées, mais pas décrémentées et même seuls les caractères ASCII (a-z et A-Z) sont supportés.

Exemple 15-11. Opérations arithmétiques sur un caractère

<?php
$i = 'W';
for($n=0; $n<6; $n++) {
  echo ++$i . "\n";
}
?>

L'exemple ci-dessus va afficher :

X
Y
Z
AA
AB
AC

L'incrémentation ou la décrémentation d'un booléen n'a aucun effet.

Précédent | Sommaire | Suivant
Opérateur d'exécution | Niveau supérieur | Les opérateurs logiques


Les opérateurs logiques

Tableau 15-7. Les opérateurs logiques

Exemple | Nom | Résultat
$a and $b | ET (And) | Vrai si $a ET $b sont vrais.
$a or $b | OU (Or) | Vrai si $a OU $b est vrai
$a xor $b | XOR (Xor) | Vrai si $a OU $b est vrai, mais pas les deux en même temps.
! $a | NON (Not) | Vrai si $a est faux.
$a && $b | ET (And) | Vrai si $a ET $b sont vrais.
$a || $b | OU (Or) | Vrai si $a OU $b est vrai.

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.

Précédent | Sommaire | Suivant
Opérateurs d'incrémentation et décrémentation | Niveau supérieur | Opérateurs de chaînes


Opérateurs de chaînes

Il y a deux opérateurs de chaînes de caractères string. Le premier est l'opérateur de concaténation ('.'), qui retourne la concaténation de ses deux arguments. Le second est l'opérateur d'assignation concaténant (.=). Reportez-vous à opérateurs d'assignation pour plus de détails.

Exemple 15-12. Opérateur de concaténation

<?php
$a = "Bonjour ";
$b = $a . "Monde !"; // $b contient "Bonjour Monde !"

$a = "Bonjour ";
$a = $a . "Monde !"; // $a contient "Bonjour Monde !"
?>

Voir aussi les sections du manuel sur les types de chaînes de caractères et les chaînes de caractères.

Précédent | Sommaire | Suivant
Les opérateurs logiques | Niveau supérieur | Opérateurs de tableaux


Opérateurs de tableaux

Tableau 15-8. Opérateurs de tableaux

Exemple | Nom | Résultat
$a + $b | Union | Union de $a et $b.
$a == $b | Egalité | TRUE si $a et $b contiennent les mêmes paires clés/valeurs.
$a === $b | Identique | TRUE si $a et $b contiennent les mêmes paires clés/valeurs dans le même ordre et du même type.
$a != $b | Inégalité | TRUE si $a n'est pas égal à $b.
$a <> $b | Inégalité | TRUE si $a n'est pas égal à $b.
$a !== $b | Non-identique | TRUE si $a n'est pas identique à $b.

Le seul opérateur en PHP pour les tableaux est l'opérateur +. Cet opérateur ajoute le tableau de droite au tableau de gauche. Les clés communes sont laissées inchangées.

Exemple 15-13. Addition de tableaux

<?php
$a = array("a" => "pomme", "b" => "banane");
$b = array("a" =>"poire", "b" => "fraise", "c" => "cerise");

$c = $a + $b; // Union de $a et $b
echo "Union de \$a et \$b : \n";
var_dump($c);

$c = $b + $a; // Union de $b et $a
echo "Union de \$b et \$a : \n";
var_dump($c);
?>

L'exemple ci-dessus va afficher :

Union de $a et $b :
array(3) {
  ["a"]=>
  string(5) "pomme"
  ["b"]=>
  string(6) "banane"
  ["c"]=>
  string(6) "cerise"
}
Union de $b et $a :
array(3) {
  ["a"]=>
  string(5) "poire"
  ["b"]=>
  string(6) "fraise"
  ["c"]=>
  string(6) "cerise"
}

Les éléments d'un tableau sont égaux en terme de comparaison s'ils ont la même clé et la même valeur.

Exemple 15-14. Comparer des tableaux

<?php
$a = array("pomme", "banane");
$b = array(1 => "banane", "0" => "pomme");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

Voyez aussi le manuel aux sections Tableaux et fonctions de tableaux.

Précédent | Sommaire | Suivant
Opérateurs de chaînes | Niveau supérieur | Opérateurs de types


Opérateurs de types

instanceof est utilisé pour déterminr si une variable PHP est un objet instancié d'une certaine classe :

Exemple 15-15. Using instanceof with classes

<?php
class MyClass
{
}
class NotMyClass
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>

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 15-16. 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)
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 15-17. Utilisation de instanceof pour une classe

<?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 litéral, il peut également être utilisé avec un autre objet ou une chaîne représentant une variable :

Exemple 15-18. 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)

Il y a quelque piège à éviter. Avant PHP version 5.1.0, instanceof appelera __autoload() si le nom de la classe n'existe pas. De plus, si la classe n'a pas été chargée, une erreur fatale sera émise. Ceci peut fonctionner en utilisant une référence de classe dynamique, ou une chaîne représentant une variable contenant le nom de la classe :

Exemple 15-19. Pas de recherche sur le nom de la classe et une erreur fatale avec instanceof en ??? 5.0

<?php
$d = 'NotMyClass';
var_dump($a instanceof $d); // no fatal error here
?>

L'exemple ci-dessus va afficher :

bool(false)

L'opérateur instanceof a été introduit en PHP 5. Avant cette version, is_a() était utilisé mais is_a() est depuis devenu obsolète, en faveur de instanceof.

Voir aussi get_class() et is_a().

Précédent | Sommaire | Suivant
Opérateurs de tableaux | Niveau supérieur | Les structures de contrôle


Les structures de contrôle

Manuel PHP
Précédent Suivant

Chapitre 16. Les structures de contrôle

Table des matières
if
else
elseif
Syntaxe alternative
while
do-while
for
foreach
break
continue
switch
declare
return()
require()
include()
require_once()
include_once()

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'instruction sont décrits dans ce chapitre.

if

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 :

Exemple 16-1. Instruction if ()

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 :

Exemple 16-2. Instruction if () (2)

<?php
if ($a > $b)
    print "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 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, et assigne la valeur de la variable $a à la variable $b :

Exemple 16-3. Instruction if () et bloc

<?php
if ($a > $b) {
  echo "a est plus grand que b";
  $b = $a;
}
?>

Vous pouvez imbriquer indéfiniment des instructions if les unes dans les autres, ce qui permet une grande flexibilité dans l'exécution d'une partie de code suivant un grand nombre de conditions.

Précédent | Sommaire | Suivant
Opérateurs de types | Niveau supérieur | else


else

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 $a, et a est plus petit que b sinon :

Exemple 16-4. Instruction if () else

<?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 si elle n'est pas suivi par l'expression elseif - uniquement si elles sont évaluées à FALSE (voir elseif).

Précédent | Sommaire | Suivant
Les structures de contrôle | Niveau supérieur | elseif


elseif

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 :

Exemple 16-5. Instruction elseif

<?php
if ($a > $b) {
    echo "a est plus grand que b";
} elseif ($a == $b) {
    echo "a est égal à b";
} else {
    echo "a est plus petit que b";
}
?>

Vous pouvez avoir plusieurs elseif qui se suivent les uns après les autres, après un if initial. Le premier elseif qui sera évalué à TRUE sera exécuté. En PHP, vous pouvez aussi écrire "else if" en deux mots et son comportement sera identique à la version en un seul mot. La sémantique des deux expressions est légèrement différente, mais au bout du compte, le résultat sera exactement le même.

L'expression elseif est exécutée seulement si le if précédent et tout autre elseif précédent sont évalués comme FALSE, et que votre elseif est évalué à TRUE.

Précédent | Sommaire | Suivant
else | Niveau supérieur | Syntaxe alternative


Syntaxe alternative

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; ou endswitch;.

Exemple 16-6. Instruction alternative if()

<?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 elsif et un else utilisant cette autre syntaxe :

Exemple 16-7. Instruction alternative if() elseif() et else

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

Voir aussi while, for, et if pour d'autres exemples.

Précédent | Sommaire | Suivant
elseif | Niveau supérieur | while


while

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 :

Exemple 16-8. Instruction while

while (expression)
  commandes

La signification d'une boucle while est très simple. PHP exécute l'instruction tant que l'expression de la boucle while est évaluée comme TRUE. La valeur de l'expression est vérifiée à chaque début de boucle, et, si la valeur change durant l'exécution de l'instruction, l'exécution ne s'arrêtera qu'à la fin de l'itération (chaque fois que PHP exécute l'instruction, on appelle cela une itération). De temps en temps, si l'expression du while est FALSE avant la première itération, l'instruction ne sera jamais exécutée.

Comme avec le if, vous pouvez regrouper plusieurs instructions dans la même boucle while en les regroupant à l'intérieur de parenthèses ou en utilisant la syntaxe suivante :

Exemple 16-9. Instruction while avec bloc

while (expression):
  commandes
  ...
endwhile;

Les exemples suivants sont identiques et affichent tous les nombres de 1 à 10 :

Exemple 16-10. Exemple avec while

<?php
/* exemple 1 */

$i = 1;
while ($i <= 10) {
    echo $i++;  /* La valeur affiche est $i avant l'incrémentation
                     (post-incrémentation)  */
}

/* exemple 2 */

$i = 1;
while ($i <= 10):
    echo $i;
    $i++;
endwhile;
?>

Précédent | Sommaire | Suivant
Syntaxe alternative | Niveau supérieur | do-while


do-while

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 (l'expression est vérifiée au début de chaque itération).

Il n'y a qu'une syntaxe possible pour les boucles do-while :

Exemple 16-11. Instruction 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 l'encapsulant dans un do-while(0) la fonction break. Le code suivant montre une utilisation possible :

Exemple 16-12. Instruction while et break

<?php
do {
    if ($i < 5) {
        echo "i n'est pas suffisamment grand";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
   echo "i est bon";

    /* ...traitement de i... */

} while (0);
?>

Ne vous inquiétez pas si vous ne comprenez pas tout correctement. Vous pouvez écrire des scripts très très puissants sans utiliser cette fonctionnalité.

Précédent | Sommaire | Suivant
while | Niveau supérieur | for


for

Les boucles for sont les boucles les plus complexes en PHP. Elles fonctionnent comme les boucles for du langage C. La syntaxe des boucles for est la suivante :

Exemple 16-13. Instruction for

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 l'instruction est exécutée. 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. Les expressions séparées par une virgule dans expr2 sont traitées de la même façon que si elles avaient été séparées par l'opérateur || mais avec une priorité moins élevées. Si l'expression expr2 est laissée vide, cela signifie que c'est une boucle infinie (PHP considère implicitement qu'elle vaut TRUE, comme en C). Cela n'est pas vraiment très utile, à moins que vous souhaitiez terminer votre boucle par l'instruction conditionnelle break.

Considérons les exemples suivants. Tous affichent les chiffres de 1 à 10 :

Exemple 16-14. Exemple de boucles

<?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 pensez qu'utiliser une expression vide dans une boucle for peut être utile parfois.

PHP supporte aussi la syntaxe alternative suivante pour les boucles for :

Exemple 16-15. Instruction for alternative

for (expr1; expr2; expr3):
  commandes;
  ...;
endfor;

Précédent | Sommaire | Suivant
do-while | Niveau supérieur | foreach


foreach

PHP 4 introduit une commande foreach, comme en Perl ou d'autres langages. C'est un moyen simple de passer en revue un tableau. Il y a deux syntaxes possibles : la seconde est une extension mineure mais pratique de la première.

Exemple 16-16. Instruction foreach

foreach(array_expression as $value)
  commandes
foreach(array_expression as $key => $value)
  commandes

La première forme passe en revue le tableau array_expression. À chaque itération, la valeur de l'élément courant est assignée à $value et le pointeur interne de tableau est avancé d'un élément (ce qui fait qu'à la prochaine itération, on accédera à l'élément suivant).

La deuxième forme fait exactement la même chose, mais c'est la clé de l'élément courant qui est assigné à la variable $key.

Depuis PHP 5, il est possible d' itérer également des objets.

Note : Lorsque foreach démarre, le pointeur interne de fichier est automatiquement ramené au premier élément du tableau. Cela signifie que vous n'aurez pas à faire appel à reset() avant foreach.

Note : Bien que le tableau soit référencé, foreach travaille sur une copie du tableau spécifié, et pas sur le tableau lui-même. Par conséquent, le pointeur de tableau n'est pas modifié, comme il le serait avec le fonction each(), et les modifications faites dans le tableau ne seront pas prises en compte dans le tableau original. Cependant, le pointeur interne du tableau original est avancé avec le traitement du tableau. En supposant sur la boucle foreach effectue tout le traitement, le pointeur interne du tableau sera à la fin du tableau.

Depuis PHP 5, vous pouvez facilement modifier les éléments d'un tableau en faisant précéder la valeur $value avec &. Ceci aura pour effet d'assigner par 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)
?>

Ceci n'est possible que si le tableau itéré peut être réféencé (i.e. est une variable).

Note : foreach n'accepte pas l'opérateur de suppression des erreurs @.

Vous pouvez remarquer que les exemples suivants fonctionnent de manière identique :

Exemple 16-17. Instruction foreach et while

<?php
$arr = array("un", "deux", "trois");
reset($arr);
while (list(, $value) = each($arr)) {
    echo "Valeur : $value<br />\n";
}

foreach ($arr as $value) {
    echo "Valeur : $value<br />\n";
}
?>
Les exemples suivants sont aussi fonctionnellement identiques :

Exemple 16-18. Instruction foreachet while(2)

<?php
$arr = array("un", "deux", "trois");
reset($arr);
while (list($key, $value) = each($arr)) {
    echo "Clé : $key; Valeur : $value<br />\n";
}

foreach ($arr as $key => $value) {
    echo "Clé : $key; Valeur : $value<br />\n";
}
?>

Voici quelques exemples de plus :

Exemple 16-19. Instruction foreach et while(3)

<?php
/* exemple foreach 1 : la valeur seulement */

$a = array(1, 2, 3, 17);

foreach ($a as $v) {
   echo "Current value of \$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 multi-dimensionnels */

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

?>

Précédent | Sommaire | Suivant
for | Niveau supérieur | break


break

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 ont été interrompues.

Exemple 16-20. Instruction break

<?php
$arr = array('un', 'deux', 'trois', 'quatre', 'stop', 'cinq');
while (list(, $val) = each($arr)) {
    if ($val == 'stop') {
        break;    /* Vous pourriez aussi utiliser 'break 1;' ici. */
    }
    echo "$val<br />\n";
}

/* Utilisation de l'argument optionnel. */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "A 5<br />\n";
        break 1;  /* Termine uniquement le switch. */
    case 10:
        echo "A 10; quitter<br />\n";
        break 2;  /* Termine le switch et la boucle while. */
    default:
        break;
    }
}
?>

Précédent | Sommaire | Suivant
foreach | Niveau supérieur | continue


continue

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 : Notez qu'en PHP, la structure switch est considérée comme une boucle par continue.

continue accepte un argument numérique optionnel qui vous indiquera combien de structures emboîtées ont été ignorées.

Exemple 16-21. Instruction continue

<?php
while (list($cle, $valeur) = each($arr)) {
    if (!($cle % 2)) { // évite les membres impairs
        continue;
    }
    fonction_quelconque($valeur);
}

$i = 0;
while ($i++ < 5) {
    echo "Dehors<br />\n";
    while (1) {
        echo "&nbsp;&nbsp;Milieu<br />\n";
        while (1) {
            echo "&nbsp;&nbsp;Intérieur<br />\n";
            continue 3;
        }
        echo "Ceci n'est jamais atteint.<br />\n";
    }
    echo "Ceci non plus.<br />\n";
}
?>

Oublier le point virgule après continue peut porter à confusion. Voici un exemple de ce que vous ne devez pas faire :

Exemple 16-22. N'oubliez pas le point-virgule après continue

<?php
for ($i = 0; $i < 5; ++$i) {
      if ($i == 2)
          continue
      print "$i\n";
  }
?>

On peut s'attendre à ce que le résultat soit :

0
1
3
4

mais ce script affichera :

2

car la valeur de retour de l'appel à print() est int(1), et cela se comportera alors comme si on avait fournit l'argument optionnel mentionné plus haut.

Précédent | Sommaire | Suivant
break | Niveau supérieur | switch


switch

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 vous devez utiliser continue 2.

Les deux exemples suivants sont deux manières différentes d'écrire la même chose, l'une en utilisant une séries de if, et l'autre en utilisant l'instruction switch :

Exemple 16-23. Instruction switch

<?php
if ($i == 0) {
    echo "i égale 0";
} elseif ($i == 1) {
    echo "i égale 1";
} elseif ($i == 2) {
    echo "i égale 2";
}

switch ($i) {
case 0:
    echo "i égale 0";
    break;
case 1:
    echo "i égale 1";
    break;
case 2:
    echo "i égale 2";
    break;
}
?>

Exemple 16-24. Instruction switch utilisant une chaîne de caractères

<?php
switch ($i) {
case "tarte":
    echo "i est une tarte";
    break;
case "barre":
    echo "i est une barre";
    break;
case "gateau":
    echo "i est un gateau";
    break;
}
?>

Il est important de comprendre que l'instruction switch exécute chacune des clauses dans l'ordre. L'instruction switch est exécutée ligne par ligne. Au début, aucun code n'est exécuté. Seulement lorsqu'un case est vérifié, PHP exécute alors les instructions correspondantes. PHP continue d'exécuter les instructions jusqu'à la fin du bloc d'instructions du switch, ou bien dès qu'il trouve l'instruction break. Si vous ne pouvez pas utiliser l'instruction break à la fin de l'instruction case, PHP continuera à exécuter toutes les instructions qui suivent. Par exemple :

Exemple 16-25. Instruction switch et fall through

<?php
switch ($i) {
case 0 :
    echo "i égale 0";
case 1 :
    echo "i égale 1";
case 2 :
    echo "i égale 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'affiche 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.

Exemple 16-26. Instruction switch et cas vide

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

Un case spécial est default. Ce cas est utilisé lorsque tous les case ont échoués. Il doit être le dernier cas listé. Par exemple :

Exemple 16-27. Instruction switch et default

<?php
switch ($i) {
case 0:
    echo "i égale 0";
    break;
case 1:
    echo "i égale 1";
    break;
case 2:
    echo "i égale  2";
    break;
default:
    echo "i n'est ni égal à 2, ni à 1, ni à 0.";
}
?>

Une autre chose à mentionner est que la valeur du case peut être toute expression de type scalaire, c'est-à-dire nombre entier, nombre à virgule flottante et chaîne de caractères. Les tableaux sont sans intérêt dans ce contexte-là.

La syntaxe alternative pour cette structure de contrôle est la suivante : pour plus d'informations, voir syntaxes alternatives).

Exemple 16-28. Instruction switch alternative

<?php
switch ($i):
case 0:
    echo "i égale 0";
    break;
case 1:
    echo "i égale 1";
    break;
case 2:
    echo "i égale 2";
    break;
default:
    echo "i n'est ni égal à 2, ni à 1, ni à 0";
endswitch;
?>

Précédent | Sommaire | Suivant
continue | Niveau supérieur | declare


declare

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 :

Exemple 16-29. Instruction directive

declare (directive)
  commandes

L'expression directive permet de contrôler l'intervention du bloc declare. Actuellement, une seule directive est reconnue : la directive ticks (Voir plus bas pour plus de détails) sur les ticks).

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 :

Exemple 16-30. Instruction directive en contexte global

<?php
// Ces déclaration 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, exécutées par l'analyseur dans le bloc de declare. La valeur de N est spécifiée avec la syntaxe ticks=N dans le bloc de directive declare.

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 16-31. Profiler une section de code PHP

<?php
// Un fonction qui enregistre l'heure à laquelle elle est appelée
function profile($dump = FALSE){
    static $profile;
    // Retourne les horaires stockés dans le profile, et l'efface
    if ($dump) {
        $temp = $profile;
        unset($profile);
        return $temp;
    }
    $profile[] = microtime ();
}

// Enregistre un gestionnaire de tick
register_tick_function("profile");

// Initialise la fonction avant le bloc de déclaration
profile();

// Exécute un bloc de code, et appele un tick toutes les deux secondes
declare (ticks=2) {
    for ($x = 1; $x < 50; ++$x) {
        echo similar_text(md5($x), md5($x*$x)), "<br />";
    }
}

// Affiche les données de la variable $profile
print_r(profile(TRUE));
?>
Cet exemple profile le code PHP dans le bloc de déclaration, et enregistre l'heure de chaque commande bas niveau. Cette information peut être réutilisée pour débusquer les segments de code lents. Vous pouvez implémenter d'autres méthodes, mais les ticks sont plus rapides et plus efficaces.

Les ticks sont bien pratiques pour déboguer, implémenter un multi-tâches simple, des entrées sorties en tâche de fond, ou bien d'autres choses, avec PHP.

Voir aussi register_tick_function() et unregister_tick_function().

Précédent | Sommaire | Suivant
switch | Niveau supérieur | return()


return

Manuel PHP
Précédent Chapitre 16. Les structures de contrôle Suivant

return()

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 include() ou require(), alors le contrôle est rendu au script appelant, et la valeur retournée sera utilisée comme résultat de la fonction include(). Si return() est appelée depuis le script principal, alors l'exécution du script s'arrête. Si le script courant est auto_prepend_file ou auto_append_file dans le fichier php.ini, alors l'exécution du script s'arrête.

Pour plus d'informations, voyez retourner des valeurs.

Note : Notez que puisque return() est une structure de langage, et non une fonction, les parenthèses entourant les arguments ne sont pas nécessaires. Il est classique de les oublier et vous devriez le faire car PHP travaillera moins dans ce cas.

Note : Vous ne devriez jamais utiliser les parenthèses autour de la variable retournée lorsque vous la retournez pas référence, car cela ne fonctionnera pas. Vous ne pouvez retourner que les variables par référence, et non le résultat du traitement. Si vous utilisez return ($a);, alors vous ne retournez pas une variable mais le résultat de l'expression ($a) (qui est, bien sûr, la valeur de $a).

Précédent | Sommaire | Suivant
declare | Niveau supérieur | require()


require

Manuel PHP
Précédent Chapitre 16. Les structures de contrôle Suivant

require()

require() inclut et exécute un fichier PHP.

La commande require() se remplace elle-même par le contenu du fichier spécifié, tel que décrit dans la documentation de la fonction include().

require() et include() sont identiques, sauf dans leur façon de gérer les erreurs. Ils produisent tous les deux une Alerte mais require() génère une erreur fatale. En d'autres termes, n'hésitez pas à utiliser require() si vous voulez qu'un fichier d'inclusion manquant interrompe votre script. include() ne se comporte pas de cette façon, et le script continuera son exécution. Assurez-vous d'avoir bien configuré le include_path aussi.

Exemple 16-32. Exemples avec require()

<?php

require 'prepend.php';

require $un_fichier;

require ('un_fichier.txt');

?>

Voyez la documentation de la fonction include() pour plus d'exemples.

Note : Avant PHP 4.0.2, ceci s'appliquait : require() tentait de lire le fichier cible, même si les lignes n'étaient pas utilisées. Une condition if n'avait aucun effet sur require(). Cependant, si la ligne du require() n'est jamais utilisée, le code inclus ne le sera pas non plus. De même, les boucles n'ont pas d'effet sur le comportement de require(). Bien que le code contenu dans le fichier subit la boucle, la fonction elle même require() n'est appelée qu'une fois.

Note : Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les variables fonctions.

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.

Voir aussi
include(),
require_once(),
include_once(),
get_included_files(),
eval(),
file(),
readfile(),
virtual() et include_path.


include

Manuel PHP
Précédent Chapitre 16. Les structures de contrôle Suivant

include()

La fonction include() inclut et exécute le fichier spécifié en argument.

Cette documentation s'applique aussi à la fonction require(). Les deux structures de langage sont identiques, hormis dans leur gestion des erreurs. Ils produisent tous les deux un Alerte mais require() génère une erreur fatale. En d'autres termes, n'hésitez pas à utiliser require() si vous voulez qu'un fichier d'inclusion manquant interrompe votre script. include() ne se comporte pas de cette façon, et le script continuera son exécution. Assurez-vous d'avoir bien configuré le include_path aussi. Soyez prévenus qu'une erreur d'analyse dans un fichier inclut ne cause pas l'arrêt du script en PHP dans les versions antérieures à 4.3.5. Depuis ces versions, il le peut.

Les fichiers à inclure sont d'abord recherchés dans le dossier désigné par include_path, relativement au dossier courant, puis dans include_path, relativement au dossier de travail du script. Par exemple, si include_path est ., que le dossier de travail est /www/, et que vous incluez le fichier include/a.php et qu'il y a une instruction include "b.php" dans ce fichier, alors b.php est d'abord recherché dans /www/, puis dans /www/include/. Si le nom du fichier commence par ./ ou ../, il est cherché uniquement dans l'include_path relatif au dossier courant d'exécution.

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 inclu ont une portée globale.

Exemple 16-33. Exemple avec include()

vars.php
<?php

$couleur = 'verte';
$fruit = 'pomme';

?>

test.php
<?php

echo "Une $couleur $fruit"; // Une

include 'vars.php';

echo "Une $couleur $fruit"; // Une verte pomme

?>

Si l'inclusion intervient à l'intérieure d'une fonction, le code inclus sera alors considéré comme faisant partie de la fonction. Cela modifie donc le contexte de variables accessibles.

Exemple 16-34. Inclusion de fichiers dans une fonction

<?php

function foo() {
    global $couleur;

    include 'vars.php';

    echo "Une $couleur $fruit";
}

/* vars.php est dans le contexte de foo()    *
 * donc $fruit n'est pas disponibles hors de  *
 * cette fonction. $couleur l'est, car c'est *
 * une variable globale                      */

foo();                      // Une verte pomme
echo "Une $couleur $fruit"; // 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'URL sont activés dans PHP (ce qui est le cas par défaut), vous pouvez localiser le fichier avec une URL (via HTTP ou bien avec un gestionnaire adapté : voir Annexe N 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.

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.

Exemple 16-35. Utiliser include() via HTTP

<?php

/* Cet exemple suppose que www.example.com est configuré pour traiter
 * les fichiers .php et non pas les fichiers .txt. De plus,
 * 'Work' signifie ici que les variables
 * $foo et $bar sont disponibles dans le fichier inclus
 */

// Ne fonctionne pas : file.txt n'a pas été traité par www.example.com comme du PHP
include 'http://www.example.com/file.txt?foo=1&bar=2';

// Ne fonctionne pas : le script cherche un fichier nommé
// 'file.php?foo=1&bar=2' sur le système local
include 'file.php?foo=1&bar=2';

// Réussi
include 'http://www.example.com/file.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include 'file.txt';  // OK.
include 'file.php';  // OK.
?>

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 reliées.

Gestion du retour : il est possible d'exécuter une commande return() dans un fichier inclus pour en terminer le traitement et retourner au fichier appelant. De plus, il est possible de retourner des valeurs des fichiers inclus. Vous pouvez prendre et traiter la valeur retournée par la fonction, comme toute autre fonction. Ce n'est cependant pas possible lors de l'inclusion de fichier distant à moins que le fichier distant a des balises valides de début et de fin de script PHP (comme avec les fichiers locaux). Vous pouvez déclarer les variables nécessaire dans ces tags 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 16-36. Comparaison de la valeur de retour d'un include

<?php
// ne fonctionne pas, évaluer comme include(('vars.php') == 'OK'), i.e. include('')
if (include('vars.php') == 'OK') {
    echo 'OK';
}

// fonctionne
if ((include 'vars.php') == 'OK') {
    echo 'OK';
}
?>

Note : En PHP 3, le return() n'est pas utilisable à moins que ce ne soit dans un bloc de fonction, auquel cas le return() s'applique à une fonction et non pas au fichier.

Exemple 16-37. 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 de définies dans le fichier inclus, elles peuvent être utilisées dans le fichier principal si elles sont avant le return() ou après. Si le fichier est inclus deux fois, PHP 5 enverra une erreur fatale car les fonctions seront déjà déclarées, tandis que PHP 4 ne se plaindra pas des fonctions définies après return(). Il est recommandé d'utiliser include_once() au lieu de vérifier si le fichier a déjà été inclus et donc de retourner conditonnellement 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 16-38. 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;
    $contents = ob_get_contents();
    ob_end_clean();
    return $contents;
  }
  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 variables fonctions.

Voir aussi
require(),
require_once(),
include_once(),
get_included_files(),
readfile(),
virtual() et
include_path.


require_once

Manuel PHP
Précédent Chapitre 16. Les structures de contrôle Suivant

require_once()

La commande require_once() se remplace elle-même par le fichier spécifié, un peu comme les commandes de préprocesseur C #include, et ressemble sur ce point à require(). La principale différence est qu'avec require_once(), vous êtes assurés que ce code ne sera ajouté qu'une seule fois, évitant de ce fait les redéfinitions de variables ou de fonctions, génératrices d'alertes.

require_once() doit être utilisée dans les cas où le même fichier risque d'être inclus et évalué plusieurs fois durant l'exécution d'un script. Vous serez alors sûrs qu'il ne sera inclus qu'une fois et vous éviterez les problèmes de re-déclarations de fonctions ou autres.

Pour des exemples avec require_once() et include_once(), reportez-vous au code PEAR inclus dans les dernières distributions PHP.

Les valeurs retournées sont les mêmes que lors de l'utilisation de include(). Si le fichier a déjà été inclus, cette fonction retourne TRUE.

Note : require_once() a été ajouté en PHP 4.0.1

Note : Attention, require_once() et include_once() sont insensibles à la casse sous les systèmes comme Windows.

Exemple 16-39. require_once() est insensible à la casse sur Windows

require_once("a.php"); // ceci inclut le fichier a.php
require_once("A.php"); // ceci inclut encore le fichier a.php sous Windows! (uniquement en PHP 4)
Ce comportement a changé en PHP 5 - le chemin est normalisé d'abord, donc, le fichier C:\PROGRA~1\A.php est reconnu comme étant identique au fichier C:\Program Files\a.php et le fichier ne sera requis qu'une seule fois.

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.

Voir aussi
require(),
include(),
include_once(),
get_required_files(),
get_included_files(),
readfile() et
virtual().


include_once

Manuel PHP
Précédent Chapitre 16. Les structures de contrôle Suivant

include_once()

La commande 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.

La fonction include_once() est utilisée de préférence lorsque le fichier doit ê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 fonction.

Pour plus d'exemples avec require_once() et include_once(), jetez un oeil dans le code de PEAR inclus dans la dernière distribution de PHP.

Les valeurs retournées sont les mêmes que lors de l'utilisation de include(). Si le fichier a déjà été inclus, cette fonction retourne TRUE.

Note : include_once() a été ajouté en PHP 4.0.1

Note : Attention, require_once() et include_once() sont insensibles à la casse sous les systèmes comme Windows.

Exemple 16-40. include_once() est insensible à la casse sous Windows

<?php
include_once("a.php"); // ceci inclut le fichier a.php
include_once("A.php"); // ceci inclut encore le fichier a.php sous Windows! (uniquement en PHP 4)
?>
Ce comportement a changé en PHP 5 - le chemin est normalisé d'abord, donc, le fichier C:\PROGRA~1\A.php est reconnu comme étant identique au fichier C:\Program Files\a.php et le fichier ne sera inclus qu'une seule fois.

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.

Voir aussi
require(),
include(),
require_once(),
get_required_files(),
get_included_files(),
readfile() et
virtual().

Précédent | Sommaire | Suivant
require_once() | Niveau supérieur | Les fonctions


Manuel PHP
Précédent Suivant

Chapitre 17. Les fonctions

Table des matières
Les fonctions
Les arguments de fonction
Les valeurs de retour
Fonctions variables
Fonctions internes

Les fonctions

Une fonction peut être définie en utilisant la syntaxe suivante :

Exemple 17-1. Définition 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 une définition 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 underscore, suivi par un nombre quelconque de lettres, de nombres ou d'underscores. Ces règles peuvent être représentées par l'expression rationnelle suivante : [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.

Astuce : Vous pourriez également avoir besoin de jeter un oeil sur Annexe S.

En PHP 3, les fonctions doivent être définies avant qu'elles ne soient utilisées. Ce n'est plus le cas depuis PHP 4. 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 17-2. Fonctions conditionnelles

<?php

$makefoo = true;

/* Impossible d'appeler foo() ici,
   car cette fonction n'existe pas.
   Mais nous pouvons utiliser bar() */

bar();

if ($makefoo) {
  function foo()
  {
    echo "Je n'existe pas tant que le programme n'est pas passé ici.\n";
  }
}

/* Maitenant, nous pouvons appeler foo()
   car $makefoo est maintenant vrai */

if ($makefoo) foo();

function bar()
{
  echo "J'existe dès de début du programme.\n";
}

?>

Exemple 17-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 rendu
   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 le surchargement de fonction, ni la destruction ou la redéfinition de fonctions déjà déclarées.

Note : Les noms de fonctions sont insensibles à la casse, et il est généralement admis que les fonctions doivent être appelées avec le nom utilisé dans leur déclaration, y compris la casse.

PHP 3 ne supporte pas un nombre variable d'arguments (voir valeurs par défaut d'arguments pour plus d'informations). Les deux sont supportés, depuis PHP 4 : voir liste variable d'arguments de fonction et 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. Cependant, les appels de méthodes/fonctions récursives avec 100-200 degrés de récursion peuvent remplir la pile et ainsi, terminer le script courant.

Exemple 17-4. Fonctions récursives

<?php
function recursion($a)
{
    if ($a < 20) {
        echo "$a\n";
        recursion($a + 1);
    }
}
?>

Précédent | Sommaire | Suivant
include_once() | Niveau supérieur | Les arguments de fonction


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.

PHP supporte le passage d'arguments par valeur (méthode par défaut), par référence. Les listes variables d'arguments sont supportées par PHP 4 et les versions plus récentes. Voir liste variable d'arguments de fonction et les fonctions utiles que sont func_num_args(), func_get_arg(), et func_get_args(). On peut arriver au même résultat en PHP 3 en passant un tableau comme argument de la fonction :

Exemple 17-5. Nombre variable d'argument sous forme de tableau

<?php
function takes_array($input)
{
    echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>

Passage d'arguments par référence

Par défaut, les arguments sont passés à la fonction par valeur (donc vous pouvez changer la valeur d'un argument dans la fonction, cela 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 17-6. Passage d'arguments par référence

<?php
function add_some_extra(&$string)
{
    $string .= ', et un peu plus.';
}
$str = 'Ceci est une chaîne';
add_some_extra($str);
echo $str;    // affiche 'Ceci est une chaîne, et un peu plus.'
?>

Valeur par défaut des arguments

Vous pouvez définir comme en C++ des valeurs par défaut pour les arguments de type scalaire :

Exemple 17-7. Valeur par défaut des arguments de fonctions

<?php
function servir_cafe ($type = "cappuccino")
{
    return "Servir un $type.\n";
}
echo servir_cafe();
echo servir_cafe(null);
echo servir_cafe("espresso");
?>

L'exemple ci-dessus va afficher :

Servir un cappuccino.
Servir un.
Servir un espresso.

PHP vous autorise à utiliser des tableaux ainsi que le type spécial NULL comme valeur par défaut, par exemple :

Exemple 17-8. Utilisation de type non scalaire comme valeur par défaut

<?php
function servir_cafe($types = array("cappuccino"), $coffeeMaker = NULL)
{
    $device = is_null($coffeeMaker) ? "les mains" : $coffeeMaker;
    return "Préparation d'une tasse de ".join(", ", $types)." avec $device.\n";
}
echo servir_cafe();
echo servir_cafe(array("cappuccino", "lavazza"), "une cafetière");
?>

La valeur par défaut d'un argument doit obligatoirement être une constante, et ne peut être ni une variable, ni un membre de classe, ni un appel de fonction.

Il est à noter que si vous utilisez des arguments avec valeur par défaut avec d'autres sans valeur par défaut, les premiers doivent être placés à la suite de tous les paramètres sans valeur par défaut. Sinon, cela ne fonctionnera pas. Considérons le code suivant :

Exemple 17-9. Les arguments à valeur par défaut doivent être en premier : erreur

<?php
function faireunyaourt ($type = "acidophilus", $flavour)
{
    return "Préparer un bol de $type $flavour.\n";
}

echo faireunyaourt("framboise");   // ne fonctionne pas comme voulu
?>

L'exemple ci-dessus va afficher :

Warning: Missing argument 2 in call to makeyogurt() in
/usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
Préparer un bol de framboise.

Maintenant comparons l'exemple précédent avec l'exemple suivant :

Exemple 17-10. Les arguments à valeur par défaut doivent être en premier : valide

<?php
function faireunyaourt ($flavour, $type = "acidophilus")
{
    return "Préparer un bol de $type $flavour.\n";
}

echo faireunyaourt ("framboise");   // fonctionne comme voulu
?>

L'exemple ci-dessus va afficher :

Préparer un bol de acidophilus framboise.

Note : Depuis PHP 5, les valeurs par défaut peuvent être passées par référence.

Nombre d'arguments variable

PHP 4 et suivants supportent les fonctions à nombre d'arguments variable.
C'est très simple à utiliser, avec les fonctions
func_num_args(),
func_get_arg() et
func_get_args().

Aucune syntaxe particulière n'est nécessaire, et la liste d'argument doit toujours être fournie explicitement avec la définition de la fonction, et se comportera normalement.

Précédent | Sommaire | Suivant
Les fonctions | Niveau supérieur | Les valeurs de retour


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.

Exemple 17-11. Utilisation de return()

<?php
function carre ($num)
{
    return $num * $num;
}
echo carre (4);   // affiche '16'.
?>

Vous ne pouvez pas renvoyer plusieurs valeurs en même temps, mais vous pouvez obtenir le même résultat en renvoyant un tableau.

Exemple 17-12. Retourner un tableau d'une fonction

<?php
function petit_nombre()
{
    return array (0, 1, 2);
}
list ($zero, $one, $two) = 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 17-13. 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.

Précédent | Sommaire | Suivant
Les arguments de fonction | Niveau supérieur | Fonctions variables


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 callback, des tables de fonctions...

Les fonctions variables ne peuvent pas fonctionner avec les éléments de langage comme les echo(), print(), unset(), isset(), empty(), include(), require() etc. Vous devez utiliser votre propre gestion de fonctions pour utiliser un de ces éléments de langages comme fonctions variables.

Exemple 17-14. 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 une méthode d'un objet en utilisant le système des fonctions variables.

Exemple 17-15. 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()

?>

Voir aussi call_user_func(), les variables variables et function_exists().

Précédent | Sommaire | Suivant
Les valeurs de retour | Niveau supérieur | Fonctions internes


Fonctions internes

PHP dispose de nombreuses fonctions et structures standards. Il y a aussi des fonctions qui requièrent des extensions spécifiques de PHP, sans lesquelles vous obtiendrez l'erreur fatale undefined function. Par exemple, pour utiliser les fonctions d'images, telles que imagecreatetruecolor(), vous aurez besoin du support de GD dans PHP. Ou bien, pour utiliser mysql_connect(), vous aurez besoin de l'extension MySQL. Il y a des fonctions de base qui sont incluses dans toutes les versions de PHP, telles que les fonctions de chaînes de caractères et les fonctions de variables. Utilisez phpinfo() ou get_loaded_extensions() pour savoir quelles sont les extensions qui sont compilées avec votre PHP. Notez aussi que de nombreuses extensions sont activées par défaut, et que le manuel PHP est compartimenté par extension. Voyez les chapitres de configuration, installation ainsi que les détails particuliers à chaque extension, pour savoir comment les mettre en place.

Lire et comprendre le prototype d'une fonction est décrit dans l'annexe Comment lire la définition d'une fonction (prototype). Il est important de comprendre ce qu'une fonction retourne, ou si une fonction travaille directement sur la valeur des paramètres fournis. Par exemple, str_replace() va retourner une chaîne modifiée, tandis que usort() travaille directement sur la variable passée en paramètre. Chaque page du manuel a des informations spécifiques sur chaque fonction, comme le nombre de paramètres, les évolutions de spécifications, les valeurs retournées en cas de succès ou d'échec, et la disponibilité en fonction des versions. Bien connaître ces différences, parfois subtiles, est crucial pour bien programmer en PHP.

Note : Si les paramètres donnés à une fonction ne sont pas corrects, comme le fait de passer un tableau alors qu'une chaîne de caractères est attendue, la valeur retournée de la fonction est indéfinie. Dans ce cas, la fonction retournera la plupart du temps une valeur NULL mais ce n'est juste qu'une convention et ne peut être considéré comme une certitude.

Voir aussi function_exists(), l'index des fonctions, get_extension_funcs() et dl().

Précédent | Sommaire | Suivant
Fonctions variables | Niveau supérieur | Les classes et les objets (PHP 4)


Les classes et les objets (PHP 4)

Manuel PHP
Précédent Suivant

Chapitre 18. Les classes et les objets (PHP 4)

Table des matières
Les classes : class
extends : héritage
Constructeur
Opérateur de contexte de classe (::)
parent
Sauvegarde d'objets - cas des sessions
Les fonctions magiques __sleep et __wakeup
Références dans un constructeur
Comparer des objets

Les classes : class

Une classe est une collection de variables et de fonctions qui fonctionnent avec ces variables. Une classe est définie en utilisant la syntaxe suivante :

Exemple 18-1. Les classes en PHP

<?php
class Panier {
    // Eléments de notre panier
    var $items;

    // Ajout de $num articles de type $artnr au panier

    function add_item ($artnr, $num) {
        $this->items[$artnr] += $num;
    }

    // Suppression de $num articles du type $artnr du panier

    function remove_item($artnr, $num) {
        if ($this->items[$artnr] > $num) {
            $this->items[$artnr] -= $num;
            return true;
        } elseif ($this->items[$artnr] == $num) {
            unset($this->items[$artnr]);
            return true;
        } else {
            return false;
        }
    }
}
?>

L'exemple ci-dessus définit la classe Panier qui est composée d'un tableau associatif contenant les articles du panier et de deux fonctions, une pour ajouter et une pour enlever des éléments au panier.

Avertissement

Vous NE POUVEZ PAS couper la définition d'une classe en plusieurs fichiers. De la même façon, vous NE POUVEZ PAS couper la définition d'une classe en de multiples blocs, à moins que la coupure ne soit à l'intérieur de la déclaration d'une méthode. Ce qui suit ne fonctionnera pas :

Exemple 18-2. Ne pas couper la définition d'une classe

<?php
class test {
?>
<?php
    function test() {
        echo 'OK';
    }
}
?>

Néanmoins, ce qui suit est autorisé :

Exemple 18-3. Changer de mode durant la définition d'une classe

<?php
class test {
    function test() {
        ?>
        <?php
        print 'Ok';
    }
}
?>

Les notes suivantes ne sont valables que pour PHP 4.

Attention

Le nom stdClass est utilisé en interne par Zend et ne doit pas être utilisé. Vous ne pouvez pas nommer une classe stdClass en PHP.

Attention

Les noms de fonctions __sleep et __wakeup sont magiques en PHP. Vous ne pouvez pas utiliser ces noms de fonctions dans vos classes, à moins que vous ne souhaitiez utiliser la magie qui y est associée.

Attention

PHP se réserve l'usage de tous les noms de fonctions commençant par __, pour sa propre magie. Il est vivement recommandé de ne pas utiliser des noms de fonctions commençant par __, à moins que vous ne souhaitiez utiliser la magie qui y est associée.

Note : En PHP 4, seuls les initialiseurs constants pour les variables var sont autorisés. Utilisez les constructeurs pour les initialisations variables, ou utilisant des expressions.

Exemple 18-4. Initialisation de membres de classe

<?php
/* Aucune de ces syntaxes ne fonctionnera en PHP 4 */
class Panier {
    var $date_du_jour = date("d/m/Y");
    var $name = $firstname;
    var $owner = 'Fred ' . 'Jones';
    var $items = array("DVD", "Télé","Magnétoscope");
}
/* Voici comment cela doit se faire désormais. */
class Panier {
    var $date_du_jour;
    var $name;
    var $owner;
    var $items;
    function Panier() {
        $this->date_du_jour = date("d/m/Y");
        $this->name = $GLOBALS['firstname'];
        /* etc. */
    }
}
?>

Les classes forment un type de variable. Pour créer une variable du type désiré, vous devez utiliser l'opérateur new.

Exemple 18-5. Création d'un objet de classe

<?php
 $cart = new Panier;
 $cart->add_item("10", 1);
 $another_cart = new Panier;
 $another_cart->add_item("0815", 3);
?>

L'instruction ci-dessus crée l'objet $cart de la classe Panier. La fonction add_idem() est appelée afin d'ajouter l'article numéro 10 dans le panier. Trois articles numéro 0815 sont ajoutés au panier $another_cart.

$cart et $another_cart disposent des fonctions add_item(), remove_item() et de la variable items. Ce sont des fonctions et variables distinctes. Vous pouvez vous représenter les objets comme des dossiers sur votre disque dur. Vous pouvez avoir deux fichiers lisez-moi.txt sur votre disque dur, tant qu'ils ne sont pas dans le même répertoire. De même que vous devez alors taper le chemin complet jusqu'au fichier, vous devez spécifier le nom complet de la méthode avant de l'employer : en termes PHP, le dossier racine est l'espace de nom global, et le séparateur de dossier est ->. Par exemple, les noms $cart->items et $another_cart->items représentent deux variables distinctes. Notez que le nom de la variable est alors $cart->items, et non pas $cart->$items : il n'y a qu'un seul signe $ dans un nom de variable.

Exemple 18-6. Accès aux membres d'une classe

<?php
// correct, le signe $ est unique
$cart->items  = array("10" => 1);
// incorrect, car $cart->$items devient $cart->""
$cart->$items = array("10" => 1);
// correct, mais risque de ne pas se comporter comme prévu
// $cart->$myvar devient $cart->items
$myvar = 'items';
$cart->$myvar = array("10" => 1);
?>

À l'intérieur d'une définition de classe, vous ne savez pas le nom de la variable à partir duquel l'objet sera accessible dans le script. On ne peut prévoir que l'objet créé sera affecté à la variable $cart, $another_cart ou quelque chose d'autres. Donc, vous ne pouvez pas utiliser la syntaxe $cart->items. Mais pour pouvoir accéder aux méthodes et membres d'un objet, vous pouvez utiliser la variable spéciale $this, qui peut s'interpréter comme "moi-même", ou bien "l'objet courant". Par exemple, '$this->items[$artnr] += $num;' peut se lire comme 'ajouter $num au compteur $artnr de mon propre tableau de compteur' ou bien 'ajouter $num au compteur $artnr du tableau de compteurs de l'objet courant'.

Note : La pseudo-variable $this n'est pas toujours définie si la méthode dans laquelle elle est présente est appelée statiquement. Cependant, ceci n'est pas une règle stricte : $this est définie si une méthode est appelée statiquement depuis un autre objet. Dans ce cas, sa valeur vaut l'objet appelé. Ce comportement est illustré dans l'exemple ci-dessous :

Exemple 18-7. $this peut être indéfinie : cas d'une méthode statique

<?php
class A
{
  function foo()
  {
    if (isset($this)) {
      echo '$this est défini (';
      echo get_class($this);
      echo ")\n";
    } else {
      echo "\$this n'est pas défini.\n";
    }
  }
}

class B
{
  function bar()
  {
    A::foo();
  }
}

$a = new A();
$a->foo();
A::foo();
$b = new B();
$b->bar();
B::bar();
?>

L'exemple ci-dessus va afficher :

$this est défini (a)
$this n'est pas défini.
$this est défini (b)
$this n'est pas défini.

Note : Il y a des fonctions très pratiques pour gérer les classes et objets. Vous pouvez étudier le chapitre sur les fonctions de classes et objets.

Précédent | Sommaire | Suivant
Fonctions internes | Niveau supérieur | extends : héritage


extends : héritage

Souvent, vous aurez besoin d'une classe avec des méthodes et fonctions similaires à une autre classe. En fait, il est bon de définir des classes génériques, qui pourront être réutilisées et adaptées à tous vos projets. Pour faciliter cela, une classe peut être une extension d'une autre classe. La classe dérivée hérite alors de toutes les méthodes et variables de la classe de base (cet héritage a de bien que personne ne meurt pour en profiter), mais peut définir ses propres fonctions et variables, qui s'ajouteront. Une classe ne peut hériter que d'une seule autre classe, et l'héritage multiple n'est pas supporté. Les héritages se font avec le mot clé 'extends'.

Exemple 18-8. Héritage de classes

<?php
class Panier_nomme extends Panier {
    var $owner;
    function set_owner ($name) {
        $this->owner = $name;
    }
}
?>

L'exemple ci-dessus définit la classe Panier_nomme qui possède les mêmes variables que la classe Panier et la variable $owner en plus, ainsi que la fonction set_owner(). Vous créez un panier nominatif de la même manière que précédemment, et vous pouvez alors affecter un nom au panier ou en connaître le nom. Vous pouvez de toutes les façons utiliser les mêmes fonctions que sur un panier classique.

Exemple 18-9. Héritage de classes (2)

<?php
$ncart = new Panier_nomme;    // Création d'un panier nominatif
$ncart->set_owner ("kris");   // Affectation du nom du panier
echo $ncart->owner;           // Affichage du nom du panier
$ncart->add_item ("10", 1);   // (héritage des fonctions de la classe père)
?>

Précédent | Sommaire | Suivant
Les classes et les objets (PHP 4) | Niveau supérieur | Constructeur


Constructeur

Le constructeur est la fonction qui est appelée automatiquement par la classe lorsque vous créez une nouvelle instance d'une classe à l'aide de l'opérateur new. La fonction constructeur a le même nom que la classe. Une fonction devient le constructeur si elle porte le même nom que la classe. Si une classe n'a pas de constructeur, le constructeur de la classe de base sera appelé, s'il existe.

Exemple 18-10. Constructeur de classe

<?php
class Auto_Panier extends Panier {
    function Auto_Panier () {
        $this->add_item ("10", 1);
    }
}
?>

L'exemple ci-dessus définit la classe Auto_Panier qui hérite de la classe Panier et définit le constructeur de la classe. Ce dernier initialise le panier avec 1 article de type numéro 10 dès que l'instruction new est appelée. La fonction constructeur peut prendre ou non des paramètres optionnels, ce qui la rend beaucoup plus pratique. Pour pouvoir utiliser cette classe sans paramètre, tous les paramètres du constructeurs devraient être optionnels, en fournissant une valeur par défaut, comme ci-dessous.

Exemple 18-11. Constructeur de classe à argument optionnel

<?php
class Constructor_Cart extends Cart {
    function Constructor_Cart ($item = "10", $num = 1) {
        $this->add_item ($item, $num);
    }
}
// Création du Panier
$default_cart   = new Constructor_Cart;
// Création d'un vrai Panier
$different_cart = new Constructor_Cart ("20", 17);
?>

Vous pouvez également utiliser l'opérateur @ pour empécher les erreurs survenant dans le constructeur de s'afficher, e.g. @new.

Exemple 18-12. Constructeur de classe

<?php
class A {
  function A() {
    echo "Je suis le constructeur de A.<br />\n";
  }
  function B() {
    echo "Je suis une fonction standard appelée B dans la classe A.<br />\n";
    echo "Je ne suis pas le constructeur de A.<br />\n";
  }
}

class B extends A {
}
// Cette syntaxe va appeler B() comme constructeur.
$b = new B;
?>

La fonction B() de la classe A va soudainement devenir le constructeur de la classe B, bien qu'il n'ait pas été prévu pour. PHP 4 ne se soucie guère si la fonction est définie dans la classe B ou si elle a été héritée.

Attention

PHP 4 n'appelle pas automatiquement le constructeur de la classe supérieure depuis le constructeur de la classe dérivée. Il est de votre responsabilité de propager l'appel des constructeurs.

Les destructeurs sont des fonctions qui sont appelées lorsqu'un objet est détruit, soit avec la fonction unset() soit par simple sortie d'une fonction (cas des variables locales). Il n'y a pas de destructeurs en PHP. Vous devez utiliser la fonction register_shutdown_function() à la place pour simuler la plupart des effets des destructeurs.

Précédent | Sommaire | Suivant
extends : héritage | Niveau supérieur | Opérateur de contexte de classe (::)


Opérateur de contexte de classe (::)

Attention

La documentation suivante n'est valable que pour PHP 4 et plus récent.

Parfois, il est pratique de faire référence aux fonctions et variables d'une classe de base, ou bien d'utiliser des méthodes de classes qui n'ont pas encore d'objets créés. L'opérateur :: est là pour ces situations.

Exemple 18-13. Exemples avec l'opérateur ::

<?php
class A {
  function example() {
    echo "Je suis la fonction originale A::example().<br />\n";
  }
}
class B extends A {
  function example() {
    echo "Je suis la fonction redéfinie B::example().<br />\n";
    A::example();
  }
}
// Il n'y a pas d'objets de classe A.
// L'affichage est :
//   Je suis la fonction originale A::example().<br />
A::example();
// Création d'un objet de la classe B.
$b = new B;
// L'affichage est :
//   Je suis la fonction redéfinie B::example().<br />
//   Je suis la fonction originale A::example().<br />
$b->example();
?>

Les exemples ci-dessus appellent la fonction example() dans la classe A, mais il n'y a pas encore d'objet de classe A, alors il n'est pas possible d'écrire $a->example(). À la place, on appelle la fonction example() comme une fonction de classe, c'est-à-dire avec le nom de la classe elle-même, et sans objet.

Il y a des fonctions de classe, mais pas de variables de classe. En fait, il n'y a aucun objet au moment de l'appel de la fonction. Donc, une fonction de classe ne peut accéder à aucune variable (mais elle peut accéder aux variables locales et globales). Il faut proscrire l'utilisation de $this.

Dans l'exemple ci-dessus, la classe B redéfinit la fonction example(). La définition originale dans la classe A est remplacée par celle de B, et n'est plus accessible depuis B, à moins que vous n'appeliez spécifiquement la fonction example() de la classe A avec l'opérateur ::. Ecrivez A::example() pour cela (en fait, il faudrait écrire parent::example(), comme expliqué dans la section suivante).

Dans ce contexte, il y a un objet courant, qui peut avoir d'autres variables objets. De ce fait, lorsqu'il est utilisé depuis une méthode d'un objet, vous pouvez utiliser $this.

Précédent | Sommaire | Suivant
Constructeur | Niveau supérieur | parent


parent

Il arrive que vous ayez à écrire du code qui faire référence aux variables et fonctions des classes de base. C'est particulièrement vrai si votre classe dérivée est une spécialisation de votre classe de base.

Au lieu d'utiliser le nom littéral de votre classe de base dans votre code, vous pouvez utiliser le mot réservé parent, qui représente votre classe de base (celle indiqué par extends, dans la déclaration de votre classe). En faisant cela, vous évitez d'appeler le nom de votre classe de base directement dans votre code. Si votre héritage change, vous n'aurez plus qu'à modifier le nom de la classe dans la déclaration extends de votre classe.

Exemple 18-14. Exemples avec l'opérateur parent

<?php
class A {
  function example() {
    echo "Je suis A::example() et je fournis une fonctionnalité de base.<br />\n";
  }
}
class B extends A {
  function example() {
    echo "Je suis B::example() et je fournis une fonctionnalité supplémentaire.<br />\n";
    parent::example();
  }
}
$b = new B;
// Cette syntaxe va appeler B::example(), qui, à sont tour, va appeler A::example().
$b->example();
?>

Précédent | Sommaire | Suivant
Opérateur de contexte de classe (::) | Niveau supérieur | Sauvegarde d'objets - cas des sessions


Sauvegarde d'objets - cas des sessions

Note : En PHP 3, les objets perdent leur association de classe à travers le processus de sauvegarde et relecture. Le type de la variable après relecture est bien objet mais il n'a plus de méthode ou de nom de classe. Cela rend la fonctionnalité plutôt inutile (l'objet est devenu un tableau avec une syntaxe étrange).

Attention

La documentation suivante n'est valable que pour PHP >=4.

serialize() retourne une chaîne représentant une valeur qui peut être stockée dans les sessions de PHP, ou une base de données. unserialize() peut relire cette chaîne pour recréer la valeur originale. serialize() va sauver toutes les variables d'un objet. Le nom de la classe sera sauvé mais par les méthodes de cet objet.

Pour permettre à unserialize() de lire un objet, la classe de cet objet doit être définie. C'est-à-dire, si vous avez un objet $a de la classe A dans une page php1.php, et que vous le linéarisez avec serialize(), vous obtiendrez une chaîne qui fait référence à la classe A, et contient toutes les valeurs de $a. Pour pouvoir le relire avec la fonction unserialize() dans une page page2.php, il faut que la définition de la classe A soit présente dans cette deuxième page. Cela peut se faire de manière pratique en sauvant la définition de la classe A dans un fichier séparé, et en l'incluant dans les deux pages page1.php et page2.php.

Exemple 18-15. La classe d'un objet doit être définie avant sa délinéarisation

<?php
classa.inc:
  class A {
    var $one = 1;
    function show_one() {
      echo $this->one;
    }
  }
?>
page1.php:
<?php
  include("classa.inc");
  $a = new A;
  $s = serialize($a);
  // enregistrez $s où la page2.php pourra la trouver.
  $fp = fopen("store", "w");
  fputs($fp, $s);
  fclose($fp);
?>
page2.php:
<?php
  // Ceci est nécessaire pour que unserialize() fonctionne correctement
  include("classa.inc");
  $s = implode("", @file("store"));
  unserialize($s);
  // maintenant, utilisez la méthode show_one de l'objet $a.
  $a->show_one();
?>

Si vous utilisez les sessions et la fonction session_register() pour sauver des objets, ces objets seront linéarisés automatiquement avec la fonction serialize() à la fin de chaque script, et relus avec unserialize() au début du prochain script. Cela signifie que ces objets peuvent apparaître dans n'importe quelle page qui utilise vos sessions.

Il est vivement recommandé d'inclure la définition de classe dans toutes vos pages, même si vous n'utilisez pas ces classes dans toutes vos pages. Si vous l'oubliez et qu'un tel objet est présent, il perdra sa classe, et deviendra un objet de classe stdClass sans aucune fonction et, donc, plutôt inutile.

Si, dans l'exemple ci-dessus, $a devient un objet de session avec l'utilisation de session_register("a"), vous devez penser à inclure le fichier classa.inc dans toutes vos pages, et pas seulement page1.php et page2.php.

Précédent | Sommaire | Suivant
parent | Niveau supérieur | Les fonctions magiques __sleep et __wakeup


Les fonctions magiques __sleep et __wakeup

serialize() s'assure que votre classe a une méthode avec le nom magique __sleep. Si c'est le cas, cette fonction est appelée avant toute linéarisation. Elle peut alors nettoyer l'objet et on s'attend à ce qu'elle retourne un tableau avec la liste des noms de variables qui doivent être sauvées. Si la méthode ne retourne rien, alors NULL est linéarisé et une alerte de type E_NOTICE sera émise.

Le but avoué de __sleep est de valider les données en attente ou d'effectuer des opérations de nettoyage. Cette fonction est aussi pratique si vous avez de très grands objets qui n'ont pas besoin d'être sauvés entièrement.

À l'inverse, unserialize() s'assure de la présence de la fonction magique __wakeup. Si elle existe, cette fonction reconstruit toutes les ressources d'un objet.

Le but de cette fonction __wakeup est de rétablir toutes les connexions aux bases de données, et de recréer les variables qui n'ont pas été sauvées.

Précédent | Sommaire | Suivant
Sauvegarde d'objets - cas des sessions | Niveau supérieur | Références dans un constructeur


Références dans un constructeur

Créer des références dans un constructeur peut conduire à des résultats étranges. Ce tutoriel vous guide pour éviter ces problèmes.

Exemple 18-16. Références dans un constructeur

<?php
class foo {
    function foo($name) {
        // crée une référence dans le tableau global $globalref
        global $globalref;
        $globalref[] = &$this;
        // donne le nom de la variable
        $this->setName($name);
        // et l'affiche
        $this->echoName();
    }
    function echoName() {
        echo "<br />",$this->Name;
    }
    function setName($name)     {
        $this->Name = $name;
    }
}
?>

Vérifions maintenant qu'il y a une différence entre $bar1 qui a été créé avec = et $bar2 qui a été créé avec l'opérateur de référence =& :

Exemple 18-17. Références dans un constructeur (2)

<?php
$bar1 = new foo('crée dans le constructeur');
$bar1->echoName();
$globalref[0]->echoName();

/* affiche :
crée dans le constructeur
crée dans le constructeur
crée dans le constructeur */

$bar2 =&new foo('crée dans le constructeur');
$bar2->echoName();
$globalref[1]->echoName();
/* affiche :
crée dans le constructeur
crée dans le constructeur
crée dans le constructeur */
?>

Apparemment, il n'y a pas de différence, mais en fait, il y en a une significative : $bar1 et $globalref[0] ne sont pas référencées, ces deux variables sont différentes. Cela est dû au fait que l'opérateur new ne retourne par de référence, mais retourne une copie.

Note : Il n'y a aucune perte de performances (puisque PHP 4 utilise un compteur de références) à retourner des copies au lieu de références. Au contraire, il est souvent mieux de travailler sur les copies plutôt que sur les références, car créer une référence prend un peu plus de temps que de créer une copie qui ne prend virtuellement pas de temps (à moins de créer un tableau géant ou un objet monstrueux, auquel cas il est préférable de passer par des références).

Pour prouver ceci, regardez le code suivant :

Exemple 18-18. Références et constructeurs

<?php
// maintenant, nous allons changer de nom. Qu'attendez-vous ?
// Vous pouvez vous attendre à ce que les deux variables $bar
// et $globalref[0] changent de nom...
$bar1->setName('modifié');

// comme prédit, ce n'est pas le cas
$bar1->echoName();
$globalref[0]->echoName();

/* affiche :
modifié
crée dans le constructeur
*/

// quelle est la différence entre $bar2 et $globalref[1]
$bar2->setName('modifié');

// Heureusement, elles sont non seulement égales, mais
// elles représentent la même variable.
// donc $bar2->Name et $globalref[1]->Name sont les mêmes
$bar2->echoName();
$globalref[1]->echoName();

/* affiche :
  modifié
  modifié */
?>

Un dernier exemple pour bien comprendre.

Exemple 18-19. Références dans un constructeur (3)

<?php
class a {
    function a($i) {
        $this->value = $i;
        // Essayez de comprendre on n'a pas besoin de
        // référence ici
        $this->b = new b($this);
    }
    function createRef() {
        $this->c = new b($this);
    }
    function echoValue() {
        echo "<br />","class ",get_class($this),': ',$this->value;
    }
}
class b  {
    function b(&$a) {
        $this->a = &$a;
    }
   function echoValue() {
        echo "<br />","class ",get_class($this),': ',$this->a->value;
        }
}
// Essayez de comprendre pourquoi une copie simple va
// conduire à un résultat indésirable à
// la ligne marquée d'une étoile
$a =&new a(10);
$a->createRef();
$a->echoValue();
$a->b->echoValue();
$a->c->echoValue();
$a->value = 11;
$a->echoValue();
$a->b->echoValue(); // *
$a->c->echoValue();

?>

L'exemple ci-dessus va afficher :

class A: 10
class B: 10
class B: 10
class A: 11
class B: 11
class B: 11

Précédent | Sommaire | Suivant
Les fonctions magiques __sleep et __wakeup | Niveau supérieur | Comparer des objets


Comparer des objets

En PHP 4, les objets sont comparés de manière très simple, à savoir : deux instances sont égales si elles ont les mêmes attributs et valeurs, et qu'elles sont de la même classe. Des règles similaires s'appliquent lors de la comparaison avec l'opérateur ===.

Si vous exécutez le code suivant :

Exemple 18-20. Exemple de comparaison d'objets en PHP 4

<?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 {
    var $flag;

    function Flag($flag=true) {
            $this->flag = $flag;
    }
}

class SwitchableFlag extends Flag {

    function turnOn() {
        $this->flag = true;
    }

    function turnOff() {
        $this->flag = false;
    }
}

$o = new Flag();
$p = new Flag(false);
$q = new Flag();

$r = new SwitchableFlag();

echo "Compare des instances créées avec les mêmes paramètres\n";
compareObjects($o, $q);

echo "\nCompare des instances créées avec différents paramètres\n";
compareObjects($o, $p);

echo "\nCompare une instance d'un parent avec celle d'une sous-classe\n";
compareObjects($o, $r);

?>

L'exemple ci-dessus va afficher :

Compare des instances créées avec les mêmes paramètres
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Compare des instances créées avec différents paramètres
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Compare une instance d'un parent avec celle d'une sous-classe
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE
Ce qui est le résultat que nous attendions, au vu des règles édictées. Seules deux instances avec les mêmes valeurs d'attributs, et issues de la même classe, sont considérées comme égales.

Même lorsque nous avons une composition d'objet, la même règle de comparaison s'applique. Dans l'exemple ci-dessous, nous allons créer une classe conteneur, qui stocke un tableau associatif Flag.

Exemple 18-21. Comparaison d'objets composés en PHP 4

<?php

class FlagSet {
    var $set;

    function FlagSet($flagArr = array()) {
        $this->set = $flagArr;
    }

    function addFlag($name, $flag) {
        $this->set[$name] = $flag;
    }

    function removeFlag($name) {
        if (array_key_exists($name, $this->set)) {
            unset($this->set[$name]);
        }
    }
}

$u = new FlagSet();
$u->addFlag('flag1', $o);
$u->addFlag('flag2', $p);
$v = new FlagSet(array('flag1'=>$q, 'flag2'=>$p));
$w = new FlagSet(array('flag1'=>$q));

echo "\nObjects composés u(o,p) et v(q,p)\n";
compareObjects($u, $v);

echo "\nu(o,p) et w(q)\n";
compareObjects($u, $w);

?>

L'exemple ci-dessus va afficher :

Objects composés u(o,p) et v(q,p)
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

u(o,p) et w(q)
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Précédent | Sommaire | Suivant
Références dans un constructeur | Niveau supérieur | Les classes et les objets (PHP 5)


Les classes et les objets (PHP 5)

Manuel PHP
Précédent Suivant

Chapitre 19. Les classes et les objets (PHP 5)

Table des matières
Introduction
Syntaxe de base
Auto-chargement de classes
Constructeurs et destructeurs
Visibilité
L'opérateur de résolution de portée (::)
Statique
Constantes de classe
Abstraction de classes
Interfaces
Surcharge
Parcours d'objets
Masques
Méthodes magiques
Mot-clé "final"
Clonage d'objets
Comparaison d'objets
Réflexion
Typage objet

Introduction

En PHP 5, il y a un tout nouveau model objet. La gestion des objets en PHP a été complètement réécrite, permettant de meilleurs performances ainsi que plus de fonctionnalités.

Astuce : Vous pourriez également avoir besoin de jeter un oeil sur Annexe S.

Précédent | Sommaire | Suivant
Comparer des objets | Niveau supérieur | Syntaxe de base


Syntaxe de base

class

Chaque définition de classe commence par le mot-clé class, suivi par le nom de la classe, qui peut être quelconque à condition que ce ne soit pas un mot réservé en PHP. Suivent une paire de parenthèses contenant la définition des membres et des méthodes. Une pseudo-variable $this est disponible lorsqu'une méthode est appelée depuis un contexte objet. $this est une référence à l'objet appelé (habituellement, l'objet auquel la méthode appartient, mais ce peut être un autre objet si la méthode est appelée de manière statique depuis le contexte d'un autre objet). Ce comportement est illustré dans l'exemple suivant :

Exemple 19-1. La variable $this en programmation objet

<?php
class A
{
  function toto()
  {
    if (isset($this)) {
      echo '$this est définie (';
      echo get_class($this);
      echo ")\n";
    } else {
      echo "\$this n'est pas définie.\n";
    }
  }
}

class B
{
  function titi()
  {
    A::toto();
  }
}

$a = new A();
$a->toto();
A::toto();
$b = new B();
$b->titi();
B::titi();
?>

L'exemple ci-dessus va afficher :

$this est définie (a)
$this n'est pas définie.
$this est définie (b)
$this n'est pas définie.

Exemple 19-2. Définition simple d'une classe

<?php
class SimpleClass
{
   // déclaration d'un membre
   public $var = 'une valeur par défaut';

   // déclaration de la méthode
   public function displayVar() {
     echo $this->var;
   }
}
?>

La valeur par défaut doit être une expression, et non (par exemple) une variable, un membre d'une classe ou un appel à une fonction.

Exemple 19-3. Valeur par défaut des membres d'une classe

<?php
     class SimpleClass
     {
     // Déclarations de membres non valides :
     public $var1 = 'hello '.'world';
     public $var2 = <<<EOD
Bonjour le monde !
EOD;
     public $var3 = 1+2;
     public $var4 = self::myStaticMethod();
     public $var5 = $myVar;

     // Déclarations de membres valides :
     public $var6 = myConstant;
     public $var7 = self::classConstant;
     public $var8 = array(true, false);
}
?>

Note : Il y a plusieurs fonctions utiles pour gérer les classes et les objets. Vous devriez regarder du côté des fonctions Class/Object.

Le mot-clé new

Pour créer une instance d'une classe, un nouvel objet doit être créé et assigné à une variable. Un objet doit toujours être assigné lors de la création d'un nouvel objet à moins qu'il ait un constructeur défini qui lance une exception en cas d'erreur. Les classes doivent être définies avant l'instanciation (dans certains cas, c'est impératif).

Exemple 19-4. Création d'une instance

<?php
$instance = new SimpleClass();
?>

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 de l'objet assigné. Ce comportement est le même que lors du passage d'une instance à une fonction. Une copie d'un objet déjà créé peut être effectuée par clonage.

Exemple 19-5. Assignation d'un objet

<?php
$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"
}

Le mot-clé extends

Une classe peut hériter des méthodes et des membres d'une autre classe en utilisant le mot-clé extends dans la déclaration. Il n'est pas possible d'étendre de multiples classes : une classe peut uniquement hériter d'une seule classe de base.

Les méthodes et membres hérités peuvent être surchargés, à moins que la classe parente ait défini une méthode comme final. Pour surcharger, il suffit de redéclarer la méthode avec le même nom que celui défini dans la classe parente. Il est possible d'accéder à une méthode ou un membre surchargé avec l'opérateur parent::

Exemple 19-6. Héritage d'une classe simple

<?php
// Rappel
class SimpleClass
{
   // déclaration d'un membre
   public $var = 'une valeur par défaut';

   // déclaration de la méthode
   public function displayVar() {
     echo $this->var;
   }
}

// extension de la classe
class ExtendClass extends SimpleClass
{
  // Redéfinition de la méthode parent
  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

Précédent | Sommaire | Suivant
Les classes et les objets (PHP 5) | Niveau supérieur | Auto-chargement de classes


Auto-chargement de classes

De nombreux développeurs qui créent des applications orientées objet, créent un fichier source par définition de classe. L'inconvénient majeur de cette méthode est d'avoir à écrire une longue liste d'inclusions de fichier classes au début de chaque script : une inclusion par classe.

En PHP 5, ce n'est plus nécessaire. Vous pouvez définir la fonction __autoload() qui va automatiquement être appelée si une classe n'est pas encore définie au moment de son utilisation. Grâce à elle, vous avez une dernière chance pour inclure une définition de classe, avant que PHP ne déclare une erreur.

Note : Les exceptions lancées depuis la fonction __autoload() ne peuvent être interceptées par un bloc catch : elles provoqueront une erreur fatale.

Exemple 19-7. Exemple avec __autoload()

Cet exemple tente de charger les classes MaClasse1 et MaClasse2, dans les fichiers MaClasse1.php et MaClasse2.php respectivement.

<?php
function __autoload($class_name) {
    require_once $class_name . '.php';
}

$obj  = new MaClasse1();
$obj2 = new MaClasse2();
?>

Précédent | Sommaire | Suivant
Syntaxe de base | Niveau supérieur | Constructeurs et destructeurs


Constructeurs et destructeurs

Constructeurs

void __construct ( [mixed args [, ...]] )

PHP 5 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éfinie un constructeur. Si vous voulez utiliser un constructeur parent, il sera nécessaire de faire appel à parent::__construct().

Exemple 19-8. Exemple d'utilisation des nouveaux constructeurs unifiés

<?php
class BaseClass {
    function __construct() {
        print "In BaseClass constructor\n";
    }
}

class SubClass extends BaseClass {
    function __construct() {
        parent::__construct();
        print "In SubClass constructor\n";
    }
}

$obj = new BaseClass();
$obj = new SubClass();
?>

Pour des raisons de compatibilité ascendante, si PHP 5 ne peut pas trouver une fonction __construct() pour une classe donnée, il cherchera une fonction constructeur représentée, comme dans l'ancien style (PHP < 5), par le nom de la classe. Effectivement, cela signifie que le seul cas où il pourrait y avoir un problème de compatibilité est celui où votre classe contiendrait une méthode nommée __construct() et que vous en ayez un autre usage.

Destructeurs

void __destruct ( void )

PHP 5 introduit un concept de destructeur similaire aux autres langages orientés objet, comme le C++. La méthode destructeur doit être appelée aussitôt que toutes les références à un objet particulier sont effacées ou lorsque l'objet est explicitement détruit.

Exemple 19-9. Exemple avec un Destructeur

<?php
class MyDestructableClass {
    function __construct() {
        print "In constructor\n";
        $this->name = "MyDestructableClass";
    }

    function __destruct() {
        print "Destruction de " . $this->name . "\n";
    }
}

$obj = new MyDestructableClass();
?>

Tout comme le constructeur, le destructeur parent n'est 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.

Note : Le destructeur est appelé durant l'arrêt du script, donc les en-têtes sont toujours déjà envoyés.

Note : Tenter de lancer une exception depuis un destructeur résulte en une erreur fatale.

Précédent | Sommaire | Suivant
Auto-chargement de classes | Niveau supérieur | Visibilité


Visibilité

La visibilité d'une propriété ou d'une méthode peut être définie en préfixant la déclaration avec un mot-clé : public, protected ou private. Les éléments déclarés publics (public) peuvent être utilisés par n'importe quelle partie du programme. L'accès aux éléments protégés (protected) est limité aux classes et parents hérités (et à la classe qui a défini l'élément). L'accès aux éléments privés (private) est uniquement réservé à la classe qui les a définis.

Visibilité des membres

Les classes membres doivent être définies comme publiques, protégées ou privées.

Exemple 19-10. Déclaration des membres

<?php
/**
 * Définition de MyClass
 */
class MyClass
{
    public $public = 'Public';
    protected $protected = 'Protected';
    private $private = 'Private';

    function printHello()
    {
        echo $this->private;
        echo $this->protected;
        echo $this->private;
    }
}

$obj = new MyClass();
echo $obj->public; // Fonctionne
echo $obj->protected; // Erreur fatale
echo $obj->private; // Erreur fatale
$obj->printHello(); // Affiche Public, Protected et Private

/**
 * Définition de MyClass2
 */
class MyClass2 extends MyClass
{
    // On peut redéclarer les éléments publics ou protégés, mais pas ceux privés
    protected $protected = 'Protected2';

    function printHello()
    {
      echo $this->public;
      echo $this->protected;
      echo $this->private;
   }
}

$obj2 = new MyClass2();
echo $obj->public; // Fonctionne
echo $obj2->private; // Indéfini
echo $obj2->protected; // Erreur fatale
$obj2->printHello(); // Affiche Public, Protected2 et non Private

?>

Note : La méthode de déclaration de variable en PHP 4 avec le mot-clé var est toujours supportée pour des raisons de compatibilité (en tant que synonyme du mot-clé public). Depuis PHP 5.1.3, son utilisation génère une erreur de niveau E_STRICT.

Visibilité des méthodes

Les méthodes des classes doivent être définies en tant que publiques, privées ou protégées. Les méthodes sans déclaration seront automatiquement définies comme étant publiques.

Exemple 19-11. Déclaration d'une méthode

<?php
/**
 * Définition de MyClass
 */
class MyClass
{
    // Les contructeurs doivent être publics
    public function __construct() { }

    // Déclaration d'une méthode publique
    public function MyPublic() { }

    // Déclaration d'une méthode protégée
    protected function MyProtected() { }

    // Déclaration d'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 pas Private
?>

Précédent | Sommaire | Suivant
Constructeurs et destructeurs | Niveau supérieur | L'opérateur de résolution de porté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 statiques ou constants ainsi qu'aux éléments redéfinis par la classe.

Lorsque vous référencez ces éléments en dehors de la définition de la classe, utilisez le nom de la classe.

Paamayim Nekudotayim peut sembler un choix étrange pour un double deux points. Cependant, au moment de l'écriture du Zend Engine 0.5 (fournit avec PHP 3), c'est le nom choisi par le groupe Zend. En fait, cela signifie un double deux points... en Hébreu !

Exemple 19-12. :: en dehors de la définition de la classe

<?php
class MyClass {
    const CONST_VALUE = 'Une valeur constante';
}

echo MyClass::CONST_VALUE;
?>

Deux mots-clé spéciaux, self et parent, sont utilisés pour accéder aux membres ou aux méthodes depuis la définition de la classe.

Exemple 19-13. :: 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";
    }
}

OtherClass::doubleColon();
?>

Lorsqu'une classe étendue redéfinit une méthode de la classe parente, PHP n'appelera pas la méthode d'origine. 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, les surcharges et les méthodes magiques.

Exemple 19-14. Appel d'une méthode parente

<?php
class MyClass
{
    protected function myFunc() {
        echo "MyClass::myFunc()\n";
  }
}

class OtherClass extends MyClass
{
    // Dépassement de la définition parent
    public function myFunc() {

      // Mais appel de la fonction parent
      parent::myFunc();
      echo "OtherClass::myFunc()\n";
  }
}

$class = new OtherClass();
$class->myFunc();
?>

Précédent | Sommaire | Suivant
Visibilité | Niveau supérieur | Statique


Statique

Le fait de déclarer des membres ou des méthodes comme statiques vous permet d'y accéder sans avoir besoin d'instancier la classe. On ne peut accéder à un membre déclaré comme statique avec l'objet instancié d'une classe (bien qu'une méthode statique le peut).

La déclaration static doit être faite après la déclaration de visibilité. Pour des raisons de compatiblité avec PHP 4, si aucune déclaration de visibilité n'est utilisée, alors le membre ou la méthode sera traité comme s'il avait été déclaré comme public.

Comme les méthodes statiques sont appelables sans instance d'objet créée, la pseudo variable $this n'est pas disponible dans la méthode déclarée en tant que statique.

En fait, les appels de méthodes statiques sont résolus au moment de la compilation. Lorsque l'on utilise un nom de classe explicite, la méthode est déjà identifiée complètement et aucune notion d'héritage n'est appliquée. Si l'appel est effectué par le mot-clé self, alors self est traduit en la classe courante, qui est la classe appartenant au code. Ici aussi, aucune notion d'héritage n'est appliquée.

On ne peut pas accéder à des propritétés statiques à travers l'objet en utilisant l'opérateur ->.

L'appel non-statique à des méthodes statiques génère une alerte de degré E_STRICT.

Exemple 19-15. Exemple avec un membre 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

// $foo::my_static n'est pas possible

print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>

Exemple 19-16. Exemple avec une méthode statique

<?php
class Foo
{
    public static function aStaticMethod() {
        // ...
    }
}

Foo::aStaticMethod();
?>

Précédent | Sommaire | Suivant
L'opérateur de résolution de portée (::) | Niveau supérieur | Constantes de classe


Constantes de classe

Il est possible de définir des valeurs constantes à l'intérieur d'une classe, qui ne seront pas modifiables. Les constantes diffèrent des variables normales du fait qu'on n'utilise pas le symbole $ pour les déclarer ou les utiliser. Tout comme pour les membres statiques, on ne peut pas accéder aux valeurs constantes depuis une instance de l'objet (en utilisant $object::constant).

La valeur doit être une expression constante, non (par exemple) une variable, un membre de la classe, le résultat d'une opération mathématique ou un appel de fonction.

Exemple 19-17. 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";

$class = new MyClass();
$class->showConstant();
// echo $class::constant;  n'est pas autorisé
?>

Précédent | Sommaire | Suivant
Statique | Niveau supérieur | Abstraction de classes


Abstraction de classes

PHP 5 introduit les classes et les méthodes abstraites. Il n'est pas autorisé de créer une instance d'une classe définie comme abstraite. Toutes les classes contenant au moins une méthode abstraite doivent également être abstraites. Pour définir une méthode abstraite, il faut simplement déclarer la signature de la méthode et ne fournir aucune implémentation.

Lors de l'héritage depuis une classe abstraite, toutes les méthodes marquées comme abstraites dans la déclaration de la classe parent doivent être définies par l'enfant ; de plus, ces méthodes doivent être définies avec la même (ou plus faible) visibilité. Par exemple, si la méthode abstraite est définie comme protégée, l'implémentation de la fonction doit être définie en tant que protégée ou publique.

Exemple 19-18. Exemple de classe abstraite

<?php
abstract class AbstractClass
{
    // Force la classe étendue à 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

Du code ancien n'ayant aucune classe ou fonction nommée abstract devrait fonctionner sans modifications.

Précédent | Sommaire | Suivant
Constantes de classe | Niveau supérieur | Interfaces


Interfaces

Les interfaces objet vous permettent de créer du code qui spécifie quelles méthodes et variables une classe peut implémenter, sans avoir à définir comment ces méthodes seront gérées.

Les interfaces sont définies en utilisant le mot-clé interface, de la même façon qu'une classe standard mais sans aucun contenu de méthode.

Toutes les méthodes déclarées dans une interface doivent être publiques.

implements

Pour implémenter une interface, l'opérateur implements est utilisé. Toutes les méthodes de l'interface doivent être implémentées dans une classe ; si ce n'est pas le cas, une erreur fatale sera émise. Les classes peuvent implémenter plus d'une interface en séparant chaque interface par une virgule.

Note : Une classe ne peut implémenter deux interfaces qui partagent des noms de fonctions, puisque cela causerait une ambiguïté.

Exemples

Exemple 19-19. Exemple d'interface

<?php
// Declaration de l'interface 'iTemplate'
interface iTemplate
{
    public function setVariable($name, $var);
    public function getHtml($template);
}

// Implémentation de l'interface
// Ceci va fonctionner
class Template implements iTemplate
{
    private $vars = array();

    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }

    public function getHtml($template)
    {
        foreach($this->vars as $name => $value) {
            $template = str_replace('{' . $name . '}', $value, $template);
        }

        return $template;
    }
}

// Ceci ne fonctionnera pas
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
    private $vars = array();

    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
}
?>

Voir aussi l'opérateur instanceof.

Précédent | Sommaire | Suivant
Abstraction de classes | Niveau supérieur | Surcharge


Surcharge

Les appels de méthodes et l'accès aux membres peuvent être surchargés via les méthodes __call(), __get() et __set(). Ces méthodes ne seront déclenchées que si votre objet, hérité ou non, ne contient pas le membre ou la méthode auquel vous tentez d'accéder. Toutes les méthodes surchargées doivent être définies en tant que static. Toutes les méthodes surchargées doivent être définies en tant que public.

Depuis PHP 5.1.0, il est également possible de surcharger les fonctions isset() et unset() via, respectivement, les méthodes __isset et __unset. La méthode __isset est également appelée avec la fonction empty().

Surcharge de membre

void __set ( string name, mixed value )

mixed __get ( string name )

bool __isset ( string name )

void __unset ( string name )

Les membres d'une classe peuvent être surchargés afin d'exécuter un code spécial contenu dans vos méthodes __set() et __get(). Le paramètre $name est le nom de la variable qui doit être définie ou recherchée. Le paramètre $valeur de la méthode __set() spécifie la nouvelle valeur à donner à la variable $name.

Exemple 19-20. Exemple de surcharge avec __get, __set, __isset et __unset

<?php
class Setter
{
  public $n;
  private $x = array("a" => 1, "b" => 2, "c" => 3);

  public function __get($nm)
  {
    echo "Récupération de [$nm]\n";

    if (isset($this->x[$nm])) {
      $r = $this->x[$nm];
      echo "Retour : $r\n";
      return $r;
    } else {
      echo "Rien!\n";
    }
  }

  public function __set($nm, $val)
  {
    echo "Définition de [$nm] à $val\n";

    if (isset($this->x[$nm])) {
      $this->x[$nm] = $val;
      echo "OK!\n";
    } else {
      echo "Pas OK!\n";
    }
   }

  public function __isset($nm)
  {
    echo "Vérifie si $nm est défini\n";

    return isset($this->x[$nm]);
  }

  public function __unset($nm)
  {
    echo "Libération de $nm\n";

    unset($this->x[$nm]);
  }
}

$foo = new Setter();
$foo->n = 1;
$foo->a = 100;
$foo->a++;
$foo->z++;
var_dump($foo);

var_dump(isset($foo->a)); //true
unset($foo->a);
var_dump(isset($foo->a)); //false

// ceci ne passera pas via la méthode __isset()
// parce que 'n' est une propriété publique
var_dump(isset($foo->n));

var_dump($foo);
?>

L'exemple ci-dessus va afficher :

Définition de [a] à 100
OK!
Récupération de [a]
Retour : 100
Définition de [a] à 101
OK!
Récupération de [z]
Rien!
Définition de [z] à 1
Pas OK!

Vérifie si a est défini
bool(true)
Libération de a
Vérifie si a est défini
bool(false)
bool(true)

object(Setter)#1 (2) {
  ["n"]=>
  int(1)
  ["x:private"]=>
  array(2) {
    ["b"]=>
    int(2)
    ["c"]=>
    int(3)
  }
}

Surcharge de méthode

mixed __call ( string name, array arguments )

La méthode magique __call() permet de capture l'appel à des méthodes non existantes. De cette façon, __call() peut être utilisée pour implémenter un gestionnaire de méthodes défini par l'utilisateur qui dépend du nom de la méthode actuellement appelée. Ceci est particulièrement pratique pour implémenter un proxy, par exemple. Les arguments qui sont passés à la fonction devront être définis dans un tableau via le paramètre $arguments. La valeur retournée de la méthode __call() sera retournée à la méthode appelante.

Exemple 19-21. Exemple de surcharge avec __call

<?php
class Caller
{
  private $x = array(1, 2, 3);

  public function __call($m, $a)
  {
    print "Méthode $m appelée :\n";
    var_dump($a);
    return $this->x;
  }
}

$foo = new Caller();
$a = $foo->test(1, "2", 3.4, true);
var_dump($a);
?>

L'exemple ci-dessus va afficher :

Méthode test appelée :
array(4) {
  [0]=>
  int(1)
  [1]=>
  string(1) "2"
  [2]=>
  float(3.4)
  [3]=>
  bool(true)
}
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Précédent | Sommaire | Suivant
Interfaces | Niveau supérieur | Parcours d'objets


Parcours d'objets

PHP 5 fournit une façon de définir les objets de manière à ce qu'on puisse parcourir une liste de membres avec une structure foreach. Par défaut, toutes les propriétés visibles seront utilisées pour le parcours.

Exemple 19-22. 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 nous le montre l'affichage, l'itération foreach affiche toutes les variables visibles disponibles. Pour aller plus loin, vous pouvez implémenter l'interface interne de PHP 5 nommée Iterator. Ceci permet de déterminer comment l'objet doit être parcouru.

Exemple 19-23. Itération d'un objet implémentant un itérateur

<?php
class MyIterator implements Iterator
{
  private $var = array();

  public function __construct($array)
  {
    if (is_array($array) ) {
      $this->var = $array;
    }
  }

  public function rewind() {
    echo "rembobinage\n";
    reset($this->var);
  }

  public function current() {
    $var = current($this->var);
    echo "actuel : $var\n";
    return $var;
  }

  public function key() {
    $var = key($this->var);
    echo "clé : $var\n";
    return $var;
  }

  public function next() {
    $var = next($this->var);
    echo "suivant : $var\n";
    return $var;
  }

  public function valid() {
    $var = $this->current() !== false;
    echo "valide : {$var}\n";
    return $var;
  }
}

$values = array(1,2,3);
$it = new MyIterator($values);

foreach ($it as $a => $b) {
    print "$a: $b\n";
}

L'exemple ci-dessus va afficher :

rembobinage
actuel : 1
valide : 1
actuel : 1
clé : 0
0: 1
suivant : 2
actuel : 2
valide : 1
actuel : 2
clé : 1
1: 2
suivant : 3
actuel : 3
valide : 1
actuel : 3
clé : 2
2: 3
suivant :
actuel :
valide :

Vous pouvez également définir votre classe de façon à ce qu'elle n'ait pas besoin de définir toutes les fonctions Iterator en implémentant simplement l'interface PHP 5 IteratorAggregate.

Exemple 19-24. Itération d'un objet implémentant IteratorAggregate

<?php
class MyCollection implements IteratorAggregate
{
  private $items = array();
  private $count = 0;

  // Définition requise de l'interface IteratorAggregate
  public function getIterator() {
    return new MyIterator($this->items);
  }

  public function add($value) {
    $this->items[$this->count++] = $value;
  }
}

$coll = new MyCollection();
$coll->add('valeur 1');
$coll->add('valeur 2');
$coll->add('valeur 3');

foreach ($coll as $key => $val) {
    echo "clé/valeur : [$key -> $val]\n\n";
}
?>

L'exemple ci-dessus va afficher :

rembobinage
actuel : valeur 1
valide : 1
actuel : valeur 1
clé : 0
clé/valeur : [0 -> valeur 1]

suivant : valeur 2
actuel : valeur 2
valide : 1
actuel : valeur 2
clé : 1
clé/valeur : [1 -> valeur 2]

suivant : valeur 3
actuel : valeur 3
valide : 1
actuel : valeur 3
clé : 2
clé/valeur : [2 -> valeur 3]

suivant :
actuel :
valide :

Note : Pour plus d'exemples sur le parcours d'objets, lisez la section sur l'extension SPL.

Précédent | Sommaire | Suivant
Surcharge | Niveau supérieur | Masques


Masques

Les masques sont un moyen de décrire les meilleures pratiques et les bonnes conceptions. Ils proposent une solution flexible aux problèmes habituels de programmation.

Usine

Le masque d'usine permet l'instanciation d'objets durant l'exécution. Il est appelé "masque d'usine" puisqu'il est responsable de la "fabrication" d'un objet. Un paramètre d'usine reçoit le nom de la classe pour l'instancier en tant qu'argument.

Exemple 19-25. Méthode de paramètre d'usine

<?php
class Exemple
{
    // La méthode de paramètre d'usine
    public static function factory($type)
    {
        if (include_once 'Drivers/' . $type . '.php') {
            $classname = 'Driver_' . $type;
            return new $classname;
        } else {
            throw new Exception ('Driver non trouvé');
        }
    }
}
?>

Définir cette méthode dans une classe permet de charger un pilote à la volée. Si la classe Example était une classe d'abstraction de base de données, le chargement des pilotes MySQL et SQLite pourrait être effectué comme ceci :

<?php
// Chargement du driver MySQL
$mysql = Exemple::factory('MySQL');

// Chargement du driver SQLite
$sqlite = Example::factory('SQLite');
?>

Singleton

Le masque singleton est utilisé dans les situations où l'on a besoin qu'il y ait une unique instance d'une certaine classe. L'exemple le plus commun est une connexion à une base de données. L'implémentation de ce masque permet au développeur de rendre cette unique instance facilement accessible par beaucoup d'autres objets.

Exemple 19-26. Fonction Singleton

<?php
class Example
{
    // instance de la classe
    private static $instance;

    // Un constructeur privé ; empêche la création directe d'objet
    private function __construct()
    {
        echo 'Je suis construit';
    }

    // La méthode singleton
    public static function singleton()
    {
        if (!isset(self::$instance)) {
            $c = __CLASS__;
            self::$instance = new $c;
        }

        return self::$instance;
    }

    // Exemple d'une méthode
    public function bark()
    {
        echo 'Woof!';
    }

    // Prévient les utilisateurs sur le clônage de l'instance
    public function __clone()
    {
        trigger_error('Le clônage n\'est pas autorisé.', E_USER_ERROR);
    }
}

?>

Ceci autorise une unique instance de la classe Example.

<?php
// Ceci échoue car le constructeur est privé
$test = new Example;

// Ceci récupère toujours une seule instance de la classe
$test = Example::singleton();
$test->bark();

// Ceci provoque une erreur E_USER_ERROR.
$test_clone = clone $test;

?>

Précédent | Sommaire | Suivant
Parcours d'objets | Niveau supérieur | Méthodes magiques


Méthodes magiques

Les noms de fonction __construct, __destruct (voir les Constructeurs et Destructeurs), __call, __get, __set, __isset, __unset (voir la surcharge), __sleep, __wakeup, __toString, __set_state, __clone et __autoload sont magiques dans les classes PHP. Vous ne pouvez pas utiliser ces noms de fonction dans aucune de vos classes sauf si vous voulez modifier le comportement associé à ces fonctions magiques.

Attention

PHP réserve tous les noms de fonctions commençant par __ pour les fonctions magiques. Il est recommandé de ne pas utiliser de noms de fonctions commençant par __ sauf si vous voulez des fonctionnalités magiques documentées.

__sleep et __wakeup

La fonction serialize() vérifie si votre classe a une fonction avec le nom magique __sleep. Si c'est le cas, cette fonction sera exécutée avant toute linéarisation. Elle peut nettoyer l'objet et elle est supposée retourner un tableau avec les noms de toutes les variables de l'objet qui doivent être linéarisées. Si la méthode ne retourne rien, alors NULL est linéarisé et une alerte de type E_NOTICE est émise.

Le but avoué de __sleep est de valider des données en attente ou d'effectuer les opérations de nettoyage. De plus, cette fonction est utile si vous avez de très gros objets qui n'ont pas besoin d'être sauvegardés en totalité.

La méthode __sleep doit retourner la valeur à linéariser (habituellement, $this), sinon, NULL est linéarisé.

Réciproquement, la fonction unserialize() vérifie la présence d'une fonction dont le nom est le nom magique __wakeup. Si elle est présente, cette fonction peut reconstruire toute ressource que l'objet possède.

Le but avoué de __wakeup est de rétablir toute connexion base de données qui aurait été perdue durant la linéarisation et d'effectuer des tâches de réinitialisation.

Exemple 19-27. Utilisation de Sleep et de wakeup

<?php
class Connection {
    protected $link;
    private $server, $username, $password, $db;

    public function __construct($server, $username, $password, $db)
    {
        $this->server = $server;
        $this->username = $username;
        $this->password = $password;
        $this->db = $db;
        $this->connect();
    }

    private function connect()
    {
        $this->link = mysql_connect($this->server, $this->username, $this->password);
        mysql_select_db($this->db, $this->link);
    }

    public function __sleep()
    {
        return array('server', 'username', 'password', 'db');
    }

    public function __wakeup()
    {
        $this->connect();
    }
}
?>

__toString

La méthode __toString détermine comment la classe doit réagir lorsqu'elle est convertie en chaîne de caractères.

Exemple 19-28. Exemple simple

<?php
// Déclaration d'une classe simple
class ClasseTest
{
    public $foo;

    public function __construct($foo) {
        $this->foo = $foo;
    }

    public function __toString() {
        return $this->foo;
    }
}

$class = new ClasseTest('Bonjour');
echo $class;
?>

L'exemple ci-dessus va afficher :

Bonjour

Il est important de noter qu'avant PHP 5.2.0, la méthode __toString n'était appelée que si elle était directement combinée avec echo() ou print().

__set_state

Cette méthode statique est appelée pour les classes exportées par la fonction var_export() depuis PHP 5.1.0.

Le seul paramètre de cette méthode est un tableau contenant les propriétés exportées sous la forme array('propriété' => valeur, ...).

Précédent | Sommaire | Suivant
Masques | Niveau supérieur | Mot-clé "final"


Mot-clé "final"

PHP 5 introduit le mot-clé "final" qui empêche les classes filles de surcharger une méthode en en préfixant la définition par le mot-clé "final". Si la classe elle-même est définie comme finale, elle ne pourra pas être étendue.

Exemple 19-29. Exemple de méthode finale

<?php
class BaseClass {
   public function test() {
       echo "BaseClass::test() appelé\n";
   }

   final public function moreTesting() {
       echo "BaseClass::moreTesting() appelé\n";
   }
}

class ChildClass extends BaseClass {
   public function moreTesting() {
       echo "ChildClass::moreTesting() appelé\n";
   }
}
// Résultat : Fatal error: Cannot override final method BaseClass::moreTesting()
?>

Exemple 19-30. Exemple de classe finale

<?php
final class BaseClass {
   public function test() {
       echo "BaseClass::test() appelé\n";
   }

   // Ici, peut importe si vous spécifiez la fonction en finale ou pas
   final public function moreTesting() {
       echo "BaseClass::moreTesting() appelé\n";
   }
}

class ChildClass extends BaseClass {
}
// Résultat : Fatal error: Class ChildClass may not inherit from final class (BaseClass)
?>

Précédent | Sommaire | Suivant
Méthodes magiques | Niveau supérieur | Clonage d'objets


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.

Un autre exemple : si votre objet $a contient une référence vers un autre objet $b qui est en cours d'utilisation, lorsque vous copiez l'objet parent ($a), vous voulez créer une nouvelle instance de $b pour que votre copie possède sa propre instance.

Une copie d'objet est créée en utilisant le mot-clé clone (qui fait appel à la méthode __clone() de l'objet, si elle a été définie). La méthode __clone() d'un objet ne peut être appelée directement.

<?php

$copie_d_objet = clone $objet;

?>

Lorsqu'un objet est cloné, PHP 5 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. 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 19-31. 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
        )

)

Précédent | Sommaire | Suivant
Mot-clé "final" | Niveau supérieur | Comparaison d'objets


Comparaison d'objets

En PHP 5, la comparaison d'objets est plus compliquée qu'en PHP 4 afin d'être plus proche du comportement des langages orientés objet (bien que PHP n'en soit pas un).

Lors de l'utilisation de l'opérateur de comparaison ==, les objets sont comparées de manière simple, à savoir : deux objets sont égaux s'ils ont les mêmes attributs et valeurs, et qu'ils sont des instances de la même classe.

D'un autre coté, 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 19-32. Exemple de comparaison d'objets en PHP 5

<?php
function bool2str($bool)
{
    if ($bool === false) {
            return 'FALSE';
    } else {
            return 'TRUE';
    }
}

function compareObjects(&$o1, &$o2)
{
    echo 'o1 == o2 : '.bool2str($o1 == $o2)."\n";
    echo 'o1 != o2 : '.bool2str($o1 != $o2)."\n";
    echo 'o1 === o2 : '.bool2str($o1 === $o2)."\n";
    echo 'o1 !== o2 : '.bool2str($o1 !== $o2)."\n";
}

class Flag
{
    public $flag;

    function Flag($flag = true) {
            $this->flag = $flag;
    }
}

class OtherFlag
{
    public $flag;

    function OtherFlag($flag = true) {
            $this->flag = $flag;
    }
}

$o = new Flag();
$p = new Flag();
$q = $o;
$r = new OtherFlag();

echo "Deux instances de la même classe\n";
compareObjects($o, $p);

echo "\nDeux références sur le même objet\n";
compareObjects($o, $q);

echo "\nInstances de classes différentes\n";
compareObjects($o, $r);
?>

L'exemple ci-dessus va afficher :

Deux instances de la même classe
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Deux références sur le même objet
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Instances de classes différentes
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Précédent | Sommaire | Suivant
Clonage d'objets | Niveau supérieur | Réflexion


Réflexion

Introduction

PHP 5 introduit API de réflexion complète qui permet de faire du reverse-engineering sur les classes, les interfaces, les fonctions et les méthodes tout comme les extensions. L'API de réflexion permet également d'obtenir les commentaires de la documentation pour les fonctions, les classes et les méthodes.

L'API de réflexion est une extension orientée objet du Moteur Zend, constituée des classes suivantes :

Exemple 19-33. API de réflexion

<?php
class Reflection { }
interface Reflector { }
class ReflectionException extends Exception { }
class ReflectionFunction extends ReflectionFunctionAbstract implements Reflector { }
class ReflectionParameter implements Reflector { }
class ReflectionMethod extends ReflectionFunctionAbstract implements Reflector { }
class ReflectionClass implements Reflector { }
class ReflectionObject extends ReflectionClass { }
class ReflectionProperty implements Reflector { }
class ReflectionExtension implements Reflector { }
?>

Note : Pour plus de détails sur ces classes, lisez les chapitres suivants.

Si nous exécutons le code de l'exemple ci-dessous :

Exemple 19-34. Utilisation basique de l'API de réflexion

<?php
Reflection::export(new ReflectionClass('Exception'));
?>

L'exemple ci-dessus va afficher :

Class [ <internal> class Exception ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [6] {
    Property [ <default> protected $message ]
    Property [ <default> private $string ]
    Property [ <default> protected $code ]
    Property [ <default> protected $file ]
    Property [ <default> protected $line ]
    Property [ <default> private $trace ]
  }

  - Methods [9] {
    Method [ <internal> final private method __clone ] {
    }

    Method [ <internal> <ctor> public method __construct ] {

      - Parameters [2] {
        Parameter #0 [ <required> $message ]
        Parameter #1 [ <required> $code ]
      }
    }

    Method [ <internal> final public method getMessage ] {
    }

    Method [ <internal> final public method getCode ] {
    }

    Method [ <internal> final public method getFile ] {
    }

    Method [ <internal> final public method getLine ] {
    }

    Method [ <internal> final public method getTrace ] {
    }

    Method [ <internal> final public method getTraceAsString ] {
    }

    Method [ <internal> public method __toString ] {
    }
  }
}

ReflectionException

ReflectionException étend le standard Exception et est lancé par l'API Reflection. Aucune méthode spécifique ni de propriété ne sont introduites.

ReflectionFunction

La classe ReflectionFunction vous permet de faire du reverse-engineering sur les fonctions.

Exemple 19-35. La classe ReflectionFunction

<?php
class ReflectionFunction extends ReflectionFunctionAbstract implements Reflector
{
    final private __clone()
    public object __construct(string name)
    public string __toString()
    public static string export(string name, bool return)
    public string getName()
    public bool isInternal()
    public bool isUserDefined()
    public string getFileName()
    public int getStartLine()
    public int getEndLine()
    public string getDocComment()
    public array getStaticVariables()
    public mixed invoke(mixed args)
    public mixed invokeArgs(array args)
    public bool returnsReference()
    public ReflectionParameter[] getParameters()
    public int getNumberOfParameters()
    public int getNumberOfRequiredParameters()
}
?>

Note : getNumberOfParameters() et getNumberOfRequiredParameters() ont été ajoutés en PHP 5.0.3, tandis que invokeArgs() a été ajouté en PHP 5.1.0.

Pour connaître le fonctionnement d'une fonction, vous devez tout d'abord créer une instance de la classe ReflectionFunction. Ainsi, vous pouvez appeler n'importe quelle méthode de cette instance.

Exemple 19-36. Utilisation de la classe ReflectionFunction

<?php
/**
 * Un simple compteur
 *
 * @return    int
 */
function counter()
{
    static $c = 0;

    return $c++;
}

// Création d'une instance de la classe Reflection_Function
$func = new ReflectionFunction('counter');

// Affichage d'informations basiques
printf(
    "===> 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()
);

// Affichage du commentaire de la documentation
printf("---> Documentation:\n %s\n", var_export($func->getDocComment(), 1));

// Affichage des variables statiques si elles existent
if ($statics = $func->getStaticVariables())
{
    printf("---> Variables statiques : %s\n", var_export($statics, 1));
}

// Appel de la fonction
printf("---> Invocation des résultats dans : ");
var_dump($func->invoke());

// vous pouvez préférer utiliser la méthode export()
echo "\nRésultat de ReflectionFunction::export() :\n";
echo ReflectionFunction::export('counter');
?>

Note : La méthode invoke() accepte un nombre variable d'arguments, tout comme la fonction call_user_func().

ReflectionParameter

La classe ReflectionParameter récupère les informations concernant les paramètres des fonctions ou des méthodes.

Exemple 19-37. La classe ReflectionParameter

<?php
class ReflectionParameter implements Reflector
{
    final private __clone()
    public object __construct(string name)
    public string __toString()
    public static string export(mixed function, mixed parameter, bool return)
    public string getName()
    public bool isPassedByReference()
    public ReflectionFunction getDeclaringFunction()
    public ReflectionClass getDeclaringClass()
    public ReflectionClass getClass()
    public bool isArray()
    public bool allowsNull()
    public bool isPassedByReference()
    public bool getPosition()
    public bool isOptional()
    public bool isDefaultValueAvailable()
    public mixed getDefaultValue()
}
?>

Note : getDefaultValue(), isDefaultValueAvailable() et isOptional() ont été ajoutés en PHP 5.0.3, tandis que isArray() a été ajoutée en PHP 5.1.0. getDeclaringFunction() et getPosition() ont été ajoutées en PHP 5.1.3.

Pour connaître le fonctionnement des paramètres d'une fonction, vous devez tout d'abord créer une instance de la classe ReflectionFunction ou ReflectionMethod et, ainsi, utiliser leurs méthodes getparameters() pour récupérer un tableau de paramètres.

Exemple 19-38. Utilisation de la classe ReflectionParameter

<?php
function foo($a, $b, $c) { }
function bar(Exception $a, &$b, $c) { }
function baz(ReflectionFunction $a, $b = 1, $c = null) { }
function abc() { }

// Création d'une instance de la classe Reflection_Function avec le
// paramètre fourni en ligne de commande.
$reflect = new ReflectionFunction($argv[1]);

echo $reflect;

foreach ($reflect->getParameters() as $i => $param) {
    printf(
        "-- Paramètre #%d : %s {\n".
        "   Classe : %s\n".
        "   Autorise NULL : %s\n".
        "   Passé par référence : %s\n".
        "   Est optionnel ?: %s\n".
        "}\n",
        $i,
        $param->getName(),
        var_export($param->getClass(), 1),
        var_export($param->allowsNull(), 1),
        var_export($param->isPassedByReference(), 1),
        $param->isOptional() ? 'oui' : 'non'
    );
}
?>

ReflectionClass

La classe ReflectionClass vous permet de faire du reverse-engineering sur des classes.

Exemple 19-39. La classe ReflectionClass

<?php
class ReflectionClass implements Reflector
{
    final private __clone()
    public object __construct(string name)
    public string __toString()
    public static string export(mixed class, bool return)
    public string getName()
    public bool isInternal()
    public bool isUserDefined()
    public bool isInstantiable()
    public bool hasConstant(string name)
    public bool hasMethod(string name)
    public bool hasProperty(string name)
    public string getFileName()
    public int getStartLine()
    public int getEndLine()
    public string getDocComment()
    public ReflectionMethod getConstructor()
    public ReflectionMethod getMethod(string name)
    public ReflectionMethod[] getMethods()
    public ReflectionProperty getProperty(string name)
    public ReflectionProperty[] getProperties()
    public array getConstants()
    public mixed getConstant(string name)
    public ReflectionClass[] getInterfaces()
    public bool isInterface()
    public bool isAbstract()
    public bool isFinal()
    public int getModifiers()
    public bool isInstance(stdclass object)
    public stdclass newInstance(mixed args)
    public stdclass newInstanceArgs(array args)
    public ReflectionClass getParentClass()
    public bool isSubclassOf(ReflectionClass class)
    public array getStaticProperties()
    public mixed getStaticPropertyValue(string name [, mixed default])
    public void setStaticPropertyValue(string name, mixed value)
    public array getDefaultProperties()
    public bool isIterateable()
    public bool implementsInterface(string name)
    public ReflectionExtension getExtension()
    public string getExtensionName()
}
?>

Note : hasConstant(), hasMethod(), hasProperty(), getStaticPropertyValue() et setStaticPropertyValue() ont été ajoutées en PHP 5.1.0, tandis que newInstanceArgs() a été ajoutée dans PHP 5.1.3.

Pour connaître le fonctionnement d'une classe, vous devez d'abord créer une instance de la classe ReflectionClass. Vous pourrez donc appeler n'importe quelle méthode sur cette instance.

Exemple 19-40. Utilisation de la classe ReflectionClass

<?php
interface Linearisable
{
    // ...
}

class Object
{
    // ...
}

/**
 * Une classe compteur
 *
 */
class Compteur extends Object implements Linearisable
{
    const START = 0;
    private static $c = Compteur::START;

    /**
     * Invocation du compteur
     *
     * @access  public
     * @return  int
     */
    public function count()
    {
        return self::$c++;
    }
}

// Création d'une instance de la classe ReflectionClass
$class = new ReflectionClass('Compteur');

// Affichage d'informations basiques
printf(
    "===> La %s%s%s %s '%s' [extension de %s]\n".
    "     déclarée dans %s\n".
    "     lignes %d à %d\n".
    "     a le modificateur %d [%s]\n",
    $class->isInternal() ? 'internal' : 'user-defined',
    $class->isAbstract() ? ' abstract' : '',
    $class->isFinal() ? ' final' : '',
    $class->isInterface() ? 'interface' : 'class',
    $class->getName(),
    var_export($class->getParentClass(), 1),
    $class->getFileName(),
    $class->getStartLine(),
    $class->getEndline(),
    $class->getModifiers(),
    implode(' ', Reflection::getModifierNames($class->getModifiers()))
);

// Affichage du commentaire de la documentation
printf("---> Documentation:\n %s\n", var_export($class->getDocComment(), 1));

// Affichage de l'interface qui implémente cette classe
printf("---> Implémenté :\n %s\n", var_export($class->getInterfaces(), 1));

// Affichage des constantes de la classe
printf("---> Constantes : %s\n", var_export($class->getConstants(), 1));

// Affichage des propriétés de la classe
printf("---> Properties: %s\n", var_export($class->getProperties(), 1));

// Affichage des méthodes de la classe
printf("---> Méthodes : %s\n", var_export($class->getMethods(), 1));

// Si cette classe est instanciable, création d'une instance
if ($class->isInstantiable()) {
    $counter = $class->newInstance();

    echo '---> $counter est uneinstance ? ';
    echo $class->isInstance($counter) ? 'oui' : 'non';

    echo "\n---> Le nouvel objet Object() est une instance ? ";
    echo $class->isInstance(new Object()) ? 'oui' : 'non';
}
?>

Note : La méthode newinstance() accepte un nombre variable d'arguments, tout comme la fonction call_user_func().

Note : $class = new ReflectionClass('Foo'); $class->isInstance($arg) est équivalent à $arg instanceof Foo ou is_a($arg, 'Foo').

ReflectionObject

La classe ReflectionObject vous permet de retrouver les objets.

<?php
class ReflectionObject extends ReflectionClass
{
    final private __clone()
    public object __construct(mixed object)
    public string __toString()
    public static string export(mixed object, bool return)
}
?>

ReflectionMethod

La classe ReflectionMethod vous permet de faire du reverse-engineering sur les méthodes des classes.

Exemple 19-41. La classe ReflectionMethod

<?php
class ReflectionMethod extends ReflectionFunctionAbstract implements Reflector
{
    public __construct(mixed class, string name)
    public string __toString()
    public static string export(mixed class, string name, bool return)
    public mixed invoke(stdclass object, mixed args)
    public mixed invokeArgs(stdclass object, array args)
    public bool isFinal()
    public bool isAbstract()
    public bool isPublic()
    public bool isPrivate()
    public bool isProtected()
    public bool isStatic()
    public bool isConstructor()
    public bool isDestructor()
    public int getModifiers()
    public ReflectionClass getDeclaringClass()

    // Inherited from ReflectionFunction
    final private __clone()
    public string getName()
    public bool isInternal()
    public bool isUserDefined()
    public string getFileName()
    public int getStartLine()
    public int getEndLine()
    public string getDocComment()
    public array getStaticVariables()
    public bool returnsReference()
    public ReflectionParameter[] getParameters()
    public int getNumberOfParameters()
    public int getNumberOfRequiredParameters()
}
?>

Pour connaître le fonctionnement d'une méthode, vous devez d'abord créer une instance de la classe ReflectionMethod. Vous pourrez ainsi appeler n'importe quelle méthode de cette instance.

Exemple 19-42. Utilisation de la classe ReflectionMethod

<?php
class Compteur
{
    private static $c = 0;

    /**
     * Incrémentation d'un compteur
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */
    final public static function increment()
    {
        return self::$c;
    }
}

// Création d'une instance de la classe Reflection_Method
$method = new ReflectionMethod('Compteur', 'increment');

// Affichage d'informations basiques
printf(
    "===> La méthode %s%s%s%s%s%s%s '%s' (qui est %s)\n".
    "     déclaré dans %s\n".
    "     lignes %d à %d\n".
    "     a les modificateurs %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()))
  );

// Affichage du commentaire de la documentation
printf("---> Documentation:\n %s\n", var_export($method->getDocComment(), 1));

// Affichage des variables statiques si elles existent
if ($statics= $method->getStaticVariables()) {
    printf("---> Variales statiques : %s\n", var_export($statics, 1));
}

// Invocation de la méthode
printf("---> Résultat de l'invocation dans : ");
var_dump($method->invoke(NULL));
?>

Note : Invoquer des méthodes privées, protégées ou abstraites provoquera une exception jetée par la méthode invoke().

Note : Pour les méthodes statiques comme vu précédemment, vous devez passer NULL comme premier argument à la fonction invoke(). Pour les méthodes non-statiques, passez une instance de la classe.

ReflectionProperty

La classe ReflectionProperty vous permet de faire du reverse-engineering sur les propriétés des classes.

Exemple 19-43. La classe ReflectionProperty

<?php
class ReflectionProperty implements Reflector
{
    final private __clone()
    public __construct(mixed class, string name)
    public string __toString()
    public static string export(mixed class, string name, bool return)
    public string getName()
    public bool isPublic()
    public bool isPrivate()
    public bool isProtected()
    public bool isStatic()
    public bool isDefault()
    public int getModifiers()
    public mixed getValue(stdclass object)
    public void setValue(stdclass object, mixed value)
    public ReflectionClass getDeclaringClass()
    public string getDocComment()
}
?>

Note : getDocComment() a été ajouté en PHP 5.1.0.

Pour connaître le fonctionnement d'une propriété, vous devez d'abord créer une instance de la classe ReflectionProperty. Vous pourrez ainsi appeler n'importe quelle méthode de cette instance.

Exemple 19-44. Utilisation de la classe ReflectionProperty

<?php
class Chaine
{
    public $length  = 5;
}

// Création d'une instance de la classe ReflectionProperty
$prop = new ReflectionProperty('Chaine', 'length');

// Affichage d'informations basiques
printf(
    "===> Les propriétés %s%s%s%s '%s' (qui a %s)\n".
    "     a les modificateurs %s\n",
    $prop->isPublic() ? ' public' : '',
    $prop->isPrivate() ? ' private' : '',
    $prop->isProtected() ? ' protected' : '',
    $prop->isStatic() ? ' static' : '',
    $prop->getName(),
    $prop->isDefault() ? 'déclaré au moment de la compilation' : 'créé au moment de l\'exécution',
    var_export(Reflection::getModifierNames($prop->getModifiers()), 1)
);

// Création d'une instance de Chaine
$obj= new Chaine();

// Récupération de la valeur courante
printf("---> La veleur est : ");
var_dump($prop->getValue($obj));

// Modification de la valeur
$prop->setValue($obj, 10);
printf("---> Définition de la valeur à 10, la nouvelle valeur est : ");
var_dump($prop->getValue($obj));

// Affichage de l'objet
var_dump($obj);
?>

Note : Essayer de récupérer ou de définir les valeurs des propriétés d'une classe privée ou protégée produira une exception.

ReflectionExtension

La classe ReflectionExtension vous permet de faire du reverse-engineering sur les extensions. Vous pouvez connaître toutes les extensions chargées à l'exécution en utilisation la fonction get_loaded_extensions().

Exemple 19-45. La classe ReflectionExtension

<?php
class ReflectionExtension implements Reflector
{
    final private __clone()
    public __construct(string name)
    public string __toString()
    public static string export(string name, bool return)
    public string getName()
    public string getVersion()
    public ReflectionFunction[] getFunctions()
    public array getConstants()
    public array getINIEntries()
    public ReflectionClass[] getClasses()
    public array getClassNames()
}
?>

Pour connaître le fonctionnement d'une extension, vous devez d'abord créer une instance de la classe ReflectionExtension. Vous pourrez ainsi appeler n'importe quelle méthode sur cette instance.

Exemple 19-46. Utilisation de la classe ReflectionExtension

<?php
// Création d'une instance de la classe ReflectionProperty
$ext = new ReflectionExtension('standard');

// Affichage d'informations basiques
printf(
    "Nom        : %s\n".
    "Version     : %s\n".
    "Fonctions   : [%d] %s\n".
    "Entrées INI : [%d] %s\n" .
    "Classes     : [%d] %s\n",
        $ext->getName(),
        $ext->getVersion() ? $ext->getVersion() : 'NO_VERSION',
        sizeof($ext->getFunctions()),
        var_export($ext->getFunctions(), 1),

        sizeof($ext->getConstants()),
        var_export($ext->getConstants(), 1),

        sizeof($ext->getINIEntries()),
        var_export($ext->getINIEntries(), 1),

        sizeof($ext->getClassNames()),
        var_export($ext->getClassNames(), 1)
);
?>

Extension des classes de réflexion

Dans le cas où vous voudriez créer des versions spéciales des classes embarquées (par exemple pour créer du HTML colorisé lorsqu'il est exporté, pour avoir un accès facile aux variables des membres au lieu des méthodes ou pour avoir des méthodes utiles), vous devez étendre la classe.

Exemple 19-47. Extension des classes embarquées

<?php
/**
 * Ma classe Reflection_Method
 *
 */
class My_Reflection_Method extends ReflectionMethod
{
  public $visibility= '';

  public function __construct($o, $m)
  {
    parent::__construct($o, $m);
    $this->visibility= Reflection::getModifierNames($this->getModifiers());
  }
}

/**
 * Démo classe #1
 *
 */
class T {
  protected function x() {}
}

/**
 * Démo classe #2
 *
 */
class U extends T {
  function x() {}
}

// Affichage des informations
var_dump(new My_Reflection_Method('U', 'x'));
?>

Note : Attention : si vous écrasez le constructeur, n'oubliez pas d'appeler le constructeur parent avant d'insérer le moindre code. Sinon, votre code produira l'erreur suivante : Fatal error: Internal error: Failed to retrieve the reflection object

Précédent | Sommaire | Suivant
Comparaison d'objets | Niveau supérieur | Typage objet


Typage objet

PHP 5 introduit le typage objet implicite (littéralement, Type Hinting). Les fonctions peuvent maintenant imposer aux paramètres d'être des objets (en spécifiant le nom de la classe dans le prototype de la fonction) ou des tableaux (depuis PHP 5.1).

Exemple 19-48. Exemples de typage d'objets

<?php
// Un exemple de classe
class MaClasse
{
    /**
     * Fonction de test
     *
     * Le premier paramètre doit être un objet de type AutreClasse
     */
    public function test(AutreClasse $autreclasse) {
        echo $autreclasse->var;
    }

    /**
    * Une autre fonction de test
    *
    * Le premier paramètre doit être un tableau
    */
    public function test_array(array $input_array) {
        print_r($input_array);
    }
}

// Un autre exemple de classe
class AutreClasse {
    public $var = 'Bonjour le monde!';
}
?>

Si le paramètre ne satisfait pas les conditions imposées, une erreur fatale est émise.

<?php
// Une instance de chaque classe
$maclasse = new MaClasse;
$autreclasse = new AutreClasse;

// Erreur fatale : Argument 1 doit être un objet de la classe AutreClasse
$maclasse->test('salut');

// Erreur fatale : Argument 1 doit être une instance de AutreClasse
$foo = new stdClass;
$maclasse->test($foo);

// Erreur fatale : Argument 1 ne doit pas être null
$maclasse->test(null);

// Fonctionne : Affiche 'Bonjour le monde!'
$maclasse->test($autreclasse);

// Erreur fatale : Argument 1 doit être un tableau
$myclass->test_array('a string');

// Fonctionne : Affiche le tableau
$myclass->test_array(array('a', 'b', 'c'));
?>

Le typage fonctionne aussi avec les fonctions :

<?php
// Un exemple de classe
class MaClasse {
    public $var = 'Bonjour le monde!';
}

/**
 * Fonction de test
 *
 * Le premier paramètre doit être un objet de type MaClasse
 */
function MaFonction(MaClasse $foo) {
    echo $foo->var;
}

// Fonctionne
$maclasse = new MaClasse;
MaFonction($maclasse);
?>

Le typage de paramètre ne fonctionne qu'avec les variables de type object et array. Le typage avec les types traditionnels, tels que int et string, n'est pas supporté.

Précédent | Sommaire | Suivant
Réflexion | Niveau supérieur | Les exceptions


Les exceptions

Manuel PHP
Précédent Suivant

Chapitre 20. Les exceptions

Table des matières
Exceptions étendues

PHP 5 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 correspondant. Plusieurs blocs catch peuvent être utilisés pour attraper différentes classes d'exceptions. L'exécution normal (lorsque aucune exception n'est lancée dans le bloc try ou lorsqu'un catch correspondant à l'exception lancée n'est pas présent) continue après le dernier bloc catch défini dans la séquence. Les exceptions peuvent être lancées (ou relancées) dans un bloc catch.

Lorsqu'une exception est jeté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é, une erreur fatale issue de PHP sera envoyée avec un message spécifiant que l'exception n'a pu être attrapée à moins qu'un gestionnaire ne soit défini avec la fonction set_exception_handler().

Exemple 20-1. Lancer une exception

<?php
try {
    $error = 'Toujours lancer cette erreur';
    throw new Exception($error);

    // le code suivant une exception n'est pas exécuté.
    echo 'Jamais exécuté';
}
catch (Exception $e) {
    echo "Capture de l'exception : ",  $e->getMessage(), "\n";
}

// Continue l'exécution
echo 'Bonjour le Monde !';
?>

Exceptions étendues

Une classe Exception définie par l'utilisateur peut être définie en étendant la classe Exception interne. Les membres et les propriétés suivantes montrent ce qui est accessible dans la classe enfant qui est dérivée de la classe exception interne.

Exemple 20-2. La classe Exception interne

<?php
class Exception
{
  protected $message = 'exception inconnu'; // message de l'exception
  protected $code = 0;                      // code de l'exception défini par l'utilisateur
  protected $file;                          // nom du fichier source de l'exception
  protected $line;                          // ligne de la source de l'exception

  function __construct(string $message=NULL, int code=0);

  final function getMessage();              // message de l'exception
  final function getCode();                 // code de l'exception
  final function getFile();                 // nom du fichier source
  final function getLine();                 // ligne du fichier source
  final function getTrace();                // un tableau de backtrace()
  final function getTraceAsString();        // chaîne formattée de trace

  /* Remplacable */
  function __toString();                    // chaîne formatée pour l'affichage
}
?>

Si une classe étend la classe Exception interne et redéfinit le constructeur, il est vivement recommandé qu'elle appelle aussi parent::__construct() pour s'assurer que toutes les données disponibles ont été proprement assignées. La méthode __toString() peut être réécrite pour fournir un affichage personnalisé lorsque l'objet est présenté comme une chaîne.

Exemple 20-3. Etendre la classe Exception

<?php
/**
* Définition d'une classe d'exception personnalisée
*/
class MyException extends Exception
{
  // Redéfinissez l'exception ainsi le message n'est pas facultatif
  public function __construct($message, $code = 0) {

    // traitement personnalisé que vous voulez réaliser ...

    // assurez-vous que tout a été assigné proprement
    parent::__construct($message, $code);
  }

  // chaîne personnalisé représentant l'objet
  public function __toString() {
    return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
  }

  public function customFunction() {
    echo "Une fonction personnalisée pour ce type d'exception\n";
  }
}

/**
* Création d'une classe pour tester l'exception
*/
class TestException
{
  public $var;

  const THROW_NONE    = 0;
  const THROW_CUSTOM  = 1;
  const THROW_DEFAULT = 2;

  function __construct($avalue = self::THROW_NONE) {

    switch ($avalue) {
      case self::THROW_CUSTOM:
        // jète une exception personnalisé
        throw new MyException('1 est un paramètre invalide', 5);
        break;

      case self::THROW_DEFAULT:
        // jète l'exception par défaut.
        throw new Exception('2 n\'est pas autorisé en tant que paramètre', 6);

        break;

      default:
        // Aucune exception, l'objet sera créé.
        $this->var = $avalue;
        break;
    }
  }
}

// Exemple 1
try {
  $o = new TestException(TestException::THROW_CUSTOM);
} catch (MyException $e) {            // Devrait être attrapée
  echo "Capture mon exception\n", $e;
  $e->customFunction();
} catch (Exception $e) {              // Sauté
  echo "Capture l'exception par défaut\n", $e;
}

// Continue l'exécution
var_dump($o);
echo "\n\n";

//Exemple 2
try {
  $o = new TestException(TestException::THROW_DEFAULT);
} catch (MyException $e) {            // Ne correspond pas à ce type
  echo "Capture mon exception\n", $e;
  $e->customFunction();
} catch (Exception $e) {              // Devrait être attrapée
  echo "Capture l'exception par défaut\n", $e;
}

// Continue l'exécution
var_dump($o);
echo "\n\n";

// Exemple 3
try {
  $o = new TestException(TestException::THROW_CUSTOM);
} catch (Exception $e) {              // Devrait être attrapée
  echo "Capture l'exception par défaut\n", $e;
}

// Continue l'exécution
var_dump($o);
echo "\n\n";

// Exemple 4
try {
  $o = new TestException();
} catch (Exception $e) {              // sauté, aucune exception
  echo "Capture l'exception par défaut\n", $e;
}

// Continue l'exécution
var_dump($o);
echo "\n\n";
?>

Précédent | Sommaire | Suivant
Typage objet | Niveau supérieur | Les références


Les références

Manuel PHP
Précédent Suivant

Chapitre 21. Les références

Table des matières
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 destinées à appeler le contenu d'une variable avec un autre nom. Ce n'est pas comme en C ; à la place, les références sont des alias dans la table des symboles. Le nom de la variable et son contenu ont des noms différents, ce qui fait que l'on peut donner plusieurs noms au même contenu. On peut faire l'analogie avec les fichiers sous Unix, et leur nom de fichier : les noms des variables sont les entrées dans un répertoire, tandis que le contenu de la variable est le contenu même du fichier. Faire des références en PHP revient alors à faire des liens sous Unix.

Précédent | Sommaire | Suivant
Les exceptions | Niveau supérieur | Que font les références ?


Que font les références ?

Les références vous permettent de faire pointer deux variables sur le même contenu. Par exemple, lorsque vous faites :

Exemple 21-1. Les références

<?php
$a =& $b;
?>
cela signifie 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. C'est bien $a et $b qui pointent sur le même contenu.

Note : Si un tableau par référence est copié, ses valeurs ne sont pas déréférencées. Cela est valide également pour les tableaux passés par valeur aux fonctions.

Note : Si vous assigner, passer ou retourner une variable indéfinie par référence, elle sera créée.

Exemple 21-2. Utilisation des références avec des variables indéfinies

<?php
function foo(&$var) { }

foo($a); // $a est "créée" et assignée à NULL

$b = array();
foo($b['b']);
var_dump(array_key_exists('b', $b)); // bool(true)

$c = new StdClass;
foo($c->d);
var_dump(property_exists($c, 'd')); // bool(true)
?>

La même syntaxe peut être utilisée avec les fonctions qui retournent des références, et avec l'opérateur new (PHP 4.0.4 et plus récent):

Exemple 21-3. Les références et new()

<?php
$bar =& new fooclass();
$foo =& find_var($bar);
?>
Depuis PHP 5, new retourne une référence automatiquement, donc, l'utilisation de =& dans ce contexte est obsolète et produit un message de degré E_STRICT.

Note : À moins d'utiliser la syntaxe ci-dessus, le résultat de $bar = new fooclass() ne sera pas la même variable que $this dans le constructeur, ce qui signifie que si vous avez utilisé la référence $this dans le constructeur, vous devez assigner la référence, ou bien obtenir deux objets différents.

Même si vous pouvez utiliser l'opérateur @ pour supprimer les messages d'erreurs du constructeur avec la syntaxe @new, cela ne fonctionnera pas avec la syntaxe &new. C'est une limitation du moteur Zend, et cela conduit à une erreur d'analyse.

Avertissement

Si vous assignez une référence à une variable définie en tant que global dans une fonction, la référence sera visible uniquement à l'intérieure de la fonction. Vous pouvez éviter cela en utilisant le tableau $GLOBALS.

Exemple 21-4. Référencer une variable globale à l'intérieure d'une fonction

<?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 un 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 assignant d'autres références à $var changeant uniquement la référence locale de la variable.

Note : Si vous assignez des valeurs par références dans une structure foreach, les références seront également modifiées.

Exemple 21-5. 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é
?>

Le deuxième intérêt des références est de pouvoir passer des variables par référence. On réalise ceci en faisant pointer des variables locales vers le contenu des variables de fonction. Exemple :

Exemple 21-6. Passage de paramètre par référence

<?php
function foo(&$var) {
  $var++;
}
$a=5;
foo($a);
?>
$a vaut 6. Cela provient du fait que dans la fonction foo, la variable $var pointe sur le même contenu que $a. Voir aussi les explications détaillées dans passage par référence.

Le troisième intérêt des références est de retourner des valeurs par référence.

Précédent | Sommaire | Suivant
Les références | Niveau supérieur | Ce que les références ne sont pas


Ce que les références ne sont pas

Comme précisé ci-dessus, les références ne sont pas des pointeurs. Cela signifie que le script suivant ne fera pas ce à quoi on peut s'attendre :

Exemple 21-7. Les références ne sont pas des pointeurs

<?php
function foo(&$var) {
  $var =& $GLOBALS["baz"];
}
foo($bar);
?>

Il va se passer que $var dans foo() sera lié à $bar, mais il sera aussi relié à $GLOBALS["baz"]. Il n'y a pas moyen de lier $bar à quelque chose d'autre en utilisant le mécanisme de référence, car $bar n'est pas accessible dans la fonction foo() (certes, il est représenté par $var et $var possède la même valeur, mais n'est pas relié par la table des symboles).

Précédent | Sommaire | Suivant
Que font les références ? | Niveau supérieur | Passage par référence


Passage par référence

Vous pouvez passer des variables par référence, de manière à ce que la fonction modifie ses arguments. La syntaxe est la suivante :

Exemple 21-8. Passage par référence

<?php
function foo(&$var) {
  $var++;
}
$a=5;
foo ($a);
// $a vaut 6 maintenant
?>
Notez qu'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 est suffisante pour passer correctement des arguments par référence. Dans les versions récentes de PHP, vous devriez recevoir une alerte disant que "Call-time pass-by-reference" est obsolète lorsque vous utilisez un & dans foo(&$a);.

Les objets suivants peuvent être passés par référence :

  • Une variable, i.e. foo($a)

  • Un nouvel objet, i.e. foo(new foobar())

  • Une référence, retournée par une fonction :

    Exemple 21-9. Retour d'une référence par une fonction

    <?php
    function &bar() {
         $a = 5;
     return     $a;
    }
    foo(bar());
    ?>
    Voir aussi des détails dans retourner des références.

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 :

Exemple 21-10. Passage par référence invalides

<?php
function bar() // Notez l'absence de &
{
   $a = 5;
   return $a;
}
foo(bar());    // Produit une erreur fatale depuis PHP 5.0.5

foo($a = 5);    // Expression, pas une variable
foo(5);         // Produit une erreur fatale
?>
Ces fonctionnalités sont valables à partir de PHP 4.0.4.

Précédent | Sommaire | Suivant
Ce que les références ne sont pas | Niveau supérieur | Retourner des références


Retourner des références

Retourner des références est toujours utile lorsque vous voulez utiliser une fonction pour savoir à quoi est liée une variable. 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 uniquement des références lorsque vous avez techniquement une bonne raison de le faire ! Pour retourner des références, utilisez cette syntaxe :

Exemple 21-11. Retourner des références

<?php
function &find_var($param) {
  /*  ...code... */
  return $found_var;
}
$foo =& find_var ($bar);
$foo->x = 2;
?>
Dans cet exemple, on affecte une valeur à la propriété de l'objet retourné par la fonction find_var, et non à sa copie, comme ce serait le cas si on n'avait pas utilisé la syntaxe de référence.

Note : Contrairement au passage de paramètre, vous devez utiliser & aux deux endroits, à la fois pour indiquer que vous retournez par référence (pas une copie habituelle), et pour indiquer que vous assignez aussi par référence (pas la copie habituelle).

Note : Si vous tentez de retourner une référence depuis une fonction avec la syntaxe :return ($found_var);, cela ne fonctionnera pas comme vous l'attendez et retournera le résultat de l'expression, mais pas de la variable, par référence. Vous ne pouvez retourner des variables par référence que depuis une fonction - rien d'autre. L'erreur E_NOTICE est envoyée depuis PHP 4.4.0 et PHP 5.1.0 si le code tente de retourner une expression dynamique ou un résultat de l'opérateur new.

Précédent | Sommaire | Suivant
Passage par référence | Niveau supérieur | Détruire une référence


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 est détruit. Par exemple :

Exemple 21-12. Détruire une référence

<?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 la fonction unlink d'Unix.

Précédent | Sommaire | Suivant
Retourner des références | Niveau supérieur | Repérer une référence


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. Par exemple, le passage et le retour d'arguments par référence. Quelques autres exemples de syntaxes :

Références globales

Lorsque vous déclarez une variable global $var, vous créez en fait une référence sur une variable globale. Ce qui signifie que

Exemple 21-13. Références sur les variables globales

<?php
$var =& $GLOBALS["var"];
?>

Et que, si vous détruisez la variable $var, la variable globale ne sera pas détruite.

$this

Dans une méthode d'objet, $this est toujours une référence sur l'objet courant.

Précédent | Sommaire | Suivant
Détruire une référence | Niveau supérieur | Sécurité


Sécurité

Manuel PHP
Précédent Suivant

IV. Sécurité

Table des matières
22. Introduction
23. Considérations générales
24. Binaires CGI
25. Installé en tant que module Apache
26. Sécurité des fichiers
27. Sécurité des bases de données
28. Rapport d'erreurs
29. Utilisation des variables super-globales
30. Données transmises par les internautes
31. Guillemets magiques
32. Masquer PHP
33. Être à jour

Précédent | Sommaire | Suivant
Repérer une référence |  | Introduction


Introduction

Manuel PHP
Précédent Suivant

Chapitre 22. Introduction

PHP est un langage puissant et l'interpréteur, qu'il soit inclus dans le serveur web 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. Le langage PHP a été pensé afin d'être un langage beaucoup plus sécurisé pour écrire des CGI que le Perl ou le langage C. De plus, une sélection rigoureuse des options de compilation et d'exécution vous permettra d'obtenir un équilibre parfait entre liberté et sécurité.

Étant donné qu'il y a de nombreux moyens d'utiliser le langage PHP, il y a de nombreuses directives de configuration afin d'en contrôler le comportement. Un grand nombre d'options permettent d'utiliser PHP dans de nombreuses situations, mais cela signifie aussi qu'il y a certaines combinaisons d'options de compilation et d'exécution qui fragilisent 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 compilé pour constituer une application serveur complète, avec toutes les fonctionnalités d'un shell, ou il peut encore être utilisé comme simple SSI (server side include) avec peu de risque, dans un environnement à sécurité renforcée. La création de cet environnement et sa sécurité est largement à la charge du développeur PHP.

Ce chapitre commence par expliquer les différentes options de configuration et les situations dans lesquelles elles peuvent être utilisées en toute sécurité. Puis, viennent les considérations de niveaux de sécurité, et les conseils généraux.

Précédent | Sommaire | Suivant
Sécurité | Niveau supérieur | Considérations générales


Considérations générales

Manuel PHP
Précédent Suivant

Chapitre 23. Considérations générales

Un système complètement sûr est une impossibilité virtuelle. L'approche souvent utilisée par les professionnels de la sécurité est d'équilibrer les risques et l'ergonomie. Si chaque variable fournie par l'utilisateur demandait deux formes de validation biométrique (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 simple, ce qui encouragerait les utilisateurs à trouver un moyen de contourner cette sécurité.

La meilleure sécurité est suffisamment discrète pour assurer un maximum de sécurité sans ajouter de contraintes insurmontables pour l'utilisateur ou de systèmes complexes de programmation. Souvent, les attaques sur un script sont des exploitations des systèmes de sécurité trop complexes, qui s'érodent au cour du temps.

Un principe qu'il est bon de retenir : Un système est aussi sur que son maillon le plus faible. Si toutes les transactions sont bien notées dans une base, avec confirmation mais que l'utilisateur est identifié uniquement par un cookie, la robustesse de votre système est sévèrement réduite.

Lorsque vous testez votre site, gardez en tête que vous ne pourrez jamais tester toutes les situations, même pour les pages les plus simples. Les valeurs que vous attendez seront toujours complètement différentes des valeurs entrées par un employé négligent, un hacker qui a toute la nuit 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 d'entrée des données inattendues, 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, qui rendent vos journées si "spéciales". Peu importe que vous ayez un grand portail ou un petit web, vous pouvez être la cible pour tout quidam avec une connexion. 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 : ne soyez pas la prochaine.

Précédent | Sommaire | Suivant
Introduction | Niveau supérieur | Binaires CGI


Binaires CGI

Manuel PHP
Précédent Suivant

Chapitre 24. Binaires CGI

Table des matières
Faiblesses connues
Cas 1 : Tous les fichiers sont publics
Cas 2 : Utilisation de la directive de compilation --enable-force-cgi-redirect
Cas 3 : Utilisation du "doc_root" ou du "user_dir"
Cas 4 : L'exécutable PHP à l'extérieur de l'arborescence du serveur

Faiblesses connues

Utiliser PHP comme un CGI exécutable vient la majorité du temps du fait que l'on ne veut pas l'utiliser comme un module du serveur web, (comme Apache), ou bien que l'on souhaite l'utiliser en combinaison d'un 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 installez votre exécutable dans le répertoire cgi-bin de votre serveur web. CERT CA-96.11 recommande effectivement 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 induit.

  • Accès au système de fichier : 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 d'un 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 les requêtes afin d'obtenir un document http://my.host/secret/script.php par 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 après cette vérification redirige 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 aux documents protégés sur le serveur web.

    Avec PHP, l'option de compilation --enable-force-cgi-redirect et les options d'exécution doc_root et user_dir peuvent être utilisées pour prévenir ce genre d'attaques, 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.

Précédent | Sommaire | Suivant
Considérations générales | Niveau supérieur | Cas 1 : Tous les fichiers sont publics


Cas 1 : Tous les fichiers sont publics

Si votre serveur n'a aucun document dont l'accès est 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 utiliser l'option de compilation --disable-force-cgi-redirect. Vous devez quand même vérifier qu'aucun script ne fait appel au PHP, de manière directe, http://my.host/cgi-bin/php/dir/script.php ou bien de manière indirecte, par redirection, http://my.host/dir/script.php.

Les redirections peuvent être configurées dans les fichiers de configuration d'Apache en utilisant les directives "AddHandler" et "Action" (voir ci-dessous).

Précédent | Sommaire | Suivant
Binaires CGI | Niveau supérieur | Cas 2 : Utilisation de la directive de compilation --enable-force-cgi-redirect


Cas 2 : Utilisation de la directive de compilation --enable-force-cgi-redirect

Cette option de compilation prévient quiconque d'appeler directement un script avec l'url http://my.host/cgi-bin/php/secretdir/script.php. Dans ce cas-là, PHP parsera le fichier uniquement s'il y a eu redirection.

Habituellement, le serveur web Apache réalise une redirection grâce aux directives suivantes :

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 pas le renseignement de PHP, pour savoir si la requête a été redirigée ou non, vous ne pouvez pas utiliser cette option de compilation. Vous devez alors utiliser une des autres méthodes d'exploitation de la version binaire CGI de PHP, comme exposé ci-dessous.

Précédent | Sommaire | Suivant
Cas 1 : Tous les fichiers sont publics | Niveau supérieur | Cas 3 : Utilisation du "doc_root" ou du "user_dir"


Cas 3 : Utilisation du "doc_root" ou du "user_dir"

Ajouter un contenu interactif dans votre serveur web, comme des scripts ou des exécutables, est souvent considéré comme une pratique non-sécurisée. Si, par erreur, le script n'est pas exécuté mais affiché comme une page HTML classique, il peut en résulter un vol de propriété intellectuelle ou des problèmes de sécurité à propos des mots de passe notamment. Donc, la majorité des 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, et donc, tous les fichiers de ce répertoire seront interprétés et non affichés tels quels.

Aussi, si vous ne pouvez pas utiliser la méthode présentée ci-dessus, il est nécessaire de mettre en place un répertoire "doc_root" différent de votre répertoire "document root" de votre serveur web.

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 variable d'environnement est affecté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 donc vous serez sûr qu'aucun script n'est 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 la directive n'est pas activé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 correspond 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 répertoire commence par un tilde [~]).

Si la directive "user_dir" est activée à la valeur public_php par exemple, une requête du type http://my.host/~user/doc.php ouvrira un fichier appelé doc.php sous le répertoire appelé public_php sous le répertoire racine de l'utilisateur. Si le répertoire racine des utilisateurs 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 donc vous pouvez contrôler l'accès au répertoire "document root" séparément des répertoires "user directory".

Précédent | Sommaire | Suivant
Cas 2 : Utilisation de la directive de compilation --enable-force-cgi-redirect | Niveau supérieur | Cas 4 : L'exécutable PHP à l'extérieur de l'arborescence du serveur


Cas 4 : L'exécutable PHP à l'extérieur de l'arborescence du serveur

Une solution extrêmement sécurisée consiste à mettre l'exécutable PHP à l'extérieur de l'arborescence du serveur web. Dans le répertoire /usr/local/bin, par exemple. Le problème de cette méthode est que vous aurez à rajouter la ligne suivante :

Exemple 24-1. Ligne d'invocation de PHP

#!/usr/local/bin/php
dans tous les fichiers contenant des tags PHP. Vous devrez aussi rendre le binaire PHP exécutable. Dans ce cas-là, traitez le fichier exactement comme si vous aviez un autre script écrit en Perl ou en sh ou en un autre langage de script qui utilise #! comme mécanisme pour lancer l'interpréteur lui-même.

Pour que l'exécutable PHP prenne en compte les variables d'environnement PATH_INFO et PATH_TRANSLATED correctement avec cette configuration, vous devez utiliser l'option de compilation --enable-discard-path.

Précédent | Sommaire | Suivant
Cas 3 : Utilisation du "doc_root" ou du "user_dir" | Niveau supérieur | Installé en tant que module Apache


Installé en tant que module Apache

Manuel PHP
Précédent Suivant

Chapitre 25. Installé en tant que module Apache

Lorsque PHP est compilé en tant que module Apache, ce module hérite des permissions accordées à l'utilisateur faisant tourner Apache (par défaut, l'utilisateur "nobody"). Cela à 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 rendre la base accessible à l'utilisateur "nobody". Cela signifie qu'un script mal intentionné peut accéder à la base, la modifier sans identification. Il est aussi possible qu'un robot accède à la page d'administration, et détruise toutes les pages. Vous devez aussi protéger vos bases de données avec les autorisations Apache, ou définir votre propre modèle d'accès avec LDAP, .htaccess, etc. et inclure ce code dans tous 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 virus dans les fichiers des utilisateurs. Ou encore, modifier une base de données privée. Il est aussi incapable de modifier des fichiers qu'il devrait pouvoir modifier, ou effectuer certaines transactions.

Une erreur fréquente de sécurité est de donner à l'utilisateur Apache les droits de superadministrateur ou d'améliorer les possibilités d'Apache d'une autre façon.

Donner de telles permissions à l'utilisateur Apache est extrêmement dangereux, et peut compromettre tout le système, telle que l'utilisation des sudo ou du chroot. Pour les novices de la sécurité, une telle utilisation est à exclure d'office.

Il existe des solutions plus simples. En utilisant open_basedir vous pouvez contrôler et restreindre l'accès à certains dossiers qui pourront être utilisés par PHP. Vous pouvez aussi créer des aires de restrictionsApache, pour restreindre les activités anonymes liées aux internautes.

Précédent | Sommaire | Suivant
Cas 4 : L'exécutable PHP à l'extérieur de l'arborescence du serveur | Niveau supérieur | Sécurité des fichiers


Sécurité des fichiers

Manuel PHP
Précédent Suivant

Chapitre 26. Sécurité des fichiers

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 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 accédé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 26-1. Une erreur de vérification de variable conduit à ...

<?php
// Efface un fichier dans un dossier racine
$username = $_POST['user_submitted_name'];
$homedir = "/home/$username";
$file_to_delete = "$userfile";
unlink ($homedir/$userfile);
echo "$file_to_delete a été effacé!";
?>
Étant donné que le nom de l'utilisateur est à fournir, des intrus peuvent envoyer un nom d'utilisateur autre que le leur, 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 26-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 = "../etc/";
$homedir = "/home/../etc/";
$file_to_delete = "passwd";
unlink ("/home/../etc/passwd");
echo "/home/../etc/passwd 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 26-3. Une vérification renforcée

<?php
// Efface un fichier sur le disque où l'utilisateur à le droit d'aller
  $username = $_SERVER['REMOTE_USER'];
// utilise un mécanisme d'authentification
  $homedir = "/home/$username";
  $file_to_delete = basename("$userfile");
// supprime le chemin excédentaire
  unlink ($homedir/$file_to_delete);
  $fp = fopen("/home/logging/filedelete.log","+a"); //note l'effacement
  $logstring = "$username $homedir $file_to_delete";
  fputs ($fp, $logstring);
  fclose($fp);
  echo "$file_to_delete a été éffacé!";
?>
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 26-4. Vérification renforcée de noms de fichiers

<?php
  $username = $_SERVER['REMOTE_USER'];;
  $homedir = "/home/$username";
  if (!ereg('^[^./][^/]*$', $username))
    die('Erreur de nom de fichier');
    //meurt, ne SURTOUT pas traiter!
// 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.

Précédent | Sommaire | Suivant
Installé en tant que module Apache | Niveau supérieur | Sécurité des bases de données


Sécurité des bases de données

Manuel PHP
Précédent Suivant

Chapitre 27. Sécurité des bases de données

Table des matières
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.

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 pourront pas affecter toute l'application.

Il est recommandé de ne pas implémenter toute la logique fonctionnelle dans l'application web (c'est-à-dire dans vos scripts), mais d'en reporter une partie dans la base en utilisant les triggers, vues et règles. Si le système évolue, les nouvelles versions vous feront réécrire toute la logique et donc tous vos scripts. De plus, l'utilisation de trigger permet de gérer de manière transparente des données, et fournit des indications pour déboguer votre application.

Précédent | Sommaire | Suivant
Sécurité des fichiers | Niveau supérieur | Connexions au serveur de base de données


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.

Précédent | Sommaire | Suivant
Sécurité des bases de données | Niveau supérieur | Modèle de stockage avec chiffrement


Modèle de stockage avec chiffrement

Les protocoles SSL/SSH protègent les données qui circulent entre le serveur et le client, mais SSL/SSH ne protègent 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 peut de bases de données offrent ce type de chiffrement.

Le moyen le plus simple pour contourner ce problème est de créer votre propre logiciel de chiffrement, et de l'utiliser dans vos scripts PHP. PHP peut vous aider dans cette tâche grâce aux nombreuses extensions dont il dispose, comme Mcrypt et Mhash, qui connaissent un large éventail de méthodes de chiffrement. Le script PHP va chiffrer les données qui seront stockées, et les déchiffrer losrqu'elles seront relues. Voyez la suite pour des exemples d'utilisation de ce chiffrement.

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é au MD5. Voyez les fonctions crypt() et md5().

Exemple 27-1. Utiliser un mot de passe et MD5

<?php
// Stockage du mot de passe hashé
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
             pg_escape_string($username), md5($password));
$result = pg_query($connection, $query);

// interroger le serveur pour comparer le mot de passe soumis
$query = sprintf("SELECT 1 FROM users WHERE name='%s' AND pwd='%s';",
             pg_escape_string($username), md5($password));
$result = pg_query($connection, $query);

if (pg_num_rows($result) > 0) {
    echo "Bienvenue, $username!";
} else {
    echo "Identification échouée pour $username.";
}
?>

Précédent | Sommaire | Suivant
Connexions au serveur de base de données | Niveau supérieur | Injection SQL


Injection SQL

De nombreux développeurs web ne sont pas conscients des possibilités de manipulation des requêtes SQL, et supposent que les requêtes SQL sont des commandes sûres. Cela signifie qu'une requête SQL est capable de contourner les contrôles et vérifications, comme les identifications, et parfois, les requêtes SQL ont accès aux commandes d'administration.

L'injection SQL directe est une technique où un pirate modifie une requête SQL existante pour afficher des données cachées, ou pour écraser des valeurs importantes, ou encore exécuter des commandes dangereuses pour la base. Cela se fait lorsque l'application prend les données envoyées par l'internaute, et l'utilise directement pour contruire une requête SQL. Les exemples ci-dessous sont basés sur une histoire vraie, malheureusement.

Avec le manque de vérification des données de l'internaute et la connexion au serveur avec des droits de super utilisateur, le pirate peut créer des utilisateurs, et créer un autre super utilisateur.

Exemple 27-2. Séparation des résultats en pages, et créer des administrateurs (PostgreSQL et MySQL)

<?php
$offset = $argv[0]; // Attention, aucune validation!
$query  = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
// avec PostgreSQL
$result = pg_query($conn, $query);
// avec MySQL
$result = mysql_query($query);
?>
Un utilisateur normal clique sur les boutons 'suivant' et 'précédent', qui sont alors placés dans la variable $offset, encodée dans l'URL. Le script s'attend à ce que la variable $offset soit alors un nombre décimal. Cependant, il est possible de modifier l'URL en ajoutant une nouvelle valeur, au format URL, comme ceci :

Exemple 27-3. Exemple d'injection SQL

<?php
// cas de PostgreSQL
0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
    select 'crack', usesysid, 't','t','crack'
    from pg_shadow where usename='postgres';
--

// cas de MySQL
0;
UPDATE user SET Password=PASSWORD('crack') WHERE user='root';
FLUSH PRIVILEGES;
?>
Si cela arrive, le script va créer un nouveau super utilisateur. Notez que la valeur 0; sert à terminer la requête originale et la terminer correctement.

Note : C'est une techinque répandue que de forcer l'analyseur SQL à ignorer le reste de la requête, en utilisant les symboles -- pour mettre en commentaires.

Un moyen disponible pour accéder aux mots de passe est de contourner la recherche de page. Ce que le pirate doit faire, c'est simplement voir si une variable du formulaire est utilisée dans la requête, et si elle est mal gérée. Ces variables peuvent avoir été configurées dans une page précédente pour être utilisées dans les clauses WHERE, ORDER BY, LIMIT et OFFSET des requêtes SELECT. Si votre base de données supporte les commandes UNION, le pirate peut essayer d'ajouter une requête entière pour lister les mots de passe dans n'importe quelle table. Utiliser la technique des mots de passe chiffrés est fortement recommandé.

Exemple 27-4. Liste d'articles ... et ajout de mot de passe

<?php
$query  = "SELECT id, name, inserted, size FROM products
                  WHERE size = '$size'
                  ORDER BY $order LIMIT $limit, $offset;";
$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 27-5. Révélation des mots de passe

<?php
'
union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable;
--
?>
Si cette requête, exploitant les ' et -- est affectée à une variable utilisée dans $query, une injection SQL va se produire.

Les commandes UPDATE sont aussi sujettes à des attaques de votre base de données. Ces requêtes peuvent aussi introduire toute une nouvelle requête dans votre commande initiale. Mais en plus, le pirate peut jouer sur la commande SET. Dans ce cas, il doit connaître un peu votre base de données. Cela peut se deviner en examinant les noms de variables dans les formulaires, ou simplement, en testant les cas les plus classiques. Il n'y a pas beaucoup de conventions de noms pour stocker des noms d'utilisateurs et des mots de passe.

Exemple 27-6. Modifier un mot de passe ... et gain de droits!

<?php
$query= "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
?>
Mais un internaute fourbe peut envoyer une valeur telle que ' or uid like '%admin%'; -- dans $uid pour modifier le mot de passe utilisateur, ou simplement, utiliser la variable $pwd avec la valeur "hehehe', admin='yes', trusted=100 " (avec l'espace final) pour obtenir des droits supplémentaires. La requête devient alors :

Exemple 27-7. 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', admin='yes', trusted=100 "
$query = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE ...;"
?>

C'est un exemple terrible d'acquisition de droits d'administrateur sur un serveur de base de données.

Exemple 27-8. Attaque d'un serveur de bases de données (MSSQL Server)

<?php
$query  = "SELECT * FROM products WHERE id LIKE '%$prod%'";
$result = mssql_query($query);
?>
Si le pirate injecte la valeur a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- dans la variable $prod, alors la requête $query devient :

Exemple 27-9. Attaque d'un serveur de base de données (MSSQL Server) - 2

<?php
$query  = "SELECT * FROM products
                    WHERE id LIKE '%a%'
                    exec master..xp_cmdshell 'net user test testpass /ADD'--";
$result = mssql_query($query);
?>
MSSQL Server exécute les requêtes SQL en lot, y compris la commande d'ajout d'un nouvel utilisateur à la base de données locale. Si cette application fonctionnait en tant que sa et que le service MSSQLSERVER disposait de niveau de droits suffisant, le pirate dispose désormais d'un compte avec accès au serveur.

Note : Certains des exemples ci-dessus sont spécifiques à certains serveurs de bases de données. Cela n'empêche pas des attaques similaires d'être possibles sur d'autres produits. Votre base de données sera alors vulnérable d'une autre manière.

Techniques de contournement

Vous pouvez prétendre que le pirate doit d'abord obtenir des informations sur le schéma de la base de données, dans la plupart des cas d'injections. C'est vrai, mais vous ne saurez jamais comment ni quand ces informations auront filtré, et si cela arrive, votre base de données sera en grand danger. Si vous utilisez une base de données Open Srouce, ou une base qui est du domaine public, ou encore un schéma qui appartient à un système de gestion de contenu ou d'un forum, le pirate peut facilement se procurer une copie du code que vous utilisez. Cela peut être un risque potentiel si la base a été mal conçue.

Ces attaques sont généralement basées sur l'exploitation de code qui n'est pas écrit de manière sécuritaire. N'ayez aucune confiance dans les données qui proviennent de l'utilisateur, même si cela provient d'un menu déroulant, d'un champ caché ou d'un cookie. Le premier exemple montre comment une requête peut causer un désastre.

  • Ne nous connectez jamais sur une base de données en tant que super utilisateur ou propriétaire de la base. Utilisez toujours un utilisateur adapté, avec des droits très limités.

  • Vérifiez que les données ont bien le type attendu. PHP dispose d'un éventail de fonction de validation large, depuis les plus simples, de la section Variables et la section Caractères (e.g. is_numeric(), ctype_digit() respectivement) aux fonctions avancées de Expression rationnelle Perl.

  • Si l'application attend une entrée numérique, vérifiez vos données avec la fonction is_numeric(), ou bien modifiez automatiquement le type avec la fonction settype(), ou encore avec sprintf().

    Exemple 27-10. Une navigation de fiches plus sécuritaire

    <?php
    settype    ($offset, 'integer');
    $query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";

    // notez que %d dans la chaîne de format : %s serait inutile
    $query = sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;",
                         $offset);
    ?>

  • Mettez entre guillemets toutes les valeurs non numériques qui sont passées à la base de données avec la fonction spécifique à la base de données d'échappement de caractères (e.g. mysql_escape_string(), sql_escape_string(), etc.). Si un mécanisme d'échappement spécifique à une base de données n'existe pas, les fonctions addslashes() et str_replace() peuvent être très utiles (en fonction du type de la base de données). Lisez le premier exemple. Comme le montre l'exemple, ajouter des guillemets à la partie statique de la requête n'est pas suffisant, rendant cette requête facilement piratable.

  • N'affichez jamais d'informations spécifiques à la base, et notamment des informations concernant le schéma. Voyez aussi la section Rapport d'erreur et le chapitre Gestion des erreurs.

  • Vous pouvez avoir des procédures stockées et des curseurs prédéfinis qui font que les utilisateurs n'ont pas un accès direct aux tables ou vues, mais cette solution a d'autres impacts.

À coté 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.

Précédent | Sommaire | Suivant
Modèle de stockage avec chiffrement | Niveau supérieur | Rapport d'erreurs


Rapport d'erreurs

Manuel PHP
Précédent Suivant

Chapitre 28. 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 lire les variables d'environnement et de contexte qui sont retournées. Cela permet au pirate de lire de nombreuses informations sur le serveur, et de détecter des faiblesses du serveur. Par exemple, si un intrus a glané des informations sur votre page, avec une première utilisation de votre site, il peut essayer de remplacer les variables par ses propres valeurs :

Exemple 28-1. Attaque de site 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éboger un script, car elles donnent de précieux renseignements tels que quelle fonction a échoué, quel fichier n'a pas été trouvé, quel script PHP a bogé, et quelle ligne est en faute. Toutes ces informations sont exploitables. Il est commun aux développeurs PHP d'utiliser les fonctions show_source(), highlight_string(), ou highlight_file() comme outils de débogage, mais sur un site en production, cela expose des variables cachées, des syntaxes non vérifiées ou d'autres informations critiques. Il est particulièrement dangeureux d'exécuter du code de sources connues, avec les gestionnaires de débogage. Si l'intrus peut comprendre votre technique habituelle d'utilisation, il peut tenter une attaque frontale sur une page, en envoyant des chaînes de débogage :

Exemple 28-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 gestion des erreurs, la possibilité de tester la gestion des erreurs d'un système conduit à un trou de sécurité, et la diffusion de plus d'informations sur votre système.

Si un pirate affiche une page html, et essaye de la tester (pour rechercher des faiblesses du système), il peut déterminer sur quel système PHP a été compilé.

Une erreur de fonction indique si un système supporte une base de données spécifique, ou bien indique comment la page a été généré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 lignes d'erreurs, et essayer de les exploiter ailleurs, dans le script.

Une erreur de fichier, ou une erreur générale 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 deuxième est de 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. Suivant votre politique de sécurité, vous pouvez utiliser un panachage savant des trois méthodes.

Une méthode pour gagner du temps est d'utiliser la fonction error_reporting(), pour vous aider à sécuriser le code, et détecter les utilisations dangeureuses de variables. Vous testez votre code en béta-test avec la valeur E_ALL, et 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 devez soit désactiver complètement le repport d'erreur en affectant 0 à la fonction error_reporting(), soit en désactivant l'affichage des erreurs en utilisant l'option de configuration display_errors du php.ini. Si vous choisissez la dernière solution, vous devez également définir le chemin de votre fichier de log en utilisant la directive de configuration error_log, et en activant la directive log_errors.

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

Précédent | Sommaire | Suivant
Injection SQL | Niveau supérieur | Utilisation des variables super-globales


Utilisation des variables super-globales

Manuel PHP
Précédent Suivant

Chapitre 29. Utilisation des variables super-globales

L'une des évolutions les plus controversées de PHP a été le changement de valeur par défaut de la directive PHP register_globals, qui est passée de On à Off en PHP 4.2.0. Beaucoup d'applications dépendaient de cette directive, et de nombreux programmeurs ne savaient même pas qu'elle existait, et supposait que c'était le fonctionnement normal de PHP. Cette page explique comment on peut écrire du code peu sécuritaire en utilisant cette directive. Gardez bien en tête que cette directive, par elle-même, n'est pas un trou de sécurité, mais qu'elle facilite leur création.

Lorsqu'elle est activée, register_globals va injecter vos scripts avec toutes sortes de variables, comme les variables issues des formulaires HTML. Ceci, couplé au fait que PHP ne requiert pas d'initialisation de variable signifie que la programmation de script peu sûr est possible. Ce fut une décision difficile de la communauté PHP, mais finalement, il a été décidé de désactiver par défaut cette variable. Lorsqu'elle est active, le programmeur ne sait pas exactement d'où provient le contenu de la variable, et ne peut que faire des suppositions. Les variables internes définies dans le script sont mélangées avec les données envoyées par les utilisateurs, et en désactivant register_globals, on empêche cela. Voyons avec un exemple le fonctionnement de register_globals :

Exemple 29-1. Exemple de mésutilisation de register_globals = on

<?php
// $authorized = true uniquement si l'utilisateur est identifié
if (authenticated_user()) {
    $authorized = true;
}

// Comme nous n'avons pas initialisé $authorized avec false, cette dernière
// peut être définie via register_globals, comme avec l'URL GET auth.php?authorized=1
// Tout le monde peut facilement être reconnu comme identifié!
if ($authorized) {
    include "/donnees/critiques/data.php";
}
?>

Lorsque register_globals est activé, la logique ci-dessus peut être prise en défaut. Lorsque register_globals est désactivée $authorized ne peut plus être assignée via la requête, et le script est maintenant sûr, même s'il reste recommandé de toujours initialiser ses variables. Par exemple, dans notre programme ci-dessus, nous pourrions ajouter $authorized = false. En faisant cela, le script peut fonctionner avec register_globals on ou off, car les utilisateurs seront par défaut non-identifiés.

Un autre exemple implique les sessions. Lorsque register_globals est activé, on peut aussi utiliser $username dans notre exemple, mais, encore une fois, vous devez garder en tête que $username peut aussi provenir d'autres biais, tels que GET (via l'URL).

Exemple 29-2. Exemple d'abus de sessions avec register_globals on ou off

<?php
// Nous ne savons pas d'où provient $username mais nous savons que
// $_SESSION contient les données de session
if (isset($_SESSION['username'])) {

    echo "Bonjour <strong>{$_SESSION['username']}</strong>";

} else {

    echo "Bonjour <strong>visiteur</strong><br />";
    echo "Voulez-vous vous identifier?";

}
?>

Il est même possible de prendre des mesures préventives, pour être alerté lorsqu'une tentative d'usurpation est faite. Si vous savez à l'avance de quelle variable le nom d'utilisateur doit provenir, vous pouvez vérifier si les données que vous manipulez sont d'une origine contrôlée. Même si cela ne garantit pas que les données ne puissent être falsifiées, cela complique la tache du faussaire. Si vous ne vous préoccupez pas de l'origine des données, vous pouvez utiliser la variable $_REQUEST qui contient un mélange de données GET, POST et COOKIE. Voyez aussi la section du manuel concernant les variables externes à PHP.

Exemple 29-3. Détection simple de fausses variables

<?php
if (isset($_COOKIE['MAGIC_COOKIE'])) {

    // MAGIC_COOKIE provient d'un cookie.
    // Assurez-vous de valider les données du cookie!

} elseif (isset($_GET['MAGIC_COOKIE']) || isset($_POST['MAGIC_COOKIE'])) {

   mail("admin@example.com", "Tentative possible d'attaque", $_SERVER['REMOTE_ADDR']);
   echo "Alerte sécurité, l'admin a été prévenu.";
   exit;

} else {

   // MAGIC_COOKIE ne provient pas de REQUEST

}
?>

Bien sur, désactiver l'option register_globals ne signifie pas que votre code est sécuritaire. Pour chaque donnée reçu, vous devez appliquer un maximum de validations. Vérifiez toujours les données de votre visiteur, et initialisez vos variables! Pour vérifier les variables non-initialisées, voyez la fonction error_reporting(), qui peut afficher les erreurs de niveau E_NOTICE.

Pour des informations sur l'émulation de register_globals On ou Off, voyez la FAQ.

Superglobales : disponibilité : Depuis PHP 4.1.0, les tableaux superglobaux tels que $_GET, $_POST et $_SERVER, etc. sont disponibles. Pour plus d'informations, lisez la section superglobals

Précédent | Sommaire | Suivant
Rapport d'erreurs | Niveau supérieur | Données transmises par les internautes


Données transmises par les internautes

Manuel PHP
Précédent Suivant

Chapitre 30. Données transmises par les internautes

Les plus grandes faiblesses de nombreux programmes PHP ne viennent pas du langage lui-même, mais de son utilisation en omettant les caractéristiques de sécurité. Pour cette raison, vous devez toujours prendre le temps de prendre en compte les implications d'une fonction, et de cerner toutes les applications d'une utilisation exotiques des paramètres.

Exemple 30-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 variables envoyées par le client web, et qui ne sont pas suffisamment vérifiées avant utilisation.

  • Est-ce que ce script n'affectera que les fichiers prévus?

  • Est-il possible que des valeurs incohérentes soient exploitées ici?

  • Est-ce que ce script peut être utilisé dans un but différent?

  • Est-ce que ce script peut être utilisé malicieusement, en conjonction avec d'autres?

  • Est-ce que toutes les actions seront noté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 pour raison de 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 d'environnement, les guillemets magiques (magic_quotes), ou encore toute option qui pourrait vous conduire à mésévaluer la validité, la source ou la valeur d'une variable. En travaillant avec error_reporting(E_ALL), vous pouvez être averti que certaines variables sont utilisées avant d'être exploitées, ou vérifiées (et donc, vous pourrez traiter des valeurs exotiques à la source).

Précédent | Sommaire | Suivant
Utilisation des variables super-globales | Niveau supérieur | Guillemets magiques


Guillemets magiques

Manuel PHP
Précédent Suivant

Chapitre 31. Guillemets magiques

Table des matières
Qu'est-ce que les guillemets magiques?
Pourquoi utiliser les guillemets magiques?
Pourquoi ne pas utiliser les guillemets magiques?
Désactiver les guillemets magiques

Les guillemets magiques (littéralement, les Magic Quotes) est un processus qui protège automagiquement les données introduites dans un script PHP. Il est recommandé de développer les applications sans l'aide des guillemets magiques, et de protéger manuellement les données.

Qu'est-ce que les guillemets magiques?

Lorsque cette directive est active, les guillemets simples ', les guillemets doubles ", les anti-slashs \ et les caractères null NULL sont protégés automatiquement avec un anti-slash. C'est le même résultat que celui de la fonction addslashes().

Il y a trois directives de guillemets magiques différentes :

  • magic_quotes_gpc

    Affecte les données issues des requêtes HTTP (GET, POST, et COOKIE). Ne peut pas être configurée durant l'exécution, et vaut par défaut on en PHP.

    Voir aussi get_magic_quotes_gpc().

  • magic_quotes_runtime

    Si activée, la plupart des fonctions qui retournent des données externes, y compris issues d'une base de données ou d'un fichier texte, verront les données protégées par des anti-slash. Cette directive peut être modifiée durant l'exécution, et vaut par défaut off en PHP

    Voir aussi set_magic_quotes_runtime() et get_magic_quotes_runtime().

  • magic_quotes_sybase

    Si cette configuration est active, les guillemets simples sont protégés avec un autre guillemets simples, et non pas un anti-slash. Lorsqu'elle est active, cette directive remplace entièrement magic_quotes_gpc. Si vous activez ces deux directives, alors seuls les guillemets simples seront protégés, avec ''. Les guillemets doubles, les anti-slash et les caractères null seront laissés intacts.

    Voir aussi ini_get() pour lire la valeur de la directive.

Précédent | Sommaire | Suivant
Données transmises par les internautes | Niveau supérieur | Pourquoi utiliser les guillemets magiques?


Pourquoi utiliser les guillemets magiques?

  • Utile pour les débutants

    Les guillemets magiques sont implantés en PHP pour protéger le code contre les trous de sécurités. Même si les injections SQL sont possibles avec les guillemets magiques, le risque est réduit.

  • Commodité

    Lors de l'insertion de données dans une base de données, les guillemets magiques utilisent la fonction addslashes() sur toutes les données de type GET, POST et COOKIE, automagiquement.

Précédent | Sommaire | Suivant
Guillemets magiques | Niveau supérieur | Pourquoi ne pas utiliser les guillemets magiques?


Pourquoi ne pas utiliser les guillemets magiques?

  • Portabilité

    Cette directive peut être activée ou désactivée suivant les serveurs et cela affecte grandement la portabilité. Utilisez get_magic_quotes_gpc() pour vérifier s'ils sont actifs ou pas, et adaptez votre application.

  • Performances

    Comme ce n'est pas toutes les données qui sont finalement placées dans une base, il y a un coût en vitesse pour protéger toutes ces données. Le simple appel des fonctions de protections en fonction des besoins est plus efficace (addslashes()).

    Même si php.ini-dist active ces options par défaut, php.ini-recommended les désactive. Cette recommendation est surtout faite pour des raisons de vitesse.

  • Peu pratique

    Comme toutes les données n'ont pas forcément besoin de protection, il est souvent désagréable de voir des données protégées là où ça ne sert à rien. Par exemple, lorsque vous envoyez par mail un formulaire, et que vous voyez des anti-slashs parsemer le message. Pour corriger cela, il faut faire un usage fréquent de stripslashes().

Précédent | Sommaire | Suivant
Pourquoi utiliser les guillemets magiques? | Niveau supérieur | Désactiver les guillemets magiques


Désactiver les guillemets magiques

La directive magic_quotes_gpc ne peut être désactivée qu'au niveau du système, et non pas à l'exécution. En d'autres termes, utiliser ini_set() n'est pas possible.

Exemple 31-1. Désactiver les guillemets magiques du coté du serveur

Voici un exemple qui donne la valeur de Off à ces directives dans le fichier php.ini. Pour plus de détails, voyez la section Comment changer la configuration.

; Magic quotes
;

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off

Si vous n'avez pas accès au serveur, utilisez le fichier .htaccess. Par exemple :

php_flag magic_quotes_gpc Off

Afin d'écrire du code portable sur tous les environnement, et où vous ne pourrez pas forcément modifier la configuration du serveur, voici un exemple de désactivation de magic_quotes_gpc à l'exécution. Cette méthode est inefficace, et il est recommandé d'utiliser les autres solutions si possible.

Exemple 31-2. Désactivation des guillemets magiques à l'exécution

<?php
if (get_magic_quotes_gpc()) {
    function stripslashes_deep($value)
    {
        $value = is_array($value) ?
                    array_map('stripslashes_deep', $value) :
                    stripslashes($value);

        return $value;
    }

    $_POST = array_map('stripslashes_deep', $_POST);
    $_GET = array_map('stripslashes_deep', $_GET);
    $_COOKIE = array_map('stripslashes_deep', $_COOKIE);
    $_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
?>

Précédent | Sommaire | Suivant
Pourquoi ne pas utiliser les guillemets magiques? | Niveau supérieur | Masquer PHP


Masquer PHP

Manuel PHP
Précédent Suivant

Chapitre 32. Masquer PHP

En général, la sécurité par l'obscurité est une des formes de sécurité les plus faibles. Mais dans cerrtains cas, chaque action, aussi faible soit elle, concernant la sécurité, est souhaitable.

Quelques astuces permettent de masquer PHP, et cela entrave les pirates qui recherchent des faiblesses dans votre système. En 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 le fichier .htaccess, soit dans le fichier de configuration lui-même. Vous pouvez utiliser des informations déroutantes comme ceci :

Exemple 32-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 32-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 32-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 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.

Précédent | Sommaire | Suivant
Désactiver les guillemets magiques | Niveau supérieur | Être à jour


Être à jour

Manuel PHP
Précédent Suivant

Chapitre 33. Être à jour

PHP, comme de nombreux systèmes 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 les problèmes de conceptions de configuration, et d'autres points qui peuvent affecter la sécurité globale et la stabilité de votre système.

Comme les autres langages de scripts systèmes, la meilleure approche est de mettre à jour souvent PHP, et de rester à l'écoute des dernières versions et des modifications qu'elles apportent.

Précédent | Sommaire | Suivant
Masquer PHP | Niveau supérieur | Caractéristiques


Caractéristiques

Manuel PHP
Précédent Suivant

V. Caractéristiques

Table des matières
34. Identification HTTP avec PHP
35. Cookies
36. Sessions
37. Utiliser les XForms
38. Gestion des chargements de fichiers
39. Utilisation des fichiers à distance
40. Gestion des connexions
41. Connexions persistantes aux bases de données
42. Safe mode
43. Utiliser PHP en ligne de commande

Précédent | Sommaire | Suivant
Être à jour |  | Identification HTTP avec PHP


Identification HTTP avec PHP

Manuel PHP
Précédent Suivant

Chapitre 34. Identification HTTP avec PHP

Les fonctions d'identification HTTP de PHP ne sont disponibles que si PHP est exécuté comme module Apache, et non pas sous la forme d'un CGI. Sous cette forme, 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 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 et $HTTP_SERVER_VARS. Les méthodes d'identification simple ("Basic") et de type "Digest" (depuis PHP 5.1.0) sont supportées. Reportez-vous à la fonction header() pour plus d'informations.

Note sur les versions de PHP : Les superglobales, telles que $_SERVER, ont été ajoutées en PHP à partir de la version 4.1.0. $HTTP_SERVER_VARS est disponible depuis PHP 3.

Voici un exemple de script qui force l'identification du client pour accéder à une page :

Exemple 34-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 34-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é!');

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

    preg_match_all('@(\w+)=(?:([\'"])([^\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 de compatibilité : Soyez bien prudent lorsque vous utilisez des en-têtes HTTP avec PHP. Afin de garantir un maximum de compatibilité entre les navigateurs, le mot clé "Basic" doit être écrit avec un B majuscule, et le texte de présentation doit être placé entre guillemets simples, et exactement un espace doit précéder le code 401 dans l'en-tête HTTP/1.0 401. Les paramètres d'authentification doivent être séparés par des virgules comme montré dans l'exemple ci-haut.

Au lieu d'afficher simplement les variables globales PHP_AUTH_USER et PHP_AUTH_PW, vous préférerez sûrement vérifier la validité du nom d'utilisateur et du mot de passe. Par exemple, en envoyant ces informations à une base de données, ou en recherchant dans un fichier dbm.

Méfiez-vous des navigateurs bogués, tels qu'Internet Explorer. Ils semblent très susceptibles en ce qui concerne l'ordre des en-têtes. Envoyer l'en-tête d'identification (WWW-Authenticate) avant le code de HTTP/1.0 401 semble lui convenir jusqu'à présent.

Pour éviter que quelqu'un écrive un script qui révèle les mots de passe d'une page, à laquelle on a accédé par une identification traditionnelle, les variables globales PHP_AUTH ne seront pas assignées si l'identification externe a été activée pour cette page. Dans ce cas, la variable REMOTE_USER peut être utilisée pour identifier l'utilisateur à l'extérieur. De même que $_SERVER['REMOTE_USER'].

Note 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 34-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 : {$_SERVER['PHP_AUTH_USER']}<br />";
    echo "Ancien : {$_REQUEST['OldAuth']}";
    echo "<form action='{$_SERVER['PHP_SELF']}' METHOD='post'>\n";
    echo "<input type='hidden' name='SeenBefore' value='1' />\n";
    echo "<input type='hidden' name='OldAuth' value='{$_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" (back) à 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.

Notez également qu'avant PHP 4.3.3, l'identification HTTP ne fonctionne pas sous le serveur Mircosoft IIS avec la version CGI de PHP à cause d'une limitation de IIS. Pour que cela fonctionne en PHP 4.3.3+, vous devez éditer votre configuration de IIS "Directory Security". Cliquez sur "Edit" et activez uniquement "Anonymous Access", tous les autres champs doivent être laissés non actifs.

Une autre limitation si vous utilisez le module IIS (ISAPI) et PHP 4, vous ne devez pas utiliser les variables PHP_AUTH_* mais à la place, la variable HTTP_AUTHORIZATION est disponible. Par exemple, utilisez le code suivant : list($user, $pw) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));

Note pour les utilisateurs de IIS : : Pour que l'identification HTTP fonctionne avec IIS, la directive PHP cgi.rfc2616_headers doit être définie à 0 (la valeur par défaut).

Note : Si le safe mode est activé, le uid de ce script est ajouté à la partie realm des en-têtes WWW-Authenticate.

Précédent | Sommaire | Suivant
Caractéristiques | Niveau supérieur | Cookies


Cookies

Manuel PHP
Précédent Suivant

Chapitre 35. Cookies

PHP supporte les cookies HTTP de manière transparente. Les cookies sont un mécanisme d'enregistrement d'informations sur le client, et de lecture de ces informations. Ce système permet d'identifier et de suivre les visiteurs. Vous pouvez envoyer un cookie avec la fonction setcookie() ou setrawcookie(). Les cookies font partie des en-têtes HTTP, ce qui impose que setcookie() soit appelée avant tout affichage de texte. Ce sont les mêmes limitations que pour header(). Vous pouvez utiliser les fonctions de bufferisation de sortie pour retarder l'affichage de votre script tant que vous n'avez pas décidé d'envoyer un cookie ou des en-têtes.

Tous les cookies qui sont envoyés au client seront automatiquement inclus dans un tableau auto-global $_COOKIE si variables_order contient "C". Si vous souhaitez affecter plusieurs valeurs à un seul cookie, ajoutez [] au nom du cookie.

Dépendamment de register_globals, les variables PHP régulières peuvent être créées à partir des cookies. Cependant, ce n'est pas recommandé de se fier à elles puisque cette fonctionnalité est souvent désactivée pour des raisons de sécurité. $HTTP_COOKIE_VARS est aussi prédéfinie dans les versions de PHP plus anciennes, lorsque la directive track_vars est activée. (Cette option est activée par défaut depuis PHP 4.0.3.)

Pour plus de détails, y compris des notes sur les bogues des navigateurs, voir les fonctions setcookie() et setrawcookie().

Précédent | Sommaire | Suivant
Identification HTTP avec PHP | Niveau supérieur | Sessions


Sessions

Manuel PHP
Précédent Suivant

Chapitre 36. 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.

Précédent | Sommaire | Suivant
Cookies | Niveau supérieur | Utiliser les XForms


Utiliser les XForms

Manuel PHP
Précédent Suivant

Chapitre 37. 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 37-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 37-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.

Précédent | Sommaire | Suivant
Sessions | Niveau supérieur | Gestion des chargements de fichiers


Gestion des chargements de fichiers

Manuel PHP
Précédent Suivant

Chapitre 38. Gestion des chargements de fichiers

Table des matières
Chargements de fichiers par méthode POST
Explication sur les messages d'erreurs de chargement de fichiers
Erreurs classiques
Télécharger plusieurs fichiers simultanément
Chargement par méthode PUT

Chargements de fichiers par méthode POST

Cette fonctionnalité permet aux personnes de télécharger à la fois du texte et des fichiers binaires. Avec les fonctions d'identification et de manipulation de fichiers de PHP, vous avez le contrôle total pour définir qui a le droit de télécharger mais aussi ce qui sera fait du fichier une fois qu'il sera téléchargé.

PHP est capable de recevoir des fichiers émis par un navigateur conforme à la norme RFC-1867 (c'est-à-dire Netscape Navigator 3 ou supérieur, Microsoft Internet Explorer 3 avec un patch de Microsoft, ou supérieur sans le patch).

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 38-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 champs 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. Ceci est considéré comme un conseil pour le navigateur, bien que PHP l'utilise également. Il est très facile de contourner cette restriction. Ne comptez pas sur le respect de cette configuration par le navigateur ! La configuration de PHP sur la taille maximale à respecter (upload_max_filesize) ne peut être contournée, elle. Vous devez ajouter la variable MAX_FILE_SIZE à votre formulaire dans tous les cas, car elle prévient le chargement de gros fichiers qui demanderaient un long délai d'attente au client et ainsi feraient échouer le script.

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 existe depuis PHP 4.1.0 (Utilisez $HTTP_POST_FILES si vous utilisez une version plus ancienne). Ce tableau devrait contenir toutes les informations du fichier téléchargé.

Le contenu du tableau $_FILES 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 error code associé au téléchargement de fichier. Cet élément a été introduit en PHP 4.2.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 38-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
// En PHP < 4.1.0, $HTTP_POST_FILES doit être utilisé
//    à la place de $_FILES.

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "Le fichier est valide, et a été téléchargé
           avec succès. Voici plus d'informations :\n";
} else {
    echo "Attaque potentielle par téléchargement de fichiers.
          Voici plus d'informations :\n";
}

echo 'Voici quelques informations de débogage :';
print_r($_FILES);

echo '</pre>';

?>

Le script PHP qui reçoit le fichier chargé doit pouvoir gérer le fichier de manière appropriée. Vous pouvez utiliser la variable $_FILES['userfile']['size'] pour recaler tous les fichiers qui sont trop gros ou trop petits. Vous pouvez utiliser la variable $_FILES['userfile']['type'] pour écarter les fichiers qui n'ont pas le bon type, mais l'utiliser uniquement pour une série de vérifications, car cette valeur est complètement sous le contrôle du client et n'est pas vérifiée du côté de PHP. Depuis PHP 4.2.0, vous pouvez utiliser l'information dans $_FILES['userfile']['error'] et adapter votre politique en fonction des codes d'erreur. Quelque 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 fichier temporaire à la fin du script, s'il n'a pas été déplacé ou renommé.

Exemple 38-3. Envoi d'un tableau de fichiers

PHP supporte les tableaux en HTML ainsi qu'avec les fichiers.

<form action="" method="post" enctype="multipart/form-data">
<p>Images:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Send" />
</p>
</form>
<?php
foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
        $name = $_FILES["pictures"]["name"][$key];
        move_uploaded_file($tmp_name, "data/$name");
    }
}
?>

Précédent | Sommaire | Suivant
Utiliser les XForms | Niveau supérieur | Explication sur les messages d'erreurs de chargement de fichiers


Explication sur les messages d'erreurs de chargement de fichiers

Depuis PHP 4.2.0, 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. Le fichier téléchargé excède la taille de upload_max_filesize, configurée dans le php.ini.

UPLOAD_ERR_FORM_SIZE

Valeur : 2. Le fichier téléchargé excède la taille de MAX_FILE_SIZE, qui a été spécifiée dans le formulaire HTML.

UPLOAD_ERR_PARTIAL

Valeur : 3. Le fichier n'a été que partiellement téléchargé.

UPLOAD_ERR_NO_FILE

Valeur : 4. Aucun fichier n'a été téléchargé.

UPLOAD_ERR_NO_TMP_DIR

Valeur : 6. Un dossier temporaire est manquant. Introduit en PHP 4.3.10 et PHP 5.0.3.

UPLOAD_ERR_CANT_WRITE

Valeur : 7. Échec de l'écriture du fichier sur le disque. Introduit en PHP 5.1.0.

UPLOAD_ERR_EXTENSION

Valeur : 8. L'envoi de fichier est arrêté par l'extension. Introduit en PHP 5.2.0.

Note : Ces constantes sont apparues en PHP 4.3.0.

Précédent | Sommaire | Suivant
Gestion des chargements de fichiers | Niveau supérieur | Erreurs classiques


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.

Ne pas valider les fichiers que vous manipulez peut donner l'accès aux utilisateurs à des fichiers sensibles dans d'autres dossiers !

Attention : il semble que CERN httpd supprime tout ce qui est après le premier caractère dans l'entête MIME. Tant que c'est le cas, CERN httpd ne pourra pas effectuer de chargements de fichiers.

Du fait de la grande diversité des systèmes, nous ne pouvons garantir que les fichiers avec des noms exotiques (par exemple, ceux contenant des espaces) seront traités correctement.

Le développeur ne doit pas mixer les champs input normaux et les champs input de téléchargement dans une même variable (en utilisant un nom d'input comme foo[]).

Précédent | Sommaire | Suivant
Explication sur les messages d'erreurs de chargement de fichiers | Niveau supérieur | Télécharger plusieurs fichiers simultanément


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.

Note : Le support des téléchargements multiples a été ajouté en PHP 3.0.10.

Exemple 38-4. Télécharger plusieurs fichiers simultanément

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Envoyez plusieurs fichiers : <br />
  <input name="userfile[]" type="file" /><br />
  <input name="userfile[]" type="file" /><br />
  <input type="submit" value="Envoyer les fichiers" />
</form>

Lorsque le formulaire ci-dessus a été envoyé, les tableaux $_FILES['userfile'], $_FILES['userfile']['name'], et $_FILES['userfile']['size'] seront initialisés (tout comme $HTTP_POST_FILES pour les versions de PHP antérieures à la 4.1.0). Lorsque register_globals est activé, les variables globales concernant les fichiers téléchargés sont aussi initialisées. Chacune d'entre elles contiendra un tableau numériquement indexé, avec les valeurs décrivant les fichiers téléchargés.

Par exemple, supposons que les fichiers /home/test/review.html et /home/test/xwp.out ont été téléchargés. Dans ce cas, $_FILES['userfile']['name'][0] contient review.html et $_FILES['userfile']['name'][1] contient xwp.out. Similairement, $_FILES['userfile']['size'][0] va contenir la taille du fichier review.html, etc.

$_FILES['userfile']['name'][0], $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0] et $_FILES['userfile']['type'][0] sont aussi créées.

Précédent | Sommaire | Suivant
Erreurs classiques | Niveau supérieur | Chargement par méthode PUT


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 38-5. Méthode PUT pour les chargements de fichiers

PUT /path/filename.html HTTP/1.1

Normalement, cela signifie que le client distant va sauver les données qui suivent dans le fichier : /path/filename.html de votre 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 38-6. 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 4 et suivant, 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 38-7. Sauvegarde de fichiers HTTP PUT avec PHP 4

<?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
and write to the file */
while ($data = fread($putdata, 1024))
fwrite($fp, $data);

/* Fermeture du flux */
fclose($fp);
fclose($putdata);
?>

Note : Toute la documentation ci-dessous s'applique uniquement à PHP 3.

Exemple 38-8. Sauvegarde de fichiers HTTP PUT avec PHP 3

<?php
copy($PHP_UPLOADED_FILE_NAME, $DOCUMENT_ROOT . $REQUEST_URI);
?>

Le seul piège est que lorsque PHP reçoit un chargement par méthode PUT, il va enregistrer le fichier dans le dossier temporaire, tout comme avec la méthode POST. À la fin de la requête, le fichier sera effacé. Ce qui fait que ce script doit placer le fichier chargé quelque part. Le nom du fichier temporaire est placé dans la variable globale $PHP_PUT_FILENAME, et la destination prévue est placée dans $REQUEST_URI (ces noms peuvent changer d'une configuration d'Apache à l'autre). Cette destination est celle qui est demandée par le client, et vous n'avez pas à obéir aveuglément au client. Vous pourriez par exemple, déplacer le fichier dans un dossier de chargement.

Précédent | Sommaire | Suivant
Télécharger plusieurs fichiers simultanément | Niveau supérieur | Utilisation des fichiers à distance


Utilisation des fichiers à distance

Manuel PHP
Précédent Suivant

Chapitre 39. 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 URLs (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(). Reportez-vous à Annexe N pour plus d'informations sur les protocoles supportés par PHP.

Note : En PHP 4.0.3 et plus récent, pour pouvoir utiliser les gestionnaires d'URL, vous devez configurer PHP avec l'option --enable-url-fopen-wrapper.

Note : Les versions de PHP pour Windows plus anciennes que 4.3 de supportaient pas les gestionnaires d'URL avec les fonctions suivantes : include(), include_once(), require(), require_once(), et les fonctions de création d'images de l'extension Référence LXV, Images.

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 39-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 (eregi ("<title>(.*)</title>", $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 39-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 :vVous 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().

Précédent | Sommaire | Suivant
Chargement par méthode PUT | Niveau supérieur | Gestion des connexions


Gestion des connexions

Manuel PHP
Précédent Suivant

Chapitre 40. Gestion des connexions

Note : Les informations suivantes ne sont valables qu'à partir de la version 3.0.7.

Le statut des connexions est conservé en interne par PHP. Il y a trois états possibles :

  • 0 - NORMAL (normal)

  • 1 - ABORTED (annulé)

  • 2 - TIMEOUT (périmé)

Lorsqu'un script PHP est en cours d'exécution, son état est NORMAL. Si le client distant se déconnecte, le statut devient ABORTED. En général, une telle déconnexion provient d'un arrêt temporaire. Si la durée maximale d'exécution de PHP est dépassée, (voir set_time_limit()), le script prend le statut TIMEOUT.

Vous pouvez en outre décider si vous voulez que la déconnexion d'un client provoque l'arrêt de votre script. Il est parfois pratique que vos scripts continuent à s'exécuter jusqu'à la fin, même si le client n'est plus là pour recevoir les informations. Cependant, par défaut, le script s'arrêtera dès que le client se déconnecte. Ce comportement peut être modifié avec la directive ignore_user_abort dans le fichier php.ini ou bien avec la directive Apache 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 finalisation 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.

Précédent | Sommaire | Suivant
Utilisation des fichiers à distance | Niveau supérieur | Connexions persistantes aux bases de données


Connexions persistantes aux bases de données

Manuel PHP
Précédent Suivant

Chapitre 41. Connexions persistantes aux bases de données

Les connexions persistantes aux bases de données SQL sont des connexions qui ne se referment pas à la fin du script. Lorsqu'une connexion persistante est demandée, PHP s'assure qu'il n'y a pas une autre connexion identique (qui serait ouverte précédemment, avec le même nom d'hôte, d'utilisateur et le même mot de passe), et si une telle connexion existe, elle est utilisée ; sinon, elle est créée. Une connexion identique est une connexion qui a ouvert le même hôte, avec le même nom et le même mot de passe (s'ils sont nécessaires).

Ceux qui ne sont pas rompus aux techniques des serveurs web et leur distribution de la charge de travail se font parfois une fausse idée de ces connexions persistantes. En particulier, les connexions persistantes ne permettent pas l'ouverture de plusieurs sessions avec le même lien ; elles ne permettent pas la réalisation de transactions efficaces et ne font pas le café. En fait, pour être extrêmement clair sur le sujet, les connexions persistantes ne vous donnent aucune fonctionnalité de plus que les connexions non persistantes.

Alors pourquoi les connexions persistantes ?

Cela s'explique par la manière avec laquelle les serveurs web fonctionnent. Il y a trois manières d'utiliser PHP pour générer des pages.

La première est d'utiliser PHP comme un CGI (Common Interface Gateway). Lorsque PHP fonctionne de cette manière, une instance de l'interpréteur PHP est créée puis détruite pour chaque page demandée. Étant donné que cet interpréteur est détruit après chaque requête, toutes les ressources acquises (comme une connexion à une base SQL), sont purement et simplement détruites.

La deuxième méthode, de loin la plus prisée, est d'exécuter PHP sous la forme d'un module sur un serveur multi-processus, ce qui revient à dire : Apache. Un tel serveur a typiquement un processus parent qui coordonne un ensemble de processus fils, qui servent les fichiers. Lorsque les requêtes parviennent depuis un client, elles sont transmises à un fils disponible. Cela signifie que si un client fait une deuxième requête, il peut être servi par un processus client différent du premier. Les connexions persistantes vous permettent alors de ne vous connecter à une base SQL que la première fois. Lors des connexions ultérieures, les processus fils pourront réutiliser la connexion ouverte précédemment.

La dernière méthode est d'utiliser PHP sous la forme d'un module de serveur multi-threads. Actuellement, PHP 4 supporte ISAPI, WSAPI, et NSAPI (sous Windows), qui permettent tous d'utiliser PHP comme un module sur un serveur multi-threads tel que Netscape FastTrack (iPlanet), Microsoft Internet Information Server (IIS), et O'Reilly's WebSite Pro. Le comportement est essentiellement le même que pour les serveurs multi-processus décrits précédemment. Notez que SAPI n'est pas disponible avec PHP 3.

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 à ben garder en tête lorsque vous utilisez les connexions persistantes. L'une est que lorsque vous posez un verrou avec une connexion persistante, si le script ne peut libérer le verrou pour une raison quelconque, alors les autres scripts qui réutiliseront la connexion seront bloqués indéfiniment, et vous imposeront le redémarrage du serveur ou de la base de données. Une autre limitation est, lors de l'utilisation des transactions, un bloc de transaction non fermé sera prolongé au script suivant, s'il n'est pas fermé par le script initiateur. Dans les deux cas, vous pouvez utiliser la fonction register_shutdown_function() pour enregistrer une fonction simple de nettoyage, pour déverrouiller les tables, et annuler les transactions en cours. Mieux encore, évitez le problème entièrement en n'utilisant pas les connexions persistantes dans les scripts qui ont besoin de verrous ou de transactions. Vous pourrez toujours les utiliser ailleurs.

Résumons-nous : les connexions persistantes ont été définies pour avoir les mêmes fonctionnalités que les connexions non persistantes. Les deux types de connexions sont parfaitement interchangeables, et n'affecteront pas le comportement de votre script : uniquement son efficacité.

Voir aussi
fbsql_pconnect(),
ibase_pconnect(),
ifx_pconnect(),
ingres_pconnect(),
msql_pconnect(),
mssql_pconnect(),
mysql_pconnect(),
ociplogon(),
odbc_pconnect(),
ora_plogon(),
pfsockopen(),
pg_pconnect() et
sybase_pconnect().

Précédent | Sommaire | Suivant
Gestion des connexions | Niveau supérieur | Safe mode


Safe mode

Manuel PHP
Précédent Suivant

Chapitre 42. Safe mode

Table des matières
Sécurité et Safe Mode
Fonctions désactivées par le Safe Mode

Le "Safe Mode" est le mode de sécurité de PHP : une solution au problème de partage de PHP sur un serveur. Ce système pêche au niveau de l'architecture car il n'est pas correct de tenter de résoudre ce problème au niveau de PHP, mais les solutions alternatives basées sur le serveur web et l'OS ne sont pas réalistes. De nombreux intervenants, notamment les fournisseurs d'hébergement, utilisent le "Safe Mode".

Avertissement

Le "Safe Mode" est supprimé dans PHP 6.0.0.

Sécurité et Safe Mode

Tableau 42-1. Options de configuration

Nom | Par défaut | Modifiable | Historique
safe_mode | "0" | PHP_INI_SYSTEM |
safe_mode_gid | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.1.0.
safe_mode_include_dir | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 4.1.0.
safe_mode_exec_dir | "" | PHP_INI_SYSTEM |
safe_mode_allowed_env_vars | "PHP_" | PHP_INI_SYSTEM |
safe_mode_protected_env_vars | "LD_LIBRARY_PATH" | PHP_INI_SYSTEM |
open_basedir | NULL | PHP_INI_SYSTEM |
disable_functions | "" | php.ini seulement | Disponible depuis PHP 4.0.1.
disable_classes | "" | php.ini seulement | Disponible depuis PHP 4.3.2.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

safe_mode booléen

Active ou non le mode de sécurité de PHP.

safe_mode_gid booléen

Par défaut, le safe mode fait une comparaison des propriétaires, avant d'ouvrir un fichier. Si vous voulez alléger un peu ce niveau de sécurité, vous pouvez réaliser une comparaison de groupe, et activer cette directive. Si cette directive vaut FALSE (sa valeur par défaut), c'est une comparaison sur les UID, et, sinon, sur les GID.

safe_mode_include_dir chaîne de caractères

Les vérifications basées sur le UID ou GID sont ignorées lorsque les fichiers inclus sont placés dans le dossier indiqué par cette directive, ainsi que ses sous-dossiers. Les dossiers peuvent être aussi dans l'include_path ou bien il faut inclure le chemin complet.

Depuis PHP 4.2.0, cette directive utilise le point virgule de la même façon que le fait include_path, pour permettre de configurer plusieurs dossiers.

La restriction spécifiée est en fait un préfixe, plus qu'un nom de dossier. Cela signifie que "safe_mode_include_dir = /dir/incl" autorise aussi bien "/dir/include" que "/dir/incls", s'ils existent. Lorsque vous souhaitez restreindre l'accès à un dossier spécifique, il faut terminer cette directive avec un slash /. Par exemple "safe_mode_include_dir = /dir/incl/".

Si la valeur de cette directive est vide, aucun fichier avec le UID/GID différent ne peut être inclus dans PHP 4.2.3 et dans les versions PHP 4.3.3 et plus récentes. Dans les versions antérieures, tous les fichiers pouvaient être inclus.

safe_mode_exec_dir chaîne de caractères

Si PHP est utilisé en safe mode, les fonctions comme system() et toutes celles qui permettent l'exécution en ligne de commande refuseront d'exécuter des programmes qui ne sont pas dans ce dossier. Vous devez utiliser / en tant que séparateur de dossier sous tous les environnements, y compris Windows.

safe_mode_allowed_env_vars chaîne de caractères

Modifier certaines variables d'environnement est un trou de sécurité potentiel. Cette directive contient une liste de noms de variables d'environnement séparées par des virgules, ou de préfixes. En Safe mode, l'utilisateur ne pourra modifier que les variables d'environnement dont le nom commence par l'un des préfixes fourni ici. Par défaut, les utilisateurs ne peuvent modifier que les variables d'environnement qui commencent par PHP_ (e.g. PHP_FOO=BAR).

Note : Si cette directive est vide, PHP autorisera la modification de TOUTES les variables d'environnement.

safe_mode_protected_env_vars chaîne de caractères

Cette directive contient une liste de variables d'environnement que le programmeur ne pourra pas modifier en utilisant la fonction putenv(). Ces variables seront protégées, même si la directive safe_mode_allowed_env_vars autorise leur modification.

open_basedir chaîne de caractères

Limite les fichiers accessibles par PHP dans l'arborescence. Cette directive n'est pas affectée par le safe mode.

Lorsqu'un script tente d'ouvrir un fichier, avec les fonctions fopen() ou gzopen(), la situation du fichier est vérifiée. Si le fichier se situe hors du dossier spécifié dans cette directive, PHP refusera de l'ouvrir. Les liens symboliques sont résolus, ce qui fait que cette restriction ne peut être contournée par un lien symbolique.

La valeur spéciale . indique que le dossier dans lequel le script est stocké servira de dossier de base. Cela est cependant un peu dangereux car le dossier courant du script peut facilement être modifié avec la fonction chdir().

Dans httpd.conf, open_basedir peut être désactivée (i.e. pour certains hôtes virtuels) de la même manière que toute autre directive de configuration avec la syntaxe "php_admin_value open_basedir none".

Sous Windows, séparez les dossiers par des points virgules. Sur les autres systèmes, séparez les dossiers avec des deux-points. Lorsque PHP est utilisé comme module Apache, les chemins de la directive open_basedir des dossiers parents sont automatiques transmis.

La restriction spécifiée par open_basedir est en fait un préfixe et non un dossier. Cela signifie que "open_basedir = /dir/incl" donne accès au dossier "/dir/include" et aussi au dossier "/dir/incls" s'il existe. Lorsque vous souhaitez restreindre l'accès à un dossier spécifique, ajoutez un slash final. Par exemple : open_basedir = /dir/incl/.

Note : Le support des dossiers multiples a été ajouté en PHP 3.0.7.

La valeur par défaut permet l'ouverture de tous les fichiers.

disable_functions chaîne de caractères

Cette directive vous permet de désactiver certaines fonctions pour des raisons de sécurité. Elle prend une liste de nom de fonctions, séparés par des virgules. disable_functions n'est pas affectée par le safe mode.

Cette directive doit être configurée dans le fichier php.ini. Par exemple, vous ne pourrez pas la configurer dans le fichier httpd.conf.

disable_classes chaîne de caractères

Cette directive vous permet de désactiver certaines classes pour des raisons de sécurité. Elle prend une liste de nom de fonctions, séparées par des virgules. disable_functions n'est pas affectée par le safe mode.

Cette directive doit être configurée dans le fichier php.ini. Par exemple, vous ne pourrez pas la configurer dans le fichier httpd.conf.

Disponibilité : Cette directive est disponible depuis PHP 4.3.2

Voir aussi register_globals, display_errors et log_errors.

Lorsque safe mode est actif, PHP vérifie que le propriétaire du script courant est le même que le propriétaire des fichiers ou dossiers qui seront manipulés par ce script. Par exemple, dans la situation suivante :

-rw-rw-r--    1 rasmus   rasmus       33 Jul  1 19:20 script.php
-rw-r--r--    1 root     root       1116 May 26 18:01 /etc/passwd
exécuter le script script.php
<?php
 readfile('/etc/passwd');
?>
générera cette erreur, si le Safe Mode est activé :
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2

Cependant, il arrive que la vérification faite avec le nom du propriétaire du fichier soit trop restrictive, et qu'une vérification sur le nom du groupe soit suffisante. C'est une autre fonctionnalité supportée par la directive safe_mode_gid. En lui donnant la valeur de On, les vérifications seront faites sur le GID, alors qu'en lui laissant sa valeur par défaut de Off, les vérifications seront faites sur le UID.

Si vous utilisez la directive open_basedir au lieu du safe mode, alors les manipulations seront limitées aux fichiers situés dans les dossiers spécifiés. Par exemple (Apache httpd.conf) :

<Directory /docroot>
  php_admin_value open_basedir /docroot
</Directory>
Si vous exécutez le script script.php ci-dessus avec la configuration d'open_basedir, le résultat sera l'affichage suivant :
Warning: open_basedir restriction in effect. File is in wrong directory in
/docroot/script.php on line 2

Vous pouvez aussi désactiver individuellement les fonctions. Par exemple, en ajoutant cette ligne dans le fichier php.ini :

disable_functions readfile,system
toute utilisation des fonctions readfile() et system() générera l'affichage suivant :
Warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2

Avertissement

Ces restrictions de PHP sont bien sûr invalides en exécution binaire.

Précédent | Sommaire | Suivant
Connexions persistantes aux bases de données | Niveau supérieur | Fonctions désactivées par le Safe Mode


Fonctions désactivées par le Safe Mode

Voici une liste non-exhaustive des fonctions désactivées par le Safe Mode.

Tableau 42-2. Fonctions désactivées par le Safe Mode

Fonction | Limitations
dbmopen()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

dbase_open()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

filepro()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

filepro_rowcount()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

filepro_retrieve()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Fonctions ifx_* | restrictions sql_safe_mode, (!= Safe Mode)
Fonctions ingres_* | restrictions sql_safe_mode, (!= Safe Mode)
Fonctions mysql_* | restrictions sql_safe_mode, (!= Safe Mode)
pg_lo_import()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

posix_mkfifo()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

putenv() | Obéit aux directives safe_mode_protected_env_vars et safe_mode_allowed_env_vars. Voir aussi la documentation de putenv()
move_uploaded_file()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

chdir()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

dl() | Cette fonction est désactivée par le safe-mode
opérateur guillemets obliques | Cette fonction est désactivée par le safe-mode
shell_exec() (équivalent fonctionnel des guillemets obliques) | Cette fonction est désactivée par le safe-mode
exec() | Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
system() | Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
passthru() | Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
popen() | Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
fopen()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

mkdir()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

rmdir()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

rename()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

unlink()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

copy()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

(sur source et target)
chgrp()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

chown()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

chmod()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

De plus, vous ne pouvez pas modifier les SUID, SGID et le bit sticky
touch()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

symlink()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

(note : seule l'hôte cible est vérifié)
link()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

(note : seul le fichier de destination est vérifié.)
apache_request_headers() | En Safe Mode, les en-têtes commençant par authorization (sensible à la casse) ne seront pas retournés.
header() | Avec le safe mode, le uid du script est ajouté à la partie realm de l'en-tête WWW-Authenticate si vous utilisez cet en-tête pour l'identification.
variables PHP_AUTH | Avec le safe mode, les variables PHP_AUTH_USER, PHP_AUTH_PW et PHP_AUTH_TYPE ne sont pas disponibles dans la variable $_SERVER. Indépendamment, vous pouvez utiliser la variable REMOTE_USER pour connaître l'utilisateur. (note : affectée uniquement depuis PHP 4.3.0)
highlight_file(), show_source()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

(note : affectée uniquement depuis PHP 4.2.1)
parse_ini_file()

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note : Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

(note : affectée uniquement depuis PHP 4.2.1)
set_time_limit() | N'a aucun effet lorsque PHP fonctionne avec le safe mode.
max_execution_time | N'a aucun effet lorsque PHP fonctionne avec le safe mode.
mail() | Si le safe mode est actif, le 5ème paramètre est désactivé (note : uniquement affecté depuis PHP 4.2.3)
Toutes les fonctions qui utilisent les wrappers de fichiers. (php4/main/fopen_wrappers.c) ??

Précédent | Sommaire | Suivant
Safe mode | Niveau supérieur | Utiliser PHP en ligne de commande


Utiliser PHP en ligne de commande

Manuel PHP
Précédent Suivant

Chapitre 43. Utiliser PHP en ligne de commande

Depuis la version 4.3.0, PHP supporte un nouveau type de SAPI (Server Application Programming Interface, c'est-à-dire Interface de Programmation d'Applications Serveur) appelé CLI, ce qui signifie Command Line Interface et se traduit par Interface de Ligne de Commande. Comme son nom l'indique, ce type SAPI cible les applications shell (ou desktop), écrites en PHP. Il y a un certain nombre de différences entre le type CLI SAPI et les autres SAPI expliqués dans ce chapitre. Il convient de préciser que CLI et CGI sont des SAPI différentes, bien qu'ils partagent des comportements similaires.

Le CLI SAPI a été publié pour la première fois avec la version PHP 4.2.0, mais il était expérimental, et devait être explicitement activé avec l'option --enable-cli lorsque vous exécutez le script ./configure. Depuis PHP 4.3.0, le CLI SAPI n'est plus expérimental, et l'option --enable-cli est activée par défaut. Vous pouvez utiliser l'option --disable-cli pour le désactiver.

Depuis PHP 4.3.0, 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. Si, par exemple, --with--apxs figure dans votre ligne de configuration, le CLI est copié dans {PREFIX}/bin/php pendant le make install, sinon c'est le CGI qui y est placé. 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.

Les paquets Windows entre PHP 4.2.0 et PHP 4.2.3 installaient le CLI en tant que php-cli.exe et laissaient le CGI en tant que php-cli.exe dans le même répertoire. Depuis PHP 4.3.0, le paquet Windows installe le CLI en tant que php.exe dans un répertoire à part nommé cli, donc cli/php.exe. Depuis PHP 5, le CLI est installé dans le répertoire principal en tant que php.exe. La version CGI est nommée quand à elle php-cgi.exe.

Depuis PHP 5, un nouveau fichier php-win.exe est installé. C'est l'équivalent de la version CLI à ceci près qu'il n'affiche rien et ainsi ne fait pas apparaître de console (aucune fenêtre "dos" n'apparaît à l'écran). Ce comportement est similaire à celui de php-gtk. Vous pouvez l'activer avec l'option --enable-cli-win32.

Quel SAPI est installé ? : À partir d'un interpréteur de commande, 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 a été ajoutée avec PHP 4.3.2. Vous pouvez la consulter en tapant man php dans votre interpréteur de commande.

Les différences les plus notables entre le CLI SAPI et les SAPI sont :

  • Contrairement au CGI SAPI, aucun en-tête HTTP n'est écrit dans le résultat.

    Bien que le CGI SAPI fournisse un moyen de supprimer les en-têtes HTTP, il n'y a pas moyen d'activer les en-têtes HTTP dans le CLI SAPI.

    CLI est lancé en mode silencieux par défaut, bien que les options -q et --no-header soient gardées pour rester compatible avec les anciennes versions CGI.

    Il ne change pas le répertoire courant en celui du script. (les options -C et --no-chdir sont gardées par souci de compatibilité)

    Messages d'erreurs en texte brut (pas de formatage HTML).

  • Il y a plusieurs directives du php.ini qui sont ignorées par le CLI SAPI, car elles n'ont pas de sens en environnement shell :

    Tableau 43-1. Directives php.ini ignorées

    Directive | Valeur par défaut pour CLI SAPI | Commentaire
    html_errors | FALSE | Il peut être bien difficile de lire les messages d'erreur sur un terminal lorsqu'ils sont noyés dans des balises HTML sans grand intérêt. Par conséquent, cette directive est forcée à FALSE.
    implicit_flush | TRUE | Il est souhaitable que tout affichage en provenance de print(), echo() et consorts, soit immédiatement affiché dans le terminal, et non pas placé dans un buffer quelconque. Vous pouvez toujours 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) | Étant données les possibilités infinies de PHP en environnement shell, le temps d'exécution maximal d'un script PHP a été rendu illimité. Alors que les scripts destinés au web doivent s'accomplir en une fraction de seconde, il arrive que les scripts shell requièrent bien plus de temps.
    register_argc_argv TRUE

    En donnant la valeur de TRUE à cette directive, vous aurez toujours accès à la variable argc (représentant le nombre d'arguments passés à l'application) et argv (le tableau contenant les arguments passés) dans le CLI SAPI.

    Depuis PHP 4.3.0, les variables $argc et $argv sont définies et remplies avec les valeurs appropriées, en utilisant CLI SAPI. Avant cette version, la création de ces variables était liée au comportement des versions CGI et MODULE, qui requièrent l'activation de la directive register_globals. Indépendamment de la version ou de la valeur de register_globals, vous pouvez toujours accéder à $_SERVER et $HTTP_SERVER_VARS. Par exemple : $_SERVER['argv']

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

  • Pour faciliter le travail en environnement shell, les constantes suivantes sont définies :

    Tableau 43-2. Constantes spécifiques au CLI

    Constante Description
    STDIN Un descripteur de fichier déjà disponible vers stdin. Cela évite de l'ouvrir 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 seule ligne depuis STDIN
    fscanf(STDIN, "%d\n", $number); // lit les nombres depuis STDIN
    ?>
    STDOUT Un descripteur de fichier déjà disponible vers stdout. Cela évite de l'ouvrir avec
    <?php

    $stdout     = fopen('php://stdout', 'w');

    ?>
    STDERR Un descripteur de fichier déjà disponible vers stderr. Cela évite de l'ouvrir avec
    <?php

    $stderr     = fopen('php://stderr', 'w');

    ?>

    Étant donné ce qui précède, vous n'avez pas besoin d'ouvrir un flux vers stderr par vous-même, mais vous pouvez utiliser cette constante directement, comme un descripteur de fichier :

    php -r 'fwrite(STDERR, "stderr\n");'
    Vous n'avez pas non plus à fermer explicitement ces fichiers, PHP s'en chargera automatiquement à la fin du script.

  • Le CLI SAPI ne transforme pas le dossier courant en dossier d'exécution du script !

    Exemple de différence entre CGI SAPI et CLI SAPI:

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

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 <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               Display colour syntax highlighted source.
-v               Version number
-w               Display 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

Le CLI SAPI dispose de trois moyens pour lire le code du script PHP que vous voulez 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. Vous pouvez choisir n'importe quel fichier, et ces fichiers ne sont pas tenus d'utiliser l'extension .php. N'importe quelle extension peut faire l'affaire.

  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, et votre script PHP peut aussi les recevoir. Le nombre d'arguments n'est pas limité par PHP (le shell a une limite en terme de nombre de caractères qui peuvent être passés. Généralement, vous n'atteindrez pas cette limite). Les arguments passés au script seront transmis via la variable tableau $argv. L'index zéro contiendra toujours le nom du script appelé (qui sera - dans le cas où le code PHP arrive de l'entrée standard ou depuis la ligne de commande, passé -r). L'autre variable globale fournie est $argc qui contient le nombre d'éléments dans le tableau $argv (ce nombre est différent du nombre d'arguments passés au script).

Tant que les arguments que vous passez à votre script ne commencent pas par le caractère -, il n'y a rien de spécial à surveiller. Si vous passez des arguments à votre script qui commencent par -, cela posera 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 à votre 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' à votre 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. Vous pouvez aussi utiliser la ligne #!/usr/bin/php en tout début de votre script, suivie de code PHP compris entre balise ouvrantes/fermantes. Après avoir mis les droits d'exécution sur votre script (chmod +x test), il peut être exécuté comme un script shell ou perl habituel :

#!/usr/bin/php
<?php
var_dump($argv);
?>
En supposant que ce fichier s'appelle test, dans le dossier courant, nous pouvons alors 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 le voyez, aucune précaution n'est nécessaire pour passer des paramètres qui commencent par - à votre script.

Les options longues sont disponibles depuis PHP 4.3.3.

Tableau 43-3. Options de ligne de commande

Option | Option longue | Description
-a --interactive

Lance PHP de façon interactive. Si vous compilez PHP avec l'extension Readline (qui n'est pas disponible sous Windows), vous aurez un shell joli, incluant la fonctionnalité de complétion (e.g. vous pouvez commencer à taper un nom de variable, taper la touche TABULATION et PHP complètera son nom) et un historique de ce que vous entrez au clavier qui peut être consulté en utilisant les touches fléchées. Cet historique est sauvegardé dans le fichier ~/.php_history.

Note : Les fichiers incluent dans auto_prepend_file et auto_append_file sont analysés dans ce mode avec quelques restrictions - par exemple, les fonctions doivent être définies avant d'être appelées.

-c --php-ini

Avec cette option, vous pouvez spécifier le nom du dossier dans lequel se trouve le fichier php.ini, ou encore vous pouvez spécifier 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 vous ne spécifiez pas cette option, le fichier est recherché dans les endroits par défaut.

-n --no-php-ini

Ignore complètement php.ini. Cette option est disponible depuis PHP 4.3.0.

-d --define

Cette option permet de modifier n'importe quelle directive de configuration du fichier php.ini. La syntaxe est :

-d configuration_directive[=value]

Exemples :

# 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 donné après l'option -f. Cette option est facultative, et peut être omise. Le seul nom du fichier est suffisant.

-h et -? | --help | Avec cette option, vous pouvez obtenir des informations sur la liste courante des options de la ligne de commande, ainsi que leur description.
-i | --info | Cette option 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

Cette option permet de faire une vérification syntaxique sur le code PHP fourni. En cas de réussite, le message No syntax errors detected in <filename> (Aucunes erreurs de syntaxe n'ont été détectées dans <nom_de_fichier> est affiché sur la sortie standard, et le script shell retourne 0. En cas d'erreur, le message Errors parsing <filename> (Erreurs 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 255.

Cette option ne détecte pas les erreurs fatales (par exemple les fonctions non définies). Utilisez -f si vous voulez tester aussi ces erreurs.

Note : Cette option ne fonctionne pas avec l'option -r.

-m --modules

Cette option liste les extensions PHP et Zend compilées (et chargées) :

$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-r --run

Cette option 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 conduisant à une erreur d'analyse :

$ php -r "$foo = get_defined_constants();"
Command line code(1) : Parse error - parse error, unexpected '='
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.
$ 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 vous utilisez un shell différent de sh/bash, vous pouvez rencontrer d'autres problèmes. N'hésitez pas à ouvrir un rapport de bogues à http://bugs.php.net/. Il est toujours très facile d'avoir des problèmes lorsque vous essayez d'inclure des variables shell dans le code, ou d'utiliser les anti-slash pour l'échappement. Vous aurez été prévenu.

Note : -r est disponible avec le CLI SAPI et pas avec le CGI SAPI.

Note : Cette option est utilisée pour des choses vraiment de base. Ainsi, quelques directives de configuration (par exemple auto_prepend_file et auto_append_file) sont ignorées dans ce mode.

-B --process-begin

PHP code to execute before processing stdin. Added in PHP 5.

-R --process-code

Code PHP à exécuter pour chaque ligne en entrée. Ajouté en PHP 5.

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. Ajouté en PHP 5.

-E --process-end

Code PHP à exécuter après avoir effectué l'entrée. Ajouté en PHP 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 --syntax-highlight et --syntax-highlighting

Affiche le code avec la colorisation syntaxique.

Cette option utilise le mécanisme interne pour analyser le fichier, et produire une version colorisée du code source, au format HTML. 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

Affiche les versions de PHP, PHP SAPI, et Zend sur la sortie standard. Par exemple :

$ php -v
PHP 4.3.0 (cli), Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies

-w --strip

Affiche la source sans les commentaires et les espaces.

Note : Cette option ne fonctionne pas avec l'option -r.

-z --zend-extension

Charge une extension Zend. Si et seulement si un fichier est fourni, PHP essaie de charger cette extension dans le dossier courant par défaut des bibliothèque sur votre système (généralement spécifié avec /etc/ld.so.conf sous Linux). 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 indiquera à PHP qu'il doit chercher les extensions uniquement dans ce dossier.

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 (prononcer "shebang") en début de script, de le rendre exécutable de manière à ce que le système sache quel programme doit exécuter le script. Sous Windows, vous pouvez associer l'exécutable php.exe avec le double-clic sur les fichiers d'extension .php, ou bien vous pouvez faire un fichier batch pour exécuter le script grâce à PHP. La première ligne utilisée dans le monde Unix ne perturbera pas l'exécution sous Windows, ce qui rend les scripts facilement portables. Un exemple complet est disponible ci-dessous :

Exemple 43-1. 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];
}
?>

Dans le script ci-dessus, nous utilisons la première ligne pour indiquer que le fichier doit être exécuté par PHP. Nous travaillons avec une version CLI, donc aucun en-tête HTTP n'est affiché. Il y a deux variables que vous pouvez utiliser avec les applications de ligne de commande : $argc et $argv. La première est le nombre d'arguments plus un (le nom du script qui est exécuté). La seconde est un tableau contenant les arguments, commençant avec le nom du script en élément 0 ($argv[0]).

Dans notre exemple, nous avons vérifié qu'il y a plus ou moins d'un argument. De plus, si cet argument est --help, -help, -h ou -?, nous affichons un message d'aide, ainsi que le nom du script. Si nous recevons un autre argument, celui-ci est affiché 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 43-2. Fichier batch pour exécuter un script PHP en ligne de commande (script.bat)

@C:\php\php.exe script.php %1 %2 %3 %4

Si vous avez nommé le programme ci-dessus script.php, et que vous avez votre exécutable php.exe situé à 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 vos applications en ligne de commande.

Précédent | Sommaire | Suivant
Fonctions désactivées par le Safe Mode | Niveau supérieur | Référence des fonctions


Référence des fonctions

Manuel PHP
Précédent Suivant

VI. Référence des fonctions

See also Annexe J.

Table des matières
I. Fonctions .NET
II. Fonctions Apache
III. Alternative PHP Cache
IV. Débogueur avancé pour PHP
V. Tableaux
VI. Aspell (Obsolète)
VII. Nombres de grande taille BCMath
VIII. Compilateur bytecode pour PHP
IX. Compression Bzip2
X. Calendrier
XI. Paiement CCVS (Obsolète)
XII. Classes et Objets
XIII. Fonctions Classkit
XIV. Fonctions ClibPDF
XV. COM et .Net (Windows)
XVI. Crack
XVII. Caractères
XVIII. CURL
XIX. Paiement Cybercash
XX. Fonctions Crédit Mutuel CyberMUT
XXI. Cyrus IMAP
XXII. Dates et heures
XXIII. Fonctions DB++
XXIV. DBA
XXV. dBase
XXVI. DBM (Obsolète)
XXVII. Fonctions dbx
XXVIII. Direct IO
XXIX. Accès aux dossiers
XXX. Fonctions DOM
XXXI. Fonctions DOM XML
XXXII. Fonctions enchant
XXXIII. Gestion des erreurs
XXXIV. EXIF
XXXV. Fonctions Expect
XXXVI. Fonctions de monitorage d'altération de fichiers
XXXVII. Forms Data Format
XXXVIII. Fonctions Fileinfo
XXXIX. Fonctions filePro
XL. Système de fichiers
XLI. Fonctions Filter
XLII. Fonctions Firebird/InterBase
XLIII. Fonctions Firebird/Interbase (PDO_FIREBIRD)
XLIV. Fonctions FriBiDi
XLV. FrontBase
XLVI. Fonctions FTP
XLVII. Fonctions
XLVIII. Fonctions GeoIP
XLIX. Fonctions Gettext
L. Fonctions GMP
LI. gnupg Fonctions
LII. Net_Gopher
LIII. Haru PDF Functions
LIV. Fonctions hash
LV. HTTP
LVI. Hyperwave
LVII. Hyperwave API
LVIII. i18n Fonctions
LIX. Fonctions IBM (PDO_IBM)
LX. Fonctions IBM DB2, Cloudscape et Apache Derby
LXI. ICAP
LXII. Iconv
LXIII. Fonctions ID3
LXIV. Fonctions d'administration d'IIS
LXV. Images
LXVI. Image magick Functions
LXVII. IMAP
LXVIII. Informix
LXIX. Fonctions Informix (PDO_INFORMIX)
LXX. Ingres II
LXXI. IRC
LXXII. Intégration de Java avec PHP
LXXIII. Fonctions JSON
LXXIV. KADM5
LXXV. LDAP
LXXVI. libxml
LXXVII. Lotus Notes
LXXVIII. Fonctions LZF
LXXIX. Mail
LXXX. Traitement d'Email
LXXXI. Mathématiques
LXXXII. MaxDB PHP Extension
LXXXIII. MCAL
LXXXIV. chiffrement mcrypt
LXXXV. Fonctions de paiement MCVE (Monetra)
LXXXVI. Fonctions Memcache
LXXXVII. Hash
LXXXVIII. Fonctions Mimetype
LXXXIX. Ming pour Flash
XC. Fonctions diverses
XCI. mnoGoSearch
XCII. Microsoft SQL Server
XCIII. Microsoft SQL Server et Fonctions Sybase (PDO_DBLIB)
XCIV. Sessions Mohawk
XCV. mSQL
XCVI. Chaînes de caractères multi-octets
XCVII. Fonctions muscat
XCVIII. MySQL
XCIX. Fonctions MySQL (PDO_MYSQL)
C. Extension MySQL améliorée
CI. Fonctions de contrôle d'écran de terminal
CII. Réseau
CIII. Fonctions Newt
CIV. Netscape Server API
CV. agrégation d'objets/Composition de fonctions
CVI. Overload
CVII. Fonctions Oracle
CVIII. Fonctions ODBC (unifiés)
CIX. Fonctions ODBC et DB2 (PDO_ODBC)
CX. oggvorbis
CXI. Gestion Audio OpenAL
CXII. OpenSSL
CXIII. Oracle (Obsolète)
CXIV. Fonctions Oracle (PDO_OCI)
CXV. Bufferisation de sortie
CXVI. Ovrimos SQL
CXVII. Accès aux fichiers Paradox
CXVIII. Fonctions Parsekit
CXIX. Contrôle des processus
CXX. Expressions rationnelles compatibles Perl
CXXI. Fonctions PDF
CXXII. Fonctions PDO
CXXIII. Phar archive stream and classes
CXXIV. Options PHP et informations
CXXV. Fonctions POSIX
CXXVI. Expressions rationnelles
CXXVII. PostgreSQL
CXXVIII. Fonctions PostgreSQL (PDO_PGSQL)
CXXIX. Impression
CXXX. Exécution de programmes externes
CXXXI. Création de document PostScript
CXXXII. Pspell
CXXXIII. qtdom
CXXXIV. Radius
CXXXV. Rar
CXXXVI. Readline (GNU)
CXXXVII. Recode (GNU)
CXXXVIII. Fonctions Lecture d'En-tête RPM
CXXXIX. Fonctions runkit
CXL. SAM - Messagerie asynchrone
CXLI. Extension client Satellite CORBA (Obsolète)
CXLII. SCA Functions
CXLIII. Fonctions SDO
CXLIV. Fonctions de Service d'Accès de Données SDO XML
CXLV. Fonctions SDO Relationnel Service d'Accès de Données
CXLVI. Sémaphores et gestion de la mémoire partagée
CXLVII. SESAM
CXLVIII. Sauvegarde d'Identifiant de session PostgreSQL
CXLIX. Sessions
CL. Mémoire partagée
CLI. Fonctions SimpleXML
CLII. Fonctions SNMP
CLIII. Fonctions SOAP
CLIV. Sockets
CLV. Fonctions Standard PHP Library (SPL)
CLVI. Fonctions SQLite
CLVII. Fonctions SQLite (PDO_SQLITE)
CLVIII. Shell2 sécurisé
CLIX. Fonctions statistics
CLX. Flux
CLXI. Chaînes de caractères (Strings)
CLXII. Shockwave Flash
CLXIII. Swish Functions
CLXIV. Sybase
CLXV. Fonctions TCP Wrappers
CLXVI. Tidy
CLXVII. Analyseur de code PHP
CLXVIII. Unicode Functions
CLXIX. URL
CLXX. Fonctions de gestion des variables
CLXXI. Paiement par Verisign
CLXXII. vpopmail
CLXXIII. API windows
CLXXIV. WDDX
CLXXV. Fonctions win32ps
CLXXVI. Fonctions win32service
CLXXVII. Fonctions xattr
CLXXVIII. Fonctions xdiff
CLXXIX. Analyseur syntaxique XML
CLXXX. XML-RPC
CLXXXI. XMLReader functions
CLXXXII. Fonctions XMLWriter
CLXXXIII. XSL
CLXXXIV. XSLT
CLXXXV. YAZ
CLXXXVI. NIS
CLXXXVII. Fonctions ZIP
CLXXXVIII. Compression Zlib

Précédent | Sommaire | Suivant
Utiliser PHP en ligne de commande |  | Fonctions .NET


Fonctions Apache

Manuel PHP
Précédent Suivant

II. Fonctions Apache

Introduction

Ces fonctions sont disponibles lorsque PHP est utilisé comme module Apache.

Note : Depuis PHP 4.3.2, la variable serveur PATH_TRANSLATED n'est plus configurée automatiquement sous Apache 2 SAPI au contraire de la situation dans Apache 1, où elle est configurée à la même valeur que la variable serveur SCRIPT_FILENAME lorsqu'elle n'est pas peuplée par Apache. Cette modification a été apportée pour être conforme aux spécifications CGI qui font que la variable serveur PATH_TRANSLATED doit uniquement exister que si PATH_INFO est définie.

Les utilisateurs d'Apache 2 devraient utiliser AcceptPathInfo = On au lieu de httpd.conf pour définir PATH_INFO.

Installation

Pour l'installation de PHP sous Apache, lisez le chapitre d'installation.

Configuration à l'exécution

Le comportement du module PHP d'Apache est configurable 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

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
engine | "1" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
child_terminate | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
last_modified | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
xbit_hack | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

engine booléen

Active ou non l'interpréteur PHP. Cette directive est utile uniquement pour le module Apache. Elle est utilisée par les sites qui souhaitent activer ou désactiver 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 désactivé.

child_terminate boolean

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 boolean

Envoie la date de modification des scripts PHP dans l'en-tête HTTP Last-Modified:.

xbithack boolean

Analyse avec PHP les fichiers exécutables, indépendamment de leur extension.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
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 -- Obtient une variable subprocess_env d'Apache
apache_lookup_uri -- Effectue une requête partielle pour l'URI spécifiée et renvoie toutes les informations
apache_note -- Affiche ou affecte le paramètre "apache request notes"
apache_request_headers -- Récupère tous les en-têtes HTTP de la requête
apache_reset_timeout -- Remet à sa position initiale le temporisateur d'Apache
apache_response_headers -- Récupère tous les en-têtes de réponse HTTP
apache_setenv -- Modifie une variable de subprocess_env Apache
ascii2ebcdic -- Transforme une chaîne ASCII en EBCDIC
ebcdic2ascii -- Transforme une chaîne EBCDIC en ASCII
getallheaders -- Récupère tous les en-têtes de la requête HTTP
virtual -- Effectue une sous-requête Apache

Précédent | Sommaire | Suivant
dotnet_load | Niveau supérieur | apache_child_terminate


apache_child_terminate

(PHP 4 >= 4.0.5, PHP 5)

apache_child_terminate -- Termine le processus apache après cette requête

Description

bool apache_child_terminate ( void )

apache_child_terminate() va programmer le processus Apache pour qu'il se termine une fois que la requête PHP courante sera finie. Cela peut servir à terminer un processus après un script qui aurait consommé beaucoup de mémoire. En effet, la mémoire est généralement libérée de manière interne, mais pas rendue au système.

Valeurs de retour

Retourne TRUE si PHP fonctionne en tant que module sur Apache 1, que la version d'Apache ne soit pas multi-threadée et que la directive PHP child_terminate est activée (désactivée par défaut). Si ces conditions ne sont pas respectées, FALSE est retourné et une erreur de niveau E_WARNING est générée.

Notes

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi

exit()

Précédent | Sommaire | Suivant
Fonctions Apache | Niveau supérieur | apache_get_modules


apache_get_modules

(PHP 4 >= 4.3.2, PHP 5)

apache_get_modules -- Retourne la liste des modules Apache chargés

Description

array apache_get_modules ( void )

Retourne la liste des modules Apache chargés.

Valeurs de retour

Un tableau des modules Apache chargés.

Historique

Version | Description
5.0.0 | Cette fonction est devenu disponible lors de l'utilisation d'Apache 1 ou de l'API filtre PHP Apache 2. Avant ce temps, elle n'était disponible qu'en utilisant l'API ressource d'Apache 2.

Exemples

Exemple 1. Exemple avec apache_get_modules()

<?php
print_r(apache_get_modules());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => core
    [1] => http_core
    [2] => mod_so
    [3] => sapi_apache2
    [4] => mod_mime
    [5] => mod_rewrite
)

Précédent | Sommaire | Suivant
apache_child_terminate | Niveau supérieur | apache_get_version


apache_get_version

(PHP 4 >= 4.3.2, PHP 5)

apache_get_version -- Récupère la version d'Apache

Description

string apache_get_version ( void )

Récupère la version d'Apache.

Valeurs de retour

Retourne la version d'Apache en cas de réussite ou FALSE en cas d'échec.

Historique

Version | Description
4.3.4 | Devenue disponible avec Apache 1.
5.0.0 | Devenue disponible avec l'API filtre d'Apache 2.

Exemples

Exemple 1. Exemple avec apache_get_version()

<?php
$version = apache_get_version();
echo "$version\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Apache/1.3.29 (Unix) PHP/4.3.4

Voir aussi

phpinfo()

Précédent | Sommaire | Suivant
apache_get_modules | Niveau supérieur | apache_getenv


apache_getenv

(PHP 4 >= 4.3.0, PHP 5)

apache_getenv -- Obtient une variable subprocess_env d'Apache

Description

string apache_getenv ( string variable [, bool walk_to_top] )

Récupère une variable d'environnement d'Apache comme spécifié par variable.

Cette fonction requiert Apache 2, autrement elle est indéfinie.

Liste de paramètres

variable

La variable d'environnement Apache.

walk_to_top

Si passé à TRUE, récupération de la variable de haut niveau disponible pour toutes les couches d'Apache.

Valeurs de retour

La valeur de la variable d'environnement d'Apache en cas de réussite ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec apache_getenv()

L'exemple suivant montre comment récupérer la valeur d'une variable d'environnement d'Apache qui est SERVER_ADDR.

<?php
$ret = apache_getenv("SERVER_ADDR");
echo $ret;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

42.24.42.240

Voir aussi

apache_setenv()
getenv()
Superglobales

Précédent | Sommaire | Suivant
apache_get_version | Niveau supérieur | apache_lookup_uri


apache_lookup_uri

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

apache_lookup_uri -- Effectue une requête partielle pour l'URI spécifiée et renvoie toutes les informations

Description

object apache_lookup_uri ( string filename )

apache_lookup_uri() effectue une requête partielle pour l'URI spécifiée. Cette requête permet de récupérer toutes les informations importantes à propos de la ressource concernée.

Cette fonction n'est supportée que si PHP est installé en tant que 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

Exemples

Exemple 1. Exemple avec apache_lookup_uri()

<?php
$info = apache_lookup_uri('index.php?var=value');
print_r($info);

if (file_exists($info->filename)) {
    echo 'le fichier existe !';
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

stdClass Object
(
    [status] => 200
    [the_request] => GET /dir/file.php HTTP/1.1
    [method] => GET
    [mtime] => 0
    [clength] => 0
    [chunked] => 0
    [content_type] => application/x-httpd-php
    [no_cache] => 0
    [no_local_copy] => 1
    [unparsed_uri] => /dir/index.php?var=value
    [uri] => /dir/index.php
    [filename] => /home/htdocs/dir/index.php
    [args] => var=value
    [allowed] => 0
    [sent_bodyct] => 0
    [bytes_sent] => 0
    [request_time] => 1074282764
)
le fichier existe !

Précédent | Sommaire | Suivant
apache_getenv | Niveau supérieur | apache_note


apache_note

(PHP 3 >= 3.0.2, PHP 4, PHP 5)

apache_note -- Affiche ou affecte le paramètre "apache request notes"

Description

string apache_note ( string note_name [, string note_value] )

apache_note() est une fonction spécifique au serveur Apache. Cette fonction affecte ou renvoie la valeur de la variable contenue dans la table notes d'Apache.

Liste de paramètres

note_name

Le nom de la note.

note_value

La valeur de la note.

Valeurs de retour

Si la fonction est appelée avec un argument, elle renvoie la valeur courante de la variable note_name. Si apache_note() est appelée avec deux arguments, apache_note() affecte à la note note_value la valeur note_name et apache_note() retournera la valeur précédente de la variable note_name. Si la note ne peut être récupérée, FALSE est retourné.

Précédent | Sommaire | Suivant
apache_lookup_uri | Niveau supérieur | apache_request_headers


apache_request_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_request_headers -- Récupère tous les en-têtes HTTP de la requête

Description

array apache_request_headers ( void )

Récupère tous les en-têtes HTTP de la requête.

Cette fonction n'est supportée que si PHP est installé en tant que module d'Apache.

Valeurs de retour

Un tableau associatif avec tous les en-têtes HTTP de la requête courante ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec apache_request_headers()

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
Host: www.example.com
Connection: Keep-Alive

Notes

Note :
    Avant la version PHP 4.3.0, apache_request_headers()
    était appelée getallheaders(). Depuis PHP 4.3.0,
    getallheaders() est un alias de
    apache_request_headers().

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.

Note : Depuis PHP 4.3.3, vous pouvez utiliser cette fonction avec le module NSAPI des serveurs Netscape/iPlanet/SunONE.

Voir aussi

apache_response_headers()

Précédent | Sommaire | Suivant
apache_note | Niveau supérieur | apache_reset_timeout


apache_reset_timeout

(no version information, might be only in CVS)

apache_reset_timeout -- Remet à sa position initiale le temporisateur d'Apache

Description

bool apache_reset_timeout ( void )

apache_reset_timeout() remet à sa position initiale le temporisateur d'Apache, qui vaut par défaut 300 secondes. Avec des appels à set_time_limit(0); ignore_user_abort(true) et des appels périodiques à apache_reset_timeout(), Apache peut, théoriquement, fonctionner sans arrêt.

Cette fonction nécessite Apache 1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction est désactivée par le safe-mode

Précédent | Sommaire | Suivant
apache_request_headers | Niveau supérieur | apache_response_headers


apache_response_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_response_headers -- Récupère tous les en-têtes de réponse HTTP

Description

array apache_response_headers ( void )

Récupère tous les en-têtes de réponse HTTP.

Valeurs de retour

Un tableau de tous les en-têtes de réponse d'Apache en cas de réussite ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec apache_response_headers()

<?php
print_r(apache_response_headers());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [Accept-Ranges] => bytes
    [X-Powered-By] => PHP/4.3.8
)

Notes

Note : Depuis PHP 4.3.3, vous pouvez utiliser cette fonction avec le module NSAPI des serveurs Netscape/iPlanet/SunONE.

Voir aussi

apache_request_headers()
headers_sent()

Précédent | Sommaire | Suivant
apache_reset_timeout | Niveau supérieur | apache_setenv


apache_setenv

(PHP 4 >= 4.2.0, PHP 5)

apache_setenv -- Modifie une variable de subprocess_env Apache

Description

bool apache_setenv ( string variable, string value [, bool walk_to_top] )

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, FALSE en cas d'échec.

Exemples

Exemple 1. Modification d'une variable d'environnement d'Apache avec apache_setenv()

<?php
apache_setenv("EXAMPLE_VAR", "Example Value");
?>

Notes

Note : apache_setenv() peut être utilisée conjointement à apache_getenv() à travers plusieurs pages ou pour définir des variables à passer aux includes coté serveur (.shtml) qui ont été incluses dans les scripts PHP.

Voir aussi

apache_getenv()

Précédent | Sommaire | Suivant
apache_response_headers | Niveau supérieur | ascii2ebcdic


ascii2ebcdic

(PHP 3 >= 3.0.17)

ascii2ebcdic -- Transforme une chaîne ASCII en EBCDIC

Description

int ascii2ebcdic ( string ascii_str )

ascii2ebcdic() est une fonction spécifique à Apache, qui n'est disponible que sur les systèmes d'exploitation qui gèrent le format EBCDIC (OS/390, BS2000). Elle traduit la chaîne ASCII ascii_str en son équivalent EBCDIC (avec protection des données binaires) et retourne le résultat.

Liste de paramètres

ascii_str

La chaîne ASCII qui sera transformée.

Valeurs de retour

Une représentation EBCDIC d'une chaîne ASCII.

Voir aussi

ebcdic2ascii()

Précédent | Sommaire | Suivant
apache_setenv | Niveau supérieur | ebcdic2ascii


ebcdic2ascii

(PHP 3 >= 3.0.17)

ebcdic2ascii -- Transforme une chaîne EBCDIC en ASCII

Description

int ebcdic2ascii ( string ebcdic_str )

ebcdic2ascii() est une fonction spécifique à Apache, qui n'est disponible que sur les OS qui gèrent le format EBCDIC (OS/390, BS2000). Elle traduit la chaîne EBCDIC ebcdic_str en son équivalent ASCII (avec protection des données binaires) et retourne le résultat.

Liste de paramètres

ebcdic_str

La chaîne EBCDIC qui sera transformée.

Valeurs de retour

Une représentation ASCII d'une chaîne EBCDIC.

Voir aussi

ascii2ebcdic()

Précédent | Sommaire | Suivant
ascii2ebcdic | Niveau supérieur | getallheaders


getallheaders

(PHP 3, PHP 4, PHP 5)

getallheaders -- Récupère tous les en-têtes de la requête HTTP

Description

array getallheaders ( void )

Récupère tous les en-têtes de la requête HTTP.

Cette fonction est un alias pour apache_request_headers(). Lisez la documentation de apache_request_headers() pour plus d'informations sur le fonctionnement de cette fonction.

Cette fonction n'est supportée que si PHP est installé en tant que module d'Apache.

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
4.3.0 | Devenue un alias pour apache_request_headers(). Essentiellement, cette fonction est renommée. Cela est dû à la fonction qui ne fonctionne que sous Apache.

Notes

Note : Depuis PHP 4.3.3, vous pouvez utiliser cette fonction avec le module NSAPI des serveurs Netscape/iPlanet/SunONE.

Voir aussi

apache_response_headers()

Précédent | Sommaire | Suivant
ebcdic2ascii | Niveau supérieur | virtual


virtual

(PHP 3, PHP 4, PHP 5)

virtual -- Effectue une sous-requête Apache

Description

bool virtual ( string filename )

virtual() est une fonction spécifique au serveur Apache. Elle est similaire à la directive "<!--#include virtual...-->" lorsque vous utilisez le 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 au navigateur, les en-têtes restants le sont aussi.

Liste de paramètres

filename

Le fichier sur lequel la commande virtuelle sera effectuée.

Valeurs de retour

Exécute une commande virtuelle en cas de succès ou retourne FALSE en cas d'échec.

Historique

Version | Description
4.0.6 | Cette fonction peut être utilisée sur des fichiers PHP. Toutefois, il est conseillé d'utiliser les fonctions include() et require() pour les fichiers PHP.

Notes

Avertissement

La chaîne requise peut être passée au fichier inclus mais $_GET est copié depuis le script parent et uniquement $_SERVER['QUERY_STRING'] est transmis 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 : Depuis PHP 4.3.3, vous pouvez utiliser cette fonction avec le module NSAPI des serveurs Netscape/iPlanet/SunONE.

Précédent | Sommaire | Suivant
getallheaders | Niveau supérieur | Alternative PHP Cache


Débogueur avancé pour PHP

Manuel PHP
Précédent Suivant

IV. Débogueur avancé pour PHP

Introduction

APD est un débogueur avancé pour PHP (Advanced PHP Debugger). Il a été écrit pour fournir des capacités de profilage et de déboguage du code PHP tout comme la possibilité d'afficher un retour de trace de la pile. APD supporte le débogage interactif, mais, par défaut, il écrit les données dans des fichiers de trace. APD fournit également la notation basée par événement, de sorte que les niveaux d'information (incluant les appels de fonctions, le passage d'arguments, le délai d'exécution, etc.) peuvent être activés ou non pour chaque script.

Attention

APD est une extension Zend, qui modifie la façon interne de gestion des appels de fonctions PHP et peut ou ne pas être compatible avec d'autres extensions Zend (par exemple avec le Zend Optimizer).

Installation

APD est actuellement disponible en tant qu'extension PECL depuis http://pecl.php.net/package/apd. Assurez-vous d'avoir installé la version CGI de PHP et qu'elle soit disponible dans votre PATH courant tout au long de votre script PHP.

Exécutez la commande suivante pour télécharger, construire et installer la dernière version stable d'APD :

pear install apd

Ceci installera automatiquement le module APD Zend dans votre dossier d'extensions de PHP. Il n'est pas obligatoire de le conserver à cet endroit ; vous pouvez stocker le module dans n'importe quel dossier que PHP peut lire, à partir du moment où vous paramétrez correctement le paramètre zend_extension.

Les utilisateurs de Windows peuvent télécharger la bibliothèque dll php_apd.dll depuis http://snaps.php.net/win32/PECL_STABLE/.

Dans votre fichier INI, ajoutez les lignes suivantes :

zend_extension = /chemin/absolu/vers/apd.so
apd.dumpdir = /chemin/absolu/vers/dossier/trace
apd.statement_tracing = 0

En fonction de votre installation de PHP, le dossier zend_extension peut être l'un de la liste suivante :

zend_extension              (non ZTS, non debug build)
zend_extension_ts           (    ZTS, non debug build)
zend_extension_debug        (non ZTS,     debug build)
zend_extension_debug_ts     (    ZTS,     debug build)

Compilation sous un environnement Win32

Pour compiler APD sous Windows, vous avez besoin d'un environnement de compilation PHP comme décrit sur http://php.net/ -- simplement, cela nécessite que vous possédiez Microsoft Visual C++, win32build.zip, bison/flex certains savent comment les récupérer et les faire fonctionner. Assurez-vous également que adp.dsp a bien des fins de lignes façon DOS ; si les fins de lignes sont du style Unix, Microsoft Visual C++ vous le fera remarquer.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. APD Configuration Options

Nom | Par défaut | Modifiable | Historique
apd.dumpdir | NULL | PHP_INI_ALL |
apd.statement-tracing | "0" | PHP_INI_ALL |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

apd.dumpdir chaîne de caractères

Spécifie le dossier dans lequel APD écrit les fichiers de profilage. Vous pouvez spécifier un chemin absolu ou relatif.

Vous pouvez spécifier un dossier différent comme argument de apd_set_pprof_trace().

apd.statement_tracing boolean

Active ou désactive les traces à la ligne. En activant cette option (valeur de 1), l'application sera considérablement ralentie.

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.

Tableau 2. Constantes APD

Constante | Valeur | Description
FUNCTION_TRACE (entier) | 1 |
ARGS_TRACE (entier) | 2 |
ASSIGNMENT_TRACE (entier) | 4 |
STATEMENT_TRACE (entier) | 8 |
MEMORY_TRACE (entier) | 16 |
TIMING_TRACE (entier) | 32 |
SUMMARY_TRACE (entier) | 64 |
ERROR_TRACE (entier) | 128 |
PROF_TRACE (entier) | 256 |
APD_VERSION (string) | exemple : 1.0.2-dev |

Comment utiliser APD dans vos scripts ?

  1. À la première ligne de vos scripts PHP, appelez la fonction apd_pprof_trace() pour commencer la trace :

    apd_set_pprof_trace();

    Vous pouvez ajouter cette ligne n'importe où dans votre script, mais si vous ne commencez pas à tracer au début de votre script, vous désactivez les données de profil qui pourraient autrement vous mener à un goulot d'étranglement d'exécution.

  2. Maintenant, exécutez votre script. Le contenu de la sortie devrait être écrit dans le fichier apd.dumpdir/pprof_pid.ext.

    Astuce : Si vous utilisez la version CGI de PHP, vous devez ajouter le flag '-e' pour activer les informations étendues afin que apd fonctionne correctement. Par exemple : php -e -f script.php

  3. Pour afficher les données de profil formatées, exécutez la commande pprofp avec les options de tri et d'affichage de votre choix. L'affichage formaté pourra ressembler à cela :

    bash-2.05b$ pprofp -R /tmp/pprof.22141.0

Trace for /home/dan/testapd.php
Total Elapsed Time = 0.00
Total System Time  = 0.00
Total User Time    = 0.00

Real         User        System             secs/    cumm
%Time (excl/cumm)  (excl/cumm)  (excl/cumm) Calls    call    s/call  Memory Usage Name
--------------------------------------------------------------------------------------
100.0 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0000   0.0009            0 main
56.9 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0005   0.0005            0 apd_set_pprof_trace
28.0 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 preg_replace
14.3 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 str_replace

    L'option -R utilisée dans cet exemple trie la table de profil par la durée réelle qu'une fonction donnée coûte au script. La colonne "cumm call" révèle le nombre d'appels de chaque fonction et la colonne "s/call", le nombre de secondes que chaque appel à la fonction nécessite, en moyenne.

  4. Pour générer un fichier d'appel sous forme d'arbre que vous pourrez importer dans l'application KCacheGrind (application d'analyse de profile), exécutez la commande pprof2calltree.

Informations de contact

Si vous avez des commentaires, des corrections de bogues ou si vous voulez développer des améliorations pour cette extension, vous pouvez envoyer un email à apd@mail.communityconnect.com. Toute aide est vraiment la bienvenue.

Table des matières
apd_breakpoint -- Stoppe l'interpréteur et attend un CR depuis la socket
apd_callstack -- Retourne la pile d'appel courante dans un tableau
apd_clunk -- Lance une alerte et un callstack
apd_continue -- Redémarre l'interpréteur
apd_croak -- Lance une erreur, un callstack et sort
apd_dump_function_table -- Affiche la table courante de fonction
apd_dump_persistent_resources -- Retourne toutes les ressources persistantes dans un tableau
apd_dump_regular_resources -- Retourne toutes les ressources régulières courantes dans un tableau
apd_echo -- Ecrit dans la socket de débogage
apd_get_active_symbols -- Récupère un tableau contenant les noms de variables courantes de portées locales
apd_set_pprof_trace -- Démarre la session de débogage APD
apd_set_session_trace -- Démarre la session de débogage
apd_set_session -- Modifie ou définit le degré de débogage courant
apd_set_socket_session_trace -- Démarre la session de débogage à distance
override_function -- Dépasse les fonctions intégrées
rename_function -- Renomme une fonction intégrée dans la table des fonctions globales

Précédent | Sommaire | Suivant
apc_store | Niveau supérieur | apd_breakpoint


apd_breakpoint

(PECL)

apd_breakpoint -- Stoppe l'interpréteur et attend un CR depuis la socket

Description

bool apd_breakpoint ( int debug_level )

apd_breakpoint() peut être utilisé pour stopper l'exécution de votre script PHP et attend les réponses depuis la socket connectée. Pour reprendre l'exécution du programme, appuyez juste sur enter (une ligne vide) ou entrez une commande PHP à exécuter.

Liste de paramètres

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Session typique utilisant tcplisten

bash#tcplisten localhost 7777

APD - Advanced PHP Debugger Trace File
---------------------------------------------------------------------------
Process Pid (6118)
Trace Begun at Sun Mar 10 23:13:12 2002
---------------------------------------------------------------------------
(  0.000000): apd_set_session_trace called at /home/alan/Projects/project2/test.
php:5
(  0.074824): apd_set_session_trace_socket() at /home/alan/Projects/project2/tes
t.php:5 returned.  Elapsed (0.074824)
(  0.074918): apd_breakpoint() /home/alan/Projects/project2/test.php:7
              ++ argv[0] $(??) = 9
apd_breakpoint() at /home/alan/Projects/project2/test.php:7 returned.  Elapsed (
-2089521468.1073275368)
>\n
statement: /home/alan/Projects/project2/test.php:8
>\n
statement: /home/alan/Projects/project2/test.php:8
>\n
statement: /home/alan/Projects/project2/test.php:10
>apd_echo($i);
EXEC: apd_echo($i);
0
>apd_echo(serialize(apd_get_active_symbols()));
EXEC:  apd_echo(serialize(apd_get_active_symbols()));
a:47:{i:0;s:4:"PWD";i:1;s:10:"COLORFGBG";i:2;s:11:"XAUTHORITY";i:3;s:14:"
COLORTERM_BCE";i:4;s:9:"WINDOWID";i:5;s:14:"ETERM_VERSION";i:6;s:16:"SE
SSION_MANAGER";i:7;s:4:"PS1";i:8;s:11:"GDMSESSION";i:9;s:5:"USER";i:10;s:5:"
MAIL";i:11;s:7:"OLDPWD";i:12;s:5:"LANG";i:13;s:10:"COLORTERM";i:14;s:8:"DISP
LAY";i:15;s:8:"LOGNAME";i:16;s:6:"
>apd_echo(system('ls /home/mydir'));

>apd_continue(0);

Précédent | Sommaire | Suivant
Débogueur avancé pour PHP | Niveau supérieur | apd_callstack


apd_callstack

(no version information, might be only in CVS)

apd_callstack -- Retourne la pile d'appel courante dans un tableau

Description

array apd_callstack ( void )

apd_callstack() retourne la pile d'appel courante dans un tableau d'éléments.

Valeurs de retour

Un tableau contenant la pile d'appel courante.

Exemples

Exemple 1. Exemple avec apd_callstack()

<?php
print_r(apd_callstack());
?>

Précédent | Sommaire | Suivant
apd_breakpoint | Niveau supérieur | apd_clunk


apd_clunk

(no version information, might be only in CVS)

apd_clunk -- Lance une alerte et un callstack

Description

void apd_clunk ( string warning [, string delimiter] )

apd_clunk() fonctionne de la même façon que son homologue Perl Carp::cluck. apd_clunk() lance une alerte et un callstack en utilisant le paramètre delimiter comme délimiteur.

Liste de paramètres

warning

L'alerte à lancer.

delimiter

Le délimiteur. Par défaut, <BR />.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Exemple avec apd_clunk()

<?php
apd_clunk("Quelques alertes", "<br/>");
?>

Voir aussi

apd_croak()

Précédent | Sommaire | Suivant
apd_callstack | Niveau supérieur | apd_continue


apd_continue

(PECL)

apd_continue -- Redémarre l'interpréteur

Description

bool apd_continue ( int debug_level )

apd_continue() envoie une instruction à la socket pour redémarrer l'interpréteur.

Liste de paramètres

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec apd_continue()

<?php
apd_continue(0);
?>

Précédent | Sommaire | Suivant
apd_clunk | Niveau supérieur | apd_croak


apd_croak

(no version information, might be only in CVS)

apd_croak -- Lance une erreur, un callstack et sort

Description

void apd_croak ( string warning [, string delimiter] )

apd_croak() fonctionne comme son homologue Perl Carp::croak. apd_croak() lance une erreur, un callstack et sort.

Liste de paramètres

warning

L'alerte à lancer.

delimiter

Le délimiteur. Par défaut, <BR />.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Exemple avec apd_croak()

<?php
apd_croak("Quelques alertes","<P>");
?>

Voir aussi

apd_clunk()

Précédent | Sommaire | Suivant
apd_continue | Niveau supérieur | apd_dump_function_table


apd_dump_function_table

(no version information, might be only in CVS)

apd_dump_function_table -- Affiche la table courante de fonction

Description

void apd_dump_function_table ( void )

apd_dump_function_table() affiche la table courante de fonction.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Exemple avec apd_dump_function_table()

<?php
apd_dump_function_table();
?>

Précédent | Sommaire | Suivant
apd_croak | Niveau supérieur | apd_dump_persistent_resources


apd_dump_persistent_resources

(no version information, might be only in CVS)

apd_dump_persistent_resources -- Retourne toutes les ressources persistantes dans un tableau

Description

array apd_dump_persistent_resources ( void )

apd_dump_persistent_resources() retourne toutes les ressources persistantes dans un tableau.

Valeurs de retour

Un tableau contenant toutes les ressources persistantes.

Exemples

Exemple 1. Exemple avec apd_dump_persistent_resources()

<?php
print_r(apd_dump_persistent_resources());
?>

Voir aussi

apd_dump_regular()

Précédent | Sommaire | Suivant
apd_dump_function_table | Niveau supérieur | apd_dump_regular_resources


apd_dump_regular_resources

(no version information, might be only in CVS)

apd_dump_regular_resources -- Retourne toutes les ressources régulières courantes dans un tableau

Description

array apd_dump_regular_resources ( void )

Retourne toutes les ressources régulières courantes dans un tableau.

Valeurs de retour

Un tableau contenant les ressources régulières courantes.

Exemples

Exemple 1. Exemple avec apd_dump_regular_resources()

<?php
print_r(apd_dump_regular_resources());
?>

Voir aussi

apd_dump_persistent_resources()

Précédent | Sommaire | Suivant
apd_dump_persistent_resources | Niveau supérieur | apd_echo


apd_echo

(PECL)

apd_echo -- Ecrit dans la socket de débogage

Description

bool apd_echo ( string output )

apd_echo() envoie via la socket une demande d'information concernant le script exécuté.

Liste de paramètres

output

La variable de débogage.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec apd_echo()

<?php
apd_echo($i);
?>

Précédent | Sommaire | Suivant
apd_dump_regular_resources | Niveau supérieur | apd_get_active_symbols


apd_get_active_symbols

(no version information, might be only in CVS)

apd_get_active_symbols -- Récupère un tableau contenant les noms de variables courantes de portées locales

Description

array apd_get_active_symbols ( void )

apd_get_active_symbols() récupère les noms de toutes les variables définies dans le contexte actif (et non leurs valeurs).

Valeurs de retour

Un tableau multidimensionnel contenant toutes les variables.

Exemples

Exemple 1. Exemple avec apd_get_active_symbols()

<?php
apd_echo(apd_get_active_symbols());
?>

Précédent | Sommaire | Suivant
apd_echo | Niveau supérieur | apd_set_pprof_trace


apd_set_pprof_trace

(PECL)

apd_set_pprof_trace -- Démarre la session de débogage APD

Description

void apd_set_pprof_trace ( [string dump_directory] )

apd_set_pprof_trace() démarre la session de débogage dans le dossier dump_directory/pprof_{process_id}.

Liste de paramètres

dump_directory

Le dossier dans lequel le fichier sera écrit. S'il n'est pas fourni, la directive apd.dumpdir du php.ini sera utilisée.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Exemple avec apd_set_pprof_trace()

<?php
apd_set_pprof_trace();
?>

Voir aussi

apd_set_session_trace()

Précédent | Sommaire | Suivant
apd_get_active_symbols | Niveau supérieur | apd_set_session_trace


apd_set_session_trace

(no version information, might be only in CVS)

apd_set_session_trace -- Démarre la session de débogage

Description

void apd_set_session_trace ( int debug_level [, string dump_directory] )

apd_set_session_trace() démarre le débogage de {dump_directory}/apd_dump_{process_id}.

Liste de paramètres

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

dump_directory

Le dossier dans lequel le fichier sera écrit. S'il n'est pas défini, la valeur du paramètre de configuration apd.dumpdir du php.ini sera utilisée.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. apd_set_session_trace() example

<?php
apd_set_session_trace(99);
?>

Précédent | Sommaire | Suivant
apd_set_pprof_trace | Niveau supérieur | apd_set_session


apd_set_session

(no version information, might be only in CVS)

apd_set_session -- Modifie ou définit le degré de débogage courant

Description

void apd_set_session ( int debug_level )

apd_set_session() peut être utilisé pour augmenter ou diminuer le degré de débogage dans un endroit particulier de votre application.

Liste de paramètres

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Exemple avec apd_set_session()

<?php
apd_set_session(9);
?>

Précédent | Sommaire | Suivant
apd_set_session_trace | Niveau supérieur | apd_set_socket_session_trace


apd_set_socket_session_trace

(no version information, might be only in CVS)

apd_set_socket_session_trace -- Démarre la session de débogage à distance

Description

bool apd_set_socket_session_trace ( string tcp_server, int socket_type, int port, int debug_level )

apd_set_socket_session_trace() se connecte au serveur tcp (e.g. tcplisten) spécifié par l'IP ou une socket Unix (comme un fichier) et envoie des données de débogage à la socket.

Liste de paramètres

tcp_server

IP ou socket Unix Domain (comme un fichier) du serveur TCP.

socket_type

Peut être AF_UNIX pour un fichier basé sur les sockets, ou APD_AF_INET pour un standard tcp/ip.

port

Vous pouvez utiliser n'importe quel port en le spécifiant dans le paramètre port mais les nombres les plus élevés sont meilleurs que les nombres plus petits qui peuvent être utilisés par d'autres services du système.

debug_level

Un entier qui est formé en ajoutant les constantes XXX_TRACE.

Il n'est pas recommandé d'utiliser MEMORY_TRACE. C'est très lent et ne semble pas être précis. ASSIGNMENT_TRACE n'est actuellement pas implémenté.

Pour activer toutes les traces fonctionnelles (TIMING, FUNCTIONS, ARGS SUMMARY (comme strace -c)), utilisez la valeur 99

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec apd_set_socket_session_trace()

<?php
  apd_set_socket_session_trace("127.0.0.1",APD_AF_INET,7112,0);
?>

Précédent | Sommaire | Suivant
apd_set_session | Niveau supérieur | override_function


override_function

(PECL)

override_function -- Dépasse les fonctions intégrées

Description

bool override_function ( string function_name, string function_args, string function_code )

override_function() dépasse les fonctions intégrées (les remplace dans la table des symboles).

Liste de paramètres

function_name

La fonction à dépasser.

function_args

Les arguments de la fonction, séparés par une virgule.

Habituellement, vous voudriez passer ce paramètre, tout comme le paramètre function_code, délimité par un guillemet simple. La raison pour laquelle on utilise un guillemet simple est pour protéger le nom de la variable lors de l'analyse, sinon, si vous utilisez des guillemets doubles, il devient nécessaire d'échapper le nom de la variable, e.g. \$votre_variable.

function_code

Le nouveau code pour la fonction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec override_function()

<?php
override_function('test', '$a,$b', 'echo "DOING TEST"; return $a * $b;');
?>

Précédent | Sommaire | Suivant
apd_set_socket_session_trace | Niveau supérieur | rename_function


rename_function

(PECL)

rename_function -- Renomme une fonction intégrée dans la table des fonctions globales

Description

bool rename_function ( string original_name, string new_name )

rename_function() renomme une fonction intégrée dans la table des fonctions globale. Utile pour dépasser une fonction intégrée temporairement.

Liste de paramètres

original_name

Le nom original de la fonction.

new_name

Le nouveau nom pour la fonction original_name.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec rename_function()

<?php
rename_function('mysql_connect', 'debug_mysql_connect' );
?>

Précédent | Sommaire | Suivant
override_function | Niveau supérieur | Tableaux


Tableaux

Manuel PHP
Précédent Suivant

V. Tableaux

Introduction

Ces fonctions vous permettent de manipuler et de traiter les tableaux de nombreuses façons. Les tableaux sont très efficaces dès qu'il s'agit de stocker, gérer et traiter des données en groupe.

Les tableaux simples et multi-dimensionnels sont supportés et peuvent être créés par l'utilisateur, ou par une fonction. Il y a des fonctions spécifiques qui remplissent des tableaux à partir de résultats de requêtes, et de nombreuses fonctions retournent un tableau.

Reportez-vous à la section tableaux du manuel pour des explications détaillées sur l'implémentation des tableaux en PHP. Voyez aussi les opérateurs de tableaux pour d'autres moyens de manipulations.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

CASE_LOWER (integer)

CASE_LOWER est utilisée avec array_change_key_case() et sert à convertir tous les index d'un tableau en minuscules. C'est aussi le comportement par défaut de array_change_key_case().

CASE_UPPER (integer)

CASE_UPPER est utilisée avec array_change_key_case() et sert à convertir tous les index d'un tableau en majuscules.

Constantes d'ordre de tri

SORT_ASC (integer)

SORT_ASC trie en ordre ascendant

SORT_DESC (integer)

SORT_DESC trie en ordre descendant

Autres constantes d'ordre de tri

SORT_REGULAR (integer)

SORT_REGULAR compare normalement les valeurs d'un tri.

SORT_NUMERIC (integer)

SORT_NUMERIC compare numériquement les valeurs d'un tri.

SORT_STRING (integer)

SORT_STRING compare alphabétiquement les valeurs d'un tri.

SORT_LOCALE_STRING (integer)

SORT_LOCALE_STRING compare alphabétiquement les valeurs d'un tri, en utilisant la configuration locale. Ajoutée en PHP 5.0.2 et PHP 4.4.0.

COUNT_NORMAL (integer)

COUNT_RECURSIVE (integer)

EXTR_OVERWRITE (integer)

EXTR_SKIP (integer)

EXTR_PREFIX_SAME (integer)

EXTR_PREFIX_ALL (integer)

EXTR_PREFIX_INVALID (integer)

EXTR_PREFIX_IF_EXISTS (integer)

EXTR_IF_EXISTS (integer)

EXTR_REFS (integer)

Voir aussi

Voir aussi
is_array(),
explode(),
implode(),
split(),
preg_split() et
unset().

Table des matières
array_change_key_case -- Change la casse des clés du tableau
array_chunk -- Sépare un tableau en tableaux de taille inférieure
array_combine -- Crée un tableau à partir de deux autres tableaux
array_count_values -- Compte le nombre de valeurs dans un tableau
array_diff_assoc -- Calcule la différence de deux tableaux, en prenant 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 utilisateur
array_diff_ukey -- Calcule la différence entre deux tableaux en utilisant une fonction de callback sur les clés pour comparaison
array_diff -- Calcule la différence entre deux 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
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 callback
array_intersect_ukey -- Calcule l'intersection de deux tableaux en utilisant une fonction de callback sur les clés pour comparaison
array_intersect -- Calcule l'intersection de tableaux
array_key_exists -- Vérifie si une clé existe dans un tableau
array_keys -- Retourne toutes les clés d'un tableau
array_map -- Applique une fonction sur les éléments d'un tableau
array_merge_recursive -- Combine plusieurs tableaux ensemble, récursivement
array_merge -- Fusionne un ou plusieurs tableaux
array_multisort -- Trie multi-dimensionnel de tableaux
array_pad -- Complète un tableau avec une valeur jusqu'à la longueur spécifiée
array_pop -- Dépile un élément de la fin d'un tableau
array_product -- Calcule le produit des valeurs du tableau
array_push -- Empile un ou plusieurs éléments à la fin d'un tableau
array_rand -- Prend une ou plusieurs valeurs, au hasard dans un tableau
array_reduce -- Réduit itérativement un tableau
array_reverse -- Inverse l'ordre des éléments d'un tableau
array_search -- Recherche dans un tableau la clé associée à une valeur
array_shift -- Dépile un élément au début d'un tableau
array_slice -- Extrait une portion de tableau
array_splice -- Efface et remplace une portion de tableau
array_sum -- Calcule la somme des valeurs du tableau
array_udiff_assoc -- Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de callback
array_udiff_uassoc -- Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de callback
array_udiff -- Calcule la différence entre deux tableaux en utilisant une fonction callback
array_uintersect_assoc -- Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de callback
array_uintersect_uassoc -- Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de callback
array_uintersect -- Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de callback
array_unique -- Dédoublonne un tableau
array_unshift -- Empile un ou plusieurs éléments au début d'un tableau
array_values -- Retourne les valeurs d'un tableau
array_walk_recursive -- Applique une fonction utilisateur récursivement à chaque membre du tableau
array_walk -- Exécute une fonction sur chacun des éléments d'un tableau
array -- Crée un tableau
arsort -- Trie un tableau en ordre inverse
asort -- Trie un tableau et conserve l'association des index
compact -- Crée un tableau à partir de variables et de leur valeur
count -- Compte le nombre d'éléments d'un tableau ou le nombre de propriétés d'un objet
current -- Retourne l'élément courant du tableau
each -- Retourne chaque paire clé/valeur d'un tableau
end -- Positionne le pointeur de tableau en fin de tableau
extract -- Importe les variables dans la table des symboles
in_array -- Indique si une valeur appartient à un tableau
key -- Retourne une clé d'un tableau associatif
krsort -- Trie un tableau en sens inverse et suivant les clés
ksort -- Trie un tableau suivant les clés
list -- Transforme une liste de variables en tableau
natcasesort -- Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse
natsort -- Trie un tableau avec l'algorithme à "ordre naturel"
next -- Avance le pointeur interne d'un tableau
pos -- Alias de current()
prev -- Recule le pointeur courant de tableau
range -- Crée un tableau contenant un intervalle d'éléments
reset -- Remet le pointeur interne de tableau au début
rsort -- Trie un tableau en ordre inverse
shuffle -- Mélange les éléments d'un tableau
sizeof -- Alias de count()
sort -- Trie un tableau
uasort -- Trie un tableau en utilisant une fonction de callback
uksort -- Trie un tableau par ses clés en utilisant une fonction de callback
usort -- Trie un tableau en utilisant une fonction de comparaison

Précédent | Sommaire | Suivant
rename_function | Niveau supérieur | array_change_key_case


array_change_key_case

(PHP 4 >= 4.2.0, PHP 5)

array_change_key_case -- Change la casse des clés du tableau

Description

array array_change_key_case ( array input [, int case] )

array_change_key_case() modifie les clés du tableau input et force leur casse. Le paramètre optionnel case permet de forcer les chaînes de caractères en majuscules CASE_UPPER ou minuscules CASE_LOWER. La valeur par défaut est CASE_LOWER. Cette fonction laissera les clés numériques inchangées.

Exemple 1. Exemple avec array_change_key_case()

<?php
$input_array = array("PrEmIEr" => 1, "SecOnd" => 2);
print_r(array_change_key_case($input_array, CASE_UPPER));
?>

L'exemple ci-dessus va afficher :

Array
(
    [PREMIER] => 1
    [SECOND] => 2
)

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.

Précédent | Sommaire | Suivant
Tableaux | Niveau supérieur | array_chunk


array_chunk

(PHP 4 >= 4.2.0, PHP 5)

array_chunk -- Sépare un tableau en tableaux de taille inférieure

Description

array array_chunk ( array input, int size [, bool preserve_keys] )

array_chunk() sépare le tableau input en plusieurs tableaux de taille size. Il est aussi possible que le dernier tableau contienne moins de valeurs. Le résultat est un tableau multidimensionnel, indexé numériquement.

En passant la valeur TRUE au paramètre optionnel preserve_keys, vous pouvez forcer PHP à préserver les clés originales du tableau input. Si vous utilisez la valeur par défaut (FALSE), de nouveaux index numériques seront fournis, commençant à 0.

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
        )

)

Précédent | Sommaire | Suivant
array_change_key_case | Niveau supérieur | array_combine


array_combine

(PHP 5)

array_combine -- Crée un tableau à partir de deux autres tableaux

Description

array array_combine ( array keys, array values )

array_combine() retourne un array, dont les clés sont les valeurs de keys, et les valeurs sont les valeurs de values.

array_combine() retourne FALSE si le nombre d'éléments de chaque tableau n'est pas le même, ou si les tableaux sont vides.

Exemple 1. Exemple avec array_combine()

<?php
$a = array('vert','rouge','jaune');
$b = array('avocat','pomme','banane');
$c = array_combine($a, $b);

print_r($c);
?>

L'exemple ci-dessus va afficher :

Array
(
    [vert] => avocat
    [rouge] => pomme
    [jaune] => banane
)

Voir aussi
array_merge(),
array_walk() et
array_values().

Précédent | Sommaire | Suivant
array_chunk | Niveau supérieur | array_count_values


array_count_values

(PHP 4, PHP 5)

array_count_values -- Compte le nombre de valeurs dans un tableau

Description

array array_count_values ( array input )

array_count_values() retourne un tableau contenant les valeurs du tableau input comme clés et leur fréquence comme valeurs.

Exemple 1. Exemple avec array_count_values()

<?php
$array = array(1, "bonjour", 1, "monde", "bonjour");
print_r(array_count_values($array));
?>

L'exemple ci-dessus va afficher :

Array
(
    [1] => 2
    [bonjour] => 2
    [monde] => 1
)

Voir aussi
count(),
array_unique(),
array_values() et
count_chars().

Précédent | Sommaire | Suivant
array_combine | Niveau supérieur | array_diff_assoc


array_diff_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_diff_assoc -- Calcule la différence de deux tableaux, en prenant en compte les clés

Description

array array_diff_assoc ( array array1, array array2 [, array ...] )

array_diff_assoc() retourne un tableau contenant les valeurs du tableau array1 qui ne sont présentes dans aucun autre argument array2, .... Notez que les clés sont utilisées durant la comparaison, contrairement à array_diff().

Exemple 1. Exemple avec array_diff_assoc()

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

Les occurrences multiples du tableau array1 ne sont pas traitées de la même façon. Le résultat est :

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

Dans notre exemple ci-dessus, vous pouvez voir que la paire "a" => "vert" est présente dans les deux tableaux, et donc, n'est pas présente dans le résultat de la fonction. Au contraire, la paire 0 => "rouge" est présente dans le résultat, car le second argument "rouge" possède une clé qui est 1.

Les deux valeurs de la paire clé => valeur sont considérées égales uniquement si (string) $elem1 === (string) $elem2. En d'autre termes, une comparaison stricte est faite sur les représentations des index, avec le type chaîne.

Note : Notez bien que cette fonction ne travaille que sur une dimension de tableau. Bien sur, vous pouvez utiliser des sous dimensions de tableau comme ceci : array_diff_assoc($array1[0], $array2[0]);.

Voir aussi
array_diff(),
array_intersect() et
array_intersect_assoc().

Précédent | Sommaire | Suivant
array_count_values | Niveau supérieur | array_diff_key


array_diff_key

(PHP 5 >= 5.1.0RC1)

array_diff_key -- Calcule la différence de deux tableaux en utilisant les clés pour comparaison

Description

array array_diff_key ( array array1, array array2 [, array ...] )

array_diff_key() retourne un tableau contenant toutes les valeurs de array1 où les clés de ce tableau ne sont présentes dans aucun des autres arguments. Notez que l'associativité est préservée. Cette fonction fonctionne de la même façon que la fonction array_diff() excepté le fait que la comparaison est faite sur les clés au lieu des valeurs.

Exemple 1. Exemple avec array_diff_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_diff_key($array1, $array2));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["rouge"]=>
  int(2)
  ["violet"]=>
  int(4)
}

Les deux clés depuis les paires clé => valeur sont considérées comme égales uniquement si (string) $cle1 === (string) $cle2 . En d'autres mots, une analyse du type stricte est exécutée, donc, le type doit être exactement le même.

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(),
array_udiff()
array_diff_assoc(),
array_diff_uassoc(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_diff_ukey(),
array_intersect(),
array_intersect_assoc(),
array_intersect_uassoc(),
array_intersect_key() et
array_intersect_ukey().

Précédent | Sommaire | Suivant
array_diff_assoc | Niveau supérieur | array_diff_uassoc


array_diff_uassoc

(PHP 5)

array_diff_uassoc -- Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction utilisateur

Description

array array_diff_uassoc ( array array1, array array2 [, array ..., callback key_compare_func] )

array_diff_uassoc() retourne un array contenant toutes les valeurs de array1 qui ne sont pas présentes dans l'un des autres arguments array2, ..., etc. Notez que les clés sont utilisées dans les comparaisons, contrairement à array_diff().

Cette comparaison est effectuée avec la fonction callback key_compare_func. Cette fonction doit retourner un entier plus petit que, égal à, ou plus grand que zéro si le premier argument est respectivement plus petit que, égal au, ou plus grand que le second. Ce comportement est différent de celui de array_diff_assoc() où une fonction interne de comparaison des index est utilisée.

Exemple 1. Exemple avec array_diff_uassoc()

<?php
function key_compare_func($a, $b) {
    if ($a === $b) return 0;
    return ($a > $b)? 1:-1;
}

$array1 = array("a" => "vert", "b" => "marron", "c" => "bleu", "rouge");
$array2 = array("a" => "vert", "jaune", "rouge");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");

?>

L'exemple ci-dessus va afficher :

Array
(
    [b] => marron
    [c] => bleu
    [0] => rouge
)

Dans notre exemple, vous voyez que la paire "a" => "vert" est présente dans les deux tableaux et donc ne figure pas dans le résultat de la fonction. Contrairement à cela, la paire 0 => "rouge" est dans le résultat car dans le second argument, la clé de "rouge" est 1.

L'égalité de deux indices est vérifiée par la fonction utilisateur.

Note : Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau multi-dimensionnel. Vous pouvez, bien sûr, tester une dimension particulière en utilisant par exemple, array_diff_uassoc($array1[1], $array2[1], "key_compare_func");.

Voir aussi
array_diff(),
array_diff_assoc(),
array_udiff(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() et
array_uintersect_uassoc().

Précédent | Sommaire | Suivant
array_diff_key | Niveau supérieur | array_diff_ukey


array_diff_ukey

(PHP 5 >= 5.1.0RC1)

array_diff_ukey -- Calcule la différence entre deux tableaux en utilisant une fonction de callback sur les clés pour comparaison

Description

array array_diff_ukey ( array array1, array array2 [, array ..., callback key_compare_func] )

array_diff_ukey() retourne un tableau contenant toutes les valeurs de array1 où les clés de ce tableau ne sont présentes dans aucun des autres arguments array1, .... Notez que l'associativité est préservée. Cette fonction fonctionne de la même façon que la fonction array_diff() excepté le fait que la comparaison est faite sur les clés au lieu des valeurs.

Cette comparaison est effectuée en utilisant une fonction de callback fournie. Elle doit retourner un entier plus petit que, égal à ou plus grand que 0 si la première clé est considérée comme, respectivement, plus petite que, égale à ou plus grande que la seconde.

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('bleu'  => 1, 'rouge'  => 2, 'vert'  => 3, 'violet' => 4);
$array2 = array('vert' => 5, 'bleu' => 6, 'jaune' => 7, 'cyan'   => 8);

var_dump(array_diff_ukey($array1, $array2, 'key_compare_func'));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["rouge"]=>
  int(2)
  ["violet"]=>
  int(4)
}

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(),
array_udiff()
array_diff_assoc(),
array_diff_uassoc(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_diff_key(),
array_intersect(),
array_intersect_assoc(),
array_intersect_uassoc(),
array_intersect_key() et
array_intersect_ukey().

Précédent | Sommaire | Suivant
array_diff_uassoc | Niveau supérieur | array_diff


array_diff

(PHP 4 >= 4.0.1, PHP 5)

array_diff -- Calcule la différence entre deux tableaux

Description

array array_diff ( array array1, array array2 [, array ...] )

array_diff() retourne un tableau qui contient toutes les valeurs du tableau array1 qui sont absentes de tous les autres arguments array2, ..., etc. Notez que les clés sont préservées.

Exemple 1. Exemple avec array_diff()

<?php
$array1 = array ("a" => "vert", "rouge", "bleu", "rouge");
$array2 = array ("b" => "vert", "jaune", "rouge");
$result = array_diff ($array1, $array2);

print_r($result);
?>

Les valeurs multiples dans array1 seront toutes traitées de la même façon.

L'exemple ci-dessus va afficher :

Array
(
    [1] => bleu
)

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.

Note : Notez que cette fonction ne vérifie qu'une dimension d'un tableau à n-dimensions. Bien sur, vous pouvez vérifier des dimensions plus profondes en utilisant array_diff($array1[0], $array2[0]);.

Avertissement

Cette fonction était inutilisable en PHP 4.0.4!

Voir aussi
array_diff_assoc(),
array_intersect() et
array_intersect_assoc().

Précédent | Sommaire | Suivant
array_diff_ukey | Niveau supérieur | array_fill_keys


array_fill

(PHP 4 >= 4.2.0, PHP 5)

array_fill -- Remplit un tableau avec une même valeur

Description

array array_fill ( int start_index, int num, mixed value )

array_fill() crée un tableau avec num entrées de la valeur value. Les index commençant à la valeur start_index. Notez que si num n'est pas un nombre supérieur à zéro, PHP affichera une alerte.

Exemple 1. Exemple avec array_fill()

<?php
$a = array_fill(5, 6, 'banane');
print_r($a);
?>

L'exemple ci-dessus va afficher :

Array
(
    [5] => banane
    [6] => banane
    [7] => banane
    [8] => banane
    [9] => banane
    [10] => banane
)

Voir aussi str_repeat() et range().

Précédent | Sommaire | Suivant
array_fill_keys | Niveau supérieur | array_filter


array_filter

(PHP 4 >= 4.0.6, PHP 5)

array_filter -- Filtre les éléments d'un tableau

Description

array array_filter ( array input [, callback callback] )

array_filter() retourne un tableau contenant les éléments du tableau input, filtrés grâce à la fonction callback. Si input est un tableau associatif, les clés sont préservées.

Exemple 1. Exemple avec array_filter()

<?php
function impair($var)
{
    return ($var & 1);
}

function pair($var)
{
    return (!($var & 1));
}

$array1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array (6, 7, 8, 9, 10, 11, 12);

echo "Impairs :\n";
print_r(array_filter($array1, "impair"));
echo "Pairs :\n";
print_r(array_filter($array2, "pair"));
?>

L'exemple ci-dessus va afficher :

Impairs :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Pairs :
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

La fonction appelée ne doit pas modifier le tableau lui-même, c'est à dire ajouter ou supprimer une valeur. Si des éléments sont modifiés, le comportement de array_filter() est indéfini.

Si la fonction callback n'est pas fournie, array_filter() va supprimer toutes les entrées de input qui sont égales à FALSE. Voyez conversion en booléen pour plus d'informations.

Exemple 2. array_filter() sans callback

<?php

$entry = array(
             0 => 'foo',
             1 => false,
             2 => -1,
             3 => null,
             4 => ''
          );

print_r(array_filter($entry));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => foo
    [2] => -1
)

Voir aussi
array_map(),
array_reduce() et
array_walk().

Précédent | Sommaire | Suivant
array_fill | Niveau supérieur | array_flip


array_flip

(PHP 4, PHP 5)

array_flip -- Remplace les clés par les valeurs, et les valeurs par les clés

Description

array array_flip ( array trans )

array_flip() retourne un tableau dont les clés sont les valeurs du précédent tableau trans, et les valeurs sont les clés.

Notez bien que les valeurs de trans doivent être des clés valides, c'est-à-dire qu'elles doivent être des entiers (entier) ou des chaînes de caractères (chaîne de caractères). Une alerte sera émise si une valeur est d'un type qui ne convient pas et la paire en question ne sera pas inversée.

Si une valeur n'est pas unique, seule la dernière clé sera utilisée comme valeur, et toutes les autres seront perdues.

array_flip() retourne FALSE en cas d'échec.

Exemple 1. Exemple avec array_flip()

<?php
$trans = array_flip($trans);
$original = strtr($str, $trans);
?>

Exemple 2. Exemple avec array_flip() : collision

<?php
$trans = array ("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip($trans);
print_r($trans);
?>

maintenant $trans vaut :

Array
(
    [1] => b
    [2] => c
)

Voir aussi
array_values(),
array_keys() et
array_reverse().

Précédent | Sommaire | Suivant
array_filter | Niveau supérieur | array_intersect_assoc


array_intersect_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_intersect_assoc -- Calcule l'intersection de deux tableaux avec des tests sur les index

Description

array array_intersect_assoc ( array array1, array array2 [, array ...] )

array_intersect_assoc() retourne un tableau contenant toutes les valeurs de array1 qui sont aussi présentes dans tous les autres arguments array2, ..., etc. Notez que les clés sont utilisées durant la comparaison, contrairement à array_intersect().

Exemple 1. Exemple avec array_intersect_assoc()

<?php
$array1 = array ("a" => "vert", "b" => "brun", "c" => "bleu", "rouge");
$array2 = array ("a" => "vert", "jaune", "rouge");
$result_array = array_intersect_assoc ($array1, $array2);
print_r($result_array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => vert
)

Dans notre exemple, vous pouvez voir que la paire "a" => "vert" est présente dans les deux tableaux, et donc placée dans le dernier tableau. La valeur rouge n'est pas retournée car dans $array1 son index est 2 tandis que dans le tableau $array2, son index est 1.

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(),
array_uintersect_assoc(),
array_intersect_uassoc(),
array_uintersect_uassoc(),
array_diff() et
array_diff_assoc().

Précédent | Sommaire | Suivant
array_flip | Niveau supérieur | array_intersect_key


array_intersect_key

(PHP 5 >= 5.1.0RC1)

array_intersect_key -- Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison

Description

array array_intersect_key ( array array1, array array2 [, array ...] )

array_intersect_key() retourne un tableau contenant toutes les valeurs du tableau array1 qui contiennent des clés présentes dans tous les arguments.

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 du type stricte est exécuté, donc, le type doit être exactement le même.

Voir aussi
array_diff(),
array_udiff()
array_diff_assoc(),
array_diff_uassoc(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_diff_key(),
array_diff_ukey(),
array_intersect(),
array_intersect_assoc(),
array_intersect_uassoc() et
array_intersect_ukey().

Précédent | Sommaire | Suivant
array_intersect_assoc | Niveau supérieur | array_intersect_uassoc


array_intersect_uassoc

(PHP 5)

array_intersect_uassoc -- Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de callback

Description

array array_intersect_uassoc ( array array1, array array2 [, array ..., callback key_compare_func] )

array_intersect_uassoc() retourne un tableau contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les arguments. Notez que les clés sont utilisées dans la comparaison par opposition à la fonction array_intersect().

La comparaison d'index est effectuée en utilisant la fonction de callback fournie. Elle doit retourner un entier, plus petit que, égal à ou plus grand que zéro si le premier argument est considéré comme étant, respectivement, plus petit que, égal à ou plus grand le second.

Exemple 1. Exemple avec array_intersect_uassoc()

<?php
$array1 = array("a" => "vert", "b" => "marron", "c" => "bleu", "rouge");
$array2 = array("a" => "VERT", "B" => "marron", "jaune", "rouge");

print_r(array_intersect_uassoc($array1, $array2, "strcasecmp"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [b] => marron
)

Voir aussi
array_intersect(),
array_intersect_assoc(),
array_uintersect_assoc(),
array_uintersect_uassoc(),
array_intersect_key() et
array_intersect_ukey().

Précédent | Sommaire | Suivant
array_intersect_key | Niveau supérieur | array_intersect_ukey


array_intersect_ukey

(PHP 5 >= 5.1.0RC1)

array_intersect_ukey -- Calcule l'intersection de deux tableaux en utilisant une fonction de callback sur les clés pour comparaison

Description

array array_intersect_ukey ( array array1, array array2 [, array ..., callback key_compare_func] )

array_intersect_ukey() retourne un tableau contenant toutes les valeurs du tableau array1 qui contiennent des clés présentes dans tous les arguments array2, ....

Cette comparaison est effectuée en utilisant une fonction de callback fournie par l'utilisateur. La fonction de callback doit retourner un entier plus petit que, égal à ou plus grand que 0 si la première clé est considérée, respectivement, comme plus petite que, égale à ou plus grande que la seconde.

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('bleu'  => 1, 'rouge'  => 2, 'vert'  => 3, 'violet' => 4);
$array2 = array('vert' => 5, 'bleu' => 6, 'jaune' => 7, 'cyan'   => 8);

var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
?>

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.

Voir aussi
array_diff(),
array_udiff()
array_diff_assoc(),
array_diff_uassoc(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_diff_key(),
array_diff_ukey(),
array_intersect(),
array_intersect_assoc(),
array_intersect_uassoc() et
array_intersect_key().

Précédent | Sommaire | Suivant
array_intersect_uassoc | Niveau supérieur | array_intersect


array_intersect

(PHP 4 >= 4.0.1, PHP 5)

array_intersect -- Calcule l'intersection de tableaux

Description

array array_intersect ( array array1, array array2 [, array ...] )

array_intersect() retourne un tableau contenant toutes les valeurs de array1 qui sont présentes dans tous les autres arguments array2, ..., etc. Notez que les clés sont préservées.

Exemple 1. Exemple avec array_intersect()

<?php
  $array1 = array ("a" => "vert", "rouge", "bleu");
  $array2 = array ("b" => "vert", "jaune", "rouge");
  $result = array_intersect ($array1, $array2);
  print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => vert
    [0] => rouge
)

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(),
array_diff() et
array_diff_assoc().

Précédent | Sommaire | Suivant
array_intersect_ukey | Niveau supérieur | array_key_exists


array_key_exists

(PHP 4 >= 4.1.0, PHP 5)

array_key_exists -- Vérifie si une clé existe dans un tableau

Description

bool array_key_exists ( mixed key, array search )

array_key_exists() retourne TRUE s'il existe une clé du nom de key dans le tableau search. key peut être n'importe quelle valeur valide d'index de tableau. array_key_exists() fonctionne également sur les objets.

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

Note : Cette fonction s'appelait key_exists() en PHP version 4.0.6.

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('premier' => null, 'second' => 4);

// retourne false
isset($search_array['premier']);

// retourne true
array_key_exists('premier', $search_array);
?>

Voir aussi
isset(),
array_keys() et
in_array().

Précédent | Sommaire | Suivant
array_intersect | Niveau supérieur | array_keys


array_keys

(PHP 4, PHP 5)

array_keys -- Retourne toutes les clés d'un tableau

Description

array array_keys ( array input [, mixed search_value [, bool strict]] )

array_keys() retourne les clés numériques et littérales du tableau input.

Si l'option search_value est spécifiée, seules les clés ayant cette valeur seront retournées. Sinon, toutes les clés de input sont retournées. Depuis PHP 5, vous pouvez utiliser le paramètre strict pour une comparaison incluant le type (===).

Exemple 1. Exemple avec array_keys()

<?php
$array = array (0 => 100, "couleur" => "rouge");
print_r(array_keys($array));

$array = array("bleu", "rouge", "vert", "bleu", "bleu");
print_r(array_keys($array, "bleu"));

$array = array("couleur" => array("bleu", "rouge", "vert"), "taille" => array("petit", "moyen", "grand"));
print_r(array_keys($array));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 0
    [1] => couleur
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => couleur
    [1] => taille
)

Voir aussi array_values() et array_key_exists().

Précédent | Sommaire | Suivant
array_key_exists | Niveau supérieur | array_map


array_map

(PHP 4 >= 4.0.6, PHP 5)

array_map -- Applique une fonction sur les éléments d'un tableau

Description

array array_map ( callback callback, array arr1 [, array ...] )

array_map() retourne un tableau contenant tous les éléments du tableau arr1, après leur avoir appliqué la fonction callback. Le nombre de paramètres de la fonction callback doit être égal au nombre de tableaux passés dans la fonction array_map(), dans les arguments supplémentaires ....

Exemple 1. Exemple avec array_map()

<?php
  function cube($n) {
      return $n*$n*$n;
  }
  $a = array(1, 2, 3, 4, 5);
  $b = array_map("cube", $a);
  print_r($b);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Exemple 2. array_map() : utilisation de plusieurs tableaux

<?php
  function parle_espagnol($n, $m) {
      return "Le nombre $n se dit $m en espagnol";
  }

  function map_espagnol($n, $m) {
   return array($n => $m);
  }

  $a = array(1, 2, 3, 4, 5);
  $b = array("uno", "dos", "tres", "cuatro", "cinco");
  $c = array_map("parle_espagnol", $a, $b);
  print_r($c);
?>

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

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

Exemple 3. Création d'un tableau de tableaux

<?php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");
$d = array("un", "deux","trois","quatre","cinq");

$d = array_map(null, $a, $b, $c, $d);
print_r($d);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => one
            [2] => uno
            [3] => un
        )

    [1] => Array
        (
            [0] => 2
            [1] => two
            [2] => dos
            [3] => deux
        )

    [2] => Array
        (
            [0] => 3
            [1] => three
            [2] => tres
            [3] => trois
        )

    [3] => Array
        (
            [0] => 4
            [1] => four
            [2] => cuatro
            [3] => quatre
        )

    [4] => Array
        (
            [0] => 5
            [1] => five
            [2] => cinco
            [3] => cinq
        )

)

Voir aussi
array_filter(),
array_reduce(),
array_walk(),
create_function() et
information à propos de callback type.

Précédent | Sommaire | Suivant
array_keys | Niveau supérieur | array_merge_recursive


array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5)

array_merge_recursive -- Combine plusieurs tableaux ensemble, récursivement

Description

array array_merge_recursive ( array array1 [, array ...] )

array_merge_recursive() rassemble les éléments de deux ou plusieurs tableaux ensemble, en ajoutant les éléments de l'un à la suite des éléments du précédent.

Si les tableaux passés en arguments ont les mêmes clés (chaînes de caractères), les valeurs sont alors rassemblées dans un tableau, de manière récursive, de façon à ce que, si l'une de ces valeurs est un tableau elle-même, la fonction la rassemblera avec les valeurs de l'entrée courante. Cependant, si deux tableaux ont la même clé numérique, la dernière valeur n'écrasera pas la précédente, mais sera ajoutée à la fin du tableau.

Exemple 1. Exemple avec array_merge_recursive()

<?php
  $ar1 = array("couleur" => array("favorie" => "rouge"), 5);
  $ar2 = array(10, "couleur" => array("favorie" => "vert", "rouge"));
  $result = array_merge_recursive($ar1, $ar2);
  print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [couleur] => Array
        (
            [favorie] => Array
                (
                    [0] => rouge
                    [1] => vert
                )

            [0] => rouge
        )

    [0] => 5
    [1] => 10
)

Voir aussi array_merge().

Précédent | Sommaire | Suivant
array_map | Niveau supérieur | array_merge


array_merge

(PHP 4, PHP 5)

array_merge -- Fusionne un ou plusieurs tableaux

Description

array array_merge ( array array1 [, array array2 [, array ...]] )

array_merge() rassemble les éléments d'un ou de plusieurs tableaux array1, array2, ... ensemble, en ajoutant les valeurs de l'un à la fin de l'autre. Le résultat est un tableau.

Si les tableaux ont des clés en commun, la dernière valeur rencontrée écrasera l'ancienne. Pour les valeurs numériques, cela n'arrive pas, car, alors, les valeurs sont ajoutées en fin de tableau.

Si vous passez un seul tableau à cette fonction et qu'il a des indices numériques, les clés seront réindexées normalement. Pour les tableaux associatifs, les entrées dupliquées seront fusionnées en continu.

Exemple 1. Exemple avec array_merge()

<?php
  $array1 = array ("couleur" => "rouge", 2, 4);
  $array2 = array ("a", "b", "couleur" => "vert", "forme" => "trapézo&Ocirc;de");
  $result = array_merge ($array1, $array2);
  print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [couleur] => vert
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [forme] => trapézo&Ocirc;de
)

Exemple 2. Exemple avec array_merge()

<?php
  $array1 = array();
  $array2 = array(1 => "data");
  $result = array_merge($array1, $array2);
?>

N'oubliez pas que les index numériques seront renumérotés.

Array
(
    [0] => data
)

Si vous voulez préserver complètement les tableaux, et que vous souhaitez simplement les ajouter les uns aux autres, utilisez l'opérateur + :

Exemple 3.

<?php
  $array1 = array();
  $array2 = array(1 => "data");
  $result = $array1 + $array2;
?>

Les index numériques seront préservés. D'où le résultat :

Array
(
    [1] => data
)

Note : Les clés communes seront écrasées successivement par les clés identiques suivantes.

Avertissement

Le comportement de array_merge() a été modifié en PHP 5. Contrairement à PHP 4, array_merge() n'accepte que des paramètres de type array. Cependant, vous pouvez utiliser le transtypage pour fusionner les autres types de valeurs. Voyez l'exemple ci-dessous.

Exemple 4. Exemple avec array_merge() en PHP 5

<?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(), array_combine() et les opérateurs de tableaux.

Précédent | Sommaire | Suivant
array_merge_recursive | Niveau supérieur | array_multisort


array_multisort

(PHP 4, PHP 5)

array_multisort -- Trie multi-dimensionnel de tableaux

Description

bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] )

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

array_multisort() sert à trier simultanément plusieurs tableaux, ou bien à trier un tableau multi-dimensionnel, 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.

Les tableaux passés en arguments ar1, arg, ... sont traités comme les colonnes d'une table, triées par lignes (un peu comme la clause SQL ORDER BY). Le premier tableau est la clé primaire de tri. Les valeurs du premier tableau qui sont égales, sont triées grâce au tableau suivant, et ainsi de suite...

La structure des arguments de array_multisort() est un peu inhabituelle, mais elle est plus souple. Le premier argument doit être un tableau. Par la suite, chaque argument peut être soit un tableau, soit une option de tri prise parmi les valeurs suivantes :

Options de tri :

  • SORT_ASC : Tri en ordre ascendant

  • SORT_DESC : Tri en ordre descendant

Options de type de tri :

  • SORT_REGULAR : comparaison normale des valeurs

  • SORT_NUMERIC : comparaison numérique des valeurs

  • SORT_STRING : Comparaison alphabétique des valeurs

Une seule option de tri de chaque type peut être appliquée après un tableau. Une option ne s'applique qu'au tableau précédent. Toutes les autres sont mises par défaut à SORT_ASC et SORT_REGULAR.

Exemple 1. Trier plusieurs tableaux

<?php
$ar1 = array("10", 100, 100, "a");
$ar2 = array(1, 3, "2", 1);
array_multisort($ar1, $ar2);

var_dump($ar1);
var_dump($ar2);
?>

Dans cet exemple, après le tri, le premier tableau contient 10, "a", 100, 100. Le deuxième tableau contient 1, 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]=> string(2) "10"
  [1]=> string(1) "a"
  [2]=> int(100)
  [3]=> int(100)
}
array(4) {
  [0]=> int(1)
  [1]=> int(1)
  [2]=> string(1) "2"
  [3]=> int(3)
}

Exemple 2. Classer un tableau multi-dimensionnel

<?php
$ar = array(
       array("10", 11, 100, 100, "a"),
       array(   1,  2, "2",   3,   1)
      );
array_multisort($ar[0], SORT_ASC, SORT_STRING,
                $ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>

Dans cet exemple, après le tri, le premier tableau contient 10, 100, 100, 11, "a" (tri alphabétique, ordre croissant); Le deuxième tableau contient 1, 3, "2", 2, 1 (tri numérique, ordre décroissant).

array(2) {
  [0]=> array(5) {
    [0]=> string(2) "10"
    [1]=> int(100)
    [2]=> int(100)
    [3]=> int(11)
    [4]=> string(1) "a"
  }
  [1]=> array(5) {
    [0]=> int(1)
    [1]=> int(3)
    [2]=> string(1) "2"
    [3]=> int(2)
    [4]=> int(1)
  }
}

Exemple 3. Classer les résultats d'une base de données

Dans cet exemple, chaque élément du tableau data représente une ligne de la table. Ce type de données est typique d'un enregistrement de base de données.

Exemple de données :

volume | edition
-------+--------
    67 |       2
    86 |       1
    85 |       6
    98 |       2
    86 |       6
    67 |       7

Les données sont sous forme de tableau, appelé data. Cela est généralement le résultat, par exemple, de la fonction mysql_fetch_assoc().

<?php
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?>

Dans cet exemple, nous allons trier la colonne volume par ordre décroissant, et la colonne edition par ordre croissant.

Nous avons un tableau de lignes, mais array_multisort() nécessite un tableau de colonnes, donc nous utilisons le code suivant pour obtenir les colonnes et ainsi effectuer le tri.

<?php
// Obtient une liste de colonnes
foreach ($data as $key => $row) {
    $volume[$key]  = $row['volume'];
    $edition[$key] = $row['edition'];
}

// Trie les données par volume décroissant, edition croissant
// Ajoute $data en tant que dernier paramètre, pour trier par la clé commune
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>

L'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 une recherche 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
)

Précédent | Sommaire | Suivant
array_merge | Niveau supérieur | array_pad


array_pad

(PHP 4, PHP 5)

array_pad -- Complète un tableau avec une valeur jusqu'à la longueur spécifiée

Description

array array_pad ( array input, int pad_size, mixed pad_value )

array_pad() retourne une copie du tableau input complétée jusqu'à la taille de pad_size avec la valeur pad_value. Si pad_size est positif, alors le tableau est complété à droite, s'il est négatif, il est complété à gauche. Si la valeur absolue de pad_size est plus petite que la taille du tableau input, alors le tableau n'est pas complété. Il est possible d'ajouter au maximum 1048576 d'un seul coup.

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

Précédent | Sommaire | Suivant
array_multisort | Niveau supérieur | array_pop


array_pop

(PHP 4, PHP 5)

array_pop -- Dépile un élément de la fin d'un tableau

Description

mixed array_pop ( array &array )

array_pop() dépile et retourne le dernier élément du tableau array, le raccourcissant d'un élément. Si array est vide, ou n'est pas un tableau, array_pop() retourne NULL.

Note : Cette fonction remet le pointeur au début du tableau (équivalent de reset()).

Exemple 1. Exemple avec array_pop()

<?php
$stack = array("orange", "banane", "pomme", "framboise");
$fruit = array_pop($stack);
print_r($stack);
echo $fruit . "\n";
?>

Après ceci, $stack n'a plus que 3 éléments : "orange", "banane" et "pomme" :

Array
(
    [0] => orange
    [1] => banane
    [2] => pomme
)
framboise

tandis que $fruit contient "framboise".

Voir aussi
array_push(),
array_shift() et
array_unshift().

Précédent | Sommaire | Suivant
array_pad | Niveau supérieur | array_product


array_push

(PHP 4, PHP 5)

array_push -- Empile un ou plusieurs éléments à la fin d'un tableau

Description

int array_push ( array &array, mixed var [, mixed ...] )

array_push() considère array comme une pile, et empile les variables var, ... à la fin de array. La longueur du tableau array augmente d'autant. Cela a le même effet que

<?php
$array[] = $var;
?>
répété pour chaque var.

array_push() retourne le nouveau nombre d'éléments du tableau.

Exemple 1. Exemple avec array_push()

<?php
$stack = array ("orange", "banane");
array_push ($stack, "pomme", "bleuet");
print_r($stack);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => orange
    [1] => banane
    [2] => pomme
    [3] => bleuet
)

Note : Si vous utilisez la fonction array_push() pour ajouter un élément à un tableau, il est mieux de la remplacer par l'opérateur $array[] = qui évite le passage par une fonction.

Note : array_push() émettra une alerte si le premier argument n'est pas un tableau. Ceci diffère du comportement de $var[] où un nouveau tableau est créé.

Voir aussi
array_pop(),
array_shift() et
array_unshift().

Précédent | Sommaire | Suivant
array_product | Niveau supérieur | array_rand


array_rand

(PHP 4, PHP 5)

array_rand -- Prend une ou plusieurs valeurs, au hasard dans un tableau

Description

mixed array_rand ( array input [, int num_req] )

array_rand() est pratique lorsque vous voulez sélectionner une ou plusieurs valeurs au hasard dans un tableau. Le paramètre input est un tableau, et num_req spécifie le nombre de valeurs que vous voulez obtenir (par défaut, c'est 1).

Si vous ne demandez qu'une entrée, array_rand() retourne l'index de la valeur. Sinon, elle retourne un tableau d'index. Cela vous permet de faire une sélection au hasard de clés, ou bien de valeurs.

Note : Depuis PHP 4.2.0, vous n'avez plus besoin d'initialiser le générateur de nombres aléatoires avec srand() ou mt_srand() car c'est fait automatiquement.

Exemple 1. Exemple avec array_rand()

<?php
srand ((double) microtime() * 10000000);
$input = array ("Neo", "Morpheus", "Trinitée", "Cypher", "Tank");
$rand_keys = array_rand ($input, 2);
print $input[$rand_keys[0]]."\n";
print $input[$rand_keys[1]]."\n";
?>

Voir aussi shuffle().

Précédent | Sommaire | Suivant
array_push | Niveau supérieur | array_reduce


array_reduce

(PHP 4 >= 4.0.5, PHP 5)

array_reduce -- Réduit itérativement un tableau

Description

mixed array_reduce ( array input, callback function [, int initial] )

array_reduce() applique itérativement la fonction function aux éléments du tableau input, de manière à réduire le tableau à une valeur simple. Si l'argument optionnel initial est disponible, il sera utilisé pour initialiser le processus, ou bien comme valeur finale si le tableau est vide. Si le tableau est vide et le paramètre initial n'est pas passé, array_reduce() retourne NULL.

Exemple 1. Exemple avec array_reduce()

<?php
  function rsum($v, $w) {
    $v += $w;
    return $v;
  }
  function rmul($v, $w) {
    $v *= $w;
    return $v;
  }
  $a = array(1, 2, 3, 4, 5);
  $x = array();
  $b = array_reduce($a, "rsum");
  $c = array_reduce($a, "rmul", 10);
  $d = array_reduce($x, "rsum", 1);
?>

Dans cet exemple, $b contiendra 15, $c contiendra 1200 (= 10*1*2*3*4*5), et $d contiendra 1.

Voir aussi
array_filter(),
array_map(),
array_unique() et
array_count_values().

Précédent | Sommaire | Suivant
array_rand | Niveau supérieur | array_reverse


array_reverse

(PHP 4, PHP 5)

array_reverse -- Inverse l'ordre des éléments d'un tableau

Description

array array_reverse ( array array [, bool preserve_keys] )

array_reverse() prend le tableau array et retourne un nouveau tableau qui contient les mêmes éléments mais dans l'ordre inverse, en préservant les clés si le paramètre preserve_keys vaut TRUE.

Exemple 1. Exemple avec array_reverse()

<?php
  $input = array ("php", 4.0, array ("rouge", "vert"));
  $result = array_reverse ($input);
  $result_keyed = array_reverse ($input, TRUE);
  print_r($result);
  print_r($result_keyed);
?>

Ce code fait que $result et $result_keyed contiennent les mêmes éléments, mais qu'ils diffèrent au niveau des clés. $result et $result_keyed contiennent :

Array
(
    [0] => Array
        (
            [0] => rouge
            [1] => vert
        )

    [1] => 4
    [2] => php
)
Array
(
    [2] => Array
        (
            [0] => rouge
            [1] => vert
        )

    [1] => 4
    [0] => php
)

Note : Le second paramètre preserve_keys a été ajouté en PHP 4.0.3.

Voir aussi array_flip().

Précédent | Sommaire | Suivant
array_reduce | Niveau supérieur | array_search


array_search

(PHP 4 >= 4.0.5, PHP 5)

array_search -- Recherche dans un tableau la clé associée à une valeur

Description

mixed array_search ( mixed needle, array haystack [, bool strict] )

array_search() recherche needle dans haystack et retourne la clé associée s'il la trouve, ou FALSE sinon.

Note : Si needle est une chaîne de caractères, la comparaison est effectuée en respectant la casse.

Note : Avant PHP 4.2.0, array_search() retournait NULL en cas d'échec, au lieu de FALSE.

Si le troisième paramètre strict vaut TRUE, alors array_search() s'assurera aussi que le type de needle est le même que celui de la valeur trouvée dans haystack.

Si needle est trouvé plus d'une fois dans haystack, la première clé concordante est retournée. Pour trouver toutes les clés correspondantes, utilisez plutôt la fonction array_keys() avec le paramètre optionnel search_value.

Exemple 1. Exemple avec array_search()

<?php
$array = array(0 => "bleu", 1 => "rouge", 2 => "vert", 3 => "rouge");

$key = array_search('vert', $array);    // $key = 2;
$key = array_search('rouge', $array);   // $key = 1;
?>

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi
array_keys(),
array_values(),
array_key_exists() et
in_array().

Précédent | Sommaire | Suivant
array_reverse | Niveau supérieur | array_shift


array_shift

(PHP 4, PHP 5)

array_shift -- Dépile un élément au début d'un tableau

Description

mixed array_shift ( array &array )

array_shift() extrait la première valeur d'un tableau et la retourne, en raccourcissant le tableau d'un élément, et en déplaçant tous les éléments vers le bas. Toutes les clés numériques seront modifiées pour commencer à zéro. Si array est vide, ou n'est pas un tableau, array_shift() retourne NULL.

Note : Cette fonction remet le pointeur au début du tableau (équivalent de reset()).

Exemple 1. Exemple avec array_shift()

<?php
$stack = array("orange", "banane", "pomme", "bleuet");
$fruit = array_shift($stack);
print_r($stack);
?>

$stack contient encore trois éléments :

Array
(
    [0] => banane
    [1] => pomme
    [2] => bleuet
)

et orange a été placé dans $fruit.

Voir aussi
array_unshift(),
array_push() et
array_pop().

Précédent | Sommaire | Suivant
array_search | Niveau supérieur | array_slice


array_slice

(PHP 4, PHP 5)

array_slice -- Extrait une portion de tableau

Description

array array_slice ( array array, int offset [, int length [, bool preserve_keys]] )

array_slice() retourne une série d' éléments du tableau array commençant à l'offset offset et représentant length éléments.

Si offset est non-négatif, la série commencera à cet offset dans le tableau array. Si offset est négatif, cette série commencera à l'offset offset mais en commençant à la fin du tableau array.

Si length est fourni et positif, alors la série retournée aura autant d'éléments. Si length est fourni et négatif, alors la série contiendra les éléments depuis l'offset offset jusqu'à length éléments en partant de la fin. Si length est omis, la séquence lira tous les éléments du tableau, depuis l'offset précisé jusqu'à la fin du tableau.

Notez que array_slice() va renuméroter les index numériques par défaut. Depuis PHP 5.0.2, vous pouvez modifier ce comportement en donnant la valeur de TRUE à preserve_keys.

Exemple 1. Exemples 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 "c", "d"
$output = array_slice ($input, -2, 1);  // retourne "d"
$output = array_slice ($input, 0, 3);   // retourne "a", "b" et "c"

// notez les clés d'index différentes
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?>

L'exemple ci-dessus va afficher :

Array
(
   [0] => c
   [1] => d
)
Array
(
   [2] => c
   [3] => d
)

Voir aussi array_splice() et unset().

Précédent | Sommaire | Suivant
array_shift | Niveau supérieur | array_splice


array_splice

(PHP 4, PHP 5)

array_splice -- Efface et remplace une portion de tableau

Description

array array_splice ( array &input, int offset [, int length [, array replacement]] )

array_splice() supprime les éléments désignés par offset et length du tableau input et les remplace par les éléments du tableau replacement, si ce dernier est présent. Cette fonction retourne un tableau contenant les éléments ainsi remplacés. Notez que les clés numériques de input ne sont pas préservées.

Si offset est positif, la série commencera à cet offset dans le tableau input. Si offset est négatif, cette série commencera à l'offset offset mais en commençant à la fin du tableau input.

Si length est donné et positif, alors la série aura autant d'éléments. Si length est donné et négatif, les éléments seront pris dans l'ordre inverse. Si length est omis, la séquence lira tous les éléments du tableau, depuis l'offset offset jusqu'à la fin du tableau. Conseil : pour supprimer tous les éléments du tableau depuis offset jusqu'à la fin, même si un tableau de remplacement replacement est spécifié, utilisez count($input) à la place de length.

Si replacement est précisé, alors les éléments supprimés sont remplacés par les éléments de ce tableau. Si l'offset et length sont tels que la taille du tableau ne change pas, alors les éléments du tableau de remplacement replacement sont insérés à partir de l'offset offset. si le tableau de remplacement replacement ne contient qu'un seul élément, il n'est pas obligatoire de forcer le type en tableau avec array(), à moins que cette variable ne soit elle-même un tableau.

Les codes suivants sont équivalents :

Tableau 1. Equivalents de array_splice()

array_push($input, $x, $y) | array_splice($input, count($input), 0, array($x, $y))
array_pop($input) | array_splice($input, -1)
array_shift($input) | array_splice($input, 0, 1)
array_unshift($input, $x, $y) | array_splice($input, 0, 0, array($x, $y))
$a[$x] = $y | array_splice($input, $x, 1, $y)

array_splice() retourne le tableau des éléments supprimés.

Exemple 1. Exemples avec array_splice()

<?php
$input = array ("rouge", "vert", "bleu", "jaune");
array_splice ($input, 2);
// $input vaut array ("rouge", "vert")

$input = array ("rouge", "vert", "bleu", "jaune");
array_splice ($input, 1, -1);
// $input vaut array ("rouge", "jaune")

$input = array ("rouge", "vert", "bleu", "jaune");
array_splice ($input, 1, count($input), "orange");
// $input vaut array ("rouge", "orange")

$input = array ("rouge", "vert", "bleu", "jaune");
array_splice ($input, -1, 1, array("black", "marron"));
// $input vaut array ("rouge", "vert",
//          "bleu", "black", "marron")
?>

Voir aussi
array_slice(),
unset() et
array_merge().

Précédent | Sommaire | Suivant
array_slice | Niveau supérieur | array_sum


array_sum

(PHP 4 >= 4.0.4, PHP 5)

array_sum -- Calcule la somme des valeurs du tableau

Description

number array_sum ( array array )

array_sum() retourne la somme des valeurs du tableau array, sous forme d'un entier ou d'un nombre à virgule flottante.

Exemple 1. Exemple avec array_sum()

$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

Note : Dans les versions de PHP antérieure à la version 4.2.1, cette fonction modifiait le tableau passé en argument et convertissait les chaînes de caractères en nombres (ce qui conduisait généralement à 0).

Précédent | Sommaire | Suivant
array_splice | Niveau supérieur | array_udiff_assoc


array_udiff_assoc

(PHP 5)

array_udiff_assoc -- Calcule la différence entre des tableaux avec vérification des index, compare les données avec une fonction de callback

Description

array array_udiff_assoc ( array array1, array array2 [, array ..., callback data_compare_func] )

array_udiff_assoc() retourne un tableau contenant toutes les valeurs de array1 qui ne sont présentes dans aucun autre des arguments array2, .... Notez que les clés sont utilisées dans les comparaisons contrairement à array_diff() et array_udiff(). La comparaison des données est effectuée en utilisant une fonction callback 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.

Exemple 1. Exemple avec array_udiff_assoc()

<?php
class cr {
    private $priv_member;
    function cr($val) {
        $this->priv_member = $val;
    }

    static function comp_func_cr($a, $b) {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr( 3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_assoc($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

Dans notre exemple, vous voyez que la paire "1" => new cr(4) est présente dans les deux tableaux et donc absente du tableau résultant.

Pour la comparaison, la fonction callback de l'utilisateur est utilisée. Cette fonction doit retourner un entier inférieur, égal ou supérieur à zéro si le premier argument est respectivement plus petit, égal ou plus grand que le second.

Note : Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau multi-dimensionnel. Vous pouvez, bien sûr, tester une dimension particulière en utilisant par exemple, array_udiff_assoc($array1[1], $array2[1], "compare_func");.

Voir aussi
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() et
array_uintersect_uassoc().

Précédent | Sommaire | Suivant
array_sum | Niveau supérieur | array_udiff_uassoc


array_udiff_uassoc

(PHP 5)

array_udiff_uassoc -- Calcule la différence de deux tableaux associatifs, compare les données et les index avec une fonction de callback

Description

array array_udiff_uassoc ( array array1, array array2 [, array ..., callback data_compare_func, callback key_compare_func] )

array_diff_uassoc() retourne un array contenant toutes les valeurs de array1 qui ne sont pas présentes dans l'un des autres arguments array2, .... Notez que les clés sont utilisées dans les comparaisons contrairement à array_diff() et array_udiff(). Cette comparaison est effectuée par une fonction callback de l'utilisateur : data_compare_func. Ce comportement est différent de celui de array_diff_assoc() qui utilise une fonction interne pour les comparaisons. La comparaison des clés (indices) est effectuée par la fonction callback 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.

Exemple 1. Exemple avec array_udiff_uassoc()

<?php
class cr {
    private $priv_member;
        function cr($val) {
        $this->priv_member = $val;
    }
    static function comp_func_cr($a, $b) {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }
    static function comp_func_key($a, $b) {
        if ($a === $b) return 0;
        return ($a > $b)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr( 3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_uassoc($a, $b, array("cr", "comp_func_cr"), array("cr","comp_func_key"));
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

Dans notre exemple, vous voyez que la paire "1" => new cr(4) est présente dans les deux tableaux et donc, absente du tableau résultant. Gardez en tête que vous devez fournir deux fonctions callback.

Pour la comparaison, la fonction callback de l'utilisateur est utilisée. Cette fonction doit retourner un entier inférieur, égal ou supérieur à zéro si le premier argument est respectivement plus petit, égal ou plus grand que le second.

Note : Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau multi-dimensionnel. 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(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff(),
array_udiff_assoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() et
array_uintersect_uassoc().

Précédent | Sommaire | Suivant
array_udiff_assoc | Niveau supérieur | array_udiff


array_udiff

(PHP 5)

array_udiff -- Calcule la différence entre deux tableaux en utilisant une fonction callback

Description

array array_udiff ( array array1, array array2 [, array ..., callback data_compare_func] )

array_udiff() retourne un tableau contenant toutes les valeurs de array1 qui ne sont pas présentes dans les autres arguments array2, .... Notez que les clés sont préservées. Pour la comparaison des données, la fonction data_compare_func est utilisée. Cette fonction doit retourner un entier plus petit que, égal à, ou plus grand que zéro si le premier argument est respectivement plus petit que, égal au, ou plus grand que le second. Ce comportement est différent de celui de array_diff() où une fonction interne de comparaison des données est utilisée.

Exemple 1. Exemple avec array_udiff()

<?php
class cr {
    private $priv_member;
        function cr($val) {
        $this->priv_member = $val;
    }
    static function comp_func_cr($a, $b) {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr( 3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )

)

Note : Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau multi-dimensionnel. 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(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() et
array_uintersect_uassoc().

Précédent | Sommaire | Suivant
array_udiff_uassoc | Niveau supérieur | array_uintersect_assoc


array_uintersect_assoc

(PHP 5)

array_uintersect_assoc -- Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les donnée en utilisant une fonction de callback

Description

array array_uintersect_assoc ( array array1, array array2 [, array ..., callback data_compare_func] )

array_uintersect_assoc() retourne un tableau contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les arguments. Ntez 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 callback.

Exemple 1. Exemple avec array_uintersect_assoc()

<?php
$array1 = array("a" => "vert", "b" => "marron", "c" => "bleu", "rouge");
$array2 = array("a" => "VERT", "B" => "marron", "jaune", "rouge");

print_r(array_uintersect_assoc($array1, $array2, "strcasecmp"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => vert
)

Pour la comparaison, une fonction de callback spécifiée par l'utilisateur est utilisée. Elle doit retourner un entier, plus petit que, égal à ou plus grand que zéro si le premier argument est considéré comme étant, respectivement, plus petit que, égal à ou plus grand le second.

Voir aussi
array_uintersect(),
array_intersect_assoc(),
array_intersect_uassoc() et
array_uintersect_uassoc().

Précédent | Sommaire | Suivant
array_udiff | Niveau supérieur | array_uintersect_uassoc


array_uintersect_uassoc

(PHP 5)

array_uintersect_uassoc -- Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les indexes des deux tableaux en utilisant une fonction de callback

Description

array array_uintersect_uassoc ( array array1, array array2 [, array ..., callback data_compare_func, callback key_compare_func] )

array_uintersect_uassoc() retourne une tableau contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les arguments. Notez que les clés sont utilisées dans la comparaison en opposition à la fonction array_uintersect(). Les données et les index sont comparés en utilisant une fonction de callback.

Exemple 1. Exemple avec array_uintersect_uassoc()

<?php
$array1 = array("a" => "vert", "b" => "marron", "c" => "bleu", "rouge");
$array2 = array("a" => "VERT", "B" => "marron", "jaune", "rouge");

print_r(array_uintersect_uassoc($array1, $array2, "strcasecmp", "strcasecmp"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => vert
    [b] => marron
)

Pour la comparaison, une fonction de callback spécifiée par l'utilisateur est utilisée. Elle doit retourner un entier, plus petit que, égal à ou plus grand que zéro si le premier argument est considéré comme étant, respectivement, plus petit que, égal à ou plus grand le second.

Voir aussi
array_uintersect(),
array_intersect_assoc(),
array_intersect_uassoc() et
array_uintersect_assoc().

Précédent | Sommaire | Suivant
array_uintersect_assoc | Niveau supérieur | array_uintersect


array_uintersect

(PHP 5)

array_uintersect -- Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de callback

Description

array array_uintersect ( array array1, array array2 [, array ..., callback data_compare_func] )

array_uintersect() retourne un tableau contenant toutes les valeurs du tableau array1 qui sont présentes dans tous les arguments. Les données sont comparées en utilisant une fonction de callback.

Exemple 1. Exemple avec array_uintersect()

<?php
$array1 = array("a" => "vert", "b" => "marron", "c" => "bleu", "rouge");
$array2 = array("a" => "VERT", "B" => "marron", "jaune", "rouge");

print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => vert
    [b] => marron
    [0] => rouge
)

Pour la comparaison, une fonction de callback spécifiée par l'utilisateur est utilisée. Elle doit retourner un entier, plus petit que, égal à ou plus grand que zéro si le premier argument est considéré comme étant, respectivement, plus petit que, égal à ou plus grand le second.

Voir aussi
array_intersect(),
array_uintersect_assoc(),
array_intersect_uassoc() et
array_uintersect_uassoc().

Précédent | Sommaire | Suivant
array_uintersect_uassoc | Niveau supérieur | array_unique


array_unique

(PHP 4 >= 4.0.1, PHP 5)

array_unique -- Dédoublonne un tableau

Description

array array_unique ( array array )

array_unique() prend le tableau array et retourne un nouveau tableau, complètement dédoublonné.

Notez que les clés sont préservées. array_unique() trie les valeurs traitées comme des chaînes dans un premier temps, puis garde la première clé rencontrée pour chaque valeur et ignore les clés suivantes. Cela ne signifie pas que la clé de la première valeur rencontrée du tableau array non trié sera conservée.

Note : Deux éléments sont considérés comme égaux si et seulement si (string) $elem1 === (string) $elem2. En clair : lorsque la représentation en chaîne de caractères est identique.

Le premier élément sera utilisé.

Exemple 1. Exemple avec array_unique()

<?php
$input = array ("a" => "vert", "rouge", "b" => "vert", "bleu", "rouge");
$result = array_unique ($input);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [a] => vert
    [0] => rouge
    [1] => bleu
)

Exemple 2. array_unique() et les types de valeurs

<?php
$input = array (4,"4","3",4,3,"3");
$result = array_unique ($input);
var_dump($result);
?>

Le résultat du programme sera (PHP 4.0.6) :

array(2) {
  [3]=>
  int(4)
  [4]=>
  int(3)
}

Précédent | Sommaire | Suivant
array_uintersect | Niveau supérieur | array_unshift


array_unshift

(PHP 4, PHP 5)

array_unshift -- Empile un ou plusieurs éléments au début d'un tableau

Description

int array_unshift ( array &array, mixed var [, mixed ...] )

array_unshift() ajoute les éléments var, ..., 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.

array_unshift() retourne le nouveau nombre d'éléments du tableau array.

Exemple 1. Exemples avec array_unshift()

<?php
$queue = array ("orange", "banane");
array_unshift ($queue, "pomme", "framboise");
print_r($queue);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => pomme
    [1] => framboise
    [2] => orange
    [3] => banane
)

Voir aussi
array_shift(),
array_push() et
array_pop().

Précédent | Sommaire | Suivant
array_unique | Niveau supérieur | array_values


array_values

(PHP 4, PHP 5)

array_values -- Retourne les valeurs d'un tableau

Description

array array_values ( array input )

array_values() retourne les valeurs du tableau input et l'indexe numériquement.

Exemple 1. Exemples avec array_values()

<?php
$array = array ("taille" => "XL", "couleur" => "vert");
print_r(array_values ($array));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => XL
    [1] => vert
)

Voir aussi array_keys().

Précédent | Sommaire | Suivant
array_unshift | Niveau supérieur | array_walk_recursive


array_walk_recursive

(PHP 5)

array_walk_recursive -- Applique une fonction utilisateur récursivement à chaque membre du tableau

Description

bool array_walk_recursive ( array &input, callback funcname [, mixed userdata] )

array_walk_recursive() applique la fonction utilisateur funcname à chaque élément du tableau input. Cette fonction se reproduira dans toutes les profondeurs du tableau. La valeur du paramètre input étant le premier et la clé/index, le second. Si le paramètre optionnel userdata est fourni, il sera passé comme troisième paramètre à la fonction de callback funcname.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Si funcname doit être exécuté avec les valeurs actuelles du tableau, spécifiez le troisième paramètre de funcname par référence. Alors, tout changement effectué sur les éléments de ce tableau sera également effectué sur le tableau original.

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 "$key tient $item\n";
}

array_walk_recursive($fruits, 'test_print');
?>

L'exemple ci-dessus va afficher :

a tient apple
b tient banana
sour tient lemon

Vous devez noter que la clé 'sweet' n'est jamais affichée. Toute clé qui tient un tableau n'est pas passée à la fonction.

Voir aussi array_walk() et information à propos de callback type.

Précédent | Sommaire | Suivant
array_values | Niveau supérieur | array_walk


array_walk

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

array_walk -- Exécute une fonction sur chacun des éléments d'un tableau

Description

bool array_walk ( array &array, callback funcname [, mixed userdata] )

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exécute la fonction funcname définie par l'utilisateur sur chaque élément du tableau array. Typiquement, funcname prend deux paramètres. La valeur du paramètre input étant le premier et la clé/index, le second. Si le paramètre optionnel userdata est fourni, il sera passé comme troisième paramètre à la fonction définie par l'utilisateur funcname.

Si function requiert plus de paramètres que ceux donnés, une alerte E_WARNING sera générée à chaque fois que la fonction array_walk() appellera funcname. Ces alertes peuvent ne pas être affichées en utilisant l'opérateur d'erreur PHP @ lors de l'appel de la fonction array_walk() ou en utilisant error_reporting().

Note : Si funcname doit travailler avec les véritables valeurs du tableau, spécifiez que le premier paramètre de funcname doit être passé par référence. Alors, les éléments seront directement modifiés dans le tableau.

Note : Passer les clés et userdata à funcname a été ajouté en PHP 4.0.0

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.

Les utilisateurs ne peuvent pas modifier le tableau lui-même depuis la fonction de callback. Par exemple, Ajout/Effacement d'éléments, réinitialisation d'éléments, etc. Si le tableau sur lequel array_walk() est appliqué est changé, le comportement de la fonction est indéfini et non prévisible.

Exemple 1. Exemple avec array_walk()

<?php;
$fruits = array ("d"=>"citron", "a"=>"orange", "b"=>"banane", "c"=>"pomme");

function test_alter(&$item1, $key, $prefix) {
    $item1 = "$prefix: $item1";
}

function test_print ($item2, $key) {
    echo "$key. $item2<br />\n";
}

echo 'Avant... '."\n";
array_walk ($fruits, 'test_print');

array_walk ($fruits, 'test_alter', 'fruit');
echo '...et après :'."\n";

array_walk ($fruits, 'test_print');
?>

L'exemple ci-dessus va afficher :

Avant...
d. citron
a. orange
b. banane
c. pomme
...et après :
d. fruit: citron
a. fruit: orange
b. fruit: banane
c. fruit: pomme

Voir aussi
array_walk_recursive(),
create_function(),
list(),
foreach,
each(),
call_user_func_array(),
array_map() et
information à propos de callback type.

Précédent | Sommaire | Suivant
array_walk_recursive | Niveau supérieur | array


array

(PHP 3, PHP 4, PHP 5)

array -- Crée un tableau

Description

array array ( [mixed ...] )

array() retourne un tableau créé avec les paramètres passés .... On peut attribuer un index particulier à une valeur avec l'opérateur =>.

Note : array() est un élément de langage utilisé pour représenter des tableaux littéraux, et non pas une fonction au sens strict du terme.

La syntaxe "index => valeur", séparée par des virgules, définit les index et leur valeur. Un index peut être une chaîne ou un nombre. Si l'index est omis, un index numérique sera automatiquement généré (commençant à 0). Si l'index est un entier, le prochain index généré prendra la valeur d'index la plus grande + 1. Notez que si deux index identiques sont définis, le dernier remplacera le premier.

Avoir une virgule après avoir défini la dernière entrée, bien qu'inutile, est une syntaxe valide.

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"=>"banane", "c"=>"pomme"),
    "nombres" => array (1, 2, 3, 4, 5, 6),
    "trous"   => array ("premier", 5 => "second", "troisième")
);
?>

Exemple 2. Index automatique d'un tableau 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. Tableau d'index 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
)

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 parenthèses.

Exemple 4. Accéder à un tableau dans des doubles guillemets

<?php

$foo = array('bar' => 'baz');
echo "Hello {$foo['bar']}!"; // Hello baz!

?>

Voir aussi
array_pad(),
list(),
count(),
foreach et
range().

Précédent | Sommaire | Suivant
array_walk | Niveau supérieur | arsort


arsort

(PHP 3, PHP 4, PHP 5)

arsort -- Trie un tableau en ordre inverse

Description

bool arsort ( array &array [, int sort_flags] )

arsort() trie le tableau array de telle manière que la corrélation entre les index et les valeurs soit conservée. L'usage principal est lors de tri de tableaux associatifs où l'ordre des éléments est important.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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.

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez la fonction sort().

Voir aussi
asort(),
rsort(),
ksort() et
sort().

Précédent | Sommaire | Suivant
array | Niveau supérieur | asort


asort

(PHP 3, PHP 4, PHP 5)

asort -- Trie un tableau et conserve l'association des index

Description

bool asort ( array &array [, int sort_flags] )

asort() trie le tableau array de telle manière que la corrélation entre les index et les valeurs soit conservée. L'usage principal est lors de tri de tableaux associatifs où l'ordre des éléments est important.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec asort()

<?php
$fruits = array("d"=>"papaye",
                "a"=>"orange",
                "b"=>"banane",
                "c"=>"ananas");
asort($fruits);
foreach ($fruits as $key => $val) {
   echo "$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

fruits[c] = ananas
fruits[b] = banane
fruits[a] = orange
fruits[d] = papaye

Les fruits ont été triés par ordre alphabétique, et leurs index respectifs ont été conservés.

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez le manuel pour la fonction sort().

Voir aussi
arsort(),
rsort(),
ksort() et
sort().

Précédent | Sommaire | Suivant
arsort | Niveau supérieur | compact


compact

(PHP 4, PHP 5)

compact -- Crée un tableau à partir de variables et de leur valeur

Description

array compact ( mixed varname [, mixed ...] )

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.

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(). compact() retourne le tableau ainsi créé.

Toute chaîne non reconnue dans la table des symboles sera tout simplement ignorée.

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

Exemple 1. Exemple avec compact()

<?php
$ville = "Montréal";
$province = "Québec";
$evenement = "Conférence PHP Québec";
$location_vars = array("ville", "province");
$result = compact("evenement", "rien ici", $location_vars);
print_r($result);
?>

L'exemple ci-dessus va afficher :

Array
(
    [evenement] => Conférence PHP Québec
    [ville] => Montréal
    [province] => Québec
)

Voir aussi extract().

Précédent | Sommaire | Suivant
asort | Niveau supérieur | count


count

(PHP 3, PHP 4, PHP 5)

count -- Compte le nombre d'éléments d'un tableau ou le nombre de propriétés d'un objet

Description

int count ( mixed var [, int mode] )

count() retourne le nombre d'éléments dans var, qui est généralement un tableau et tout le reste, sauf les objets, n'aura qu'un élément.

Pour les objets, count() retourne le nombre de propriétés non-statiques, sans tenir compte de la visibilité. Si vous avez SPL d'installé, vous pouvez vous accrocher à la fonction count() en implémentant l'interface Countable. Cette interface a exactement une méthode, count(), qui retourne la valeur retournée par la fonction count().

Si le paramètre var n'est ni un objet, ni un tableau, 1 sera retourné. Il y a néanmoins une exception : si le paramètre var vaut NULL, 0 sera retourné.

Note : Le paramètre optionnel mode est disponible depuis PHP 4.2.0.

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. La valeur par défaut pour mode est 0. count() ne détecte pas la récursion infinie.

Attention

count() peut retourner 0 pour une variable qui n'a pas été affectée, ou pour un tableau vide. Utilisez plutôt isset() pour tester si la variable existe.

Reportez-vous à la section sur les Tableaux du manuel, pour plus de détails sur le fonctionnement des tableaux en PHP.

Exemple 1. Exemple avec count()

<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count ($a);
// $result == 3

$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
$result = count ($b);
// $result == 3;

$result = count(null);
// $result == 0;

$result = count(false);
// $result == 1;

$obj = new StdClass;
$obj->foo = 'Une propriété';
$obj->bar = 'Une autre propriété';
$result = count($obj);
// $result == 2;
?>

Exemple 2. Exemple récursif avec count() (PHP >= 4.2.0)

<?php
$food = array( 'fruits'  => array('orange', 'banane', 'pommes'),
               'legumes'  => array('carotte', 'chou','pois'));

// count récursif
echo count($food, COUNT_RECURSIVE); // affiche 8

// count normal
echo count($food);                  // affiche 2

?>

Voir aussi
is_array(),
isset() et
strlen().

Précédent | Sommaire | Suivant
compact | Niveau supérieur | current


current

(PHP 3, PHP 4, PHP 5)

current -- Retourne l'élément courant du tableau

Description

mixed current ( array &array )

Chaque tableau entretient un pointeur interne, qui est initialisé lorsque le premier élément est inséré dans le tableau.

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, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Note : Vous ne serez pas capable de distinguer la fin d'un tableau avec l'élément booléen FALSE. Pour traverser correctement un tableau qui peut contenir l'élément FALSE, voyez la fonction each().

Exemple 1. Exemple avec current()

<?php
$transport = array('pied', 'velo', 'voiture', 'avion');
$mode = current($transport); // $mode = 'pied';
$mode = next($transport);    // $mode = 'velo';
$mode = current($transport); // $mode = 'velo';
$mode = prev($transport);    // $mode = 'pied';
$mode = end($transport);     // $mode = 'avion';
$mode = current($transport); // $mode = 'avion';
?>

Voir aussi
end(),
key(),
next(),
prev(),
reset(), et
each().

Précédent | Sommaire | Suivant
count | Niveau supérieur | each


each

(PHP 3, PHP 4, PHP 5)

each -- Retourne chaque paire clé/valeur d'un tableau

Description

array each ( array &array )

each() retourne la paire clé/valeur courante du tableau array et avance le pointeur de tableau. 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.

Exemple 1. Exemples avec each()

<?php
$foo = array("ghislain", "damien", "didou", "guillaume", "jim", "christophe");
$bar = each($foo);
print_r($bar);
?>

L'exemple ci-dessus va afficher :

Array
(
    [1] => ghislain
    [value] => ghislain
    [0] => 0
    [key] => 0
)
<?php
$foo = array("Mehdi" => "Didou", "Damien" => "Dams");
$bar = each($foo);
print_r($bar);
?>

L'exemple ci-dessus va afficher :

Array
(
    [1] => Didou
    [value] => Didou
    [0] => Mehdi
    [key] => Mehdi
)

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' => 'pomme', 'b' => 'banane', 'c' => 'canneberge');

reset($fruit);
while (list($key, $val) = each($fruit)) {
    echo "$key => $val\n";
}
?>

L'exemple ci-dessus va afficher :

a => pomme
b => banane
c => canneberge

Après chaque appel à each(), le pointeur de tableau est déplacé au prochain élément, ou sur le dernier élément, lorsqu'on arrive à la fin. Vous devez utiliser reset() si vous voulez traverser le tableau à nouveau avec each().

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.

Voir aussi
key(),
list(),
current(),
reset(),
next(),
prev() et
foreach.

Précédent | Sommaire | Suivant
current | Niveau supérieur | end


end

(PHP 3, PHP 4, PHP 5)

end -- Positionne le pointeur de tableau en fin de tableau

Description

mixed end ( array &array )

end() déplace le pointeur interne du tableau array jusqu'au dernier élément et retourne sa valeur.

Exemple 1. Exemple avec end()

<?php

$fruits = array('pomme', 'banane', 'myrtille');
echo end($fruits); // myrtille

?>

Voir aussi
current(),
each(),
prev(),
next() et
reset().

Précédent | Sommaire | Suivant
each | Niveau supérieur | extract


extract

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

extract -- Importe les variables dans la table des symboles

Description

int extract ( array var_array [, int extract_type [, string prefix]] )

extract() sert à exporter un tableau vers la table des symboles. Elle prend un tableau associatif var_array, 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 extract_type et prefix.

Note : Depuis la version 4.0.5, extract() retourne le nombre de variables extraites.

Note : EXTR_IF_EXISTS et EXTR_PREFIX_IF_EXISTS ont été introduites en PHP version 4.2.0.

Note : EXTR_REFS a été introduite en PHP 4.3.0.

extract() vérifie l'existence de la variable avant de la créer. Le traitement des collisions est déterminé par extract_type. 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. À partir de la version 4.0.5, les variables numériques sont aussi préfixées.

EXTR_PREFIX_INVALID

Préfixer uniquement les variables aux noms invalides ou numériques avec le préfixe prefix. Ceci a été ajouté en PHP 4.0.5.

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. Cette option a été ajoutée en PHP 4.2.0.

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. Cette option a été ajoutée en PHP 4.2.0.

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 var_array. Vous pouvez utiliser cette option seule, ou bien la combiner avec d'autres options avec l'opérateur OR, dans le paramètre extract_type. Cette option a été ajoutée en PHP 4.3.0.

Si extract_type est omis, extract() utilise EXTR_OVERWRITE par défaut.

Notez que prefix n'est nécessaire que pour les valeurs de extract_type 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.

extract() retourne le nombre de variables réellement importées dans la table des symboles.

Avertissement

N'utilisez pas extract() sur des données inconnues, comme les données utilisateurs ($_GET, etc). Si vous le faites, par exemple, pour rendre compatible un vieux code avec register_globals à Off de façon temporaire, assurez-vous d'utiliser l'une des constantes extract_type qui n'écrasent pas les valeurs, comme EXTR_SKIP. Sachez aussi que vous devez maintenant extraire dans le même ordre comme il est défini dans variables_order dans php.ini.

Une utilisation possible de la fonction extract() est l'exportation vers la table des symboles de tableaux de variables retournés par wddx_deserialize().

Exemple 1. Exemple avec extract()

<?php
// Supposons que $var_array est un tableau retourné
// par wddx_deserialize()
$taille = "grand";
$var_array = array("couleur" => "bleu",
                   "taille"  => "moyen",
                   "forme"   => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");
echo "$couleur, $taille, $forme, $wddx_taille\n";
?>

L'exemple ci-dessus va afficher :

bleu, grand, sphere, moyen

La variable $taille 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_taille. Si EXTR_SKIP avait été utilisée, alors $wddx_taille n'aurait pas été créé. Avec EXTR_OVERWRITE, $taille aurait pris la valeur "moyen", et avec EXTR_PREFIX_ALL, les variables créées seraient $wddx_couleur, $wddx_taille et $wddx_forme.

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.

Voir aussi compact().

Précédent | Sommaire | Suivant
end | Niveau supérieur | in_array


in_array

(PHP 4, PHP 5)

in_array -- Indique si une valeur appartient à un tableau

Description

bool in_array ( mixed needle, array haystack [, bool strict] )

in_array() recherche needle dans haystack et retourne TRUE s'il s'y trouve, ou FALSE sinon.

Le troisième paramètre strict est optionnel. S'il vaut TRUE alors in_array() vérifiera aussi que le type du paramètre needle correspond au type de la valeur trouvée dans haystack.

Note : Si needle est une chaîne, la comparaison est faite en tenant compte de la casse.

Note : Dans les versions antérieure à 4.2.0, needle ne pouvait pas être un tableau.

Exemple 1. Exemple avec in_array()

<?php
  $os = array ("Mac", "NT", "Irix", "Linux");
  if (in_array ("Linux", $os)) {
    print "Trouvé Linux";
  }
  if (in_array ("mac", $os)) {
    print "Trouvé mac";
  }
?>

La seconde condition échoue, car in_array() est sensible à la casse. Le script retourne :

Trouvé Linux

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'  a été trouvé avec recherche stricte\n";
if (in_array(1.13, $a, TRUE))
    echo "1.13  a été trouvé avec recherche stricte\n";
?>

L'exemple ci-dessus va afficher :

1.13 a été trouvé avec recherche stricte

Exemple 3. Exemple avec in_array() et deux tableaux en paramètres

<?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' a été trouvé\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(),
array_key_exists() et
isset().

Précédent | Sommaire | Suivant
extract | Niveau supérieur | key


key

(PHP 3, PHP 4, PHP 5)

key -- Retourne une clé d'un tableau associatif

Description

mixed key ( array &array )

key() retourne la clé courante dans le tableau array.

Exemple 1. Exemple avec key()

<?php
$array = array(
    'fruit1' => 'pomme',
    'fruit2' => 'orange',
    'fruit3' => 'raisin',
    'fruit4' => 'pomme',
    'fruit5' => 'pomme');

// Cette boucle affiche toutes les clés
// dont la valeur vaut 'pomme'

while ($fruit_name = current($array)) {
    if ($fruit_name == 'pomme') {
        echo key($array) . '<br />';
    }
    next($array);
}
?>

Voir aussi current() et next().

Précédent | Sommaire | Suivant
in_array | Niveau supérieur | krsort


krsort

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

krsort -- Trie un tableau en sens inverse et suivant les clés

Description

bool krsort ( array &array [, int sort_flags] )

krsort() trie le tableau array en ordre inverse et suivant les clés, en maintenant la correspondance entre les clés et les valeurs. Cette fonction est pratique pour les tableaux associatifs.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec krsort()

<?php
$fruits = array("d"=>"papaye","a"=>"orange","b"=>"banane","c"=>"ananas");
krsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

d = papaye
c = ananas
b = banane
a = orange

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez le manuel pour la fonction sort().

Voir aussi
asort(),
arsort(),
ksort(),
sort(),
natsort() et
rsort().

Précédent | Sommaire | Suivant
key | Niveau supérieur | ksort


ksort

(PHP 3, PHP 4, PHP 5)

ksort -- Trie un tableau suivant les clés

Description

bool ksort ( array &array [, int sort_flags] )

ksort() trie le tableau array suivant les clés, en maintenant la correspondance entre les clés et les valeurs. Cette fonction est pratique pour les tableaux associatifs.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec ksort()

<?php
$fruits = array("d"=>"papaye","a"=>"orange","b"=>"banane","c"=>"ananas");
ksort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

a => orange
b => banane
c => ananas
d => papaye

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez le manuel pour la fonction sort().

Note : Le second paramètre a été ajouté en PHP 4.0.

Voir aussi
asort(),
arsort(),
krsort(),
uksort(),
sort(),
natsort() et
rsort().

Précédent | Sommaire | Suivant
krsort | Niveau supérieur | list


list

(PHP 3, PHP 4, PHP 5)

list -- Transforme une liste de variables en tableau

Description

void list ( mixed varname, mixed ... )

Tout comme array(), list() n'est pas une véritable fonction, mais un élément de langage, qui permet de rassembler les variables varname, ... sous forme de tableau, pour les assigner en une seule ligne.

Note : list() fonctionne uniquement avec des tableaux à indexation numérique, et suppose que l'indexation commence à 0.

Exemple 1. Exemple avec list()

<?php

$info = array('café', 'noir', 'cafeine');

// Liste de toutes les variables
list($drink, $color, $power) = $info;
echo "$drink est $color et la $power le rend particulier.\n";

// Liste de certaines variables
list($drink, , $power) = $info;
echo "$drink contient de la $power.\n";

// Ou bien, n'utilisons que le troisième
list( , , $power) = $info;
echo "J'ai besoin de $power!\n";

?>

Exemple 2. Exemple avec list() et MySQL

<table>
 <tr>
  <th>Nom de l'employé</th>
  <th>Salaire</th>
 </tr>

<?php

$resultat = mysql_query ("SELECT id, nom, salaire FROM employes",$conn);
while (list ($id, $nom, $salaire) = mysql_fetch_row ($resultat)) {
    echo " <tr>\n".
           "  <td><a href=\"info.php?id=$id\">$nom</a></td>\n".
           "  <td>$salaire</td>\n".
           " </tr>\n";
}

?>
</table>

Avertissement

list() assigne les valeurs en commençant par la valeur la plus à droite. Si vous utiliser ces variables, ce ne sera pas un problème. Mais si vous utilisez des tableaux, vous serez surpris de voir que list() les affecte de droite à gauche.

Exemple 3. Exemple avec list() en tenant compte de l'ordre

<?php

$info = array('café', 'noir', 'cafeine');

list($a[0], $a[1], $a[2]) = $info;

var_dump($a);

?>

Cet exemple donne le résultat suivant (notez l'ordre d'affichage des éléments, en comparaison avec l'ordre dans lequel ils ont été écrits dans la syntaxe de list()) :

array(3) {
  [2]=>
  string(8) "cafeine"
  [1]=>
  string(5) "noir"
  [0]=>
  string(6) "café"
}

Voir aussi
each(),
array() et
extract().

Précédent | Sommaire | Suivant
ksort | Niveau supérieur | natcasesort


natcasesort

(PHP 4, PHP 5)

natcasesort -- Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse

Description

bool natcasesort ( array &array )

natcasesort() implémente un algorithme de tri qui traite les chaînes alpha-numériques du tableau array comme un être humain tout en conservant la relation clé/valeur. C'est ce qui est appelé l'"ordre naturel".

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

natcasesort() est la version insensible à la casse de natsort().

Exemple 1. Exemple avec natcasesort()

<?php
$array1 = $array2 = array('IMG0.png', 'img12.png', 'img10.png',
'img2.png', 'img1.png', 'IMG3.png');

sort($array1);
echo "Standard sorting\n";
print_r($array1);

natcasesort($array2);
echo "\nNatural order sorting (case-insensitive)\n";
print_r($array2);
?>

L'exemple ci-dessus va afficher :

Standard sorting
Array
(
    [0] => IMG0.png
    [1] => IMG3.png
    [2] => img1.png
    [3] => img10.png
    [4] => img12.png
    [5] => img2.png
)

Natural order sorting (case-insensitive)
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 : Natural Order String Comparison

Voir aussi
sort(),
natsort(),
strnatcmp() et
strnatcasecmp().

Précédent | Sommaire | Suivant
list | Niveau supérieur | natsort


natsort

(PHP 4, PHP 5)

natsort -- Trie un tableau avec l'algorithme à "ordre naturel"

Description

bool natsort ( array &array )

natsort() implémente un algorithme de tri qui traite les chaînes alpha-numé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 :

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec natsort()

<?php
$array1 = $array2 = array ("img12.png", "img10.png", "img2.png", "img1.png");

sort($array1);
echo "Tri standard\n";
print_r($array1);

natsort($array2);
echo "Tri en ordre naturel\n";
print_r($array2);
?>

L'exemple ci-dessus va afficher :

Tri standard
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)
Tri en ordre naturel
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 : Natural Order String Comparison.

Voir aussi
natcasesort(),
strnatcmp() et
strnatcasecmp().

Précédent | Sommaire | Suivant
natcasesort | Niveau supérieur | next


next

(PHP 3, PHP 4, PHP 5)

next -- Avance le pointeur interne d'un tableau

Description

mixed next ( array &array )

next() retourne l'élément suivant du tableau array ou FALSE s'il n'y a plus d'éléments.

next() se comporte comme current(), mais avec une différence : il avance le pointeur interne de tableau d'un élément avant de retourner la valeur qu'il pointe. Lorsque le pointeur dépasse le dernier élément, next() retourne FALSE.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Note : Vous ne serez pas capable de distinguer la fin d'un tableau avec l'élément booléen FALSE. Pour traverser correctement un tableau qui peut contenir l'élément FALSE, voyez la fonction each().

Exemple 1. Exemple avec next() et ses amies

<?php
$transport = array('pied', 'velo', 'voiture', 'avion');
$mode = current($transport); // $mode = 'pied';
$mode = next($transport);    // $mode = 'velo';
$mode = next($transport);    // $mode = 'voiture';
$mode = prev($transport);    // $mode = 'velo';
$mode = end($transport);     // $mode = 'avion';
?>

Voir aussi
current(),
end(),
prev(),
reset(),
each().

Précédent | Sommaire | Suivant
natsort | Niveau supérieur | pos


pos

(PHP 3, PHP 4, PHP 5)

pos -- Alias de current()

Description

Cette fonction est un alias de : current()

Précédent | Sommaire | Suivant
next | Niveau supérieur | prev


prev

(PHP 3, PHP 4, PHP 5)

prev -- Recule le pointeur courant de tableau

Description

mixed prev ( array &array )

prev() repositionne le pointeur interne du tableau array à la dernière place qu'il occupait et en retourne la valeur, ou bien elle retourne FALSE s'il ne reste plus d'éléments.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Note : Vous ne serez pas capable de distinguer la fin d'un tableau avec l'élément booléen FALSE. Pour traverser correctement un tableau qui peut contenir l'élément FALSE, voyez la fonction each().

prev() se comporte exactement comme next(), mais elle fait reculer le pointeur plutôt que de l'avancer.

Exemple 1. Exemple avec prev() et ses amies

<?php
$transport = array('pied', 'velo', 'voiture', 'avion');
$mode = current($transport); // $mode = 'pied';
$mode = next($transport);    // $mode = 'velo';
$mode = next($transport);    // $mode = 'voiture';
$mode = prev($transport);    // $mode = 'velo';
$mode = end($transport);     // $mode = 'avion';
?>

Voir aussi
current(),
end(),
next(),
reset() et
each().

Précédent | Sommaire | Suivant
pos | Niveau supérieur | range


range

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

range -- Crée un tableau contenant un intervalle d'éléments

Description

array range ( mixed low, mixed high [, number step] )

range() retourne un tableau contenant tous les entiers depuis low jusqu'à high, inclus. Si low est supérieur à high, la séquence sera en ordre décroissant.

Nouveau paramètre : Le paramètre optionnel step a été ajouté en PHP 5.0.

Si une valeur est donnée au paramètre step, il sera utilisé comme valeur incrémentale entre les éléments de la séquence. step doit être exprimé comme un nombre entier positif. S'il n'est pas spécifié, step vaut par défaut 1.

Exemple 1. Exemple avec range()

<?php
// array(0,1,2,3,4,5,6,7,8,9)
foreach(range(0, 9) as $number) {
    echo $number;
}

// La paramètre de pas (step) a été introduit en version 4.4.0
// array(0,10,20,30,40,50,60,70,80,90,100)
foreach(range(0, 100, 10) as $number) {
    echo $number;
}

// L'utilisation des caractères a été introduit en version 4.1.0
// array('a','b','c','d','e','f','g','h','i');
foreach(range('a', 'i') as $letter) {
    echo $letter;
}
// array('c','b','a');
foreach(range('c', 'a') as $letter) {
    echo $letter;
}
?>

Note : Avant la version PHP 4.1.0, la fonction range() ne générait que des séquences d'entiers. Le support des séquences de caractères a été ajouté en PHP 4.1.0.

Attention

Dans les versions de PHP de 4.1.0 à 4.3.2, range() voyait les chaînes numériques comme des chaînes et non comme des entiers. Au lieu de cela, ils étaient utilisés comme séquence de caractères. Par exemple, "4242" était traité comme "4".

Voir aussi shuffle(), array_fill() et foreach.

Précédent | Sommaire | Suivant
prev | Niveau supérieur | reset


reset

(PHP 3, PHP 4, PHP 5)

reset -- Remet le pointeur interne de tableau au début

Description

mixed reset ( array &array )

reset() replace le pointeur de tableau array au premier élément et retourne la valeur du premier élément ou FALSE si le tableau est vide.

Exemple 1. Exemple avec reset()

<?php

$array = array('1 kilomètre', '2 kilomètres', '3 kilomètres', '4 kilomètres');

// Par défaut, le pointeur est sur le premier élément
echo current($array) . "<br />\n"; // "1 kilomètre"

// on saute deux kilomètres
next($array);
next($array);
echo current($array) . "<br />\n"; // "3 kilomètres"

// on remet le pointeur au début
reset($array);
echo current($array) . "<br />\n"; // "1 kilomètre"

?>

Voir aussi
current(),
each(),
end(),
next() et
prev().

Précédent | Sommaire | Suivant
range | Niveau supérieur | rsort


rsort

(PHP 3, PHP 4, PHP 5)

rsort -- Trie un tableau en ordre inverse

Description

bool rsort ( array &array [, int sort_flags] )

rsort() effectue un tri en ordre décroissant (du plus grand au plus petit) du tableau array.

Note : Cette fonction assigne de nouvelles clés pour les éléments du paramètre array. Elle effacera toutes les clés existantes que vous aviez pû assigner, plutôt que de réordonner les clés.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec rsort()

<?php
$fruits = array("papaye","orange","banane","ananas");
rsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

L'exemple ci-dessus va afficher :

0 = papaye
1 = orange
2 = banane
3 = ananas

Les fruits ont été classés dans l'ordre alphabétique inverse.

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez le manuel pour la fonction sort().

Voir aussi
arsort(),
asort(),
ksort(),
krsort(),
sort() et
usort().

Précédent | Sommaire | Suivant
reset | Niveau supérieur | shuffle


shuffle

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

shuffle -- Mélange les éléments d'un tableau

Description

bool shuffle ( array &array )

shuffle() mélange les éléments du tableau array.

Note : Cette fonction assigne de nouvelles clés pour les éléments du paramètre array. Elle effacera toutes les clés existantes que vous aviez pû assigner, plutôt que de réordonner les clés.

Exemple 1. Exemple avec shuffle()

<?php
$numbers = range(1,20);
srand((float)microtime()*1000000);
shuffle($numbers);
foreach ($numbers as $number) {
    echo "$number ";
}
?>

Note : Depuis PHP 4.2.0, vous n'avez plus besoin d'initialiser le générateur de nombres aléatoires avec srand() ou mt_srand() car c'est fait automatiquement.

Voir aussi
arsort(),
asort(),
ksort(),
rsort(),
sort() et
usort().

Précédent | Sommaire | Suivant
rsort | Niveau supérieur | sizeof


sizeof

(PHP 3, PHP 4, PHP 5)

sizeof -- Alias de count()

Description

Cette fonction est un alias de : count().

Précédent | Sommaire | Suivant
shuffle | Niveau supérieur | sort


sort

(PHP 3, PHP 4, PHP 5)

sort -- Trie un tableau

Description

bool sort ( array &array [, int sort_flags] )

sort() trie le tableau array. Les éléments seront triés du plus petit au plus grand.

Note : Cette fonction assigne de nouvelles clés pour les éléments du paramètre array. Elle effacera toutes les clés existantes que vous aviez pû assigner, plutôt que de réordonner les clés.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec sort()

<?php

$fruits = array("papaye","orange","banane","ananas");
sort ($fruits);
foreach ($fruits as $key => $val) {
  echo "fruits[".$key."] = ".$val."\n";
}
?>

L'exemple ci-dessus va afficher :

fruits[0] = ananas
fruits[1] = banane
fruits[2] = orange
fruits[3] = papaye

Les fruits ont été classés dans l'ordre alphabétique.

Le paramètre optionnel sort_flags peut être utilisé pour modifier le comportement de tri en utilisant ces valeurs :

Constantes de type de tri :

  • SORT_REGULAR : compare les éléments normalement (ne modifie pas les types)

  • SORT_NUMERIC : compare les éléments numériquement

  • SORT_STRING : compare les éléments comme des chaînes de caractères

  • SORT_LOCALE_STRING : compare les éléments en utilisant la configuration locale. Ajouté en PHP 5.0.2 et 4.4.0. Avant PHP 6, il utilise les locales système, qui peuvent être modifiées en utilisant la fonction setlocale(). Depuis PHP 6, vous devez utiliser la fonction i18n_loc_set_default().

Note : Le second paramètre a été ajouté en PHP 4.

Avertissement

Attention lorsque vous triez des tableaux avec des types différents de valeurs car le résultat de sort() est imprévisible.

Voir aussi
arsort(),
asort(),
ksort(),
krsort(),
natsort(),
natcasesort(),
rsort(),
usort(),
array_multisort() et
uksort().

Précédent | Sommaire | Suivant
sizeof | Niveau supérieur | uasort


uasort

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

uasort -- Trie un tableau en utilisant une fonction de callback

Description

bool uasort ( array &array, callback cmp_function )

uasort() trie le tableau array en conservant la correspondance entre les index et leurs valeurs. uasort() sert essentiellement lors de tri de tableaux associatifs où l'ordre des éléments est significatif. La fonction de comparaison utilisée cmp_function est définie par l'utilisateur.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec uasort()

<?php
function compare ($a, $b) {
    if ($a == $b) return 0;
    return ($a > $b) ? -1 : 1;
}

$a = array (4 => "quatre", 3 => "trois", 20 => "vingt", 10 => "dix");

uasort ($a, "compare");

while (list ($key, $value) = each ($a)) {
    echo "$key: $value\n";
}
?>

L'exemple ci-dessus va afficher :

20: vingt
3: trois
4: quatre
10: dix

Note : Voyez les fonctions usort() et uksort() pour des exemples de tris avec utilisation de fonction personnalisée.

Voir aussi
usort(),
uksort(),
sort(),
asort(),
arsort(),
ksort() et
rsort().

Précédent | Sommaire | Suivant
sort | Niveau supérieur | uksort


uksort

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

uksort -- Trie un tableau par ses clés en utilisant une fonction de callback

Description

bool uksort ( array &array, callback cmp_function )

uksort() trie les clés du tableau array en utilisant la fonction utilisateur cmp_function. Si un tableau doit être trié avec un critère complexe, il est préférable d'utiliser uksort().

La fonction cmp_function doit accepter deux paramètres, qui représenteront une paire de clés du tableau array. La fonction de comparaison doit retourner un entier supérieur, égal ou inférieur à zéro, pour, respectivement, indiquer que le premier argument est supérieur, égal ou inférieur au second.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec uksort()

<?php
function compare ($a, $b) {
     $a = ereg_replace('^(a|an|the) ', '', $a);
     $b = ereg_replace('^(a|an|the) ', '', $b);
     return strcasecmp($a, $b);
}

$a = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);

uksort ($a, "compare");

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(),
uasort(),
sort(),
asort(),
arsort(),
ksort(),
natsort() et
rsort().

Précédent | Sommaire | Suivant
uasort | Niveau supérieur | usort


usort

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

usort -- Trie un tableau en utilisant une fonction de comparaison

Description

bool usort ( array &array, callback cmp_function )

usort() va trier le tableau array avec ses valeurs, en utilisant une fonction définie par l'utilisateur. Si un tableau doit être trié avec un critère complexe, il est préférable d'utiliser cette méthode.

La fonction de comparaison cmp_function doit retourner un entier, qui sera inférieur, égal ou supérieur à zéro suivant que le premier argument est considéré comme plus petit, égal ou plus grand que le second argument. Si les deux arguments sont égaux, leur ordre est indéfini.

Note : Si deux éléments sont égaux, au sens de la fonction cmp_function, leur ordre sera indéfini. Jusqu'en PHP 4.0.6, la fonction de tri leur conserverait leur ordre original, mais le nouvel algorithme introduit en PHP 4.1.0 fait que ce n'est plus le cas, car cela serait trop coûteux.

Note : Cette fonction assigne de nouvelles clés pour les éléments du paramètre array. Elle effacera toutes les clés existantes que vous aviez pû assigner, plutôt que de réordonner les clés.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec usort()

<?php
function compare($a, $b)
{
    if ($a == $b) {
      return 0;
    }
    return ($a > $b) ? -1 : 1;
}

$a = array (3, 2, 5, 6, 1);

usort ($a, "compare");

foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
?>

L'exemple ci-dessus va afficher :

0: 6
1: 5
2: 3
3: 2
4: 1

Note : Évidemment dans ce cas trivial, rsort() serait plus approprié.

Exemple 2. Tri avec usort() sur un tableau multi-dimensionnel

<?php
function compare($a, $b)
{
    return strcmp($a["fruit"], $b["fruit"]);
}

$fruits[0]["fruit"] = "citron";
$fruits[1]["fruit"] = "pommes";
$fruits[2]["fruit"] = "raisins";

usort($fruits, "compare");

while (list ($key, $value) = each ($fruits)) {
    echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}
?>

Lors du tri de tableau multi-dimensionnel, $a et $b contiennent des références sur le premier élément du tableau.

L'exemple ci-dessus va afficher :

$fruits[0]: raisins
$fruits[1]: pommes
$fruits[2]: citron

Exemple 3. Tri avec usort() sur un objet

<?php
class TestObj {
    var $name;

    function TestObj($name)
    {
        $this->name = $name;
    }

    /* Ceci est une fonction de comparaison statique */
    function cmp_obj($a, $b)
    {
        $al = strtolower($a->name);
        $bl = strtolower($b->name);
        if ($al == $bl) {
          return 0;
        }
        return ($al > $bl) ? +1 : -1;
    }
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

uasort($a, array ("TestObj", "cmp_obj"));

foreach ($a as $item) {
    echo $item->name."\n";
}
?>

L'exemple ci-dessus va afficher :

b
c
d

Voir aussi
uasort(),
uksort(),
sort(),
asort(),
arsort(),
ksort(),
natsort() et
rsort().

Précédent | Sommaire | Suivant
uksort | Niveau supérieur | Aspell (Obsolète)


Aspell (Obsolète)

Manuel PHP
Précédent Suivant

VI. Aspell (Obsolète)

Introduction

Les fonctions Aspell vous permettent de vérifier l'orthographe d'un mot, et d'offrir des suggestions de correction.

Note : Cette extension a été retirée de PHP et n'est plus disponible depuis PHP 4.3.0. Si vou voulez utiliser un outil de correction orthographique avec PHP, voyez plutôt pspell. Elle utilise la bibliothèque pspell et fonctionne avec les nouvelles versions de Aspell.

Pré-requis

Aspell fonctionne avec de très vielles versions (jusqu'à la version .27.* ou presque) de la bibliothèque Aspell. Ce module et ces versions d'Aspell ne sont plus maintenues ou supportées. Si vous en avez besoin, la lirairie Aspell est disponible sur http://aspell.sourceforge.net/.

Installation

En PHP 4, ces fonctions ne sont disponibles que si PHP a été compilé avec l'option --with-aspell[=DIR].

Voir aussi

Voir aussi pspell.

Table des matières
aspell_check_raw -- Vérifie un mot sans en changer la casse et sans essayer de supprimer les espaces aux extrémités [Obsolète]
aspell_check -- Vérifie un mot [Obsolète]
aspell_new -- Charge un nouveau dictionnaire [Obsolète]
aspell_suggest -- Suggère l'orthographe d'un mot [Obsolète]

Précédent | Sommaire | Suivant
usort | Niveau supérieur | aspell_check_raw


aspell_check_raw

(PHP 3 >= 3.0.7, PHP 4 <= 4.2.3)

aspell_check_raw -- Vérifie un mot sans en changer la casse et sans essayer de supprimer les espaces aux extrémités [Obsolète]

Description

bool aspell_check_raw ( int dictionary_link, string word )

aspell_check_raw() vérifie l'orthographe d'un mot sans en changer la casse, et sans essayer de supprimer les espaces aux extrémités.

Liste de paramètres

dictionary_link

L'identifiant du lien vers le dictionnaire retourné par la fonction aspell_new().

word

Le mot testé.

Valeurs de retour

Retourne TRUE si l'orthographe est correct, FALSE sinon.

Exemples

Exemple 1. Exemple avec aspell_check_raw()

<?php

$aspell_link = aspell_new("english");

if (aspell_check_raw($aspell_link, "test")) {
    echo "L'orthographe est correct";
} else {
    echo "Désolé, l'orthographe est incorrect";
}

?>

Voir aussi

aspell_check()

Précédent | Sommaire | Suivant
Aspell (Obsolète) | Niveau supérieur | aspell_check


aspell_check

(PHP 3 >= 3.0.7, PHP 4 <= 4.2.3)

aspell_check -- Vérifie un mot [Obsolète]

Description

bool aspell_check ( int dictionary_link, string word )

aspell_check() vérifie l'orthographe d'un mot.

Liste de paramètres

dictionary_link

L'identifiant du lien vers le dictionnaire retourné par la fonction aspell_new().

word

Le mot testé.

Valeurs de retour

Retourne TRUE si l'orthographe est correct, FALSE sinon.

Exemples

Exemple 1. Exemple avec aspell_check()

<?php

$aspell_link = aspell_new("english");

if (aspell_check($aspell_link, "testt")) {
    echo "L'orthographe est correct";
} else {
    echo "Désolé, l'orthographe est incorrect";
}

?>

Voir aussi

aspell_check_raw()

Précédent | Sommaire | Suivant
aspell_check_raw | Niveau supérieur | aspell_new


aspell_new

(PHP 3 >= 3.0.7, PHP 4 <= 4.2.3)

aspell_new -- Charge un nouveau dictionnaire [Obsolète]

Description

int aspell_new ( string master [, string personal] )

aspell_new() ouvre un nouveau dictionaire et retourne un identifiant de dictionnaire pour utilisation ultérieure avec les fonctions aspell.

Liste de paramètres

master

Langue.

personal

Par défaut, une chaîne vide.

Valeurs de retour

Retourne un identifiant de lien vers un dictionnaire ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec aspell_new()

<?php
$aspell_link = aspell_new("french");
?>

Précédent | Sommaire | Suivant
aspell_check | Niveau supérieur | aspell_suggest


aspell_suggest

(PHP 3 >= 3.0.7, PHP 4 <= 4.2.3)

aspell_suggest -- Suggère l'orthographe d'un mot [Obsolète]

Description

array aspell_suggest ( int dictionary_link, string word )

aspell_suggest() retourne un tableau contenant les orthographes possibles d'un mot mal orthographié.

Liste de paramètres

dictionary_link

L'identifiant du lien vers le dictionnaire retourné par la fonction aspell_new().

word

Le mot testé.

Valeurs de retour

Retourne un tableau de suggestions.

Exemples

Exemple 1. Exemple avec aspell_suggest()

<?php

$aspell_link = aspell_new("french");

if (!aspell_check($aspell_link, "test")) {
    $suggestions = aspell_suggest($aspell_link, "test");

    foreach ($suggestions as $suggestion) {
        echo "Suggestions possibles : $suggestion<br />\n";
    }
}

?>

Précédent | Sommaire | Suivant
aspell_new | Niveau supérieur | Nombres de grande taille BCMath


Nombres de grande taille BCMath

Manuel PHP
Précédent Suivant

VII. Nombres de grande taille BCMath

Introduction

Cette extension permet de réaliser des calculs sur des nombres de précision arbitraire : la Calculatrice Binaire (Binary Calculator) supporte des nombres de toutes taille et précision, représentés sous forme de chaînes.

Pré-requis

Depuis PHP 4.0.4, libbcmath est distribuée avec PHP. Vous n'avez besoin d'aucune bibliothèque externe pour cette extension.

Installation

Ces fonctions ne sont disponibles que si l'option de configuration --enable-bcmath a été activée lors de la compilation. En PHP 3, ces fonctions ne sont disponibles que si l'option de configuration --disable-bcmath n'a pas é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.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
bcmath.scale | "0" | PHP_INI_ALL |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

bcmath.scale entier

Le nombre de décimales pour toutes les fonctions bcmath. Voir aussi bcscale().

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
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 à la puissance n-ième
bcpowmod -- Calcule le reste modulo d'un nombre élevé à une puissance
bcscale -- Détermine le nombre de décimales par défaut
bcsqrt -- Renvoie la racine carrée d'un nombre de grande taille
bcsub -- Soustrait un nombre de grande taille à un autre

Précédent | Sommaire | Suivant
aspell_suggest | Niveau supérieur | bcadd


bcadd

(PHP 3, PHP 4, PHP 5)

bcadd -- Additionne deux nombres de grande taille

Description

string bcadd ( string left_operand, string right_operand [, int scale] )

Additionne left_operand avec l'opérande right_operand.

Liste de paramètres

left_operand

L'opérande gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définire la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

La somme des deux opérandes, sous la forme d'une chaîne de caractères.

Exemples

Exemple 1. Exemple avec bcadd()

<?php
$a = '1.234';
$b = '5';

echo bcadd($a, $b);     // 6
echo bcadd($a, $b, 4);  // 6.2340
?>

Voir aussi

bcsub()

Précédent | Sommaire | Suivant
Nombres de grande taille BCMath | Niveau supérieur | bccomp


bccomp

(PHP 3, PHP 4, PHP 5)

bccomp -- Compare deux nombres de grande taille

Description

int bccomp ( string left_operand, string right_operand [, int scale] )

Compare l'opérande left_operand avec l'opérande right_operand et renvoie le résultat sous forme d'un entier.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Le paramètre optionnel scale est utilisé pour définir le nombre de digits après la décimale qui seront utilisés dans la comparaison.

Valeurs de retour

Retourne 0 si les deux opérandes sont égaux, 1 si l'opérande left_operand est plus grand que l'opérande right_operand, -1 sinon.

Exemples

Exemple 1. Exemple avec bccomp()

<?php

echo bccomp('1', '2') . "\n";   // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1

?>

Précédent | Sommaire | Suivant
bcadd | Niveau supérieur | bcdiv


bcdiv

(PHP 3, PHP 4, PHP 5)

bcdiv -- Divise deux nombres de grande taille

Description

string bcdiv ( string left_operand, string right_operand [, int scale] )

Divise l'opérande left_operand par l'opérande right_operand.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définire la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne le résultat de la division, sous la forme d'une chaîne de caractères, ou NULL si l'opérande right_operand vaut 0.

Exemples

Exemple 1. Exemple avec bcdiv()

<?php

echo bcdiv('105', '6.55957', 3);  // 16.007

?>

Voir aussi

bcmul()

Précédent | Sommaire | Suivant
bccomp | Niveau supérieur | bcmod


bcmod

(PHP 3, PHP 4, PHP 5)

bcmod -- Retourne le reste d'une division entre nombres de grande taille

Description

string bcmod ( string left_operand, string modulus )

Retourne le reste de la division entre left_operand en utilisant modulus.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

modulus

Le modulo, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne le modulo, sous la forme d'une chaîne de caractères, ou NULL si modulus vaut 0.

Exemples

Exemple 1. Exemple avec bcmod()

<?php
echo bcmod('4', '2'); // 0
echo bcmod('2', '4'); // 2
?>

Voir aussi

bcdiv()

Précédent | Sommaire | Suivant
bcdiv | Niveau supérieur | bcmul


bcmul

(PHP 3, PHP 4, PHP 5)

bcmul -- Multiplie deux nombres de grande taille

Description

string bcmul ( string left_operand, string right_operand [, int scale] )

Multiplie l'opérande left_operand par l'opérande right_operand.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définire la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne le résultat, sous la forme d'une chaîne de caractères.

Exemples

Exemple 1. Exemple avec bcmul()

<?php
echo bcmul('1.34747474747', '35', 3); // 47.161
echo bcmul('2', '4'); // 8
?>

Voir aussi

bcdiv()

Précédent | Sommaire | Suivant
bcmod | Niveau supérieur | bcpow


bcpow

(PHP 3, PHP 4, PHP 5)

bcpow -- Élève un nombre à la puissance n-ième

Description

string bcpow ( string left_operand, string right_operand [, int scale] )

Élève left_operand à la puissance right_operand.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définire la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne le résultat, sous la forme d'une chaîne de caractères.

Exemples

Exemple 1. Exemple avec bcpow()

<?php

echo bcpow('4.2', '3', 2); // 74.08

?>

Voir aussi

bcpowmod()
bcsqrt()

Précédent | Sommaire | Suivant
bcmul | Niveau supérieur | bcpowmod


bcpowmod

(PHP 5)

bcpowmod -- Calcule le reste modulo d'un nombre élevé à une puissance

Description

string bcpowmod ( string left_operand, string right_operand, string modulus [, int scale] )

Utilise la méthode d'exponentiation rapide pour élever le nombre left_operand à la puissance right_operand, et en calculant le reste modulo modulus.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

modulus

Le modulo, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définire la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne le résultat, sous la forme d'une chaîne de caractères, ou NULL si modulus vaut 0.

Notes

Note : Comme cette méthode utilise les opérations de modulo, les nombres non naturels risquent de donner des résultats inattendus. Un nombre naturel est un entier positif non-nul.

Exemples

Les deux lignes suivantes sont fonctionnellement identiques. 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 and $b are equal to each other.

?>

Voir aussi

bcpow()
bcmod()

Précédent | Sommaire | Suivant
bcpow | Niveau supérieur | bcscale


bcscale

(PHP 3, PHP 4, PHP 5)

bcscale -- Détermine le nombre de décimales par défaut

Description

bool bcscale ( int scale )

Définit la précision par défaut pour toutes les fonctions mathématiques sur des nombres de taille arbitraire qui suivent et qui omettent le paramètre scale.

Liste de paramètres

scale

Le facteur de précision.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

?>

Précédent | Sommaire | Suivant
bcpowmod | Niveau supérieur | bcsqrt


bcsqrt

(PHP 3, PHP 4, PHP 5)

bcsqrt -- Renvoie la racine carrée d'un nombre de grande taille

Description

string bcsqrt ( string operand [, int scale] )

Renvoie la racine carrée de l'opérande operand.

Liste de paramètres

operand

L'opérande, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définire la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Retourne la racine carrée de l'opérande, sous la forme d'une chaîne de caractères, ou NULL si l'opérande operand est négatif.

Exemples

Exemple 1. Exemple avec bcsqrt()

<?php

echo bcsqrt('2', 3); // 1.414

?>

Voir aussi

bcpow()

Précédent | Sommaire | Suivant
bcscale | Niveau supérieur | bcsub


bcsub

(PHP 3, PHP 4, PHP 5)

bcsub -- Soustrait un nombre de grande taille à un autre

Description

string bcsub ( string left_operand, string right_operand [, int scale] )

Soustrait l'opérande right_operand à l'opérande left_operand.

Liste de paramètres

left_operand

L'opérande de gauche, sous la forme d'une chaîne de caractères.

right_operand

L'opérande de droite, sous la forme d'une chaîne de caractères.

scale

Ce paramètre optionnel est utilisé pour définir le nombre de digits après la décimale à placer dans le résultat. Vous pouvez également définire la précision globale par défaut pour toutes les fonctions en utilisant la fonction bcscale().

Valeurs de retour

Le résultat de la soustraction, sous la forme d'une chaîne de caractères.

Exemples

Exemple 1. Exemple avec bcsub()

<?php

$a = '1.234';
$b = '5';

echo bcsub($a, $b);     // -3
echo bcsub($a, $b, 4);  // -3.7660

?>

Voir aussi

bcadd()

Précédent | Sommaire | Suivant
bcsqrt | Niveau supérieur | Compilateur bytecode pour PHP


Compilateur bytecode pour PHP

Manuel PHP
Précédent Suivant

VIII. Compilateur bytecode pour PHP

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Bcompiler a été écrit pour plusieurs raisons :

Pour encoder un script complet dans une application PHP propriétaire
Pour encoder des classes et/ou des fonctions dans une application PHP propriétaire
Pour permettre d'utiliser des applications php-gtk sur des bureaux clients sans avoir besoin du fichier php.exe.
Pour rendre faisable de convertir un code PHP en C

Le premier de ces buts est réalisé en utilisant les fonctions bcompiler_write_header(), bcompiler_write_file() et bcompiler_write_footer(). Les fichiers de bytecode peuvent être écrit en non-compressés ou en texte plein. Pour utiliser le bytecode généré, vous pouvez simplement l'inclure avec les structures include ou require.

Le second but est atteint en utilisant les fonctions bcompiler_write_header(), bcompiler_write_class(), bcompiler_write_footer(), bcompiler_read() et bcompiler_load(). Les fichiers bytecode peuvent être écrit en non-compressés ou en texte plein. La fonction bcompiler_load() lit un fichier bytecode compressé bzippé, qui tend à avoir une taille d'1/3 par rapport au fichier original.

Pour créer des fichiers du type EXE, bcompiler doit être utilisé avec un fichier sapi modifié ou une version de PHP qui a été compilé en tant que bibliothèque partagée. Dans ce cas, bcompiler lit le bytecode compressé depuis la fin du fichier exe.

bcompiler peut augmenter d'environ 30 % ces performances lorsqu'il est utilisé avec uniquement du bytecode non-compressé. Mais gardez en mémoire que le bytecode non-compressé peut être 5 fois plus long (voir plus) que le code source original. Utiliser la compression bytecode peut vous permettre de réduire l'espace disque mais la décompression requiert plus de temps que de parser simplement le code source. bcompiler n'effectue aucune optimisation du bytecode, cette fonctionnalité pourra être ajoutée dans le futur...

bcompiler n'est pas susceptible d'améliorer les performances d'exécution, car il ne fait que dévier l'étape de compilation du processus courant PHP et la remplace par le processus d'importation dans bcompiler. Il n'optimise pas le bytecode, ce qui pourrait être ajouté dans le futur.

En terme de sécurité du code, il est possible de dire qu'il est impossible de recréer le code source exact depuis lequel il a été construit et sans les commentaires accompagnant le code source. Il serait inefficace d'utiliser bcompiler pour recréer et modifier une classe. Malgrès tout, il reste possible de récupérer les données depuis un fichier bytecode encodé avec bcompiler, donc, n'y mettez pas vos mots de passe ou toute autre donnée de ce genre.

Installation

Note succincte d'installation :

  • Vous avez besoin d'au moins PHP 4.3.0 pour que la compression fonctionne

  • Pour l'installer sur PHP 4.3.0 et suivant, à l'invite de commande Unix, tapez la commande : pear install bcompiler

  • Pour l'installer sous Windows, tant que le mécanisme de distribution de paquets n'est pas terminé, merci de rechercher dans les archives de la liste de diffusion pear-general les paquets pré-construits. (Ou envoyer un email sur cette liste si vous ne trouvez aucune référence.)

  • Pour l'installer sur une version plus ancienne, vous devez effectuer quelques modifications à la construction.

  • Décompressez l'archive bcompiler.tgz dans le dossier php4/ext. (récupérez-le directement depuis PECL http://pecl.php.net/get/bcompiler)

  • Si le nouveau dossier porte un nom comme bcompiler-0.x, alors, renommez-le en bcompiler (mise à part si vous voulez le construire comme module php autonome).

  • Si vous utilisez une version plus ancienne que PHP 4.3.0, vous devez copier le fichier Makefile.in.old dans Makefile.in et le fichier config.m4.old dans config.m4.

  • exécutez la commande phpize dans le dossier ext/bcompiler

  • exécutez la commande ./buildconf dans le dossier php4

  • exécutez la commande configure avec l'option --enable-bcompiler (ainsi que vos autres options)

  • make; make install

  • that's it.

Contact

Si vous avez des commentaires, des corrections de bogues, des améliorations ou que vous voulez aider à rendre cette extension meilleure, vous pouvez envoyer un email à alan_k@php.net. Toute aide est vraiment la bienvenue.

Table des matières
bcompiler_load_exe -- Lit et crée des classes depuis un fichier exe bcompiler
bcompiler_load -- Lit et crée les classes depuis un fichier compressé bzippé
bcompiler_parse_class -- Lit le bytecode d'une classe et revient à une fonction utilisateur
bcompiler_read -- Lit et crée les classes depuis un descripteur de fichier
bcompiler_write_class -- Écrit une classe définie en bytecode
bcompiler_write_constant -- Écrit une constante définie comme bytecode
bcompiler_write_exe_footer -- Écrit à la position start et jusqu'à la fin du fichier de type exe
bcompiler_write_file -- Écrit un code source PHP sous forme de bytecodes
bcompiler_write_footer -- Écrit le caractère \x00 pour indiquer la fin des données compilées
bcompiler_write_function -- Écrit une fonction définie sous forme de bytecode
bcompiler_write_functions_from_file -- Écrit toutes les fonctions définies dans un fichier sous forme de bytecode
bcompiler_write_header -- Écrit l'en-tête bcompiler
bcompiler_write_included_filename -- Écrit un fichier inclus en tant que bytecode

Précédent | Sommaire | Suivant
bcsub | Niveau supérieur | bcompiler_load_exe


bcompiler_load_exe

(PECL)

bcompiler_load_exe -- Lit et crée des classes depuis un fichier exe bcompiler

Description

bool bcompiler_load_exe ( string filename )

Lit les données depuis le fichier exe bcompiler appelé filename et crée les classes à partir du bytecode.

Liste de paramètres

filename

Le chemin vers le fichier exe, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec bcompiler_load()

<?php

bcompiler_load_exe("/tmp/example.exe");
print_r(get_defined_classes());

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

bcompiler_load()

Précédent | Sommaire | Suivant
Compilateur bytecode pour PHP | Niveau supérieur | bcompiler_load


bcompiler_load

(PECL)

bcompiler_load -- Lit et crée les classes depuis un fichier compressé bzippé

Description

bool bcompiler_load ( string filename )

Lit les données depuis le fichier compressé bzippé filename et crée les classes depuis le bytecode.

Liste de paramètres

filename

Le chemin vers le fichier compressé bzippé, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec bcompiler_load()

<?php

bcompiler_load("/tmp/example");

print_r(get_defined_classes());

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note : Utiliser les structures include ou require pour parser les bytecodes, c'est plus portable et plus commode que d'utiliser cette fonction.

Notez que cette fonction n'exécute pas le corps du script contenu dans le fichier bytecode.

Voir aussi

bcompiler_load_exe()

Précédent | Sommaire | Suivant
bcompiler_load_exe | Niveau supérieur | bcompiler_parse_class


bcompiler_parse_class

(PECL)

bcompiler_parse_class -- Lit le bytecode d'une classe et revient à une fonction utilisateur

Description

bool bcompiler_parse_class ( string class, string callback )

Lit le bytecode d'une classe et revient à une fonction utilisateur.

Liste de paramètres

class

Le nom de la classe, sous la forme d'une chaîne de caractères.

callback

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec bcompiler_parse_class()

<?php

function readByteCodes($data) {
    print_r($data);
}

bcompiler_parse_class("DB","readByteCodes");

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note : Cette fonction a été supprimée de bcompiler et n'est plus disponible depuis bcompiler 0.5.

Précédent | Sommaire | Suivant
bcompiler_load | Niveau supérieur | bcompiler_read


bcompiler_read

(PECL)

bcompiler_read -- Lit et crée les classes depuis un descripteur de fichier

Description

bool bcompiler_read ( resource filehandle )

Lit les données depuis un fichier ouvert représenté par le descripteur filehandle et crée les classes depuis le bytecode.

Liste de paramètres

filehandle

Un gestionnaire de fichiers, retourné par la fonction fopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec bcompiler_read()

<?php
$fh = fopen("/tmp/example","r");
bcompiler_read($fh);
fclose($fh);
print_r(get_defined_classes());

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note : Utiliser les structures include ou require pour parser les bytecodes, c'est plus portable et plus commode que d'utiliser cette fonction.

Notez que cette fonction n'exécute pas le corps du script contenu dans le fichier bytecode.

Précédent | Sommaire | Suivant
bcompiler_parse_class | Niveau supérieur | bcompiler_write_class


bcompiler_write_class

(PECL)

bcompiler_write_class -- Écrit une classe définie en bytecode

Description

bool bcompiler_write_class ( resource filehandle, string className [, string extends] )

Lit le bytecode d'une classe exsitante nommée className depuis PHP et l'écrit dans le fichier ouvert désigné par le descripteur filehandle.

Liste de paramètres

filehandle

Un gestionnaire de fichiers, retourné par la fonction fopen().

className

Le nom de la classe, sous la forme d'une chaîne de caractères.

extends

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec bcompiler_write_class()

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
// vous devez écrire DB_common avant DB_mysql, car DB_mysql étend DB_common.
bcompiler_write_class($fh,"DB_common");
bcompiler_write_class($fh,"DB_mysql");
bcompiler_write_footer($fh);
fclose($fh);

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note : Cette fonction n'effectue pas de vérification sur les dépendances, assurez-vous donc d'écrire les classes dans l'ordre pour éviter d'avoir une alerte du genre 'undefined class' lorsque vous les chargerez.

Voir aussi

bcompiler_write_header()
bcompiler_write_footer()

Précédent | Sommaire | Suivant
bcompiler_read | Niveau supérieur | bcompiler_write_constant


bcompiler_write_constant

(PECL)

bcompiler_write_constant -- Écrit une constante définie comme bytecode

Description

bool bcompiler_write_constant ( resource filehandle, string constantName )

Lit le bytecode depuis PHP pour une constante existante constantName et écrit le bytecode dans le fichier ouvert désigné par filehandle.

Liste de paramètres

filehandle

Un gestionnaire de fichiers, retourné par la fonction fopen().

constantName

Le nom de la constante définie, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec bcompiler_write_constant()

<?php
define("MODULE_MAX", 30);

$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_constant($fh,"MODULE_MAX");
bcompiler_write_footer($fh);
fclose($fh);

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

bcompiler_write_header()
bcompiler_write_footer()

Précédent | Sommaire | Suivant
bcompiler_write_class | Niveau supérieur | bcompiler_write_exe_footer


bcompiler_write_exe_footer

(PECL)

bcompiler_write_exe_footer -- Écrit à la position start et jusqu'à la fin du fichier de type exe

Description

bool bcompiler_write_exe_footer ( resource filehandle, int startpos )

Un fichier exe (ou auto-exécutable) est composé de trois parties :

Le stub (code exécutable, e.g. programme C compilé) qui charge l'interpréteur PHP, l'extension bcompiler, stocke le bytecode et initialise un appel à la fonction spécifique (e.g. main) ou une méthode d'une classe (i.e. main::main)
Le bytecode (uniquement décompressé pour le moment)
Le footer EXE bcompiler

Pour obtenir un stub approprié, vous pouvez compiler le stub php_embed-based phpe.c qui se trouve dans le dossier examples/embed sur le CVS de bcompiler.

Liste de paramètres

filehandle

Un gestionnaire de fichiers, retourné par la fonction fopen().

startpos

La position dans le fichier à partir duquel commence le bytecode, et pouvant être obtenu en utilisant la fonction ftell().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec bcompiler_write_footer()

<?php

/* Création du fichier de sortie (example.exe) */
$fh = fopen("example.exe", "w");

/* 1) Écriture d'un stub (phpe.exe) */
$size = filesize("phpe.exe");
$fr = fopen("phpe.exe", "r");
fwrite($fh, fread($fr, $size), $size);
$startpos = ftell($fh);

/* 2) Écriture du bytecode */
bcompiler_write_header($fh);
bcompiler_write_class($fh, "myclass");
bcompiler_write_function($fh, "main");
bcompiler_write_footer($fh);

/* 3) Écriture du footer EXE */
bcompiler_write_exe_footer($fh, $startpos);

/* Fermeture du fichier de sortie */
fclose($fh);
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

bcompiler_write_header()
bcompiler_write_class()
bcompiler_write_footer()

Précédent | Sommaire | Suivant
bcompiler_write_constant | Niveau supérieur | bcompiler_write_file


bcompiler_write_file

(PECL)

bcompiler_write_file -- Écrit un code source PHP sous forme de bytecodes

Description

bool bcompiler_write_file ( resource filehandle, string filename )

Cette fonction compile le fichier filename en bytecodes, et écrit le résultat dans le fichier filename.

Liste de paramètres

filehandle

Un gestionnaire de fichiers, retourné par la fonction fopen().

filename

Le chemin vers le fichier source, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec bcompiler_write_file()

<?php
$fh = fopen("example.phb", "w");
bcompiler_write_header($fh);
bcompiler_write_file($fh, "example.php");
bcompiler_write_footer($fh);
fclose($fh);
/* Ce qui suit doit être équivalent :
include "example.php";
   et
include "example.phb";
*/
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

bcompiler_write_header()
bcompiler_write_footer()

Précédent | Sommaire | Suivant
bcompiler_write_exe_footer | Niveau supérieur | bcompiler_write_footer


bcompiler_write_footer

(PECL)

bcompiler_write_footer -- Écrit le caractère \x00 pour indiquer la fin des données compilées

Description

bool bcompiler_write_footer ( resource filehandle )

Écrit le caractère \x00 pour indiquer la fin des données compilées.

Liste de paramètres

filehandle

Un gestionnaire de fichiers, retourné par la fonction fopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec bcompiler_write_footer()

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
bcompiler_write_class($fh,"DB_common");
bcompiler_write_footer($fh);
fclose($fh);

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

bcompiler_write_header()

Précédent | Sommaire | Suivant
bcompiler_write_file | Niveau supérieur | bcompiler_write_function


bcompiler_write_function

(PECL)

bcompiler_write_function -- Écrit une fonction définie sous forme de bytecode

Description

bool bcompiler_write_function ( resource filehandle, string functionName )

Lit le bytecode d'une fonction existante depuis PHP et l'écrit dans le fichier désigné par la ressource de fichier filehandle. L'ordre n'est pas important (e.g. si la fonction b utilise la fonction a et que vous compilez l'exemple ci-dessous, cela fonctionnera très bien).

Liste de paramètres

filehandle

Un gestionnaire de fichiers, retourné par la fonction fopen().

functionName

Le nom de la fonction, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec bcompiler_write_function()

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_function($fh,"my_function_a");
bcompiler_write_function($fh,"my_function_b");
bcompiler_write_footer($fh);
fclose($fh);
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

bcompiler_write_header()
bcompiler_write_footer()

Précédent | Sommaire | Suivant
bcompiler_write_footer | Niveau supérieur | bcompiler_write_functions_from_file


bcompiler_write_functions_from_file

(PECL)

bcompiler_write_functions_from_file -- Écrit toutes les fonctions définies dans un fichier sous forme de bytecode

Description

bool bcompiler_write_functions_from_file ( resource filehandle, string fileName )

Recherche toutes les fonctions déclarées dans le fichier nommé fileName et écrit leurs bytecodes correspondants dans le fichier désigné par le descripteur filehandle.

Liste de paramètres

filehandle

Un gestionnaire de fichier, retourné par la fonction fopen().

fileName

Le fichier à compiler. Souvenez-vous de toujours include/require les fichiers que vous tentez de compiler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec bcompiler_write_functions_from_file()

<?php
require('module.php');

$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_functions_from_file($fh,'module.php');
bcompiler_write_footer($fh);
fclose($fh);

?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

bcompiler_write_header()
bcompiler_write_footer()

Précédent | Sommaire | Suivant
bcompiler_write_function | Niveau supérieur | bcompiler_write_header


bcompiler_write_header

(PECL)

bcompiler_write_header -- Écrit l'en-tête bcompiler

Description

bool bcompiler_write_header ( resource filehandle [, string write_ver] )

Écrit l'en-tête bcompiler.

Liste de paramètres

filehandle

Un gestionnaire de fichiers, retourné par la fonction fopen().

write_ver

Peut être utilisé pour écrire le bytecode dans un format utilisé précédemment, vous pouvez donc l'utiliser avec les anciennes versions de bcompiler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec bcompiler_write_header()

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
bcompiler_write_footer($fh);
fclose($fh);
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

bcompiler_write_footer()

Précédent | Sommaire | Suivant
bcompiler_write_functions_from_file | Niveau supérieur | bcompiler_write_included_filename


Compression Bzip2

Manuel PHP
Précédent Suivant

IX. Compression Bzip2

Introduction

Les fonctions bzip2 servent à lire et écrire dans les fichiers compressés avec la méthode bzip2 (.bz2).

Pré-requis

Ce module utilise les fonctions de la bibliothèque bzip2, de Julian Seward pour écrire et lire des fichier bzip2 (.bz2) de manière transparente. Ce module requiert un version de bzip2/libbzip2 >= 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

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension définit un type de ressource : une ressource de fichier, identifiant un fichier compressé bzip2.

Constantes pré-définies

Cette extension ne définit aucune constante.

Exemples

Cet exemple ouvre un fichier temporaire, et écrit une ligne de test, puis il en affiche le contenu.

Exemple 1. Petit exemple avec bzip2

<?php
$filename = "/tmp/fichier_de_test.bz2";
$str = "Ceci est une chaîne de test.\n";

// ouvre le fichier en écriture
$bz = bzopen($filename, "w");

// écrit une chaîne dans le fichier
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 tout le reste du fichier, puis le ferme
echo bzread($bz);

bzclose($bz);
?>

Table des matières
bzclose -- Ferme un fichier bzip2
bzcompress -- Compresse une chaîne avec bzip2
bzdecompress -- Décompresse une chaîne bzip2
bzerrno -- Retourne le code d'erreur bzip2
bzerror -- Retourne le numéro et le message d'erreur bzip2 dans un tableau
bzerrstr -- Retourne le message d'erreur bzip2
bzflush -- Force l'écriture de toutes les données compressées
bzopen -- Ouvre un fichier compressé avec bzip2
bzread -- Lecture binaire d'un fichier bzip2
bzwrite -- Ecriture binaire dans un fichier bzip2

Précédent | Sommaire | Suivant
bcompiler_write_included_filename | Niveau supérieur | bzclose


bzclose

(PHP 4 >= 4.3.3, PHP 5)

bzclose -- Ferme un fichier bzip2

Description

int bzclose ( resource bz )

bzclose() ferme le fichier bzip2 représenté par le pointeur bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

bzopen()

Précédent | Sommaire | Suivant
Compression Bzip2 | Niveau supérieur | bzcompress


bzcompress

(PHP 4 >= 4.3.3, PHP 5)

bzcompress -- Compresse une chaîne avec bzip2

Description

mixed bzcompress ( string source [, int blocksize [, int workfactor]] )

bzcompress() compresse la chaîne source et retourne les données ainsi encodées.

Liste de paramètres

source

La chaîne à compresser.

blocksize

Spécifie la taille de bloc utilisée durant la compression et doit être un nombre de 1 à 9, sachant que 9 représente la meilleure compression, mais qu'elle utilise plus de ressources pour se faire. blocksize vaut par défaut 4.

workfactor

Contrôle le comportement de la compression dans les pires cas de données hautement répétitives. Cette valeur peut aller de 0 à 250 (0 est une valeur spéciale et 30 la valeur par défaut).

En dehors de workfactor, le résultat sera le même.

Valeurs de retour

La chaîne compressée ou un numéro 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()

Précédent | Sommaire | Suivant
bzclose | Niveau supérieur | bzdecompress


bzdecompress

(PHP 4 >= 4.3.3, PHP 5)

bzdecompress -- Décompresse une chaîne bzip2

Description

mixed bzdecompress ( string source [, int small] )

bzdecompress() décompresse la chaîne source, contenant des données compressées bzip2.

Liste de paramètres

source

La chaîne à décompresser.

small

Si ce paramètre vaut TRUE, un autre algorithme de décompression sera utilisé : il consomme moins de mémoire (le maximum demandé tombe autour de 2300 ko), mais fonctionne globalement à la moitié de la vitesse.

Reportez-vous à la documentation bzip2 pour plus de détails sur cette fonctionnalité.

Valeurs de retour

La chaîne décompressée ou un numéro erreur si une erreur survient.

Exemples

Exemple 1. Décompression d'une chaîne

<?php
$start_str = "phrase à compresser";
$bzstr = bzcompress($start_str);

echo "Chaîne compressée : ";
echo $bzstr;
echo "\n<br />\n";

$str = bzdecompress($bzstr);
echo "Chaîne décompressée : ";
echo $str;
echo "\n<br />\n";
?>

Voir aussi

bzcompress()

Précédent | Sommaire | Suivant
bzcompress | Niveau supérieur | bzerrno


bzerrno

(PHP 4 >= 4.3.3, PHP 5)

bzerrno -- Retourne le code d'erreur bzip2

Description

int bzerrno ( resource bz )

bzerrno() retourne le code d'erreur du fichier bz2 représenté par le pointeur bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès avec la fonction bzopen().

Valeurs de retour

Retourne le code erreur sous la forme d'un entier.

Voir aussi

bzerror()
bzerrstr()

Précédent | Sommaire | Suivant
bzdecompress | Niveau supérieur | bzerror


bzerror

(PHP 4 >= 4.3.3, PHP 5)

bzerror -- Retourne le numéro et le message d'erreur bzip2 dans un tableau

Description

array bzerror ( resource bz )

bzerror() retourne un tableau associatif avec le numéro et le message d'erreur du fichier bz2 représenté par le pointeur bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

Valeurs de retour

Retourne un tableau associatif, avec le code erreur dans l'entrée errno, et le message d'erreur dans l'entrée errstr.

Exemples

Exemple 1. Exemple avec bzerror()

<?php
$error = bzerror($bz);

echo $error["errno"];
echo $error["errstr"];
?>

Voir aussi

bzerrno()
bzerrstr()

Précédent | Sommaire | Suivant
bzerrno | Niveau supérieur | bzerrstr


bzerrstr

(PHP 4 >= 4.3.3, PHP 5)

bzerrstr -- Retourne le message d'erreur bzip2

Description

string bzerrstr ( resource bz )

bzerrstr() retourne le message d'erreur du fichier bz2 représenté par le pointeur bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

Valeurs de retour

Retourne une chaîne contenant le message d'erreur.

Voir aussi

bzerrno()
bzerror()

Précédent | Sommaire | Suivant
bzerror | Niveau supérieur | bzflush


bzflush

(PHP 4 >= 4.3.3, PHP 5)

bzflush -- Force l'écriture de toutes les données compressées

Description

int bzflush ( resource bz )

bzflush() force l'écriture de toutes les données bzip2 mises en tampon pour le fichier représenté par bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

bzread()
bzwrite()

Précédent | Sommaire | Suivant
bzerrstr | Niveau supérieur | bzopen


bzopen

(PHP 4 >= 4.3.3, PHP 5)

bzopen -- Ouvre un fichier compressé avec bzip2

Description

resource bzopen ( string filename, string mode )

bzopen() ouvre un fichier bzip2 (.bz2) en écriture ou en lecture.

Liste de paramètres

filename

Le nom du fichier à ouvrir.

mode

Similaire à la fonction fopen() ('r' pour lecture, 'w' pour écriture, etc.).

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

Précédent | Sommaire | Suivant
bzflush | Niveau supérieur | bzread


bzread

(PHP 4 >= 4.3.3, PHP 5)

bzread -- Lecture binaire d'un fichier bzip2

Description

string bzread ( resource bz [, int length] )

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() liera 1024 (non-compressé) octets à 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()
feof()
bzopen()

Précédent | Sommaire | Suivant
bzopen | Niveau supérieur | bzwrite


bzwrite

(PHP 4 >= 4.3.3, PHP 5)

bzwrite -- Ecriture binaire dans un fichier bzip2

Description

int bzwrite ( resource bz, string data [, int length] )

bzwrite() écrit le contenu de la chaîne data dans le fichier bzip2 représenté par bz.

Liste de paramètres

bz

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès par la fonction bzopen().

data

Les données écrites.

length

Si fourni, l'écriture s'arrêtera après que length (non-compressé) octets aient été écrits ou bien que la fin de data soit atteinte, le premier des deux qui survient.

Valeurs de retour

Retourne le nombre d'octets écrits ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec bzwrite()

<?php
$str = "donné non-compressée";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

Voir aussi

bzread()
bzopen()

Précédent | Sommaire | Suivant
bzread | Niveau supérieur | Calendrier


Calendrier

Manuel PHP
Précédent Suivant

X. Calendrier

Introduction

L'extension de calendrier propose une série de fonctions qui simplifient les conversions entre les différents formats de calendrier. La référence est le nombre de jours du calendrier Julien. C'est le nombre de jours depuis une date qui commence bien au-delà des dates les plus reculées dont on a besoin (située en 4000 avant J.C.). Pour convertir une date d'un calendrier à un autre, il faut d'abord la convertir dans ce calendrier, puis convertir le résultat dans le calendrier désiré. Attention, le nombre de jours du calendrier Julien est un système très différent du calendrier Julien ! Pour plus d'informations, rendez-vous sur le site de http://www.hermetic.ch/cal_stud/jdn.htm. Pour plus d'informations (en anglais), reportez-vous à http://www.fourmilab.ch/documents/calendar/. Les traductions issues de ces pages seront mises entre guillemets.

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.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

CAL_GREGORIAN (entier)

CAL_JULIAN (entier)

CAL_JEWISH (entier)

CAL_FRENCH (entier)

CAL_NUM_CALS (entier)

CAL_DOW_DAYNO (entier)

CAL_DOW_SHORT (entier)

CAL_DOW_LONG (entier)

CAL_MONTH_GREGORIAN_SHORT (entier)

CAL_MONTH_GREGORIAN_LONG (entier)

CAL_MONTH_JULIAN_SHORT (entier)

CAL_MONTH_JULIAN_LONG (entier)

CAL_MONTH_JEWISH (entier)

CAL_MONTH_FRENCH (entier)

Les constantes suivantes sont disponibles depuis PHP 4.3.0 :

CAL_EASTER_DEFAULT (entier)

CAL_EASTER_ROMAN (entier)

CAL_EASTER_ALWAYS_GREGORIAN (entier)

CAL_EASTER_ALWAYS_JULIAN (entier)

Les constantes suivantes sont disponibles depuis PHP 5.0.0 :

CAL_JEWISH_ADD_ALAFIM_GERESH (entier)

CAL_JEWISH_ADD_ALAFIM (entier)

CAL_JEWISH_ADD_GERESHAYIM (entier)

Table des matières
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 et retourne des détails
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
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

Précédent | Sommaire | Suivant
bzwrite | Niveau supérieur | cal_days_in_month


cal_days_in_month

(PHP 4 >= 4.1.0, PHP 5)

cal_days_in_month -- Retourne le nombre de jours dans un mois, pour une année et un calendrier donné

Description

int cal_days_in_month ( int calendar, int month, int year )

cal_days_in_month() retourne le nombre de jours dans le mois month de l'année year, pour le calendrier calendar.

Exemple 1. Exemple avec cal_days_in_month()

<?php
$num = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "Il y a $num jours en Août 2003";
?>

Voir aussi jdtounix().

Précédent | Sommaire | Suivant
Calendrier | Niveau supérieur | cal_from_jd


cal_from_jd

(PHP 4 >= 4.1.0, PHP 5)

cal_from_jd -- Convertit le nombre de jours Julien en un calendrier et retourne des détails

Description

array cal_from_jd ( int jd, int calendar )

cal_from_jd() convertit le nombre de jours Julien jd en une date du calendrier calendar. Les valeurs possibles pour calendar sont CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH et CAL_FRENCH.

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

Précédent | Sommaire | Suivant
cal_days_in_month | Niveau supérieur | cal_info


cal_info

(PHP 4 >= 4.1.0, PHP 5)

cal_info -- Retourne des détails sur un calendrier

Description

array cal_info ( [int calendar] )

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 or CAL_JEWISH - Calendrier Jewish

  • 3 or 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é. Cette fonctionnalité est disponible à partir de PHP 5.

Exemple 1. cal_info() example

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

Précédent | Sommaire | Suivant
cal_from_jd | Niveau supérieur | cal_to_jd


cal_to_jd

(PHP 4 >= 4.1.0, PHP 5)

cal_to_jd -- Convertit un calendrier en nombre de jours Julien

Description

int cal_to_jd ( int calendar, int month, int day, int year )

cal_to_jd() calcule le nombre de jours Julien pour une date, dans le calendrier calendar. Les valeurs possibles pour calendar sont CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH et CAL_FRENCH.

Voir aussi cal_from_jd().

Précédent | Sommaire | Suivant
cal_info | Niveau supérieur | easter_date


easter_date

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

easter_date -- Retourne un timestamp UNIX pour Pâques, à minuit

Description

int easter_date ( [int year] )

easter_date() retourne un timestamp UNIX pour Pâques, à minuit, pour une année donnée.

Depuis PHP 4.3.0, le paramètre year est optionnel, et prend la valeur de l'année en cours par défaut.

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" */

?>

Avertissement

easter_date() génère une alerte (Warning) si la date tombe hors de la zone de validité des timestamp UNIX (i.e. avant 1970 ou après 2037).

La date de Pâques a été fixée par le concile de Nicée, en 325 de notre ère, comme étant le dimanche après la première pleine lune qui suit l'équinoxe de printemps. L'équinoxe de printemps est considéré comme étant toujours le 21 mars, ce qui réduit le problème au calcul de la date de la lune pleine qui suit, et le dimanche suivant. L'algorithme fut introduit vers 532, par Dionysius Exiguus. Avec le calendrier Julien, (pour les années avant 1753), un cycle de 19 ans suffit pour connaître les dates des phases de la lune. Avec le calendrier grégorien, (à partir des années 1753, conçu par Clavius et Lilius, puis introduit par le pape Grégoire XIII en octobre 1582, et en Grande Bretagne et ses colonies en septembre 1752), deux facteurs de corrections ont été ajoutés pour rendre le cycle plus précis.

(Ce code est basé sur le programme en C de Simon Kershaw, <webmaster@ely.anglican.org>)

Voir easter_days() pour les calculs de date de Pâques avant 1970 et après 2037.

Précédent | Sommaire | Suivant
cal_to_jd | Niveau supérieur | easter_days


easter_days

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

easter_days -- Retourne le nombre de jours entre le 21 Mars et Pâques, pour une année donnée

Description

int easter_days ( [int year [, int method]] )

easter_days() 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 en cours est utilisée par défaut.

Depuis PHP 4.3.0, le paramètre year est optionnel, et prend la valeur de l'année en cours par défaut.

Le paramètre method a été introduit en PHP 4.3.0 et permet de calculer les dates de Pâques dans le calendrier Grégorien, entre les années 1582 - 1752, lorsque ce paramètre prend la valeur de CAL_EASTER_ROMAN. Voyez les constantes calendaires pour plus de constantes valides.

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

Exemple 1. Exemple avec easter_days()

<?php

echo easter_days(1999);        /* 14, i.e. 4 Avril   */
echo easter_days(1492);        /* 32, i.e. 22 Avril  */
echo easter_days(1913);        /*  2, i.e. 23 Mars   */

?>

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.

(Ce code est basé sur le programme en C de Simon Kershaw, <webmaster@ely.anglican.org>)

Voir aussi easter_date().

Précédent | Sommaire | Suivant
easter_date | Niveau supérieur | FrenchToJD


FrenchToJD

(PHP 3, PHP 4, PHP 5)

FrenchToJD -- Convertit une date du calendrier français républicain en nombre de jours du calendrier Julien

Description

int frenchtojd ( int month, int day, int year )

FrenchToJD() convertit une date du calendrier français républicain en nombre de jours du calendrier Julien.

Ces fonctions convertissent les dates comprises entre l'an 1 et l'an 14 (22 Septembre 1792 à 22 Septembre 1806 en calendrier grégorien). Cela couvre plus que la durée d'existence de ce calendrier.

Précédent | Sommaire | Suivant
easter_days | Niveau supérieur | GregorianToJD


GregorianToJD

(PHP 3, PHP 4, PHP 5)

GregorianToJD -- Convertit une date grégorienne en nombre de jours du calendrier Julien

Description

int gregoriantojd ( int month, int day, int year )

Intervalle de validité pour le calendrier grégorien : 4714 avant JC à 9999 après JC.A.D.

Bien qu'il soit possible de manipuler des dates jusqu'en 4714 avant JC, une telle utilisation n'est pas significative. En effet, ce calendrier fut créé le 18 octobre 1582 après J.C. (ou 5 octobre 1582 en calendrier grec). Certains pays ne l'acceptèrent que bien plus tard. Par exemple, les britanniques n'y passèrent qu'en 1752, les Russes en 1918 et les Grecs en 1923. La plupart des pays européens utilisaient le calendrier Julien avant le Grégorien.

Exemple 1. Fonctions calendrier

<?php
$jd = gregoriantojd(10,11,1970);
echo "$jd\n";
$gregorian = jdtogregorian($jd);
echo "$gregorian\n";
?>

Précédent | Sommaire | Suivant
FrenchToJD | Niveau supérieur | JDDayOfWeek


JDDayOfWeek

(PHP 3, PHP 4, PHP 5)

JDDayOfWeek -- Retourne le numéro du jour de la semaine

Description

mixed jddayofweek ( int julianday [, int mode] )

JDDayOfWeek() retourne le numéro du jour de la semaine. Peut retourner une chaîne ou un entier, en fonction du mode.

Tableau 1. Modes

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

Précédent | Sommaire | Suivant
GregorianToJD | Niveau supérieur | JDMonthName


JDMonthName

(PHP 3, PHP 4, PHP 5)

JDMonthName -- Retourne le nom du mois

Description

string jdmonthname ( int julianday, int mode )

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

Tableau 1. Modes de calendrier

Mode | Signification | Valeurs
0 | Grégorien - abrégé | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
1 | Grégorien | January, February, March, April, May, June, July, August, September, October, November, December
2 | Julien - abrégé | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
3 | Julien | January, February, March, April, May, June, July, August, September, October, November, December
4 | Juif | Tishri, Heshvan, Kislev, Tevet, Shevat, AdarI, AdarII, Nisan, Iyyar, Sivan, Tammuz, Av, Elul
5 | Républicain français | Vendemiaire, Brumaire, Frimaire, Nivose, Pluviose, Ventose, Germinal, Floreal, Prairial, Messidor, Thermidor, Fructidor, Extra

Précédent | Sommaire | Suivant
JDDayOfWeek | Niveau supérieur | JDToFrench


JDToFrench

(PHP 3, PHP 4, PHP 5)

JDToFrench -- Convertit le nombre de jours du calendrier Julien en date du calendrier français républicain

Description

string jdtofrench ( int juliandaycount )

JDToFrench() convertit le nombre de jours du calendrier julien en date du calendrier français républicain.

Précédent | Sommaire | Suivant
JDMonthName | Niveau supérieur | JDToGregorian


JDToGregorian

(PHP 3, PHP 4, PHP 5)

JDToGregorian -- Convertit le nombre de jours du calendrier Julien en date grégorienne

Description

string jdtogregorian ( int julianday )

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

Précédent | Sommaire | Suivant
JDToFrench | Niveau supérieur | jdtojewish


jdtojewish

(PHP 3, PHP 4, PHP 5)

jdtojewish -- Convertit le nombre de jours du calendrier Julien en date du calendrier juif

Description

string jdtojewish ( int juliandaycount [, bool hebrew [, int fl]] )

jdtojewish() convertit le nombre de jours du calendrier Julien en date du calendrier juif.

Les paramètres optionnels hebrew et fl sont disponibles depuis PHP 5.0.0.

Si le paramètre hebrew vaut TRUE, le paramètre fl sera utilisé pour générer une chaîne au format hébreux. Les formats disponibles sont : CAL_JEWISH_ADD_ALAFIM_GERESH, CAL_JEWISH_ADD_ALAFIM et CAL_JEWISH_ADD_GERESHAYIM.

Exemple 1. Exemple avec jdtojewish()

<?php
echo jdtojewish(gregoriantojd(10, 8, 2002), true,
       CAL_JEWISH_ADD_GERESHAYIM + CAL_JEWISH_ADD_ALAFIM + CAL_JEWISH_ADD_ALAFIM_GERESH);
?>

Précédent | Sommaire | Suivant
JDToGregorian | Niveau supérieur | JDToJulian


JDToJulian

(PHP 3, PHP 4, PHP 5)

JDToJulian -- Convertit le nombre de jours du calendrier Julien en date du calendrier Julien

Description

string jdtojulian ( int julianday )

JDToJulian() convertit le nombre de jours du calendrier Julien en une chaîne contenant la date du calendrier Julien, au format "mois/jour/année".

Précédent | Sommaire | Suivant
jdtojewish | Niveau supérieur | jdtounix


jdtounix

(PHP 4, PHP 5)

jdtounix -- Convertit un jour Julien en timestamp UNIX

Description

int jdtounix ( int jday )

jdtounix() retourne un timestamp UNIX correspondant au jour Julien jday ou FALSE si jday n'est pas dans l'intervalle de validité de l'époque UNIX. (années grégoriennes entre 1970 et 2037 ou 2440588 <= jday <= 2465342 .) Le temps retourné est un temps local (et non GMT).

Voir aussi unixtojd().

Précédent | Sommaire | Suivant
JDToJulian | Niveau supérieur | JewishToJD


JewishToJD

(PHP 3, PHP 4, PHP 5)

JewishToJD -- Convertit une date du calendrier Juif en nombre de jours du calendrier Julien

Description

int jewishtojd ( int month, int day, int year )

Bien qu'il soit possible de manipuler des dates à partir de l'an 1 (3761 avant J.C.), une telle utilisation a peu de sens. Le calendrier juif a été utilisé depuis plusieurs dizaines de siècles, mais dans les premiers temps, il n'y avait pas de formule pour déterminer le début du mois. Un nouveau mois commençait quand une nouvelle lune était observée.

Précédent | Sommaire | Suivant
jdtounix | Niveau supérieur | JulianToJD


JulianToJD

(PHP 3, PHP 4, PHP 5)

JulianToJD -- Convertit un jours du calendrier Julien en un nombre de jours du calendrier Julien

Description

int juliantojd ( int month, int day, int year )

Intervalle de validité du calendrier Julien : 4713 avant JC à 9999 après J.C..

Bien qu'il soit possible de manipuler des dates jusqu'en 4713 avant JC, une telle utilisation n'est pas significative. En effet, ce calendrier fut créé en 46 avant J.C., et ses détails ne furent finalisés qu'au plus tôt en 8 après JC, et probablement pas avant le 4iè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.

Précédent | Sommaire | Suivant
JewishToJD | Niveau supérieur | unixtojd


unixtojd

(PHP 4, PHP 5)

unixtojd -- Convertit un timestamp UNIX en un jour Julien

Description

int unixtojd ( [int timestamp] )

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

Voir aussi jdtounix().

Précédent | Sommaire | Suivant
JulianToJD | Niveau supérieur | Paiement CCVS (Obsolète)


Paiement CCVS (Obsolète)

Manuel PHP
Précédent Suivant

XI. Paiement CCVS (Obsolète)

Introduction

Ces fonctions font l'interface avec les API CCVS et vous permettant de travailler directement avec CCVS depuis vos scripts PHP. CCVS est la solution apportée par RedHat au problème de l'intermédiaire, lors du traitement de transactions de cartes de crédit. Il vous permet travailler directement avec les maisons de crédits, via votre boîte *nix et un modem. En utilisant le module CCVS pour PHP, vous pouvez effectuer des transactions avec les cartes de crédits, directement depuis vos scripts PHP via CCVS. La suite vous montrera comment procéder.

Note : CCVS a été abandonné par Red Hat et il n'y a pas de plan pour fournir de nouvelles clés ou du support. Ceux qui recherchent un système de remplacement peuvent regarder du coté de MCVE par Main Street Softworks. C'est une extension similaire à celle-ci, et qui dispose du support PHP.

Cette extension a été supprimée de PHP depuis la version 4.3.0 et n'est plus disponible. Si vous voulez utiliser des fonctionnalités similaires, utilisez MCVE.

Installation

Pour activer le support CCVS de PHP, commencez par vérifier votre installation CCVS. Vous devez configurer PHP avec l'option --with-ccvs. Si vous utilisez cette option sans spécifier le chemin de votre installation, PHP essaiera de la trouver à sa position par défaut (/usr/local/ccvs). Si CCVS est installé dans un autre dossier, lancez la configuration avec : --with-ccvs=$ccvs_path, où $ccvs_path est le chemin de votre installation CCVS. Notez bien que CCVS requiert que $ccvs_path/lib et $ccvs_path/include existent, et qu'ils contiennent respectivement cv_api.h et libccvs.a.

De plus, un démon ccvsd doit être disponible sur votre configuration, et qu'il soit accessible à vos scripts PHP. Assurez-vous aussi que l'utilisateur qui exécute les scripts PHP est le même que celui qui a installé CCVS (i.e. si vous avez installé CCVS avec l'utilisateur 'ccvs', vos scripts PHP doivent tourner aussi en 'ccvs').

Voir aussi

RedHat a arrété le support de CCVS. Cependant, un manuel légèrement en retard est disponible à http://www.redhat.com/docs/manuals/ccvs/.

Table des matières
ccvs_add -- Ajoute des données à la transaction
ccvs_auth -- Effectue un test d'autorisation de crédit sur une transaction
ccvs_command -- Exécute une commande spécifique à un protocole et qui n'est donc pas disponible dans l'API générique
ccvs_count -- Trouve le nombre de transactions d'un certain type stockées dans le système
ccvs_delete -- Supprime une transaction
ccvs_done -- Termine l'enfin CCVS et libère les ressources
ccvs_init -- Initialise CCVS pour utilisation
ccvs_lookup -- Recherche un élément d'un type spécifique dans la base de données
ccvs_new -- Crée une nouvelle transaction à vide
ccvs_report -- Retourne le status du processus de communication
ccvs_return -- Transfère des fonds de chez le marchand vers le possesseur de la carte de crédit
ccvs_reverse -- Annule entièrement une autorisation déjà donnée
ccvs_sale -- Transfère des fonds de chez le possesseur de la carte de crédit vers le marchand
ccvs_status -- Vérifie le statut d'une facture
ccvs_textvalue -- Retourne la valeur textuelle du dernier appel à une fonction
ccvs_void -- Annule complètement une transaction complétée

Précédent | Sommaire | Suivant
unixtojd | Niveau supérieur | ccvs_add


ccvs_add

(4.0.2 - 4.2.3 only)

ccvs_add -- Ajoute des données à la transaction

Description

string ccvs_add ( string session, string invoice, string argtype, string argval )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
Paiement CCVS (Obsolète) | Niveau supérieur | ccvs_auth


ccvs_auth

(4.0.2 - 4.2.3 only)

ccvs_auth -- Effectue un test d'autorisation de crédit sur une transaction

Description

string ccvs_auth ( string session, string invoice )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_add | Niveau supérieur | ccvs_command


ccvs_command

(4.0.2 - 4.2.3 only)

ccvs_command -- Exécute une commande spécifique à un protocole et qui n'est donc pas disponible dans l'API générique

Description

string ccvs_command ( string session, string type, string argval )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_auth | Niveau supérieur | ccvs_count


ccvs_count

(4.0.2 - 4.2.3 only)

ccvs_count -- Trouve le nombre de transactions d'un certain type stockées dans le système

Description

int ccvs_count ( string session, string type )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_command | Niveau supérieur | ccvs_delete


ccvs_delete

(4.0.2 - 4.2.3 only)

ccvs_delete -- Supprime une transaction

Description

string ccvs_delete ( string session, string invoice )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_count | Niveau supérieur | ccvs_done


ccvs_done

(4.0.2 - 4.2.3 only)

ccvs_done -- Termine l'enfin CCVS et libère les ressources

Description

string ccvs_done ( string sess )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_delete | Niveau supérieur | ccvs_init


ccvs_init

(4.0.2 - 4.2.3 only)

ccvs_init -- Initialise CCVS pour utilisation

Description

string ccvs_init ( string name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_done | Niveau supérieur | ccvs_lookup


ccvs_lookup

(4.0.2 - 4.2.3 only)

ccvs_lookup -- Recherche un élément d'un type spécifique dans la base de données

Description

string ccvs_lookup ( string session, string invoice, int inum )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_init | Niveau supérieur | ccvs_new


ccvs_new

(4.0.2 - 4.2.3 only)

ccvs_new -- Crée une nouvelle transaction à vide

Description

string ccvs_new ( string session, string invoice )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_lookup | Niveau supérieur | ccvs_report


ccvs_report

(4.0.2 - 4.2.3 only)

ccvs_report -- Retourne le status du processus de communication

Description

string ccvs_report ( string session, string type )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_new | Niveau supérieur | ccvs_return


ccvs_return

(4.0.2 - 4.2.3 only)

ccvs_return -- Transfère des fonds de chez le marchand vers le possesseur de la carte de crédit

Description

string ccvs_return ( string session, string invoice )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_report | Niveau supérieur | ccvs_reverse


ccvs_reverse

(4.0.2 - 4.2.3 only)

ccvs_reverse -- Annule entièrement une autorisation déjà donnée

Description

string ccvs_reverse ( string session, string invoice )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_return | Niveau supérieur | ccvs_sale


ccvs_sale

(4.0.2 - 4.2.3 only)

ccvs_sale -- Transfère des fonds de chez le possesseur de la carte de crédit vers le marchand

Description

string ccvs_sale ( string session, string invoice )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_reverse | Niveau supérieur | ccvs_status


ccvs_status

(4.0.2 - 4.2.3 only)

ccvs_status -- Vérifie le statut d'une facture

Description

string ccvs_status ( string session, string invoice )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_sale | Niveau supérieur | ccvs_textvalue


ccvs_textvalue

(4.0.2 - 4.2.3 only)

ccvs_textvalue -- Retourne la valeur textuelle du dernier appel à une fonction

Description

string ccvs_textvalue ( string session )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_status | Niveau supérieur | ccvs_void


ccvs_void

(4.0.2 - 4.2.3 only)

ccvs_void -- Annule complètement une transaction complétée

Description

string ccvs_void ( string session, string invoice )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ccvs_textvalue | Niveau supérieur | Classes et Objets


Fonctions Classkit

Manuel PHP
Précédent Suivant

XIII. Fonctions Classkit

Introduction

Ces fonctions vous permettent de manipuler dynamiquement les classes PHP en cours de fonctionnement.

Note : Cette extension a été remplacée par runkit, qui n'est pas limitée aux manipulations de classes mais peut également manipuler les fonctions.

Installation

Cette extension PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/classkit.

La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

CLASSKIT_ACC_PRIVATE (entier)

Rend la méthode "private"

CLASSKIT_ACC_PROTECTED (entier)

Rend la méthode "protected"

CLASSKIT_ACC_PUBLIC (entier)

Rend la méthode "public"

Table des matières
classkit_import -- Importe de nouvelles définitions de méthodes de classes depuis un fichier
classkit_method_add -- Ajoute dynamiquement une nouvelle méthode à une classe donnée
classkit_method_copy -- Copie une méthode d'une classe vers une autre classe
classkit_method_redefine -- Change dynamiquement le code de la méthode donnée
classkit_method_remove -- Efface dynamiquement une méthode donnée
classkit_method_rename -- Change dynamiquement le nom d'une méthode donnée

Précédent | Sommaire | Suivant
property_exists | Niveau supérieur | classkit_import


classkit_import

(PECL)

classkit_import -- Importe de nouvelles définitions de méthodes de classes depuis un fichier

Description

array classkit_import ( string filename )

Note : Cette fonction ne peut pas être utilisée pour manipuler la méthode en cours (ou liée) d'exécution.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

filename

Le nom du fichier contenant les définitions des méthodes de classes à importer

Valeurs de retour

Tableau associatif contenant les méthodes importées

Exemples

Exemple 1. Exemple avec classkit_import()

<?php
// fichier : newclass.php
class Example {
    function foo() {
        return "bar!\n";
    }
}
?>
<?php
// requiert newclass.php (voir ci-dessous)
class Example {
    function foo() {
        return "foo!\n";
    }
}

$e = new Example();

// affichage original
echo $e->foo();

// importation d'une méthode de remplacement
classkit_import('newclass.php');

// affichage après l'importation
echo $e->foo();

?>

L'exemple ci-dessus va afficher :

foo!
bar!

Voir aussi

classkit_method_add()
classkit_method_copy()

Précédent | Sommaire | Suivant
Fonctions Classkit | Niveau supérieur | classkit_method_add


classkit_method_add

(PECL)

classkit_method_add -- Ajoute dynamiquement une nouvelle méthode à une classe donnée

Description

bool classkit_method_add ( string classname, string methodname, string args, string code [, int flags] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe où la méthode doit être ajoutée

methodname

Le nom de la méthode à ajouter

args

Liste d'arguments séparés par des virgules pour la nouvelle méthode créee

code

Le code à évaluer lorsque methodname est appelé

flags

Le type de méthode à créer ; peut être CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED ou CLASSKIT_ACC_PRIVATE

Note : Ce paramètre est utilisé depuis PHP 5, car avant cette version, toutes les méthodes sont publiques.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec classkit_method_add()

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// création d'un objet Example
$e = new Example();

// Ajout d'une nouvelle méthode publique
classkit_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    CLASSKIT_ACC_PUBLIC
);

// add 12 + 4
echo $e->add(12, 4);
?>

L'exemple ci-dessus va afficher :

16

Voir aussi

classkit_method_copy()
classkit_method_redefine()
classkit_method_remove()
classkit_method_rename()
create_function()

Précédent | Sommaire | Suivant
classkit_import | Niveau supérieur | classkit_method_copy


classkit_method_copy

(PECL)

classkit_method_copy -- Copie une méthode d'une classe vers une autre classe

Description

bool classkit_method_copy ( string dClass, string dMethod, string sClass [, string sMethod] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

dClass

Classe de destination de la méthode copiée

dMethod

Nom de la nouvelle méthode

sClass

Classe source contenant la méthode à copier

sMethod

Nom de la méthode à copier depuis la classe source. Si ce paramètre est omis, la valeur du paramètre dMethod est utilisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec classkit_method_copy()

<?php
class Foo {
    function example() {
        return "foo!\n";
    }
}

class Bar {
    // initialement, aucune méthode
}

// copie la méthode example() depuis la classe Foo vers la classe Bar et la nommer baz()
classkit_method_copy('Bar', 'baz', 'Foo', 'example');

// affiche la fonction copiée
echo Bar::baz();
?>

L'exemple ci-dessus va afficher :

foo!

Voir aussi

classkit_method_add()
classkit_method_redefine()
classkit_method_remove()
classkit_method_rename()

Précédent | Sommaire | Suivant
classkit_method_add | Niveau supérieur | classkit_method_redefine


classkit_method_redefine

(PECL)

classkit_method_redefine -- Change dynamiquement le code de la méthode donnée

Description

bool classkit_method_redefine ( string classname, string methodname, string args, string code [, int flags] )

Note : Cette fonction ne peut pas être utilisée pour manipuler la méthode en cours (ou liée) d'exécution.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode est redéfinie

methodname

Le nom de la méthode à redéfinir

args

Liste d'arguments séparés par une virgule pour la méthode redéfinie

code

Le nouveau code à évaluer lorsque methodname est appelé

flags

La méthode redéfinie peut être CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED ou CLASSKIT_ACC_PRIVATE

Note : Ce paramètre est utilisé depuis PHP 5, car avant cette version, toutes les méthodes sont publiques.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec classkit_method_redefine()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// création d'un objet Example
$e = new Example();

// affichage Example::foo() (avant la redéfinission)
echo "Avant : " . $e->foo();

// Redéfinition de la méthode 'foo'
classkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    CLASSKIT_ACC_PUBLIC
);

// affichage de Example::foo() (après la redéfinission)
echo "Après : " . $e->foo();
?>

L'exemple ci-dessus va afficher :

Avant : foo!
Après : bar!

Voir aussi

classkit_method_add()
classkit_method_copy()
classkit_method_remove()
classkit_method_rename()

Précédent | Sommaire | Suivant
classkit_method_copy | Niveau supérieur | classkit_method_remove


classkit_method_remove

(PECL)

classkit_method_remove -- Efface dynamiquement une méthode donnée

Description

bool classkit_method_remove ( string classname, string methodname )

Note : Cette fonction ne peut pas être utilisée pour manipuler la méthode en cours (ou liée) d'exécution.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode est effacée

methodname

Le nom de la méthode à effacer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec classkit_method_remove()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Efface la métode 'foo'
classkit_method_remove(
    'Example',
    'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

L'exemple ci-dessus va afficher :

bar

Voir aussi

classkit_method_add()
classkit_method_copy()
classkit_method_redefine()
classkit_method_rename()

Précédent | Sommaire | Suivant
classkit_method_redefine | Niveau supérieur | classkit_method_rename


classkit_method_rename

(PECL)

classkit_method_rename -- Change dynamiquement le nom d'une méthode donnée

Description

bool classkit_method_rename ( string classname, string methodname, string newname )

Note : Cette fonction ne peut pas être utilisée pour manipuler la méthode en cours (ou liée) d'exécution.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode doit être renommée

methodname

Le nom de la méthode à renommer

newname

Le nouveau nom à donner à la méthode

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec classkit_method_rename()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Renomme la méthode 'foo' en 'bar'
classkit_method_rename(
    'Example',
    'foo',
    'bar'
);

// affiche la fonction renommée
echo Example::bar();
?>

L'exemple ci-dessus va afficher :

foo!

Voir aussi

classkit_method_add()
classkit_method_copy()
classkit_method_redefine()
classkit_method_remove()

Précédent | Sommaire | Suivant
classkit_method_remove | Niveau supérieur | Fonctions ClibPDF


Classes et Objets

Manuel PHP
Précédent Suivant

XII. Classes et Objets

Introduction

Ces fonctions vous donnent des informations sur les objets et les classes. Vous pouvez lire le nom de la classe qui est instanciée par un objet, ainsi que la liste des membres et des méthodes. En utilisant ces fonctions, vous pouvez non seulement connaître la classe d'un objet, mais aussi tous ses ascendants (i.e. la classe qui est étendue par une autre classe).

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Exemples

Dans cet exemple, on définit une classe de base, et une extension. La classe de base définit un légume, s'il est mangeable ou pas et sa couleur. La sous-classe epinard ajoute une méthode pour le cuisiner, et une autre pour savoir s'il est cuisiné.

Exemple 1. Fonctions d'objets : classes.inc

<?php

// classe de base, avec ses membres et ses méthodes
class Legume {

    var $edible;
    var $color;

    function Legume( $edible, $color="green" ) {
        $this->edible = $edible;
        $this->color = $color;
    }

    function is_edible() {
        return $this->edible;
    }

    function what_color() {
        return $this->color;
    }

} // fin de la classe Legume

// Extension la classe de base
class Epinard extends Legume {
    var $cuit = FALSE;
    function Epinard() {
        $this->Legume( TRUE, "green" );
    }
    function cuisine() {
        $this->cuit = TRUE;
    }

    function is_cooked() {
        return $this->cooked;
    }

} // fin de la classe Epinard

?>

Lorsqu'on instancie deux objets de ces classes et que l'on affiche leurs informations, on affiche aussi leur héritage. On définit ici des utilitaires qui servent essentiellement à afficher ces informations proprement.

Exemple 2. Fonctions d'objets : test_script.php

<pre>
<?php

include "classes.inc";

// Fonctions utilitaires
function print_vars($obj)
{
     foreach (get_object_vars($obj) as $prop => $val) {
          echo "\t$prop = $val\n";
     }
}

function print_methods($obj)
{
    $arr = get_class_methods(get_class($obj));
    foreach ($arr as $method) {
        echo "\tfunction $method()\n";
    }
}

function class_parentage($obj, $class) {
    if (is_subclass_of($GLOBALS[$obj], $class)) {
        echo "L'objet $obj appartient à la classe ".get_class($$obj);
        echo " est une sous-classe de $class\n";
    } else {
        echo "L'objet $obj n'est pas une sous-classe de $class\n";
    }
}

// instantie 2 objets

$veggie = new Legume(true,"blue");
$leafy = new Epinard();

// affiche les informations sur ces objets
echo "légume : CLASS ".get_class($veggie)."\n";
echo "feuillues : CLASS ".get_class($leafy);
echo ", PARENT ".get_parent_class($leafy)."\n";

// affiche les propriétés du légume
echo "\nlégumes : Propriétés\n";
print_vars($veggie);

// et les méthodes des feuillus
echo "\nfeuillus : Méthodes\n";
print_methods($leafy);

  echo "\nParentée:\n";
class_parentage("leafy", "Epinard");
class_parentage("leafy", "Legume");
?>
</pre>

Il est important de noter que dans les exemples ci-dessus, les objets $feuilles sont une instance de Epinard qui est une sous-classe de Legume, donc la dernière partie du script va afficher :

[...]
    Parentée:
    L'objet feuilles n'est pas une sous classe epinard
    L'objet feuilles est une sous-classe de Legume

Table des matières
call_user_method_array -- Appelle une méthode utilisateur avec un tableau de paramètres [obsolète]
call_user_method -- Appelle une méthode utilisateur d'un objet [obsolète]
class_exists -- Vérifie qu'une classe a été définie
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 la classe d'un objet
get_declared_classes -- Liste toutes les classes définies
get_declared_interfaces -- Retourne un tableau avec toutes les interfaces déclarées
get_object_vars -- Retourne un tableau associatif des propriétés d'un objet
get_parent_class -- Retourne le nom de la classe d'un objet
interface_exists -- Vérifie si une interface a été définie
is_a -- Vérifie si l'objet fait parti d'une classe ou a cette classe comme parents
is_subclass_of -- Détermine si un objet est une sous-classe
method_exists -- Vérifie que la méthode existe pour une classe
property_exists -- Vérfie si un objet ou une classe a une propriété

Précédent | Sommaire | Suivant
ccvs_void | Niveau supérieur | call_user_method_array


call_user_method_array

(PHP 4 >= 4.0.5, PHP 5)

call_user_method_array -- Appelle une méthode utilisateur avec un tableau de paramètres [obsolète]

Description

mixed call_user_method_array ( string method_name, object &obj, array paramarr )

Avertissement

La fonction call_user_method_array() est obsolète depuis PHP 4.1.0, utilisez plutôt la fonction call_user_func_array() avec la syntaxe array(&$obj, "method_name").

Voir aussi

call_user_func_array()
call_user_func()

Précédent | Sommaire | Suivant
Classes et Objets | Niveau supérieur | call_user_method


call_user_method

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

call_user_method -- Appelle une méthode utilisateur d'un objet [obsolète]

Description

mixed call_user_method ( string method_name, object &obj [, mixed parameter [, mixed ...]] )

Avertissement

La fonction call_user_method() est abandonnée depuis PHP 4.1.0, utilisez plutôt la fonction call_user_func() avec la syntaxe array(&$obj, "method_name").

Voir aussi

call_user_func_array()
call_user_func()

Précédent | Sommaire | Suivant
call_user_method_array | Niveau supérieur | class_exists


class_exists

(PHP 4, PHP 5)

class_exists -- Vérifie qu'une classe a été définie

Description

bool class_exists ( string class_name [, bool autoload] )

Cette fonction vérifie si une classe donnée a été définie.

Liste de paramètres

class_name

Le nom de la classe

autoload

Si l'on doit appeler __autoload ou non par défaut

Valeurs de retour

Retourne TRUE si class_name est une classe définie, FALSE sinon.

Historique

Version | Description
5.0.0 | La paramètre autoload a été ajoutée.

Exemples

Exemple 1. Exemple avec class_exists()

<?php
// Vérifiez que la classe existe avant de l'utiliser
if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

?>

Exemple 2. Exemple avec le paramètre autoload

<?php
function __autoload($class)
{
    include($class . '.php');

    // Vérifie si l'include définie la classe
    if (!class_exists($class, false)) {
        trigger_error("Impossible de charger la classe : $class", E_USER_WARNING);
    }
}

if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

?>

Voir aussi

interface_exists()
get_declared_classes()

Précédent | Sommaire | Suivant
call_user_method | Niveau supérieur | get_class_methods


get_class_methods

(PHP 4, PHP 5)

get_class_methods -- Retourne les noms des méthodes d'une classe

Description

array get_class_methods ( mixed class_name )

Retourne les noms des méthodes d'une classe.

Liste de paramètres

class_name

Le nom de la classe d'une instance

Valeurs de retour

Retourne un tableau contenant les noms des méthodes de la classe class_name. En cas d'erreur, NULL est retourné.

Historique

Version | Description
5.0.0 | Depuis PHP 5, cette fonction retourne le nom des méthodes telles quelles sont déclarées (sensible à la casse). En PHP 4, elles étaient en minuscules.
4.0.6 | La possibilité de spécifier l'objet lui-même a été ajoutée.

Exemples

Exemple 1. Exemple avec get_class_methods()

<?php

class myclass {
    // constructeur
    function myclass()
    {
        return(true);
    }

    // méthode 1
    function myfunc1()
    {
        return(true);
    }

    // méthode 2
    function myfunc2()
    {
        return(true);
    }
}

$class_methods = get_class_methods('myclass');
// ou
$class_methods = get_class_methods(new myclass());

foreach ($class_methods as $method_name) {
    echo "$method_name\n";
}

?>

L'exemple ci-dessus va afficher :

myclass
myfunc1
myfunc2

Voir aussi

get_class()
get_class_vars()
get_object_vars()

Précédent | Sommaire | Suivant
class_exists | Niveau supérieur | get_class_vars


get_class_vars

(PHP 4, PHP 5)

get_class_vars -- Retourne les valeurs par défaut des propriétés d'une classe

Description

array get_class_vars ( string class_name )

Retourne les valeurs par défaut des propriétés d'une classe.

Liste de paramètres

class_name

Le nom de la classe

Valeurs de retour

retourne un tableau contenant les valeurs par défaut des propriétés publiques de la classe class_name. Les éléments du tableau résultant sont sous la forme : nom_variable => valeur.

Historique

Version | Description
Avant la version 4.2.0 | les variables de classe non initialisées n'étaient pas rapportées par get_class_vars().

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; // PHP 5

    // constructeur
    function myclass() {
        // changement de quelques propriétés
        $this->var1 = "foo";
        $this->var2 = "bar";
        return true;
    }

}

$my_class = new myclass();

$class_vars = get_class_vars(get_class($my_class));

foreach ($class_vars as $name => $value) {
    echo "$name : $value\n";
}

?>

L'exemple ci-dessus va afficher :

// Avant PHP 4.2.0
var2 : xyz
var3 : 100

// Depuis PHP 4.2.0
var1 :
var2 : xyz
var3 : 100

Voir aussi

get_class_methods()
get_object_vars()

Précédent | Sommaire | Suivant
get_class_methods | Niveau supérieur | get_class


get_class

(PHP 4, PHP 5)

get_class -- Retourne la classe d'un objet

Description

string get_class ( [object object] )

Retourne la classe de l'objet obj.

Liste de paramètres

object

L'objet testé

Valeurs de retour

Retourne le nom de la classe pour laquelle object est une instance. Retourne FALSE si object n'est pas un objet.

Historique

Version | Description
Depuis 5.0.0 | Le nom de la classe est retourné dans sa notation originale.
Depuis 5.0.0 | Le paramètre object est optionnel s'il est appelé depuis la méthode de l'objet.

Exemples

Exemple 1. Exemple avec get_class()

<?php

class foo {
    function foo()
    {
    // un peu de code
    }

    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

Voir aussi

get_parent_class()
gettype()
is_subclass_of()

Précédent | Sommaire | Suivant
get_class_vars | Niveau supérieur | get_declared_classes


get_declared_classes

(PHP 4, PHP 5)

get_declared_classes -- Liste toutes les classes définies

Description

array get_declared_classes ( void )

Liste toutes les classes définies.

Valeurs de retour

Retourne un tableau contenant la liste des classes déclarées dans le script courant.

Note : En PHP 4.0.1, trois classes supplémentaires sont retournées, au début de ce tableau : stdClass (définie dans Zend/zend.c), OverloadedTestClass (définie dans ext/standard/basic_functions.c) et Directory (définie dans ext/standard/dir.c).

De plus, notez que suivant les bibliothèques qui sont compilées avec PHP, d'autres classes peuvent être présentes. Cela signifie que vous ne pourrez pas utiliser ces noms de classe pour définir vos propres classes. Voici une liste des classes pré-définies.

Exemples

Exemple 1. Exemple avec get_declared_classes()

<?php
print_r(get_declared_classes());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => stdClass
    [1] => __PHP_Incomplete_Class
    [2] => Directory
)

Voir aussi

class_exists()
get_declared_interfaces()

Précédent | Sommaire | Suivant
get_class | Niveau supérieur | get_declared_interfaces


get_declared_interfaces

(PHP 5)

get_declared_interfaces -- Retourne un tableau avec toutes les interfaces déclarées

Description

array get_declared_interfaces ( void )

Retourne un tableau avec toutes les interfaces déclarées.

Valeurs de retour

Retourne un tableau contenant les noms des interfaces déclarées dans le script courant.

Exemples

Exemple 1. Exemple avec get_declared_interfaces()

<?php
print_r(get_declared_interfaces());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Traversable
    [1] => IteratorAggregate
    [2] => Iterator
    [3] => ArrayAccess
    [4] => reflector
    [5] => RecursiveIterator
    [6] => SeekableIterator
)

Voir aussi

get_declared_classes()

Précédent | Sommaire | Suivant
get_declared_classes | Niveau supérieur | get_object_vars


get_object_vars

(PHP 4, PHP 5)

get_object_vars -- Retourne un tableau associatif des propriétés d'un objet

Description

array get_object_vars ( object object )

Récupère les propriétés de l'objet object fourni.

Liste de paramètres

object

Une instance d'un objet.

Valeurs de retour

Retourne un tableau associatif contenant les propriétés de l'objet obj. Si une propriété n'a pas de valeur d'assignée, elle sera retournée avec une valeur NULL.

Historique

Version | Description
Avant 4.2.0 | Si les variables déclarées dans la classe de l'objet obj, n'avaient pas été assignées, elles n'apparaissaient pas dans le tableau retourné

Exemples

Exemple 1. Exemple avec get_object_vars()

<?php
class Point2D {
    var $x, $y;
    var $label;

    function Point2D($x, $y)
    {
        $this->x = $x;
        $this->y = $y;
    }

    function setLabel($label)
    {
        $this->label = $label;
    }

    function getPoint()
    {
        return array("x" => $this->x,
                     "y" => $this->y,
                     "label" => $this->label);
    }
}

// "$label" est déclaré mais n'est pas défini
$p1 = new Point2D(1.233, 3.445);
print_r(get_object_vars($p1));

$p1->setLabel("point #1");
print_r(get_object_vars($p1));

?>

L'exemple ci-dessus va afficher :

Array
 (
     [x] => 1.233
     [y] => 3.445
     [label] =>
 )

 Array
 (
     [x] => 1.233
     [y] => 3.445
     [label] => point #1
 )

Voir aussi

get_class_methods()
get_class_vars()

Précédent | Sommaire | Suivant
get_declared_interfaces | Niveau supérieur | get_parent_class


get_parent_class

(PHP 4, PHP 5)

get_parent_class -- Retourne le nom de la classe d'un objet

Description

string get_parent_class ( [mixed object] )

Récupère le nom de classe parent pour un objet ou une classe.

Liste de paramètres

object

L'objet ou le nom de la classe testé

Valeurs de retour

Retourne le nom de la classe parent dont object est une instance ou le nom.

Si appelée sans paramètre en dehors de l'objet, cette fonction retourne FALSE.

Historique

Version | Description
Avant 5.1.0 | Si appelée sans paramètre en dehors de l'objet, cette fonction retourne NULL avec une alerte.
Depuis 5.0.0 | Le paramètre object est optionnel si appelé depuis la méthode de l'objet.
Depuis 4.0.5 | Si le paramètre obj est une chaîne, get_parent_class() retourne le nom de la classe parente.

Exemples

Exemple 1. Exemple avec get_parent_class()

<?php

class dad {
    function dad()
    {
    // un peu de code
    }
}

class child extends papa {
    function child()
    {
        echo "je suis le fils de  " , get_parent_class($this) , "\n";
    }
}

class child2 extends papa {
    function child2()
    {
        echo "Je suis aussi le papa de  " , get_parent_class('child2') , "\n";
    }
}

$foo = new child();
$bar = new child2();

?>

L'exemple ci-dessus va afficher :

je suis le fils de papa
Je suis aussi le papa de papa

Voir aussi

get_class()
is_subclass_of()

Précédent | Sommaire | Suivant
get_object_vars | Niveau supérieur | interface_exists


interface_exists

(PHP 5 >= 5.0.2)

interface_exists -- Vérifie si une interface a été définie

Description

bool interface_exists ( string interface_name [, bool autoload] )

Vérifie si une interface a été définie.

Liste de paramètres

interface_name

Le nom de l'interface

autoload

Si l'on doit appeler __autoload ou non par défaut

Valeurs de retour

Retourne TRUE si l'interface fournie par le paramètre interface_name a été définie, FALSE sinon.

Exemples

Exemple 1. Exemple avec interface_exists()

<?php
// Vérifie si l'interface existe avant de l'utiliser
if (interface_exists('MyInterface')) {
    class MyClass implements MyInterface
    {
        // Méthodes
    }
}

?>

Voir aussi

class_exists()

Précédent | Sommaire | Suivant
get_parent_class | Niveau supérieur | is_a


is_a

(PHP 4 >= 4.2.0, PHP 5)

is_a -- Vérifie si l'objet fait parti d'une classe ou a cette classe comme parents

Description

bool is_a ( object object, string class_name )

Vérifie si l'objet objectfait parti de cette classe ou a cette classe comme parents.

Note : La fonction is_a() est déconseillé en PHP 5 en faveur de l'opérateur de type instanceof.

Liste de paramètres

object

L'objet testé

class_name

Le nom de la classe

Valeurs de retour

Retourne TRUE si l'objet fait parti de cette classe ou a cette classe comme parents, 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 avec PHP 5

<?php
if ($WF instanceof WidgetFactory) {
    echo 'Oui, $WF est un WidgetFactory';
}
?>

Voir aussi

get_class()
get_parent_class()
is_subclass_of()

Précédent | Sommaire | Suivant
interface_exists | Niveau supérieur | is_subclass_of


is_subclass_of

(PHP 4, PHP 5)

is_subclass_of -- Détermine si un objet est une sous-classe

Description

bool is_subclass_of ( mixed object, string class_name )

Vérifie si l'objet object a la classe class_name comme parents.

Liste de paramètres

object

Un nom de classe ou une instance d'un objet

class_name

Le nom de la classe

Valeurs de retour

Cette fonction retourne TRUE si l'objet object, appartient à une classe qui est une sous-classe de class_name, FALSE sinon.

Historique

Version | Description
5.0.3 | vous devez également spécifier le paramètre object en tant que chaîne de caractères (le nom de la classe).

Exemples

Exemple 1. Exemple avec is_subclass_of()

<?php
// Définit une classe
class WidgetFactory
{
  var $oink = 'moo';
}

// Définit une sous-classe
class WidgetFactory_Child extends WidgetFactory
{
  var $oink = 'oink';
}

// Création d'un nouvel objet
$WF = new WidgetFactory();
$WFC = new WidgetFactory_Child();

if (is_subclass_of($WFC, 'WidgetFactory')) {
  echo "oui, \$WFC est une sous-classe de la classe WidgetFactory\n";
} else {
  echo "non, \$WFC n'est pas une sous-classe de la classe WidgetFactory\n";
}

if (is_subclass_of($WF, 'WidgetFactory')) {
  echo "oui, \$WF est une sous-classe de la classe WidgetFactory\n";
} else {
  echo "non, \$WF n'est pas une sous-classe de la classe WidgetFactory\n";
}

// utilisable uniquement depuis PHP 5.0.3
if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
  echo "oui, WidgetFactory_Child est une sous-classe de la classe WidgetFactory\n";
} else {
  echo "non, WidgetFactory_Child n'est pas une sous-classe de la classe WidgetFactory\n";
}
?>

L'exemple ci-dessus va afficher :

oui, $WFC est une sous-classe de la classe WidgetFactory
non, $WF n'est pas une sous-classe de la classe WidgetFactory
oui, WidgetFactory_Child est une sous-classe de la classe WidgetFactory

Voir aussi

get_class()
get_parent_class()
is_a()

Précédent | Sommaire | Suivant
is_a | Niveau supérieur | method_exists


method_exists

(PHP 4, PHP 5)

method_exists -- Vérifie que la méthode existe pour une classe

Description

bool method_exists ( object object, string method_name )

Vérifie si la méthode existe pour l'objet object fourni.

Liste de paramètres

object

Une instance d'un objet

method_name

Le nom de la méthode

Valeurs de retour

Retourne TRUE si la méthode fournie par le paramètre method_name a été définie pour l'objet object, FALSE sinon.

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)

Voir aussi

function_exists()
is_callable()

Précédent | Sommaire | Suivant
is_subclass_of | Niveau supérieur | property_exists


property_exists

(PHP 5 >= 5.1.0RC1)

property_exists -- Vérfie si un objet ou une classe a une propriété

Description

bool property_exists ( mixed class, string property )

Cette fonction vérifie si la propriété property existe dans la classe spécfiée (et si elle est accessible de la portée courante).

Note : À l'opposé de la fonction isset(), property_exists() retourne TRUE même si la propriété a une valeur NULL.

Liste de paramètres

class

Le nom de la classe ou un objet de la classe à tester

property

Le nom de la propriété

Valeurs de retour

Retourne TRUE si la propriété existe, FALSE si elle n'existe pas et NULL si une erreur survient.

Exemples

Exemple 1. Exemple avec property_exists()

<?php

class myClass {
    public $mine;
    private $xpto;

    static function test() {
        var_dump(property_exists('myClass', 'xpto')); // true, elle peut être accessible par ici
    }
}

var_dump(property_exists('myClass', 'mine'));   //true
var_dump(property_exists(new myClass, 'mine')); //true
var_dump(property_exists('myClass', 'xpto'));   //false, non publique
myClass::test();

?>

Voir aussi

method_exists()

Précédent | Sommaire | Suivant
method_exists | Niveau supérieur | Fonctions Classkit


COM et .Net (Windows)

Manuel PHP
Précédent Suivant

XV. COM et .Net (Windows)

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 introspectés et appelés en cours d'exécution sans savoir au moment de la compilation comment l'objet fonctionne. L'extension COM de PHP utilitise 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 template et le sauvegarder pour l'envoyer par email à votre visiteur. Vous pouvez aussi utiliser COM pour effectuer des tâches administratives sur votre réseau et configurer IIS ; ce ne sont que les utilisations les plus habituelles, vous pouvez faire beaucoup plus avec COM.

Avec PHP 5, cette extension (et cette documentation) on été réécrites de A à Z et la plupart des vieux problèmes et concepts prêtant à confusion ont été supprimés. De plus, nous supportons l'instanciation et la création d'assemblées .Net utilisant une couche d'intéropérabilité COM fourni par Microsoft.

Lisez bien cet article pour un aperçu des modifications de cette extension dans PHP 5.

Pré-requis

Les fonctions COM sont uniquement disponibles pour les versions Windows de PHP.

Le support .NET requiert PHP 5 et l'exécutable .NET.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Vous êtes responsable de l'installation du support des divers objets COM que vous voulez utiliser (comme MS Word) ; nous ne pouvons et ne voulons pas les inclure tous avec PHP.

For Each

Avec PHP 5, vous pouvez utiliser la structure de contrôle foreach de PHP pour itérer à 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. while() ... Next() en PHP 4

<?php
$domainObject = new COM("WinNT://Domain");
while ($obj = $domainObject->Next()) {
   echo $obj->Name . "<br />";
}
?>

Exemple 3. foreach en PHP 5

<?php
$domainObject = new COM("WinNT://Domain");
foreach ($domainObject as $obj) {
   echo $obj->Name . "<br />";
}
?>

Tableaux et propriétées à la façon des tableaux de COM

Plusieurs objets COM exposent leurs propriétés comme tableaux, ou en utilisant un chemin d'accès à la façon des tableaux. En PHP 4, vous pouvez utiliser la syntaxe de tableaux de PHP pour lire/écrire une propriété de ce genre, mais une seule dimension est permise. Si vous voulez lire une propriété multi-dimensionnelle, vous pouvez y accéder à travers une fonction ou chaque paramètre représente une dimenssion de ce tableau, mais il n'y a aucun moyen d'écrire une telle propriété.

PHP 5 introduit différentes nouvelles fonctionnalités pour vous faciliter la vie:

  • Accédez aux tableaux multi-dimensionnels 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 la section intitulée foreach dans Chapitre 16. 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 la section intitulée For Each pour plus d'informations à ce sujet.

Exceptions (PHP 5)

Cette extension lancera des instances de la classe com_exception pour toute erreur fatale reportée par COM. Toutes les exceptions COM ont une propriété code qui correspond à la valeur de retour HRESULT des diverses opérations COM. Vous pouvez utiliser ce code pour choisir de façon automatique comment gérer cette exception.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
com.allow_dcom | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.5.
com.autoregister_typelib | "0" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.autoregister_verbose | "0" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.autoregister_casesensitive | "1" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP 4. Disponible depuis PHP 4.1.0.
com.code_page | "" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
com.typelib_file | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.5.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

com.allow_dcom

Si cette directive est activée, PHP aura la permission d'opérer comme un client D-COM (Distributed COM) et permettra à PHP d'instancier des objets COM sur un serveur distant.

com.autoregister_typelib

Si cette directive est activée, PHP essayera de déclarer des constantes provenant de la bibliothèque typelibrary des objets qu'il instancie, si ces objets implémentent l'interface demandée pour obtenir les données demandées. La sensibilité des constantes à la casse est contrôlée par la directive de configuration com.autoregister_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 seront enregistrées en mode sensible à la casse. Voyez com_load_typelib() pour plus de détails.

com.code_page

Cette directive permet de spécifier le code-page des jeux de caractères à utiliser lors de l'envoi et la réception de chaînes vers des objets COM. Si elle est vide, PHP pensera que vous voulez CP_ACP, qui est le code-page système ANSI par défaut.

Si le texte dans vos scripts est encodé avec un différent encodage ou jeu de caractères par défaut, configurer cette directive vous évitera d'avoir à passer tout votre code comme paramètre du constructeur de la classe COM. Notez qu'en utilisant cette directive (comme toute configuration de PHP), votre code PHP perd en portabilité. Vous devez utiliser le paramètre du constructeur à chaque fois que possible.

Note : Cette directive a été introduite en PHP 5.

com.typelib_file

Lorsqu'elle est configurée, cette directive doit être le chemin vers un fichier qui contient une liste de bibliothèques à charger au démarrage. Chaque ligne sera interprétée comme le nom de la bibliothèque de types et chargée comme si vous aviez utilisé com_load_typelib(). Les constantes seront enregistrées de façon persistante, pour que la bibliothèque ne soit chargée qu'une seule fois. Si le nom d'une bibliothèque de types se termine par #cis ou #case_insensitive, alors les constantes de cette bibliothèque de types seront enregistrées en mode insensible à la casse.

Types de ressources

Cette extension définit une référence vers un composant COM retourné par la fonction obsolète com_load() (cette fonction n'existe plus en PHP 5 ; utilisez la classe COM à la place).

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CLSCTX_INPROC_SERVER (entier)

CLSCTX_INPROC_HANDLER (entier)

CLSCTX_LOCAL_SERVER (entier)

CLSCTX_REMOTE_SERVER (entier)

CLSCTX_SERVER (entier)

CLSCTX_ALL (entier)

VT_NULL (entier)

VT_EMPTY (entier)

VT_UI1 (entier)

VT_I2 (entier)

VT_I4 (entier)

VT_R4 (entier)

VT_R8 (entier)

VT_BOOL (entier)

VT_ERROR (entier)

VT_CY (entier)

VT_DATE (entier)

VT_BSTR (entier)

VT_DECIMAL (entier)

VT_UNKNOWN (entier)

VT_DISPATCH (entier)

VT_VARIANT (entier)

VT_I1 (entier)

VT_UI2 (entier)

VT_UI4 (entier)

VT_INT (entier)

VT_UINT (entier)

VT_ARRAY (entier)

VT_BYREF (entier)

CP_ACP (entier)

CP_MACCP (entier)

CP_OEMCP (entier)

CP_UTF7 (entier)

CP_UTF8 (entier)

CP_SYMBOL (entier)

CP_THREAD_ACP (entier)

VARCMP_LT (entier)

VARCMP_EQ (entier)

VARCMP_GT (entier)

VARCMP_NULL (entier)

NORM_IGNORECASE (entier)

NORM_IGNORENONSPACE (entier)

NORM_IGNORESYMBOLS (entier)

NORM_IGNOREWIDTH (entier)

NORM_IGNOREKANATYPE (entier)

NORM_IGNOREKASHIDA (entier)

DISP_E_DIVBYZERO (entier)

DISP_E_OVERFLOW (entier)

MK_E_UNAVAILABLE (entier)

Voir aussi

Pour plus d'informations sur les objets COM, lisez les spécifications COM ou bien jetez un oeil au livre de Don Box (en anglais) : Yet Another COM Library (YACL). Vous pouvez trouver des informations utiles dans notre FAQ pour Chapitre 57. Si vous voulez utiliser des applications MS Office sur le serveur, vous devez lire les informations ici : Considerations for Server-Side Automation of Office.

Table des matières
COM -- Classe COM
DOTNET -- La classe DOTNET
VARIANT -- classe VARIANT
com_addref -- Incrémente le compteur de références (déconseillé)
com_create_guid -- Génère un identifiant unique global
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_get -- Lit la valeur d'une propriété d'un composant COM
com_invoke -- Appelle une méthode d'un composant (déconseillé)
com_isenum -- Récupère un IEnumVariant (déconseillé)
com_load_typelib -- Charge un Typelib
com_load -- Crée une référence sur un composant COM (déconseillé)
com_message_pump -- Traite un message COM en attendant jusqu'à timeoutms millisecondes
com_print_typeinfo -- Affiche une définition de classe PHP pour une interface répartissable
com_propget -- Alias de com_get()
com_propput -- Alias de com_set()
com_propset -- Alias de com_set()
com_release -- Décrémente le compteur de références
com_set -- Modifie une propriété d'un composant COM
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 -- Concatène 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 -- Retourne 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 et retourne le résultat
variant_neg -- Effctue 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 et retourne le résultat
variant_xor -- Exécute une exclusion logique sur deux variants

Précédent | Sommaire | Suivant
cpdf_translate | Niveau supérieur | COM


COM

(no version information, might be only in CVS)

COM -- Classe COM

Synopsis

$obj = new COM("Application.ID")

Description

La classe COM vous permet d'instancier un objet COM compatible OLE, d'appeler ces méthodes et d'accéder à ces propriétés.

Méthodes

com COM::COM ( string module_name [, mixed server_name [, int codepage [, string typelib]]] )

Constructeur de la classe COM. Paramètres :

module_name

Peut être un ProgID, un Class ID ou un Moniker qui nomment un composant à charger.

Un ProgID est typiquement une application ou le nom d'une DLL, suivi d'une période, suivi par le nom de l'objet. e.g : Word.Application.

Un Class ID est un UUID qui identifie de manière unique une classe donnée.

Un Moniker est une manière spéciale de nommage, similaire dans le concept au schéma d'URL, qui identifie une ressource et spécifie comment elle doit être chargée. Par exemple, vous pouvez charger Word et prendre un objet représentant un document Word en spécifiant le chemin complet du document Word comme nom de module, ou bien, vous pouvez utiliser LDAP: comme un Moniker pour utiliser l'interface ADSI pour LDAP.

server_name

Le nom du serveur DCOM sur lequel le composant devrait être chargé et lancé. Si le paramètre vaut NULL, l'objet courant utilisera la valeur par défaut pour l'application. La valeur par défaut est typiquement localhost bien que l'administrateur peut avoir configuré l'application pour qu'elle s'exécute sur une machine différente.

Si vous spécifiez une valeur non-NULL pour le serveur, PHP peut refuser de charger l'objet tant que com.allow_dcom l'option de configuration ne vaut pas TRUE.

Si server_name est un tableau, il doit contenir les éléments suivants (sensible à la casse). Notez qu'ils sont tous optionnels (bien que vous devez spécifier et USERNAME, et PASSWORD) ; si vous omettez les paramètres du serveur, le serveur par défaut sera utilisé (comme mentionné plus haut), et l'instanciation de l'objet ne sera pas affectée par com.allow_dcom la directive.

Tableau 1. DCOM server name

clé server_name | type | description
Server | chaîne | Le nom du serveur.
Username | chaîne | L'utilisateur de connexion.
Password | chaîne | Le mot de passe de l'utilisateur Username.
Flags | entier | Une ou plusieurs des constantes suivantes CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, CLSCTX_LOCAL_SERVER, CLSCTX_REMOTE_SERVER, CLSCTX_SERVER et CLSCTX_ALL. La valeur par défaut est CLSCTX_SERVER si vous omettez également Server, ou bien CLSCTX_REMOTE_SERVER si vous spécifiez un serveur. Vous devriez consulter la dcumentation Mcrosoft concernant CoCreateInstance pour plus d'informations sur ces constantes ; vous ne devriez pas les utiliser dans un cas typique.

codepage

Spécifie le code qui est utilisé pour transformer les chaînes de caractères PHP en chaînes unicode, et vice-versa. La conversion est appliquée même si une chaîne PHP est passée en paramètre ou bien retournée d'une méthode de cet objet COM. Le code est "collé" en PHP 5, ce qui siginifie qu'il se propagera aux objets et aux variables retournés par cet objet.

Les valeurs possibles sont : CP_ACP (utilise le code système par défaut d'ANSI - valeur par défaut si le paramètre est omis), CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP (utilise la valeur du code local pour l'exécution courante), CP_UTF7 et CP_UTF8. Vous devriez également utiliser le numéro pour un code donné ; consultez la documentation de Microsoft pour plus de détails sur les codes et leurs valeurs numériques.

Méthodes surchargées

L'objet retourné est un objet surchargé, ce qui signifie que PHP ne voit aucune méthode fixe comme il le fait avec les classes habituelles ; au lieu de cela, chaque accès à une propriété ou une méthode est effectué à travers COM.

À partir de PHP 5, PHP détectera automatiquement les méthodes qui acceptent les paramètres par référence, et convertira automatiquement les variables PHP classiques en une forme pouvant être passée par référence. Cela signifie que vous pouvez appeler les méthodes de façon naturelle ; vous n'avez pas d'efforts supplémentaires à faire dans votre code.

En PHP 4, pour passer les paramètres par référence, vous devez créer une instance de VARIANT la classe pour utiliser les paramètres par référence.

Les pseudos méthodes

Dans les versions antérieures à PHP 5, des hacks faisaient que les noms des méthodes suivantes n'étaient pas passés à COM et étaient directement gérés par PHP. PHP 5 élimine cela ; lisez les détails suivants pour déterminer comment corriger vos scripts. Ces noms de méthodes ne sont pas sensibles à la casse.

void COM::AddRef ( void )

Ajoute artificiellement un compteur de référence à l'objet COM.

Avertissement

Vous ne devriez jamais avoir besoin d'utiliser cette méthode. Il existe un complément logique à la méthode Release() ci-dessous.

void COM::Release ( void )

Supprime artificellement un compteur de référence à un objet COM.

Avertissement

Vous ne devriez jamais avoir besoin d'utiliser cette méthode. Son existence en PHP est un bogue fait pour résoudre un autre bogue qui conserve les objets COM fonctionnels plus longtemps qu'ils ne devraient l'être.

Les pseudos méthodes pour itération

Ces pseudos méthodes ne sont valables que si com_isenum() retourne TRUE et dans ce cas, elles cachent toute autre méthode portant le même nom qui pourrait provenir de l'objet COM. Ces méthodes ont été éliminées de PHP 5, et vous devez utiliser la section intitulée For Each dans Référence XV, COM et .Net (Windows) en lieu et place.

variant COM::All ( void )

Retourne une variante représentant un "SafeArray" qui possède 10 éléments ; chaque élément sera une variante vide ou nulle. Cette fonction est supposée retourner un tableau contenant tous les éléments de l'itération, mais ne il sera jamais complet. Ne pas l'utiliser.

variant COM::Next ( void )

Retourne une variante représentant l'élément disponible suivant de l'itération ou FALSE lorsqu'il n'y a plus d'éléments.

variant COM::Prev ( void )

Retourne une variante représentant l'élément disponible précédent de l'itération ou FALSE lorsqu'il n'y a plus d'éléments.

void COM::Reset ( void )

Replace l'itération au début.

COM examples

Exemple 1. Exemple COM (1)

<?php

/* Démarrage de Word */
$word = new COM("word.application") or die("Impossible d'instancier l'application Word");
echo "Word lancé, version {$word->Version}\n";

/* Amener Word devant */
$word->Visible = 1;

/* Cree un document vide */
$word->Documents->Add();

/* Quelques commandes */
$word->Selection->TypeText("Ceci est un test...");
$word->Documents[1]->SaveAs("test.doc");

/* Fermeture de word */
$word->Quit();

/* Libération des ressources */
$word = null;
?>

Exemple 2. Exemple COM (2)

<?php
$conn = new COM("ADODB.Connection") or die("Impossible de démarrer ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password");

/* Jeux d'enregistrement */
$rs = $conn->Execute("SELECT * FROM sometable");

$num_columns = $rs->Fields->Count();
echo $num_columns . "\n";

for ($i=0; $i < $num_columns; $i++) {
    $fld[$i] = $rs->Fields($i);
}

$rowcount = 0;
while (!$rs->EOF) {
    for ($i=0; $i < $num_columns; $i++) {
        echo $fld[$i]->value . "\t";
    }
    echo "\n";

    /* Incrémentation */
    $rowcount++;
    $rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs = null;
$conn = null;

?>

Précédent | Sommaire | Suivant
COM et .Net (Windows) | Niveau supérieur | DOTNET


DOTNET

(no version information, might be only in CVS)

DOTNET -- La classe DOTNET

Synopsis

$obj = new DOTNET("assembly", "classname")

Description

La classe DOTNET vous autorise à instancier une classe depuis un ensemble .NET et à appeler ces propriétés ainsi qu'à accéder à ces propriétés.

Méthodes

string DOTNET::DOTNET ( string assembly_name, string class_name [, int codepage] )

Le construction de la classe DOTNET. assembly_name spécifie quel ensemble doit être chargé, et class_name spécifie quelle classe de l'ensemble doit être instanciée. Vous pouvez spécifier optionnellement un codepage à utiliser pour les transformations des chaînes unicodes ; voir COM la classe pour plus de détails sur les codepage.

L'objet retourné est un objet surchargé, ce qui signifie que PHP ne voit aucune méthode fixe comme il le fait avec les classes habituelles ; au lieu de cela, chaque accès à une propriété ou une méthode est effectué à travers COM et depuis DOTNET. En d'autres mots, l'objet .NET est tracé à travers la couche d'interopérabilité de COM fournie par le moteur .NET.

Dès que vous avez créé l'objet DOTNET, PHP l'utilise comme n'importe quel autre objet COM ; Toutes les mêmes règles y sont appliquées.

Exemple 1. Exemple DOTNET

<?php
  $stack = new DOTNET("mscorlib", "System.Collections.Stack");
  $stack->Push(".Net");
  $stack->Push("Bonjour ");
  echo $stack->Pop() . $stack->Pop();
?>

Note : Vous devez installer le moteur .NET sur votre serveur Web pour tirer avantage de ces fonctionnalités.

Précédent | Sommaire | Suivant
COM | Niveau supérieur | VARIANT


VARIANT

(no version information, might be only in CVS)

VARIANT -- classe VARIANT

Synopsis

$vVar = new VARIANT($var)

Description

Le VARIANT est un équivalent de COM pour PHP zval ; c'est une structure qui peut contenir une valeur avec un intervalle de types possibles. La classe VARIANT fournie par l'extension COM vous permet d'avoir plus de contrôle sur ce que PHP envoie et reçoit de COM.

Methodes

object VARIANT::VARIANT ( [mixed value [, int type [, int codepage]]] )

Constructeur VARIANT. Paramètres:

value

valeur initiale. Si omis, un objet VT_EMPTY sera créé.

type

spécifie le type d'objet VARIANT contenu. Les valeurs possibles sont une des constantes VT_XXX la section intitulée Constantes pré-définies dans Référence XV, COM et .Net (Windows).

Dans les versions antérieures à PHP 5, vous pouvez forcer PHP à passer un objet VARIANT par référence par OR'ing VT_BYREF avec le paramètre type. En PHP 5, ce hack n'est pas supporté ; en lieu et place, PHP 5 peut détecter les paramètres passés par référence automatiquement ; ils n'ont pas à être passés comme des objets VARIANT.

Consultez la bibliothèque MSDN pour plus de détails.

codepage

spécifie le code qui est utilisé pour transformer les chaînes de caractères PHP en chaînes unicode, et vice-versa. Voir le paramètre du même nom dans la COM classe pour plus d'informations.

Les versions antérieures à PHP 5 définissent un nombre de propriétés vituelles (non-documenté) pour les instances de classe VARIANT ; ces propriétés ont toutes été supprimées de PHP 5 en faveur d'une syntaxe plus naturelle ; ces différences sont plus visibles par un exemple :

Exemple 1. Exemple d'une classe VARIANT, comme utilisé en PHP 4.x

<?php
$v = new VARIANT(42);
echo 'The type is ' . $v->type . '<br />';
echo 'The value is ' . $v->value . '<br />';
?>

Exemple 2. Exemple d'une classe VARIANT, comme utilisé en PHP 5

<?php
$v = new VARIANT(42);
echo 'The type is ' . variant_get_type($v) . '<br />';
echo 'The value is ' . $v . '<br />';
?>

Les raisons de ces changements sont que, en interne, l'extension COM voit les classes VARIANT, CM et DOTNET comme étant la même chose, et l'esprit pour ces classes est que tous les accès aux propriétés et aux méthodes sont transmis à COM sans interférence. La nouvelle syntaxe est plus naturelle et demande moins d'efforts et la plupart des propriétés virtuelles supprimées n'ont plus aucun sens dans ce contexte.

Note : PHP 5 prend une approche plus simple pour gérer les classes VARIANT ; lorsqu'il retourne une valeur d'une propriété VARIANT, elle est convertie en une valeur PHP seulement s'il y a un mappage direct entre les types sans perdre aucune information. Dans tous les autres cas, le résultat est retourné comme une instance de la classe VARIANT. Vous pouvez forcer PHP à convertir ou à évaluer la classe VARIANT comme un type natif de PHP en utilisant explicitement un opérateur de transtypage, ou implicitement transtyper en une chaîne pour l'afficher. Vous pouvez utiliser l'éventail de fonctions pour réaliser des opérations arithmétiques sur les classes VARIANT sans forcer des conversions ou bien risquer de perdre des données.

Voir aussi variant_get_type().

Précédent | Sommaire | Suivant
DOTNET | Niveau supérieur | com_addref


com_addref

(PHP 4 >= 4.1.0)

com_addref -- Incrémente le compteur de références (déconseillé)

Description

void com_addref ( void )

com_addref() incrémente le compteur de références.

Avertissement

Vous ne devriez jamais avoir besoin d'utiliser cette fonction.

Précédent | Sommaire | Suivant
VARIANT | Niveau supérieur | com_create_guid


com_create_guid

(PHP 5)

com_create_guid -- Génère un identifiant unique global

Description

string com_create_guid ( void )

com_create_guid() génère un identifiant unique global (GUID) et le retourne sous forme d'une chaîne. Un GUID est généré de la même façon que DCE UUID, excepté le fait que la convention Microsoft enclot le GUID dans une parenthèse.

Voir aussi uuid_create() dans l'extension PECL uuid.

Précédent | Sommaire | Suivant
com_addref | Niveau supérieur | com_event_sink


com_event_sink

(PHP 4 >= 4.2.3, PHP 5)

com_event_sink -- Connecte des événements d'un objet COM sur un objet PHP

Description

bool com_event_sink ( variant comobject, object sinkobject [, mixed sinkinterface] )

com_event_sink()connecte des événements de l'objet COM comobject sur un l'objet PHP sinkobject. PHP devrait être capable d'utiliser le type par défaut de dispinterface spécifié par la Typelib associée avec l'objet comobject, mais vous pouvez changer cela en spécifiant dans le paramètre sinkinterface le dispinterface que vous souhaitez utiliser.

sinkobject devra être une instance de la classe avec des noms de méthodes suivant le dispinterface désiré ; vous devriez utiliser com_print_typeinfo() pour l'aide à la génération d'un gabarit de classe pour cela.

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.

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 "Quitter!\n";
    $this->terminated = true;
  }
}
$ie = new COM("InternetExplorer.Application");
// notez que vous n'avez pas besoin du & en PHP 5!
$sink =& new IEEventSinker();
com_event_sink($ie, $sink, "DWebBrowserEvents2");
$ie->Visible = true;
$ie->Navigate("http://www.php.net");
while(!$sink->terminated) {
  com_message_pump(4000);
}
$ie = null;
?>

Voir aussi com_print_typeinfo() et com_message_pump().

Précédent | Sommaire | Suivant
com_create_guid | Niveau supérieur | com_get_active_object


com_get_active_object

(PHP 5)

com_get_active_object -- Retourne un objet représentant l'instance actuelle d'un objet COM

Description

variant com_get_active_object ( string progid [, int code_page] )

com_get_active_object() est similaire à la création d'une nouvelle instance COMd'un objet COM, excepté qu'elle ne retournera un objet à votre script uniquement si l'objet est actuellement instancié. Les applications OLE utilisent quelque chose de connu en tant que "Running Object Table" qui permet aux applications connues d'être exécutées juste une fois ; cette fonction expose la fonction GetActiveObject() de la bibliothèque COM pour récupérer un objet d'une instance en cours d'utilisation.

Le paramètre Progid doit être soit le ProgID, soit le CLSID de l'objet dont vous voulez avoir l'accès (par exemple, Word.Application). Le paramètre code_page utilise les mêmes règles que dans la COM classe.

Si l'objet demandé est en cours d'exécution, la fonction com_get_active_object() retournera à votre script ce que toute autre objet COM retournerait. Sinon, un com_exception sera augmenté. 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.

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.

Précédent | Sommaire | Suivant
com_event_sink | Niveau supérieur | com_get


com_get

(PHP 3 >= 3.0.3, PHP 4)

com_get -- Lit la valeur d'une propriété d'un composant COM

Description

mixed com_get ( resource com_object, string property )

com_get() retourne la valeur de la propriété property du composant COM com_object. com_get() retourne FALSE en cas d'erreur.

Exemple 1. N'utilisez pas com_get(), utilisez la syntaxe OO à la place

<?php
// do this
$var = $obj->property;
// instead of this:
$var = com_get($obj, 'property');
?>

Note : Cette fonction n'existe pas en PHP 5 ; à la place, vous devriez utiliser la syntaxe régulière et plus naturelle OO pour accéder aux propriétés ou appeler les méthodes.

Précédent | Sommaire | Suivant
com_get_active_object | Niveau supérieur | com_invoke


com_invoke

(PHP 4)

com_invoke -- Appelle une méthode d'un composant (déconseillé)

Description

mixed com_invoke ( resource com_object, string function_name [, mixed function_parameters] )

com_invoke() appelle la méthode function_name du composant COM com_object. com_invoke() retourne FALSE en cas d'erreur, sinon retourne le résultat de la fonction function_name en cas de succès. Tous les paramètres supplémentaires function_parameters sont passés à la méthode function_name.

Exemple 1. N'utilisez pas com_invoke(), utilisez la syntaxe OO à la place

<?php
// do this
$val = $obj->method($one, $two);
// instead of this:
$val = com_invoke($obj, 'method', $one, $two);
?>

Note : Cette fonction n'existe pas en PHP 5 ; à la place, vous devriez utiliser la syntaxe régulière et plus naturelle OO pour accéder aux propriétés ou appeler les méthodes.

Précédent | Sommaire | Suivant
com_get | Niveau supérieur | com_isenum


com_isenum

(PHP 4 >= 4.1.0)

com_isenum -- Récupère un IEnumVariant (déconseillé)

Description

bool com_isenum ( variant com_module )

Regarde si l'objet COM peut être énuméré en utilisant la méthode (hack) Next(). Retourne TRUE s'il le peut, FALSE sinon. Voir COM la classe pour plus de détails sur ces méthodes.

Note : Cette fonction n'exsite pas en PHP 5 qui utilise une façon plus naturelle pour instancier le contenu des objets COM. Voir la section intitulée For Each dans Référence XV, COM et .Net (Windows) pour plus de détails.

Précédent | Sommaire | Suivant
com_invoke | Niveau supérieur | com_load_typelib


com_load_typelib

(PHP 4 >= 4.1.0, PHP 5)

com_load_typelib -- Charge un Typelib

Description

bool com_load_typelib ( string typelib_name [, bool case_insensitive] )

Charge un Typelib et enregistre son contenu dans le moteur, comme s'ils avaient été définis en utilisant define(). Le paramètre case_insensitive se comporte comme le paramètre du même nom de la fonction define().

typelib_name peut être une des valeurs suivantes :

  • Le nom d'un fichier .tlb ou le module exécutable contenant le Typelib.

  • Le GUID du Typelib, suivi du numéro de version ; par exemple {00000200-0000-0010-8000-00AA006D2EA4},2,0.

  • Le nom du Typelib, e.g Microsoft OLE DB ActiveX Data Objects 1.0 Library.

PHP va essayer de résoudre le Typelib dans cet ordre, et le processus prendra de plus en plus de ressources pour arriver à la fin de la liste ; la recherche du Typelib par son nom est manipulée physiquement en énumérant le registre jusqu'à ce qu'un résultat y soit trouvé.

Notez qu'il est plus efficace d'utiliser com.typelib_file l'option de configuration pour précharger et enregistrer les constantes, même si cela est moins flexible.

Si vous devez activer com.autoregister_typelib , alors PHP essayera d'enregistrer automatiquement les constantes associées à l'objet COM lorsque vous l'instancierez. Cela dépendra de l'interface fourni par l'objet COM lui-même et ne sera pas toujours possible.

Précédent | Sommaire | Suivant
com_isenum | Niveau supérieur | com_load


com_load

(PHP 4)

com_load -- Crée une référence sur un composant COM (déconseillé)

Description

resource com_load ( string module_name [, string server_name [, int codepage]] )

Produit le même effet que le nouvel opérateur pour créer une instance de COM la classe. Vous devez utiliser le nouvel opérateur plutôt que cette fonction.

Exemple 1. N'utilisez pas com_load(), utilisez la syntaxe OO à la place

<?php
// fait cela :
$obj = new COM($module);
// au lieu de cela :
$obj = com_load($module);
?>

Note : Cette fonction n'existe pas en PHP 5 ; utilisez COM à la place.

Précédent | Sommaire | Suivant
com_load_typelib | Niveau supérieur | com_message_pump


com_message_pump

(PHP 4 >= 4.2.3, PHP 5)

com_message_pump -- Traite un message COM en attendant jusqu'à timeoutms millisecondes

Description

bool com_message_pump ( [int timeoutms] )

com_message_pump() traite un message COM en attendant jusqu'à timeoutms millisecondes, ou bien en attendant qu'un message arrive dans la file d'attente. Si un ou plusieurs messages arrivent avant le timeout, ils seront dispatchés et la fonction retournera TRUE. Si le timeout survient et qu'aucun message n'est traité, la valeur retournée sera FALSE. Si vous ne spécifiez pas de valeur pour le paramètre timeoutms, alors il voudra 0. Une valeur à 0 signifie que les messages seront traités immédiatement ; s'il y a des messages dans la file d'attente, ils seront dispatchés aussitôt ; s'il n'y a aucun message dans la file d'attente, la fonction retournera FALSE immédiatement sans attendre.

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.

Précédent | Sommaire | Suivant
com_load | Niveau supérieur | com_print_typeinfo


com_print_typeinfo

(PHP 4 >= 4.2.3, PHP 5)

com_print_typeinfo -- Affiche une définition de classe PHP pour une interface répartissable

Description

bool com_print_typeinfo ( object comobject [, string dispinterface [, bool wantsink]] )

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

comobject doit être soit une instance d'un objet COM, soit le nom d'une bibliothèque type (qui doit être résolu en accord des règles définies dans la fonction com_load_typelib()). dispinterface est le nom d'une interface descendante IDispatch que vous souhaitez afficher. Si le paramètre wantsink vaut TRUE, l'interface d'évier correspondante sera affichée à la place.

Voir aussi com_event_sink() et com_load_typelib().

Précédent | Sommaire | Suivant
com_message_pump | Niveau supérieur | com_propget


com_propget

(PHP 3 >= 3.0.3, PHP 4)

com_propget -- Alias de com_get()

Description

Cette fonction est un alias de : com_get().

Note : Cette fonction n'existe pas en PHP 5 ; à la place, vous devriez utiliser la syntaxe régulière et plus naturelle OO pour accéder aux propriétés ou appeler les méthodes.

Précédent | Sommaire | Suivant
com_print_typeinfo | Niveau supérieur | com_propput


com_propput

(PHP 3 >= 3.0.3, PHP 4)

com_propput -- Alias de com_set()

Description

Cette fonction est un alias de : com_set().

Note : Cette fonction n'existe pas en PHP 5 ; à la place, vous devriez utiliser la syntaxe régulière et plus naturelle OO pour accéder aux propriétés ou appeler les méthodes.

Précédent | Sommaire | Suivant
com_propget | Niveau supérieur | com_propset


com_propset

(PHP 3 >= 3.0.3, PHP 4)

com_propset -- Alias de com_set()

Description

Cette fonction est un alias de : com_set().

Note : Cette fonction n'existe pas en PHP 5 ; à la place, vous devriez utiliser la syntaxe régulière et plus naturelle OO pour accéder aux propriétés ou appeler les méthodes.

Précédent | Sommaire | Suivant
com_propput | Niveau supérieur | com_release


com_release

(PHP 4 >= 4.1.0)

com_release -- Décrémente le compteur de références

Description

void com_release ( void )

com_release() décrémente le compteur de références.

Avertissement

Vous ne devriez jamais avoir besoin d'utiliser cette fonction.

Note : Cette fonction a été supprimée en PHP 5.

Précédent | Sommaire | Suivant
com_propset | Niveau supérieur | com_set


com_set

(PHP 3 >= 3.0.3, PHP 4)

com_set -- Modifie une propriété d'un composant COM

Description

void com_set ( resource com_object, string property, mixed value )

com_set() remplace la valeur de la propriété property du composant COM com_object par value. com_set() retourne la nouvelle valeur en cas de succès, et FALSE sinon.

Exemple 1. N'utilisez pas com_set(), utilisez la syntaxe OO à la place

<?php
// faites ceci :
$obj->property = $value;
// à la place de cela :
com_set($obj, 'property', $value);
?>

Note : Cette fonction n'existe pas en PHP 5 ; à la place, vous devriez utiliser la syntaxe régulière et plus naturelle OO pour accéder aux propriétés ou appeler les méthodes.

Précédent | Sommaire | Suivant
com_release | Niveau supérieur | variant_abs


variant_abs

(PHP 5)

variant_abs -- Retourne la valeur absolue d'un variant

Description

mixed variant_abs ( mixed val )

Retourne la valeur absolue de val.

Voir aussi abs().

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
com_set | Niveau supérieur | variant_add


variant_add

(PHP 5)

variant_add -- "Ajoute" deux valeurs de variants et retourne le résultat

Description

mixed variant_add ( mixed left, mixed right )

Ajoute left à right selon les règles suivantes (prises de la bibliothèque MSDN), qui correspondent à celles de Visual Basic :

Tableau 1. 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 exxpressions sont numériques | Addition
Une expression est NULL | NULL est retourné
Les deux expressions sont vides | Le sous-type entier est retourné

Voir aussi variant_sub().

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_abs | Niveau supérieur | variant_and


variant_and

(PHP 5)

variant_and -- Effectue un ET entre deux variants et retourne le résultat

Description

mixed variant_and ( mixed left, mixed right )

Effectue un ET sur les bits, selon la table de vérité suivante ; notez que cela est différent du ET normal.

Tableau 1. Règles du ET variant

Si left est | Si right est | alors le résultat est
TRUE | TRUE | TRUE
TRUE | FALSE | FALSE
TRUE | NULL | NULL
FALSE | TRUE | FALSE
FALSE | FALSE | FALSE
FALSE | NULL | FALSE
NULL | TRUE | NULL
NULL | FALSE | FALSE
NULL | NULL | NULL

Voir aussi variant_or().

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_add | Niveau supérieur | variant_cast


variant_cast

(PHP 5)

variant_cast -- Convertit un variant en un nouvel objet variant de type différent

Description

variant variant_cast ( variant variant, int type )

Cette fonction crée une copie de variant et effectue alors un transtypage pour forcer la copie à avoir le type donné par type. type doit être l'une des constantes VT_XXX.

Cette fonction est en fait la fonction VariantChangeType() de la bibliothèque COM ; consultez MSDN pour plus d'informations.

Voir aussi variant_set_type().

Précédent | Sommaire | Suivant
variant_and | Niveau supérieur | variant_cat


variant_cat

(PHP 5)

variant_cat -- Concatène deux valeurs variantes ensemble et retourne le résultat

Description

mixed variant_cat ( mixed left, mixed right )

Concatène left avec right et retourne le résultat.

Voir aussi la section intitulée Opérateurs de chaînes dans Chapitre 15 pour l'opérateur de concaténation des chaînes; cette fonction est équivalente à $left . $right.

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_cast | Niveau supérieur | variant_cmp


variant_cmp

(PHP 5)

variant_cmp -- Compare deux variants

Description

int variant_cmp ( mixed left, mixed right [, int lcid [, int flags]] )

Compare left avec right et retourne une des valeurs suivantes :

Tableau 1. 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

Cette fonction ne comparera que des valeurs scalaires, pas de tableaux ni d'enregistrements variants.

lcid est un Locale Identifier valide à utiliser lors des comparaisons des chaînes (cela affecte la collation de la chaîne). flags peut être une ou plusieurs des valeurs suivantes, jointes avec des OR, et affecte les comparaisons de chaînes :

Tableau 2. 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 de Kana
NORM_IGNOREKASHIDA | Ignore les caractères arabes kashida

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_cat | Niveau supérieur | variant_date_from_timestamp


variant_date_from_timestamp

(PHP 5)

variant_date_from_timestamp -- Retourne une représentation date en variant d'un timestamp unix

Description

variant variant_date_from_timestamp ( int timestamp )

Convertit timestamp depuis un timestamp Unix vers un type variant VT_DATE. Cela permet une intéropabilité plus facile des parties unix-iènes de PHP et COM.

Voir aussi
variant_date_to_timestamp() pour l'opération inverse,
mktime() et
time().

Précédent | Sommaire | Suivant
variant_cmp | Niveau supérieur | variant_date_to_timestamp


variant_date_to_timestamp

(PHP 5)

variant_date_to_timestamp -- Convertit une valeur date/temps variante en un timestamp Unix

Description

int variant_date_to_timestamp ( variant variant )

Convertit variant d'une valeur VT_DATE (ou similaire) en un timestamp unix. Cela permet une interopabilité plus facile entre les parties Unix de PHP et COM.

Voir aussi
variant_date_from_timestamp() pour l'inverse de cette opération
date() et
strftime().

Précédent | Sommaire | Suivant
variant_date_from_timestamp | Niveau supérieur | variant_div


variant_div

(PHP 5)

variant_div -- Retourne le résultat de la division de deux variants

Description

mixed variant_div ( mixed left, mixed right )

Divise left par right et retourne le résultat, qui applique les règles suivantes :

Tableau 1. Règle de division des variants

Si | Alors
Les deux expressions sont des chaînes, dates, caractères, booléens | Double est retourné
Une expression est une chaîne et l'autre est un caractère | Division et double retournés
Une expression est numérique et l'autre est une chaîne | Division et double retournés
Les deux expressions sont numériques | Division et double retournés
Une des expressions est NULL | NULL est retourné
right est vide et left est tout mais non vide | Un code com_exception DISP_E_DIVBYZERO est lancé
left est vide et right est tout mais non vide. | 0 en tant que double est retourné
Les deux expressions sont vides | Un code com_exception DISP_E_OVERFLOW est lancé

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_date_to_timestamp | Niveau supérieur | variant_eqv


variant_eqv

(PHP 5)

variant_eqv -- Effectue une équivalence de bits de deux variants

Description

mixed variant_eqv ( mixed left, mixed right )

Si chaque bit dans left est égal au bit correspondant dans right alors la fonction retourne TRUE, sinon elle retourne FALSE.

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_div | Niveau supérieur | variant_fix


variant_fix

(PHP 5)

variant_fix -- Retourne la portion entière d'un variant

Description

mixed variant_fix ( mixed variant )

Si variant est négatif, le premier entier négatif plus grand ou égal au variant est retourné, sinon cette fonction retourne la portion entière de la valeur de variant.

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(),
variant_round(), floor(),
ceil(),
round().

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_eqv | Niveau supérieur | variant_get_type


variant_get_type

(PHP 5)

variant_get_type -- Retourne le type d'un objet variant

Description

int variant_get_type ( variant variant )

variant_get_type() 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 déscendants de VARIANT.

Avant PHP 5, vous pouvez obtenir cette information en lisant une fausse propriété type. Voyez la classe VARIANT pour plus d'informations.

Précédent | Sommaire | Suivant
variant_fix | Niveau supérieur | variant_idiv


variant_idiv

(PHP 5)

variant_idiv -- Convertit des variants en valeurs entières, et effectue alors une division

Description

mixed variant_idiv ( mixed left, mixed right )

Convertit left et right en valeurs entières, et effectue alors une division entière selon les règles suivantes :

Tableau 1. Règles de divisions internes des variants

Si | Alors
Les deux expressions sont des chaînes, dates, caractères, booléens | Division et entier retournés
Une expression est une chaîne et l'autre est un caractère | Division
Une expression est numérique et l'autre est une chaîne | Division
Les deux expressions sont numériques | Division
Une des expressions est NULL | NULL est retourné
Les deux expressions sont vides | Un code com_exception DISP_E_DIVBYZERO est lancé

Voir aussi variant_div().

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_get_type | Niveau supérieur | variant_imp


variant_imp

(PHP 5)

variant_imp -- Exécute une implication sur les bits de deux variants

Description

mixed variant_imp ( mixed left, mixed right )

Exécute une opération d'implication sur les bits, selon la table de vérités suivante :

Tableau 1. Table d'implication des variants

Si left est | Si right est | alors le résultat est
TRUE | TRUE | TRUE
TRUE | FALSE | TRUE
TRUE | NULL | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | TRUE
FALSE | NULL | TRUE
NULL | TRUE | TRUE
NULL | FALSE | NULL
NULL | NULL | NULL

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_idiv | Niveau supérieur | variant_int


variant_int

(PHP 5)

variant_int -- Retourne la partie entière d'un variant

Description

mixed variant_int ( mixed variant )

Si variant est négatif, le premier entier négatif supérieur ou égal à ce variant est retourné, sinon cette fonction retourne la partie entière de la valeur de variant.

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Voir aussi variant_fix(),
variant_round(),
floor(),
ceil() et
round().

Précédent | Sommaire | Suivant
variant_imp | Niveau supérieur | variant_mod


variant_mod

(PHP 5)

variant_mod -- Divise deux variantes et retourne le reste

Description

mixed variant_mod ( mixed left, mixed right )

Divise left par right et retourne le reste.

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Voir aussi variant_div() et variant_idiv().

Précédent | Sommaire | Suivant
variant_int | Niveau supérieur | variant_mul


variant_mul

(PHP 5)

variant_mul -- Multiplie les valeurs de deux variants et retourne le résultat

Description

mixed variant_mul ( mixed left, mixed right )

Multiplie left par right et retourne le résultat selon les règles suivantes :

Tableau 1. 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

Les valeurs booléennes sont converties de -1 à FALSE et de 0 à TRUE.

Voir aussi variant_div(), variant_idiv().

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_mod | Niveau supérieur | variant_neg


variant_neg

(PHP 5)

variant_neg -- Effctue une négation logique sur un variant

Description

mixed variant_neg ( mixed variant )

Effectue une négation logique de variant et retourne le résultat.

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_mul | Niveau supérieur | variant_not


variant_not

(PHP 5)

variant_not -- Exécute une négation sur les bits sur un variant

Description

mixed variant_not ( mixed variant )

Exécute une négation sur les bits sur le paramètre variant et retourne le résultat. Si variant est NULL, le résultat sera aussi NULL.

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_neg | Niveau supérieur | variant_or


variant_or

(PHP 5)

variant_or -- Performe une disjonction logique sur deux variants

Description

mixed variant_or ( mixed left, mixed right )

Effectue une opération sur les bits de types OR, selon la table de vérité suivante ; notez que ceci est différent de l'expression OR normale.

Tableau 1. 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

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Voir aussi variant_and() et variant_xor().

Précédent | Sommaire | Suivant
variant_not | Niveau supérieur | variant_pow


variant_pow

(PHP 5)

variant_pow -- Retourne le résultat de la fonction puissance avec deux variants

Description

mixed variant_pow ( mixed left, mixed right )

Retourne left à la puissance right.

Voir aussi pow().

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_or | Niveau supérieur | variant_round


variant_round

(PHP 5)

variant_round -- Arrondit le variant au nombre spécifié de décimales

Description

mixed variant_round ( mixed variant, int decimals )

Retourne la valeur de variant arrondie à decimals décimales.

Voir aussi round().

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_pow | Niveau supérieur | variant_set_type


variant_set_type

(PHP 5)

variant_set_type -- Convertit un variant en un autre type "sur-place"

Description

void variant_set_type ( variant variant, int type )

Cette fonction est similaire variant_cast() à part que le variant est modifié "sur-place" ; aucun nouveau variant n'est créé. Les paramètres de cette fonction ont la même significaton que ceux de variant_cast().

Voir aussi variant_cast().

Précédent | Sommaire | Suivant
variant_round | Niveau supérieur | variant_set


variant_set

(PHP 5)

variant_set -- Assigne une nouvelle valeur pour un objet variant

Description

void variant_set ( variant variant, mixed value )

Convertit value en un variant et l'assigne à l'objet variant. Aucun nouvel objet n'est créé et l'ancienne valeur de variant est libérée.

Précédent | Sommaire | Suivant
variant_set_type | Niveau supérieur | variant_sub


variant_sub

(PHP 5)

variant_sub -- Soustrait la valeur du variant de droite de la valeur de celui de gauche et retourne le résultat

Description

mixed variant_sub ( mixed left, mixed right )

Soustrait right de left en utilisant les règles suivantes :

Tableau 1. Règles de soustraction des variants

Si | Alors
Les deux expressions sont des chaînes | Soustraction
Une expression est une chaîne et l'autre est un caractère | Soustraction
Une expression est numérique et l'autre est une chaîne | Soustraction.
Les deux expressions sont numériques | Soustraction
Une des expressions est NULL | NULL est retourné
Les deux expressions sont vides | Une chaîne vide est retournée

Voir aussi variant_add().

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Précédent | Sommaire | Suivant
variant_set | Niveau supérieur | variant_xor


variant_xor

(PHP 5)

variant_xor -- Exécute une exclusion logique sur deux variants

Description

mixed variant_xor ( mixed left, mixed right )

Exécute une exclusion logique selon la table des vérités suivant :

Tableau 1. 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

Note : Tout comme les fonctions arithmétiques, les paramètres de cette fonction peuvent être soit un type natif de PHP (entier, chaîne de caractères, nombre à virgule flotante, booléen ou NULL), ou une instance d'une classe COM, VARIANT ou DOTNET. Les types natifs de PHP seront convertis en classe VARIANT en utilisant les mêmes rouages que ceux trouvés dans le constructeur de VARIANT la classe. Les objets COM et DOTNET auront les valeurs de leurs proriétés par défaut et seront utilisés dans les valeurs des VARIANT.

Les fonctions arithmétiques VARIANT sont transposées sur des fonctions nommées de la même façon dans la bibliothèque COM ; pour plus d'informations sur ces fonctions, consultez la bibliothèque MSDN. Les fonctions PHP sont nommées légèrement différemment ; par exemple variant_add() en PHP correspond à VarAdd() dans la documentation MSDN.

Voir aussi variant_and() et variant_or().

Précédent | Sommaire | Suivant
variant_sub | Niveau supérieur | Crack


Fonctions ClibPDF

Manuel PHP
Précédent Suivant

XIV. Fonctions ClibPDF

Introduction

L'extension ClibPDF vous permet de créer des documents PDF avec PHP. Les fonctionnalités et API de ClibPDF sont très similaires à PDFlib. Cette documentation devrait être lue avec le manuel ClibPDF sous la main, car il est beaucoup plus détaillé.

Beaucoup de fonctions natives de ClibPDF et du module PHP, de même que celles de PDFlib, ont le même nom. Toutes les fonctions, hormis cpdf_open() utilisent un pointeur sur un document comme premier paramètre.

Actuellement, ce pointeur n'est pas utilisé en interne, car ClibPDF ne supporte pas la création de plusieurs documents PDF simultanément. En fait, il ne vaut mieux pas l'envisager, car les résultats sont aléatoires. Je ne veux même pas imaginer les problèmes qui pourraient se poser avec les environnements multi-tâches. Selon l'auteur de ClibPDF, cette situation va changer dans les prochaines versions (lorsque cette documentation a été écrite, c'était la version 1.10). Si vous avez besoin de cette fonctionnalité, utilisez pdflib.

Une caractéristique pratique de ClibPDF (et aussi de PDFlib) est celle de créer le document PDF en mémoire, sans fichiers temporaires. ClibPDF permet aussi de passer les coordonnées avec une unité prédéfinie (ce qui peut être simulé avec pdf_translate() de la bibliothèque PDFlib).

Un autre atout de ClibPDF est que chaque page peut être modifiée à tout moment même si une nouvelle page a été ouverte. La fonction cpdf_set_current_page() vous permet de quitter temporairement une page et d'en modifier une autre.

La plupart des fonctions sont très simples d'emploi. Le plus difficile est probablement de créer un document PDF simple. L'exemple suivant devrait vous aider à démarrer. La page contient du texte qui utilise la police "Times-Roman" en taille 30, outlined. Le texte est souligné.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Note : Si vous êtes intéressé par des alternatives gratuites pour générer des PDF, sans passer par des bibliothèques PDF, voyez cette entrée de la FAQ.

Pré-requis

Pour utiliser les fonctions ClibPDF vous devez installer la libriaire ClibPDF. Elle est disponible au téléchargement sur le site de FastIO, mais elle impose l'achat d'une licence pour utilisation commerciale. PHP requiert que vous utilisiez ClibPDF >= 2.

Installation

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP avec l'option --with-cpdflib[=DIR]. DIR est le dossier d'installation de CPDFLib et, par défaut, il vaut /usr. De plus, vous pouvez spécifier les bibliothèques TIFF et JPEG que vous utilisez. Pour cela, ajoutez les options de configuration --with-jpeg-dir[=DIR] et --with-tiff-dir[=DIR].

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.

CPDF_PM_NONE (entier)

CPDF_PM_OUTLINES (entier)

CPDF_PM_THUMBS (entier)

CPDF_PM_FULLSCREEN (entier)

CPDF_PL_SINGLE (entier)

CPDF_PL_1COLUMN (entier)

CPDF_PL_2LCOLUMN (entier)

CPDF_PL_2RCOLUMN (entier)

Exemples

Exemple 1. Exemple simple ClibPDF

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842, 1.0);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1");
cpdf_begin_text($cpdf);
cpdf_set_font($cpdf, "Times-Roman", 30, "WinAnsiEncoding");
cpdf_set_text_rendering($cpdf, 1);
cpdf_text($cpdf, "Times Roman outlined", 50, 50);
cpdf_end_text($cpdf);
cpdf_moveto($cpdf, 50, 50);
cpdf_lineto($cpdf, 740, 330);
cpdf_stroke($cpdf);
cpdf_finalize_page($cpdf, 1);
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

La distribution pdflib contient un exemple plus complet, qui crée des séries de pages avec une horloge. Voici cet exemple converti en script PHP qui utilise l'extension ClibPDF :

Exemple 2. Exemple pdfclock de la distribution pdflib 2.0

<?php
$radius = 200;
$margin = 20;
$pagecount = 40;

$pdf = cpdf_open(0);
cpdf_set_creator($pdf, "pdf_clock.php");
cpdf_set_title($pdf, "Analog Clock");

while ($pagecount-- > 0) {
  cpdf_page_init($pdf, $pagecount+1, 0, 2 * ($radius + $margin), 2 * ($radius + $margin), 1.0);

  cpdf_set_page_animation($pdf, 4, 0.5, 0, 0, 0);  /* wipe */

  cpdf_translate($pdf, $radius + $margin, $radius + $margin);
  cpdf_save($pdf);
  cpdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);

  /* minute strokes */
  cpdf_setlinewidth($pdf, 2.0);
  for ($alpha = 0; $alpha < 360; $alpha += 6)
    {
    cpdf_rotate($pdf, 6.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin/3, 0.0);
    cpdf_stroke($pdf);
    }

  cpdf_restore($pdf);
  cpdf_save($pdf);

  /* 5 minute strokes */
  cpdf_setlinewidth($pdf, 3.0);
  for ($alpha = 0; $alpha < 360; $alpha += 30)
  {
    cpdf_rotate($pdf, 30.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin, 0.0);
    cpdf_stroke($pdf);
  }

  $ltime = getdate();

  /* draw hour hand */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['minutes']/60.0) + $ltime['hours'] - 3.0) * 30.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius/2, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* draw minute hand */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds']/60.0) + $ltime['minutes'] - 15.0) * 6.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius * 0.8, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* draw second hand */
  cpdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
  cpdf_setlinewidth($pdf, 2);
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
  cpdf_moveto($pdf, -$radius/5, 0.0);
  cpdf_lineto($pdf, $radius, 0.0);
  cpdf_stroke($pdf);
  cpdf_restore($pdf);

  /* draw little circle at center */
  cpdf_circle($pdf, 0, 0, $radius/30);
  cpdf_fill($pdf);

  cpdf_restore($pdf);

  cpdf_finalize_page($pdf, $pagecount+1);
}

cpdf_finalize($pdf);
header("Content-type: application/pdf");
cpdf_output_buffer($pdf);
cpdf_close($pdf);
?>

Voir aussi

Voir aussi la documentation de PDFlib.

Table des matières
cpdf_add_annotation -- Ajoute une annotation
cpdf_add_outline -- Ajoute un signet à la page courante
cpdf_arc -- Dessine un arc de cercle
cpdf_begin_text -- Démarre une section de texte
cpdf_circle -- Dessine un cercle
cpdf_clip -- Aligne les dessins sur le chemin courant
cpdf_close -- Ferme un fichier PDF
cpdf_closepath_fill_stroke -- Remplit le chemin, dessine le bord et ferme le chemin
cpdf_closepath_stroke -- Ferme le fichier et dessine une ligne le long du chemin
cpdf_closepath -- Ferme le chemin
cpdf_continue_text -- Affiche le texte à la ligne suivante
cpdf_curveto -- Dessine une courbe
cpdf_end_text -- Termine une section de texte
cpdf_fill_stroke -- Remplit le chemin, et dessine le bord
cpdf_fill -- Remplit le chemin courant
cpdf_finalize_page -- Termine une page
cpdf_finalize -- Termine un document
cpdf_global_set_document_limits -- Fixe les limites d'un document PDF
cpdf_import_jpeg -- Ouvre une image JPEG
cpdf_lineto -- Dessine une ligne
cpdf_moveto -- Fixe le point courant de dessin CPDF
cpdf_newpath -- Commence un nouveau chemin
cpdf_open -- Ouvre un nouveau document PDF
cpdf_output_buffer -- Affiche le document PDF qui est en mémoire
cpdf_page_init -- Commence une nouvelle page
cpdf_place_inline_image -- Place une image dans une page
cpdf_rect -- Dessine un rectangle
cpdf_restore -- Restaure un environnement sauvegardé
cpdf_rlineto -- Dessine une ligne
cpdf_rmoveto -- Fixe le point courant
cpdf_rotate_text -- Configure l'inclinaison d'un texte
cpdf_rotate -- Effectue une rotation
cpdf_save_to_file -- Écrit un document PDF dans un fichier
cpdf_save -- Sauve l'environnement courant
cpdf_scale -- Modifie l'échelle
cpdf_set_action_url -- Paramètre un hyper lien
cpdf_set_char_spacing -- Fixe l'espacement des caractères
cpdf_set_creator -- Définit le créateur d'un document PDF
cpdf_set_current_page -- Définit la page courante
cpdf_set_font_directories -- Définit les dossiers dans lesquels on doit rechercher des polices externes
cpdf_set_font_map_file -- Configure le fichier de remplacement de polices externes
cpdf_set_font -- Sélectionne la police courante et sa taille
cpdf_set_horiz_scaling -- Fixe l'échelle horizontale du texte
cpdf_set_keywords -- Fixe les mots-clés d'un document PDF
cpdf_set_leading -- Fixe la distance entre deux lignes
cpdf_set_page_animation -- Fixe l'animation de la transition entre les pages
cpdf_set_subject -- Fixe le sujet d'un document PDF
cpdf_set_text_matrix -- Fixe la matrice du texte
cpdf_set_text_pos -- Fixe la position du texte
cpdf_set_text_rendering -- Détermine le rendu du texte
cpdf_set_text_rise -- Fixe l'élévation du texte
cpdf_set_title -- Fixe le titre d'un document PDF
cpdf_set_viewer_preferences -- Indique comment afficher le document à l'utilisateur
cpdf_set_word_spacing -- Fixe l'espacement des mots
cpdf_setdash -- Définit le motif de pointillés
cpdf_setflat -- Définit la platitude (flatness)
cpdf_setgray_fill -- Définit le niveau de gris comme couleur de remplissage
cpdf_setgray_stroke -- Choisit un niveau de gris comme couleur de dessin
cpdf_setgray -- Modifie un niveau de gris comme couleur de dessin et de remplissage
cpdf_setlinecap -- Fixe le paramètre linecap
cpdf_setlinejoin -- Fixe le paramètre linejoin
cpdf_setlinewidth -- Fixe la largeur de ligne
cpdf_setmiterlimit -- Fixe le paramètre miter limit
cpdf_setrgbcolor_fill -- Choisit une couleur rgb comme couleur de remplissage
cpdf_setrgbcolor_stroke -- Choisit une couleur rgb comme couleur de dessin
cpdf_setrgbcolor -- Choisit une couleur rgb comme couleur de dessin et de remplissage
cpdf_show_xy -- Affiche un texte à une position
cpdf_show -- Imprime un texte à la position courante
cpdf_stringwidth -- Retourne la taille de la police courante
cpdf_stroke -- Dessine une ligne le long du chemin
cpdf_text -- Imprime un texte avec des options
cpdf_translate -- Modifie l'origine du système de coordonnées

Précédent | Sommaire | Suivant
classkit_method_rename | Niveau supérieur | cpdf_add_annotation


cpdf_add_annotation

(PHP 3 >= 3.0.12, PHP 4, PHP 5 <= 5.0.4)

cpdf_add_annotation -- Ajoute une annotation

Description

bool cpdf_add_annotation ( int pdf_document, float llx, float lly, float urx, float ury, string title, string content [, int mode] )

Ajoute une note à un endroit spécifique.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

llx

X : en bas, à gauche

lly

Y : en bas, à gauche

urx

X : en haut, à droite

ury

Y : en haut, à droite

title

Titre de la note

text

Contenu de la note

mode

Le paramètre optionnel mode détermine la longueur de l'unité. S'il vaut 0 ou s'il est omis, l'unité par défaut tel que spécifié pour la page sera utilisé. Sinon, les coordonnées seront mesurées en points postcript sans tenir compte de l'unité courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
Fonctions ClibPDF | Niveau supérieur | cpdf_add_outline


cpdf_add_outline

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_add_outline -- Ajoute un signet à la page courante

Description

int cpdf_add_outline ( int pdf_document, int lastoutline, int sublevel, int open, int pagenr, string text )

cpdf_add_outline() ajoute un signet avec le texte text qui pointe sur la page courante.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

lastoutline

sublevel

open

pagenr

text

Le texte du signet

Exemples

Exemple 1. Ajouter une mise en relief

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1");
// ...
// quelques dessins
// ...
cpdf_finalize($cpdf);
header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

Précédent | Sommaire | Suivant
cpdf_add_annotation | Niveau supérieur | cpdf_arc


cpdf_arc

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_arc -- Dessine un arc de cercle

Description

bool cpdf_arc ( int pdf_document, float x_coor, float y_coor, float radius, float start, float end [, int mode] )

Dessine un arc de cercle.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

x

X : coordonnée du centre

y

Y : coordonnée du centre

radius

Le radius de l'arc

start

L'angle de début, en degrés

end

L'angle de fin, en degrés

mode

Le paramètre optionnel mode détermine la longueur de l'unité. S'il vaut 0 ou s'il est omis, l'unité par défaut tel que spécifié pour la page sera utilisé. Sinon, les coordonnées seront mesurées en points postcript sans tenir compte de l'unité courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_circle()

Précédent | Sommaire | Suivant
cpdf_add_outline | Niveau supérieur | cpdf_begin_text


cpdf_begin_text

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_begin_text -- Démarre une section de texte

Description

bool cpdf_begin_text ( int pdf_document )

Démarre une section de texte.

La section doit être terminée avec cpdf_end_text().

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec cpdf_begin_text()

<?php
cpdf_begin_text($pdf);
cpdf_set_font($pdf, 16, "Helvetica", "WinAnsiEncoding");
cpdf_text($pdf, 100, 100, "Un peu de texte");
cpdf_end_text($pdf)
?>

Voir aussi

cpdf_end_text()

Précédent | Sommaire | Suivant
cpdf_arc | Niveau supérieur | cpdf_circle


cpdf_circle

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_circle -- Dessine un cercle

Description

bool cpdf_circle ( int pdf_document, float x_coor, float y_coor, float radius [, int mode] )

Dessine un cercle.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

x_coor

X : coordonnée du centre

y_coor

Y : coordonnée du centre

radius

Le radius du cercle

mode

Le paramètre optionnel mode détermine la longueur de l'unité. S'il vaut 0 ou s'il est omis, l'unité par défaut tel que spécifié pour la page sera utilisé. Sinon, les coordonnées seront mesurées en points postcript sans tenir compte de l'unité courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_arc()

Précédent | Sommaire | Suivant
cpdf_begin_text | Niveau supérieur | cpdf_clip


cpdf_clip

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_clip -- Aligne les dessins sur le chemin courant

Description

bool cpdf_clip ( int pdf_document )

Aligne les dessins sur le chemin courant.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_circle | Niveau supérieur | cpdf_close


cpdf_close

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_close -- Ferme un fichier PDF

Description

bool cpdf_close ( int pdf_document )

Ferme un fichier PDF.

Ce doit être la dernière fonction appelée, et elle
apparaît même après cpdf_finalize(),
cpdf_output_buffer() et
cpdf_save_to_file().

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_open()

Précédent | Sommaire | Suivant
cpdf_clip | Niveau supérieur | cpdf_closepath_fill_stroke


cpdf_closepath_fill_stroke

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_closepath_fill_stroke -- Remplit le chemin, dessine le bord et ferme le chemin

Description

bool cpdf_closepath_fill_stroke ( int pdf_document )

Remplit le chemin, dessine le bord et ferme le chemin.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_closepath()
cpdf_stroke()
cpdf_fill()
cpdf_setgray_fill()
cpdf_setgray()
cpdf_setrgbcolor_fill()
cpdf_setrgbcolor()

Précédent | Sommaire | Suivant
cpdf_close | Niveau supérieur | cpdf_closepath_stroke


cpdf_closepath_stroke

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_closepath_stroke -- Ferme le fichier et dessine une ligne le long du chemin

Description

bool cpdf_closepath_stroke ( int pdf_document )

Ferme le fichier et dessine une ligne le long du chemin.

cpdf_closepath_stroke() est une combinaison de cpdf_closepath() et cpdf_stroke().

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_closepath()
cpdf_stroke()

Précédent | Sommaire | Suivant
cpdf_closepath_fill_stroke | Niveau supérieur | cpdf_closepath


cpdf_closepath

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_closepath -- Ferme le chemin

Description

bool cpdf_closepath ( int pdf_document )

Ferme le chemin courant.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_closepath_stroke | Niveau supérieur | cpdf_continue_text


cpdf_continue_text

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_continue_text -- Affiche le texte à la ligne suivante

Description

bool cpdf_continue_text ( int pdf_document, string text )

Imprime le texte text à la ligne suivante.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

text

Le texte à afficher

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_show_xy()
cpdf_text()
cpdf_set_leading()
cpdf_set_text_pos()

Précédent | Sommaire | Suivant
cpdf_closepath | Niveau supérieur | cpdf_curveto


cpdf_curveto

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_curveto -- Dessine une courbe

Description

bool cpdf_curveto ( int pdf_document, float x1, float y1, float x2, float y2, float x3, float y3 [, int mode] )

Dessine une courbe de Bezier, entre le point courant et le point (x3, y3), en utilisant les points de contrôle (x1, y1) et (x2, y2).

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

x1

X : coordonnée du premier point de contrôle

y1

Y : coordonnée du premier point de contrôle

x2

X : coordonnée du second point de contrôle

y2

Y : coordonnée du second point de contrôle

x3

X : coordonnée de la cible

y3

Y : coordonnée de la cible

mode

Le paramètre optionnel mode détermine la longueur de l'unité. S'il vaut 0 ou s'il est omis, l'unité par défaut tel que spécifié pour la page sera utilisé. Sinon, les coordonnées seront mesurées en points postcript sans tenir compte de l'unité courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_moveto()
cpdf_rmoveto()
cpdf_rlineto()
cpdf_lineto()

Précédent | Sommaire | Suivant
cpdf_continue_text | Niveau supérieur | cpdf_end_text


cpdf_end_text

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_end_text -- Termine une section de texte

Description

bool cpdf_end_text ( int pdf_document )

Termine une section de texte, commencée avec cpdf_begin_text().

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec cpdf_end_text()

<?php
cpdf_begin_text($pdf);
cpdf_set_font($pdf, 16, "Helvetica", "WinAnsiEncoding");
cpdf_text($pdf, 100, 100, "Un peu de texte");
cpdf_end_text($pdf)
?>

Voir aussi

cpdf_begin_text()

Précédent | Sommaire | Suivant
cpdf_curveto | Niveau supérieur | cpdf_fill_stroke


cpdf_fill_stroke

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_fill_stroke -- Remplit le chemin, et dessine le bord

Description

bool cpdf_fill_stroke ( int pdf_document )

Remplit l'intérieur du chemin avec la couleur courante, et dessine le chemin.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_closepath()
cpdf_stroke()
cpdf_fill()
cpdf_setgray_fill()
cpdf_setgray()
cpdf_setrgbcolor_fill()
cpdf_setrgbcolor()

Précédent | Sommaire | Suivant
cpdf_end_text | Niveau supérieur | cpdf_fill


cpdf_fill

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_fill -- Remplit le chemin courant

Description

bool cpdf_fill ( int pdf_document )

Remplit l'intérieur du chemin courant avec la couleur courante.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_closepath()
cpdf_stroke()
cpdf_setgray_fill()
cpdf_setgray()
cpdf_setrgbcolor_fill()
cpdf_setrgbcolor()

Précédent | Sommaire | Suivant
cpdf_fill_stroke | Niveau supérieur | cpdf_finalize_page


cpdf_finalize_page

(PHP 3 >= 3.0.10, PHP 4, PHP 5 <= 5.0.4)

cpdf_finalize_page -- Termine une page

Description

bool cpdf_finalize_page ( int pdf_document, int page_number )

Termine la page numéro page_number.

Cette fonction ne sert qu'à libérer de la mémoire. Les pages terminées prennent moins de place, mais ne peuvent plus être modifiées.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

page_number

Le numéro de la page

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_page_init()

Précédent | Sommaire | Suivant
cpdf_fill | Niveau supérieur | cpdf_finalize


cpdf_finalize

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_finalize -- Termine un document

Description

bool cpdf_finalize ( int pdf_document )

Termine un document PDF.

Vous devrez quand-même appeler cpdf_close() après.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_close()

Précédent | Sommaire | Suivant
cpdf_finalize_page | Niveau supérieur | cpdf_global_set_document_limits


cpdf_global_set_document_limits

(PHP 4, PHP 5 <= 5.0.4)

cpdf_global_set_document_limits -- Fixe les limites d'un document PDF

Description

bool cpdf_global_set_document_limits ( int maxpages, int maxfonts, int maximages, int maxannotations, int maxobjects )

Permet de fixer plusieurs limites au document PDF. Elle doit être appelée avant cpdf_open() pour être effective. Elle fixe les limites de tous les documents ouverts par la suite.

Liste de paramètres

maxPages

Le nombre maximal de pages

maxFonts

Le nombre maximal de polices

maxImages

Le nombre maximal d'images

maxAnnots

Le nombre maximal de notes

maxObjects

Le nombre maximal d'objets

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_open()

Précédent | Sommaire | Suivant
cpdf_finalize | Niveau supérieur | cpdf_import_jpeg


cpdf_import_jpeg

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_import_jpeg -- Ouvre une image JPEG

Description

bool cpdf_import_jpeg ( int pdf_document, string file_name, float x_coor, float y_coor, float angle, float width, float height, float x_scale, float y_scale, int gsave [, int mode] )

Ouvre une image JPEG.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

file_name

Le chemin vers le fichier image. Le format de l'image doit être JPEG

x_coor

X : coordonnée de l'image

y_coor

Y : coordonnée de l'image

angle

L'angle de rotation de l'image, en degrés

width

La largeur de l'image

height

La hauteur de l'image

x_scale

y_scale

gsave

Doit être non nul pour que cette fonction fonctionne correctement

mode

Le paramètre optionnel mode détermine la longueur de l'unité. S'il vaut 0 ou s'il est omis, l'unité par défaut tel que spécifié pour la page sera utilisé. Sinon, les coordonnées seront mesurées en points postcript sans tenir compte de l'unité courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_place_inline_image()

Précédent | Sommaire | Suivant
cpdf_global_set_document_limits | Niveau supérieur | cpdf_lineto


cpdf_lineto

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_lineto -- Dessine une ligne

Description

bool cpdf_lineto ( int pdf_document, float x_coor, float y_coor [, int mode] )

Dessine une ligne entre le point courant et le point spécifié.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

x_coor

X : coordonnée du point cible

y_coor

Y : coordonnée du point cible

mode

Le paramètre optionnel mode détermine la longueur de l'unité. S'il vaut 0 ou s'il est omis, l'unité par défaut tel que spécifié pour la page sera utilisé. Sinon, les coordonnées seront mesurées en points postcript sans tenir compte de l'unité courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_moveto()
cpdf_rmoveto()
cpdf_curveto()

Précédent | Sommaire | Suivant
cpdf_import_jpeg | Niveau supérieur | cpdf_moveto


cpdf_moveto

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_moveto -- Fixe le point courant de dessin CPDF

Description

bool cpdf_moveto ( int pdf_document, float x_coor, float y_coor [, int mode] )

Fixe le point courant de dessin CPDF.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

x_coor

Coordonnée X

y_coor

Coordonnée Y

mode

Le paramètre optionnel mode détermine la longueur de l'unité. S'il vaut 0 ou s'il est omis, l'unité par défaut tel que spécifié pour la page sera utilisé. Sinon, les coordonnées seront mesurées en points postcript sans tenir compte de l'unité courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_lineto | Niveau supérieur | cpdf_newpath


cpdf_newpath

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_newpath -- Commence un nouveau chemin

Description

bool cpdf_newpath ( int pdf_document )

Commence un nouveau chemin.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_moveto | Niveau supérieur | cpdf_open


cpdf_open

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_open -- Ouvre un nouveau document PDF

Description

int cpdf_open ( int compression [, string filename [, array doc_limits]] )

Ouvre un nouveau document PDF.

Liste de paramètres

compression

Si différent de 0, la compression du document est activée

filename

Définit le fichier dans lequel le document sera écrit. - est un synonyme pour stdout.

S'il est omis, le document sera écrit en mémoire et pourra être écrit dans un fichier avec cpdf_save_to_file() ou envoyé à l'affichage avec cpdf_output_buffer().

Note : L'utilisation de stdout ne fonctionnera pas si PHP est compilé en tant que module Apache. Vous pouvez résoudre ce problème en ignorant ce paramètre et en utilisant cpdf_output_buffer() plus tard pour afficher le document PDF.

doc_limits

Un tableau définissant les limites du document. Voir cpdf_global_set_document_limits() pour plus d'informations.

Valeurs de retour

Retourne un gestionnaire de document, nécessaire en tant que premier paramètre pour toutes les autres fonctions de la bibliothèque.

Voir aussi

cpdf_close()
cpdf_output_buffer()

Précédent | Sommaire | Suivant
cpdf_newpath | Niveau supérieur | cpdf_output_buffer


cpdf_output_buffer

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_output_buffer -- Affiche le document PDF qui est en mémoire

Description

bool cpdf_output_buffer ( int pdf_document )

Affiche le document PDF vers la sortie standard.

Le document doit avoir été créé en mémoire, ce qui est le cas si la fonction cpdf_open() a été appelée sans spécifier de nom de fichier.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_open()

Précédent | Sommaire | Suivant
cpdf_open | Niveau supérieur | cpdf_page_init


cpdf_page_init

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_page_init -- Commence une nouvelle page

Description

bool cpdf_page_init ( int pdf_document, int page_number, int orientation, float height, float width [, float unit] )

Commence une nouvelle page.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

page_number

Le numéro de la page

orientation

0 pour portrait, 1 pour paysage

height

La hauteur de la page

width

La largeur de la page

unit

Unité du système de coordonnées. Sa valeur doit être exprimée en points postscript par unité. Comme un pouce (2.54 cm) vaut 72 points, une valeur de 72 configure l'unité de mesure d'un pouce. Par défaut, ce paramètre vaut 72.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_set_current_page()

Précédent | Sommaire | Suivant
cpdf_output_buffer | Niveau supérieur | cpdf_place_inline_image


cpdf_place_inline_image

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_place_inline_image -- Place une image dans une page

Description

bool cpdf_place_inline_image ( int pdf_document, int image, float x_coor, float y_coor, float angle, float width, float height, int gsave [, int mode] )

Place une image créée avec les fonctions images de PHP sur la page. L'échelle de l'image peut aussi être modifiée.

Note : Cette fonction est uniquement disponible si PHP a été compilé avec la bibliothèque GD version 1.3. Lisez les instructions d'installation de l'extension GD pour plus d'informations.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

image

Une image créée avec les fonctions images de PHP

x_coor

X : coordonnée de l'image

y_coor

Y : coordonnée de l'image

angle

L'angle de rotation de l'image, en degrés

width

La largeur de l'image

height

La hauteur de l'image

gsave

Doit être différent de 0 pour permettre à cette fonction de fonctionner correctement

mode

Le paramètre optionnel mode détermine la longueur de l'unité. S'il vaut 0 ou s'il est omis, l'unité par défaut tel que spécifié pour la page sera utilisé. Sinon, les coordonnées seront mesurées en points postcript sans tenir compte de l'unité courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_import_jpeg()

Précédent | Sommaire | Suivant
cpdf_page_init | Niveau supérieur | cpdf_rect


cpdf_rect

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_rect -- Dessine un rectangle

Description

bool cpdf_rect ( int pdf_document, float x_coor, float y_coor, float width, float height [, int mode] )

Dessine un rectangle.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

x_coor

X : coordonnée du coin inférieur gauche

y_coor

Y : coordonnée du coin inférieur gauche

width

La largeur du rectangle

height

La hauteur du rectangle

mode

Le paramètre optionnel mode détermine la longueur de l'unité. S'il vaut 0 ou s'il est omis, l'unité par défaut tel que spécifié pour la page sera utilisé. Sinon, les coordonnées seront mesurées en points postcript sans tenir compte de l'unité courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec cpdf_rect()

<?php

$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842, 1.0);

// couleur de remplissage (rouge)
cpdf_setrgbcolor($cpdf, 1, 0, 0);

// dessine un rectangle (180 * 100)
cpdf_rect($cpdf, 645, 400, 180, 100);

// colorie le rectangle
cpdf_fill($cpdf);

cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);

?>

Précédent | Sommaire | Suivant
cpdf_place_inline_image | Niveau supérieur | cpdf_restore


cpdf_restore

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_restore -- Restaure un environnement sauvegardé

Description

bool cpdf_restore ( int pdf_document )

Restaure l'environnement sauvé par cpdf_save(). Cette fonction est similaire à la commande postscript grestore. Très pratique quand vous devez faire des translations et rotations sur un objet, mais sans affecter les autres.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec cpdf_restore()

<?php
cpdf_save($pdf);
// plein de transformations, translations, ...
cpdf_restore($pdf)
?>

Voir aussi

cpdf_save()

Précédent | Sommaire | Suivant
cpdf_rect | Niveau supérieur | cpdf_rlineto


cpdf_rlineto

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_rlineto -- Dessine une ligne

Description

bool cpdf_rlineto ( int pdf_document, float x_coor, float y_coor [, int mode] )

Dessine une ligne entre le point courant et le point de coordonnées relatives fournies.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

x_coor

X : coordonnée du point cible

y_coor

Y : coordonnée du point cible

mode

Le paramètre optionnel mode détermine la longueur de l'unité. S'il vaut 0 ou s'il est omis, l'unité par défaut tel que spécifié pour la page sera utilisé. Sinon, les coordonnées seront mesurées en points postcript sans tenir compte de l'unité courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_moveto()
cpdf_rmoveto()
cpdf_curveto()

Précédent | Sommaire | Suivant
cpdf_restore | Niveau supérieur | cpdf_rmoveto


cpdf_rmoveto

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_rmoveto -- Fixe le point courant

Description

bool cpdf_rmoveto ( int pdf_document, float x_coor, float y_coor [, int mode] )

Fixe le point courant relativement aux coordonnées fournies.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

x_coor

X : coordonnée du point cible

y_coor

Y : coordonnée du point cible

mode

Le paramètre optionnel mode détermine la longueur de l'unité. S'il vaut 0 ou s'il est omis, l'unité par défaut tel que spécifié pour la page sera utilisé. Sinon, les coordonnées seront mesurées en points postcript sans tenir compte de l'unité courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_moveto()

Précédent | Sommaire | Suivant
cpdf_rlineto | Niveau supérieur | cpdf_rotate_text


cpdf_rotate_text

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_rotate_text -- Configure l'inclinaison d'un texte

Description

bool cpdf_rotate_text ( int pdfdoc, float angle )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
cpdf_rmoveto | Niveau supérieur | cpdf_rotate


cpdf_rotate

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_rotate -- Effectue une rotation

Description

bool cpdf_rotate ( int pdf_document, float angle )

Effectue une rotation d'un angle de angle degrés.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

angle

L'angle, en degrés

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_rotate_text | Niveau supérieur | cpdf_save_to_file


cpdf_save_to_file

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_save_to_file -- Écrit un document PDF dans un fichier

Description

bool cpdf_save_to_file ( int pdf_document, string filename )

Écrit un document PDF dans un fichier, s'il a été créé en mémoire.

Cette fonction n'est pas nécessaire si un nom de fichier a été fourni lors de l'appel à cpdf_open().

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

filename

Le chemin où l'on doit enregistrer le document PDF

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_output_buffer()
cpdf_open()

Précédent | Sommaire | Suivant
cpdf_rotate | Niveau supérieur | cpdf_save


cpdf_save

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_save -- Sauve l'environnement courant

Description

bool cpdf_save ( int pdf_document )

Sauve l'environnement courant. cpdf_save() est similaire à la commande postscript gsave. Très pratique quand vous devez faire des translations et rotations sur un objet, mais sans affecter les autres.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_restore()

Précédent | Sommaire | Suivant
cpdf_save_to_file | Niveau supérieur | cpdf_scale


cpdf_scale

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_scale -- Modifie l'échelle

Description

bool cpdf_scale ( int pdf_document, float x_scale, float y_scale )

Modifie l'échelle dans les deux directions.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

x_scale

X : pourcentage de l'échelle à définir. Par défaut, 0.0

y_scale

Y : pourcentage de l'échelle à définir. Par défaut, 0.0

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_save | Niveau supérieur | cpdf_set_action_url


cpdf_set_action_url

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_action_url -- Paramètre un hyper lien

Description

bool cpdf_set_action_url ( int pdfdoc, float xll, float yll, float xur, float xur, string url [, int mode] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
cpdf_scale | Niveau supérieur | cpdf_set_char_spacing


cpdf_set_char_spacing

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_char_spacing -- Fixe l'espacement des caractères

Description

bool cpdf_set_char_spacing ( int pdf_document, float space )

Fixe l'espacement entre les caractères.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

space

Distance entre deux caractères dans une chaîne.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_set_word_spacing()
cpdf_set_leading()

Précédent | Sommaire | Suivant
cpdf_set_action_url | Niveau supérieur | cpdf_set_creator


cpdf_set_creator

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_creator -- Définit le créateur d'un document PDF

Description

bool cpdf_set_creator ( int pdf_document, string creator )

Définit le créateur d'un document PDF.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

creator

Le créateur du document

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_set_subject()
cpdf_set_title()
cpdf_set_keywords()

Précédent | Sommaire | Suivant
cpdf_set_char_spacing | Niveau supérieur | cpdf_set_current_page


cpdf_set_current_page

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_current_page -- Définit la page courante

Description

bool cpdf_set_current_page ( int pdf_document, int page_number )

Définit la page courante, où toutes les prochaines opérations auront lieu. On peut changer de page jusqu'à ce qu'une page soit terminée avec cpdf_finalize_page().

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

page_number

Le numéro de la page

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_finalize_page()

Précédent | Sommaire | Suivant
cpdf_set_creator | Niveau supérieur | cpdf_set_font_directories


cpdf_set_font_directories

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

cpdf_set_font_directories -- Définit les dossiers dans lesquels on doit rechercher des polices externes

Description

bool cpdf_set_font_directories ( int pdfdoc, string pfmdir, string pfbdir )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
cpdf_set_current_page | Niveau supérieur | cpdf_set_font_map_file


cpdf_set_font_map_file

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

cpdf_set_font_map_file -- Configure le fichier de remplacement de polices externes

Description

bool cpdf_set_font_map_file ( int pdfdoc, string filename )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
cpdf_set_font_directories | Niveau supérieur | cpdf_set_font


cpdf_set_font

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_font -- Sélectionne la police courante et sa taille

Description

bool cpdf_set_font ( int pdf_document, string font_name, float size, string encoding )

Sélectionne la police courante, sa taille et son encodage.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

font_name

Le nom de la police. Actuellement, seules les polices postscript sont supportées.

Reportez-vous à la documentation de ClibPDF, pour plus d'informations, notamment pour l'utilisation des polices asiatiques.

size

La taille de la police

encoding

Peut prendre les valeurs suivantes : MacRomanEncoding, MacExpertEncoding, WinAnsiEncoding, et NULL (signifie qu'il faut utiliser l'encodage embarqué).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_set_font_map_file | Niveau supérieur | cpdf_set_horiz_scaling


cpdf_set_horiz_scaling

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_horiz_scaling -- Fixe l'échelle horizontale du texte

Description

bool cpdf_set_horiz_scaling ( int pdf_document, float scale )

Fixe l'échelle horizontale du texte à scale %.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

scale

Le pourcentage de l'échelle à définir

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_set_font | Niveau supérieur | cpdf_set_keywords


cpdf_set_keywords

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_keywords -- Fixe les mots-clés d'un document PDF

Description

bool cpdf_set_keywords ( int pdf_document, string keywords )

Fixe les mots-clés d'un document PDF.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

keywords

Les mots-clés à définir pour le document

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_set_title()
cpdf_set_creator()
cpdf_set_subject()

Précédent | Sommaire | Suivant
cpdf_set_horiz_scaling | Niveau supérieur | cpdf_set_leading


cpdf_set_leading

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_leading -- Fixe la distance entre deux lignes

Description

bool cpdf_set_leading ( int pdf_document, float distance )

Fixe la distance entre deux lignes. Cela servira si le texte est affiché par cpdf_continue_text().

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

distance

La distance entre les lignes du texte, sous la forme d'un nombre à virgule flottante

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_continue_text()

Précédent | Sommaire | Suivant
cpdf_set_keywords | Niveau supérieur | cpdf_set_page_animation


cpdf_set_page_animation

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_page_animation -- Fixe l'animation de la transition entre les pages

Description

bool cpdf_set_page_animation ( int pdf_document, int transition, float duration, float direction, int orientation, int inout )

Fixe l'animation de la transition entre les pages.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

transition

La valeur du paramètre de transition peut être :

0 pour aucune,
1 pour deux lignes en travers de l'écran, qui révèlent la prochaine page,
2 pour plusieurs lignes en travers de l'écran, qui révèlent la prochaine page,
3 pour une boîte qui révèle la prochaine page,
4 pour une seule ligne en travers de l'écran, qui révèle la prochaine page,
5 pour l'ancienne page qui se dissout,
6 pour un effet de dissolution d'un angle à l'autre,
7 pour le remplacement simple (par défaut).

duration

La valeur de duration est le nombre de secondes avant le passage à la page suivante.

direction

orientation

inout

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_set_leading | Niveau supérieur | cpdf_set_subject


cpdf_set_subject

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_subject -- Fixe le sujet d'un document PDF

Description

bool cpdf_set_subject ( int pdf_document, string subject )

Fixe le sujet d'un document PDF.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

subject

Le sujet du document

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_set_title()
cpdf_set_creator()
cpdf_set_keywords()

Précédent | Sommaire | Suivant
cpdf_set_page_animation | Niveau supérieur | cpdf_set_text_matrix


cpdf_set_text_matrix

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_text_matrix -- Fixe la matrice du texte

Description

bool cpdf_set_text_matrix ( int pdf_document, array matrix )

Fixe la matrice du texte qui décrit la transformation appliquée à la police courante.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

matrix

Un tableau de six éléments décrivant la transformation

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_set_text_rendering()
cpdf_set_text_rise()

Précédent | Sommaire | Suivant
cpdf_set_subject | Niveau supérieur | cpdf_set_text_pos


cpdf_set_text_pos

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_text_pos -- Fixe la position du texte

Description

bool cpdf_set_text_pos ( int pdf_document, float x_coor, float y_coor [, int mode] )

Fixe la position du texte pour le prochain appel à cpdf_show().

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

x_coor

X : coordonnée de la position du texte

y_coor

Y : coordonnée de la position du texte

mode

Le paramètre optionnel mode détermine la longueur de l'unité. S'il vaut 0 ou s'il est omis, l'unité par défaut tel que spécifié pour la page sera utilisé. Sinon, les coordonnées seront mesurées en points postcript sans tenir compte de l'unité courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_show()
cpdf_text()

Précédent | Sommaire | Suivant
cpdf_set_text_matrix | Niveau supérieur | cpdf_set_text_rendering


cpdf_set_text_rendering

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_text_rendering -- Détermine le rendu du texte

Description

bool cpdf_set_text_rendering ( int pdf_document, int rendermode )

Détermine le mode de rendu du texte.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

rendermode

Les valeurs possibles pour rendermode sont :
0=texte plein, 1=texte stroke, 2=texte plein et stroke,
3=invisible, 4=texte plein et ajouté au chemin,
5=texte stroke et ajouté au chemin, 6=texte plein et stroke et
ajouté au chemin, 7=ajouté au chemin.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_set_text_matrix()
cpdf_set_text_rise()

Précédent | Sommaire | Suivant
cpdf_set_text_pos | Niveau supérieur | cpdf_set_text_rise


cpdf_set_text_rise

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_text_rise -- Fixe l'élévation du texte

Description

bool cpdf_set_text_rise ( int pdf_document, float value )

Fixe l'élévation du texte à value unités.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

value

L'élévation du texte, sous la forme d'un nombre à virgule flottante

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_set_text_rendering()
cpdf_set_text_matrix()

Précédent | Sommaire | Suivant
cpdf_set_text_rendering | Niveau supérieur | cpdf_set_title


cpdf_set_title

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_title -- Fixe le titre d'un document PDF

Description

bool cpdf_set_title ( int pdf_document, string title )

Fixe le titre d'un document PDF.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

title

Le titre du document

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_set_subject()
cpdf_set_creator()
cpdf_set_keywords()

Précédent | Sommaire | Suivant
cpdf_set_text_rise | Niveau supérieur | cpdf_set_viewer_preferences


cpdf_set_viewer_preferences

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_viewer_preferences -- Indique comment afficher le document à l'utilisateur

Description

bool cpdf_set_viewer_preferences ( int pdfdoc, array preferences )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
cpdf_set_title | Niveau supérieur | cpdf_set_word_spacing


cpdf_set_word_spacing

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_word_spacing -- Fixe l'espacement des mots

Description

bool cpdf_set_word_spacing ( int pdf_document, float space )

Fixe l'espacement des mots.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

space

L'espacement, sous la forme d'un nombre à virgule flottante

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_set_char_spacing()
cpdf_set_leading()

Précédent | Sommaire | Suivant
cpdf_set_viewer_preferences | Niveau supérieur | cpdf_setdash


cpdf_setdash

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setdash -- Définit le motif de pointillés

Description

bool cpdf_setdash ( int pdf_document, float white, float black )

Définit le motif de pointillés à white unités de blanc et black unités de noir. Si les deux sont à 0, une ligne pleine est définie.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

white

Unités de blanc, sous la forme d'un nombre à virgule flottante

black

Unités de noir, sous la forme d'un nombre à virgule flottante

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_set_word_spacing | Niveau supérieur | cpdf_setflat


cpdf_setflat

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setflat -- Définit la platitude (flatness)

Description

bool cpdf_setflat ( int pdf_document, float value )

Définit la platitude (flatness).

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

value

La platitude (flatness), entre 0 et 100

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_setdash | Niveau supérieur | cpdf_setgray_fill


cpdf_setgray_fill

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setgray_fill -- Définit le niveau de gris comme couleur de remplissage

Description

bool cpdf_setgray_fill ( int pdf_document, float value )

Remplace le niveau de gris, couleur de remplissage courante, par value.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

value

La valeur de gris, sous la forme d'un nombre à virgule flottante

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_setrgbcolor_fill()

Précédent | Sommaire | Suivant
cpdf_setflat | Niveau supérieur | cpdf_setgray_stroke


cpdf_setgray_stroke

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setgray_stroke -- Choisit un niveau de gris comme couleur de dessin

Description

bool cpdf_setgray_stroke ( int pdf_document, float gray_value )

Remplace le niveau de gris, couleur de dessin courante, par value.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

gray_value

La valeur du gris, sous la forme d'un nombre à virgule flottante

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_setrgbcolor_stroke()

Précédent | Sommaire | Suivant
cpdf_setgray_fill | Niveau supérieur | cpdf_setgray


cpdf_setgray

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setgray -- Modifie un niveau de gris comme couleur de dessin et de remplissage

Description

bool cpdf_setgray ( int pdf_document, float gray_value )

Remplace le niveau de gris, couleur de dessin et de remplissage, par gray_value.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

gray_value

La valeur de gris, sous la forme d'un nombre à virgule flottante

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_setrgbcolor_stroke()
cpdf_setrgbcolor_fill()

Précédent | Sommaire | Suivant
cpdf_setgray_stroke | Niveau supérieur | cpdf_setlinecap


cpdf_setlinecap

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setlinecap -- Fixe le paramètre linecap

Description

bool cpdf_setlinecap ( int pdf_document, int value )

Fixe le paramètre linecap.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

value

0 = butt end, 1 = round, 2 = projecting square

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_setgray | Niveau supérieur | cpdf_setlinejoin


cpdf_setlinejoin

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setlinejoin -- Fixe le paramètre linejoin

Description

bool cpdf_setlinejoin ( int pdf_document, int value )

Fixe le paramètre linejoin.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

value

0 = miter, 1 = round, 2 = bevel

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_setlinecap | Niveau supérieur | cpdf_setlinewidth


cpdf_setlinewidth

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setlinewidth -- Fixe la largeur de ligne

Description

bool cpdf_setlinewidth ( int pdf_document, float width )

Fixe la largeur de ligne.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

width

La largeur de ligne, sous la forme d'un nombre à virgule flottante

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_setlinejoin | Niveau supérieur | cpdf_setmiterlimit


cpdf_setmiterlimit

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setmiterlimit -- Fixe le paramètre miter limit

Description

bool cpdf_setmiterlimit ( int pdf_document, float value )

Fixe le paramètre miter limit.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

value

Le "miter limit". Doit être supérieur ou égal à 1

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_setlinewidth | Niveau supérieur | cpdf_setrgbcolor_fill


cpdf_setrgbcolor_fill

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setrgbcolor_fill -- Choisit une couleur rgb comme couleur de remplissage

Description

bool cpdf_setrgbcolor_fill ( int pdf_document, float red_value, float green_value, float blue_value )

Choisit une couleur rgb comme couleur de remplissage.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

red_value

La valeur pour le rouge, sous la forme d'un nombre à virgule flottante compris entre 0.0 (noir) et 1.0 (rouge)

green_value

La valeur pour le vert, sous la forme d'un nombre à virgule flottante compris entre 0.0 (noir) et 1.0 (vert)

blue_value

La valeur pour le bleu, sous la forme d'un nombre à virgule flottante compris entre 0.0 (noir) et 1.0 (bleu)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_setrgbcolor_stroke()
cpdf_setrgbcolor()

Précédent | Sommaire | Suivant
cpdf_setmiterlimit | Niveau supérieur | cpdf_setrgbcolor_stroke


cpdf_setrgbcolor_stroke

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setrgbcolor_stroke -- Choisit une couleur rgb comme couleur de dessin

Description

bool cpdf_setrgbcolor_stroke ( int pdf_document, float red_value, float green_value, float blue_value )

Remplace la couleur de dessin, par la couleur rgb fournie.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

red_value

La valeur pour le rouge, sous la forme d'un nombre compris entre 0.0 (noir) et 1.0 (rouge)

green_value

La valeur pour le vert, sous la forme d'un nombre compris entre 0.0 (noir) et 1.0 (vert)

blue_value

La valeur pour le bleu, sous la forme d'un nombre compris entre 0.0 (noir) et 1.0 (bleu)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_setrgbcolor()
cpdf_setrgbcolor_fill()

Précédent | Sommaire | Suivant
cpdf_setrgbcolor_fill | Niveau supérieur | cpdf_setrgbcolor


cpdf_setrgbcolor

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setrgbcolor -- Choisit une couleur rgb comme couleur de dessin et de remplissage

Description

bool cpdf_setrgbcolor ( int pdf_document, float red_value, float green_value, float blue_value )

Remplace la couleur de remplissage et de dessin, par la couleur rgb fournie.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

red_value

La valeur pour le rouge, sous la forme d'un nombre compris entre 0.0 (noir) et 1.0 (rouge)

green_value

La valeur pour le vert, sous la forme d'un nombre compris entre 0.0 (noir) et 1.0 (vert)

blue_value

La valeur pour le bleu, sous la forme d'un nombre compris entre 0.0 (noir) et 1.0 (bleu)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_setrgbcolor_stroke()
cpdf_setrgbcolor_fill()

Précédent | Sommaire | Suivant
cpdf_setrgbcolor_stroke | Niveau supérieur | cpdf_show_xy


cpdf_show_xy

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_show_xy -- Affiche un texte à une position

Description

bool cpdf_show_xy ( int pdf_document, string text, float x_coor, float y_coor [, int mode] )

Affiche un texte text à une position donnée.

Note : La fonction cpdf_show_xy() est identique à cpdf_text(), sans les options.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

text

Le texte

x_coor

X : coordonnée de la position du texte

y_coor

Y : coordonnée de la position du texte

mode

Le paramètre optionnel mode détermine la longueur de l'unité. S'il vaut 0 ou s'il est omis, l'unité par défaut tel que spécifié pour la page sera utilisé. Sinon, les coordonnées seront mesurées en points postcript sans tenir compte de l'unité courante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_text()

Précédent | Sommaire | Suivant
cpdf_setrgbcolor | Niveau supérieur | cpdf_show


cpdf_show

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_show -- Imprime un texte à la position courante

Description

bool cpdf_show ( int pdf_document, string text )

Imprime la chaîne text à la position courante.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

text

Le texte

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_text()
cpdf_begin_text()
cpdf_end_text()

Précédent | Sommaire | Suivant
cpdf_show_xy | Niveau supérieur | cpdf_stringwidth


cpdf_stringwidth

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_stringwidth -- Retourne la taille de la police courante

Description

float cpdf_stringwidth ( int pdf_document, string text )

Retourne la taille de la police courante.

Une police doit avoir déjà été choisie.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

text

Le texte

Valeurs de retour

Retourne la taille du texte text.

Voir aussi

cpdf_set_font()

Précédent | Sommaire | Suivant
cpdf_show | Niveau supérieur | cpdf_stroke


cpdf_stroke

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_stroke -- Dessine une ligne le long du chemin

Description

bool cpdf_stroke ( int pdf_document )

Dessine une ligne le long du chemin.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_closepath()
cpdf_closepath_stroke()

Précédent | Sommaire | Suivant
cpdf_stringwidth | Niveau supérieur | cpdf_text


cpdf_text

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_text -- Imprime un texte avec des options

Description

bool cpdf_text ( int pdf_document, string text [, float x_coor, float y_coor [, int mode [, float orientation [, int alignmode]]]] )

Imprime le texte text à une position donnée.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

text

Le texte

x_coor

X : coordonnée de la position du texte

y_coor

Y : coordonnée de la position du texte

mode

Le paramètre optionnel mode détermine la longueur de l'unité. S'il vaut 0 ou s'il est omis, l'unité par défaut tel que spécifié pour la page sera utilisé. Sinon, les coordonnées seront mesurées en points postcript sans tenir compte de l'unité courante.

orientation

Rotation du texte, en degrés

alignmode

Détermine la façon dont le texte est aligné. Voir la documention de ClibPDF pour les valeurs possibles.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

cpdf_show_xy()

Précédent | Sommaire | Suivant
cpdf_stroke | Niveau supérieur | cpdf_translate


cpdf_translate

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_translate -- Modifie l'origine du système de coordonnées

Description

bool cpdf_translate ( int pdf_document, float x_coor, float y_coor )

Modifie l'origine du système de coordonnées en plaçant l'origine aux coordonnées spécifiées.

Liste de paramètres

pdf_document

Le gestionnaire de document, retourné par la fonction cpdf_open().

x_coor

X : coordonnée du point

y_coor

Y : coordonnée du point

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
cpdf_text | Niveau supérieur | COM et .Net (Windows)


Crack

Manuel PHP
Précédent Suivant

XVI. Crack

Introduction

Ces fonctions vous permettent d'utiliser la bibliothèque CrackLib, pour tester la robustesse de vos mots de passe. Cette bibliothèque teste la taille, les majuscules et minuscules, et effectue des recherches dans le dictionnaire CrackLib. CrackLib donne aussi des conseils pour renforcer vos mots de passe.

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

Plus d'informations concernant la bibliothèque CrackLib sont disponibles à http://sourceforge.net/projects/cracklib.

Installation

Cette extension PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/crack.

En PHP 4, les sources de cette extension PECL peuvent être trouvées dans le dossier ext/ avec les sources de PHP ou sur le lien PECL ci-dessous. Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support Crack en utilisant l'option de configuration --with-crack[=DIR].

Les utilisateurs de Windows doivent activer la bibliothèque php_crack.dll dans le php.ini pour pouvoir utiliser ces fonctions. En PHP 4, cette bibliothèque DLL se trouve dans le dossier extensions/ avec les binaires PHP pour Windows téléchargées. La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
crack.default_dictionary | NULL | PHP_INI_PERDIR | Disponible depuis PHP 4.0.5.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Types de ressources

L'extension CrackLib définit un identifiant de ressource dictionnaire retourné par la fonction crack_opendict().

Constantes pré-définies

Cette extension ne définit aucune constante.

Exemples

Cet exemple montre comment ouvrir un dictionnaire CrackLib, tester un mot de passe, lire le diagnostic et refermer le dictionnaire.

Exemple 1. Exemple CrackLib

<?php
/* Ouverture du dictionnaire CrackLib */
$dictionary = crack_opendict('/usr/local/lib/pw_dict')
     or die('Unable to open CrackLib dictionary');

/* Vérification du mot de passe */
$check = crack_check($dictionary, 'gx9A2s0x');

/* Lecture du diagnostic */
$diag = crack_getlastmessage();
echo $diag; // 'strong password'

/* Fermeture du dictionnaire */
crack_closedict($dictionary);
?>

Note : Si crack_check() retourne TRUE, crack_getlastmessage() retournera le message 'strong password' (mot de passe robuste).

Table des matières
crack_check -- Effectue une vérification de mot de passe
crack_closedict -- Referme le dictionnaire CrackLib
crack_getlastmessage -- Retourne le message de diagnostic
crack_opendict -- Ouvre un nouveau dictionnaire CrackLib

Précédent | Sommaire | Suivant
variant_xor | Niveau supérieur | crack_check


crack_check

(PHP 4 >= 4.0.5, PECL)

crack_check -- Effectue une vérification de mot de passe

Description

bool crack_check ( resource dictionary, string password )

bool crack_check ( string password )

crack_check() effectue une vérification du mot de passe donné sur le dictionnaire spécifié.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

dictionary

Le dictionnaire. Si aucun n'est spécifié, le dernier dictionnaire ouvert sera utilisé.

password

Le mot de passe à tester.

Valeurs de retour

Retourne TRUE si password est solide, ou FALSE sinon.

Précédent | Sommaire | Suivant
Crack | Niveau supérieur | crack_closedict


crack_closedict

(PHP 4 >= 4.0.5, PECL)

crack_closedict -- Referme le dictionnaire CrackLib

Description

bool crack_closedict ( [resource dictionary] )

crack_closedict() ferme le dictionnaire représenté par l'identifiant dictionary.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

dictionary

Le dictionnaire à fermer. Si aucun n'est spécfié, le dictionnaire courant sera fermé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

crack_opendict()

Précédent | Sommaire | Suivant
crack_check | Niveau supérieur | crack_getlastmessage


crack_getlastmessage

(PHP 4 >= 4.0.5, PECL)

crack_getlastmessage -- Retourne le message de diagnostic

Description

string crack_getlastmessage ( void )

crack_getlastmessage() retourne le message de diagnostic depuis la dernière vérification.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Valeurs de retour

Le message depuis la dernière vérification ou FALSE s'il n'y eu aucune vérification.

Le message retourné est un parmi :

  • it's WAY too short

  • it is too short

  • it does not contain enough DIFFERENT characters

  • it is all whitespace

  • it is too simplistic/systematic

  • it looks like a National Insurance number.

  • it is based on a dictionary word

  • it is based on a (reversed) dictionary word

  • strong password

Voir aussi

crack_check()

Précédent | Sommaire | Suivant
crack_closedict | Niveau supérieur | crack_opendict


crack_opendict

(PHP 4 >= 4.0.5, PECL)

crack_opendict -- Ouvre un nouveau dictionnaire CrackLib

Description

resource crack_opendict ( string dictionary )

crack_opendict() ouvre le dictionnaire CrackLib dictionary spécifié pour être utilisé avec la fonction crack_check().

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Note : Un seul dictionnaire peut être ouvert actuellement.

Liste de paramètres

dictionary

Le chemin vers le dictionnaire CrackLib.

Valeurs de retour

Retourne un identifiant de ressource de dictionnaire en cas de succès, ou FALSE en cas d'échec.

Voir aussi

crack_check()
crack_closedict()

Précédent | Sommaire | Suivant
crack_getlastmessage | Niveau supérieur | Caractères


Caractères

Manuel PHP
Précédent Suivant

XVII. Caractères

Introduction

Ces fonctions vérifient si un caractère ou une chaîne de caractères font partie d'une certaine classe de caractères, en fonction de la configuration locale (voir aussi setlocale()).

Appelées avec un argument de type entier, ces fonctions se comportent exactement comme leur équivalent en langage C, du fichier ctype.h. Cela signifie que si vous passez un entier plus petit que 256, la fonction utilisera la valeur ASCII de cet entier pour voir s'il se trouve dans l'intervalle spécifique (les digitaux sont dans l'intervalle 0x30-0x39). Si le nombre est entre -128 et -1 inclusivement, alors 256 sera ajouté et la vérification sera effectué sur le nombre résultant.

Appelées avec un argument de type chaîne, elles vérifieront chaque caractère de la chaîne, et ne retourneront TRUE que si chacun satisfait les critères requis. Appelées avec une chaîne de caractères vide, le résultat sera toujours TRUE dans PHP < 5.1 et FALSE depuis 5.1.

Tout autre type d'argument (autre que chaîne ou entier) génère une erreur, et retourne FALSE immédiatement.

Il est à noter que les fonctions ctype sont toujours préférables par rapport aux expressions rationnelles ainsi que les fonctions équivalentes str_* et is_*. Les fonctions ctype utilisent une bibliothèque C native qui les rendent bien plus rapides.

Pré-requis

Aucun pré-requis pour utiliser cette extension, hormis la bibliothèque C standard, qui est toujours disponible.

Installation

Depuis PHP 4.2.0, ces fonctions sont activées par défaut. Pour les versions plus anciennes, vous devrez configurer et compiler PHP avec l'option --enable-ctype. Vous pouvez toujours désactiver le support de l'extension ctype avec l'option de compilation --disable-ctype.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note : Cette bibliothèque fait partie intégrante de PHP depuis la version 4.3.0.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
ctype_alnum -- Vérifie qu'une chaîne est alpha-numé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

Précédent | Sommaire | Suivant
crack_opendict | Niveau supérieur | ctype_alnum


ctype_alnum

(PHP 4 >= 4.0.4, PHP 5)

ctype_alnum -- Vérifie qu'une chaîne est alpha-numérique

Description

bool ctype_alnum ( string text )

ctype_alnum() vérifie si tous les caractères de la chaîne text sont des lettres et des chiffres. Elle retourne FALSE dans le cas contraire. En terme de langage C, les lettres sont [A-Za-z] et cette fonction est équivalente à preg_match('/^[a-z0-9]+$/iD', $text).

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont soit des lettres, soit des chiffres, FALSE sinon.

Exemples

Exemple 1. Exemple avec ctype_alnum() (en utilisant les locales par défaut)

<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
  if (ctype_alnum($testcase)) {
    echo "La chaîne $testcase contient des chiffres ou des lettres.\n";
  } else {
    echo "La chaîne $testcase ne contient pas que des chiffres ou des lettres.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne AbCd1zyZ9 contient des chiffres ou des lettres.
La chaîne foo!#$bar ne contient pas que des chiffres ou des lettres.

Voir aussi

ctype_alpha()
ctype_digit()
setlocale()

Précédent | Sommaire | Suivant
Caractères | Niveau supérieur | ctype_alpha


ctype_alpha

(PHP 4 >= 4.0.4, PHP 5)

ctype_alpha -- Vérifie qu'une chaîne est alphabétique

Description

bool ctype_alpha ( string text )

ctype_alpha() vérifie si tous les caractères de la chaîne text sont des lettres, et FALSE sinon. En langage C, les lettres sont [A-Za-z] et ctype_alpha() est équivalent à (ctype_upper($text) || ctype_lower($text)), si $text est un caractère unique, mais certaines langues ont des caractères qui ne sont ni des majuscules, ni des minuscules.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text est une lettre de la locale courante, FALSE sinon.

Exemples

Exemple 1. Exemple avec ctype_alpha() (en utilisant les locales courantes)

<?php
$strings = array('KjgWZC', 'arf12');
foreach ($strings as $testcase) {
  if (ctype_alpha($testcase)) {
    echo "La chaîne $testcase ne contient que des lettres.\n";
  } else {
    echo "La chaîne $testcase ne contient pas que des lettres.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne KjgWZC ne contient que des lettres.
La chaîne arf12 ne contient pas que des lettres.

Voir aussi

ctype_upper()
ctype_lower()
setlocale()

Précédent | Sommaire | Suivant
ctype_alnum | Niveau supérieur | ctype_cntrl


ctype_cntrl

(PHP 4 >= 4.0.4, PHP 5)

ctype_cntrl -- Vérifie qu'un caractère est un caractère de contrôle

Description

bool ctype_cntrl ( string text )

ctype_cntrl() vérifie si tous les caractères de la chaîne text sont des caractères de contrôles spéciaux. Ces caractères sont les nouvelles lignes, les tabulations, les caractères d'échappement.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si chaque caractère de text est un caractère de contrôle de la locale courante, FALSE sinon.

Exemples

Exemple 1. Exemple avec ctype_cntrl()

<?php
$strings = array('string1' => "\n\r\t", 'string2' => 'arf12');
foreach ($strings as $name => $testcase) {
  if (ctype_cntrl($testcase)) {
    echo "La chaîne '$name' ne contient que des caractères de contrôle.\n";
  } else {
    echo "La chaîne '$name' ne contient pas que des caractères de contrôle.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne 'string1' ne contient que des caractères de contrôle.
La chaîne 'string2' ne contient que des caractères de contrôle.

Voir aussi

ctype_print()

Précédent | Sommaire | Suivant
ctype_alpha | Niveau supérieur | ctype_digit


ctype_digit

(PHP 4 >= 4.0.4, PHP 5)

ctype_digit -- Vérifie qu'une chaîne est un entier

Description

bool ctype_digit ( string text )

ctype_digit() vérifie si tous les caractères de la chaîne text sont des chiffres.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont des entiers, FALSE sinon.

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.

Voir aussi

ctype_alnum()
ctype_xdigit()

Précédent | Sommaire | Suivant
ctype_cntrl | Niveau supérieur | ctype_graph


ctype_graph

(PHP 4 >= 4.0.4, PHP 5)

ctype_graph -- Vérifie qu'une chaîne est imprimable

Description

bool ctype_graph ( string text )

ctype_graph() vérifie si tous les caractères de la chaîne text ont une représentation graphique, et créeront une impression sur l'écran (les espaces n'en font pas partie).

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text ont une représentation graphique et créeront une impression sur l'écran, FALSE sinon.

Exemples

Exemple 1. Exemple avec ctype_graph()

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
  if (ctype_graph($testcase)) {
    echo "La chaîne '$name' ne contient que des caractères imprimables.\n";
  } else {
    echo "La chaîne '$name' ne contient pas que des caractères imprimables.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne 'string1' ne contient pas que des caractères imprimables.
La chaîne 'string2' ne contient que des caractères imprimables.
La chaîne 'string3' ne contient que des caractères imprimables.

Voir aussi

ctype_alnum()
ctype_print()
ctype_punct()

Précédent | Sommaire | Suivant
ctype_digit | Niveau supérieur | ctype_lower


ctype_lower

(PHP 4 >= 4.0.4, PHP 5)

ctype_lower -- Vérifie qu'une chaîne est en minuscules

Description

bool ctype_lower ( string text )

ctype_lower() vérifie si tous les caractères de la chaîne text sont des minuscules.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont en minuscule dans la locale courante.

Exemples

Exemple 1. Exemple avec ctype_lower() (en utilisant les locales courantes)

<?php
$strings = array('aac123', 'qiutoas', 'QASsdks');
foreach ($strings as $testcase) {
  if (ctype_lower($testcase)) {
    echo "La chaîne $testcase ne contient que des minuscules.\n";
  } else {
    echo "La chaîne $testcase ne contient pas que des minuscules.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne aac123 ne contient pas que des minuscules.
La chaîne qiutoas ne contient que des minuscules.
La chaîne QASsdks ne contient pas que des minuscules.

Voir aussi

ctype_alpha()
ctype_upper()
setlocale()

Précédent | Sommaire | Suivant
ctype_graph | Niveau supérieur | ctype_print


ctype_print

(PHP 4 >= 4.0.4, PHP 5)

ctype_print -- Vérifie qu'une chaîne est imprimable

Description

bool ctype_print ( string text )

ctype_print() vérifie si tous les caractères de la chaîne text vont être imprimables à l'écran (y compris les espaces blancs).

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text seront imprimables (y compris les espaces blancs). Retourne FALSE si text contient des caractères de contrôle ou des caractères qui ne s'afficheront pas ou non pas de fonction de contrôle.

Exemples

Exemple 1. Exemple avec ctype_print()

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
  if (ctype_print($testcase)) {
    echo "La chaîne '$name' ne contient que des caractères imprimables.\n";
  } else {
    echo "La chaîne '$name' ne contient pas que des caractères imprimables.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne 'string1' ne contient pas que des caractères imprimables.
La chaîne 'string2' ne contient que des caractères imprimables.
La chaîne 'string3' ne contient que des caractères imprimables.

Voir aussi

ctype_cntrl()
ctype_graph()
ctype_punct()

Précédent | Sommaire | Suivant
ctype_lower | Niveau supérieur | ctype_punct


ctype_punct

(PHP 4 >= 4.0.4, PHP 5)

ctype_punct -- Vérifie qu'une chaîne contient de la ponctuation

Description

bool ctype_punct ( string text )

ctype_punct() vérifie si tous les caractères de la chaîne text sont imprimables, mais ne sont ni des lettres, ni des chiffres, ni des espaces.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont des caractères de ponctuation, FALSE sinon.

Exemples

Exemple 1. Exemple avec ctype_punct()

<?php
$strings = array('ABasdk!@!$#', '!@ # $', '*&$()');
foreach ($strings as $testcase) {
  if (ctype_punct($testcase)) {
    echo "La chaîne $testcase ne contient que de la ponctuation.\n";
  } else {
    echo "The string $testcase ne contient pas que de la ponctuation.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne ABasdk!@!$# ne contient pas que de la ponctuation.
La chaîne !@ # $ ne contient pas que de la ponctuation.
La chaîne *&$() cne contient que de la ponctuation.

Voir aussi

ctype_cntrl()
ctype_graph()

Précédent | Sommaire | Suivant
ctype_print | Niveau supérieur | ctype_space


ctype_space

(PHP 4 >= 4.0.4, PHP 5)

ctype_space -- Vérifie qu'une chaîne n'est faite que de caractères blancs

Description

bool ctype_space ( string text )

ctype_space() vérifie si tous les caractères de la chaîne text vont créer un espace blanc.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text vont créer des espaces blancs, FALSE sinon. Cela inclut le tabulations, les tabulations verticales, les nouvelles lignes, les retours chariots et les retours à la ligne.

Exemples

Exemple 1. Exemple avec ctype_space()

<?php
$strings = array('string1' => "\n\r\t", 'string2' => "\narf12", 'string3' => '\n\r\t');
foreach ($strings as $name => $testcase) {
  if (ctype_space($testcase)) {
    echo "La chaîne '$name' ne contient que des caractères d'espacements blancs.\n";
  } else {
    echo "La chaîne '$name' ne contient pas que des catactères d'espacements blancs.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne 'string1' ne contient que des caractères d'espacements blancs.
La chaîne 'string2' ne contient pas que des catactères d'espacements blancs.
La chaîne 'string3' ne contient pas que des catactères d'espacements blancs.

Voir aussi

ctype_cntrl()
ctype_graph()
ctype_punct()

Précédent | Sommaire | Suivant
ctype_punct | Niveau supérieur | ctype_upper


ctype_upper

(PHP 4 >= 4.0.4, PHP 5)

ctype_upper -- Vérifie qu'une chaîne est en majuscules

Description

bool ctype_upper ( string text )

ctype_upper() vérifie si tous les caractères de la chaîne text sont des majuscules.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont en majuscules dans la locale courante.

Exemples

Exemple 1. Exemple avec ctype_upper() (en utilisant la locale courante)

<?php
$strings = array('AKLWC139', 'LMNSDO', 'akwSKWsm');
foreach ($strings as $testcase) {
  if (ctype_upper($testcase)) {
    echo "La chaîne $testcase ne contient que des majuscules.\n";
  } else {
    echo "La chaîne $testcase ne contient pas que des majuscules.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne AKLWC139 ne contient pas que des majuscules.
La chaîne LMNSDO ne contient que des majuscules.
La chaîne akwSKWsm ne contient pas que des majuscules.

Voir aussi

ctype_alpha()
ctype_lower()
setlocale()

Précédent | Sommaire | Suivant
ctype_space | Niveau supérieur | ctype_xdigit


ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5)

ctype_xdigit -- Vérifie qu'un caractère représente un nombre hexadécimal

Description

bool ctype_xdigit ( string text )

ctype_xdigit() vérifie si tous les caractères de la chaîne text sont des chiffres hexadécimaux.

Liste de paramètres

text

La chaîne testée.

Valeurs de retour

Retourne TRUE si tous les caractères de text sont des chiffres hexadécimaux, c'est-à-dire un chiffre ou une des lettres [A-Fa-f], FALSE sinon.

Exemples

Exemple 1. Exemple avec ctype_xdigit()

<?php
$strings = array('AB10BC99', 'AR1012', 'ab12bc99');
foreach ($strings as $testcase) {
  if (ctype_xdigit($testcase)) {
    echo "La chaîne $testcase ne contient que des chiffres hexadécimaux.\n";
  } else {
    echo "La chaîne $testcase ne contient pas que des chiffres hexadécimaux.\n";
  }
}
?>

L'exemple ci-dessus va afficher :

La chaîne AB10BC99 ne contient que des chiffres hexadécimaux.
La chaîne AR1012 ne contient pas que des chiffres hexadécimaux.
La chaîne ab12bc99 ne contient que des chiffres hexadécimaux.

Voir aussi

ctype_digit()

Précédent | Sommaire | Suivant
ctype_upper | Niveau supérieur | CURL


CURL

Manuel PHP
Précédent Suivant

XVIII. CURL

Introduction

PHP supporte libcurl, une bibliothèque créée par Daniel Stenberg, qui vous permet de vous connecter, de communiquer avec de nombreux serveurs, grâce à de nombreux protocoles. libcurl supporte actuellement les protocoles suivants : HTTP, HTTPS, FTP, gopher, telnet, dict, file, et LDAP. libcurl supporte aussi les certificats HTTPS, les POST HTTP, PUT HTTP, le chargement par FTP (ce qui peut être fait par l'extension FTP), les chargements par formulaire HTTP, les proxies, les cookies et l'identification par mot de passe et nom d'utilisateur.

Ces fonctions ont été ajoutées en PHP 4.0.2.

Pré-requis

Pour pouvoir utiliser les fonctions de PHP cURL, vous devez installer le paquetage libcurl. PHP requiert la version libcurl 7.0.2-beta ou plus récente. En PHP 4.2.3, vous aurez besoin de libcurl version 7.9.0 ou plus. À partir de PHP 4.3.0, vous aurez besoin de libcurl version 7.9.8 ou plus. PHP 5.0.0 requiert une version de libcurl supérieure ou égale à 7.10.5.

Installation

Pour utiliser cURL depuis les scripts PHP, vous devez compiler celui-ci avec l'option --with-curl[=DIR] où DIR est le chemin jusqu'au dossier contenant les dossiers lib et include. Dans le dossier include il doit se trouver un dossier appelé curl, qui contient notamment les fichiers easy.h et curl.h. Il doit aussi se trouver un fichier nommé libcurl.a dans le dossier lib. À partir de PHP 4.3.0, vous pouvez aussi configurer PHP pour qu'il utilise cURL comme gestionnaire d'URL avec l'option --with-curlwrappers.

Note aux utilisateurs Win32 : Afin d'activer ce module dans l'environnement Windows, libeay32.dll et ssleay32.dll doivent être présents dans votre PATH.

Vous n'avez pas besoin de libcurl.dll du site cURL.

Types de ressources

Cette extension définit deux types de ressources : un gestionnaire cURL et un gestionnaire cURL multi.

Constantes pré-définies

Voir aussi les constantes prédéfinies cURL.

Exemples

Une fois que vous avez compilé PHP avec le support cURL, vous pouvez commencer à l'exploiter avec vos scripts PHP. Le principe de fonctionnement est d'initialiser une session cURL avec curl_init(), puis de choisir toutes vos options de transfert avec curl_setopt(), puis d'exécuter la session avec curl_exec() et de finir votre session avec curl_close(). Voici un exemple d'utilisation des fonctions cURL, qui récupère la page principale de example.com dans un fichier :

Exemple 1. Utilisation de cURL pour récupérer une page

<?php

$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

Table des matières
Constantes -- Constantes prédéfinies 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_exec -- Exécute une session cURL
curl_getinfo -- Lit les informations détaillant un transfert cURL
curl_init -- Initialise une session cURL
curl_multi_add_handle -- Ajoute une ressource cURL à un cURL multiple
curl_multi_close -- Termine un jeu de sessions cURL
curl_multi_exec -- Exécute les sous-requêtes de la session cURL
curl_multi_getcontent -- Retourne le contenu obtenu avec l'option CURLOPT_RETURNTRANSFER
curl_multi_info_read -- Lit les informations sur les transferts actuels
curl_multi_init -- Retourne un nouveau cURL multiple
curl_multi_remove_handle -- Retire un cURL multiple d'un jeu de cURL
curl_multi_select -- Retourne les sockets associées à cURL, pour utilisation
curl_setopt_array -- Fixe plusieurs options pour un transfert cURL
curl_setopt -- Définit une option de transfert cURL
curl_version -- Retourne la version courante de cURL

Précédent | Sommaire | Suivant
ctype_xdigit | Niveau supérieur | Constantes


curl_close

(PHP 4 >= 4.0.2, PHP 5)

curl_close -- Ferme une session CURL

Description

void curl_close ( resource ch )

Ferme une session cURL et libère toutes les ressources réservées. L'identifiant cURL ch est aussi effacé.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Initialise une session cURL et récupère une page web

<?php
// création d'une nouvelle ressource cURL
$ch = curl_init();

// configuration de l'URL et d'autres options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// récupération de l'URL et affichage sur le naviguateur
curl_exec($ch);

// fermeture de la session cURL
curl_close($ch);
?>

Voir aussi

curl_init()
curl_multi_close()

Précédent | Sommaire | Suivant
Constantes | Niveau supérieur | curl_copy_handle


curl_copy_handle

(PHP 5)

curl_copy_handle -- Copie une ressource cURL avec toutes ses préférences

Description

resource curl_copy_handle ( resource ch )

Copie une ressource cURL, retournant une nouvelle ressource cURL avec les mêmes préférences.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne une nouvelle ressource cURL.

Exemples

Exemple 1. Copie d'une ressource cURL

<?php
// crée une nouvelle ressource cURL
$ch = curl_init();

// assigne URL et autres options appropriées
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/');
curl_setopt($ch, CURLOPT_HEADER, 0);

// copie la ressource
$ch2 = curl_copy_handle($ch);

// attrape l'URL (http://www.example.com/) et le passe au navigateur
curl_exec($ch2);

// ferme les ressources curl et libère les ressources systèmes
curl_close($ch2);
curl_close($ch);
?>

Précédent | Sommaire | Suivant
curl_close | Niveau supérieur | curl_errno


curl_errno

(PHP 4 >= 4.0.3, PHP 5)

curl_errno -- Retourne le dernier message d'erreur cURL

Description

int curl_errno ( resource ch )

Retourne le numéro d'erreur de la dernière opération cURL.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne le numéro de l'erreur ou 0 si aucune erreur n'est survenue.

Voir aussi

curl_error()
les codes erreurs cURL

Précédent | Sommaire | Suivant
curl_copy_handle | Niveau supérieur | curl_error


curl_error

(PHP 4 >= 4.0.3, PHP 5)

curl_error -- Retourne une chaîne contenant le dernier message d'erreur cURL

Description

string curl_error ( resource ch )

Retourne un message clair représentant la dernière erreur cURL.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne le message d'erreur ou '' (chaîne vide) si aucune erreur n'est survenue.

Voir aussi

curl_errno()
Curl error codes

Précédent | Sommaire | Suivant
curl_errno | Niveau supérieur | curl_exec


curl_exec

(PHP 4 >= 4.0.2, PHP 5)

curl_exec -- Exécute une session cURL

Description

mixed curl_exec ( resource ch )

Exécute la session cURL fournie.

Cette fonction doit être appelée après l'initialisation et le paramétrage d'une session cURL.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Cependant, si l'option CURLOPT_RETURNTRANSFER est définie, la fonction retournera le résultat en cas de succès, et FALSE si une erreur survient.

Exemples

Exemple 1. 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_multi_exec()

Précédent | Sommaire | Suivant
curl_error | Niveau supérieur | curl_getinfo


curl_getinfo

(PHP 4 >= 4.0.4, PHP 5)

curl_getinfo -- Lit les informations détaillant un transfert cURL

Description

mixed curl_getinfo ( resource ch [, int opt] )

Lit les informations détaillant le dernier transfert.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

opt

Ce paramètre peut prendre l'une des valeurs suivantes :

  • CURLINFO_EFFECTIVE_URL - Dernière URL réelle

  • CURLINFO_HTTP_CODE - Dernier code HTTP reçu

  • CURLINFO_FILETIME - Date distante du document, et -1 si la date du document distant est inconnue.

  • CURLINFO_TOTAL_TIME - Durée de la transaction en secondes pour le dernier transfert

  • CURLINFO_NAMELOOKUP_TIME - Durée de résolution du nom de domaine en secondes

  • CURLINFO_CONNECT_TIME - Durée d'établissement de la connexion en secondes

  • CURLINFO_PRETRANSFER_TIME - Durée en secondes, entre le début de la transaction et de début du transfert de fichiers

  • CURLINFO_STARTTRANSFER_TIME - Durée en secondes jusqu'à ce que le premier octet soit sur le point d'être transféré

  • CURLINFO_REDIRECT_TIME - Durée en secondes de toutes les étapes de redirection avant que la transaction finale ne soit débutée

  • 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 demande envoyée. Disponible depuis PHP 6.0.0

  • CURLINFO_REQUEST_SIZE - Taille totale des requêtes envoyées. Actuellement, uniquement pour les requêtes HTTP

  • CURLINFO_SSL_VERIFYRESULT - Résultat de la vérification de la certification SSL demandée par CURLOPT_SSL_VERIFYPEER

  • CURLINFO_CONTENT_LENGTH_DOWNLOAD - Taille du corps du téléchargement, lu dans l'en-tête Content-Length:

  • CURLINFO_CONTENT_LENGTH_UPLOAD - Taille spécifiée de l'envoi.

  • CURLINFO_CONTENT_TYPE - Content-Type: du fichier téléchargé. NULL indique que le serveur n'a pas envoyé d'en-tête Content-Type:

Valeurs de retour

Si opt est fourni, la valeur retournée sera une chaîne. Sinon, ce sera un tableau associatif contenant les éléments suivants : (qui correspond à opt):

  • "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"

Précédent | Sommaire | Suivant
curl_exec | Niveau supérieur | curl_init


curl_init

(PHP 4 >= 4.0.2, PHP 5)

curl_init -- Initialise une session cURL

Description

resource curl_init ( [string url] )

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

Valeurs de retour

Retourne une session cURL en cas de succès, FALSE si une erreur survient.

Exemples

Exemple 1. Initialiser une session cURL et récupérer une page web

<?php
// initialisation de la session
$ch = curl_init();

// configuration des options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// exécution de la session
curl_exec($ch);

// fermeture des ressources
curl_close($ch);
?>

Voir aussi

curl_close()
curl_multi_init()

Précédent | Sommaire | Suivant
curl_getinfo | Niveau supérieur | curl_multi_add_handle


curl_multi_add_handle

(PHP 5)

curl_multi_add_handle -- Ajoute une ressource cURL à un cURL multiple

Description

int curl_multi_add_handle ( resource mh, resource ch )

Ajoute la session ch au gestionnaire multiple mh

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Valeurs de retour

Retourne 0 en cas de succès, ou un des codes erreurs CURLM_XXX.

Voir aussi

curl_multi_remove_handle()
curl_multi_init()
curl_init()

Précédent | Sommaire | Suivant
curl_init | Niveau supérieur | curl_multi_close


curl_multi_close

(PHP 5)

curl_multi_close -- Termine un jeu de sessions cURL

Description

void curl_multi_close ( resource mh )

Ferme un jeu de gestionnaires cURL.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

curl_multi_init()
curl_close()

Précédent | Sommaire | Suivant
curl_multi_add_handle | Niveau supérieur | curl_multi_exec


curl_multi_exec

(PHP 5)

curl_multi_exec -- Exécute les sous-requêtes de la session cURL

Description

int curl_multi_exec ( resource mh, int &still_running )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

still_running

Voir aussi

curl_multi_init()
curl_exec()

Précédent | Sommaire | Suivant
curl_multi_close | Niveau supérieur | curl_multi_getcontent


curl_multi_getcontent

(PHP 5)

curl_multi_getcontent -- Retourne le contenu obtenu avec l'option CURLOPT_RETURNTRANSFER

Description

string curl_multi_getcontent ( resource ch )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Voir aussi

curl_multi_init()

Précédent | Sommaire | Suivant
curl_multi_exec | Niveau supérieur | curl_multi_info_read


curl_multi_info_read

(PHP 5)

curl_multi_info_read -- Lit les informations sur les transferts actuels

Description

array curl_multi_info_read ( resource mh [, int msgs_in_queue] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

Historique

Version | Description
5.2.0 | Le paramètre msgs_in_queue a été ajouté.

Voir aussi

curl_multi_init()

Précédent | Sommaire | Suivant
curl_multi_getcontent | Niveau supérieur | curl_multi_init


curl_multi_init

(PHP 5)

curl_multi_init -- Retourne un nouveau cURL multiple

Description

resource curl_multi_init ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

Voir aussi

curl_init()
curl_multi_close()

Précédent | Sommaire | Suivant
curl_multi_info_read | Niveau supérieur | curl_multi_remove_handle


curl_multi_remove_handle

(PHP 5)

curl_multi_remove_handle -- Retire un cURL multiple d'un jeu de cURL

Description

int curl_multi_remove_handle ( resource mh, resource ch )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

ch

Un gestionnaire cURL retourné par la fonction curl_init().

Voir aussi

curl_init()
curl_multi_init()
curl_multi_add_handle()

Précédent | Sommaire | Suivant
curl_multi_init | Niveau supérieur | curl_multi_select


curl_multi_select

(PHP 5)

curl_multi_select -- Retourne les sockets associées à cURL, pour utilisation

Description

int curl_multi_select ( resource mh [, float timeout] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mh

Un gestionnaire cURL multiple retourné par la fonction curl_multi_init().

timeout

Voir aussi

curl_multi_init()

Précédent | Sommaire | Suivant
curl_multi_remove_handle | Niveau supérieur | curl_setopt_array


curl_setopt

(PHP 4 >= 4.0.2, PHP 5)

curl_setopt -- Définit une option de transfert cURL

Description

bool curl_setopt ( resource ch, int option, mixed value )

Définit une option de transfert cURL.

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

option

L'option CURLOPT_XXX que vous voulez définir

value

La valeur à définir pour option.

value doit être un booléen pour les valeurs suivantes du paramètres option :

Option | Définissez le paramètre value à | Notes
CURLOPT_AUTOREFERER | TRUE pour fixer automatiquement le champ Referer: dans les requêtes où une redirection Location: suit. | Disponible depuis PHP 5.1.0.
CURLOPT_BINARYTRANSFER | TRUE pour retourner la ligne affichée lorsque CURLOPT_RETURNTRANSFER est utilisé.
CURLOPT_COOKIESESSION | TRUE pour marquer ceci comme un nouveau cookie "session". Cela forcera libcurl à ignorer tous les cookies qui sont prêts à être chargés qui sont des "cookies de session" provenant des sessions antérieures. Par défaut, libcurl enregistre et charge toujours tous les cookies, indépendamment s'ils sont des cookies de session ou pas. Les cookies de session sont des cookies sans date d'expiration et existeront que pour cette "session" seulement. | Disponible depuis PHP 5.1.0.
CURLOPT_CRLF | TRUE pour convertir les nouvelles lignes Unix en nouvelles lignes CRLF pendant le transfert.
CURLOPT_DNS_USE_GLOBAL_CACHE | TRUE pour utiliser un cache DNS global. Cette option n'est pas thread-safe et est activée par défaut.
CURLOPT_FAILONERROR | TRUE pour que PHP traite silencieusement les codes HTTP supérieurs ou égaux à 400. Le comportement par défaut est de retourner la page normalement, en ignorant ce code.
CURLOPT_FILETIME | TRUE pour tenter de récupérer la date de modification du document distant. Vous pouvez également retrouver cette valeur en utilisant l'option CURLINFO_FILETIME avec curl_getinfo().
CURLOPT_FOLLOWLOCATION | TRUE pour suivre toutes les en-têtes "Location: " que le serveur envoie dans les en-têtes HTTP (notez que cette fonction est récursive et que PHP suivra toutes les en-têtes "Location: " qu'il trouvera à moins que CURLOPT_MAXREDIRS ne soit définie).
CURLOPT_FORBID_REUSE | TRUE pour forcer la connexion à se fermer explicitement lorsque le processus est terminé et ne sera pas mise en cache pour être réutilisée.
CURLOPT_FRESH_CONNECT | TRUE pour forcer à utiliser une nouvelle connexion au lieu de celle en cache.
CURLOPT_FTP_USE_EPRT | TRUE pour utiliser EPRT (et LPRT) lors de l'activation des téléchargements FTP. Utilisez FALSE pour désactiver EPRT et LPRT et ainsi, n'utiliser que PORT. | Ajouté en PHP 5.0.0.
CURLOPT_FTP_USE_EPSV | TRUE pour tenter tout d'abord une commande EPSV pour les transferts FTP avant de revenir à une commande PASV. Définissez cette option à FALSE pour désactiver EPSV.
CURLOPT_FTPAPPEND | TRUE pour que PHP concatène le fichier distant, plutôt que de l'écraser.
CURLOPT_FTPASCII | Un alias de CURLOPT_TRANSFERTEXT. Utilisez celui-là à la place.
CURLOPT_FTPLISTONLY | TRUE pour ne lister que les noms d'un dossier FTP.
CURLOPT_HEADER | TRUE pour inclure l'en-tête dans la valeur de retour.
CURLOPT_HTTPGET | TRUE pour réinitialiser la méthode de requête HTTP à POST. Sachant que GET est la valeur par défaut, cela n'est uniquement nécessaire que si la méthode de requête a été changée.
CURLOPT_HTTPPROXYTUNNEL | TRUE pour effectuer un tunnel à travers un proxy HTTP.
CURLOPT_MUTE | TRUE pour que PHP soit totalement silencieux concernant toutes les fonctions cURL.
CURLOPT_NETRC | TRUE pour que PHP analyse votre fichier ~./netrc et utilise votre nom de compte et mot de passe sur le site distant que vous souhaitez contacter.
CURLOPT_NOBODY | TRUE pour que le corps du transfert ne soit pas inclus dans la valeur de retour.
CURLOPT_NOPROGRESS TRUE pour désactiver la barre de progression des transferts cURL. transfers.

Note : PHP choisit automatiquement une valeur non nulle. Ne changez cette valeur que le temps du débogage.

CURLOPT_NOSIGNAL | TRUE pour ignorer toutes les fonctions cURL qui cause l'envoi d'un signal au processus PHP. Activé par défaut dans les SAPIs multi-threadés, les options de timeout peut toujours être utilisées. | Ajouté dans cURL 7.10 et PHP 5.0.0.
CURLOPT_POST | TRUE pour que PHP fasse un HTTP POST. Un POST est un encodage normal application/x-www-from-urlencoded, utilisé couramment par les formulaires HTML.
CURLOPT_PUT | TRUE pour que le chargement se fasse par HTTP PUT. Le fichier à charger doit être fixé avec les options CURLOPT_INFILE et CURLOPT_INFILESIZE.
CURLOPT_RETURNTRANSFER | TRUE retourne directement le transfert sous forme de chaîne de la valeur retournée par curl_exec() au lieu de l'afficher directement.
CURLOPT_SSL_VERIFYPEER | FALSE pour arrêter CURL de vérifier le certificat. Les certificats alternatifs peuvent être spécifiés avec l'option CURLOPT_CAINFO (ajouté dans CURL 7.9.8) ou un répertoire de certificat peut être spécifié avec l'option CURLOPT_CAPATH. Tout comme CURL 7.10, CURL installe un paquet par défaut. CURLOPT_SSL_VERIFYHOST doit aussi être positionnée à 1 ou 0 si CURLOPT_SSL_VERIFYPEER est désactivée (par défaut à 2). | TRUE par défaut dpuis cURL 7.10. Paquet installé par défaut depuis cURL 7.10.
CURLOPT_TRANSFERTEXT | TRUE pour utiliser le mode ASCII pour les transferts FTP. Pour LDAP, il récupère les données en texte plein au lieu d'Html. Sur les systèmes WIndows, STDOUT ne sera pas définie en mode binaire.
CURLOPT_UNRESTRICTED_AUTH | TRUE pour garder l'envoi du nom de l'utilisateur ainsi que le mot de passe lorsque l'on suit les chemins (en utilisant CURLOPT_FOLLOWLOCATION), même si le nom d'hôte change. | Ajouté en PHP 5.0.0.
CURLOPT_UPLOAD | TRUE pour que PHP prépare un chargement.
CURLOPT_VERBOSE | TRUE pour afficher tous les événements. Écrit la sortie sur stderr ou dans le fichier spécifié en utilisant CURLOPT_STDERR.

value doit être un entier pour les valeurs suivantes du paramètres option :

Option | Définissez le paramètre value à | Notes
CURLOPT_BUFFERSIZE | La taille du buffer à utiliser pour chaque lecture. Cependant, il n'y a aucune garantie que cette requête soit accomplie. | Ajouté en cURL 7.10 et PHP 5.0.0.
CURLOPT_CLOSEPOLICY | Soit CURLCLOSEPOLICY_LEAST_RECENTLY_USED, soit CURLCLOSEPOLICY_OLDEST. Il y a trois autres constantes CURLCLOSEPOLICY_ mais CURL ne les supporte pas encore.
CURLOPT_CONNECTTIMEOUT | Le nombre de secondes à attendre durant la tentative de connexion. Utilisez une valeur de 0 pour attendre indéfiniment.
CURLOPT_DNS_CACHE_TIMEOUT | Le temps en seconde que CURL doit conserver les entrées DNS en mémoire. Cette option est définie à 120 (2minutes) par défaut.
CURLOPT_FTPSSLAUTH | La méthode d'identification FTP, lorsqu'elle est activée : CURLFTPAUTH_SSL (tente SSL en premier), CURLFTPAUTH_TLS (tente TLS en premier) ou CURLFTPAUTH_DEFAULT (laisse cURL décider). | Ajouté en cURL 7.12.2 et PHP 5.1.0.
CURLOPT_HTTP_VERSION | CURL_HTTP_VERSION_NONE (défaut, laisse cURL décider la version à utiliser), CURL_HTTP_VERSION_1_0 (force HTTP/1.0), ou CURL_HTTP_VERSION_1_1 (force HTTP/1.1).
CURLOPT_HTTPAUTH

La méthode d'identification HTTP à utiliser. Ces options sont : CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY et CURLAUTH_ANYSAFE.

Vous pouvez utiliser le séparateur | ou un opérateur pour combiner plus d'une méthode. Si vous faites cela, CURL interrogera le serveur pour voir quelles sont les méthodes supportées et prendra la meilleur.

CURLAUTH_ANY est un alias pour CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLAUTH_ANYSAFE est un alias pour CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

Ajouté en PHP 5.0.0.
CURLOPT_INFILESIZE | La taille attendue, en octets, du fichier lors du téléchargement d'un fichier depuis un site distant.
CURLOPT_LOW_SPEED_LIMIT | La vitesse de transfert minimale en octets par secondes en dessous de laquelle, et pendant CURLOPT_LOW_SPEED_TIME secondes, PHP considérera qu'elle est trop lente, et annulera le transfert.
CURLOPT_LOW_SPEED_TIME | Le temps en secondes, qui, si la vitesse de transfert reste en dessous de CURLOPT_LOW_SPEED_LIMIT, PHP considèrera que la connexion est trop lente, et l'annulera.
CURLOPT_MAXCONNECTS | Le nombre maximal de connexions persistantes autorisées. Lorsque la limite est atteinte, l'option CURLOPT_CLOSEPOLICY est utilisé pour afficher les connexions fermées.
CURLOPT_MAXREDIRS | Le nombre maximal de redirections HTTP à suivre. Utilisez cette option avec l'option CURLOPT_FOLLOWLOCATION.
CURLOPT_PORT | Le numéro du port de connexion, à la place de la valeur par défaut utilisée par le protocole.
CURLOPT_PROXYAUTH | La méthode d'identification HTTP à utiliser pour la connexion à un proxy. Utilisez la même méthode que celle décrite dans CURLOPT_HTTPAUTH. Pour une identification avec un proxy, seuls CURLAUTH_BASIC et CURLAUTH_NTLM sont actuellement supportés. | Ajouté en CURL 7.10.7 et PHP 5.1.0.
CURLOPT_PROXYPORT | Le numéro du port du proxy à utiliser pour la connexion. Ce numéro de port peut également être défini dans l'option CURLOPT_PROXY. | Ajouté en PHP 5.0.0.
CURLOPT_PROXYTYPE | Soit CURLPROXY_HTTP (par défaut), soit CURLPROXY_SOCKS5. | Ajouté en cURL 7.10 et PHP 5.0.0.
CURLOPT_RESUME_FROM | L'offset, en octets, à partir duquel vous voulez commencer le transfert.
CURLOPT_SSL_VERIFYHOST | 1 pour vérifier l'existence d'un nom commun dans le certificat SSL. 2 pour vérifier l'existence d'un nom commun et vérifier qu'il correspond avec le nom d'hôte fourni.
CURLOPT_SSLVERSION | La version de SSL (2 ou 3) à utiliser. Par défaut, PHP essayera de le déterminer lui-même, bien que dans certains cas, il vous faudra le faire manuellement.
CURLOPT_TIMECONDITION | Comment CURLOPT_TIMEVALUE est traité. Utilisez CURL_TIMECOND_IFMODSINCE pour retourner la page uniquement si elle a été modifiée depuis le temps spécifié par CURLOPT_TIMEVALUE. Si elle n'a pas été modifiée, un en-tête HTTP "304 Not Modified" sera retourné en supposant que CURLOPT_HEADER vaut TRUE. Utilisez CURL_TIMECOND_ISUNMODSINCE pour faire l'inverse. CURL_TIMECOND_IFMODSINCE est par défaut. | Ajouté en PHP 5.1.0.
CURLOPT_TIMEOUT | Le temps maximum d'exécution de la fonction cURL.
CURLOPT_TIMEVALUE | Le temps en secondes depuis le 1er janvier 1970. Cette valeur sera utilisée comme spécifié dans l'option CURLOPT_TIMECONDITION. Par défaut, CURL_TIMECOND_IFMODSINCE sera utilisée.

value doit être une chaîne pour les valeurs suivantes du paramètres option :

Option | Définissez le paramètre value à | Notes
CURLOPT_CAINFO | Le nom d'un fichier contenant un ou plusieurs certificats pour vérifier la concordance. Cela n'a de sens que si vous l'utilisez en combinaison de l'option CURLOPT_SSL_VERIFYPEER.
CURLOPT_CAPATH | Un dossier qui contient les certificats CA. Utilisez cette option avec l'option CURLOPT_SSL_VERIFYPEER.
CURLOPT_COOKIE | Le contenu de l'en-tête "Set-Cookie: ", à transmettre dans l'en-tête HTTP.
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.
CURLOPT_COOKIEJAR | Le nom de fichier pour y sauvegarder tous les cookies internes lorsque la connexion se ferme.
CURLOPT_CUSTOMREQUEST Une méthode de requête qui sera utilisée à la place de "GET" ou "HEAD" lors des requêtes HTTP. Cette commande est pratique pour effectuer un "DELETE" ou une autre commande HTTP exotique. Les valeurs valides sont "GET", "POST", "CONNECT" et plus ; i.e. n'entrez pas une requête HTTP ici. Pour le moment, entrez "GET /index.html HTTP/1.0\r\n\r\n" serait incorrect.

Note : N'utilisez pas cette commande sans vous assurer que le serveur l'accepte.

CURLOPT_EGBSOCKET | 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 POST 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_KRB4LEVEL | Le degré de sécurité KRB4 (Kerberos 4). Chacune des valeurs (dans l'ordre du plus petit au plus grand) suivantes sont valides : "clear", "safe", "confidential", "private".. Si la chaîne passée ne correspond pas à une de ces valeurs, la valeur "private" sera définie. Positionner cette valeur à NULL revient à désactiver la sécurité KRB4. Actuellement, la sécurité KRB4 fonctionne uniquement avec les transaction FTP.
CURLOPT_POSTFIELDS | Toutes les données à passer lors d'une opération de HTTP POST.
CURLOPT_PROXY | Le nom du proxy HTTP au tunnel qui le demande.
CURLOPT_PROXYUSERPWD | Un nom d'utilisateur et un mot de passe formatté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_SSL_CIPHER_LIST | Une liste de ciphers à utiliser avec SSL. Par exemple, RC4-SHA et TLSv1 sont des listes valides de cipher.
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" (default), "DER", et "ENG". | Ajouté en cURL 7.9.3 et PHP 5.0.0.
CURLOPT_SSLENGINE | L'identifiant pour le moteur de cryptage de votre clé privée spécifié dans CURLOPT_SSLKEY.
CURLOPT_SSLENGINE_DEFAULT | L'identifiant pour le moteur de cryptage utilisé pour les opérations de cryptage 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és supportés sont "PEM" (défaut), "DER", et "ENG".
CURLOPT_URL | L'URL àrécupérer. Vous pouvez aussi choisir cette valeur lors de l'appel à curl_init().
CURLOPT_USERAGENT | Le contenu de l'en-tête "User-Agent: " à utiliser dans une requête HTTP.
CURLOPT_USERPWD | Un nom d'utilisateur et un mot de passe formattés sous la forme "[username]:[password]" à utiliser pour la connexion.

value doit être un tableau pour les valeurs suivantes du paramètres option :

Option | Définissez le paramètre value à | Notes
CURLOPT_HTTP200ALIASES | Un tableau de réponses HTTP 200 qui sera traité comme réponses valides et non comme des erreurs. | Ajouté en CURL 7.10.3 et PHP 5.0.0.
CURLOPT_HTTPHEADER | Un tableau de champs d'en-têtes HTTP à définir.
CURLOPT_POSTQUOTE | Un tableau de commandes FTP à exécuter sur le serveur après que la requête FTP se soit exécutée.
CURLOPT_QUOTE | Un tableau de commande FTP à exécuter sur le serveur avant la requête FTP.

value doit être une ressource (utilisant fopen(), par exemple) pour les valeurs suivantes du paramètres option :

Option | Définissez le paramètre value à | Notes
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 une chaîne de caractères qui sera un nom valide de fonction de callback pour les valeurs suivantes du paramètres option :

Option | Définissez le paramètre value à | Notes
CURLOPT_HEADERFUNCTION | Le nom d'une fonction de callback où la fonction de callback prend deux paramètres. Le premier est la ressource CURL, le seond, une chaîne contenant les données de l'en-tête à écrire. En utilisant cette fonction de callback, il en devient de votre responsabilité de l'écriture des données de l'en-tête. Retourne le nombre d'octets écris.
CURLOPT_PASSWDFUNCTION | Le nom d'une fonction de callback où la fonction de callback prend trois paramètres. Le premier est la ressource CURL, le second, une chaîne contenant un mot de passe de prompt et le troisième, est la longueur maximale du mot de passe. Retourne une chaîne contenant le mot de passe.
CURLOPT_READFUNCTION | Le nom d'une fonction de callback où la fonction de callback prend deux paramètres. Le premier est la ressource CURL et le second, une chaîne contenant les données à lire. En utilisant cette fonction de callback, il devient de votre responsabilité de lire les données. Retourne le nombre d'octets lus. Retourne 0 à un signal EOF.
CURLOPT_WRITEFUNCTION | Le nom d'une fonction de callback où la fonction de callback 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 callback, il devient de votre responsabilité d'écrire les données. Doit retourner le nombre exact d'octets écris ou il échoura.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Voir aussi

curl_setopt_array()

Précédent | Sommaire | Suivant
curl_setopt_array | Niveau supérieur | curl_version


curl_version

(PHP 4 >= 4.0.2, PHP 5)

curl_version -- Retourne la version courante de cURL

Description

array curl_version ( [int age] )

Retourne des informations sur la version cURL.

Liste de paramètres

age

Valeurs de retour

Retourne un tableau associatif contenant les éléments suivants :

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 tanleau de noms de protocoles supportés par cURL

Précédent | Sommaire | Suivant
curl_setopt | Niveau supérieur | Paiement Cybercash


Paiement Cybercash

Manuel PHP
Précédent Suivant

XIX. Paiement Cybercash

Installation

Ces fonctions ne sont disponibles que si PHP a été compilé avec l'option --with-cybercash=[DIR].

Cette extension a été déplacée depuis la distribution PHP 4.3.0 dans PECL.

Si vous avez des questions concernant le statut de CyberCash, voyez la FAQ CyberCash. En bref, Cybercash a été acheté par VeriSign et bien que le service CyberCash existe toujours, VeriSign encourage les clients à changer. Voyez la FAQ ci-dessus et le lien sur PECL pour plus de détails.

Table des matières
cybercash_base64_decode -- Décodage en base64 des données pour Cybercash
cybercash_base64_encode -- Encodage en base64 pour Cybercash
cybercash_decr -- Décryptage Cybercash
cybercash_encr -- Cryptage Cybercash

Précédent | Sommaire | Suivant
curl_version | Niveau supérieur | cybercash_base64_decode


cybercash_base64_decode

(PHP 4 <= 4.2.3, PECL)

cybercash_base64_decode -- Décodage en base64 des données pour Cybercash

Description

string cybercash_base64_decode ( string inbuff )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
Paiement Cybercash | Niveau supérieur | cybercash_base64_encode


cybercash_base64_encode

(PHP 4 <= 4.2.3, PECL)

cybercash_base64_encode -- Encodage en base64 pour Cybercash

Description

string cybercash_base64_encode ( string inbuff )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
cybercash_base64_decode | Niveau supérieur | cybercash_decr


cybercash_decr

(PHP 4 <= 4.2.3, PECL)

cybercash_decr -- Décryptage Cybercash

Description

array cybercash_decr ( string wmk, string sk, string inbuff )

Décrypte les informations.

Liste de paramètres

wmk

La clé du négociant.

sk

La clé de session.

inbuff

Valeurs de retour

Retourne un tableau associatif, contenant les éléments "errcode" et, si "errcode" vaut FALSE, "outbuff" (string), "outLth" (long) et "macbuff" (string).

Voir aussi

cybercash_encr()

Précédent | Sommaire | Suivant
cybercash_base64_encode | Niveau supérieur | cybercash_encr


cybercash_encr

(PHP 4 <= 4.2.3, PECL)

cybercash_encr -- Cryptage Cybercash

Description

array cybercash_encr ( string wmk, string sk, string inbuff )

Crypte les informations.

Liste de paramètres

wmk

La clé du négociant.

sk

La clé de session.

inbuff

Une chaîne de caractères encodée URL de paires de valeurs, i.e. order-id=12345&amount=USD+12.34&card_number=......

Valeurs de retour

Retourne un tableau associatif, contenant les éléments "errcode" et, si "errcode" vaut FALSE, "outbuff" (string), "outLth" (long) et "macbuff" (string).

Voir aussi

cybercash_decr()

Précédent | Sommaire | Suivant
cybercash_decr | Niveau supérieur | Fonctions Crédit Mutuel CyberMUT


Cyrus IMAP

Manuel PHP
Précédent Suivant

XXI. Cyrus IMAP

Introduction

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0.

Installation

Pour activer le support Cyrus IMAP et en utiliser les functions, vous devez compiler PHP avec l'option --with-cyrus.

Avertissement

Les extensions IMAP, recode, YAZ et Cyrus ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun.

Types de ressources

Cette extension définit un identifiant de connexion Cyrus IMAP retourné par la fonction cyrus_connect().

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CYRUS_CONN_NONSYNCLITERAL (entier)

CYRUS_CONN_INITIALRESPONSE (entier)

CYRUS_CALLBACK_NUMBERED (entier)

CYRUS_CALLBACK_NOLITERAL (entier)

Table des matières
cyrus_authenticate -- Identification sur un serveur Cyrus IMAP
cyrus_bind -- Ajoute une fonction de callback sur une connexion Cyrus IMAP
cyrus_close -- Ferme la connexion à un serveur Cyrus IMAP
cyrus_connect -- Connexion sur un serveur Cyrus IMAP
cyrus_query -- Envoie une requête à un serveur Cyrus IMAP
cyrus_unbind -- Supprime ...

Précédent | Sommaire | Suivant
cybermut_testmac | Niveau supérieur | cyrus_authenticate


cyrus_authenticate

(PHP 4 >= 4.1.0, PECL)

cyrus_authenticate -- Identification sur un serveur Cyrus IMAP

Description

void cyrus_authenticate ( resource connection [, string mechlist [, string service [, string user [, int minssf [, int maxssf [, string authname [, string password]]]]]]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
Cyrus IMAP | Niveau supérieur | cyrus_bind


cyrus_bind

(PHP 4 >= 4.1.0, PECL)

cyrus_bind -- Ajoute une fonction de callback sur une connexion Cyrus IMAP

Description

bool cyrus_bind ( resource connection, array callbacks )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
cyrus_authenticate | Niveau supérieur | cyrus_close


cyrus_close

(PHP 4 >= 4.1.0, PECL)

cyrus_close -- Ferme la connexion à un serveur Cyrus IMAP

Description

bool cyrus_close ( resource connection )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
cyrus_bind | Niveau supérieur | cyrus_connect


cyrus_connect

(PHP 4 >= 4.1.0, PECL)

cyrus_connect -- Connexion sur un serveur Cyrus IMAP

Description

resource cyrus_connect ( [string host [, string port [, int flags]]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
cyrus_close | Niveau supérieur | cyrus_query


cyrus_query

(PHP 4 >= 4.1.0, PECL)

cyrus_query -- Envoie une requête à un serveur Cyrus IMAP

Description

array cyrus_query ( resource connection, string query )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
cyrus_connect | Niveau supérieur | cyrus_unbind


cyrus_unbind

(PHP 4 >= 4.1.0, PECL)

cyrus_unbind -- Supprime ...

Description

bool cyrus_unbind ( resource connection, string trigger_name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
cyrus_query | Niveau supérieur | Dates et heures


Dates et heures

Manuel PHP
Précédent Suivant

XXII. Dates et heures

Introduction

Ces fonctions vous permettent de manipuler la date et l'heure sur le serveur qui exécute PHP. Vous pouvez utiliser ces fonctions pour formater la date et l'heure de nombreuses façons.

Note : N'oubliez pas que ces fonctions dépendent de la configuration locale de votre serveur. Faites notamment attention aux changements d'heure d'hiver et d'été (e.g. utilisez $date = strtotime('+7 days', $date) et non pas $date += 7*24*60*60) ainsi qu'aux années bissextiles lorsque vous utilisez ces fonctions.

Note : Les fuseaux horaires référencés dans cette section peuvent être trouvés dans la Annexe I.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Note : La dernière version de la base de données des fuseaux horaires peut être installée via le paquet PECL timezonedb. Pour les utilisateurs de Windows, une bibliothèque DLL pré-compilée peut être téléchargée depuis le site PECL4Win : php_timezonedb.dll.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configurations Date/Heure

Nom | Par défaut | Modifiable | Historique
date.default_latitude | "31.7667" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.default_longitude | "35.2333" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.sunrise_zenith | "90.83" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.sunset_zenith | "90.83" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.timezone | "" | PHP_INI_ALL | Disponible depuis PHP 5.1.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

date.default_latitude float

La latitude par défaut.

date.default_longitude float

La longitude par défaut.

date.sunrise_zenith float

L'heure de lever du soleil par défaut.

date.sunset_zenith float

L'heure du coucher du soleil par défaut.

date.timezone string

Le décalage horaire utilisé par toutes les fonctions date/heure si la variable d'environnement TZ n'est pas définie. L'ordre de priorité est décrit dans la page date_default_timezone_get(). Voir Annexe I pour une liste des décalages horaires supportés.

Note : Les quatres premières options de configuration sont actuellement utilisées uniquement par les fonction date_sunrise() et date_sunset().

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Les constantes suivantes sont définies depuis PHP 5.1.1 et offrent une représentation standard des dates, qui peut être utilisée avec toutes les fonctions de formattage de date (comme date()).

DATE_ATOM (chaîne de caractères)

Atom (exemple : 2005-08-15T15:52:01+00:00)

DATE_COOKIE (chaîne de caractères)

Cookies HTTP (exemple : Monday, 15-Aug-05 15:52:01 UTC)

DATE_ISO8601 (chaîne de caractères)

ISO-8601 (exemple : 2005-08-15T15:52:01+0000)

DATE_RFC822 (chaîne de caractères)

RFC 822 (exemple : Mon, 15 Aug 05 15:52:01 +0000)

DATE_RFC850 (chaîne de caractères)

RFC 850 (exemple : Monday, 15-Aug-05 15:52:01 UTC)

DATE_RFC1036 (chaîne de caractères)

RFC 1036 (exemple : Mon, 15 Aug 05 15:52:01 +0000)

DATE_RFC1123 (chaîne de caractères)

RFC 1123 (exemple : Mon, 15 Aug 2005 15:52:01 +0000)

DATE_RFC2822 (chaîne de caractères)

RFC 2822 (Mon, 15 Aug 2005 15:52:01 +0000)

DATE_RFC3339 (string)

Identique à DATE_ATOM (depuis PHP 5.1.3)

DATE_RSS (chaîne de caractères)

RSS (Mon, 15 Aug 2005 15:52:01 +0000)

DATE_W3C (chaîne de caractères)

World Wide Web Consortium (W3C) (exemple : 2005-08-15T15:52:01+00:00)

Les constantes suivantes existent depuis PHP 5.1.2 et spécifient un format retourné par les fonctions date_sunrise() et date_sunset().

SUNFUNCS_RET_TIMESTAMP (entier)

Timestamp

SUNFUNCS_RET_STRING (entier)

Heures:minutes (exemple: 08:02)

SUNFUNCS_RET_DOUBLE (entier)

Heures en tant que nombre à point flottant (exemple 8.75)

Table des matières
checkdate -- Valide une date grégorienne
date_create -- Retourne un nouvel objet DateTime
date_date_set -- Fixe la date
date_default_timezone_get -- Récupère le décalage horaire par défaut utilisé par toutes les fonctions date/heure dans un script
date_default_timezone_set -- Définit le décalage horaire par défaut utilisé par toutes les fonctions date/heure dans un script
date_format -- Retourne la date mis en forme dans le format donné
date_isodate_set -- Fixe la date ISO
date_modify -- Modifie le timestamp
date_offset_get -- Retourne le décalage de l'heure avancée
date_parse -- Retourne un tableau associatif avec des informations détaillées sur une date donnée
date_sun_info -- Retourne un tableau avec les informations sur lever/coucher du soleil ainsi que le début et la fin de l'aube
date_sunrise -- Retourne l'heure de levé 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 -- Fixe le temps
date_timezone_get -- Retourne le fuseau horaire relatif au DateTime donné
date_timezone_set -- Fixe le fuseau horaire pour l'objet DateTime
date -- Formate une date/heure locale
getdate -- Retourne la date/heure
gettimeofday -- Retourne l'heure actuelle
gmdate -- Formate une date/heure GMT/CUT
gmmktime -- Retourne le timestamp UNIX d'une date GMT
gmstrftime -- Formate une date/heure GMT/CUT en fonction de la configuration locale
idate -- Formate une date/heure locale en tant qu'entier
localtime -- Récupère l'heure locale
microtime -- Retourne le timestamp UNIX actuel avec les microsecondes
mktime -- Retourne le timestamp UNIX d'une date
strftime -- Formate une date/heure locale avec la configuration locale
strptime -- Analyse une date générée par strftime()
strtotime -- Transforme un texte anglais en timestamp
time -- Retourne le timestamp UNIX actuel
timezone_abbreviations_list -- Retourne un tableau associatif contenant l'heure avancée, décalage et le nom du fuseau horaire
timezone_identifiers_list -- Retourne un tableau indexé numériquement avec tous les identifiants des fuseaux horaires
timezone_name_from_abbr -- Retourne le nom du fuseau horaire à partir de son abréviation
timezone_name_get -- Retourne le nom du fuseau horaire
timezone_offset_get -- Retourne le décalage du fuseau horaire
timezone_open -- Retourne un nouvel objet DateTimeZone
timezone_transitions_get -- Retourne toutes les transitions pour le fuseau horaire

Précédent | Sommaire | Suivant
cyrus_unbind | Niveau supérieur | checkdate


checkdate

(PHP 3, PHP 4, PHP 5)

checkdate -- Valide une date grégorienne

Description

bool checkdate ( int month, int day, int year )

Vérifie la validité d'une date formée par les arguments. Une date est considérée comme valide si chaque paramètre est défini correctement.

Liste de paramètres

month

Le mois doit être compris entre 1 et 12.

day

Le jour doit être un jour autorisé par le mois donné. Les années bissextiles sont prises en comptes.

year

L'année est comprise entre 1 et 32767 inclus.

Valeurs de retour

Retourne TRUE si la date fournie est valide, sinon FALSE.

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

Précédent | Sommaire | Suivant
Dates et heures | Niveau supérieur | date_create


date_sunrise

(PHP 5)

date_sunrise -- Retourne l'heure de levé du soleil pour un jour et un endroit donnés

Description

mixed date_sunrise ( int timestamp [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]] )

date_sunrise() retourne l'heure de levé 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 levé du soleil est donné.

format

Tableau 1. 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 à virgule flottante | 16.78243132
SUNFUNCS_RET_TIMESTAMP | Retourne le résultat en tant qu'entier (timestamp) | 1095034606

latitude

Par défaut, c'est le Nord. Passez une valeur négative pour le Sud. Voir aussi date.default_latitude.

longitude

Par défaut, c'est l'Est. Passez une valeur négative pour l'Ouest. Voir aussi date.default_longitude.

zenith

Par défaut : date.sunrise_zenith

gmtoffset

Spécifié en heures.

Valeurs de retour

Retourne l'heure de levé du soleil dans un format spécifié en cas de succès, FALSE si une erreur survient.

Erreurs / Exceptions

Chaque appel à une fonction date/heure génèrera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Exemple 1. Exemple avec date_sunrise()

<?php

/* Calcul l'heure du levé du soleil pour Lisbonne, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunrise time : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Mon Dec 20 2004, sunrise time : 08:54

Voir aussi

date_sunset()

Précédent | Sommaire | Suivant
date_sun_info | Niveau supérieur | date_sunset


date_sunset

(PHP 5)

date_sunset -- Retourne l'heure de coucher du soleil pour un jour et un endroit donnés

Description

mixed date_sunset ( int timestamp [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]] )

date_sunset() retourne l'heure de couché 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 couché du soleil est donnée.

format

Tableau 1. Constantes pour le paramètre format

Constante | Description | Exemple
SUNFUNCS_RET_STRING | Retourne le résultat sous la forme d'une chaîne de caractères | 16:46
SUNFUNCS_RET_DOUBLE | Retourne le résultat sous la forme d'un nombre à virgule flottante | 16.78243132
SUNFUNCS_RET_TIMESTAMP | Retourne le résultat sous la forme d'un entier (timestamp) | 1095034606

latitude

Par défaut, c'est le Nord. Passez une valeur négative pour le Sud. Voir aussi date.default_latitude.

longitude

Par défaut, c'est l'Est. Passez une valeur négative pour l'Ouest. Voir aussi date.default_longitude.

zenith

Par défaut : date.sunrise_zenith

gmtoffset

Spécifié en heures.

Valeurs de retour

Retourne l'heure de couché du soleil dans un format spécifié, FALSE en cas d'échec.

Erreurs / Exceptions

Chaque appel à une fonction date/heure génèrera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Exemple 1. Exemple avec date_sunset()

<?php

     /* Calcul l'heure du couché du soleil pour Lisbonne, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunset time : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Mon Dec 20 2004, sunset time : 18:13

Voir aussi

date_sunrise()

Précédent | Sommaire | Suivant
date_sunrise | Niveau supérieur | date_time_set


date

(PHP 3, PHP 4, PHP 5)

date -- Formate une date/heure locale

Description

string date ( string format [, int timestamp] )

Retourne une date sous forme d'une chaîne, au format donné par le paramètre format, fournie par le paramètre timestamp ou la date et l'heure courantes si aucun timestamp n'est fourni. En d'autres termes, le paramètre timestamp est optionnel et vaut par défaut la valeur de la fonction time().

Liste de paramètres

format

Le format de la date désirée. Voir les options de formattage ci-dessous.

Tableau 1. 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) | Mon à Sun
j | Jour du mois sans les zéros initiaux | 1 à 31
l ('L' minuscule) | Jour de la semaine, textuel, version longue, en anglais | Sunday à Saturday
N | Représentation numérique ISO-8601 du jour de la semaine (ajouté en PHP 5.1.0) | 1 (pour Lundi) à 7 (pour Dimanche)
S | Suffixe ordinal d'un nombre pour le jour du mois, en anglais, sur deux lettres | st, nd, rd ou th. Fonctionne bien avec j
w | Jour de la semaine au format numérique | 0 (pour dimanche) à 6 (pour samedi)
z | Jour de l'année | 0 à 366
Semaine --- ---
W | Numéro de semaine dans l'année ISO-8601, les semaines commencent le lundi (ajouté en PHP 4.1.0) | Exemple : 42 (la 42ème semaine de l'année)
Mois --- ---
F | Mois, textuel, version longue; en anglais, comme January ou December | January à December
m | Mois au format numérique, avec zéros initiaux | 01 à 12
M | Mois, en trois lettres, en anglais | Jan à Dec
n | Mois sans les zéros initiaux | 1 à 12
t | Nombre de jours dans le mois | 28 à 31
Année --- ---
L | Est ce que l'année est bissextile | 1 si bissextile, 0 sinon.
o | L'année ISO-8601. C'est la même valeur que Y, excepté que si le numéro de la semaine ISO (W) appartient à l'année précédente ou suivante, cette année sera utilisé à la place. (ajouté en PHP 5.1.0) | Exemples : 1999 ou 2003
Y | Année sur 4 chiffres | Exemples : 1999 ou 2003
y | Année sur 2 chiffres | Exemples : 99 ou 03
Heure --- ---
a | Ante meridiem et Post meridiem en minuscules | am ou pm
A | Ante meridiem et Post meridiem en majuscules | AM ou PM
B | Heure Internet Swatch | 000 à 999
g | Heure, au format 12h, sans les zéros initiaux | 1 à 12
G | Heure, au format 24h, sans les zéros initiaux | 0 à 23
h | Heure, au format 12h, avec les zéros initiaux | 01 à 12
H | Heure, au format 24h, avec les zéros initiaux | 00 à 23
i | Minutes avec les zéros initiaux | 00 à 59
s | Secondes, avec zéros initiaux | 00 à 59
Fuseau horaire --- ---
e | L'identifiant du fuseau horaire (ajouté en PHP 5.1.0) | Exemples : UTC, GMT, Atlantic/Azores
I (i majuscule) | L'heure d'été est activée ou pas | 1 si oui, 0 sinon.
O | Différence d'heures avec l'heure de Greenwich (GMT), exprimée en heures | Exemple : +0200
P | Différence avec l'heure Greenwich (GMT) avec un deux-points entre les heures et les minutes (ajouté dans PHP 5.1.3) | Exemple : +02:00
T | Abréviation du fuseau horaire | Exemples : EST, MDT ...
Z | Décalage horaire en secondes. Le décalage des zones à l'ouest de la zone UTC est négative, et à l'est, il est positif. | -43200 à 50400
Date et Heure complète --- ---
c | Date au format ISO 8601 (ajouté en PHP 5) | 2004-02-12T15:19:21+00:00
r | Format de date RFC 2822 | Exemple : Thu, 21 Dec 2000 16:01:07 +0200
U | Secondes depuis l'époque Unix (1er Janvier 1970, 0h00 00s GMT) | Voir aussi time()

Les caractères non reconnus seront imprimés tels quel. "Z" retournera toujours 0 lorsqu'il est utilisé avec gmdate().

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il faut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne une date formattée. Si une valeur non-numérique est utilisée dans le paramètre timestamp, FALSE sera retourné et une erreur de niveau E_WARNING est émise.

Erreurs / Exceptions

Chaque appel à une fonction date/heure génèrera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
5.1.0 | L'intervalle de validité d'un timestamp va généralement du Vendredi 13 Décembre 1901 20:45:54 GMT au Mardi 19 Janvier 2038 03:14:07 GMT. (Ces dates correspondent aux valeurs minimales et maximales des entiers 32 bits non-signés). Cependant, avant PHP 5.1.0, cette intervalle va du 01-01-1970 au 19-01-2038 sur quelques systèmes (e.g. Windows).
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.
5.1.1 | Il y a plusieurs constantes utiles de formats date/heure standards qui peuvent être utilisées pour spécifier le paramètre format.

Exemples

Exemple 1. Exemple avec date()

<?php
// Définit le fuseau horaire par défaut à utiliser. Disponible depuis PHP 5.1
date_default_timezone_set('UTC');

// Affichage de quelque chose comme : Monday
echo date("l");

// Affichage de quelque chose comme : Monday 15th of August 2005 03:12:46 PM
echo date('l dS \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 : Mon, 15 Aug 2005 15:12:46 UTC
echo date(DATE_RFC822);

// 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 anti-slash. Si le caractère est lui-même une séquence incluant un anti-slash, vous devrez protéger aussi l'anti-slash.

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 12 Mars 2001, 10:16:18 pm

$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 z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // C'est le 12th jour.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 15:16:08 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:17 m est le mois
$today = date("H:i:s");                         // 17:16:17
?>

Pour formater des dates dans d'autres langues, utilisez les fonctions setlocale() et strftime() au lieu de la fonction date().

Notes

Note : Pour générer un timestamp à partir d'une représentation de date, vous pouvez utiliser la fonction strtotime(). De plus, certaines bases de données disposent de fonctions pour convertir leurs propres formats de date en timestamps (par exemple, MySQL et sa fonction UNIX_TIMESTAMP()).

Astuce : Un timestamp représentant le début de la requête est disponible dans la variable $_SERVER['REQUEST_TIME'] depuis PHP 5.1.

Voir aussi

getlastmod()
gmdate()
mktime()
strftime()
time()

Précédent | Sommaire | Suivant
date_timezone_set | Niveau supérieur | getdate


getdate

(PHP 3, PHP 4, PHP 5)

getdate -- Retourne la date/heure

Description

array getdate ( [int timestamp] )

Retourne un tableau associatif contenant les informations de date et d'heure du timestamp timestamp lorsqu'il est fourni, sinon, le timestamp de la date/heure courante locale.

Liste de paramètres

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il faut 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 :

Tableau 1. Nom des clés du tableau associatif retourné

Clé | Description | Exemple de valeur retournée
"seconds" | Représentation numérique des secondes | 0 à 59
"minutes" | Représentation numérique des minutes | 0 à 59
"hours" | Représentation numérique des heures | 0 à 23
"mday" | Représentation numérique du jour du mois courant | 1 à 31
"wday" | Représentation numérique du jour de la semaine courante | 0 (pour Dimanche) à 6 (pour Samedi)
"mon" | Représentation numérique du mois | 1 à 12
"year" | Année, sur 4 chiffres | Exemples : 1999 ou 2003
"yday" | Représentation numérique du jour de l'année | 0 à 365
"weekday" | Version texte du jour de la semaine | Sunday à Saturday
"month" | Version texte du mois, comme January ou March | January à December
0 | Nombre de secondes depuis l'époque Unix, similaire à la valeur retournée par la fonction time() et utilisée par date(). | Dépend du système, typiquement de -2147483648 à 2147483647.

Exemples

Exemple 1. Exemple avec getdate()

<?php
$today = getdate();
print_r($today);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
     [seconds] => 40
     [minutes] => 58
     [hours]   => 21
     [mday]    => 17
     [wday]    => 2
     [mon]     => 6
     [year]    => 2003
     [yday]    => 167
     [weekday] => Tuesday
     [month]   => June
     [0]       => 1055901520
)

Voir aussi

date()
time()
setlocale()

Précédent | Sommaire | Suivant
date | Niveau supérieur | gettimeofday


gettimeofday

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

gettimeofday -- Retourne l'heure actuelle

Description

mixed gettimeofday ( [bool return_float] )

C'est une interface à gettimeofday(2). Elle retourne un tableau associatif qui contient les informations retournées par le système.

Liste de paramètres

return_float

Lorsque défini à TRUE, un nombre à virgule flottante est retourné à la place d'un tableau.

Valeurs de retour

Par défaut, un tableau est retourné. Si le paramètre return_float est défini, alors un nombre à virgule flottante sera retourné.

Clés du tableau :

  • "sec" - secondes depuis l'époque Unix

  • "usec" - microsecondes

  • "minuteswest" - minutes de décalage par rapport à Greenwich, vers l'Ouest.

  • "dsttime" - type de correction dst

Historique

Version | Description
5.1.0 | Le paramètre return_float a été ajouté.

Exemples

Exemple 1. Exemple avec gettimeofday()

<?php
print_r(gettimeofday());

echo gettimeofday(true);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [sec] => 1073504408
   [usec] => 238215
   [minuteswest] => 0
   [dsttime] => 1
)

1073504408.23910

Précédent | Sommaire | Suivant
getdate | Niveau supérieur | gmdate


gmdate

(PHP 3, PHP 4, PHP 5)

gmdate -- Formate une date/heure GMT/CUT

Description

string gmdate ( string format [, int timestamp] )

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 formattage pour la fonction date().

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il faut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne une date formatée. Si une valeur non numérique est utilisée pour le paramètre timestamp, FALSE est retourné et une erreur de niveau E_WARNING sera émise.

Historique

Version | Description
5.1.0 | L'intervalle de validité d'un timestamp est typiquement depuis le Vendredi 13 Décembre 1901 20:45:54 GMT au 19 Janvier 2038 03:14:07 GMT. (ce qui correspond aux valeurs minimales et maximales d'un entier 32-bit signé). Cependant, avant PHP 5.1.0, cet intervalle était limité de 01-01-1970 à 19-01-2038 sous quelques systèmes (e.g. Windows).
5.1.1 | Il y a quelques constants utiles pour les formats standards date/heure qui peuvent être utilisées dans le paramètre format.

Exemples

Exemple 1. Exemple avec gmdate()

Lorsque cette fonction est exécutée en Finlande (GMT +0200), la première ligne ci-dessous affichera "Jan 01 1998 00:00:00", tandis que la seconde affichera "Dec 31 1997 22:00:00".

<?php
echo date("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
?>

Voir aussi

date()
mktime()
gmmktime()
strftime()

Précédent | Sommaire | Suivant
gettimeofday | Niveau supérieur | gmmktime


gmmktime

(PHP 3, PHP 4, PHP 5)

gmmktime -- Retourne le timestamp UNIX d'une date GMT

Description

int gmmktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )

Identique à la fonction mktime() excepté le fait que les paramètres passés sont GMT. gmmktime() utilise en interne la fonction mktime(), donc, seuls les temps valides dans la zone locale dérivée peuvent être utilisés.

Comme mktime(), les arguments restants peuvent être ignorés. Ils prendront alors leurs valeurs GMT actuelles.

Liste de paramètres

hour

Les heures

minute

Les minutes

second

Les secondes

month

Le mois

day

Le jour

year

L'année

is_dst

Les paramètres représentent toujours une date GMT donc, le paramètre is_dst n'influence pas le résultat.

Valeurs de retour

Retourne un timestamp Unix de type entier.

Historique

Version | Description
5.1.0 | Depuis PHP 5.1.0, le paramètre is_dst est devenu obsolète. Comme résultat, le nouveau gestionnaire de fuseau horaire doit être utilisé à la place.

Exemples

Exemple 1. Exemple avec gmmktime()

<?php
gmmktime(0, 0, 0, 1, 1, 1970);  // valide en GMT et l'ouest, invalide à l'est
?>

Voir aussi

mktime()
date()
time()

Précédent | Sommaire | Suivant
gmdate | Niveau supérieur | gmstrftime


gmstrftime

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

gmstrftime -- Formate une date/heure GMT/CUT en fonction de la configuration locale

Description

string gmstrftime ( string format [, int timestamp] )

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

Exemples

Exemple 1. Exemple avec gmstrftime()

<?php
setlocale(LC_TIME, 'en_US');
echo strftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
echo gmstrftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
?>

Voir aussi

strftime()

Précédent | Sommaire | Suivant
gmmktime | Niveau supérieur | idate


idate

(PHP 5)

idate -- Formate une date/heure locale en tant qu'entier

Description

int idate ( string format [, int timestamp] )

idate() retourne une nombre formaté avec le format format et représentant le timestamp timestamp ou l'heure courant 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

Tableau 1. 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 | Retourne 1 si l'heure d'été est activée, 0 sinon
L | Retourne 1 pour une année bissextile, 0 sinon
m | Numéro du mois
s | Secondes
t | Jour du mois courant
U | Secondes depuis l'époque Unix - 1 Janvier 1970 00:00:00 GMT - c'est la même chose que la fonction time()
w | Jour de la semaine (0 pour Dimanche)
W | Le numéro de semaine de l'année ; selon l'ISO-8601, les semaines débutent le Lundi
y | Année sur 1 ou 2 chiffres, voir la note plus bas
Y | Année sur 4 chiffres
z | Jour de l'année
Z | Décalage horaire, en secondes

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il faut par défaut la valeur de la fonction time().

Valeurs de retour

Retourne un entier.

Sachant que idate() retourne toujours un entier et qu'il ne peut commencer par 0, idate() peut retourner moins de chiffres que ce dont on pourrait espérer. Voir l'exemple ci-dessous.

Erreurs / Exceptions

Chaque appel à une fonction date/heure génèrera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Exemple 1. Exemple avec idate()

<?php
$timestamp = strtotime('1st January 2004'); //1072915200

// ceci affiche l'année sur deux chiffres
// néanmoins, vu que ce chiffre va commencer par "0",
// seul "4" sera affiché
echo idate('y', $timestamp);
?>

Voir aussi

date()
time()

Précédent | Sommaire | Suivant
gmstrftime | Niveau supérieur | localtime


localtime

(PHP 4, PHP 5)

localtime -- Récupère l'heure locale

Description

array localtime ( [int timestamp [, bool is_associative]] )

localtime() retourne un tableau identique à la structure retournée par la fonction C localtime.

Liste de paramètres

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il faut par défaut la valeur de la fonction time().

is_associative

si défini à FALSE ou ignoré, force localtime() à retourner un tableau à index numérique. S'il est mis à TRUE, localtime() retourne un tableau associatif, avec tous les éléments de la structure C, accessible avec les clés. Les noms des différentes clés du tableau associatif sont les suivants :

  • "tm_sec" - secondes

  • "tm_min" - minutes

  • "tm_hour" - heure

  • "tm_mday" - jour du mois

    Les mois commencent à 0 (Jan) à 11 (Dec) et les jours de la semaine commencent à 0 (Dimanche) à 6 (Samedi).

  • "tm_mon" - mois de l'année, commence par 0 pour Janvier

  • "tm_year" - Année depuis 1900

  • "tm_wday" - Jour de la semaine

  • "tm_yday" - Jour de l'année

  • "tm_isdst" - Est-ce que l'heure d'hiver a pris effet ?

Erreurs / Exceptions

Chaque appel à une fonction date/heure génèrera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Exemple 1. Exemple avec localtime()

<?php
$localtime = localtime();
$localtime_assoc = localtime(time(), true);
print_r($localtime);
print_r($localtime_assoc);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => 24
    [1] => 3
    [2] => 19
    [3] => 3
    [4] => 3
    [5] => 105
    [6] => 0
    [7] => 92
    [8] => 1
)

Array
(
    [tm_sec] => 24
    [tm_min] => 3
    [tm_hour] => 19
    [tm_mday] => 3
    [tm_mon] => 3
    [tm_year] => 105
    [tm_wday] => 0
    [tm_yday] => 92
    [tm_isdst] => 1
)

Précédent | Sommaire | Suivant
idate | Niveau supérieur | microtime


microtime

(PHP 3, PHP 4, PHP 5)

microtime -- Retourne le timestamp UNIX actuel avec les microsecondes

Description

mixed microtime ( [bool get_as_float] )

microtime() retourne le stimestamp Unix avec les microsecondes. Cette fonction est uniquement disponible sur les systèmes qui supportent la fonction gettimeofday().

Liste de paramètres

get_as_float

Lorsque cette fonction est appelée sans l'argument optionnel, elle retourne la chaîne "msec sec" avec sec qui est mesurée en secondes depuis le début de l'époque UNIX, (1er janvier 1970 00:00:00 GMT), et msec qui est le nombre de microsecondes de cette heure. Les deux parties de la chaîne sont retournées sous la forme de secondes.

Si le paramètre optionnel get_as_float est défini à TRUE alors microtime() retourne un nombre à virgule.

Historique

Version | Description
5.0.0 | Le paramètre get_as_float a été ajouté.

Exemples

Exemple 1. Durée d'exécution d'un script avec la fonction microtime()

<?php
/**
* Fonction simple identique à celle en PHP 5 qui va suivre
*/
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

$time_start = microtime_float();

// Attend pendant un moment
usleep(100);

$time_end = microtime_float();
$time = $time_end - $time_start;

echo "Ne rien faire pendant $time secondes\n";
?>

Exemple 2. Durée d'exécution d'un script en PHP 5

<?php
$time_start = microtime(true);

// Sleep for a while
usleep(100);

$time_end = microtime(true);
$time = $time_end - $time_start;

echo "Did nothing in $time seconds\n";
?>

Voir aussi

time()

Précédent | Sommaire | Suivant
localtime | Niveau supérieur | mktime


mktime

(PHP 3, PHP 4, PHP 5)

mktime -- Retourne le timestamp UNIX d'une date

Description

int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )

mktime() retourne un timestamp UNIX correspondant aux arguments fournis. Ce timestamp est un entier long, contenant le nombre de secondes entre le début de l'époque UNIX (1er Janvier 1970 00:00:00 GMT) et le temps spécifié.

Les arguments peuvent être omis, de droite à gauche, et tous les arguments manquants sont utilisés avec la valeur courante de l'heure et du jour.

Liste de paramètres

hour

L'heure.

minute

Les minutes

second

Les secondes.

month

Le nombre représentant le mois.

day

Le nombre représentant le jour.

year

L'année, peut être sur deux ou quatre chiffres, avec des valeurs allant de 0 à 69, correspondant au valeur 2000 à 2069 et 70 à 100, correspondant au valeur 1970 à 2000. Sur les systèmes où time_t un entier signé sur 32bits, ce qui est le plus courant de nos jours, la période valide pour year est quelque part près de 1901 et 2038, cependant, cette limitation n'est plus valable depuis PHP 5.1.0.

is_dst

Ce paramètre peut être mis à 1 si l'heure d'hiver est appliquée (DST), 0 si elle ne l'est pas, et -1 (par défaut) si on ne sait pas. Si l'on ne sait pas, PHP tente de le traiter lui-même. Ceci peut occasionner des résultats inattendus (mais néanmoins correct). Quelques temps sont invalides si DST est activé sur les systèmes où PHP fonctionne ou is_dist est défini à 1. Si DST est activé e.g. 2:00, tous les temps entre 2:00 et 3:00 sont invalides et la fonction mktime() retourne une valeur indéfinie (généralement une valeur négative). Quelques systèmes (e.g. Solaris 8) activent DST à minuit, donc, le temps 0:30 du jour lorsque DST est activé est évalué à 23:30 du jour précédent.

Note : Depuis PHP 5.1.0, ce paramètre est déprécié. Comme résultat, le nouveau gestionnaire de fuseau horaire doit être utilisé à la place.

Valeurs de retour

mktime() retourne un timestamp Unix des arguments donnés. Si les arguments ne sont pas valides, la fonction retournera FALSE (avant PHP 5.1, elle retournait -1).

Erreurs / Exceptions

Chaque appel à une fonction date/heure génèrera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
3.0.10 | Ajout du paramètre is_dst
5.1.0 | Le paramètre is_dst est déprécié. Fait que la fonction retourne FALSE en cas d'erreur, au lieu de -1.
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Exemple 1. 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 2. Dernier jour du mois suivant

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 Fevrier 2000 est: 29".

<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("Le dernier jour de Fevrier 2000 est : %d", $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("Le dernier jour de Fevrier 2000 est : %d", $lastday);
?>

Notes

Attention

Avant PHP 5.1.0, les valeurs négatives des timestamp ne sont pas supportées sous toutes les versions actuelles de Microsoft Windows. De ce fait, l'intervalle valide pour les années est de 1970 à 2038, inclus.

Voir aussi

gmmktime()
date()
time()

Précédent | Sommaire | Suivant
microtime | Niveau supérieur | strftime


strftime

(PHP 3, PHP 4, PHP 5)

strftime -- Formate une date/heure locale avec la configuration locale

Description

string strftime ( string format [, int timestamp] )

strftime() retourne la date sous la forme d'une chaîne formatée conformément au format format, en utilisant le timestamp timestamp donné. Si le timestamp est omis, la date actuelle est utilisée. Les mois et jours de la semaine, et toutes les chaînes dépendantes de la langue sont fixées avec la commande setlocale().

Tous les caractères modificateurs ne sont pas toujours supportés par toutes les bibliothèques C. Dans ce cas, ils ne seront pas supportés par PHP non plus. De plus, toutes les plates-formes ne supportent pas les timestamps négatifs, et vos dates pourraient être limitées par le début de l'époque Unix. Cela signifie que %e, %T, %R et %D (et peut être d'autres) et les dates antérieures au 1er Janvier 1970 ne fonctionneront pas sous Windows, sur certaines distributions de Linux, et sur certains systèmes d'exploitation. Pour Windows, une liste complète des options de conversion est disponible sur le site de MSDN.

Liste de paramètres

format

Les caractères suivants sont utilisés pour spécifier le format de la date :

  • %a - nom abrégé du jour de la semaine (local)

  • %A - nom complet du jour de la semaine (local)

  • %b - nom abrégé du mois (local)

  • %B - nom complet du mois (local)

  • %c - représentation préférée pour les dates et heures, en local

  • %C - numéro de siècle (l'année, divisée par 100 et arrondie entre 00 et 99)

  • %d - jour du mois en numérique (intervalle 01 à 31)

  • %D - identique à %m/%d/%y

  • %e - numéro du jour du mois. Les chiffres sont précédés d'un espace (de ' 1' à '31')

  • %g - identique à %G, sur 2 chiffres

  • %G - L'année sur 4 chiffres correspondant au numéro de semaine (voir %V). Même format et valeur que %Y, excepté que si le numéro de la semaine appartient à l'année précédente ou suivante, l'année courante sera utilisé à la place

  • %h - identique à %b

  • %H - heure de la journée en numérique, et sur 24-heures (intervalle de 00 à 23)

  • %I - heure de la journée en numérique, et sur 12- heures (intervalle 01 à 12)

  • %j - jour de l'année, en numérique (intervalle 001 à 366)

  • %m - mois en numérique (intervalle 1 à 12)

  • %M - minute en numérique

  • %n - caractère de nouvelle ligne

  • %p - soit `am' ou `pm' en fonction de l'heure absolue, ou en fonction des valeurs enregistrées en local

  • %r - l'heure au format a.m. et p.m

  • %R - l'heure au format 24h

  • %S - secondes en numérique

  • %t - tabulation

  • %T - l'heure actuelle (égal à %H:%M:%S)

  • %u - le numéro de jour dans la semaine, de 1 à 7. (1 représente Lundi)

    Avertissement

    Les systèmes Sun Solaris semblent commencer le Dimanche à 1 malgré le fait que le standard ISO 9889:1999 (actuellement le standard C) spécifie clairement le début de la semaine à Lundi.

  • %U - numéro de semaine dans l'année, en considérant le premier dimanche de l'année comme le premier jour de la première semaine

  • %V - le numéro de semaine comme défini dans l'ISO 8601:1988, sous forme décimale, de 01 à 53. La semaine 1 est la première semaine qui a plus de 4 jours dans l'année courante, et dont Lundi est le premier jour. (Utilisez %G ou %g pour les éléments de l'année qui correspondent au numéro de la semaine pour le timestamp donné.)

  • %W - numéro de semaine dans l'année, en considérant le premier lundi de l'année comme le premier jour de la première semaine

  • %w - jour de la semaine, numérique, avec Dimanche = 0

  • %x - format préféré de représentation de la date sans l'heure

  • %X - format préféré de représentation de l'heure sans la date

  • %y - l'année, numérique, sur deux chiffres (de 00 à 99)

  • %Y - l'année, numérique, sur quatre chiffres

  • %Z ou %z - fuseau horaire, ou nom ou abréviation

  • %% - un caractère `%' littéral

timestamp

Le paramètre optionnel timestamp est un timestamp Unix de type entier qui vaut par défaut l'heure courante locale si le paramètre timestamp n'est pas fourni. En d'autres termes, il faut par défaut la valeur de la fonction time().

Erreurs / Exceptions

Chaque appel à une fonction date/heure génèrera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

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

?>

Notes

Note : %G et %V, qui sont basées sur la semaine ISO 8601:1988, peut conduire à des résultat inattendus (bien que corrects) si le système de numérotation n'est pas connu. Voir l'exemple %V de cette page.

Voir aussi

setlocale()
mktime()
strptime()
le groupe de spécifications de strftime()

Précédent | Sommaire | Suivant
mktime | Niveau supérieur | strptime


strptime

(PHP 5 >= 5.1.0RC1)

strptime -- Analyse une date générée par strftime()

Description

array strptime ( string date, string format )

strptime() retourne un tableau après avoir analysé date, ou FALSE en cas d'erreur.

Les noms des mois et jours de la semaine dépendent de la configuration locale, choisie avec setlocale() (LC_TIME).

Note : Cette fonction n'est pas implémentée sous Windows.

Liste de paramètres

date (string)

La chaîne à analyser (e.g. retourné par strftime())

format (string)

Le format utilisé par date (e.g. le même que celui qui a été utilisé par strftime()).

Pour plus d'informations sur les spécificateurs de formats, voyez la fonction strftime().

Valeurs de retour

Retourne un tableau, ou FALSE en cas d'erreur.

Tableau 1. Les paramètres suivants sont retournés dans le tableau

Paramètre | Description
tm_sec | Secondes après la minute (0-61)
tm_min | Minutes après l'heure (0-59)
tm_hour | Heure depuis minuit (0-23)
tm_mday | Jour du mois (1-31)
tm_mon | Mois depuis janvier (0-11)
tm_year | Années depuis 1900
tm_wday | Jours depuis dimanche (0-6)
tm_yday | Jours depuis le 1er janvier (0-365)
unparsed | La partie de date qui n'a pas été reconnue par l'analyseur avec le format spécifié.

Exemples

Exemple 1. Exemple avec strptime()

<?php
$format = '%d/%m/%Y %H:%M:%S';
$strf = strftime($format);

echo "$strf\n";

print_r(strptime($strf, $format));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

03/10/2004 15:54:19

Array
(
    [tm_sec] => 19
    [tm_min] => 54
    [tm_hour] => 15
    [tm_mday] => 3
    [tm_mon] => 9
    [tm_year] => 104
    [tm_wday] => 0
    [tm_yday] => 276
    [unparsed] =>
)

Voir aussi

strftime()

Précédent | Sommaire | Suivant
strftime | Niveau supérieur | strtotime


strtotime

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

strtotime -- Transforme un texte anglais en timestamp

Description

int strtotime ( string time [, int now] )

strtotime() essaye de lire une date au format anglais US dans la chaîne time, et de la transformer en timestamp Unix (le nombre de secondes depuis le 1er Janvier 1970 à 00:00:00 GMT), relativement au timestamp now, ou à la date courante si ce dernier est omis.

Cette fonction devrait utiliser la variable d'environnement TZ (si disponible) pour calculer le timestamp. Depuis PHP 5.1.0, il y a une façon simple de définir un fuseau horaire à utiliser avec toutes les fonctions de date/heure. Le processus est expliqué dans la page du manuel de la fonction date_default_timezone_get().

Note : Si l'année est spécifiée sur deux chiffres, les valeurs entre 0 et 69 correspondent aux années entre 2000 et 2069 et les valeurs entre 70 et 100 correspondent aux années entre 1970 et 2000.

Liste de paramètres

time

La chaîne à analyser, en accord avec la syntaxe des dates GNU. Avant PHP 5.0.0, les microsecondes ne sont pas autorisées dans ce paramètre, depuis PHP 5.0.0, elles sont autorisées mais ignorées.

now

Le timestamp utilisé pour calculer la valeur retournée.

Valeurs de retour

Retourne un timestamp en cas de succès, FALSE sinon. Avant PHP 5.1.0, cette fonction retournait -1 en cas d'échec.

Erreurs / Exceptions

Chaque appel à une fonction date/heure génèrera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version | Description
5.1.0 | La fonction retourne maintenant FALSE en cas d'échec, au lieu de -1.
5.1.0 | Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Exemple 1. Exemple avec strtotime()

<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>

Exemple 2. Vérification d'erreur

<?php
$str = 'Pas bon';

// Avant PHP 5.1.0, vous devez comparer avec  -1, au lieu de false
if (($timestamp = strtotime($str)) === false) {
   echo "La chaîne ($str) est boguée";
} else {
   echo "$str == " . date('l dS \o\f F Y h:i:s A', $timestamp);
}
?>

Notes

Avertissement

En PHP 5 supérieur à 5.0.2, "now" et les autres valeurs de temps relatives sont incorrectement calculées depuis minuit du jour courant. Ce comportement diffère des versions antérieures où elles étaient correctement calculées depuis l'heure courante.

Avertissement

Dans les versions antérieures à PHP 4.4.0, "next" est calculé de façon incorrecte comme +2. Une solution consiste à utiliser "+1".

Note : L'intervalle de validité d'un timestamp va du Vendredi 13 Décembre 1901 20:45:54 GMT au Mardi 19 Janvier 2038 03:14:07 GMT. (Cela correspond aux dates maximales et minimales pour un entier de 32 bits signé.) Toutes les plates-formes ne supportent pas les timestamp négatifs et dans ce cas, l'intervalle de date sera limitée à environs l'époque Unix. Cela signifie que les dates antérieures au 1 Janvier 1970 ne fonctionneront pas sous Windows, quelques distributions Linux et quelques autres systèmes. PHP 5.1.0 ainsi que les versions plus récentes outrepassent cette limitation.

Voir aussi

strptime()

Précédent | Sommaire | Suivant
strptime | Niveau supérieur | time


time

(PHP 3, PHP 4, PHP 5)

time -- Retourne le timestamp UNIX actuel

Description

int time ( void )

time() retourne l'heure courante, mesurée en secondes depuis le début de l'époque UNIX, (1er janvier 1970 00:00:00 GMT).

Exemples

Exemple 1. Exemple avec time()

<?php
$nextWeek = time() + (7 * 24 * 60 * 60);
// 7 jours; 24 heures; 60 minutes; 60secondes
echo 'Aujourd\'hui :       '. date('Y-m-d') ."\n";
echo 'Semaine prochaine : '. date('Y-m-d', $nextWeek) ."\n";
// ou en utilisant strtotime():
echo 'Semaine prochaine : '. date('Y-m-d', strtotime('+1 week')) ."\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Aujourd'hui :       2005-03-30
Semaine prochaine : 2005-04-06
Semaine prochaine : 2005-04-06

Notes

Astuce : Un timestamp représentant le début de la demande est disponible dans la variable $_SERVER['REQUEST_TIME'] depuis PHP 5.1.

Voir aussi

date()
microtime()

Précédent | Sommaire | Suivant
strtotime | Niveau supérieur | timezone_abbreviations_list


DBA

Manuel PHP
Précédent Suivant

XXIV. DBA

Introduction

Ces fonctions constituent l'interface avec les bases de type Berkeley.

C'est une couche générale pour plusieurs bases de données sur fichiers. En tant que telles, les fonctionnalités sont limitées à une partie des fonctionnalités des bases de données modernes, comme Sleepycat Software's DB2 (à ne pas confondre avec IBM's DB2 software, qui fonctionne avec ODBC).

Pré-requis

Le comportement de certaines fonctions dépend de la base de données utilisée. Par exemple dba_optimize() et dba_sync() n'auront pas le même effet d'une base à l'autre.

Lors de l'utilisation de la fonction dba_open() ou de dba_popen(), une des bibliothèques suivantes doit être fournie comme argument. La liste complète des bibliothèques supportées par votre configuration est disponible avec la fonction phpinfo(). (Pour inclure le support de l'une de ces bibliothèques, ajoutez l'option de configuration --with-XXXX).

Tableau 1. Liste des bibliothèques DBA

Bibliothèque | Notes
dbm | Dbm est la plus ancienne des base de données de type Berkeley. Il vaut mieux l'éviter, si possible. Les fonctions de compatibilités codées dans DB2 et gdbm ne sont pas supportées, car elles ne sont compatibles qu'au niveau du code source et ne peuvent pas gérer le format dbm originel.
ndbm | ndbm est un nouveau type de dbm plus flexible. Il a cependant la majorité des limitations du genre. (il est donc déconseillé)
gdbm | gdbm est la base dbm GNU.
db2 | db2 est DB2 de Sleepycat Software. Elle se décrit comme un "ensemble d'outils qui fournissent une base de données performante, tant pour les applications indépendantes que pour le client/serveur".
db3 | DB3 est le DB3 de Sleepycat Software.
db4 | DB4 est le Sleepycat Software's DB4. Elle est disponible depuis PHP 4.3.2.
cdb | cdb est "un package rapide, robuste, léger pour créer et lire des bases de données constantes". C'est l'auteur de qmail qui l'a écrit, et elle est disponible ici. Puisque c'est une base constante, elle ne supporte que la lecture. Mais depuis PHP 4.3.0, le support de l'écriture a été ajouté (mais pas celui de la modification), grâce aux bibliothèques internes de cdb.
cdb_make | Depuis PHP 4.3.0, la création de fichier cdb est supportée, lorsque la bibliothèque cdb, distribuée avec PHP est utilisée.
flatfile | Depuis PHP 4.3.0, et pour assurer la compatibilité avec le gestionnaire dbm qui est obsolète et doit être évité, PHP supporte aussi un gestionnaire de fichiers. Il est recommandé de l'utiliser lorsque vous devez accéder à des fichiers au format dbm. Cela arrive lorsque vous ne pouvez pas trouver les bibliothèques dbm pour compiler PHP avec.
inifile | Ceci est disponible depuis PHP 4.3.3 pour pouvoir modifier les fichiers php.ini depuis les scripts PHP. Lorsque vous travaillez avec des fichiers ini, vous pouvez passer des tableaux de la forme array(0 => groupe, 1=>nom_valeur) ou des chaînes de la forme "[groupe]nom_valeur" où groupe est optionnel. Comme les fonctions dba_firstkey() et dba_nextkey() retournent des représentations de la clé au format chaîne, il existe une nouvelle fonction, dba_key_split(), disponible depuis PHP 5 qui permet de convertir la chaîne de caractères de clés en tableau de clés sans perdre FALSE.
qdbm | Disponible depuis PHP 5.0.0. La bibliothèque qdbm peut être téléchargée sur http://qdbm.sourceforge.net.

Lors de l'utilisation de la fonction dba_open() ou de dba_popen(), une des bibliothèques suivantes doit être fournie comme argument. La liste complète des bibliothèques supportées par votre configuration est disponible avec la fonction phpinfo().

Installation

En utilisant l'option de compilation --enable-dba=shared, vous pouvez compiler un module dynamique qui activera le support des bases de données de style DBM pour PHP. Vous devez aussi ajouter le support d'au moins l'un des gestionnaires suivants, en spécifiant l'option de configuration --with-XXXX lors de la configuration de PHP.

Avertissement

Après avoir configuré et compilé PHP, vous devez exécuter les test suivants à partir de la ligne de commande : php run-tests.php ext/dba. Cela montre si votre combinaison de descripteurs 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.

Tableau 2. Gestionnaires DBA supportés

Gestionnaire | Option de configuration
dbm Pour activer le support de dbm, ajoutez --with-dbm[=DIR].

Note : dbm est une surcouche qui aboutit souvent à des échecs. Ainsi, vous ne devez utiliser dbm que si vous êtes sûrs qu'il fonctionne et que vous avez besoin de ce format.

ndbm Pour activer le support de ndbm, ajoutez --with-ndbm[=DIR].

Note : ndbm est une surcouche qui aboutit souvent à des échecs. Ainsi, vous ne devez utiliser ndbm que si vous êtes sûrs qu'il fonctionne et que vous avez besoin de ce format.

gdbm | Pour activer le support de gdbm, ajoutez --with-gdbm[=DIR].
db2 Pour activer le support de db2, ajoutez --with-db2[=DIR].

Note : db2 entre en conflit avec db3 et db4.

db3 Pour activer le support de db3, ajoutez --with-db3[=DIR].

Note : db3 entre en conflit avec db2 et db4.

db4 Pour activer le support de db4, ajoutez --with-db4[=DIR].

Note : db4 entre en conflit avec db2 et db3.

Note : Ceci a été introduit avec PHP 4.3.2. Dans des versions précédentes de PHP, vous devez utiliser --with-db3=DIR où DIR pointe vers le répertoire ou se situe la bibliothèque db4. Il n'est pas possible d'utiliser des versions de db supérieures à 4.1 avec des versions de PHP antérieures à 4.3.0. De même, les bibliothèques db avec des versions allant de 4.1 à 4.1.24 ne peuvent être utilisées avec aucune version de PHP.

cdb Pour activer le support de cdb, ajoutez --with-cdb[=DIR].

Note : Depuis PHP 4.3.0, vous pouvez omettre d'utiliser DIR, afin d'exploiter la bibliothèque cdb fournie avec PHP, qui ajoute un gestionnaire cdb_make, permet la création de fichier cdb et permet l'accès aux fichiers cbd via le réseau avec les flux de PHP.

flatfile Pour activer le support des fichiers, ajoutez --with-flatfile.

Note : Ceci a été ajouté à PHP 4.3.0 pour assurer la compatibilité avec l'extension dbm qui est obsolète. Utilisez ce gestionnaire seulement quand vous ne pouvez installer aucun autre gestionnaire et que vous ne pouvez pas utiliser le gestionnaire cdb intégré.

inifile Pour activer le support de inifile, ajoutez l'option de compilation --with-inifile.

Note : Cette option a été ajoutée avec PHP 5.0.0 et permet de lire et écrire dans des fichiers d'initialisation de type Microsoft (.ini), comme le php.ini par exemple.

qdbm Pour activer le support de qdbm, ajoutez l'option de compilation --with-qdbm[=DIR].

Note : qdbm entre en conflit avec dbm et gdbm.

Note : Cette option a été ajoutée avec PHP 5.0.0. La bibliothèque qdbm peut être téléchargée sur http://qdbm.sourceforge.net.

Note : Jusqu'en PHP 4.3.0, il était possible d'utiliser simultanément les gestionnaires db2 et db3 mais juste avec un seul en interne. Cela signifie que vous ne pouvez pas avoir les deux formats de fichiers. Depuis PHP 5.0.0, une vérification est faite lors de la configuration pour éviter ces problèmes.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Les fonctions dba_open() et dba_popen() retourne une ressource qui représente la base de données ouverte, et qui est utilisées par toutes les autres fonctions dba.

Constantes pré-définies

Cette extension ne définit aucune constante.

Exemples

Exemple 1. Exemple DBA (1)

<?php

$id = dba_open ("/tmp/test.db", "n", "db2");

if (!$id) {
    echo "dba_open a échoué\n";
    exit;
}

dba_replace ("cle", "Ceci est un exemple!", $id);

if (dba_exists ("cle", $id)) {
    echo dba_fetch ("cle", $id);
    dba_delete ("cle", $id);
}

dba_close ($id);
?>

DBA gère les données binaires et n'a pas de limites arbitraires. Elle hérite de toutes les limites de la base sous-jacente.

Toutes les bases de données sur fichiers doivent fournir un moyen de changer le mode d'accès au fichier d'une base et, si possible, de toutes les bases. Le mode d'accès est généralement passé en quatrième argument à dba_open() ou dba_popen().

Vous pouvez accéder à toutes les entrées d'une base d'une manière linéaire, avec les fonctions dba_firstkey() et dba_nextkey(). Vous ne devez pas modifier une base lorsque vous la traversez ainsi.

Exemple 2. Passer en revue une base

<?php

// ouverture de la base

$key = dba_firstkey($id);

while ($key != false) {
    if ($quelquechose) {
    // conserver la clé pour faire d'autres opérations plus tard
        $handle_later[] = $key;
    }
    $key = dba_nextkey($id);
}

foreach ($handle_later as $val) {
    dba_delete($val, $id);
}

?>

Table des matières
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

Précédent | Sommaire | Suivant
dbplus_xunlockrel | Niveau supérieur | dba_close


dba_close

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_close -- Ferme une base DBA

Description

void dba_close ( resource handle )

dba_close() ferme le lien établi avec la base et libère toutes les ressources de handle.

Liste de paramètres

handle

Le gestionnaire de la base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

dba_open()
dba_popen()

Précédent | Sommaire | Suivant
DBA | Niveau supérieur | dba_delete


dba_delete

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_delete -- Efface une ligne dans une base DBA

Description

bool dba_delete ( string key, resource handle )

dba_delete() efface l'entrée spécifiée par la clé key, dans la base identifiée par handle.

Liste de paramètres

key

La clé de l'entrée à effacer.

handle

Le gestionnaire de la base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

dba_exists()
dba_fetch()
dba_insert()
dba_replace()

Précédent | Sommaire | Suivant
dba_close | Niveau supérieur | dba_exists


dba_exists

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_exists -- Vérifie qu'une clé DBA existe

Description

bool dba_exists ( string key, resource handle )

dba_exists() vérifie si la clé key existe dans la base identifiée par handle.

Liste de paramètres

key

La clé à vérifier.

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Retourne TRUE si la clé existe, FALSE sinon.

Voir aussi

dba_delete()
dba_fetch()
dba_insert()
dba_replace()

Précédent | Sommaire | Suivant
dba_delete | Niveau supérieur | dba_fetch


dba_fetch

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_fetch -- Lit les données liées à une clé DBA

Description

string dba_fetch ( string key, resource handle )

string dba_fetch ( string key, int skip, resource handle )

dba_fetch() lit les données spécifiées par la clé key dans la base identifiée par handle.

Liste de paramètres

key

La clé correspondant aux données.

Note : Losque 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 dba_key_split().

skip

Le nombre de paire clé-valeur que vous souhaitez ignorer lors de l'utilisation de bases cdb. Cette valeur sera ignorée pour toutes les autres bases de données qui ne supportent pas les clés multiples avec le même nom.

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Retourne la chaîne associée si la paire clé/valeur est trouvée, FALSE sinon.

Historique

Version | Description
4.3 | Le paramètre skip est disponible pour supporter les capacités cdb des clés multiples portant le même nom.

Voir aussi

dba_exists()
dba_delete()
dba_insert()
dba_replace()
dba_key_split()

Précédent | Sommaire | Suivant
dba_exists | Niveau supérieur | dba_firstkey


dba_firstkey

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_firstkey -- Lit la première clé DBA

Description

string dba_firstkey ( resource handle )

dba_firstkey() retourne la première clé de la base de données spécifiée par handle et y place le pointeur interne de clé. Cela permettra de traverser la base.

Liste de paramètres

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Retourne la clé en cas de succès, FALSE si une erreur survient.

Voir aussi

dba_nextkey()
dba_key_split()
Exemple 2 dans les exemples DBA

Précédent | Sommaire | Suivant
dba_fetch | Niveau supérieur | dba_handlers


dba_handlers

(PHP 4 >= 4.3.0, PHP 5)

dba_handlers -- Liste les gestionnaires DBA disponibles

Description

array dba_handlers ( [bool full_info] )

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. Par défaut vaut FALSE.

Valeurs de retour

Retourne un tableau de gestionnaires disponibles. Si full_info est défini à TRUE, le tableau sera associé avec les noms des gestionnaires en tant que clés, et les informations en tant que valeurs. Sinon, le résultat sera un tableau indexé par les noms des gestionnaires.

Note : Lorsque la bibliothèque interne cdb est utilisée, vous devez voir avec cdb and cdb_make.

Exemples

Exemple 1. Exemple avec dba_handlers()

<?php

echo "Gestionnaires DBA disponibles :\n";
foreach (dba_handlers(true) as $handler_name => $handler_version) {
  // clean the versions
  $handler_version = str_replace('$', '', $handler_version);
  echo " - $handler_name: $handler_version\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Gestionnaires DBA disponibles :
 - cdb: 0.75, Revision: 1.3.2.3
 - cdb_make: 0.75, Revision: 1.2.2.4
 - db2: Sleepycat Software: Berkeley DB 2.7.7: (08/20/99)
 - inifile: 1.0, Revision: 1.6.2.3
 - flatfile: 1.0, Revision: 1.5.2.4

Précédent | Sommaire | Suivant
dba_firstkey | Niveau supérieur | dba_insert


dba_insert

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_insert -- Insère une entrée DBA

Description

bool dba_insert ( string key, string value, resource handle )

dba_insert() insère l'entrée décrite par la clé key et la valeur value dans la base spécifiée par handle.

Liste de paramètres

key

La clé de l'entrée à insérer. Si cette clé existe déjà dans la base de données, cette fonction échouera. Utilisez la fonction dba_replace() si vous devez remplacer une clé existente.

value

La valeur à insérer.

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

dba_exists()
dba_delete()
dba_fetch()
dba_replace()

Précédent | Sommaire | Suivant
dba_handlers | Niveau supérieur | dba_key_split


dba_key_split

(PHP 5)

dba_key_split -- Transforme une représentation de clé DBA par chaîne en une représentation par tableau

Description

mixed dba_key_split ( mixed key )

dba_key_split() transforme une représentation de clé DBA par chaîne en une représentation par tableau.

Liste de paramètres

key

La clé sous forme de chaîne de caractères.

Valeurs de retour

Retourne un tableau sous la forme array(0 => group, 1 => nom_valeur). Cette fonction retourne FALSE si key vaut NULL ou FALSE.

Voir aussi

dba_firstkey()
dba_nextkey()
dba_fetch()

Précédent | Sommaire | Suivant
dba_insert | Niveau supérieur | dba_list


dba_list

(PHP 4 >= 4.3.0, PHP 5)

dba_list -- Liste tous les fichiers de bases de données DBA ouverts

Description

array dba_list ( void )

dba_list() liste tous les fichiers de bases de données DBA ouverts.

Valeurs de retour

Un tableau associatif, sous la forme idressource => nomfichier.

Précédent | Sommaire | Suivant
dba_key_split | Niveau supérieur | dba_nextkey


dba_nextkey

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_nextkey -- Lit la clé DBA suivante

Description

string dba_nextkey ( resource handle )

dba_nextkey() retourne la clé suivante, dans la base identifiée par handle et incrémente le pointeur de clé.

Liste de paramètres

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Retourne la clé en cas de succès, FALSE si une erreur survient.

Voir aussi

dba_firstkey()
dba_key_split()
Exemple 2 dans les exemples DBA

Précédent | Sommaire | Suivant
dba_list | Niveau supérieur | dba_open


dba_open

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_open -- Ouvre une base de données DBA

Description

resource dba_open ( string path, string mode [, string handler [, mixed ...]] )

dba_open() établit une connexion à la base repéré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.

De plus, vous pouvez choisir la méthode de verrouillage de la base avec le caractère suivant. Utilisez l pour vérrouiller 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 requiert 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 :

Tableau 1. 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 | illegal | illegal | illegal | illegal
mode = "wl" | attente | FALSE | attente | FALSE | illegal | illegal | illegal | illegal
mode = "rd" | illegal | illegal | illegal | illegal | ok | ok | attente | FALSE
mode = "wd" | illegal | illegal | illegal | illegal | 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 retourn FALSE.
illegal: vous ne devez pas mélanger les options "l" et "d" pour le paramètre mode.

handler

Le nom du gestionnaire qui doit être utilisé pour accéder à path. C'est passé à tous les paramètres facultatifs donnés à dba_open() et peut agir au nom d'eux.

Valeurs de retour

Retourne un gestionnaire positif en cas de succès, ou FALSE si une erreur survient.

Historique

Version | Description
4.3.0 | il est possible d'ouvrir la base de données à travers le réseau. Toutefois, dans le cas où des connexions sockets seront utilisées (via HTTP ou FTP), la connexion sera verrouillée, et non pas la ressource. C'est important de le savoir pour comprendre que dans ce cas, le verrouillage sera ignoré, et d'autres solutions doivent être trouvées.
4.3.0 | Le paramètre de verrouillage mode et les options "l", "d", "-" et "t" ont été ajoutées. Dans les versions de PHP antérieures à la PHP 4.3.0, vous deviez utiliser des sémaphores pour éviter les accès concurents à la base de données, hormis pour celles de type GDBM. Voyez le chapitre sur les sémaphores System V.
before 4.3.5 | le mode 'c' est inopérant pour de nombreux gestionnaires internes, et tronque la base au lieu d'ajouter les données à la base existante. De plus, dbm et ndbm échoue en mode 'c' dans des configurations typiques (impossible à corriger).

Voir aussi

dba_popen()
dba_close()

Précédent | Sommaire | Suivant
dba_nextkey | Niveau supérieur | dba_optimize


dba_optimize

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_optimize -- Optimise une base DBA

Description

bool dba_optimize ( resource handle )

dba_optimize() optimise la base de données identifiée par handle.

Liste de paramètres

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

dba_sync()

Précédent | Sommaire | Suivant
dba_open | Niveau supérieur | dba_popen


dba_popen

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_popen -- Ouvre une connexion persistante à une base de données DBA

Description

resource dba_popen ( string path, string mode [, string handler [, mixed ...]] )

dba_popen() établit une connexion persistante à la base repérée par path avec le mode mode, en utilisant l'identifiant handler.

Liste de paramètres

path

Chemin sur votre système de fichiers.

mode

Il vaut r pour lecture seule, w pour lecture/écriture, c pour lecture/écriture, et création si la base n'existe pas, et n pour création, écrasement, et accès en lecture/écriture.

handler

le nom du gestionnaire qui doit être utilisé pour accéder à path. Le gestionnaire reçoit tous les paramètres supplémentaires passés à dba_popen().

Valeurs de retour

Retourne un gestionnaire positif en cas de succès, ou FALSE si une erreur survient.

Voir aussi

dba_open()
dba_close()

Précédent | Sommaire | Suivant
dba_optimize | Niveau supérieur | dba_replace


dba_replace

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_replace -- Remplace ou insère une ligne DBA

Description

bool dba_replace ( string key, string value, resource handle )

dba_replace() remplace ou insère une entrée, pour la clé key et avec la valeur value dans la base identifiée par handle.

Liste de paramètres

key

La clé de l'entrée à remplacer.

value

La valeur utilisée pour le remplacement.

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

dba_exists()
dba_delete()
dba_fetch()
dba_insert()

Précédent | Sommaire | Suivant
dba_popen | Niveau supérieur | dba_sync


dba_sync

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_sync -- Synchronise une base de données DBA

Description

bool dba_sync ( resource handle )

dba_sync() synchronise la base de données spécifiée par handle. Si accepté, cela va probablement lancer une opération de réécriture physique du fichier.

Liste de paramètres

handle

Le gestionnaire de base de données, retourné par dba_open() ou dba_popen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

dba_optimize()

Précédent | Sommaire | Suivant
dba_replace | Niveau supérieur | dBase


dBase

Manuel PHP
Précédent Suivant

XXV. dBase

Introduction

Ces fonctions vous permettront d'accéder aux enregistrements d'une base au format dBase (.dbf).

Les fichiers dBase sont de simples fichiers séquentiels d'enregistrements de longueur fixe. Les enregistrements sont ajoutés à la fin du fichier et les enregistrements supprimés sont conservés jusqu'à l'appel de dbase_pack().

Les types disponibles des champs dBase sont :

Tableau 1. Types de champs disponibles

Champ | Type dBase | Format | Informations addionnelles
M | Memo | n/a | Ce type n'est pas supporté par PHP ; ce type de champ sera donc ignoré
D | Date | YYYYMMDD | La longueur de ce champ est limitée à 8
N | Number | Un nombre | Vous devez déclarer une longueur et une précision (le nombre de chiffres après le point décimal).
C | String | Une chaîne de caractères | Vous devez déclarer une longueur. Lors de la récupération de données, la chaîne sera compléter par la droite par des espaces pour arriver à la longueur spécifiée.
L | Boolean | T ou Y pour TRUE, F ou N pour FALSE | Stocké et retourné en tant qu'entier (1 ou 0)
F | Float | Une valeur à virgule flottante | Le support pour ce type de champ a été ajouté dans PHP 5.2.0

Avertissement

dBase ne permet pas l'utilisation d'index, de "memo fields", ni le blocage de la base. Deux processus de serveurs web différents modifiant le même fichier dBase risquent de rendre votre base de données incohérente.

Nous vous recommandons de ne pas utiliser les fichiers dBase comme base de données de production. Choisissez n'importe quel serveur SQL à la place. MySQL et Postgres sont des choix classiques avec PHP. Le support de dBase ne se justifie ici que pour vous permettre d'importer et d'exporter des données depuis et vers votre base de données issues du web, car ce format de fichier est communément accepté par les feuilles et assistants personnes type Windows.

Installation

Pour activer la bibliothèque dBase fournie avec PHP, vous devez compiler PHP avec l'option --enable-dbase.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Exemples

La plupart des exemples dans 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().

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
dbase_add_record -- Ajoute un enregistrement dans une base 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

Précédent | Sommaire | Suivant
dba_sync | Niveau supérieur | dbase_add_record


dbase_add_record

(PHP 3, PHP 4, PHP 5)

dbase_add_record -- Ajoute un enregistrement dans une base dBase

Description

bool dbase_add_record ( int dbase_identifier, array record )

dbase_add_record() ajoute les données fournies dans la base de données dBase spécifiée.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

record

Un tableau de données indexé. Le nombre d'éléments doit être égal au nombre de champs dans la base de données, sinon 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, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
dBase | Niveau supérieur | dbase_close


dbase_close

(PHP 3, PHP 4, PHP 5)

dbase_close -- Ferme une base dBase

Description

bool dbase_close ( int dbase_identifier )

dbase_close() ferme la base associée à dbase_identifier.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
dbase_add_record | Niveau supérieur | dbase_create


dbase_create

(PHP 3, PHP 4, PHP 5)

dbase_create -- Crée une base de données dBase

Description

int dbase_create ( string filename, array fields )

dbase_create() crée une base de données dBase dans le fichier filename, et avec les champs fields.

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note : Cette fonction est affectée par la directive de configuration open_basedir.

Liste de paramètres

filename

Le nom de la base de données. Il peut être un chemin relatif ou absolu vers le fichier où dBase stockera vos données.

fields

Un tableau de tableaux, chaque tableau décrit le format d'un champ de la base de données. Chaque champ est constitué d'un nom, d'un caractère indiquant le type du champ et optionnellement, une longueur et une précision.

Note : Les noms des champs sont limités en longueur et ne doivent pas exécédés 10 caractères.

Valeurs de retour

Retourne un identifiant de lien à la base de données si la base de données a été créée avec succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Création d'un fichier de base de données dBase

<?php

// Base de données "definition"
$def = array(
  array("date",     "D"),
  array("name",     "C",  50),
  array("age",      "N",   3, 0),
  array("email",    "C", 128),
  array("ismember", "L")
);

// Création
if (!dbase_create('/tmp/test.dbf', $def)) {
  echo "Erreur, impossible de créer la base de données\n";
}

?>

Voir aussi

dbase_open()
dbase_close()

Précédent | Sommaire | Suivant
dbase_close | Niveau supérieur | dbase_delete_record


dbase_delete_record

(PHP 3, PHP 4, PHP 5)

dbase_delete_record -- Efface un enregistrement dans une base dBase

Description

bool dbase_delete_record ( int dbase_identifier, int record_number )

dbase_delete_record() marque l'enregistrement record pour l'effacement, dans la base dbase_identifier.

Note : Pour effacer réellement l'enregistrement de la base de données, vous devez appeler la fonction dbase_pack().

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

record_number

Un entier compris entre 1 et le nombre maximal d'enregistrements dans la base de données (tel que retourné par la fonction dbase_numrecords()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

dbase_add_record()
dbase_replace_record()

Précédent | Sommaire | Suivant
dbase_create | Niveau supérieur | dbase_get_header_info


dbase_get_header_info

(PHP 5)

dbase_get_header_info -- Récupère des informations d'en-tête d'une base de données dBase

Description

array dbase_get_header_info ( int dbase_identifier )

dbase_get_header_info() retourne des informations sur la structure des colonnes de la base de données référencée par dbase_identifier.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Un tableau indexé avec une entrée pour chaque colonne de la base de données. Le tableau indexé commence à 0.

Chaque élément du tableau contient un tableau associatif contenant les informations sur les colonnes, comme décrit ici :

name

Le nom de la colonne

type

Le nom lisible du type de la colonne (i.e. date, boolean, etc.)

length

Le nombre d'octets que cette colonne peut contenir

precision

Le nombre de décimales pour la colonne

format

Un format printf() suggéré pour la colonne

offset

La position de la colonne depuis la début de la ligne

Si les informations d'en-têtes de la base de données ne peuvent pas être lues, FALSE est retourné.

Exemples

Exemple 1. Affiche les informations d'en-têtes pour un fichier de base de données dBase

<?php
// Chemin vers le fichier dBase
$db_path = "/tmp/test.dbf";

// Ouvre le fichier dBase
$dbh = dbase_open($db_path, 0)
or die("Erreur ! Impossible d'ouvrir le fichier dBase '$db_path'.");

// Récupération des informations des colonnes
$column_info = dbase_get_header_info($dbh);

// Affichage des informations
print_r($column_info);
?>

Précédent | Sommaire | Suivant
dbase_delete_record | Niveau supérieur | dbase_get_record_with_names


dbase_get_record_with_names

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

dbase_get_record_with_names -- Lit un enregistrement dans une base dBase, sous la forme d'un tableau associatif

Description

array dbase_get_record_with_names ( int dbase_identifier, int record_number )

dbase_identifier retourne les données de l'enregistrement record dans un tableau associatif.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

record_number

L'index de l'enregistrement.

Valeurs de retour

Un tableau associatif avec l'enregistrement. Ceci inclut également une clé nommée deleted qui est définie à 1 si l'enregistrement a été marqué pour effacement (voir dbase_delete_record()).

Chaque champ est converti en un type PHP approprié, excepté :

  • Les dates sont laissées en tant que chaînes de caractères.

  • Les entiers qui peuvent causés un dépacement de mémoire tampon (> 32 bits) sont retournés sous forme de chaînes de caractères.

En cas d'erreur, dbase_get_record_with_names() retourne FALSE.

Exemples

Exemple 1. Liste de 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()

Précédent | Sommaire | Suivant
dbase_get_header_info | Niveau supérieur | dbase_get_record


dbase_get_record

(PHP 3, PHP 4, PHP 5)

dbase_get_record -- Lit un enregistrement dans une base dBase

Description

array dbase_get_record ( int dbase_identifier, int record_number )

dbase_get_record() retourne les données de l'enregistrement record dans un tableau.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

record_number

L'index de l'enregistrement.

Valeurs de retour

Un tableau indexé avec l'enregistrement. Ce tableau inclut également une clé associée nommée deleted qui est définie à 1 si l'enregistrement a été marqué pour effacement (voir dbase_delete_record()).

Chaque champ est converti en un type PHP approprié, excepté :

  • Les dates sont laissées en tant que chaîne de caractères.

  • Les entiers qui peuvent causés un dépacement de mémoire tampon (> 32 bits) sont retournés sous forme de chaînes de caractères.

En cas d'erreur, dbase_get_record() retourne FALSE.

Voir aussi

dbase_get_record_with_names()

Précédent | Sommaire | Suivant
dbase_get_record_with_names | Niveau supérieur | dbase_numfields


dbase_numfields

(PHP 3, PHP 4, PHP 5)

dbase_numfields -- Compte le nombre de champs d'une base dBase

Description

int dbase_numfields ( int dbase_identifier )

dbase_numfields() retourne le nombre de champs (colonnes) de la base de données dbase_identifier.

Note : Les numéros de champs sont numérotés de 0 à dbase_numfields($db)-1, tandis que les numéros d'enregistrements sont numérotés de 1 à dbase_numrecords($db).

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Le nombre de champs de la base de données, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec dbase_numfields()

<?php

$rec = dbase_get_record($db, $recno);
$nf  = dbase_numfields($db);
for ($i = 0; $i < $nf; $i++) {
  echo $rec[$i], "\n";
}

?>

Voir aussi

dbase_numrecords()

Précédent | Sommaire | Suivant
dbase_get_record | Niveau supérieur | dbase_numrecords


dbase_numrecords

(PHP 3, PHP 4, PHP 5)

dbase_numrecords -- Compte le nombre d'enregistrements dans une base dBase

Description

int dbase_numrecords ( int dbase_identifier )

dbase_numrecords() retourne le nombre d'enregistrements (lignes) dans la base dbase_identifier.

Note : Les numéros de champ sont numérotés de 0 à dbase_numfields($db)-1, tandis que les numéros d'enregistrements sont numérotés de 1 à dbase_numrecords($db).

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Le nombre d'enregistrements dans la base de données ou FALSE si une erreur survient.

Exemples

Exemple 1. Lecture de tous les enregistrements de la base de données

<?php

// Ouverture en mode lecture seul
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
$record_numbers = dbase_numrecords($db);
for ($i = 1; $i <= $record_numbers; $i++) {
  // Faites quelque chose ici, pour chaque enregistrement
}
}

?>

Voir aussi

dbase_num_fields()

Précédent | Sommaire | Suivant
dbase_numfields | Niveau supérieur | dbase_open


dbase_open

(PHP 3, PHP 4, PHP 5)

dbase_open -- Ouvre une base dBase

Description

int dbase_open ( string filename, int mode )

dbase_open() ouvre une base de données dBase avec un mode d'accès donné.

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note : Cette fonction est affectée par la directive de configuration open_basedir.

Liste de paramètres

filename

Le nom de la base de données. Il peut être un chemin relatif ou absolu vers le fichier où dBase stockera vos données.

mode

Un entier correspondant à celui utilisé pour l'appel système open() (Typiquement, 0 signifie lecture seul, 1 signifie écriture seul, et 2 signifie lecture-écriture).

Note : Vous ne pouvez pas ouvrir un fichier dBase en mode écriture seul, car la fonction échouera lors de la lecture des informations d'en-têtes et donc, vous ne pouvez pas utiliser 1 comme mode.

Exemples

Exemple 1. Ouverture d'un fichier de base de données dBase

<?php

// Ouverture en lecture seul
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
// lecture des données ..

dbase_close($db);
}

?>

Valeurs de retour

Retourne un identifiant de lien à la base de données si la base de données est ouverte avec succès, ou FALSE si une erreur survient.

Voir aussi

dbase_create()
dbase_close()

Précédent | Sommaire | Suivant
dbase_numrecords | Niveau supérieur | dbase_pack


dbase_pack

(PHP 3, PHP 4, PHP 5)

dbase_pack -- Compacte une base dBase

Description

bool dbase_pack ( int dbase_identifier )

dbase_pack() compacte la base de données dbase_identifier (effacement définitif de tous les enregistrements marqués pour l'effacement, avec la fonction dbase_delete_record()).

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
dbase_open | Niveau supérieur | dbase_replace_record


dbase_replace_record

(PHP 3 >= 3.0.11, PHP 4, PHP 5)

dbase_replace_record -- Remplace un enregistrement dans une base dBase

Description

bool dbase_replace_record ( int dbase_identifier, array record, int record_number )

dbase_replace_record() remplace les données associées à l'enregistrement dbase_record_number par les données enregistrées dans record, dans la base dbase_identifier.

Liste de paramètres

dbase_identifier

L'identifiant du lien à la base de données, retourné par dbase_open() ou dbase_create().

record

Un tableau indexé des données. Le nombre d'éléments doit être égal au nombre de champs dans la base de données, sinon dbase_add_record() échouera.

Note : Si vous utilisez dbase_get_record() pour retourner la valeur de ce paramètre, n'oubliez pas de réinitialiser la clé nommée deleted.

record_number

Un entier entre 1 et le nombre total d'enregistrements dans la base de données (comme retourné par la fonction dbase_numrecords()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Mise à jour d'un enregistrement dans une base de données

<?php

// Ouverture en mode lecture-écriture
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  // Récupération de l'ancienne ligne
  $row = dbase_get_record_with_names($db, 1);

  // Supprime l'entrée effacée
  unset($row['deleted']);

  // Mise à jour de la date du champ avec le timestamp courant
  $row['date'] = date('Ymd');

  // Remplace l'enregistrement
  dbase_replace_record($db, $row, 1);
  dbase_close($db);
}

?>

Voir aussi

dbase_add_record()
dbase_delete_record()

Précédent | Sommaire | Suivant
dbase_pack | Niveau supérieur | DBM (Obsolète)


DBM (Obsolète)

Manuel PHP
Précédent Suivant

XXVI. DBM (Obsolète)

Introduction

Ces fonctions vous permettent d'écrire des lignes dans une base de données de type dbm. Ce type de base (supporté par Berkeley DB, GDBM, quelques bibliothèques systèmes, ou certaines bibliothèques du système d'exploitation) enregistre les paires clés/valeurs, (contrairement aux enregistrements par ligne, utilisés par les autres bases de données relationnelles).

Note : Le support DBM est obsolète et il est fortement recommandé d'utiliser l'extension DBA à la place.

Note : Cette extension a été supprimée de PHP et n'est plus disponible depuis PHP 5.0.0.

Pré-requis

Pour utiliser ces fonctions, vous devez compiler PHP avec le support d'un gestionnaire. Reportez-vous à la liste de gestionnaires supportés.

Installation

Pour utiliser ces fonctions, vous devez compiler PHP avec le support dbm en utilisant l'option de configuration --with-db. De plus, vous devez assurez le support pour une sous base de données, ou bien utiliser quelques bibliothèques du système.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

La fonction dbmopen() retourne une ressource de base de données, utilisée par toutes les autres fonctions dbm.

Constantes pré-définies

Cette extension ne définit aucune constante.

Exemples

Exemple 1. Présentation de dbm

<?php
$dbm = dbmopen ("lastseen", "w");
if (dbmexists ($dbm, $userid)) {
    $last_seen = dbmfetch ($dbm, $userid);
} else {
    dbminsert ($dbm, $userid, time());
}
do_stuff();
dbmreplace ($dbm, $userid, time());
dbmclose ($dbm);
?>

Table des matières
dblist -- Décrit la bibliothèque DBM utilisée
dbmclose -- Ferme une base de données dbm
dbmdelete -- Efface une valeur
dbmexists -- Indique si une valeur existe
dbmfetch -- Lit une valeur
dbmfirstkey -- Lit la première clé
dbminsert -- Insère une valeur
dbmnextkey -- Lit la clé suivante
dbmopen -- Ouvre une base de données dbm
dbmreplace -- Remplace une valeur

Précédent | Sommaire | Suivant
dbase_replace_record | Niveau supérieur | dblist


dblist

(PHP 3, PHP 4, PECL)

dblist -- Décrit la bibliothèque DBM utilisée

Description

string dblist ( void )

Décrit la bibliothèque DBM utilisée.

Valeurs de retour

Retourne une chaîne décrivant la version GDBM.

Exemples

Exemple 1. Lire des informations dbm depuis la ligne de commande

[marcus@zaphod marcus]$ php -r 'echo dblist();'
This is GDBM version 1.8.0, as of May 19, 1999.

Précédent | Sommaire | Suivant
DBM (Obsolète) | Niveau supérieur | dbmclose


dbmclose

(PHP 3, PHP 4, PECL)

dbmclose -- Ferme une base de données dbm

Description

bool dbmclose ( resource dbm_identifier )

Déverrouille et ferme la base de données spécifiée.

Liste de paramètres

dbm_identifier

L'identifiant de lien DBM, retourné par la fonction dbmopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

dbmopen()

Précédent | Sommaire | Suivant
dblist | Niveau supérieur | dbmdelete


dbmdelete

(PHP 3, PHP 4, PECL)

dbmdelete -- Efface une valeur

Description

bool dbmdelete ( resource dbm_identifier, string key )

Efface la valeur de la clé key, dans la base de données.

Liste de paramètres

dbm_identifier

L'identifiant de lien DBM, retourné par la fonction dbmopen().

key

La clé

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Retourne FALSE si la clé n'existe pas dans la base de données.

Voir aussi

dbminsert()

Précédent | Sommaire | Suivant
dbmclose | Niveau supérieur | dbmexists


dbmexists

(PHP 3, PHP 4, PECL)

dbmexists -- Indique si une valeur existe

Description

bool dbmexists ( resource dbm_identifier, string key )

Retourne TRUE s'il y a une valeur associée à la clé key.

Liste de paramètres

dbm_identifier

L'identifiant de lien DBM, retourné par la fonction dbmopen().

key

La clé

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

dbmfetch()

Précédent | Sommaire | Suivant
dbmdelete | Niveau supérieur | dbmfetch


dbmfetch

(PHP 3, PHP 4, PECL)

dbmfetch -- Lit une valeur

Description

string dbmfetch ( resource dbm_identifier, string key )

Retourne la valeur associée à la clé key fournie.

Liste de paramètres

dbm_identifier

L'identifiant de lien DBM, retourné par la fonction dbmopen().

key

La clé

Valeurs de retour

Retourne la valeur associée à la clé key.

Précédent | Sommaire | Suivant
dbmexists | Niveau supérieur | dbmfirstkey


dbmfirstkey

(PHP 3, PHP 4, PECL)

dbmfirstkey -- Lit la première clé

Description

string dbmfirstkey ( resource dbm_identifier )

Retourne la première clé de la base de données. Notez bien que les clés ne sont pas dans un ordre défini, étant donné que la table est construite comme un tableau associatif.

Liste de paramètres

dbm_identifier

L'identifiant de lien DBM, retourné par la fonction dbmopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

dbmnextkey()

Précédent | Sommaire | Suivant
dbmfetch | Niveau supérieur | dbminsert


dbminsert

(PHP 3, PHP 4, PECL)

dbminsert -- Insère une valeur

Description

int dbminsert ( resource dbm_identifier, string key, string value )

Ajoute une valeur dans la base de données avec la clé spécifiée.

Liste de paramètres

dbm_identifier

L'identifiant de lien DBM, retourné par la fonction dbmopen().

key

La clé ajoutée

value

La valeur de la clé ajoutée

Valeurs de retour

Retourne -1 si la base a été ouverte en mode lecture seule, 0 si l'insertion a été réussie, et 1 si la clé key existe déjà. (Pour remplacer la valeur, utilisez dbmreplace().)

Voir aussi

dbmreplace()
dbmdelete()

Précédent | Sommaire | Suivant
dbmfirstkey | Niveau supérieur | dbmnextkey


dbmnextkey

(PHP 3, PHP 4, PECL)

dbmnextkey -- Lit la clé suivante

Description

string dbmnextkey ( resource dbm_identifier, string key )

Retourne la clé après la clé key.

Liste de paramètres

dbm_identifier

L'identifiant de lien DBM, retourné par la fonction dbmopen().

key

La clé précédente

Valeurs de retour

La clé suivante, si possible

Exemples

En appelant dbmfirstkey(), puis successivement dbmnextkey(), il est possible de passer en revue toute les paires clé/valeur de la base de données dbm. Par exemple :

Exemple 1. Passer en revue une base de données d'une base dbm

<?php

$key = dbmfirstkey($dbm_id);
while ($key) {
    echo "$key = " . dbmfetch($dbm_id, $key) . "\n";
    $key = dbmnextkey($dbm_id, $key);
}

?>

Voir aussi

dbmfirstkey()

Précédent | Sommaire | Suivant
dbminsert | Niveau supérieur | dbmopen


dbmopen

(PHP 3, PHP 4, PECL)

dbmopen -- Ouvre une base de données dbm

Description

resource dbmopen ( string filename, string flags )

Ouvre une base de données dbm spécifié dans le mode fourni.

Liste de paramètres

filename

Le chemin complet vers le fichier DBM à ouvrir

flags

Le mode d'ouverture du fichier, qui peut prendre les valeurs suivantes : r, n, c ou w qui représentent respectivement lecture seule, nouveau (ce qui implique lecture/écriture, et qui, probablement, va écraser une base existante), création (ce qui implique lecture/écriture, et qui, probablement, va écraser une base existante), et lecture/écriture.

Valeurs de retour

Retourne un identifiant qui sera passé à toutes les autres fonctions dbm en cas de succès, ou FALSE en cas d'échec.

Notes

Note : Si NDBM est utilisé, NDBM va créer les fichiers filename.dir et filename.pag. gdbm n'utilise qu'un fichier, tout comme les bibliothèques internes, et Berkeley db crée le fichier filename.db.

Notez que PHP dispose de son propre système de verrouillage des fichiers, qui s'additionne à celui éventuellement utilisé par les bibliothèques. PHP n'efface jamais les fichiers .lck qu'il crée. Il les utilise comme inode fixe, sur lequel faire le verrouillage. Pour plus d'informations sur les fichiers DBM, reportez-vous à vos pages de manuel Unix (man) , ou bien chargez GDBM GNU.

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi

dbmclose()

Précédent | Sommaire | Suivant
dbmnextkey | Niveau supérieur | dbmreplace


dbmreplace

(PHP 3, PHP 4, PECL)

dbmreplace -- Remplace une valeur

Description

int dbmreplace ( resource dbm_identifier, string key, string value )

Remplace la valeur pour la clé spécifiée dans la base de données.

Cette fonction créera la clé, si elle n'existe pas dans la base.

Liste de paramètres

dbm_identifier

L'identifiant de lien DBM, retourné par la fonction dbmopen().

key

La clé remplacée

value

La nouvelle valeur

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

dbminsert()

Précédent | Sommaire | Suivant
dbmopen | Niveau supérieur | Fonctions dbx


Fonctions DB++

Manuel PHP
Précédent Suivant

XXIII. Fonctions DB++

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Introduction

DB++, qui est programmé par une société allemande Concept asa, est un système de base de données relationnelles à haute performance, faible consommation de mémoire et de disque. Bien qu'il comprenne le langage SQL en tant qu'interface supplémentaire, ce n'est pas vraiment une base de données SQL, car il fournit son propre langage SQL, qui est plus influencé par l'algèbre relationnelle que ne l'est SQL.

Concept asa a toujours supporté les langages Open Source, et DB++ dispose d'interfaces Perl et Tcl depuis longtemps. Il utilise aussi Tcl pour ses procédures stockées internes.

Pré-requis

Cette extension dépend d'une bibliothèque cliente externe : vous devez donc avoir le client DB++ installé sur le système pour pouvoir compiler cette extension dans PHP.

Concept asa fournit des versions de démo de DB++ et la documentation pour Linux, ainsi que certaines autres versions UNIX. Il y a aussi une version pour Windows de DB++, mais cette extension ne la supporte pas (pour le moment).

Installation

Pour compiler cette extension vous-même, vous devez avoir les bibliothèques clients et les fichiers d'en-têtes installés sur le système (ils sont inclus dans la distribution de DB++ par défaut). Exécutez la commande configure avec l'option --with-dbplus pour inclure cette extension dans PHP.

configure recherche les bibliothèques clients et les fichiers d'en-têtes dans les dossiers suivants : /usr/dbplus, /usr/local/dbplus et /opt/dbplus. Si vous avez installé DB++ dans un autre dossier, indiquez le chemin de ce dossier dans l'option de configure comme ceci : --with-dbplus=/votre/dossier/installation.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

dbplus_relation

La plupart des fonctions DB++ travaillent avec une ressource de type dbplus_relation : c'est un pointeur sur une relation, ou une relation, généré par 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.

Codes d'erreurs de DB++

Tableau 1. Codes d'erreurs de DB++

Constante PHP | Constante DB++ | Description
DBPLUS_ERR_NOERR (entier) | ERR_NOERR | Condition d'erreur Null
DBPLUS_ERR_DUPLICATE (entier) | ERR_DUPLICATE | Tentative d'insertion d'un doublon
DBPLUS_ERR_EOSCAN (entier) | ERR_EOSCAN | Fin de scan rget()
DBPLUS_ERR_EMPTY (entier) | ERR_EMPTY | Relation vide (serveur)
DBPLUS_ERR_CLOSE (entier) | ERR_CLOSE | Le serveur ne peut fermer
DBPLUS_ERR_WLOCKED (entier) | ERR_WLOCKED | La ligne est verrouillée en écriture
DBPLUS_ERR_LOCKED (entier) | ERR_LOCKED | La relation est déjà verrouillée
DBPLUS_ERR_NOLOCK (entier) | ERR_NOLOCK | La relation ne peut être verrouillée
DBPLUS_ERR_READ (entier) | ERR_READ | Erreur de lecture sur la relation
DBPLUS_ERR_WRITE (entier) | ERR_WRITE | Erreur d'écriture sur la relation
DBPLUS_ERR_CREATE (entier) | ERR_CREATE | La fonction système Create() a échoué
DBPLUS_ERR_LSEEK (entier) | ERR_LSEEK | La fonction système lseek() a échoué
DBPLUS_ERR_LENGTH (entier) | ERR_LENGTH | La ligne excède la taille maximale
DBPLUS_ERR_OPEN (entier) | ERR_OPEN | La fonction système Open() a échoué
DBPLUS_ERR_WOPEN (entier) | ERR_WOPEN | La relation est déjà ouverte en lecture
DBPLUS_ERR_MAGIC (entier) | ERR_MAGIC | Le fichier n'est pas une relation
DBPLUS_ERR_VERSION (entier) | ERR_VERSION | Le fichier est une très vieille relation
DBPLUS_ERR_PGSIZE (entier) | ERR_PGSIZE | La relation utilise une page de taille différente
DBPLUS_ERR_CRC (entier) | ERR_CRC | CRC invalide de la superpage
DBPLUS_ERR_PIPE (entier) | ERR_PIPE | Une relation pipée requiert lseek()
DBPLUS_ERR_NIDX (entier) | ERR_NIDX | Trop d'index secondaires
DBPLUS_ERR_MALLOC (entier) | ERR_MALLOC | L'appel à malloc() a échoué
DBPLUS_ERR_NUSERS (entier) | ERR_NUSERS | Erreur lors de l'utilisation du nombre maximal d'utilisateurs
DBPLUS_ERR_PREEXIT (entier) | ERR_PREEXIT | Causée par une utilisation invalide
DBPLUS_ERR_ONTRAP (entier) | ERR_ONTRAP | Causée par un signal
DBPLUS_ERR_PREPROC (entier) | ERR_PREPROC | Erreur dans le préprocesseur
DBPLUS_ERR_DBPARSE (entier) | ERR_DBPARSE | Erreur dans l'analyseur
DBPLUS_ERR_DBRUNERR (entier) | ERR_DBRUNERR | Erreur durant l'exécution
DBPLUS_ERR_DBPREEXIT (entier) | ERR_DBPREEXIT | La condition d'exit a été causée par la procédure prexit()
DBPLUS_ERR_WAIT (entier) | ERR_WAIT | Attend un peu (Simple seulement)
DBPLUS_ERR_CORRUPT_TUPLE (entier) | ERR_CORRUPT_TUPLE | Un client a envoyé une ligne corrompue
DBPLUS_ERR_WARNING0 (entier) | ERR_WARNING0 | Les routines Simple ont rencontré une erreur non fatale, qui a été corrigée.
DBPLUS_ERR_PANIC (entier) | ERR_PANIC | Le serveur ne devrait pas s'arrêter, mais, après un désastre, envoyer ERR_PANIC à tout ses clients
DBPLUS_ERR_FIFO (entier) | ERR_FIFO | Impossible de créer une pile FIFO
DBPLUS_ERR_PERM (entier) | ERR_PERM | Permission refusée
DBPLUS_ERR_TCL (entier) | ERR_TCL | TCL_error
DBPLUS_ERR_RESTRICTED (entier) | ERR_RESTRICTED | Seulement deux utilisateurs
DBPLUS_ERR_USER (entier) | ERR_USER | Une erreur est survenue dans l'utilisation de la bibliothèque par l'application.
DBPLUS_ERR_UNKNOWN (entier) | ERR_UNKNOWN | Erreur inconnue

Table des matières
dbplus_add -- Ajoute une ligne à une relation
dbplus_aql -- Exécute une requête AQL
dbplus_chdir -- Lit/modifie le chemin courant de base
dbplus_close -- Ferme une relation
dbplus_curr -- Lit la ligne courante dans une relation
dbplus_errcode -- Obtenir un message d'erreur
dbplus_errno -- Lit le code d'erreur généré par la dernière opération
dbplus_find -- Ajoute une contrainte sur une relation
dbplus_first -- Lit la première ligne d'une relation
dbplus_flush -- Ecrit toutes les modifications apportées à une relation
dbplus_freealllocks -- Libère tous les verrous posés par le client
dbplus_freelock -- Lève un verrou en écriture sur une ligne
dbplus_freerlocks -- Lève tous les verrous sur les lignes d'une relation
dbplus_getlock -- Pose un verrou sur une ligne
dbplus_getunique -- Retourne un identifiant unique pour une relation
dbplus_info -- Récupère les informations sur une relation
dbplus_last -- Lit la dernière ligne d'une relation
dbplus_lockrel -- Pose un verrou en écriture sur une relation
dbplus_next -- Lit la ligne suivante dans la relation
dbplus_open -- Ouvre un fichier de relation
dbplus_prev -- Lit la ligne précédente dans la relation
dbplus_rchperm -- Modifie les droits sur la relation
dbplus_rcreate -- Crée une nouvelle relation DB++
dbplus_rcrtexact -- Crée une copie exacte mais vide d'une relation
dbplus_rcrtlike -- Crée une copie vide d'une relation avec les index
dbplus_resolve -- Résoud les informations d'hôte pour une relation
dbplus_restorepos -- Restaure la position
dbplus_rkeys -- Spécifie la nouvelle clé primaire d'une relation
dbplus_ropen -- Ouvre un fichier de relation local
dbplus_rquery -- Accomplit une requête AQL locale
dbplus_rrename -- Renomme une relation
dbplus_rsecindex -- Crée un nouvel index secondaire pour une relation
dbplus_runlink -- Détruit une relation
dbplus_rzap -- Supprime toutes les lignes d'une relation
dbplus_savepos -- Sauvegarde la position
dbplus_setindex -- Définit l'index
dbplus_setindexbynumber -- Définit l'index par un nombre
dbplus_sql -- Exécute une requête SQL
dbplus_tcl -- Exécute du code TCL côté serveur
dbplus_tremove -- Supprime la ligne courante et retourne la nouvelle ligne courante
dbplus_undo -- Annule
dbplus_undoprepare -- Prépare l'annulation
dbplus_unlockrel -- Libère un verrou en écriture posé sur une relation
dbplus_unselect -- Retire une contrainte d'une relation
dbplus_update -- Modifie une ligne dans une relation
dbplus_xlockrel -- Pose un verrou exclusif sur une relation
dbplus_xunlockrel -- Lève un verrou exclusif posé sur une relation

Précédent | Sommaire | Suivant
timezone_transitions_get | Niveau supérieur | dbplus_add


dbplus_add

(4.1.0 - 4.2.3 only, PECL)

dbplus_add -- Ajoute une ligne à une relation

Description

int dbplus_add ( resource relation, array tuple )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_add() va ajouter la ligne tuple à la relation relation. tuple est un tableau associatif de paires attribut/valeur, qui seront insérées dans la relation relation. Après une exécution réussie, tuple contiendra toutes les données de la nouvelle ligne, y compris tous les champs implicitement créés, comme les séquences.

dbplus_add() va retourner zéro (DBPLUS_ERR_NOERR) en cas de succès, ou bien un code d'erreur DB++ en cas d'échec. Voyez la fonction dbplus_errcode() ou l'introduction de ce chapitre pour plus d'informations sur les codes d'erreur db++.

Précédent | Sommaire | Suivant
Fonctions DB++ | Niveau supérieur | dbplus_aql


dbplus_aql

(4.1.0 - 4.2.3 only, PECL)

dbplus_aql -- Exécute une requête AQL

Description

resource dbplus_aql ( string query [, string server [, string dbpath]] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_aql() exécute la requête AQL query sur le serveur server avec le chemin dbpath.

En cas de succès, la fonction retournera une ressource de relation. Les données de résultat sont accessibles avec les fonctions dbplus_next() et dbplus_current(). Les autres fonctions d'accès aux relations ne fonctionneront pas avec une relation de résultat.

Plus d'informations sur le langage de requête AQL A... sont disponibles dans le manuel DB++.

Précédent | Sommaire | Suivant
dbplus_add | Niveau supérieur | dbplus_chdir


dbplus_chdir

(4.1.0 - 4.2.3 only, PECL)

dbplus_chdir -- Lit/modifie le chemin courant de base

Description

string dbplus_chdir ( [string newdir] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_chdir() va changer le chemin de base courant utilisé par dbplus_open() pour rechercher les fichiers de relations. dbplus_chdir() retourne le chemin absolu courant. En appelant dbplus_chdir() sans paramètre, vous pouvez lire le nom du dossier courant sans le modifier.

Précédent | Sommaire | Suivant
dbplus_aql | Niveau supérieur | dbplus_close


dbplus_close

(4.1.0 - 4.2.3 only, PECL)

dbplus_close -- Ferme une relation

Description

mixed dbplus_close ( resource relation )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

L'appel de dbplus_close() fermera une relation précédemment ouverte par dbplus_open().

Retourne TRUE en cas de réussite ou DBPLUS_ERR_UNKNOWN en cas d'échec.

Précédent | Sommaire | Suivant
dbplus_chdir | Niveau supérieur | dbplus_curr


dbplus_curr

(4.1.0 - 4.2.3 only, PECL)

dbplus_curr -- Lit la ligne courante dans une relation

Description

int dbplus_curr ( resource relation, array &tuple )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_curr() lit les données de la ligne courante pour la relation relation et les retourne sous forme de tableau associatif, dans le paramètre tuple.

dbplus_curr() va retourner zéro (alias DBPLUS_ERR_NOERR) en cas de succès, ou bien un code d'erreur DB++ en cas d'échec. Voyez la fonction dbplus_errcode() ou l'introduction de ce chapitre pour plus d'informations sur les codes d'erreurs.

Voir aussi
dbplus_first(),
dbplus_prev(),
dbplus_next() et
dbplus_last().

Précédent | Sommaire | Suivant
dbplus_close | Niveau supérieur | dbplus_errcode


dbplus_errcode

(4.1.0 - 4.2.3 only, PECL)

dbplus_errcode -- Obtenir un message d'erreur

Description

string dbplus_errcode ( [int errno] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_errcode() retourne un message d'erreur correspondant au code d'erreur errno, ou bien au dernier message d'erreur généré si aucun code d'erreur n'est fourni.

Précédent | Sommaire | Suivant
dbplus_curr | Niveau supérieur | dbplus_errno


dbplus_errno

(4.1.0 - 4.2.3 only, PECL)

dbplus_errno -- Lit le code d'erreur généré par la dernière opération

Description

int dbplus_errno ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_errno() retourne le code d'erreur généré par la dernière opération DB++.

Voir aussi dbplus_errcode().

Précédent | Sommaire | Suivant
dbplus_errcode | Niveau supérieur | dbplus_find


dbplus_find

(4.1.0 - 4.2.3 only, PECL)

dbplus_find -- Ajoute une contrainte sur une relation

Description

int dbplus_find ( resource relation, array constraints, mixed tuple )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_find() ajoute la contrainte constraints sur la relation relation. Les appels ultérieurs à dbplus_curr() ou dbplus_next() ne retourneront que des lignes qui satisfont aux contraintes exprimées.

Les contraintes sont des triplets de chaînes contenant un nom de domaine, un opérateur de comparaison et une valeur de comparaison. Le paramètre constraints est un tableau qui est constitué d'une collection de tableaux de chaînes, chacun contenant un domaine, un opérateur et une valeur, ou bien un tableau contenant un multiple de trois éléments.

Les opérateurs de comparaisons sont les suivants : '==', '>', '>=', '<', '<=', '!=', '~' pour les recherches classiques, et 'BAND' ou 'BOR' pour les opérations bits à bits.

Voir aussi dbplus_unselect().

Précédent | Sommaire | Suivant
dbplus_errno | Niveau supérieur | dbplus_first


dbplus_first

(4.1.0 - 4.2.3 only, PECL)

dbplus_first -- Lit la première ligne d'une relation

Description

int dbplus_first ( resource relation, array &tuple )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_curr() lit les données de la première ligne dans la relation relation, et les place dans le tableau associatif tuple.

dbplus_curr() va retourner zéro (alias DBPLUS_ERR_NOERR) en cas de succès, ou bien un code d'erreur DB++ en cas d'échec. Voyez la fonction dbplus_errcode() ou l'introduction de ce chapitre pour plus d'informations sur les codes d'erreurs.

Voir aussi
dbplus_first(),
dbplus_prev(),
dbplus_next() et
dbplus_last().

Précédent | Sommaire | Suivant
dbplus_find | Niveau supérieur | dbplus_flush


dbplus_flush

(4.1.0 - 4.2.3 only, PECL)

dbplus_flush -- Ecrit toutes les modifications apportées à une relation

Description

int dbplus_flush ( resource relation )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_flush() va écrire sur le disque toutes les modifications apportées à relation depuis la dernière écriture.

dbplus_flush() va retourner zéro (alias DBPLUS_ERR_NOERR) en cas de succès, ou bien un code d'erreur DB++ en cas d'échec. Voyez la fonction dbplus_errcode() ou l'introduction de ce chapitre pour plus d'informations sur les codes d'erreurs.

Précédent | Sommaire | Suivant
dbplus_first | Niveau supérieur | dbplus_freealllocks


dbplus_freealllocks

(4.1.0 - 4.2.3 only, PECL)

dbplus_freealllocks -- Libère tous les verrous posés par le client

Description

int dbplus_freealllocks ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_freealllocks() libère tous les verrous posés par le client.

Voir aussi
dbplus_getlock(),
dbplus_freelock() et
dbplus_freerlocks().

Précédent | Sommaire | Suivant
dbplus_flush | Niveau supérieur | dbplus_freelock


dbplus_freelock

(4.1.0 - 4.2.3 only, PECL)

dbplus_freelock -- Lève un verrou en écriture sur une ligne

Description

int dbplus_freelock ( resource relation, string tname )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_freelock() supprime le verrou en écriture sur la ligne tuple, posé au préalable par la fonction dbplus_getlock().

Voir aussi
dbplus_getlock(),
dbplus_freerlocks() et
dbplus_freealllocks().

Précédent | Sommaire | Suivant
dbplus_freealllocks | Niveau supérieur | dbplus_freerlocks


dbplus_freerlocks

(4.1.0 - 4.2.3 only, PECL)

dbplus_freerlocks -- Lève tous les verrous sur les lignes d'une relation

Description

int dbplus_freerlocks ( resource relation )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_freerlocks() lève tous les verrous sur les lignes de la relation relation.

Voir aussi
dbplus_getlock(),
dbplus_freelock() et
dbplus_freealllocks().

Précédent | Sommaire | Suivant
dbplus_freelock | Niveau supérieur | dbplus_getlock


dbplus_getlock

(4.1.0 - 4.2.3 only, PECL)

dbplus_getlock -- Pose un verrou sur une ligne

Description

int dbplus_getlock ( resource relation, string tname )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_getlock() tente de poser un verrou en écriture sur la ligne tuple. Cette fonction retournera zéro en cas de succès, ou bien un code d'erreur (spécifiquement DBPLUS_ERR_WLOCKED) en cas d'erreur.

Voir aussi
dbplus_freelock(),
dbplus_freerlocks() et
dbplus_freealllocks().

Précédent | Sommaire | Suivant
dbplus_freerlocks | Niveau supérieur | dbplus_getunique


dbplus_getunique

(4.1.0 - 4.2.3 only, PECL)

dbplus_getunique -- Retourne un identifiant unique pour une relation

Description

int dbplus_getunique ( resource relation, int uniqueid )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_getunique() demande un nombre, qui sera garanti comme unique pour la relation relation, et le retourne dans le paramètre uniqueid.

dbplus_getunique() va retourner zéro (alias DBPLUS_ERR_NOERR) en cas de succès, ou bien un code d'erreur DB++ en cas d'échec. Voyez la fonction dbplus_errcode() ou l'introduction de ce chapitre pour plus d'informations sur les codes d'erreurs.

Précédent | Sommaire | Suivant
dbplus_getlock | Niveau supérieur | dbplus_info


dbplus_info

(4.1.0 - 4.2.3 only, PECL)

dbplus_info -- Récupère les informations sur une relation

Description

int dbplus_info ( resource relation, string key, array &result )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
dbplus_getunique | Niveau supérieur | dbplus_last


dbplus_last

(4.1.0 - 4.2.3 only, PECL)

dbplus_last -- Lit la dernière ligne d'une relation

Description

int dbplus_last ( resource relation, array &tuple )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_curr() lit les données de la dernière ligne de la relation relation, et en fait la ligne courante avant de placer les informations dans le tableau tuple.

dbplusdbplus_curr_add() va retourner zéro (alias DBPLUS_ERR_NOERR) en cas de succès, ou bien un code d'erreur DB++ en cas d'échec. Voyez la fonction dbplus_errcode() ou l'introduction de ce chapitre pour plus d'informations sur les codes d'erreurs.

Voir aussi
dbplus_first(),
dbplus_curr(),
dbplus_prev() et
dbplus_next().

Précédent | Sommaire | Suivant
dbplus_info | Niveau supérieur | dbplus_lockrel


dbplus_lockrel

(no version information, might be only in CVS)

dbplus_lockrel -- Pose un verrou en écriture sur une relation

Description

int dbplus_lockrel ( resource relation )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_lockrel() va tenter de poser un verrou en écriture sur la relation relation. Les autres clients pourront toujours lire dans cette relation, mais devront attendre pour la modifier.

Précédent | Sommaire | Suivant
dbplus_last | Niveau supérieur | dbplus_next


dbplus_next

(4.1.0 - 4.2.3 only, PECL)

dbplus_next -- Lit la ligne suivante dans la relation

Description

int dbplus_next ( resource relation, array &tuple )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_curr() lit les données de la ligne suivante dans la relation, et en fait la ligne courante avant de placer les données dans le paramètre tuple.

dbplus_curr() va retourner zéro (alias DBPLUS_ERR_NOERR) en cas de succès, ou bien un code d'erreur DB++ en cas d'échec. Voyez la fonction dbplus_errcode() ou l'introduction de ce chapitre pour plus d'informations sur les codes d'erreurs.

Voir aussi
dbplus_first(),
dbplus_curr(),
dbplus_prev() et
dbplus_last().

Précédent | Sommaire | Suivant
dbplus_lockrel | Niveau supérieur | dbplus_open


dbplus_open

(4.1.0 - 4.2.3 only, PECL)

dbplus_open -- Ouvre un fichier de relation

Description

resource dbplus_open ( string name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Le fichier de relation name sera ouvert. name peut être un nom de fichier, ou un chemin relatif ou absolu. Dans tous les cas, il sera remplacé par un chemin absolu, sur une machine spécifique et sur un serveur spécifique.

En cas de succès, une ressource de fichier de relation (dite aussi curseur) sera retournée. Elle sera alors utilisée avec les fonctions utilisant cette relation. En cas d'échec, la valeur zéro est retournée et le code d'erreur peut être demandé via la fonction dbplus_errno().

Précédent | Sommaire | Suivant
dbplus_next | Niveau supérieur | dbplus_prev


dbplus_prev

(4.1.0 - 4.2.3 only, PECL)

dbplus_prev -- Lit la ligne précédente dans la relation

Description

int dbplus_prev ( resource relation, array &tuple )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_curr() lit les données dans la ligne précédant la ligne courante dans la relation relation ; en fait la ligne courante et passe les données représentant la ligne sous la forme d'un tableau associatif dans le paramètre tuple.

Cette fonction retourne zéro (e.g. DBPLUS_ERR_NOERR) en cas de succès ou un code d'erreur db++ en cas d'échec. Voyez dbplus_errcode() ou l'introduction de ce chapitre pour plus de détails sur les codes d'erreur db++.

Voir aussi
dbplus_first(),
dbplus_curr(),
dbplus_next() et
dbplus_last().

Précédent | Sommaire | Suivant
dbplus_open | Niveau supérieur | dbplus_rchperm


dbplus_rchperm

(4.1.0 - 4.2.3 only, PECL)

dbplus_rchperm -- Modifie les droits sur la relation

Description

int dbplus_rchperm ( resource relation, int mask, string user, string group )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_rchperm() modifie les droits d'accès à la relation relation. Les nouveaux droits sont spécifiés avec les paramètres mask, user et group. Les valeurs à fournir sont spécifiques à chaque système d'exploitation.

Précédent | Sommaire | Suivant
dbplus_prev | Niveau supérieur | dbplus_rcreate


dbplus_rcreate

(4.1.0 - 4.2.3 only, PECL)

dbplus_rcreate -- Crée une nouvelle relation DB++

Description

resource dbplus_rcreate ( string name, mixed domlist [, bool overwrite] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_rcreate() crée une nouvelle relation nommée name. Une autre relation du même nom sera écrasée si la relation n'est pas utilisée à ce moment, et si overwrite vaut TRUE.

domlist doit contenir les spécifications de domaine pour la nouvelle relation, sous la forme d'un tableau de chaînes descriptives. (dbplus_rcreate() accepte aussi une chaîne avec des domaines séparés par des espaces, mais l'utilisation de cette technique est découragée.) Une description de domaine est constituée d'un nom de domaine unique pour cette relation, d'un slash "/" et d'un caractère de spécification de type. Reportez-vous à la documentation DB++, et en particulier à la page concernant dbcreate(1), pour connaître le détail des spécificateurs de type et leur signification.

Précédent | Sommaire | Suivant
dbplus_rchperm | Niveau supérieur | dbplus_rcrtexact


dbplus_rcrtexact

(4.1.0 - 4.2.3 only, PECL)

dbplus_rcrtexact -- Crée une copie exacte mais vide d'une relation

Description

mixed dbplus_rcrtexact ( string name, resource relation [, bool overwrite] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_rcrtexact() crée une copie exacte de la relation relation, sous le nouveau nom de name. Une relation qui porterait déjà le nom de name ne sera écrasée que si overwrite vaut TRUE et qu'aucun autre processus ne l'utilise.

Retourne TRUE en cas de réussite ou DBPLUS_ERR_UNKNOWN en cas d'échec.

Précédent | Sommaire | Suivant
dbplus_rcreate | Niveau supérieur | dbplus_rcrtlike


dbplus_rcrtlike

(4.1.0 - 4.2.3 only, PECL)

dbplus_rcrtlike -- Crée une copie vide d'une relation avec les index

Description

mixed dbplus_rcrtlike ( string name, resource relation [, int overwrite] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_rcrtexact() crée une copie vide de la relation relation, sous le nouveau nom de name, mais avec les index par défaut. Une relation qui porterait déjà le nom de name ne sera écrasée que si overwrite vaut TRUE et qu'aucun autre processus ne l'utilise.

Retourne TRUE en cas de réussite ou DBPLUS_ERR_UNKNOWN en cas d'échec.

Précédent | Sommaire | Suivant
dbplus_rcrtexact | Niveau supérieur | dbplus_resolve


dbplus_resolve

(4.1.0 - 4.2.3 only, PECL)

dbplus_resolve -- Résoud les informations d'hôte pour une relation

Description

array dbplus_resolve ( string relation_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_resolve() résoud le nom de relation relation_name et collecte le nom interne de serveur, le nom d'hôte et le chemin vers la base sur cet hôte. La fonction retourne un tableau contenant ces valeurs, sous les index 'sid', 'host' et 'host_path', ou FALSE en cas d'erreur.

Voir aussi dbplus_tcl().

Précédent | Sommaire | Suivant
dbplus_rcrtlike | Niveau supérieur | dbplus_restorepos


dbplus_restorepos

(4.1.0 - 4.2.3 only, PECL)

dbplus_restorepos -- Restaure la position

Description

int dbplus_restorepos ( resource relation, array tuple )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
dbplus_resolve | Niveau supérieur | dbplus_rkeys


dbplus_rkeys

(4.1.0 - 4.2.3 only, PECL)

dbplus_rkeys -- Spécifie la nouvelle clé primaire d'une relation

Description

mixed dbplus_rkeys ( resource relation, mixed domlist )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_rkeys() remplace la clé primaire courante de la relation relation avec la combinaison de domaines spécifiée par domlist.

domlist peut être passé comme un nom de domaine seul, ou comme un tableau de noms de domaines.

Retourne TRUE en cas de réussite ou DBPLUS_ERR_UNKNOWN en cas d'échec.

Précédent | Sommaire | Suivant
dbplus_restorepos | Niveau supérieur | dbplus_ropen


dbplus_ropen

(4.1.0 - 4.2.3 only, PECL)

dbplus_ropen -- Ouvre un fichier de relation local

Description

resource dbplus_ropen ( string name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_ropen() ouvre le fichier de relation file localement, pour accès rapide, sans les coûts supplémentaires du système client/serveur. L'accès est alors en lecture seule, et seules dbplus_current() et dbplus_next() peuvent être utilisées avec la relation retournée.

Précédent | Sommaire | Suivant
dbplus_rkeys | Niveau supérieur | dbplus_rquery


dbplus_rquery

(4.1.0 - 4.2.3 only, PECL)

dbplus_rquery -- Accomplit une requête AQL locale

Description

resource dbplus_rquery ( string query [, string dbpath] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_rquery() accomplit une requête AQL brute, en utilisant l'interpréteur de la bibliothèque du client DB++. dbplus_rquery() est plus rapide que dbplus_aql() mais ne fonctionne que sur des données locales.

Précédent | Sommaire | Suivant
dbplus_ropen | Niveau supérieur | dbplus_rrename


dbplus_rrename

(4.1.0 - 4.2.3 only, PECL)

dbplus_rrename -- Renomme une relation

Description

int dbplus_rrename ( resource relation, string name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_rrename() va changer le nom de la relation en name.

Précédent | Sommaire | Suivant
dbplus_rquery | Niveau supérieur | dbplus_rsecindex


dbplus_rsecindex

(4.1.0 - 4.2.3 only, PECL)

dbplus_rsecindex -- Crée un nouvel index secondaire pour une relation

Description

mixed dbplus_rsecindex ( resource relation, mixed domlist, int type )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_rsecindex() crée un nouvel index secondaire pour la relation relation, qui sera constitué par domlist et sera de type type

domlist peut être passé comme un nom de domaine seul, ou comme un tableau de noms de domaines.

Retourne TRUE en cas de réussite ou DBPLUS_ERR_UNKNOWN en cas d'échec.

Précédent | Sommaire | Suivant
dbplus_rrename | Niveau supérieur | dbplus_runlink


dbplus_runlink

(4.1.0 - 4.2.3 only, PECL)

dbplus_runlink -- Détruit une relation

Description

int dbplus_runlink ( resource relation )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_unlink() ferme et supprime la relation relation.

Précédent | Sommaire | Suivant
dbplus_rsecindex | Niveau supérieur | dbplus_rzap


dbplus_rzap

(4.1.0 - 4.2.3 only, PECL)

dbplus_rzap -- Supprime toutes les lignes d'une relation

Description

int dbplus_rzap ( resource relation )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_rzap() supprime toutes les lignes de la relation relation.

Précédent | Sommaire | Suivant
dbplus_runlink | Niveau supérieur | dbplus_savepos


dbplus_savepos

(4.1.0 - 4.2.3 only, PECL)

dbplus_savepos -- Sauvegarde la position

Description

int dbplus_savepos ( resource relation )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
dbplus_rzap | Niveau supérieur | dbplus_setindex


dbplus_setindex

(4.1.0 - 4.2.3 only, PECL)

dbplus_setindex -- Définit l'index

Description

int dbplus_setindex ( resource relation, string idx_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
dbplus_savepos | Niveau supérieur | dbplus_setindexbynumber


dbplus_setindexbynumber

(4.1.0 - 4.2.3 only, PECL)

dbplus_setindexbynumber -- Définit l'index par un nombre

Description

int dbplus_setindexbynumber ( resource relation, int idx_number )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
dbplus_setindex | Niveau supérieur | dbplus_sql


dbplus_sql

(4.1.0 - 4.2.3 only, PECL)

dbplus_sql -- Exécute une requête SQL

Description

resource dbplus_sql ( string query [, string server [, string dbpath]] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
dbplus_setindexbynumber | Niveau supérieur | dbplus_tcl


dbplus_tcl

(4.1.0 - 4.2.3 only, PECL)

dbplus_tcl -- Exécute du code TCL côté serveur

Description

string dbplus_tcl ( int sid, string script )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Un serveur db++ va préparer un interpréteur TCL pour chaque connexion de client. Cet interpréteur va permettre au serveur d'exécuter du code TCL fourni par le client, un peu comme une procédure stockée, pour améliorer les performances du serveur en évitant des transferts client/serveur et des changements de contexte.

dbplus_tcl() doit recevoir l'identifiant de connexion sid et le code TCL script qui sera exécuté. dbplus_resolve() fournira l'identifiant de connexion. dbplus_tcl() retourne ce que le code TCL retourne, ou bien un message d'erreur TCL si le code TCL échoue.

Voir aussi dbplus_resolve().

Précédent | Sommaire | Suivant
dbplus_sql | Niveau supérieur | dbplus_tremove


dbplus_tremove

(4.1.0 - 4.2.3 only, PECL)

dbplus_tremove -- Supprime la ligne courante et retourne la nouvelle ligne courante

Description

int dbplus_tremove ( resource relation, array tuple [, array &current] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_tremove() supprime la ligne tuple de la relation si cela correspond parfaitement à une ligne dans la relation. current, si fourni, contient les données de la nouvelle ligne, une fois la suppression effectuée avec dbplus_tremove().

Précédent | Sommaire | Suivant
dbplus_tcl | Niveau supérieur | dbplus_undo


dbplus_undo

(4.1.0 - 4.2.3 only, PECL)

dbplus_undo -- Annule

Description

int dbplus_undo ( resource relation )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
dbplus_tremove | Niveau supérieur | dbplus_undoprepare


dbplus_undoprepare

(4.1.0 - 4.2.3 only, PECL)

dbplus_undoprepare -- Prépare l'annulation

Description

int dbplus_undoprepare ( resource relation )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
dbplus_undo | Niveau supérieur | dbplus_unlockrel


dbplus_unlockrel

(4.1.0 - 4.2.3 only, PECL)

dbplus_unlockrel -- Libère un verrou en écriture posé sur une relation

Description

int dbplus_unlockrel ( resource relation )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_unlockrel() lève le verrou en écriture, posé par la fonction dbplus_lockrel() sur la relation relation.

Précédent | Sommaire | Suivant
dbplus_undoprepare | Niveau supérieur | dbplus_unselect


dbplus_unselect

(4.1.0 - 4.2.3 only, PECL)

dbplus_unselect -- Retire une contrainte d'une relation

Description

int dbplus_unselect ( resource relation )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_unselect() supprime la contrainte posée par dbplus_find() sur la relation.

Précédent | Sommaire | Suivant
dbplus_unlockrel | Niveau supérieur | dbplus_update


dbplus_update

(4.1.0 - 4.2.3 only, PECL)

dbplus_update -- Modifie une ligne dans une relation

Description

int dbplus_update ( resource relation, array old, array new )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_update() remplace la ligne identifiée par old avec les données du paramètre new si et seulement si old identifie exactement une ligne dans une relation.

Précédent | Sommaire | Suivant
dbplus_unselect | Niveau supérieur | dbplus_xlockrel


dbplus_xlockrel

(4.1.0 - 4.2.3 only, PECL)

dbplus_xlockrel -- Pose un verrou exclusif sur une relation

Description

int dbplus_xlockrel ( resource relation )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_xlockrel() pose un verrou exclusif sur la relation, ce qui empêchera les autres clients d'accéder à la relation, et même de la lire.

Voir aussi dbplus_xunlockrel().

Précédent | Sommaire | Suivant
dbplus_update | Niveau supérieur | dbplus_xunlockrel


dbplus_xunlockrel

(4.1.0 - 4.2.3 only, PECL)

dbplus_xunlockrel -- Lève un verrou exclusif posé sur une relation

Description

int dbplus_xunlockrel ( resource relation )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

dbplus_xunlockrel() lève le verrou exclusif, posé sur la relation, grâce à la fonction dbplus_xlockrel().

Précédent | Sommaire | Suivant
dbplus_xlockrel | Niveau supérieur | DBA


Fonctions dbx

Manuel PHP
Précédent Suivant

XXVII. Fonctions dbx

Introduction

Le module dbx est un module d'abstraction de base de données (db pour database (base de données) et 'X' pour toutes les bases supportées). Les fonctions dbx vous permettent d'accéder à toutes les bases supportées, avec la même convention. Les fonctions dbx elles-mêmes ne s'interfacent pas directement avec les bases de données, mais s'interfacent avec les modules utilisées pour supporter ces bases.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Pré-requis

Pour pouvoir utiliser une base de données avec le module dbx, le module doit être soit lié, soit chargé dans PHP et le module de base de données doit être supporté par le module dbx. Actuellement les bases suivantes sont supportées, et d'autres suivront :

  • FrontBase (disponible depuis PHP 4.1.0).

  • Microsoft SQL Server

  • MySQL

  • ODBC

  • PostgreSQL

  • Sybase-CT (disponible depuis PHP 4.2.0).

  • Oracle (oci8) (disponible depuis PHP 4.3.0).

  • SQLite (PHP 5).

La documentation nécessaire pour ajouter le support d'autres bases de données est disponible à l'adresse http://www.guidance.nl/php/dbx/doc/.

Installation

Il vous faut avoir ces fonctions compilées avec PHP (option de configuration --enable-dbx et toutes les bases que vous souhaitez utiliser. Par exemple, si vous voulez accéder à MySQL depuis dbx, vous devez aussi configurer PHP avec --with-mysql=[DIR].

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

dbx.colnames_case string

Les noms de colonnes peuvent être retournés comme "inchangés" ("unchanged"), ou bien "majuscules" ("uppercase") ou encore "minuscules" ("lowercase"). Cette directive peut être reconfigurée par une option de dbx_query().

Types de ressources

Il y a deux ressources utilisées par le module dbx. Le premier est le type link-object, pour les connexions aux bases de données, et l'autre est le type result-object qui contient les lignes lues.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

DBX_MYSQL (entier)

DBX_ODBC (entier)

DBX_PGSQL (entier)

DBX_MSSQL (entier)

DBX_FBSQL (entier)

DBX_OCI8 (entier) (disponible à partir de PHP 4.3.0)

DBX_SYBASECT (entier)

DBX_SQLITE (entier) (PHP 5)

DBX_PERSISTENT (entier)

DBX_RESULT_INFO (entier)

DBX_RESULT_INDEX (entier)

DBX_RESULT_ASSOC (entier)

DBX_RESULT_UNBUFFERED (entier) (PHP 5)

DBX_COLNAMES_UNCHANGED (entier) (uniquement disponible à partir de PHP 4.3.0)

DBX_COLNAMES_UPPERCASE (entier) (uniquement disponible à partir de PHP 4.3.0)

DBX_COLNAMES_LOWERCASE (entier) (uniquement disponible à partir de PHP 4.3.0)

DBX_CMP_NATIVE (entier)

DBX_CMP_TEXT (entier)

DBX_CMP_NUMBER (entier)

DBX_CMP_ASC (entier)

DBX_CMP_DESC (entier)

Table des matières
dbx_close -- Ferme une connexion à une base DBX
dbx_compare -- Compare deux lignes DBX afin de les trier
dbx_connect -- Ouvre une connexion à une base de données
dbx_error -- Rapporte le message d'erreur du dernier appel de fonction DBX
dbx_escape_string -- Protège une chaîne de caractères pour l'utiliser dans une requête
dbx_fetch_row -- Lit une ligne dans un résultat DBX ayant l'option DBX_RESULT_UNBUFFERED activée
dbx_query -- Envoie une requête et lit tous les résultats DBX
dbx_sort -- Trie un rÃ©sultat avec une fonction utilisateur

Précédent | Sommaire | Suivant
dbmreplace | Niveau supérieur | dbx_close


dbx_close

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

dbx_close -- Ferme une connexion à une base DBX

Description

int dbx_close ( object link_identifier )

Liste de paramètres

link_identifier

L'objet DBX à fermer.

Valeurs de retour

Retourne 1 en cas de succès, 0 si une erreur survient.

Exemples

Exemple 1. Exemple avec dbx_close()

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

echo "Connected successfully";
dbx_close($link);
?>

Notes

Note : Reportez-vous aussi à la documentation de la base de données que vous utilisez.

Voir aussi

dbx_connect()

Précédent | Sommaire | Suivant
Fonctions dbx | Niveau supérieur | dbx_compare


dbx_compare

(PHP 4 >= 4.1.0, PHP 5 <= 5.0.4)

dbx_compare -- Compare deux lignes DBX afin de les trier

Description

int dbx_compare ( array row_a, array row_b, string column_key [, int flags] )

dbx_compare() est une fonction d'aide pour dbx_sort(), afin d'aider aux tris.

Liste de paramètres

row_a

Première ligne

row_b

Seconde ligne

column_key

La colonne comparée

flags

Le paramètre flags peut prendre plusieurs valeurs :

  • DBX_CMP_ASC - ordre ascendant

  • DBX_CMP_DESC - ordre descendant

et le type utilisé pour la comparaison :

  • DBX_CMP_NATIVE - pas de conversion de type

  • DBX_CMP_TEXT - compare les lignes comme des chaînes

  • DBX_CMP_NUMBER - compare les lignes comme des nombres

Une direction de tri et un type de comparaison peuvent être combinés avec l'opérateur OR (|). La valeur par défaut pour l'option flags est DBX_CMP_ASC | DBX_CMP_NATIVE.

Valeurs de retour

Retourne 0 si row_a[$column_key] est égale à row_b[$column_key], et 1 ou -1 si le premier est plus grand ou plus petit que le dernier, respectivement, ou bien le contraire si l'option flags est configurée à DBX_CMP_DESC.

Exemples

Exemple 1. Exemple avec dbx_compare()

<?php
function user_re_order($a, $b)
{
    $rv = dbx_compare($a, $b, "parentid", DBX_CMP_DESC);
    if (!$rv) {
        $rv = dbx_compare($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Impossible de se connecter");

$result = dbx_query($link, "SELECT id, parentid, description FROM table ORDER BY id");
    // les données de $result sont désormais classées par id

dbx_sort($result, "user_re_order");
    // la date dans $result est maintenant ordonnée par parentid (descending), puis par id

dbx_close($link);
?>

Voir aussi

dbx_sort()

Précédent | Sommaire | Suivant
dbx_close | Niveau supérieur | dbx_connect


dbx_connect

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

dbx_connect -- Ouvre une connexion à une base de données

Description

object dbx_connect ( mixed module, string host, string database, string username, string password [, int persistent] )

Ouvre une connexion à une base de données.

Liste de paramètres

module

Le paramètre module peut être soit une chaîne, soit une constante. Les valeurs possibles de module sont listées ci-dessous, mais n'oubliez pas que cela fonctionnera que si le module associé est chargé.

  • DBX_MYSQL ou "mysql"

  • DBX_ODBC ou "odbc"

  • DBX_PGSQL ou "pgsql"

  • DBX_MSSQL ou "mssql"

  • DBX_FBSQL ou "fbsql" (disponible depuis PHP 4.1.0)

  • DBX_SYBASECT ou "sybase_ct" (disponible depuis PHP 4.2.0)

  • DBX_OCI8 ou "oci8" (disponible depuis PHP 4.3.0)

  • DBX_SQLITE ou "sqlite" (disponible depuis PHP 5)

host

L'hôte serveur SQL

database

Le nom de la base de données

username

Le nom d'utilisateur

password

Le mot de passe

persistent

Le paramètre persistent peut prendre la valeur DBX_PERSISTENT, pour créer une connexion persitente.

Les paramètres host, database, username et password sont attendus, mais ne sont pas toujours utiles, suivant la fonction de connexion de la base de données utilisée.

Valeurs de retour

Retourne un objet en cas de succès, FALSE si une erreur survient. Si une connexion a été faîte mais la base de données n'a pû être sélectionnée, la connexion sera fermée et FALSE sera retourné.

L'objet retourné object a trois propriétés :

database

Nom de la base de données sélectionnées

handle

Ressource de connexion de la base de données, et donc, elle peut être utilisée dans les fonctions spécifiques au module (si requis).

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password");
mysql_close($link->handle); // dbx_close($link) serait plus appropriée ici.
?>

module

Utiliser en interne par dbx uniquement et actuellement, correspond au numéro du module mentionné ci-dessus.

Exemples

Exemple 1. Exemple avec dbx_connect()

<?php
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password", DBX_PERSISTENT)
    or die("Impossible de se connecter");

echo "Connexion réussie";
dbx_close($link);
?>

Notes

Note : Reportez-vous à la documentation du module utilisé.

Voir aussi

dbx_close()

Précédent | Sommaire | Suivant
dbx_compare | Niveau supérieur | dbx_error


dbx_error

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

dbx_error -- Rapporte le message d'erreur du dernier appel de fonction DBX

Description

string dbx_error ( object link_identifier )

dbx_error() retourne une chaîne contenant le dernier message d'erreur du module sélectionné.

Liste de paramètres

link_identifier

L'objet DBX retourné par la foncion dbx_connect()

Valeurs de retour

Retourne une chaîne contenant le dernier message d'erreur du module sélectionné. S'il y a des connexions multiples sur le même module, seule la dernière erreur est fournie. S'il a des connexions sur différents modules, la dernière erreur du module est retourné (le module est alors représenté par link_identifier).

Exemples

Exemple 1. Exemple avec dbx_error()

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Impossible de se connecter");

$result = dbx_query($link, "select id from non_existing_table");
if ($result == 0) {
    echo dbx_error($link);
}
dbx_close($link);
?>

Notes

Note : Reportez-vous aussi à la documentation de la base de données que vous utilisez.

Le message de Microsoft SQL Server est en fait le résultat de la fonction mssql_get_last_message().

Le support des messages d'erreurs Oracle (oci8) ne sont pas implémentés (pour le moment).

Précédent | Sommaire | Suivant
dbx_connect | Niveau supérieur | dbx_escape_string


dbx_escape_string

(PHP 4 >= 4.3.0, PHP 5 <= 5.0.4)

dbx_escape_string -- Protège une chaîne de caractères pour l'utiliser dans une requête

Description

string dbx_escape_string ( object link_identifier, string text )

Protège une chaîne de caractères pour l'utiliser dans une requête.

Liste de paramètres

link_identifier

L'objet DBX retourné par la fonction dbx_connect()

text

La chaîne à échapper

Valeurs de retour

Retourne le texte text dont les caractères spéciaux ont été protégés (les guillemets, les anti-slash...). Si une erreur survient, NULL sera retourné.

Exemples

Exemple 1. Exemple avec dbx_escape_string()

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Impossible de se connecter");

$text = dbx_escape_string($link, "It\'s quoted and backslashed (\\).");
$result = dbx_query($link, "insert into tbl (txt) values ('" . $text . "')");
if ($result == 0) {
    echo dbx_error($link);
}
dbx_close($link);
?>

Voir aussi

dbx_query()

Précédent | Sommaire | Suivant
dbx_error | Niveau supérieur | dbx_fetch_row


dbx_fetch_row

(PHP 5 <= 5.0.4)

dbx_fetch_row -- Lit une ligne dans un résultat DBX ayant l'option DBX_RESULT_UNBUFFERED activée

Description

mixed dbx_fetch_row ( object result_identifier )

dbx_fetch_row() récupère les lignes depuis le jeu de résultats dont le drapeau DBX_RESULT_UNBUFFERED est défini.

Lorsque l'option DBX_RESULT_UNBUFFERED n'est pas activée dans la requête, dbx_fetch_row() va échouer car toutes les lignes auront été déjà lues dans le membre data.

De plus, le membre rows de l'objet de résultat est incrémenté à chaque lecture réussie de dbx_fetch_row().

Liste de paramètres

result_identifier

Un jeu de résultats retourné par la fonction dbx_query().

Valeurs de retour

Retourne un objet en cas de succès qui contient les mêmes informations que n'importe quelle ligne d'un résultat dbx, placé dans le membre data, incluant l'accès aux colonnes par index ou par nom, suivant l'utilisation des options avec dbx_guery().

Si une erreur survient, la fonction retournera 0 (e.g. lorsqu'aucune ligne n'est disponible).

Exemples

Exemple 1. Comment gérer la valeur retournée

<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

Voir aussi

dbx_query()

Précédent | Sommaire | Suivant
dbx_escape_string | Niveau supérieur | dbx_query


dbx_query

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

dbx_query -- Envoie une requête et lit tous les résultats DBX

Description

mixed dbx_query ( object link_identifier, string sql_statement [, int flags] )

Envoie une requête et lit tous les résultats.

Liste de paramètres

link_identifier

L'objet DBX retournée par la fonction dbx_connect()

sql_statement

La requête SQL.

flags

La colonne comparée

flags

Le paramètre flags sert à contrôler la quantité d'informations retournée. Il peut être n'importe quelle combinaisons par l'opérateur OR des constantes ci-après. Les constantes remplacent la configuration du php.ini.

DBX_RESULT_INDEX

Ce paramètre est toujours activé, c'est à dire que l'objet retourné dispose du membre data qui est un tableau à deux dimensions, indexé numériquement. Par exemple, dans l'expression data[2][3] 2 représente le numéro de ligne et 3 représente le numéro de colonne. Les premières lignes et colonnes sont indexées à 0.

Si DBX_RESULT_ASSOC est aussi spécifié, l'objet retourné contient en plus les informations liées à DBX_RESULT_INFO, même s'il n'a pas été spécifié.

DBX_RESULT_INFO

Cette option fournit des informations sur les colonnes, comme les noms des champs et leur type.

DBX_RESULT_ASSOC

Cette option fait que la valeur des champs peut être accessible avec le nom de la colonne, utilisé comme clé dans le tableau du membre data.

Les résultats ainsi associés sont des références sur les valeurs identifiées par les index numériques, ce qui fait que modifier data[0][0] fait que data[0]['nom_de_la_premiere_colonne'] sera aussi modifié.

DBX_RESULT_UNBUFFERED (PHP 5)

Cet option ne crée pas de propriété data et la propriété rows sera initialement positionnée à 0. Utilisez ce flag pour des jeux d'enregistrements importants et utilisez dbx_fetch_row() pour retrouver le résultat ligne par ligne.

dbx_fetch_row() retournera les lignes qui se conforment au flag de la requête. Par ailleurs, cela mettra à jour les lignes à chaque appel de la fonction.

DBX_COLNAMES_UNCHANGED (disponible depuis PHP PHP 4.3.0)

La casse du nom des colonnes retournées ne sera pas modifiée.

DBX_COLNAMES_UPPERCASE (disponible depuis PHP PHP 4.3.0)

Les noms de colonnes seront mis en majuscules.

DBX_COLNAMES_LOWERCASE (disponible depuis PHP PHP 4.3.0)

Les noms de colonnes seront mis en minuscules.

Notez que DBX_RESULT_INDEX est toujours active, indépendamment de la valeur de flags. Cela signifie que seules les combinaisons suivantes sont utiles :

  • DBX_RESULT_INDEX

  • DBX_RESULT_INDEX | DBX_RESULT_INFO

  • DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC - c'est la valeur par défaut, si flags est omis.

Valeurs de retour

dbx_query() retourne un objet dbx_result_object ou 1 en cas de succès (un objet de résultat ne sera retourné que pour les requêtes SQL qui retournent un résultat), ou 0 en cas d'erreur. L'objet résultant n'est retourné que si la requête donnée par sql_statement produit un jeu d'enregistrements. (i.e. une requête SELECT, même si le résultat est vide).

L'objet retourné a 5 membres (éventuellement 4, suivant les valeurs de flags) :

handle

Ceci est une ressource représentant la connexion à la base de données, et il peut être utilisé (si nécessaire) avec les fonctions spécialisées de la base.

<?php
$result = dbx_query($link, "SELECT id FROM table");
mysql_field_len($result->handle, 0);
?>

cols et rows

Ces deux membres contiennent respectivement le nombre de colonnes et de lignes.

<?php
$result = dbx_query($link, 'SELECT id FROM table');
echo $result->rows; // nombre de lignes
echo $result->cols; // nombre de champs
?>

info (optionnel)

Ce membre est retourné uniquement si DBX_RESULT_INFO ou DBX_RESULT_ASSOC sont spécifiés dans le paramètre flags. C'est un tableau à deux dimensions, avec deux lignes (name et type) pour lire les informations de colonnes.

Exemple 1. Listes les types et noms de colonnes

<?php
$result = dbx_query($link, 'SELECT id FROM table',
                     DBX_RESULT_INDEX | DBX_RESULT_INFO);

for ($i = 0; $i < $result->cols; $i++ ) {
    echo $result->info['name'][$i] . "\n";
    echo $result->info['type'][$i] . "\n";
}
?>
data

Ce membre contient les résultats obtenus, possiblement associés avec le nom de colonne, en fonction de la valeur du paramètre flags. Si DBX_RESULT_ASSOC est activé, il est possible d'utiliser aussi $result->data[2]["nom_de_la_colonne"].

Exemple 2. Afficher le contenu d'une base

<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

echo "<table>\n";
foreach ($result->data as $row) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

Exemple 3. Comment utiliser les requêtes UNBUFFERED

<?php

$result = dbx_query ($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Exemples

Exemple 4. Comment gérer la valeur retournée

<?php
$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Impossible de se connecter");

$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

if (is_object($result) ) {
    // ... faîtes des actions ici, voir les exemples détaillés ci-dessus ...
    // tout d'abord, afficher les noms et types de champs
    // puis, afficher un tableau contenant les valeurs retournées
} else {
    exit("Échec de la requête");
}

dbx_close($link);
?>

Notes

Note : Reportez-vous aussi à la documentation de la base de données que vous utilisez.

Les noms des colonnes pour les requêtes sur des bases de données Oracle sont retournés en minuscules.

Voir aussi

dbx_escape_string()
dbx_fetch_row()
dbx_connect()

Précédent | Sommaire | Suivant
dbx_fetch_row | Niveau supérieur | dbx_sort


dbx_sort

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

dbx_sort -- Trie un rÃ©sultat avec une fonction utilisateur

Description

bool dbx_sort ( object result, string user_compare_function )

Trie un rÃ©sultat depuis un appel Ã la fonction dbx_query() avec une fonction de trie personnalisÃ©e.

Liste de paramètres

result

Un jeu de rÃ©sultats retournÃ© par la fonction dbx_query().

user_compare_function

La fonction de comparaison dÃ©finie par l'utilisateur. Elle doit accepter deux arguments et retourner un entier, infÃ©rieur Ã , Ã©gal Ã , ou supÃ©rieur Ã 0 si le premier argument est considÃ©rÃ© comme, respectivement, infÃ©rieur Ã , Ã©gal Ã ou supÃ©rieur au second.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec dbx_sort()

<?php
function user_re_order($a, $b)
{
    $rv = dbx_compare($a, $b, "parentid", DBX_CMP_DESC);
    if (!$rv) {
        $rv = dbx_compare($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Impossible de se connecter");

$result = dbx_query($link, "SELECT id, parentid, description FROM tbl ORDER BY id");
    // Les donnÃ©es sont maintenant triÃ©es par id

dbx_sort($result, "user_re_order");
    // Les donnÃ©es sont maintenant triÃ©es par parentid dÃ©croissant, puis par id

dbx_close($link);
?>

Notes

Note : Il est toujours plus intÃ©ressant d'utiliser la clause SQL ORDER BY que la fonction dbx_sort(), si possible.

Voir aussi

dbx_compare()

Précédent | Sommaire | Suivant
dbx_query | Niveau supérieur | Direct IO


Direct IO

Manuel PHP
Précédent Suivant

XXVIII. Direct IO

Introduction

PHP supporte les entrées/sorties directes, comme décrites dans le Standard Posix (Section 6). Cela permet de réaliser des accès en lecture/écriture à un niveau inférieur aux fonctions proposées par le langage C (fopen, fread...). L'utilisation des fonctions DIO ne doit être envisagée que si le contrôle directe d'un périphérique est requis. Dans les autres cas, les fonctions système de fichier sont plus qu'adéquates.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Cette extension est disponible sur les plates-formes Windows depuis PHP 5.0.0.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Pour faire fonctionner ces fonctions, vous devez configurer PHP avec l'option --enable-dio.

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.

c (entier)

F_DUPFD (entier)

F_GETFD (entier)

F_GETFL (entier)

F_GETLK (entier)

F_GETOWN (entier)

F_RDLCK (entier)

F_SETFL (entier)

F_SETLK (entier)

F_SETLKW (entier)

F_SETOWN (entier)

F_UNLCK (entier)

F_WRLCK (entier)

O_APPEND (entier)

O_ASYNC (entier)

O_CREAT (entier)

O_EXCL (entier)

O_NDELAY (entier)

O_NOCTTY (entier)

O_NONBLOCK (entier)

O_RDONLY (entier)

O_RDWR (entier)

O_SYNC (entier)

O_TRUNC (entier)

O_WRONLY (entier)

S_IRGRP (entier)

S_IROTH (entier)

S_IRUSR (entier)

S_IRWXG (entier)

S_IRWXO (entier)

S_IRWXU (entier)

S_IWGRP (entier)

S_IWOTH (entier)

S_IWUSR (entier)

S_IXGRP (entier)

S_IXOTH (entier)

S_IXUSR (entier)

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension définit un type de ressource : un descripteur de fichier retourné par dio_open().

Table des matières
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és
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

Précédent | Sommaire | Suivant
dbx_sort | Niveau supérieur | dio_close


dio_close

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_close -- Ferme l'accès au fichier

Description

void dio_close ( resource fd )

dio_close() ferme l'accès au fichier représenté par la ressource fd.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Fermeture d'une ressource de fichier

<?php
$fd = dio_open('/dev/ttyS0', O_RDWR);

dio_close($fd);
?>

Voir aussi

dio_open()

Précédent | Sommaire | Suivant
Direct IO | Niveau supérieur | dio_fcntl


dio_fcntl

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_fcntl -- Exécute une fonction fichier de langage C

Description

mixed dio_fcntl ( resource fd, int cmd [, mixed args] )

dio_fcntl() exécute l'opération cmd sur le fichier représenté par la ressource fd. Certaines commandes demandent des arguments supplémentaires qui sont fournis dans l'argument args.

Note : Cette fonction n'est pas implémentée sous Windows.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

cmd

Peut être une de ces opérations suivantes :

  • F_SETLK - Le verrou est posé ou levé. Si le verrou appartient à un autre utilisateur, dio_fcntl() retourne -1.

  • F_SETLKW - identique à F_SETLK, mais si le verrou appartient à quelqu'un d'autre, dio_fcntl() attend la levée du verrou.

  • F_GETLK - dio_fcntl() retourne un tableau associatif (comme décrit ci-dessus) si un autre utilisateur empêche la poste d'un verrou. S'il n'y a aucun empêchement, l'entrée "type" prendra la valeur F_UNLCK.

  • F_DUPFD - trouve les numéros de ressource de fichier les plus petits, disponibles, inférieurs ou égales à args et les retourne.

  • F_SETFL - Configure les descripteurs de fichier à la valeur spécifiée par args, qui peut être O_APPEND, O_NONBLOCK ou O_ASYNC. Pour utiliser O_ASYNC vous aurez besoin de l'extension PCNTL.

args

args est un tableau associatif lorsque cmd vaut F_SETLK ou F_SETLLW, avec les entrées suivantes :

  • "start" - offset de début de verrou

  • "length" - taille de la surface verrouillée. Zéro indique la fin du fichier

  • "wenth" - 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);
?>

Précédent | Sommaire | Suivant
dio_close | Niveau supérieur | dio_open


dio_open

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_open -- Ouvre un nouveau fichier avec les permissions spécifiés

Description

resource dio_open ( string filename, int flags [, int mode] )

dio_open() ouvre un accès à un fichier et retourne une ressource de fichier.

Liste de paramètres

filename

Le fichier à ouvrir.

flags

Le paramètre flags peut inclure n'importe quelle combinaison des drapeaux suivants :

  • O_CREAT - crée le fichier, s'il n'existe pas.

  • O_EXCL - si O_CREAT et O_EXCL sont utilisés, dio_open() échouera si le fichier existe déjà.

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

mode

Si flags est O_CREAT, mode sera le mode du fichier (permission de création).

  • O_RDONLY - ouvre un fichier en lecture.

  • O_WRONLY - ouvre un fichier en écriture.

  • O_RDWR - ouvre un fichier en lecture et écriture.

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

Précédent | Sommaire | Suivant
dio_fcntl | Niveau supérieur | dio_read


dio_read

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_read -- Lit les octets dans un fichier

Description

string dio_read ( resource fd [, int len] )

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

Précédent | Sommaire | Suivant
dio_open | Niveau supérieur | dio_seek


dio_seek

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_seek -- Déplace le pointeur interne de fichier

Description

int dio_seek ( resource fd, int pos [, int whence] )

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

Précédent | Sommaire | Suivant
dio_read | Niveau supérieur | dio_stat


dio_stat

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_stat -- Lit des informations sur le fichier

Description

array dio_stat ( resource fd )

dio_stat() retourne les informations sur le fichier.

Liste de paramètres

fd

La ressource de fichier retournée par dio_open().

Valeurs de retour

Retourne un tableau associatif avec les clés suivantes :

  • "device" - device

  • "inode" - inode

  • "mode" - mode

  • "nlink" - nombre de liens

  • "uid" - user id

  • "gid" - group id

  • "device_type" - type de device (si inode device)

  • "size" - taille totale en octets

  • "blocksize" - taille du bloc

  • "blocks" - nombre de blocs alloués

  • "atime" - date du dernier accès

  • "mtime" - date de dernière modification

  • "ctime" - date de dernier changement

En cas d'erreur, dio_stat() retourne NULL.

Précédent | Sommaire | Suivant
dio_seek | Niveau supérieur | dio_tcsetattr


dio_tcsetattr

(PHP 4 >= 4.3.0, PHP 5 <= 5.0.4)

dio_tcsetattr -- Modifie les attributs du terminal et le taux de baud du port série

Description

bool dio_tcsetattr ( resource fd, array options )

dio_tcsetattr() modifie les attributs du terminal et le taux de baud du port série de ressource.

Note : Cette fonction n'est pas implémentée sous Windows.

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

?>

Précédent | Sommaire | Suivant
dio_stat | Niveau supérieur | dio_truncate


dio_truncate

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_truncate -- Tronque un fichier

Description

bool dio_truncate ( resource fd, int offset )

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.

Note : Cette fonction n'est pas implémentée sous Windows.

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, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
dio_tcsetattr | Niveau supérieur | dio_write


dio_write

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_write -- Écrit des données dans le fichier avec la possibilité de tronquer sa longueur

Description

int dio_write ( resource fd, string data [, int len] )

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

Précédent | Sommaire | Suivant
dio_truncate | Niveau supérieur | Accès aux dossiers


Accès aux dossiers

Manuel PHP
Précédent Suivant

XXIX. Accès aux dossiers

Introduction

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

DIRECTORY_SEPARATOR (string)

PATH_SEPARATOR (string)

Note : La constante PATH_SEPARATOR a été introduite en PHP 4.3.0-RC2.

Voir aussi

Pour des fonctions connexes telles que dirname(), is_dir(), mkdir() et rmdir(), voyez donc la section système de fichiers.

Table des matières
chdir -- Change de dossier
chroot -- Change le dossier racine
dir -- Classe de dossier DIR
closedir -- Ferme le pointeur sur le dossier
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

Précédent | Sommaire | Suivant
dio_write | Niveau supérieur | chdir


chdir

(PHP 3, PHP 4, PHP 5)

chdir -- Change de dossier

Description

bool chdir ( string directory )

chdir() change le dossier courant de PHP en directory.

Liste de paramètres

directory

Le nouveau répertoire courant

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec chdir()

<?php

// dossier courant
echo getcwd() . "\n";

chdir('public_html');

// dossier courant
echo getcwd() . "\n";

?>

L'exemple ci-dessus va afficher :

/home/vincent
/home/vincent/public_html

Notes

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi

getcwd()

Précédent | Sommaire | Suivant
Accès aux dossiers | Niveau supérieur | chroot


chroot

(PHP 4 >= 4.0.5, PHP 5)

chroot -- Change le dossier racine

Description

bool chroot ( string directory )

chroot() change la racine du script en cours, et la remplace par directory.

Cette fonction n'est disponible que si votre système la supporte et que vous utilisez le SAPI CLI, CGI ou Embed SAPI. De plus, cette fonction nécessite les privilèges d'administrateur.

Liste de paramètres

directory

Le nouveau répertoire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction n'est pas implémentée sous Windows.

Précédent | Sommaire | Suivant
chdir | Niveau supérieur | dir


dir

(PHP 3, PHP 4, PHP 5)

dir -- Classe de dossier DIR

Description

class dir {

dir ( string directory )

string path

resource handle

string read ( void )

void rewind ( void )

void close ( void )

}

Un mécanisme pseudo-objet permet la lecture d'un dossier. L'argument directory est ouvert. Deux propriétés sont disponibles une fois le dossier ouvert : le pointeur peut être utilisé avec d'autres fonctions telles que readdir(), rewinddir() et closedir(). Le chemin du dossier est le chemin fourni lors de la construction de l'objet. Trois méthodes sont disponibles : la lecture, la remise à zéro et la fermeture de dossier.

Exemples

Exemple 1. Exemple avec dir()

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
$d = dir("/etc/php5");
echo "Pointeur : " . $d->handle . "\n";
echo "Chemin : " . $d->path . "\n";
while (false !== ($entry = $d->read())) {
   echo $entry . "\n";
}
$d->close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Pointeur : Resource id #2
Chemin : /etc/php5
.
..
apache
cgi
cli

Notes

Note : L'ordre dans lequel les entrées du dossier sont retournées avec la méthode read dépend de votre système.

Note : Ceci défini la classe interne Directory, ce qui signifie que vous ne pourrez pas nommer une nouvelle classe avec ce nom. Pour une liste complète des classes prédéfinies en PHP, lisez classes prédéfinies.

Précédent | Sommaire | Suivant
chroot | Niveau supérieur | closedir


closedir

(PHP 3, PHP 4, PHP 5)

closedir -- Ferme le pointeur sur le dossier

Description

void closedir ( resource dir_handle )

closedir() ferme le pointeur de dossier dir_handle. Le dossier devait avoir été ouvert avec opendir().

Liste de paramètres

dir_handle

La ressource de dossier ouverte précédemment avec opendir().

Exemples

Exemple 1. Exemple avec closedir()

<?php
$dir = "/etc/php5/";

// Ouverture d'un dossier connu, lecture du dossier et assignation à
// une variable, ensuite fermeture du dossier
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        $directory = readdir($dh);
        closedir($dh);
    }
}
?>

Précédent | Sommaire | Suivant
dir | Niveau supérieur | getcwd


getcwd

(PHP 4, PHP 5)

getcwd -- Retourne le dossier de travail courant

Description

string getcwd ( void )

Retourne le dossier de travail courant.

Valeurs de retour

Retourne le dossier de travail courant en cas de réussite ou FALSE en cas d'échec.

Sur quelques versions d'Unix, getcwd() peut retourner FALSE si tous les dossiers parents n'ont pas le mode écriture ou le mode recherche de défini, même si le dossier courant les a. Voir la fonction chmod() pour plus d'informations sur les modes de permissions.

Exemples

Exemple 1. Exemple avec getcwd()

<?php

// dossier courant
echo getcwd() . "\n";

chdir('cvs');

// dossier courant
echo getcwd() . "\n";

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

/home/didou
/home/didou/cvs

Voir aussi

chdir()
chmod()

Précédent | Sommaire | Suivant
closedir | Niveau supérieur | opendir


opendir

(PHP 3, PHP 4, PHP 5)

opendir -- Ouvre un dossier, et récupère un pointeur dessus

Description

resource opendir ( string path [, resource context] )

opendir() retourne un pointeur sur un dossier qui pour être utilisé avec les fonctions closedir(), readdir() et rewinddir().

Liste de paramètres

path

Le chemin du répertoire à ouvrir

context

Pour la description du paramètre context, référez-vous à la section des flux du manuel.

Valeurs de retour

Retourne la ressource de dossier en cas de succès ou FALSE en cas d'échec.

Si le paramètre path n'est pas un dossier valide, ou si le dossier ne peut être accédé pour des raisons de permissions ou des erreurs liées au système de fichiers, opendir() retourne FALSE et génère une erreur PHP de niveau E_WARNING. Vous pouvez supprimer cette erreur en ajoutant '@' avant le nom de la fonction.

Historique

Version | Description
5.0.0 | path supporte l'enveloppe URL ftp://
4.3.0 | path peut aussi être n'importe quel URL qui supporte le listage de dossiers, par contre, seul l'enveloppe URL file:// supporte ceci en PHP 4.

Exemples

Exemple 1. Exemple avec opendir()

<?php
$dir = "/tmp/php5";

// Ouvre un dossier bien connu, et liste tous les fichiers
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            echo "fichier : $file : type : " . filetype($dir . $file) . "\n";
        }
        closedir($dh);
    }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

fichier : . : type : dir
fichier : .. : type : dir
fichier : apache : type : dir
fichier : cgi : type : dir
fichier : cli : type : dir

Voir aussi

is_dir()
readdir()
Dir

Précédent | Sommaire | Suivant
getcwd | Niveau supérieur | readdir


readdir

(PHP 3, PHP 4, PHP 5)

readdir -- Lit une entrée du dossier

Description

string readdir ( resource dir_handle )

readdir() retourne le nom du fichier suivant dans le dossier identifié par dir_handle. Les noms sont retournés dans l'ordre qu'ils sont enregistrés dans le système de fichiers.

Liste de paramètres

dir_handle

La ressource de dossier ouverte précédemment avec opendir().

Valeurs de retour

Retourne le nom du fichier en cas de réussite ou FALSE en cas d'échec.

Exemples

Exemple 1. Liste de tous les fichiers dans le répertoire

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
// Notez que !== n'existait pas avant 4.0.0-RC2

if ($handle = opendir('/chemin/vers/fichiers')) {
    echo "Directory handle: $handle\n";
    echo "Files:\n";

    /* Ceci est la façon correcte de traverser un dossier. */
    while (false !== ($file = readdir($handle))) {
        echo "$file\n";
    }

    /* Ceci est la MAUVAISE façon de traverser un dossier. */
    while ($file = readdir($handle)) {
        echo "$file\n";
    }

    closedir($handle);
}
?>

Exemple 2. Liste de tous les fichiers dans le répertoire courant et enlève les . et ..

<?php
if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            echo "$file\n";
        }
    }
    closedir($handle);
}
?>

Voir aussi

is_dir()
glob()

Précédent | Sommaire | Suivant
opendir | Niveau supérieur | rewinddir


rewinddir

(PHP 3, PHP 4, PHP 5)

rewinddir -- Retourne à la première entrée du dossier

Description

void rewinddir ( resource dir_handle )

rewinddir() retourne à la première entrée du dossier identifiée par dir_handle.

Liste de paramètres

dir_handle

La ressource de dossier ouverte précédemment avec opendir().

Précédent | Sommaire | Suivant
readdir | Niveau supérieur | scandir


scandir

(PHP 5)

scandir -- Liste les fichiers et dossiers dans un dossier

Description

array scandir ( string directory [, int sorting_order [, resource context]] )

Retourne un tableau de fichier et dossier, issus de directory.

Liste de paramètres

directory

Le dossier qui sera scanné.

sorting_order

Par défaut, le tri est en ordre alphabétique. Si le paramètre optionnel sorting_order est utilisé (mis à 1), alors le tri sera en ordre alphabétique inverse.

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.

Exemples

Exemple 1. Un simple exemple avec scandir()

<?php
$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Exemple 2. Alternatives à scandir() pour PHP 4

<?php
$dir = "/tmp";
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
}

sort($files);

print_r($files);

rsort($files);

print_r($files);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Notes

Astuce : Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Annexe N pour une liste des protocoles URL supportés.

Voir aussi

opendir()
readdir()
glob()
is_dir()
sort()

Précédent | Sommaire | Suivant
rewinddir | Niveau supérieur | Fonctions DOM


Fonctions DOM

Manuel PHP
Précédent Suivant

XXX. Fonctions DOM

Introduction

L'extension DOM vous permet d'utiliser des documents XML via l'API DOM de PHP 5.

Pour PHP 4, utilisez l'extension DOM XML.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Classes pré-définies

L'API de ce module suit, autant que possible, les standards niveau 3 de DOM. En conséquent, l'API est pleinement orientée objets. Il est bien d'avoir les standards DOM sous la main lors de l'utilisation de cette extension.

Ce module définit plusieurs classes, qui sont expliquées dans les tableaux suivants. Les classes avec un équivalent dans les standards sont nommées DOMxxx.

DOMAttr

Étend DOMNode. L'interface DOMAttr représente un attribut dans l'objet DOMElement.

Constructeur

  • DOMAttr->__construct() - construit un nouvel objet DOMAttr

Méthodes

  • DOMAttr->isId() - Vérifie si un attribut est un ID défini

Propriétés

Tableau 1.

Nom | Type | Lecture seule | Description
name | string | oui | Le nom de l'attribut
ownerElement | DOMElement | oui | L'élément qui contient l'attribut
schemaTypeInfo | bool | oui | Pas encore implémenté, retourne toujours NULL
specified | bool | oui | Pas encore implémenté, retourne toujours NULL
value | string | non | La valeur de l'attribut

DOMCharacterData

Étend DOMNode.

Méthodes

  • DOMCharacterData->appendData() - Ajoute une chaîne à la fin des données du noeud

  • DOMCharacterData->deleteData() - Efface une rangée de caractères du noeud

  • DOMCharacterData->insertData() - Insère une chaîne à une position 16-bit spécifiée

  • DOMCharacterData->replaceData() - Remplace une sous-chaîne d'un noeud DOMCharacterData

  • DOMCharacterData->substringData() - Extrait une rangée de données depuis le noeud

Propriétés

Tableau 2.

Nom | Type | Lecture seule | Description
data | string | non | Le contenu du noeud
length | int | oui | La longueur du contenu

DOMComment

Étend DOMCharacterData.

Constructeur

  • DOMComment->__construct() - construit un nouvel objet DOMComment

DOMDocument

Étend DOMNode.

Constructeur

  • DOMDocument->__construct() - construit un nouvel objet DOMDocument

Méthodes

  • DOMDocument->createAttribute() - Crée un nouvel attribut

  • DOMDocument->createAttributeNS() - Crée un nouvel noeud d'attribut avec un espace de nom associé

  • DOMDocument->createCDATASection() - Crée un nouveau noeud cdata

  • DOMDocument->createComment() - Crée un nouveau noeud de commentaire

  • DOMDocument->createDocumentFragment() - Crée un nouveau fragment de document

  • DOMDocument->createElement() - Crée un nouvel élément

  • DOMDocument->createElementNS() - Crée un nouvel élément avec un espace de noms associé

  • DOMDocument->createEntityReference() - Crée une nouvelle entité de référence

  • DOMDocument->createProcessingInstruction() - Crée un nouveau noeud PI

  • DOMDocument->createTextNode() - Crée un nouveau noeud de texte

  • DOMDocument->getElementById() - Recherche un élément avec un ID précis

  • DOMDocument->getElementsByTagName() - Recherche tous les éléments ayant un tag portant un nom donné

  • DOMDocument->getElementsByTagNameNS() - Recherche tous les éléments ayant un tag portant un nom donné dans un espace de noms spécifié

  • DOMDocument->importNode() - Importe un noeud dans le document courant

  • DOMDocument->load() - Charge du XML depuis un fichier

  • DOMDocument->loadHTML() - Charge du HTML depuis une chaîne de caractères

  • DOMDocument->loadHTMLFile() - Charge du HTML depuis un fichier

  • DOMDocument->loadXML() - Charge du XML depuis une chaîne de caractères

  • DOMDocument->normalizeDocument() - Normalise un document

  • DOMDocument->relaxNGValidate() - Effectue une validation relaxNG sur le document

  • DOMDocument->relaxNGValidateSource() - Effectue une validation relaxNG sur le document

  • DOMDocument->registerNodeClass() - Enregistre une classe étendue utilisée pour créer un type d'un noeud de base (non standard DOM)

  • DOMDocument->save() - Sauvegarde l'arbre interne XML dans un fichier

  • DOMDocument->saveHTML() - Sauvegarde le document interne dans une chaîne de caractères en utilisant un formatage HTML

  • DOMDocument->saveHTMLFile() - Sauvegarde le 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 basé sur un schéma

  • DOMDocument->schemaValidateSource() - Valide un document basé sur un schéma

  • DOMDocument->validate() - Valide un document en se basant sur sa DTD

  • DOMDocument->xinclude() - Remplace les XIncludes dans un objet DOMDocument

Propriétés

Tableau 3.

Nom | Type | Lecture seule | Description
actualEncoding | string | oui |
config | DOMConfiguration | oui |
doctype | DOMDocumentType | oui | La déclaration de type de document associée avec ce document.
documentElement | DOMElement | oui | C'est un attribut de convenance qui permet l'accès direct à l'enfant d'un noeud qui est l'élément document de ce document.
documentURI | string | non | La localisation du document ou NULL si non défini.
encoding | string | non |
formatOutput | bool | non |
implementation | DOMImplementation | oui | L'objet DOMImplementation qui représente ce document.
preserveWhiteSpace | bool | non | Ne pas supprimer les espaces redondants. Vaut TRUE par défaut.
recover | bool | non |
resolveExternals | bool | non | Définir à TRUE pour charger les entités externes depuis une déclaration doctype. Ceci est utile pour inclure des entités correspondants à des caractères dans vos documents XML.
standalone | bool | non |
strictErrorChecking | bool | non | Envoie une DOMException en cas d'erreurs. Vaut par défaut TRUE.
substituteEntities | bool | non |
validateOnParse | bool | non | Charge et valide à nouveau la DTD. Vaut par défaut FALSE.
version | string | non |
xmlEncoding | string | oui | Un attribut spécifiant, en tant que partie de la déclaration XML, l'encodage de ce document. Il vaut NULL lorsqu'il n'et pas spécifié ou lorsqu'il n'est pas connu, par exemple, lorsque le document a été créé en mémoire.
xmlStandalone | bool | non | Un attribut spécifiant, en tant que partie de la déclaration XML, si oui ou non le document est autonome. Il vaut FALSE si non spécifié.
xmlVersion | string | non | Un attribut spécifiant, en tant que partie de la déclaration XML, le numéro de version de ce document. S'il n'y a pas de déclaration et si le document supporte la fonctionnalité "XML", la valeur sera "1.0".

DOMDocumentFragment

Étend DOMNode.

Méthodes

  • function.dom-domdocumentfragment-appendxml - Ajoute des données raw XML (non standard DOM)

DOMDocumentType

Étend DOMNode

Chaque DOMDocument a un attribut doctype de valeur soit NULL, soit un objet DOMDocumentType.

Propriétés

Tableau 4.

Nom | Type | Lecture seule | Description
publicId | string | oui | L'identifiant public du sous-ensemble externe.
systemId | string | oui | L'identifiant système du sous-ensemble externe. Il peut être une URI absolue ou non.
name | string | oui | Le nom de la DTD ; i.e. le nom suivant immédiatement le mot clé DOCTYPE
entities | DOMNamedNodeMap | oui | Un DOMNamedNodeMap contenant les entités générales, externes et internes, déclarées dans la DTD.
notations | DOMNamedNodeMap | oui | Un DOMNamedNodeMap contenant les notations déclarées dans la DTD.
internalSubset | string | oui | Le sous-ensemble interne en tant que chaîne de caractères ou NULL s'il n'y en a pas. Ceci ne contient pas les crochets délimitants.

DOMElement

Étend DOMNode.

Constructeur

  • DOMElement->__construct() - construit un nouvel objet DOMElement

Méthodes

  • DOMElement->getAttribute() - Retourne la valeur d'un attribut

  • DOMElement->getAttributeNode() - Retourne le noeud d'un attribut

  • DOMElement->getAttributeNodeNS() - Retourne le noeud d'un attribut

  • DOMElement->getAttributeNS() - Retourne la valeur d'un attribut

  • DOMElement->getElementsByTagName() - Récupère les éléments par le nom de leurs tags

  • DOMElement->getElementsByTagNameNS() - Récupère les éléments par leur namespaceURI et leur localName

  • DOMElement->hasAttribute() - Vérifie si un attribut existe

  • DOMElement->hasAttributeNS() - Vérifie si un attribut existe

  • DOMElement->removeAttribute() - Supprime un attribut

  • DOMElement->removeAttributeNode() - Supprime un attribut

  • DOMElement->removeAttributeNS() - Supprime un attribut

  • DOMElement->setAttribute() - Ajoute un nouvel attribut

  • DOMElement->setAttributeNode() - Ajoute un nouvel attribut à un élément

  • DOMElement->setAttributeNodeNS() - Ajoute un nouvel attribut à un élément

  • DOMElement->setAttributeNS() - Ajoute un nouvel attribut

  • DOMElement->setIdAttribute() - Déclare l'attribut ID

  • DOMElement->setIdAttributeNode() - Déclare l'attribut ID

  • DOMElement->setIdAttributeNS() - Déclare l'attribut ID

Propriétés

Tableau 5.

Nom | Type | Lecture seule | Description
schemaTypeInfo | bool | oui | Pas encore implémenté, retourne toujours NULL
tagName | string | oui | Le nom de l'élément

DOMEntity

Étend DOMNode

Cette interface représente une entité connue, analysée ou non, du document XML.

Propriétés

Tableau 6.

Nom | Type | Lecture seule | Description
publicId | string | oui | L'identifiant public associé à l'entité si spécifiée, NULL sinon.
systemId | string | oui | L'identifiant système associé à l'entité si spécifié, NULL sinon. Ceci peut être une URI absolue ou non.
notationName | string | oui | Pour les entités non-analysées, le nom de la notation pour cette entité. Pour les entités analysées, ceci vaut NULL.
actualEncoding | string | non | Un attribut spécifiant l'encodage utilisé pour cette entité au moment de l'analyse, lorsque c'est une entité analysée externe. Ceci vaut NULL si c'est une entité du sous-ensemble externe ou si elle n'est pas connue.
encoding | string | oui | Un attribut spécifiant, en tant que partie de la déclaration texte, l'encodage de cette entité, lorsque c'est une entité analysée externe. Ceci vaut NULL sinon.
version | string | oui | Un attribut spécifiant, en tant que partie de la déclaration texte, le numéro de version de cette entité, lorsque c'est une entité analysée externe. Ceci vaut NULL sinon.

DOMEntityReference

Étend DOMNode.

Constructeur

  • DOMEntityReference->__construct() - construit un nouvel objet DOMEntityReference

DOMException

Les opérations DOM lancent des exceptions sous des circonstances particulières, i.e., lorsqu'une opération est impossible à effectuer pour des raisons de logique.

Voir aussi Chapitre 20.

Propriétés

Tableau 7.

Nom | Type | Lecture seule | Description
code | int | oui | Un entier indiquant le type d'erreur générée

DOMImplementation

L'interface DOMImplementation fournit un nombre de méthodes pour effectuer des opérations qui sont indépendant de toute instance du model objet du document.

Constructeur

  • DOMImplementation->__construct() - construit un nouvel objet DOMImplementation

Méthodes

  • DOMImplementation->createDocument() - Crée un objet DOM Document du type spécifié avec ces éléments

  • DOMImplementation->createDocumentType() - Crée un objet DOMDocumentType vide

  • DOMImplementation->hasFeature() - Test si l'implémentation DOM implémente une fonctionnalité spécifique

DOMNode

Méthodes

  • DOMNode->appendChild() - Ajoute un nouvel enfant à la fin des enfants

  • DOMNode->cloneNode() - Clone un noeud

  • DOMNode->hasAttributes() - Vérifie si un noeud possède des attributs

  • DOMNode->hasChildNodes() - Vérifie si un noeud possède des enfants

  • DOMNode->insertBefore() - Ajoute un nouvel enfant juste avant un noeud référencé

  • DOMNode->isDefaultNamespace() - Vérifie si l'URI de l'espace de noms spécifiée est l'espace de noms par défaut

  • DOMNode->isSameNode() - Indique si deux noeuds sont identiques

  • DOMNode->isSupported() - Vérifie si une fonctionnalité est supporté par une version spécifique

  • DOMNode->lookupNamespaceURI() - Retourne l'URI de l'espace de noms du noeud basé sur le préfixe

  • DOMNode->lookupPrefix() - Retourne le préfixe de l'espace de noms d'un noeud, basé sur l'URI de l'espace de noms

  • DOMNode->normalize() - Normalise le noeud

  • DOMNode->removeChild() - Supprime un enfant de la liste des enfants

  • DOMNode->replaceChild() - Remplace un enfant

Propriétés

Tableau 8.

Nom | Type | Lecture seule | Description
nodeName | string | oui | Retourne le nom le plus précis possible pour le type de noeud courant
nodeValue | string | non | La valeur de ce noeud, dépendant de son type.
nodeType | int | oui | Récupère le type du noeud. Une des constantes XML_xxx_NODE prédéfinies
parentNode | DOMNode | oui | Le parent de ce noeud
childNodes | DOMNodeList | oui | Un DOMNodeList qui contient tous les enfants de ce noeud. S'il n'y a pas d'enfant, ce sera un DOMNodeList vide.
firstChild | DOMNode | oui | Le premier enfant de ce noeud. S'il n'y pas de tel noeud, ceci retourne NULL.
lastChild | DOMNode | oui | Le dernier enfant de ce noeud. S'il n'y a pas de tel noeud, ceci retourne NULL.
previousSibling | DOMNode | oui | Le noeud précédent immédiatement ce noeud. S'il n'y a pas de tel noeud, ceci retourne NULL.
nextSibling | DOMNode | oui | Le noeud suivant immédiatement ce noeud. S'il n'y a pas de tel noeud, ceci retourne NULL.
attributes | DOMNamedNodeMap | oui | Un DOMNamedNodeMap contenant les attributs de ce noeud (si c'est un DOMElement) ou NULL sinon.
ownerDocument | DOMDocument | oui | Un objet DOMDocument associé à ce noeud.
namespaceURI | string | oui | L'URI de l'espace de noms de ce noeud, ou NULL si non spécifié.
prefix | string | non | Le préfixe de l'espace de noms de ce noeud, ou NULL si non spécifié.
localName | string | oui | Retourne la partie locale du nom qualifié de ce noeud.
baseURI | string | oui | La base absolue de l'URI de ce noeud ou NULL si l'implémentation n'est pas arrivée à obtenir une URI absolue.
textContent | string | non | Cet attribut retourne le contenu texte de ce noeud et ces descendants.

DOMNodeList

Méthodes

  • DOMNodelist->item() - Retrieves a node specified by index

Propriétés

Tableau 9.

Nom | Type | Lecture seule | Description
length | int | oui | Le nombre de noeuds dans la liste. La plage des indices des noeuds enfants valides est de 0 à length - 1 inclusivement.

DOMNotation

Étend DOMNode

Propriétés

Tableau 10.

Nom | Type | Lecture seule | Description
publicId | string | oui |
systemId | string | oui |

DOMProcessingInstruction

Étend DOMNode.

Constructeur

  • DOMProcessingInstruction->__construct() - construit un nouvel objet DOMProcessingInstruction

Propriétés

Tableau 11.

Nom | Type | Lecture seule | Description
target | string | oui |
data | string | non |

DOMText

Étend DOMCharacterData.

Constructeur

  • DOMText->__construct() - construit un nouvel objet DOMText

Méthodes

  • DOMText->isWhitespaceInElementContent() - Indique si ce noeud de texte contient des espaces

  • DOMText->splitText() - Sépare le noeud en deux noeuds à une position spécifique

Propriétés

Tableau 12.

Nom | Type | Lecture seule | Description
wholeText | string | oui |

DOMXPath

Constructeur

  • DOMXPath->__construct() - Construit un nouvel objet DOMXPath

Méthodes

  • DOMXPath->registerNamespace() - Enregistre l'espace de noms avec l'objet DOMXpath

  • DOMXPath->evaluate() - Évalue l'expression XPath donnée et retourne le résultat écrit

  • DOMXPath->query() - Évalue l'expression XPath donnée

Propriétés

Tableau 13.

Nom | Type | Lecture seule | Description
document | DOMDocument |  |

Exemples

La plupart des exemples de cette référence requièrent un fichier XML. Nous utiliserons le fichier book.xml qui contient ce qui suit :

Exemple 1. chapter.xml

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

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.

Tableau 14. Constantes XML

Constante | Valeur | Description
XML_ELEMENT_NODE (entier) | 1 | Le noeud est un DOMElement
XML_ATTRIBUTE_NODE (entier) | 2 | Le noeud est un DOMAttr
XML_TEXT_NODE (entier) | 3 | Le noeud est un DOMText
XML_CDATA_SECTION_NODE (entier) | 4 | Le noeud est un DOMCharacterData
XML_ENTITY_REF_NODE (entier) | 5 | Le noeud est un DOMEntityReference
XML_ENTITY_NODE (entier) | 6 | Le noeud est un DOMEntity
XML_PI_NODE (entier) | 7 | Le noeud est un DOMProcessingInstruction
XML_COMMENT_NODE (entier) | 8 | Le noeud est un DOMComment
XML_DOCUMENT_NODE (entier) | 9 | Le noeud est un DOMDocument
XML_DOCUMENT_TYPE_NODE (entier) | 10 | Le noeud est un DOMDocumentType
XML_DOCUMENT_FRAG_NODE (entier) | 11 | Le noeud est un DOMDocumentFragment
XML_NOTATION_NODE (entier) | 12 | Le noeud est un DOMNotation
XML_HTML_DOCUMENT_NODE (entier) | 13 |
XML_DTD_NODE (entier) | 14 |
XML_ELEMENT_DECL_NODE (entier) | 15 |
XML_ATTRIBUTE_DECL_NODE (entier) | 16 |
XML_ENTITY_DECL_NODE (entier) | 17 |
XML_NAMESPACE_DECL_NODE (entier) | 18 |
XML_ATTRIBUTE_CDATA (entier) | 1 |
XML_ATTRIBUTE_ID (entier) | 2 |
XML_ATTRIBUTE_IDREF (entier) | 3 |
XML_ATTRIBUTE_IDREFS (entier) | 4 |
XML_ATTRIBUTE_ENTITY (entier) | 5 |
XML_ATTRIBUTE_NMTOKEN (entier) | 7 |
XML_ATTRIBUTE_NMTOKENS (entier) | 8 |
XML_ATTRIBUTE_ENUMERATION (entier) | 9 |
XML_ATTRIBUTE_NOTATION (entier) | 10 |

Tableau 15. Constantes DOMException

Constante | Valeur | Description
DOM_INDEX_SIZE_ERR (entier) | 1 | Si l'index ou la taille est négatif ou plus grand que la valeur autorisée.
DOMSTRING_SIZE_ERR (entier) | 2 | Si la rangée spécifiée de texte ne tient pas dans le DOMString.
DOM_HIERARCHY_REQUEST_ERR (entier) | 3 | Si un noeud est inséré à un endroit non autorisé
DOM_WRONG_DOCUMENT_ERR (entier) | 4 | Si un noeud est utilisé dans un document autre que celui qui l'a créé.
DOM_INVALID_CHARACTER_ERR (entier) | 5 | Si un caractère invalide ou non autorisé est spécifié, par exemple, dans un nom.
DOM_NO_DATA_ALLOWED_ERR (entier) | 6 | Si des données sont spécifiées dans un noeud qui ne supporte pas les données.
DOM_NO_MODIFICATION_ALLOWED_ERR (entier) | 7 | Si une tentative est faite de modifier un objet où les modifications ne sont pas autorisées.
DOM_NOT_FOUND_ERR (entier) | 8 | Si une tentative est faite de référencer un noeud dans un contexte où il n'existe pas.
DOM_NOT_SUPPORTED_ERR (entier) | 9 | Si l'implémentation ne supporte pas le type requis de l'objet ou de l'opération.
DOM_INUSE_ATTRIBUTE_ERR (entier) | 10 | Si une tentative est faite d'ajouter un attribut qui est déjà utilisé autre part.
DOM_INVALID_STATE_ERR (entier) | 11 | Si une tentative est faITE D'UTIliser un objet qui n'est pas, ou n'est plus, utilisable.
DOM_SYNTAX_ERR (entier) | 12 | Si une chaîne de caractères invalide ou illégale est spécifiée.
DOM_INVALID_MODIFICATION_ERR (entier) | 13 | Si une tentative est faite de modifier le type d'un objet fondamental.
DOM_NAMESPACE_ERR (entier) | 14 | Si une tentative est faite de créer ou de modifier un objet dans un sens qui est incorrect au regard de l'espace de noms.
DOM_INVALID_ACCESS_ERR (entier) | 15 | Si un paramètre ou une opération n'est pas supporté par l'objet fondamental.
DOM_VALIDATION_ERR (entier) | 16 | Si un appel à une méthode tel que insertBefore ou removeChild voudrait rendre le noeud invalide avec le respect de la validation partielle, cette exception sera exécutée et l'opération ne sera pas effectuée.
Table des matières
DOMAttr->__construct() -- Crée un nouvel objet DOMAttr
DOMAttr->isId() -- Vérifie si l'attribut est un identifiant défini
DOMCharacterData->appendData() -- Ajoute la chaîne à la fin des données dans le noeud
DOMCharacterData->deleteData() -- Supprime une sous-chaîne dans le noeud
DOMCharacterData->insertData() -- Insère une chaîne à la position spécifiée d'unité 16-bit
DOMCharacterData->replaceData() -- Remplace une sous-chaîne dans le noeud DOMCharacterData node
DOMCharacterData->substringData() -- Extrait un morceaux de données dans le noeud
DOMComment->__construct() -- Crée un nouvel objet DOMComment
DOMDocument->__construct() -- Crée un nouvel objet DOMDocument
DOMDocument->createAttribute() -- Crée un nouvel attribut
DOMDocument->createAttributeNS() -- Crée un nouvel attribut avec un espace de noms associé
DOMDocument->createCDATASection() -- Crée un nouveau noeud cdata
DOMDocument->createComment() -- Crée un nouveau noeud de commentaire
DOMDocument->createDocumentFragment() -- Crée un nouveau fragment de document
DOMDocument->createElement() -- Crée un nouveau noeud
DOMDocument->createElementNS() -- Crée un nouveau noeud avec un espace de noms associé
DOMDocument->createEntityReference() -- Crée un nouveau noeud de référence d'entité
DOMDocument->createProcessingInstruction() -- Crée un nouveau noeud PI
DOMDocument->createTextNode() -- Crée un nouveau noeud de texte
DOMDocument->getElementById() -- Cherche un élément avec un certain identifiant
DOMDocument->getElementsByTagName() -- Cherche tous les éléments quit ont le nom de balise donné
DOMDocument->getElementsByTagNameNS() -- Recherche tous les éléments avec un nom de balise donné dans un espace de noms spécifié
DOMDocument->importNode() -- Importe un noeud dans le document courant
DOMDocument->load() -- Charge du XML depuis un fichier
DOMDocument->loadHTML() -- Charge du HTML à partir d'une chaîne de caractères
DOMDocument->loadHTMLFile() -- Charge du HTML à partir d'un fichier
DOMDocument->loadXML() -- Charge du XML depuis une chaîne de caractères
DOMDocument->normalizeDocument() -- Normalise le document
DOMDocument->registerNodeClass() -- Enregistre la classe étendue utilisée pour créer un type de base de noeud
DOMDocument->relaxNGValidate() -- Effectue une validation relaxNG sur le document
DOMDocument->relaxNGValidateSource() -- Effectue une validation relaxNG sur le document
DOMDocument->save() -- Sauvegarde l'arbre interne XML dans un fichier
DOMDocument->saveHTML() -- Sauvegarde le document interne dans une chaîne en utilisant un formattage HTML
DOMDocument->saveHTMLFile() -- Sauvegarde un document interne dans un fichier en utilisant un formattage HTML
DOMDocument->saveXML() -- Sauvegarde l'arbre interne XML dans une chaîne de caractères
DOMDocument->schemaValidate() -- Valide un document selon un schéma
DOMDocument->schemaValidateSource() -- Valide un document selon un schéma
DOMDocument->validate() -- Valide un document en se basant sur sa DTD
DOMDocument->xinclude() -- Remplace les XIncludes dans un objet DOMDocument
DOMDocumentFragment->appendXML() -- Ajoute des données XML
DOMElement->__construct() -- Crée un nouvel objet DOMElement
DOMElement->getAttribute() -- Retourne la valeur d'un attribut
DOMElement->getAttributeNode() -- Retourne le noeud d'attribut
DOMElement->getAttributeNodeNS() -- Retourne le noeud d'attribut
DOMElement->getAttributeNS() -- Retourne la valeur de l'attribut
DOMElement->getElementsByTagName() -- Retourne les éléments par leur nom de balise
DOMElement->getElementsByTagNameNS() -- Récupère les éléments par leur espace de noms et leur localName
DOMElement->hasAttribute() -- Vérifie si un attribut existe
DOMElement->hasAttributeNS() -- Vérifie si un attribut existe
DOMElement->removeAttribute() -- Efface un attribut
DOMElement->removeAttributeNode() -- Efface un attribut
DOMElement->removeAttributeNS() -- Efface un attribut
DOMElement->setAttribute() -- Ajoute un nouvel attribut
DOMElement->setAttributeNode() -- Ajoute un nouvel attribut à l'élément
DOMElement->setAttributeNodeNS() -- Ajoute un nouvel attribut à l'élément
DOMElement->setAttributeNS() -- Ajoute un nouvel attribut
DOMElement->setIdAttribute() -- Déclare l'attribut spécifié par son nom à être de type ID
DOMElement->setIdAttributeNode() -- Déclare l'attribut spécifié par le noeud à être de type ID
DOMElement->setIdAttributeNS() -- Déclare l'attribut spécifié par son nom local et son espace de nom URI à être de type ID
DOMEntityReference->__construct() -- Crée un nouvel objet DOMEntityReference
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() -- Test si l'implémentation DOM implémente une fonctionnalité spécifique
DOMNamedNodeMap->getNamedItem() -- Retourne un noeud spécifié par nom nom
DOMNamedNodeMap->getNamedItemNS() -- Retourne un noeud spécifié par son nom local et son espace de nom
DOMNamedNodeMap->item() -- Retourne un noeud selon son index
DOMNode->appendChild() -- Ajoute un nouveau fils à la fin des fils
DOMNode->cloneNode() -- Clone un noeud
DOMNode->hasAttributes() -- Vérifie si le noeud possède un attribut
DOMNode->hasChildNodes() -- Vérifie si le noeud possède des enfants
DOMNode->insertBefore() -- Ajoute un nouveau fils à la fin des enfants
DOMNode->isDefaultNamespace() -- Vérifie si l'espace de nom spécifié est l'espace de noms par défaut ou non
DOMNode->isSameNode() -- Indique si deux noeuds sont identiques
DOMNode->isSupported() -- Vérifie si la fonctionnalité est disponible pour la version spécifiée
DOMNode->lookupNamespaceURI() -- Retourne l'URI de l'espace de noms selon le préfixe
DOMNode->lookupPrefix() -- Retourne le préfixe de l'espace de noms selon l'URI de l'espace de noms
DOMNode->normalize() -- Normalise le noeud
DOMNode->removeChild() -- Supprime un fils de la liste des enfants
DOMNode->replaceChild() -- Remplace un fils
DOMNodelist->item() -- Retourne un noeud spécifié par son index
DOMProcessingInstruction->__construct() -- Crée un nouvel objet DOMProcessingInstruction
DOMText->__construct() -- Crée un nouvel objet DOMText
DOMText->isWhitespaceInElementContent() -- Indique si ce noeud de texte contient des espaces blancs
DOMText->splitText() -- Coupe le noeud en deux noeuds à l'endroit spécifié
DOMXPath->__construct() -- Crée un nouvel objet DOMXPath
DOMXPath->evaluate() -- Evalue une expression XPath donnée et retourne un résultat écrit si possible
DOMXPath->query() -- Evalue l'expression XPath donnée
DOMXPath->registerNamespace() -- Enregistre l'espace de noms avec l'objet DOMXPath
dom_import_simplexml -- Transforme un objet DOMElement en un objet SimpleXMLElement

Précédent | Sommaire | Suivant
scandir | Niveau supérieur | DOMAttr->__construct()


DOMAttr->__construct()

(no version information, might be only in CVS)

DOMAttr->__construct() -- Crée un nouvel objet DOMAttr

Description

class DOMAttr {

__construct ( string name [, string value] )

}

Crée un nouvel objet DOMAttr. Cet objet est en lecture seule. Il peut être ajouté à un document, mais les noeuds additionnels ne peuvent pas être ajoutés à ce noeud tant que ce noeud est associé à un document. Pour créer un noeud accessible en écriture, utilisez DOMDocument->createAttribute().

Liste de paramètres

name

Le nom de l'attribut.

value

La valeur de l'attribut.

Exemples

Exemple 1. Création d'un nouveau 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(); /* <?xml version="1.0" encoding="iso-8859-1"?><root attr="attrvalue" /> */

?>

Voir aussi

DOMDocument->createAttribute()

Précédent | Sommaire | Suivant
Fonctions DOM | Niveau supérieur | DOMAttr->isId()


DOMAttr->isId()

(no version information, might be only in CVS)

DOMAttr->isId() -- Vérifie si l'attribut est un identifiant défini

Description

class DOMAttr {

bool isId ( void )

}

Cette fonction vérifie si l'attribut est un identifiant défini.Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

En accord avec le standard DOM, ceci requiert une DTD qui définie l'attribut ID qui est du type ID. Vous devez valider votre document avec la fonction DOMDocument->validate() ou la fonction DOMDocument::validateOnParse avant d'utiliser cette fonction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec DOMAttr->isId()

<?php

$doc = new DomDocument;

// Nous devons valider notre document avant de se 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)

?>

Précédent | Sommaire | Suivant
DOMAttr->__construct() | Niveau supérieur | DOMCharacterData->appendData()


DOMCharacterData->appendData()

(no version information, might be only in CVS)

DOMCharacterData->appendData() -- Ajoute la chaîne à la fin des données dans le noeud

Description

class DOMCharacterData {

void appendData ( string data )

}

Ajoute la chaîne data à la fin des données dans le noeud.

Liste de paramètres

data

La chaîne à ajouter.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

DOMCharacterData->deleteData()
DOMCharacterData->insertData()
DOMCharacterData->replaceData()
DOMCharacterData->substringData()

Précédent | Sommaire | Suivant
DOMAttr->isId() | Niveau supérieur | DOMCharacterData->deleteData()


DOMCharacterData->deleteData()

(no version information, might be only in CVS)

DOMCharacterData->deleteData() -- Supprime une sous-chaîne dans le noeud

Description

class DOMCharacterData {

void deleteData ( int offset, int count )

}

Efface count caractères à partir de la position offset.

Liste de paramètres

offset

La position à partir de laquelle on doit commencer à effacer.

count

Le nombre de caractères à effacer. SI la somme de offset et de count excède la la longueur totale de la chaîne, alors tous les caractères jusqu'à la fin de la chaîne seront effacés.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_INDEX_SIZE_ERR

Lancé si offset est négatif ou plus grand que la nombre d'unités 16-bits dans les données ou si count est négatif.

Voir aussi

DOMCharacterData->appendData()
DOMCharacterData->insertData()
DOMCharacterData->replaceData()
DOMCharacterData->substringData()

Précédent | Sommaire | Suivant
DOMCharacterData->appendData() | Niveau supérieur | DOMCharacterData->insertData()


DOMCharacterData->insertData()

(no version information, might be only in CVS)

DOMCharacterData->insertData() -- Insère une chaîne à la position spécifiée d'unité 16-bit

Description

class DOMCharacterData {

void insertData ( int offset, string data )

}

Insère la chaîne data à la position offset.

Liste de paramètres

offset

La position de l'insertion.

data

La chaîne à insérer.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_INDEX_SIZE_ERR

Lancé si offset est négatif ou plus grand que le nombre d'unités 16-bits dans les données.

Voir aussi

DOMCharacterData->appendData()
DOMCharacterData->deleteData()
DOMCharacterData->replaceData()
DOMCharacterData->substringData()

Précédent | Sommaire | Suivant
DOMCharacterData->deleteData() | Niveau supérieur | DOMCharacterData->replaceData()


DOMCharacterData->replaceData()

(no version information, might be only in CVS)

DOMCharacterData->replaceData() -- Remplace une sous-chaîne dans le noeud DOMCharacterData node

Description

class DOMCharacterData {

void replaceData ( int offset, int count, string data )

}

Remplace count caractères en partant de la position offset par les données data.

Liste de paramètres

offset

La position à partir de laquelle on commence le remplacement.

count

Le nombre de caractères à remplacer. Si la somme de offset et de count excède la longueur totale de la chaîne, alors tous les catactères jusqu'à la fin des données seront remplacés.

data

La chaîne utilisées pour remplacer les caractères sélectionnés.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_INDEX_SIZE_ERR

Lancé si offset est négatif ou plus grand que le nombre d'unité 16-bits dans les données ou si count est négatif.

Voir aussi

DOMCharacterData->appendData()
DOMCharacterData->deleteData()
DOMCharacterData->insertData()
DOMCharacterData->substringData()

Précédent | Sommaire | Suivant
DOMCharacterData->insertData() | Niveau supérieur | DOMCharacterData->substringData()


DOMCharacterData->substringData()

(no version information, might be only in CVS)

DOMCharacterData->substringData() -- Extrait un morceaux de données dans le noeud

Description

class DOMCharacterData {

string substringData ( int offset, int count )

}

Retourne la sous-chaîne spécifiée.

Liste de paramètres

offset

La position du début de la chaîne à extraire.

count

Le nombre de caractères à extraire.

Valeurs de retour

La sous-chaîne spécifiée. Si la somme de offset et de count excède la longeur totale de la chaîne, alors toutes les unités 16-bits jusqu'à la fin des données seront retournés.

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()
DOMCharacterData->deleteData()
DOMCharacterData->insertData()
DOMCharacterData->replaceData()

Précédent | Sommaire | Suivant
DOMCharacterData->replaceData() | Niveau supérieur | DOMComment->__construct()


DOMComment->__construct()

(no version information, might be only in CVS)

DOMComment->__construct() -- Crée un nouvel objet DOMComment

Description

class DOMComment {

__construct ( [string value] )

}

Crée un nouvel objet DOMComment. Cet objet est en lecture seule. Il peut être ajouté à un document, mais les noeuds additionnels ne peuvent pas être ajoutés à ce noeud tant que ce noeud n'est pas associé à un document. Pour créer un noeud accessible en écriture, utilisez DOMDocument->createComment().

Liste de paramètres

value

La valeur du commentaire.

Exemples

Exemple 1. Création d'un nouveau DOMComment

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$comment = $element->appendChild(new DOMComment('root comment'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root><!--root comment--></root> */

?>

Voir aussi

DOMDocument->createComment()

Précédent | Sommaire | Suivant
DOMCharacterData->substringData() | Niveau supérieur | DOMDocument->__construct()


DOMDocument->__construct()

(no version information, might be only in CVS)

DOMDocument->__construct() -- Crée un nouvel objet DOMDocument

Description

class DOMDocument {

__construct ( [string version [, string encoding]] )

}

Crée un nouvel objet DOMDocument.

Liste de paramètres

version

Le numéro de version du document en tant que partie de la déclaration XML.

encoding

L'encodage du document en tant que partie de la déclaration XML.

Exemples

Exemple 1. Création d'un nouveau DOMDocument

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?> */

?>

Voir aussi

DOMImplementation->createDocument()

Précédent | Sommaire | Suivant
DOMComment->__construct() | Niveau supérieur | DOMDocument->createAttribute()


DOMDocument->createAttribute()

(no version information, might be only in CVS)

DOMDocument->createAttribute() -- Crée un nouvel attribut

Description

class DOMDocument {

DOMAttr createAttribute ( string name )

}

Cette fonction crée une nouvelle instance de la classe DOMAttr. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Le nouveau DOMAttr ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Lancé si name contient un caractère invalide.

Voir aussi

DOMNode->appendChild()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Précédent | Sommaire | Suivant
DOMDocument->__construct() | Niveau supérieur | DOMDocument->createAttributeNS()


DOMDocument->createAttributeNS()

(no version information, might be only in CVS)

DOMDocument->createAttributeNS() -- Crée un nouvel attribut avec un espace de noms associé

Description

class DOMDocument {

DOMAttr createAttributeNS ( string namespaceURI, string qualifiedName )

}

Cette fonction crée une nouvelle instance de la classe DOMAttr. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

qualifiedName

Le nom de la balise et le préfixe de l'attribut, sous cette forme : préfixe:nomBalise.

Valeurs de retour

Le nouveau DOMAttr ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Lancé si qualifiedName contient un caractère invalide.

DOM_NAMESPACE_ERR

Lancé si qualifiedName est un nom qualifié malformé ou si qualifiedName a un suffixe et que namespaceURI est NULL.

Voir aussi

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Précédent | Sommaire | Suivant
DOMDocument->createAttribute() | Niveau supérieur | DOMDocument->createCDATASection()


DOMDocument->createCDATASection()

(no version information, might be only in CVS)

DOMDocument->createCDATASection() -- Crée un nouveau noeud cdata

Description

class DOMDocument {

DOMCDATASection createCDATASection ( string data )

}

Cette fonction crée une nouvelle instance de la classe DOMCDATASection. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

data

Le contenu du cdata.

Valeurs de retour

Le nouveau DOMCDATASection ou FALSE si une erreur survient.

Voir aussi

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Précédent | Sommaire | Suivant
DOMDocument->createAttributeNS() | Niveau supérieur | DOMDocument->createComment()


DOMDocument->createComment()

(no version information, might be only in CVS)

DOMDocument->createComment() -- Crée un nouveau noeud de commentaire

Description

class DOMDocument {

DOMComment createComment ( string data )

}

Cette fonction crée une nouvelle instance de la classe DOMComment. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

data

Le contenu du commentaire.

Valeurs de retour

Le nouveau DOMComment ou FALSE si une erreur survient.

Voir aussi

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Précédent | Sommaire | Suivant
DOMDocument->createCDATASection() | Niveau supérieur | DOMDocument->createDocumentFragment()


DOMDocument->createDocumentFragment()

(no version information, might be only in CVS)

DOMDocument->createDocumentFragment() -- Crée un nouveau fragment de document

Description

class DOMDocument {

DOMDocumentFragment createDocumentFragment ( void )

}

Cette fonction crée une nouvelle instance de la classe DOMDocumentFragment. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Valeurs de retour

Le nouveau DOMDocumentFragment ou FALSE si une erreur survient.

Voir aussi

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Précédent | Sommaire | Suivant
DOMDocument->createComment() | Niveau supérieur | DOMDocument->createElement()


DOMDocument->createElement()

(no version information, might be only in CVS)

DOMDocument->createElement() -- Crée un nouveau noeud

Description

class DOMDocument {

DOMElement createElement ( string name [, string value] )

}

Cette fonction crée une nouvelle instance de la classe DOMElement. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

name

Le nom du tag de l'élément.

value

La valeur de l'élément. Par défaut, un élément vide sera créé. Vous pouvez également définir la valeur plus tard avec la fonction DOMElement->nodeValue.

Valeurs de retour

Retourne une nouvelle instance de la classe DOMElement ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Lancé si name contient un caractère invalide.

Exemples

Exemple 1. Création d'un nouvel élément et insertion en tant que racine

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

$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="iso-8859-1"?>
<test>Ceci est l'élément racine !</test>

Voir aussi

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Précédent | Sommaire | Suivant
DOMDocument->createDocumentFragment() | Niveau supérieur | DOMDocument->createElementNS()


DOMDocument->createElementNS()

(no version information, might be only in CVS)

DOMDocument->createElementNS() -- Crée un nouveau noeud avec un espace de noms associé

Description

class DOMDocument {

DOMElement createElementNS ( string namespaceURI, string qualifiedName [, string value] )

}

Cette fonction crée un nouveau noeud avec un espace de noms associé. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

qualifiedName

Le nom qualifié de l'élément, en tant que préfixe:nomBalise.

value

La valeur de l'élément. Par défaut, un élément vide sera créé. Vous pouvez également définir la valeur plus tard en utilisant la fonction DOMElement->nodeValue.

Valeurs de retour

Un nouveau DOMElement ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Lancé si qualifiedName contient un caractère invalide.

DOM_NAMESPACE_ERR

Lancé si qualifiedName est un nom qualifié malformé.

Exemples

Exemple 1. Création d'un nouvel élément et insertion en tant que racine

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

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

Voir aussi

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Précédent | Sommaire | Suivant
DOMDocument->createElement() | Niveau supérieur | DOMDocument->createEntityReference()


DOMDocument->createEntityReference()

(no version information, might be only in CVS)

DOMDocument->createEntityReference() -- Crée un nouveau noeud de référence d'entité

Description

class DOMDocument {

DOMEntityReference createEntityReference ( string name )

}

Cette fonction crée une nouvelle instance de la classe DOMEntityReference. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

name

Le contenu de la référence de l'entité, e.g. la référence de l'entité sans le & initial et le ; final.

Valeurs de retour

Le nouveau DOMEntityReference ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Lancé si name contient un caractère invalide.

Voir aussi

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Précédent | Sommaire | Suivant
DOMDocument->createElementNS() | Niveau supérieur | DOMDocument->createProcessingInstruction()


DOMDocument->createProcessingInstruction()

(no version information, might be only in CVS)

DOMDocument->createProcessingInstruction() -- Crée un nouveau noeud PI

Description

class DOMDocument {

DOMProcessingInstruction createProcessingInstruction ( string target [, string data] )

}

Cette fonction crée une nouvelle instance de la classe DOMProcessingInstruction. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

target

La cible de l'instruction gérée.

data

Le contenu de l'instruction gérée.

Valeurs de retour

Le nouveau DOMProcessingInstruction ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_INVALID_CHARACTER_ERR

Lancé si target contient un caractère invalide.

Voir aussi

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createTextNode()

Précédent | Sommaire | Suivant
DOMDocument->createEntityReference() | Niveau supérieur | DOMDocument->createTextNode()


DOMDocument->createTextNode()

(no version information, might be only in CVS)

DOMDocument->createTextNode() -- Crée un nouveau noeud de texte

Description

class DOMDocument {

DOMText createTextNode ( string content )

}

Cette fonction crée une nouvelle instance de la classe DOMText. Ce noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec DOMNode->appendChild().

Liste de paramètres

content

Le contenu du texte.

Valeurs de retour

Un nouveau DOMText ou FALSE si une erreur survient.

Voir aussi

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()

Précédent | Sommaire | Suivant
DOMDocument->createProcessingInstruction() | Niveau supérieur | DOMDocument->getElementById()


DOMDocument->getElementById()

(no version information, might be only in CVS)

DOMDocument->getElementById() -- Cherche un élément avec un certain identifiant

Description

class DOMDocument {

DOMElement getElementById ( string elementId )

}

Cette fonction est similaire à la fonction DOMDocument->getElementsByTagName() mais cherche un élément avec un identifiant donné.

Pour que cette fonction fonctionne, vous devez soit définir les attributs ID avec DOMElement->setIdAttribute() ou définir une DTD qui définit un attribut devant être de type ID. Dans le dernier cas, vous devez valider votre document avec DOMDocument->validate() ou DOMDocument::validateOnParse avant d'utiliser cette fonction.

Liste de paramètres

elementId

La valeur de l'identifiant unique pour un élément.

Valeurs de retour

Retourne un DOMElement ou NULL si l'élément n'est pas trouvé.

Exemples

Exemple 1. Exemple avec DOMDocument->getElementById()

<?php

$doc = new DomDocument;

// Nous devons valider notre document avant de se référer à l'ID
$doc->validateOnParse = true;
$doc->Load('book.xml');

echo "L'élément dont l'ID est 'book' est : " . $doc->getElementById('books')->tagName . "\n";

?>

L'exemple ci-dessus va afficher :

L'élément dont l'ID est 'book' est : chapter

Voir aussi

DOMDocument->getElementsByTagName()

Précédent | Sommaire | Suivant
DOMDocument->createTextNode() | Niveau supérieur | DOMDocument->getElementsByTagName()


DOMDocument->getElementsByTagName()

(no version information, might be only in CVS)

DOMDocument->getElementsByTagName() -- Cherche tous les éléments quit ont le nom de balise donné

Description

class DOMDocument {

DOMNodeList getElementsByTagName ( string name )

}

Cette fonction retourne une instance de la classe DOMNodeList contenant les éléments qui ont un nom de balise donné.

Liste de paramètres

name

Le nom de la balise à chercher. La valeur spéciale * correspond à toutes les balises.

Valeurs de retour

Un nouvel objet DOMNodeList contenant tous les éléments correspodant.

Voir aussi

DOMDocument->getElementsByTagNameNS()

Précédent | Sommaire | Suivant
DOMDocument->getElementById() | Niveau supérieur | DOMDocument->getElementsByTagNameNS()


DOMDocument->getElementsByTagNameNS()

(no version information, might be only in CVS)

DOMDocument->getElementsByTagNameNS() -- Recherche tous les éléments avec un nom de balise donné dans un espace de noms spécifié

Description

class DOMDocument {

DOMNodeList getElementsByTagNameNS ( string namespaceURI, string localName )

}

Retourne un DOMNodeList de tous les éléments avec un nom local donné et une URI d'espace de noms.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms des éléments à chercher. La valeur spéciale * représente tous les espaces de noms.

localName

Le nom local des éléments à chercher. La valeur spéciale * représente tous les noms locaux.

Valeurs de retour

Un nouvel objet DOMNodeList contenant tous les éléments trouvés.

Exemples

Exemple 1. Récupération de tous les éléments XInclude

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Books of the other guy..</title>
<para>
 <xi:include href="book.xml">
  <xi:fallback>
   <error>xinclude: book.xml not found</error>
  </xi:fallback>
 </xi:include>
 <include>
  This is another namespace
 </include>
</para>
</chapter>
EOD;
$dom = new DOMDocument;

// charge la chaîne XML définie ci-dessus
$dom->loadXML($xml);

foreach ($dom->getElementsByTagNameNS('http://www.w3.org/2001/XInclude', '*') as $element) {
    echo 'Nom local : ', $element->localName, ', préfixe : ', $element->prefix, "\n";
}
?>

L'exemple ci-dessus va afficher :

Nom local : include, préfixe : xi
Nom local : fallback, préfixe : xi

Voir aussi

DOMDocument->getElementsByTagName()

Précédent | Sommaire | Suivant
DOMDocument->getElementsByTagName() | Niveau supérieur | DOMDocument->importNode()


DOMDocument->importNode()

(no version information, might be only in CVS)

DOMDocument->importNode() -- Importe un noeud dans le document courant

Description

class DOMDocument {

DOMNode importNode ( DOMNode importedNode [, bool deep] )

}

Cette fonction retourne une copie du noeud à importer et l'associe avec le document courant.

Liste de paramètres

importedNode

Le noeud à importer.

deep

Si défini à TRUE, cette méthode importera récursivement le sous-arbre situé sous le noeud importedNode.

Valeurs de retour

The copied node.

Erreurs / Exceptions

DOMException est lancé si le noeud ne peut pas être importé.

Précédent | Sommaire | Suivant
DOMDocument->getElementsByTagNameNS() | Niveau supérieur | DOMDocument->load()


DOMDocument->load()

(no version information, might be only in CVS)

DOMDocument->load() -- Charge du XML depuis un fichier

Description

class DOMDocument {

mixed load ( string filename [, int options] )

}

Charge un document XML depuis un fichier.

Liste de paramètres

filename

Le chemin vers le document XML.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Si appelée statiquement, retourne un DOMDocument.

Exemples

Exemple 1. Création d'un document

<?php
$DOC = new DOMDocument();
$doc->load('book.xml');
echo $doc->saveXML();
?>

Exemple 2. Invocation statique de load

<?php
$doc = DOMDocument::load('book.xml');
echo $doc->saveXML();
?>

Voir aussi

DOMDocument->loadXML()
DOMDocument->save()
DOMDocument->saveXML()

Précédent | Sommaire | Suivant
DOMDocument->importNode() | Niveau supérieur | DOMDocument->loadHTML()


DOMDocument->loadHTML()

(no version information, might be only in CVS)

DOMDocument->loadHTML() -- Charge du HTML à partir d'une chaîne de caractères

Description

class DOMDocument {

bool loadHTML ( string source )

}

Cette fonction analyse un document HTML contenu dans la chaîne source. Contrairement au XML, le HTML n'a pas besoin d'être bien formé pour être chargé. Cette fonction peut aussi être appelée statiquement pour charger et créer un objet DOMDocument. L'appel statique peut être utilisé lorsque vous n'avez besoin de configurer aucune propriété de DOMDocument avant le chargement.

Liste de paramètres

source

La chaîne HTML.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
DOMDocument->saveHTML()
DOMDocument->saveHTMLFile()

Précédent | Sommaire | Suivant
DOMDocument->load() | Niveau supérieur | DOMDocument->loadHTMLFile()


DOMDocument->loadHTMLFile()

(no version information, might be only in CVS)

DOMDocument->loadHTMLFile() -- Charge du HTML à partir d'un fichier

Description

class DOMDocument {

bool loadHTMLFile ( string filename )

}

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

Cette fonction peut aussi être appelée statiquement pour charger et créer un objet DOMDocument. L'appel statique peut être utilisé lorsque vous n'avez besoin de configurer aucune propriété de DOMDocument avant le chargement.

Liste de paramètres

filename

Le chemin vers le fichier HTML.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Création d'un document

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("filename.html");
echo $doc->saveHTML();
?>

Voir aussi

DOMDocument->loadHTML()
DOMDocument->saveHTML()
DOMDocument->saveHTMLFile()

Précédent | Sommaire | Suivant
DOMDocument->loadHTML() | Niveau supérieur | DOMDocument->loadXML()


DOMDocument->loadXML()

(no version information, might be only in CVS)

DOMDocument->loadXML() -- Charge du XML depuis une chaîne de caractères

Description

class DOMDocument {

mixed loadXML ( string source [, int options] )

}

Charge un document XML depuis une chaîne de caractères.

Cette méthode peut être appelée statiquement pour charger et créer un objet DOMDocument. L'invoquation statique peut être utilisée lorsque aucune propriété de la classe DOMDocument n'a besoin d'être définie avantle chargement.

Liste de paramètres

source

La chaîne de caractères contenant le XML.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Si appelée statiquement, retourne un DOMDocument.

Exemples

Exemple 1. Création d'un document

<?php
$doc = new DOMDocument();
$doc->loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Exemple 2. Invocation statique de loadXML

<?php
$doc = DOMDocument::loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Voir aussi

DOMDocument->load()
DOMDocument->save()
DOMDocument->saveXML()

Précédent | Sommaire | Suivant
DOMDocument->loadHTMLFile() | Niveau supérieur | DOMDocument->normalizeDocument()


DOMDocument->relaxNGValidate()

(no version information, might be only in CVS)

DOMDocument->relaxNGValidate() -- Effectue une validation relaxNG sur le document

Description

class DOMDocument {

bool relaxNGValidate ( string filename )

}

Effectue une validation relaxNG sur le document selon le schéma RNG défini par filename.

Liste de paramètres

filename

Le fichier RNG.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

DOMDocument->relaxNGValidateSource()
DOMDocument->schemaValidate()
DOMDocument->schemaValidateSource()
DOMDocument->validate()

Précédent | Sommaire | Suivant
DOMDocument->registerNodeClass() | Niveau supérieur | DOMDocument->relaxNGValidateSource()


DOMDocument->relaxNGValidateSource()

(no version information, might be only in CVS)

DOMDocument->relaxNGValidateSource() -- Effectue une validation relaxNG sur le document

Description

class DOMDocument {

bool relaxNGValidateSource ( string source )

}

Effectue une validation relaxNG sur le document selon le schéma RNG définit 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, FALSE en cas d'échec.

Voir aussi

DOMDocument->relaxNGValidate()
DOMDocument->schemaValidate()
DOMDocument->schemaValidateSource()
DOMDocument->validate()

Précédent | Sommaire | Suivant
DOMDocument->relaxNGValidate() | Niveau supérieur | DOMDocument->save()


DOMDocument->save()

(no version information, might be only in CVS)

DOMDocument->save() -- Sauvegarde l'arbre interne XML dans un fichier

Description

class DOMDocument {

mixed save ( string filename [, int options] )

}

Crée un document XML depuis la représentation DOM. Cette fonction est habituellement appelée après la construction d'un tout nouveau document DOM, comme dans l'exemple ci-dessous.

Liste de paramètres

filename

Le chemin où sera sauvegardé le document XML.

options

Options additionnelles. Actuellement, seul LIBXML_NOEMPTYTAG est supporté.

Valeurs de retour

Retourne le nombre d'octets écrit ou FALSE si une erreur survient.

Historique

Version | Description
5.1.0 | Ajout du paramètre options

Exemples

Exemple 1. Sauvegarde d'un arbre DOM dans un fichier

<?php

$doc = new DOMDocument('1.0');
// nous voulons un 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 'Ecrit : ' . $doc->save("/tmp/test.xml") . ' octets'; // Ecrit : 72 octets

?>

Voir aussi

DOMDocument->saveXML()
DOMDocument->load()
DOMDocument->loadXML()

Précédent | Sommaire | Suivant
DOMDocument->relaxNGValidateSource() | Niveau supérieur | DOMDocument->saveHTML()


DOMDocument->saveHTML()

(no version information, might be only in CVS)

DOMDocument->saveHTML() -- Sauvegarde le document interne dans une chaîne en utilisant un formattage HTML

Description

class DOMDocument {

string saveHTML ( void )

}

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.

Valeurs de retour

Retourne le 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->saveHTMLFile()
DOMDocument->loadHTML()
DOMDocument->loadHTMLFile()

Précédent | Sommaire | Suivant
DOMDocument->save() | Niveau supérieur | DOMDocument->saveHTMLFile()


DOMDocument->saveHTMLFile()

(no version information, might be only in CVS)

DOMDocument->saveHTMLFile() -- Sauvegarde un document interne dans un fichier en utilisant un formattage HTML

Description

class DOMDocument {

int saveHTMLFile ( string filename )

}

Crée un document HTML depuis une représentation DOM. Cette fonction est habituellement appelée après la construction d'un tout nouveau document DOM, comme dans l'exemple ci-dessous.

Liste de paramètres

filename

Le chemin où l'on doit sauvegarder le document HTML.

Valeurs de retour

Retourne le nombre d'octets écrit ou FALSE si une erreur survient.

Exemples

Exemple 1. Sauvegarde d'un arbre HTML dans un fichier

<?php

$doc = new DOMDocument('1.0');
// nous voulons un joli affichage
$doc->formatOutput = true;

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('Ceci est le titre');
$text = $title->appendChild($text);

echo 'Ecrit : ' . $doc->saveHTMLFile("/tmp/test.html") . ' octets'; // Ecrit : 129 octets

?>

Voir aussi

DOMDocument->saveHTML()
DOMDocument->loadHTML()
DOMDocument->loadHTMLFile()

Précédent | Sommaire | Suivant
DOMDocument->saveHTML() | Niveau supérieur | DOMDocument->saveXML()


DOMDocument->saveXML()

(no version information, might be only in CVS)

DOMDocument->saveXML() -- Sauvegarde l'arbre interne XML dans une chaîne de caractères

Description

class DOMDocument {

string saveXML ( [DOMNode node [, int options]] )

}

Crée un document XML depuis la représentation DOM. Cette fonction est habituellement appelée après la création d'un tout nouveau document DOM, comme dans l'exemple ci-dessous.

Liste de paramètres

node

Utilisez ce paramètre pour afficher uniquement un noeud spécifique sans déclaration XML plutôt que la totalité du document.

options

Options additionnelles. Actuellement, seul LIBXML_NOEMPTYTAG est supporté.

Valeurs de retour

Retourne le XML ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_WRONG_DOCUMENT_ERR

Lancé si node est issu d'un autre document.

Historique

Version | Description
5.1.0 | Ajout du paramètre options

Exemples

Exemple 1. Sauvegarde de l'arbre DOM dans une chaîne de caractères

<?php

$doc = new DOMDocument('1.0');
// nous voulons un joli affichage
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('Ceci est le titre');
$text = $title->appendChild($text);

echo "Récupération de tout le document :\n";
echo $doc->saveXML() . "\n";

echo "Récupération du titre, uniquement :\n";
echo $doc->saveXML($title);

?>

L'exemple ci-dessus va afficher :

Récupération de tout le document :
<?xml version="1.0"?>
<book>
  <title>This is the title</title>
</book>

Récupération du titre, uniquement :
<title>Ceci est le titre</title>

Voir aussi

DOMDocument->save()
DOMDocument->load()
DOMDocument->loadXML()

Précédent | Sommaire | Suivant
DOMDocument->saveHTMLFile() | Niveau supérieur | DOMDocument->schemaValidate()


DOMDocument->schemaValidate()

(no version information, might be only in CVS)

DOMDocument->schemaValidate() -- Valide un document selon un schéma

Description

class DOMDocument {

bool schemaValidate ( string filename )

}

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.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

DOMDocument->schemaValidateSource()
DOMDocument->relaxNGValidate()
DOMDocument->relaxNGValidateSource()
DOMDocument->validate()

Précédent | Sommaire | Suivant
DOMDocument->saveXML() | Niveau supérieur | DOMDocument->schemaValidateSource()


DOMDocument->schemaValidateSource()

(no version information, might be only in CVS)

DOMDocument->schemaValidateSource() -- Valide un document selon un schéma

Description

class DOMDocument {

bool schemaValidateSource ( string source )

}

Valide un document selon un schéma défini dans la chaîne donnée.

Liste de paramètres

source

Une chaîne contenant le schéma.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

DOMDocument->schemaValidate()
DOMDocument->relaxNGValidate()
DOMDocument->relaxNGValidateSource()
DOMDocument->validate()

Précédent | Sommaire | Suivant
DOMDocument->schemaValidate() | Niveau supérieur | DOMDocument->validate()


DOMDocument->validate()

(no version information, might be only in CVS)

DOMDocument->validate() -- Valide un document en se basant sur sa DTD

Description

class DOMDocument {

bool validate ( void )

}

Valide un document en se basant sur sa DTD.

Vous pouvez utiliser la propriété validateOnParse de la classe DOMDocument pour effectuer une validation DTD.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. 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()
DOMDocument->schemaValidateSource()
DOMDocument->relaxNGValidate()
DOMDocument->relaxNGValidateSource()

Précédent | Sommaire | Suivant
DOMDocument->schemaValidateSource() | Niveau supérieur | DOMDocument->xinclude()


DOMDocument->xinclude()

(no version information, might be only in CVS)

DOMDocument->xinclude() -- Remplace les XIncludes dans un objet DOMDocument

Description

class DOMDocument {

int xinclude ( [int options] )

}

Cette méthode remplace les XIncludes dans un objet DOMDocument.

Note : Vu que la bibliothèque libxml2 résout automatiquement les entités, cette méthode peut produire des résultats non attendus si le fichier XML inclus a une DTD d'attachée.

Liste de paramètres

options

paramètres Libxml. Disponible depuis PHP 5.1.0 et Libxml 2.6.7.

Valeurs de retour

Retourne le nombre de XIncludes du document.

Exemples

Exemple 1. Exemple avec DOMDocument->xinclude()

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
 <title>Les livres d'une autre personne..</title>
 <para>
  <xi:include href="book.xml">
   <xi:fallback>
    <error>xinclude: book.xml n'a pas été trouvé</error>
   </xi:fallback>
  </xi:include>
 </para>
</chapter>
EOD;

$dom = new DOMDocument;

// Nous voulons un joli affichage
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;

// chargement de la chaîne XML définie ci-dessus
$dom->loadXML($xml);

// remplacement des xincludes
$dom->xinclude();

echo $dom->saveXML();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

<?xml version="1.0"?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
  <title>Les livres d'une autre personne..</title>
  <para>
    <row xml:base="/home/didou/book.xml">
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
  </para>
</chapter>

Précédent | Sommaire | Suivant
DOMDocument->validate() | Niveau supérieur | DOMDocumentFragment->appendXML()


DOMElement->__construct()

(no version information, might be only in CVS)

DOMElement->__construct() -- Crée un nouvel objet DOMElement

Description

class DOMElement {

__construct ( string name [, string value [, string namespaceURI]] )

}

Crée un nouvel objet DOMElement. Cet objet est en lecture seule. Il peut être ajouté à un document, mais les noeuds additionnels ne peuvent pas être ajoutés à ce noeud tant que ce noeud est associé à un document. Pour créer un noeud accessible en écriture, utilisez DOMDocument->createElement() ou DOMDocument->createElementNS().

Liste de paramètres

name

Le nom de l'élément. Lorsqu'il est passé dans l'URI de l'espace de nom, le nom de l'élément doit comporter un préfixe pour être associé à l'URI.

value

La valeur de l'élément.

namespaceURI

Un espace de nom de l'URI pour créer l'élément sans d'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', 'cettevaleur', 'http://xyz');
$element->appendChild($element_ns);
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?>
<root><pr:node1 xmlns:pr="http://xyz">cettevaleur</pr:node1></root> */

?>

Voir aussi

DOMDocument->createElement()
DOMDocument->createElementNS()

Précédent | Sommaire | Suivant
DOMDocumentFragment->appendXML() | Niveau supérieur | DOMElement->getAttribute()


DOMElement->getAttribute()

(no version information, might be only in CVS)

DOMElement->getAttribute() -- Retourne la valeur d'un attribut

Description

class DOMElement {

string getAttribute ( string name )

}

Récupère la valeur d'un attribut avec le nom name pour le noeud courant.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

La valeur de l'attribut ou une chaîne vide si aucun attribut avec le nom name donné n'est trouvé.

Voir aussi

DOMElement->hasAttribute()
DOMElement->setAttribute()
DOMElement->removeAttribute()

Précédent | Sommaire | Suivant
DOMElement->__construct() | Niveau supérieur | DOMElement->getAttributeNode()


DOMElement->getAttributeNode()

(no version information, might be only in CVS)

DOMElement->getAttributeNode() -- Retourne le noeud d'attribut

Description

class DOMElement {

DOMAttr getAttributeNode ( string name )

}

Retourne le noeud d'attribut avec le nom name pour l'élément courant.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Le noeud d'attribut.

Voir aussi

DOMElement->hasAttribute()
DOMElement->setAttributeNode()
DOMElement->removeAttributeNode()

Précédent | Sommaire | Suivant
DOMElement->getAttribute() | Niveau supérieur | DOMElement->getAttributeNodeNS()


DOMElement->getAttributeNodeNS()

(no version information, might be only in CVS)

DOMElement->getAttributeNodeNS() -- Retourne le noeud d'attribut

Description

class DOMElement {

DOMAttr getAttributeNodeNS ( string namespaceURI, string localName )

}

Retourne le noeud d'attribut dans l'espace de noms namespaceURI avec le nom local localName pour le noeud courant.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local.

Valeurs de retour

Le noeud d'attribut.

Voir aussi

DOMElement->hasAttributeNS()
DOMElement->setAttributeNodeNS()
DOMElement->removeAttributeNode()

Précédent | Sommaire | Suivant
DOMElement->getAttributeNode() | Niveau supérieur | DOMElement->getAttributeNS()


DOMElement->getAttributeNS()

(no version information, might be only in CVS)

DOMElement->getAttributeNS() -- Retourne la valeur de l'attribut

Description

class DOMElement {

string getAttributeNS ( string namespaceURI, string localName )

}

Récupère la valeur de l'attribut dans l'espace de noms namespaceURI avec le nom local localName pour le noeud courant.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local.

Valeurs de retour

La valeur de l'attribut, ou une chaîne vide si aucun attribut avec le nom local localName donné et dans l'espace de noms namespaceURI n'est trouvé.

Voir aussi

DOMElement->hasAttributeNS()
DOMElement->setAttributeNS()
DOMElement->removeAttributeNS()

Précédent | Sommaire | Suivant
DOMElement->getAttributeNodeNS() | Niveau supérieur | DOMElement->getElementsByTagName()


DOMElement->getElementsByTagName()

(no version information, might be only in CVS)

DOMElement->getElementsByTagName() -- Retourne les éléments par leur nom de balise

Description

class DOMElement {

DOMNodeList getElementsByTagName ( string name )

}

Cette fonction retourne une nouvelle instance de la classe DOMNodeList contenant tous les éléments descendants avec un nom de balise name donné, dans l'ordre dans lesquels ils sont rencontrés lors du parcours de l'arbre de cet élément.

Liste de paramètres

name

Le nom de la balise. Utilisez le caractère générique * pour récupérer tous les éléments contenus dans l'arbre de l'élément.

Valeurs de retour

Cette fonction retourne une nouvelle instance de la classe DOMNodeList contenant tous les éléments correspondants.

Voir aussi

DOMElement->getElementsByTagNameNS()

Précédent | Sommaire | Suivant
DOMElement->getAttributeNS() | Niveau supérieur | DOMElement->getElementsByTagNameNS()


DOMElement->getElementsByTagNameNS()

(no version information, might be only in CVS)

DOMElement->getElementsByTagNameNS() -- Récupère les éléments par leur espace de noms et leur localName

Description

class DOMElement {

DOMNodeList getElementsByTagNameNS ( string namespaceURI, string localName )

}

Cette fonction récupère tous les éléments descendants avec un nom local localName et un espace de noms namespaceURI donnés.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local. Utilisez le caractère générique * pour récupérer tous les éléments de l'arbre de l'élément.

Valeurs de retour

Cette fonction retourne une nouvelle instande de la classe DOMNodeList contenant tous les éléments correspondants dans l'ordre dans lesquels ils sont rencontrés lors du parcours de l'arbre de cet élément.

Voir aussi

DOMElement->getElementsByTagName()

Précédent | Sommaire | Suivant
DOMElement->getElementsByTagName() | Niveau supérieur | DOMElement->hasAttribute()


DOMElement->hasAttribute()

(no version information, might be only in CVS)

DOMElement->hasAttribute() -- Vérifie si un attribut existe

Description

class DOMElement {

bool hasAttribute ( string name )

}

Indique si un attribut nommé name existe en tant que membre de l'élément.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

DOMElement->hasAttributeNS()
DOMElement->getAttribute()
DOMElement->setAttribute()
DOMElement->removeAttribute()

Précédent | Sommaire | Suivant
DOMElement->getElementsByTagNameNS() | Niveau supérieur | DOMElement->hasAttributeNS()


DOMElement->hasAttributeNS()

(no version information, might be only in CVS)

DOMElement->hasAttributeNS() -- Vérifie si un attribut existe

Description

class DOMElement {

bool hasAttributeNS ( string namespaceURI, string localName )

}

Vérifie si un attribut dans l'espace de noms namespaceURI nommé localName existe en tant que membre de l'élément.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

DOMElement->hasAttribute()
DOMElement->getAttributeNS()
DOMElement->setAttributeNS()
DOMElement->removeAttributeNS()

Précédent | Sommaire | Suivant
DOMElement->hasAttribute() | Niveau supérieur | DOMElement->removeAttribute()


DOMElement->removeAttribute()

(no version information, might be only in CVS)

DOMElement->removeAttribute() -- Efface un attribut

Description

class DOMElement {

bool removeAttribute ( string name )

}

Efface l'attribut nommé name de l'élément.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Voir aussi

DOMElement->hasAttribute()
DOMElement->getAttribute()
DOMElement->setAttribute()

Précédent | Sommaire | Suivant
DOMElement->hasAttributeNS() | Niveau supérieur | DOMElement->removeAttributeNode()


DOMElement->removeAttributeNode()

(no version information, might be only in CVS)

DOMElement->removeAttributeNode() -- Efface un attribut

Description

class DOMElement {

bool removeAttributeNode ( DOMAttr oldnode )

}

Efface l'attribut oldnode de l'élément.

Liste de paramètres

oldnode

Le noeud de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

DOM_NOT_FOUND_ERROR

Lancé si oldnode n'est pas un attribut de l'élément.

Voir aussi

DOMElement->hasAttribute()
DOMElement->getAttributeNode()
DOMElement->setAttributeNode()

Précédent | Sommaire | Suivant
DOMElement->removeAttribute() | Niveau supérieur | DOMElement->removeAttributeNS()


DOMElement->removeAttributeNS()

(no version information, might be only in CVS)

DOMElement->removeAttributeNS() -- Efface un attribut

Description

class DOMElement {

bool removeAttributeNS ( string namespaceURI, string localName )

}

Efface un attribut avec l'espace de noms namespaceURI nommé localName de l'élément.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

localName

Le nom local.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Voir aussi

DOMElement->hasAttributeNS()
DOMElement->getAttributeNS()
DOMElement->setAttributeNS()

Précédent | Sommaire | Suivant
DOMElement->removeAttributeNode() | Niveau supérieur | DOMElement->setAttribute()


DOMElement->setAttribute()

(no version information, might be only in CVS)

DOMElement->setAttribute() -- Ajoute un nouvel attribut

Description

class DOMElement {

bool setAttribute ( string name, string value )

}

Ajoute un attribut avec comme nom name et comme valeur value. Si l'attribut n'existe pas, il sera créé.

Liste de paramètres

name

Le nom de l'attribut.

value

La valeur de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Exemples

Exemple 1. Ajout d'un attribut

<?php
$doc = new DOMDocument("1.0");
$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);
$newnode->setAttribute("align", "left");
?>

Voir aussi

DOMElement->hasAttribute()
DOMElement->getAttribute()
DOMElement->removeAttribute()

Précédent | Sommaire | Suivant
DOMElement->removeAttributeNS() | Niveau supérieur | DOMElement->setAttributeNode()


DOMElement->setAttributeNode()

(no version information, might be only in CVS)

DOMElement->setAttributeNode() -- Ajoute un nouvel attribut à l'élément

Description

class DOMElement {

DOMAttr setAttributeNode ( DOMAttr attr )

}

Ajoute un nouvel attribut attr à l'élément.

Liste de paramètres

attr

L'attribut.

Valeurs de retour

Retourne l'ancien noeud si l'attribut a été placé ou NULL.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Voir aussi

DOMElement->hasAttribute()
DOMElement->getAttributeNode()
DOMElement->removeAttributeNode()

Précédent | Sommaire | Suivant
DOMElement->setAttribute() | Niveau supérieur | DOMElement->setAttributeNodeNS()


DOMElement->setAttributeNodeNS()

(no version information, might be only in CVS)

DOMElement->setAttributeNodeNS() -- Ajoute un nouvel attribut à l'élément

Description

class DOMElement {

DOMAttr setAttributeNodeNS ( DOMAttr attr )

}

Ajoute un nouvel attribut attr à l'élément.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Retourne l'ancien noeud si l'attribut a été placé.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

Voir aussi

DOMElement->hasAttributeNS()
DOMElement->getAttributeNodeNS()
DOMElement->removeAttributeNode()

Précédent | Sommaire | Suivant
DOMElement->setAttributeNode() | Niveau supérieur | DOMElement->setAttributeNS()


DOMElement->setAttributeNS()

(no version information, might be only in CVS)

DOMElement->setAttributeNS() -- Ajoute un nouvel attribut

Description

class DOMElement {

void setAttributeNS ( string namespaceURI, string qualifiedName, string value )

}

Ajoute un attribut avec comme espace de noms namespaceURI et comme nom name avec comme valeur value. Si l'attribut n'existe pas, il sera créé.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

qualifiedName

Le nom qualifié de l'attribut, sous la forme prefixe:nomdebalise.

value

La valeur de l'attribut.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

DOM_NAMESPACE_ERR

Lancé si qualifiedName est un nom qualifié malformé ou si qualifiedName a un préfixe et un namespaceURI qui vaut NULL.

Voir aussi

DOMElement->hasAttributeNS()
DOMElement->getAttributeNS()
DOMElement->removeAttributeNS()

Précédent | Sommaire | Suivant
DOMElement->setAttributeNodeNS() | Niveau supérieur | DOMElement->setIdAttribute()


DOMEntityReference->__construct()

(no version information, might be only in CVS)

DOMEntityReference->__construct() -- Crée un nouvel objet DOMEntityReference

Description

class 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>&nbsp;</root> */

?>

Voir aussi

DOMDocument->createEntityReference()

Précédent | Sommaire | Suivant
DOMElement->setIdAttributeNS() | Niveau supérieur | DOMImplementation->__construct()


DOMImplementation->__construct()

(no version information, might be only in CVS)

DOMImplementation->__construct() -- Crée un nouvel objet DOMImplementation

Description

class DOMImplementation {

__construct ( (void); )

}

Crée un nouvel objet DOMImplementation.

Précédent | Sommaire | Suivant
DOMEntityReference->__construct() | Niveau supérieur | DOMImplementation->createDocument()


DOMImplementation->createDocument()

(no version information, might be only in CVS)

DOMImplementation->createDocument() -- Crée un objet DOM Document du type spécifié avec ses éléments

Description

class DOMImplementation {

DOMDocument createDocument ( [string namespaceURI [, string qualifiedName [, DOMDocumentType doctype]]] )

}

Crée un objet DOMDocument du type spécifié avec ces éléments du document.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms des éléments du document à créer.

qualifiedName

Le nom qualifié des éléments du document à créer.

doctype

Le type de document à créer ou NULL.

Valeurs de retour

Un nouvel objet DOMDocument. Si namespaceURI, qualifiedName, et doctype sont nulles, le DOMDocument retourné est vide avec aucun élément de document.

Erreurs / Exceptions

DOM_WRONG_DOCUMENT_ERR

Lancé si doctype a déjà été utilisé avec un document différent ou a été créé depuis une implémentation différente.

DOM_NAMESPACE_ERR

Lancé s'il y a une erreur dans l'espace de noms, déterminé par namespaceURI et qualifiedName.

Voir aussi

DOMDocument->__construct()
DOMImplementation->createDocumentType()

Précédent | Sommaire | Suivant
DOMImplementation->__construct() | Niveau supérieur | DOMImplementation->createDocumentType()


DOMImplementation->createDocumentType()

(no version information, might be only in CVS)

DOMImplementation->createDocumentType() -- Crée un objet DOMDocumentType vide

Description

class DOMImplementation {

DOMDocumentType createDocumentType ( [string qualifiedName [, string publicId [, string systemId]]] )

}

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ées.

Liste de paramètres

qualifiedName

Le nom qualifié du type de document à créer.

publicId

L'identifiant publique externe du sous-ensemble.

systemId

L'identifiant système externe du sous-ensemble.

Valeurs de retour

Un nouveau noeud DOMDocumentType avec son ownerDocument définie à NULL.

Exemples

Exemple 1. Création d'un document avec une DTD attaché

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

Erreurs / Exceptions

DOM_NAMESPACE_ERR

Lancé s'il y a une erreur avec l'espace de noms, déterminé par qualifiedName.

Voir aussi

DOMImplementation->createDocument()

Précédent | Sommaire | Suivant
DOMImplementation->createDocument() | Niveau supérieur | DOMImplementation->hasFeature()


DOMImplementation->hasFeature()

(no version information, might be only in CVS)

DOMImplementation->hasFeature() -- Test si l'implémentation DOM implémente une fonctionnalité spécifique

Description

class DOMImplementation {

bool hasFeature ( string feature, string version )

}

Test 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, FALSE en cas d'échec.

Exemples

Exemple 1. Test votre implémentation DOM

<?php

$features = array(
  'Core'           => 'Core module',
  'XML'            => 'XML module',
  'HTML'           => 'HTML module',
  'Views'          => 'Views module',
  'Stylesheets'    => 'Style Sheets module',
  'CSS'            => 'CSS module',
  'CSS2'           => 'CSS2 module',
  'Events'         => 'Events module',
  'UIEvents'       => 'User interface Events module',
  'MouseEvents'    => 'Mouse Events module',
  'MutationEvents' => 'Mutation Events module',
  'HTMLEvents'     => 'HTML Events module',
  'Range'          => 'Range module',
  'Traversal'      => 'Traversal module'
);

foreach ($features as $key => $name) {
  if (DOMImplementation::hasFeature($key, '2.0')) {
    echo "À la fonctionnalité $name\n";
  } else {
    echo "N'a pas la fonctionnalité $name\n";
  }
}

?>

Voir aussi

DOMNode->isSupported()

Précédent | Sommaire | Suivant
DOMImplementation->createDocumentType() | Niveau supérieur | DOMNamedNodeMap->getNamedItem()


DOMNamedNodeMap->getNamedItem()

(no version information, might be only in CVS)

DOMNamedNodeMap->getNamedItem() -- Retourne un noeud spécifié par nom nom

Description

class DOMNamedNodeMap {

DOMNode getNamedItem ( string name )

}

Récupère un noeud spécifié par son nodeName.

Liste de paramètres

name

Le nodeName du noeud à récupérer.

Valeurs de retour

U noeud (de n'importe quel type) avec un nodeName spécifié, ou NULL si aucun noeud n'est trouvé.

Voir aussi

DOMNamedNodeMap->getNamedItemNS()

Précédent | Sommaire | Suivant
DOMImplementation->hasFeature() | Niveau supérieur | DOMNamedNodeMap->getNamedItemNS()


DOMNamedNodeMap->getNamedItemNS()

(no version information, might be only in CVS)

DOMNamedNodeMap->getNamedItemNS() -- Retourne un noeud spécifié par son nom local et son espace de nom

Description

class DOMNamedNodeMap {

DOMNode getNamedItemNS ( string namespaceURI, string localName )

}

Retourne un noeud spécifié par localName et namespaceURI.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms du noeud à récupérer.

localName

Le nom local du noeud à récupérer.

Valeurs de retour

Un noeud (de n'importe quel type) avec un nom local et une URI d'espace de noms spécifiés, ou NULL si aucun noeud n'est trouvé.

Voir aussi

DOMNamedNodeMap->getNamedItem()

Précédent | Sommaire | Suivant
DOMNamedNodeMap->getNamedItem() | Niveau supérieur | DOMNamedNodeMap->item()


DOMNamedNodeMap->item()

(no version information, might be only in CVS)

DOMNamedNodeMap->item() -- Retourne un noeud selon son index

Description

class DOMNamedNodeMap {

DOMNode item ( int index )

}

Récupère un noeud spécifié par index dans l'objet DOMNamedNodeMap.

Liste de paramètres

index

Index dans cette carte.

Valeurs de retour

Le noeud à la position index dans la carte, ou NULL si ce n'est pas un indexe valide (plus grand que ou égal au nombre de noeuds dans cette carte).

Précédent | Sommaire | Suivant
DOMNamedNodeMap->getNamedItemNS() | Niveau supérieur | DOMNode->appendChild()


DOMNode->appendChild()

(no version information, might be only in CVS)

DOMNode->appendChild() -- Ajoute un nouveau fils à la fin des fils

Description

class DOMNode {

DOMNode appendChild ( DOMNode newnode )

}

Cette fonction ajoute un fils à une liste de fils existant ou crée une nouvelle liste de fils. Le fils peut être créé avec, e.g. DOMDocument->createElement(), DOMDocument->createTextNode() etc. ou simplement en utilisant tout autre noeud.

Liste de paramètres

newnode

Le fils à ajouter.

Valeurs de retour

Le noeud ajouté.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule ou si le parent précédent le noeud à insérer est en lecture seule.

DOM_HIERARCHY_REQUEST_ERR

Lancé si le noeud est d'un type qui n'autorise pas d'enfant du type du noeud newnode, ou si le noeud à ajouter est un des noeuds ancêtres ou ce noeud lui-même.

DOM_WRONG_DOCUMENT_ERR

Lancé si newnode a été créé depuis un document différent que celui qui a créé ce noeud.

Exemples

L'exemple suivant ajoutera un nouveau noeud à un document nouveau.

Exemple 1. Ajout d'un fils

<?php

$doc = new DOMDocument;

$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);

echo $doc->saveXML();
?>

Voir aussi

DOMNode->removeChild()
DOMNode->replaceChild()

Précédent | Sommaire | Suivant
DOMNamedNodeMap->item() | Niveau supérieur | DOMNode->cloneNode()


DOMNode->cloneNode()

(no version information, might be only in CVS)

DOMNode->cloneNode() -- Clone un noeud

Description

class DOMNode {

DOMNode cloneNode ( [bool deep] )

}

Crée une copie d'un noeud.

Liste de paramètres

deep

Indique si l'on doit copier tous les noeuds fils. Ce paramètre vaut FALSE par défaut.

Valeurs de retour

Le noeud cloné.

Précédent | Sommaire | Suivant
DOMNode->appendChild() | Niveau supérieur | DOMNode->hasAttributes()


DOMNode->hasAttributes()

(no version information, might be only in CVS)

DOMNode->hasAttributes() -- Vérifie si le noeud possède un attribut

Description

class DOMNode {

bool hasAttributes ( void )

}

Cette méthode vérifie si un noeud possède des attributs. Le noeud testé doit être un XML_ELEMENT_NODE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

DOMNode->hasChildNodes()

Précédent | Sommaire | Suivant
DOMNode->cloneNode() | Niveau supérieur | DOMNode->hasChildNodes()


DOMNode->hasChildNodes()

(no version information, might be only in CVS)

DOMNode->hasChildNodes() -- Vérifie si le noeud possède des enfants

Description

class DOMNode {

bool hasChildNodes ( void )

}

Cette fonction vérifie si un noeud possède des enfants.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

DOMNode->hasAttributes()

Précédent | Sommaire | Suivant
DOMNode->hasAttributes() | Niveau supérieur | DOMNode->insertBefore()


DOMNode->insertBefore()

(no version information, might be only in CVS)

DOMNode->insertBefore() -- Ajoute un nouveau fils à la fin des enfants

Description

class DOMNode {

DOMNode insertBefore ( DOMNode newnode [, DOMNode refnode] )

}

Cette fonction insère un nouveau noeud juste avec le noeud de référence. Si vous comptez faire des modifications plus tard sur l'enfant ajouté, vous devez utiliser le noeud retourné.

Liste de paramètres

newnode

Le nouveau noeud.

refnode

Le noeud référencé. Si non spécifié, newnode sera ajouté au fils.

Valeurs de retour

The inserted node.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule ou si le parent précédent le noeud à insérer est en lecture seule.

DOM_HIERARCHY_REQUEST_ERR

Lancé si ce noeud est d'un type qui n'aurotise pas de fils du type du noeud newnode, ou si le noeud à ajouter est un des ancêtres de ce noeud ou ce noeud lui-même.

DOM_WRONG_DOCUMENT_ERR

Lancé si newnode a été créé depuis un document différent que celui qui a créé ce noeud.

DOM_NOT_FOUND

Lancé si refnode n'est pas un fils de ce noeud.

Précédent | Sommaire | Suivant
DOMNode->hasChildNodes() | Niveau supérieur | DOMNode->isDefaultNamespace()


DOMNode->isSameNode()

(no version information, might be only in CVS)

DOMNode->isSameNode() -- Indique si deux noeuds sont identiques

Description

class DOMNode {

bool isSameNode ( DOMNode node )

}

Cette fonction indique si deux noeuds sont identiques. La comparaison n'est pas basée sur le contenu.

Liste de paramètres

node

Le noeud à comparer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
DOMNode->isDefaultNamespace() | Niveau supérieur | DOMNode->isSupported()


DOMNode->isSupported()

(no version information, might be only in CVS)

DOMNode->isSupported() -- Vérifie si la fonctionnalité est disponible pour la version spécifiée

Description

class DOMNode {

bool isSupported ( string feature, string version )

}

Vérifie si la fonctionnalité feature demandée est supportée par la version version spécifiée.

Liste de paramètres

feature

La fonctionnalité à tester. Voir l'exemple de DOMImplementation->hasFeature() pour une liste de fonctionnalités.

version

Le numéro de la version de la fonctionnalité feature à tester.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

DOMImplementation->hasFeature()

Précédent | Sommaire | Suivant
DOMNode->isSameNode() | Niveau supérieur | DOMNode->lookupNamespaceURI()


DOMNode->lookupNamespaceURI()

(no version information, might be only in CVS)

DOMNode->lookupNamespaceURI() -- Retourne l'URI de l'espace de noms selon le préfixe

Description

class DOMNode {

string lookupNamespaceURI ( string prefix )

}

Retourne l'URI de l'espace de noms selon le préfixe prefix.

Liste de paramètres

prefix

Le préfixe de l'espace de noms.

Valeurs de retour

L'URI de l'espace de noms de ce noeud.

Voir aussi

DOMNode->lookupPrefix()

Précédent | Sommaire | Suivant
DOMNode->isSupported() | Niveau supérieur | DOMNode->lookupPrefix()


DOMNode->lookupPrefix()

(no version information, might be only in CVS)

DOMNode->lookupPrefix() -- Retourne le préfixe de l'espace de noms selon l'URI de l'espace de noms

Description

class DOMNode {

string lookupPrefix ( string namespaceURI )

}

Retourne le préfixe de l'espace du noeud selon l'URI de l'espace de noms.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms.

Valeurs de retour

Le préfixe de l'espace de noms.

Voir aussi

DOMNode->lookupNamespaceURI()

Précédent | Sommaire | Suivant
DOMNode->lookupNamespaceURI() | Niveau supérieur | DOMNode->normalize()


DOMNode->normalize()

(no version information, might be only in CVS)

DOMNode->normalize() -- Normalise le noeud

Description

class DOMNode {

void normalize ( void )

}

Normalise le noeud.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

La spécification DOM
DOMDocument->normalizeDocument()

Précédent | Sommaire | Suivant
DOMNode->lookupPrefix() | Niveau supérieur | DOMNode->removeChild()


DOMNode->removeChild()

(no version information, might be only in CVS)

DOMNode->removeChild() -- Supprime un fils de la liste des enfants

Description

class DOMNode {

DOMNode removeChild ( DOMNode oldnode )

}

Cette fonction supprime un fils de la liste des enfants.

Liste de paramètres

oldnode

Le fils à affecer.

Valeurs de retour

Si le fils ne peut être effacé, la fonction retourne l'ancien fils.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule.

DOM_NOT_FOUND

Lancé si oldnode n'est pas un fils de ce noeud.

Exemples

L'exemple suivant va effacer l'élément chapter de notre document XML.

Exemple 1. Effacement d'un fils

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$book = $doc->documentElement;

// Nous récupérons le chapitre et l'effaçons du livre
$chapter = $book->getElementsByTagName('chapter')->item(0);
$oldchapter = $book->removeChild($chapter);

echo $doc->saveXML();
?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="listing">
 <title>My lists</title>

</book>

Voir aussi

DOMNode->appendChild()
DOMNode->replaceChild()

Précédent | Sommaire | Suivant
DOMNode->normalize() | Niveau supérieur | DOMNode->replaceChild()


DOMNode->replaceChild()

(no version information, might be only in CVS)

DOMNode->replaceChild() -- Remplace un fils

Description

class DOMNode {

DOMNode replaceChild ( DOMNode newnode, DOMNode oldnode )

}

Cette fonction remplace le fils oldnode par le nouveau noeud spécifié. SI le nouveau noeud est déjà un fils, il ne sera pas ajouter une seconde fois. Si le remplacement réussi, l'ancien noeud sera retourné.

Liste de paramètres

newnode

Le nouveau noeud. Il doit être membre du document cible, i.e. créé par une des méthodes de DOMDocument->createXXX() ou importé dans le document par DOMDocument->importNode().

oldnode

L'ancien noeud.

Valeurs de retour

L'ancien noeud ou FALSE si une erreur survient.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Lancé si le noeud est en lecture seule ou si le parent précédent du noeud à insérer est en lecture seule.

DOM_HIERARCHY_REQUEST_ERR

Lancé si le noeud est d'un type qui n'autorise pas les fils du type du noeud newnode, ou si le noeud à insérer est un des ancêtres de ce noeud ou ce noeud lui-même.

DOM_WRONG_DOCUMENT_ERR

Lancé si newnode a été créé depuis un document différent que celui qui a créé ce noeud.

DOM_NOT_FOUND

Lancé si oldnode n'est pas un fils de ce noeud.

Voir aussi

DOMNode->appendChild()
DOMNode->removeChild()

Précédent | Sommaire | Suivant
DOMNode->removeChild() | Niveau supérieur | DOMNodelist->item()


DOMNodelist->item()

(no version information, might be only in CVS)

DOMNodelist->item() -- Retourne un noeud spécifié par son index

Description

class DOMNodeList {

DOMNode item ( int index )

}

Retourne un noeud spécifié par son index dans l'objet DOMNodeList.

Astuce : Si vous avez besoin de connaître le nombre de noeuds dans la collection, utilisez la propriété length de l'objet DOMNodeList.

Liste de paramètres

index

L'index du noeud dans la collection.

Valeurs de retour

Le noeud à la position index dans la DOMNodeList, ou NULL si ce n'est pas un index valide.

Exemples

Exemple 1. Parcours de toutes les entrées de la table

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$items = $doc->getElementsByTagName('entry');

for ($i = 0; $i < $items->length; $i++) {
    echo $items->item($i)->nodeValue . "\n";
}

?>

Alternativement, vous pouvez utiliser la structure foreach, qui est une manière plus convenable :

<?php

foreach ($items as $item) {
    echo $item->nodeValue . "\n";
}

?>

L'exemple ci-dessus va afficher :

Title
Author
Language
ISBN
The Grapes of Wrath
John Steinbeck
en
0140186409
The Pearl
John Steinbeck
en
014017737X
Samarcande
Amine Maalouf
fr
2253051209

Précédent | Sommaire | Suivant
DOMNode->replaceChild() | Niveau supérieur | DOMProcessingInstruction->__construct()


DOMProcessingInstruction->__construct()

(no version information, might be only in CVS)

DOMProcessingInstruction->__construct() -- Crée un nouvel objet DOMProcessingInstruction

Description

class DOMProcessingInstruction {

__construct ( string name [, string value] )

}

Crée un nouvel objet DOMProcessingInstruction. Cet objet est en lecture seule. Il peut être ajouté à un document, mais les noeuds additionnels ne peuvent pas être ajoutés à ce noeud tant que ce noeud est associé à un document. Pour créer un noeud accessible en écriture, utilisez DOMDocument->createProcessingInstruction().

Liste de paramètres

name

Le nom du tag de l'instruction.

value

La valeur de l'instruction.

Exemples

Exemple 1. Création d'un nouveau DOMProcessingInstruction

<?php

$dom = new DOMDocument('1.0', 'UTF-8');
$html = $dom->appendChild(new DOMElement('html'));
$body = $html->appendChild(new DOMElement('body'));
$pinode = new DOMProcessingInstruction('php', 'echo "Bonjour le monde !"; ');
$body->appendChild($pinode);
echo $dom->saveXML();

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0" encoding="UTF-8"?>
<html><body><?php echo "Bonjour le monde !"; ?></body></html>

Voir aussi

DOMDocument->createProcessingInstruction()

Précédent | Sommaire | Suivant
DOMNodelist->item() | Niveau supérieur | DOMText->__construct()


DOMText->__construct()

(no version information, might be only in CVS)

DOMText->__construct() -- Crée un nouvel objet DOMText

Description

class DOMText {

__construct ( [string value] )

}

Crée un nouvel objet DOMText.

Liste de paramètres

value

La valeur du noeud texte. Si aucune n'est fournie, un noeud texte vide est créé.

Exemples

Exemple 1. CRéation d'un nouveau DOMText

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$text = $element->appendChild(new DOMText('valeur racine'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root>valeur racine</root> */

?>

Voir aussi

DOMDocument->createTextNode()

Précédent | Sommaire | Suivant
DOMProcessingInstruction->__construct() | Niveau supérieur | DOMText->isWhitespaceInElementContent()


DOMText->isWhitespaceInElementContent()

(no version information, might be only in CVS)

DOMText->isWhitespaceInElementContent() -- Indique si ce noeud de texte contient des espaces blancs

Description

class DOMText {

bool isWhitespaceInElementContent ( void )

}

Indique si un noeud de texte contient des espaces. Cette détermination est faite durant le chargement du document.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
DOMText->__construct() | Niveau supérieur | DOMText->splitText()


DOMText->splitText()

(no version information, might be only in CVS)

DOMText->splitText() -- Coupe le noeud en deux noeuds à l'endroit spécifié

Description

class DOMText {

DOMText splitText ( int offset )

}

Coupe le noeud en deux noeuds à l'endroit spécifié offset, en gardant les deux dans l'arbre comme siblings.

Après la césure, ce noeud contiendra tout le texte jusqu'à offset. Un nouveau noeud avec le reste du texte sera retourné. Si le noeud d'origine possède un parent, le nouveau noeud est inséré à la suite du noeud courant. Lorsque offset est égal à la taille du noeud, le nouveau noeud est vide.

Liste de paramètres

offset

La position de la césure, commençant à 0.

Valeurs de retour

Le nouveau noeud du même type, qui contient tout le contenu à partir de la position offset.

Précédent | Sommaire | Suivant
DOMText->isWhitespaceInElementContent() | Niveau supérieur | DOMXPath->__construct()


DOMXPath->__construct()

(no version information, might be only in CVS)

DOMXPath->__construct() -- Crée un nouvel objet DOMXPath

Description

class DOMXPath {

__construct ( DOMDocument doc )

}

Crée un nouvel objet DOMXPath.

Liste de paramètres

doc

Le DOMDocument associé au DOMXPath.

Précédent | Sommaire | Suivant
DOMText->splitText() | Niveau supérieur | DOMXPath->evaluate()


DOMXPath->evaluate()

(no version information, might be only in CVS)

DOMXPath->evaluate() -- Evalue une expression XPath donnée et retourne un résultat écrit si possible

Description

class DOMXPath {

mixed evaluate ( string expression [, DOMNode contextnode] )

}

Exécute l'expression XPath expression et retourne un résultat écrit 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.

Valeurs de retour

Retourne un résultat écrit si possible ou un DOMNodeList contenant tous les noeuds correspondant à 'expression XPath expression.

Exemples

Exemple 1. Récupération du nombre total de livres anglais

<?php

$doc = new DOMDocument;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// notre requête est relative au noeud tbody
$query = 'count(row/entry[. = "en"])';

$entries = $xpath->evaluate($query, $tbody);
echo "Il y a $entries livres anglais\n";

?>

L'exemple ci-dessus va afficher :

Il y a 2 livres anglais

Voir aussi

DOMXPath->query()

Précédent | Sommaire | Suivant
DOMXPath->__construct() | Niveau supérieur | DOMXPath->query()


DOMXPath->query()

(no version information, might be only in CVS)

DOMXPath->query() -- Evalue l'expression XPath donnée

Description

class DOMXPath {

DOMNodeList query ( string expression [, DOMNode contextnode] )

}

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

Valeurs de retour

Retourne un DOMNodeList contenant tous les noeuds correspondant à l'expression expression XPath donnée. Toutes les expressions qui ne retournent pas de noeud retourneront un DOMNodeList vide.

Exemples

Exemple 1. Récupération de tous les livres anglais

<?php

$doc = new DOMDocument;

// Nous ne voulons pas nous soucier des espaces blancs
$doc->preserveWhiteSpace = false;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Nous commençons à l'élément racine
$query = '//book/chapter/para/informaltable/tgroup/tbody/row/entry[. = "en"]';

$entries = $xpath->query($query);

foreach ($entries as $entry) {
    echo "Livre trouvé : {$entry->previousSibling->previousSibling->nodeValue}," .
         " par {$entry->previousSibling->nodeValue}\n";
}
?>

L'exemple ci-dessus va afficher :

Livre trouvé : The Grapes of Wrath, par John Steinbeck
Livre trouvé : The Pearl, par John Steinbeck

Nous pouvons également utiliser le paramètre contextnode pour raccourcir notre expression :

<?php

$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;

$doc->Load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// notre requête est relative au noeud tbody
$query = 'row/entry[. = "en"]';

$entries = $xpath->query($query, $tbody);

foreach ($entries as $entry) {
    echo "Livre trouvé : {$entry->previousSibling->previousSibling->nodeValue}," .
         " par {$entry->previousSibling->nodeValue}\n";
}
?>

Voir aussi

DOMXPath->evaluate()

Précédent | Sommaire | Suivant
DOMXPath->evaluate() | Niveau supérieur | DOMXPath->registerNamespace()


DOMXPath->registerNamespace()

(no version information, might be only in CVS)

DOMXPath->registerNamespace() -- Enregistre l'espace de noms avec l'objet DOMXPath

Description

class DOMXPath {

bool registerNamespace ( string prefix, string namespaceURI )

}

Enregistre l'espace de noms namespaceURI et le prefix avec l'objet DOMXPath.

Liste de paramètres

prefix

Le préfixe.

namespaceURI

L'URI de l'espace de noms.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
DOMXPath->query() | Niveau supérieur | dom_import_simplexml


dom_import_simplexml

(PHP 5)

dom_import_simplexml -- Transforme un objet DOMElement en un objet SimpleXMLElement

Description

DOMElement dom_import_simplexml ( SimpleXMLElement node )

dom_import_simplexml() transforme l'objet SimpleXML node en un objet DOMElement. Le nouvel objet peut être utilisé en tant que noeud natif DOMElement node.

Liste de paramètres

node

Le noeud SimpleXMLElement.

Valeurs de retour

Le noeud DOMElement à ajouter ou FALSE si une erreur survient.

Exemples

Exemple 1. Importation d'un objet SimpleXML dans DOM avec dom_import_simplexml()

<?php

$sxe = simplexml_load_string('<books><book><title>blah</title></book></books>');

if ($sxe === false) {
    echo 'Erreur lors de l\'analyse du document';
    exit;
}

$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
    echo 'Erreur lors de la convertion 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()

Précédent | Sommaire | Suivant
DOMXPath->registerNamespace() | Niveau supérieur | Fonctions DOM XML


Fonctions DOM XML

Manuel PHP
Précédent Suivant

XXXI. Fonctions DOM XML

Introduction

L'extension DOM XML a été reprise en main en PHP 4.3.0 pour être mieux compatible avec les standards DOM. L'extension contient encore de vieilles fonctions, mais elles ne sont plus utilisées. En particulier, les fonctions qui ne sont pas orientées objets ne doivent pas être utilisées.

Cette extension vous permet de générer des documents XML avec les API DOM. Elle fournit aussi une fonction domxml_xmltree() qui transforme un fichier XML en tableau PHP. Actuellement, ce tableau est accessible uniquement en lecture. Cela ne siginifie pas que vous ne pouvez pas le modifier, mais cela n'aurait aucun sens car DomDocument_dump_mem() ne pourra pas prendre ces modifications en considération. Par conséquent, si vous voulez lire un fichier XML et écrire sa version modifiée, utilisez les fonctions DomDocument_create_text_node(), set_attribute(), etc. et finalement DomDocument_dump_mem().

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.

Note : Cette extension n'est plus considérée comme expérimental. Néanmoins, elle ne sera jamais distribuée avec PHP 5 mais uniquement avec PHP 4. Si vous avez besoin du support DOM XML avec PHP 5, vous pouvez utiliser l'extension DOM. domxml n'est pas compatible avec l'extension DOM.

Pré-requis

Cette extension utilise la bibliothèque GNOME XML. Téléchargez là, puis installez là. Vous aurez besoin de la version libxml-2.4.14 ou plus récent. Pour utiliser les fonctionnalités DOM XSLT vous pouvez utiliser la bibliothèque libxslt et les progrès des EXSLT (http://www.exslt.org/). Téléchargez et installez ces bibliothèques si vous envisagez d'exploiter ces fonctionnalités. Vous aurez besoin d'au moins libxslt-1.0.18.

Installation

Cette extension PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/domxml.

En PHP 4, les sources de cette extension PECL peuvent être trouvées dans le dossier ext/ avec les sources de PHP ou sur le lien PECL ci-dessous. Cette extension est uniquement disponible si PHP a été configuré lors de la compilation avec l'option --with-dom=[DIR]. Ajoutez --with-dom-xslt[=DIR] pour inclure le support DOM XSLT. DIR est le dossier d'installatoin de libxslt. Ajoutez --with-dom-exslt[=DIR] pour inclure le support DOM EXSLT. DIR est le dossier d'installation de libxsl.

Les utilisateurs de Windows doivent activer la bibliothèque php_domxml.dll dans le php.ini pour pouvoir utiliser ces fonctions. En PHP 4, cette bibliothèque DLL se trouve dans le dossier extensions/ avec les binaires PHP pour Windows téléchargées. La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/ En outre, il y a une DLL additionnelle qui doit être disponible à votre PATH système pour faire fonctionner cette extension. En PHP 4, elle se trouve dans le dossier dlls/. Son nom : Pour PHP <= 4.2.0, c'est libxml2.dll. Pour PHP >= 4.3.0, c'est iconv.dll. Et depuis PHP 5.0.0, iconv est compilé dans les binaires PHP pour Windows par défaut, donc, aucune bibliothèque supplémentaire n'est nécessaire.

Fonctions dépréciées

Il y a un groupe de fonctions qui ne sont pas compatibles avec les standards DOM et qui ne devraient plus être utilisées. Ces fonctions sont listées dans la table ci-dessous. La fonction DomNode_append_child() a vu son comportement changer. Désormais, elle ajoute un fils et non pas un frère. Si cela casse votre application, utilisez plutôt la fonction DomNode_append_sibling(), qui ne fait pas partie des standards.

Tableau 1. Fonctions abandonnées et leur remplacement

Ancienne fonction | Nouvelle fonction
xmldoc | domxml_open_mem()
xmldocfile | domxml_open_file()
domxml_new_xmldoc | domxml_new_doc()
domxml_dump_mem | DomDocument_dump_mem()
domxml_dump_mem_file | DomDocument_dump_file()
DomDocument_dump_mem_file | DomDocument_dump_file()
DomDocument_add_root | DomDocument_create_element() suivie de DomNode_append_child()
DomDocument_dtd | DomDocument_doctype()
DomDocument_root | DomDocument_document_element()
DomDocument_children | DomNode_child_nodes()
DomDocument_imported_node | Pas de remplacement.
DomNode_add_child | Créez un nouveau noeud avec DomDocument_create_element() puis ajoutez-le avec DomNode_append_child().
DomNode_children | DomNode_child_nodes()
DomNode_parent | DomNode_parent_node()
DomNode_new_child | Créez un nouveau noeud avec DomDocument_create_element() puis ajoutez-le avec DomNode_append_child().
DomNode_set_content | Créez un nouveau noeud avec DomDocument_create_text_node() puis ajoutez-le avec DomNode_append_child().
DomNode_get_content | Le contenu est juste un noeud de texte, et est accessible via DomNode_child_nodes().
DomNode_set_content | Le contenu est juste un noeud de texte, et peut être ajouté avec DomNode_append_child().

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.

Tableau 2. Constantes XML

Constant | Value | Description
XML_ELEMENT_NODE (entier) | 1 | Node est un élément
XML_ATTRIBUTE_NODE (entier) | 2 | Node est un attribut
XML_TEXT_NODE (entier) | 3 | Node est un texte
XML_CDATA_SECTION_NODE (entier) | 4 |
XML_ENTITY_REF_NODE (entier) | 5 |
XML_ENTITY_NODE (entier) | 6 | Node est une entité comme
XML_PI_NODE (entier) | 7 | Node est une instruction de script
XML_COMMENT_NODE (entier) | 8 | Node est un commentaire
XML_DOCUMENT_NODE (entier) | 9 | Node est un document
XML_DOCUMENT_TYPE_NODE (entier) | 10 |
XML_DOCUMENT_FRAG_NODE (entier) | 11 |
XML_NOTATION_NODE (entier) | 12 |
XML_GLOBAL_NAMESPACE (entier) | 1 |
XML_LOCAL_NAMESPACE (entier) | 2 |
XML_HTML_DOCUMENT_NODE (entier) |  |
XML_DTD_NODE (entier) |  |
XML_ELEMENT_DECL_NODE (entier) |  |
XML_ATTRIBUTE_DECL_NODE (entier) |  |
XML_ENTITY_DECL_NODE (entier) |  |
XML_NAMESPACE_DECL_NODE (entier) |  |
XML_ATTRIBUTE_CDATA (entier) |  |
XML_ATTRIBUTE_ID (entier) |  |
XML_ATTRIBUTE_IDREF (entier) |  |
XML_ATTRIBUTE_IDREFS (entier) |  |
XML_ATTRIBUTE_ENTITY (entier) |  |
XML_ATTRIBUTE_NMTOKEN (entier) |  |
XML_ATTRIBUTE_NMTOKENS (entier) |  |
XML_ATTRIBUTE_ENUMERATION (entier) |  |
XML_ATTRIBUTE_NOTATION (entier) |  |
XPATH_UNDEFINED (entier) |  |
XPATH_NODESET (entier) |  |
XPATH_BOOLEAN (entier) |  |
XPATH_NUMBER (entier) |  |
XPATH_STRING (entier) |  |
XPATH_POINT (entier) |  |
XPATH_RANGE (entier) |  |
XPATH_LOCATIONSET (entier) |  |
XPATH_USERS (entier) |  |
XPATH_NUMBER (entier) |  |

Classes

L'API de ce module suit le standard DOM niveau 2 aussi fidèlement que possible. Par conséquent, l'API est totalement orientée objet. C'est une bonne idée d'avoir les standards DOM disponibles sous la main, lorsque vous utilisez ce module. Bien que cette API soit orientée objet, il existe de nombreuses fonctions qui peuvent être appelées d'une manière non objet, en passant l'objet à utiliser comme premier argument de la fonction. Cest fonctions sont essentiellement conservées pour assurer la compatibilité avec les extensions plus anciennes, et ne doivent pas être utilisées.

Cette API diffère de l'API officielle DOM en deux points. Le premier est que tous les attributs des classes sont implémentés comme des fonctions du même nom. Le second est que les noms des fonctions suivent les standards PHP. Cela signifie que la fonction DOM lastChild() s'écrit en PHP last_child().

Ce module définit un grand nombre de classe, qui sont listés en incluant leur méthodes dans les tables suivantes. Les classes ayant un équivalent DOM sont nommées DOMxxx.

Tableau 3. Liste de classes

Nom de la classe | Classe parente
DomAttribute | DomNode
DomCData | DomNode
DomComment | DomCData : DomNode
DomDocument | DomNode
DomDocumentType | DomNode
DomElement | DomNode
DomEntity | DomNode
DomEntityReference | DomNode
DomProcessingInstruction | DomNode
DomText | DomCData : DomNode
Parser | Actuellement, toujours appelée DomParser
XPathContext |

Tableau 4. DomDocument class (DomDocument : DomNode)

Nom de la méthode | Nom de la fonction | Remarques
doctype | DomDocument_doctype() |
document_element | DomDocument_document_element() |
create_element | DomDocument_create_element() |
create_text_node | DomDocument_create_text_node() |
create_comment | DomDocument_create_comment() |
create_cdata_section | DomDocument_create_cdata_section() |
create_processing_instruction | DomDocument_create_processing_instruction() |
create_attribute | DomDocument_create_attribute() |
create_entity_reference | DomDocument_create_entity_reference() |
get_elements_by_tagname | DomDocument_get_elements_by_tagname() |
get_element_by_id | DomDocument_get_element_by_id() |
dump_mem | DomDocument_dump_mem() | Non standard DOM
dump_file | DomDocument_dump_file() | Non standard DOM
html_dump_mem | DomDocument_html_dump_mem() | Non standard DOM
xpath_init | xpath_init | Non standard DOM
xpath_new_context | xpath_new_context | Non standard DOM
xptr_new_context | xptr_new_context | Non standard DOM

Tableau 5. Classe DomElement (DomElement : DomNode)

Nom de la méthode | Nom de la fonction | Remarques
tagname | DomElement_tagname() |
get_attribute | DomElement_get_attribute() |
set_attribute | DomElement_set_attribute() |
remove_attribute | DomElement_remove_attribute() |
get_attribute_node | DomElement_get_attribute_node() |
set_attribute_node | DomElement_set_attribute_node() |
get_elements_by_tagname | DomElement_get_elements_by_tagname() |
has_attribute | DomElement_has_attribute() |

Tableau 6. Classe DomNode

Nom de la méthode | Remarques
DomNode_node_name() |
DomNode_node_value() |
DomNode_node_type() |
DomNode_last_child() |
DomNode_first_child() |
DomNode_child_nodes() |
DomNode_previous_sibling() |
DomNode_next_sibling() |
DomNode_parent_node() |
DomNode_owner_document() |
DomNode_insert_before() |
DomNode_append_child() |
DomNode_append_sibling() | Non standard DOM. Cette fonction émule le comportement précédent de DomNode_append_child().
DomNode_remove_child() |
DomNode_has_child_nodes() |
DomNode_has_attributes() |
DomNode_clone_node() |
DomNode_attributes() |
DomNode_unlink_node() | Non standard DOM
DomNode_replace_node() | Non standard DOM
DomNode_set_content() | Non standard DOM, déprécié
DomNode_get_content() | Non standard DOM, déprécié
DomNode_dump_node() | Non standard DOM
DomNode_is_blank_node() | Non standard DOM

Tableau 7. Classe DomAttribute (DomAttribute : DomNode)

Nom de la méthode |  | Remarques
name | DomAttribute_name() |
value | DomAttribute_value() |
specified | DomAttribute_specified() |

Tableau 8. Classe DomProcessingInstruction (DomProcessingInstruction : DomNode)

Nom de la méthode | Nom de la fonction | Remarques
target | DomProcessingInstruction_target() |
data | DomProcessingInstruction_data() |

Tableau 9. Classe Parser

Nom de la méthode | Nom de la fonction | Remarques
add_chunk | Parser_add_chunk() |
end | Parser_end() |

Tableau 10. Classe XPathContext

Nom de la méthode | Nom de la fonction | Remarques
eval | XPathContext_eval() |
eval_expression | XPathContext_eval_expression() |
register_ns | XPathContext_register_ns() |

Tableau 11. Classe DomDocumentType (DomDocumentType : DomNode)

Nom de la méthode | Nom de la fonction | Remarques
name | DomDocumentType_name() |
entities | DomDocumentType_entities() |
notations | DomDocumentType_notations() |
public_id | DomDocumentType_public_id() |
system_id | DomDocumentType_system_id() |
internal_subset | DomDocumentType_internal_subset() |

Les classes DomDtd sont dérivées de DomNode. DomComment est dérivée de DomCData.

Exemples

De nombreux exemples de cette partie requièrent une chaîne XML. Au lieu de répéter la chaîne dans tous les exemples, elle sera mise dans un fichier, qui sera inclus dans tous les exemples. Ce fichier inclus sera utilisé dans les exemples suivants dans cette section. Alternativement, vous pouvez créer un document XML et le lire avec la fonction DomDocument_open_file().

Exemple 1. Fichier d'inclusion example.inc pour la chaîne XML d'exemple

<?php
$xmlstr = "<?xml version='1.0' standalone='yes'?>
<!DOCTYPE chapter SYSTEM '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'
[ <!ENTITY sp \"spanish\">
]>
<!-- lsfj  -->
<chapter language='en'><title language='en'>Title</title>
 <para language='ge'>
  &sp;
  <!-- comment -->
  <informaltable ID='findme' language='&sp;'>
   <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>
</chapter>";
?>

Table des matières
DomAttribute->name -- Retourne le nom de l'attribut
DomAttribute->set_value -- Spécifie une valeur à un attribut
DomAttribute->specified -- Vérifie si un attribut est spécifié
DomAttribute->value -- Retourne la valeur d'un attribut
DomDocument->add_root -- Ajoute un noeud
DomDocument->create_attribute -- Crée un nouvel attribut
DomDocument->create_cdata_section -- Crée un nouveau noeud CDATA
DomDocument->create_comment -- Crée un nouveau noeud de commentaire
DomDocument->create_element_ns -- Crée un nouvel élément avec un espace de noms associé
DomDocument->create_element -- Crée un nouveau noeud élément
DomDocument->create_entity_reference -- Crée une entité référence
DomDocument->create_processing_instruction -- Crée un nouveau noeud de traitement d'insctructions (PI)
DomDocument->create_text_node -- Crée un nouveau noeud de texte
DomDocument->doctype -- Retourne le type de document
DomDocument->document_element -- Retourne le noeud racine d'un document DOM XML
DomDocument->dump_file -- Convertit un document DOM XML en fichier
DomDocument->dump_mem -- Convertit l'arbre XML interne en une chaîne de caractères
DomDocument->get_element_by_id -- Recherche un élément avec son identifiant
DomDocument->get_elements_by_tagname -- Retourne un tableau avec noeuds pour le nom de tag donné dans le document ou un tableau vide si non trouvé
DomDocument->html_dump_mem -- Convertit l'arbre XML interne en une chaîne de caractères au format HTML
DomDocument->xinclude -- Remplace XIncludes dans un objet DomDocument
DomDocumentType->entities() -- Retourne la liste des entitées
DomDocumentType->internal_subset() -- Retourne le sous ensemble interne (internal subset)
DomDocumentType->name() -- Retourne le nom du type de document
DomDocumentType->notations() -- Retourne la liste des notations
DomDocumentType->public_id() -- Retourne l'identifiant public du type de document
DomDocumentType->system_id() -- Retourne l'identifiant système du type de document
DomElement->get_attribute_node() -- Retourne la valeur d'un attribut
DomElement->get_attribute() -- Retourne la valeur d'un attribut
DomElement->get_elements_by_tagname() -- Lit les éléments par nom de balise
DomElement->has_attribute() -- Vérifie si un attribut existe
DomElement->remove_attribute() -- Supprime un attribut
DomElement->set_attribute_node() -- Ajoute un nouvel attribut
DomElement->set_attribute() -- Définie la valeur d'un attribut
DomElement->tagname() -- Retourne le nom de l'élément courant
DomNode->add_namespace -- Ajoute une déclaration d'espace de nom à un noeud
DomNode->append_child -- Ajoute un nouveau fils à la fin des enfants
DomNode->append_sibling -- Ajoute un frère à un noeud
DomNode->attributes -- Retourne la liste des attributs
DomNode->child_nodes -- Retourne les fils d'un noeud
DomNode->clone_node -- Clone un noeud
DomNode->dump_node -- Convertit un noeud en chaîne
DomNode->first_child -- Retourne le premier fils du noeud
DomNode->get_content -- Retourne le contenu du noeud
DomNode->has_attributes -- Vérifie si un noeud a des attributs
DomNode->has_child_nodes -- Vérifie si un noeud a des fils
DomNode->insert_before -- Insère un nouveau noeud fils
DomNode->is_blank_node -- Vérifie si un noeud est blanc
DomNode->last_child -- Retourne le dernier fils du noeud
DomNode->next_sibling -- Retourne le noeud frère suivant
DomNode->node_name -- Retourne le nom du noeud
DomNode->node_type -- Retourne le type de noeud
DomNode->node_value -- Retourne la valeur d'un noeud
DomNode->owner_document -- Retourne le document auquel appartient ce noeud DOM XML
DomNode->parent_node -- Retourne le père d'un noeud DOM XML
DomNode->prefix -- Retourne le préfixe d'espace de nom d'un noeud
DomNode->previous_sibling -- Retourne le frère précédent d'un noeud
DomNode->remove_child -- Supprime un fils de la liste des noeuds fils
DomNode->replace_child -- Remplace un noeud fils
DomNode->replace_node -- Remplace un noeud DomXML
DomNode->set_content -- Modifie le contenu d'un noeud
DomNode->set_name -- Modifie le nom d'un noeud
DomNode->set_namespace -- Modifie l'espace de noms d'un noeud
DomNode->unlink_node -- Efface un noeud
DomProcessingInstruction->data -- Retourne les données du noeud l'instruction en cours
DomProcessingInstruction->target -- Retourne la cible du noeud de l'instruction en cours
DomXsltStylesheet->process() -- Applique une transformation XSLT à un objet domdocument
DomXsltStylesheet->result_dump_file() -- Écrit le résultat d'un transformation XSLT dans un fichier
DomXsltStylesheet->result_dump_mem() -- Écrit le résultat d'un transformation XSLT dans une chaîne
domxml_new_doc -- Crée un document XML vide
domxml_open_file -- Crée un objet DOM à partir d'un fichier XML
domxml_open_mem -- Crée un objet DOM pour un document XML
domxml_version -- Lit le numéro de version de la bibliothèque XML
domxml_xmltree -- Crée un arbre d'objets PHP à partir d'un document XML
domxml_xslt_stylesheet_doc -- Crée un objet DomXsltStylesheet à partir d'un objet DomDocument
domxml_xslt_stylesheet_file -- Crée un objet DomXsltStylesheet à partir d'un document XSL dans un fichier
domxml_xslt_stylesheet -- Crée un objet DomXsltStylesheet à partir d'un document XSL dans une chaîne
domxml_xslt_version -- Lit le numéro de version de la bibliothèque XSLT
xpath_eval_expression -- Calcule un chemin XPath à partir d'une chaîne
xpath_eval -- Calcule un chemin XPath à partir d'une chaîne
xpath_new_context -- Crée un nouveau contexte xpath
xpath_register_ns_auto -- Sauvegarde l'espace de nom donné dans le contexte XPath passé
xpath_register_ns -- Sauvegarde l'espace de nom donné dans le contexte XPath passé
xptr_eval -- Calcul un chemin XPtr à partir d'une chaîne
xptr_new_context -- Crée un nouveau contexte XPath

Précédent | Sommaire | Suivant
dom_import_simplexml | Niveau supérieur | DomAttribute->name


DomAttribute->name

(no version information, might be only in CVS)

DomAttribute->name -- Retourne le nom de l'attribut

Description

class DomAttribute {

string name ( void )

}

Récupère le nom de l'attribut.

Valeurs de retour

Retourne le nom de l'attribut.

Migration vers PHP 5

Utilisez la propriété name de DOMAttr.

Voir aussi

DomAttribute->value pour un exemple

Précédent | Sommaire | Suivant
Fonctions DOM XML | Niveau supérieur | DomAttribute->set_value


DomAttribute->specified

(no version information, might be only in CVS)

DomAttribute->specified -- Vérifie si un attribut est spécifié

Description

class DomAttribute {

bool specified ( void )

}

Vérifie si une valeur d'attribut a été explicitement donnée dans le document original.

Note : Cette méthode n'est pas encore implémentée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

La définition de spécifié dans les Recommandations DOM

Précédent | Sommaire | Suivant
DomAttribute->set_value | Niveau supérieur | DomAttribute->value


DomAttribute->value

(no version information, might be only in CVS)

DomAttribute->value -- Retourne la valeur d'un attribut

Description

class DomAttribute {

string value ( void )

}

DomAttribute->value retourne la valeur de l'attribut.

Exemples

Exemple 1. Récupération de tous les attributs d'un noeud

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
     echo "Erreur lors de l'analyse du document\n";
     exit;
}

$root = $dom->document_element();
$attrs = $root->attributes();

echo 'Attributs de ' . $root->node_name() . "\n";
foreach ($attrs as $attribute) {
     echo ' - ' . $attribute->name . ' : ' . $attribute->value . "\n";
}

?>

L'exemple ci-dessus va afficher :

Attributs de chapter
 - language : en

Valeurs de retour

Retourne la valeur de l'attribut.

Migration vers PHP 5

Utilisez la propriété value de DOMAttr.

Voir aussi

DomAttribute->set_value
DomAttribute->name

Précédent | Sommaire | Suivant
DomAttribute->specified | Niveau supérieur | DomDocument->add_root


DomDocument->add_root

(no version information, might be only in CVS)

DomDocument->add_root -- Ajoute un noeud

Description

domelement DomDocument->add_root ( string name )

DomDocument->add_root ajoute un noeud racine au document dom, et retourne le nouveau noeud. Le nom de l'élément créé est fourni par le paramètre name.

Exemple 1. Création d'un en-tête de document HTML

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->add_root("html");
$head = $root->new_child("head", "");
$head->new_child("title", "Voilà le titre");
echo htmlentities($doc->dump_mem());
?>

Précédent | Sommaire | Suivant
DomAttribute->value | Niveau supérieur | DomDocument->create_attribute


DomDocument->create_attribute

(no version information, might be only in CVS)

DomDocument->create_attribute -- Crée un nouvel attribut

Description

domattribute DomDocument->create_attribute ( string name, string value )

DomDocument->create_attribute() retourne une nouvelle instance de la classe DomAttribute. Le nom de l'attribut sera name, et sa valeur sera value. Ce noeud ne sera pas utilisé dans le document jusqu'à ce qu'il soit inséré dans le document avec la fonction domnode_append_child().

DomDocument->create_attribute() retourne FALSE si une erreur survient.

Voir aussi
domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_cdata_section(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference() et
domnode_insert_before().

Précédent | Sommaire | Suivant
DomDocument->add_root | Niveau supérieur | DomDocument->create_cdata_section


DomDocument->create_cdata_section

(no version information, might be only in CVS)

DomDocument->create_cdata_section -- Crée un nouveau noeud CDATA

Description

domcdata DomDocument->create_cdata_section ( string content )

DomDocument->create_cdata_section() retourne une nouvelle instance de la classe DomCData. Le contenu du CDATA sera content. Le noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec domnode_append_child().

DomDocument->create_cdata_section() retourne FALSE si une erreur survient.

Voir aussi
domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference() et
domnode_insert_before().

Précédent | Sommaire | Suivant
DomDocument->create_attribute | Niveau supérieur | DomDocument->create_comment


DomDocument->create_comment

(no version information, might be only in CVS)

DomDocument->create_comment -- Crée un nouveau noeud de commentaire

Description

domcomment DomDocument->create_comment ( string content )

DomDocument->create_comment() retourne une nouvelle instance de la classe DomComment. Le contenu du commentaire sera content. Le noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec domnode_append_child().

DomDocument->create_comment() retourne FALSE si une erreur survient.

Voir aussi
domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference() et
domnode_insert_before().

Précédent | Sommaire | Suivant
DomDocument->create_cdata_section | Niveau supérieur | DomDocument->create_element_ns


DomDocument->create_element_ns

(no version information, might be only in CVS)

DomDocument->create_element_ns -- Crée un nouvel élément avec un espace de noms associé

Description

domelement DomDocument->create_element_ns ( string uri, string name [, string prefix] )

DomDocument->create_element_ns() retourne une nouvelle instance de la classe DomElement. Le nom de balise de l'élément sera content. L'URI de l'espace de noms est la valeur passé dans le paramètre uri. S'il y a déjà un espace de nom déclaré avec la même URI dans le document, le préfixe de ce dernier sera réservé, et sinon, il faudra en fournir un avec le paramètre prefix ou bien en générer un. Le noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec domnode_append_child().

DomDocument->create_element_ns() retourne FALSE si une erreur survient.

Voir aussi
domdocument_create_element_ns(),
domnode_add_namespace(),
domnode_set_namespace(),
domnode_append_child(),
domdocument_create_text(),
domdocument_create_comment(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference() et
domnode_insert_before().

Précédent | Sommaire | Suivant
DomDocument->create_comment | Niveau supérieur | DomDocument->create_element


DomDocument->create_element

(no version information, might be only in CVS)

DomDocument->create_element -- Crée un nouveau noeud élément

Description

domelement DomDocument->create_element ( string name )

DomDocument->create_element() retourne une nouvelle instance de la classe DomElement. Le nom de balise l'élément sera name. Le noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec domnode_append_child().

DomDocument->create_processing_instruction() retourne FALSE si une erreur survient.

Voir aussi
domdocument_create_element_ns(),
domnode_append_child(),
domdocument_create_text(),
domdocument_create_comment(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference() et
domnode_insert_before().

Précédent | Sommaire | Suivant
DomDocument->create_element_ns | Niveau supérieur | DomDocument->create_entity_reference


DomDocument->create_entity_reference

(no version information, might be only in CVS)

DomDocument->create_entity_reference -- Crée une entité référence

Description

domentityreference DomDocument->create_entity_reference ( string content )

DomDocument->create_entity_reference() retourne une nouvelle instance de la classe DomEntityReference. Le contenu de la référence d'entité est passé dans le paramètre content. Le noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec domnode_append_child().

DomDocument->create_entity_reference() retourne FALSE si une erreur survient.

Voir aussi
domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_cdata_section(),
domdocument_create_processing_instruction(),
domdocument_create_attribute() et
domnode_insert_before().

Précédent | Sommaire | Suivant
DomDocument->create_element | Niveau supérieur | DomDocument->create_processing_instruction


DomDocument->create_processing_instruction

(no version information, might be only in CVS)

DomDocument->create_processing_instruction -- Crée un nouveau noeud de traitement d'insctructions (PI)

Description

domprocessinginstruction DomDocument->create_processing_instruction ( string content )

DomDocument->create_processing_instruction() retourne une nouvelle instance de la classe DomCData. Le contenu de l'unité de traitement sera content. Le noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec domnode_append_child().

DomDocument->create_processing_instruction() retourne FALSE si une erreur survient.

Voir aussi
domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_cdata_section(),
domdocument_create_attribute(),
domdocument_create_entity_reference() et
domnode_insert_before().

Précédent | Sommaire | Suivant
DomDocument->create_entity_reference | Niveau supérieur | DomDocument->create_text_node


DomDocument->create_text_node

(no version information, might be only in CVS)

DomDocument->create_text_node -- Crée un nouveau noeud de texte

Description

domtext DomDocument->create_text_node ( string content )

DomDocument->create_text_node() retourne une nouvelle instance de la classe DomText. Le contenu de ce noeud est content. Le noeud ne sera pas affiché dans le document, à moins qu'il ne soit inséré avec domnode_append_child().

La fonction retourne FALSE en cas d'erreur.

Voir aussi
domnode_append_child(),
domdocument_create_element(),
domdocument_create_comment(),
domdocument_create_text(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference() et
domnode_insert_before().

Précédent | Sommaire | Suivant
DomDocument->create_processing_instruction | Niveau supérieur | DomDocument->doctype


DomDocument->doctype

(no version information, might be only in CVS)

DomDocument->doctype -- Retourne le type de document

Description

domdocumenttype DomDocument->doctype ( void )

DomDocument->doctype retourne un objet de la classe DomDocumenttype. Dans les versions de PHP antérieures à la version 4.3, c'était la classe Dtd, mais les standards DOM ne disposent pas d'une telle classe.

Voir aussi les méthodes de la classe DomDocumentType.

Précédent | Sommaire | Suivant
DomDocument->create_text_node | Niveau supérieur | DomDocument->document_element


DomDocument->document_element

(no version information, might be only in CVS)

DomDocument->document_element -- Retourne le noeud racine d'un document DOM XML

Description

domelement DomDocument->document_element ( void )

DomDocument->document_element() retourne le noeud racine d'un document DOM XML.

L'exemple suivant retourne simplement l'élément nommé CHAPTER, puis l'affiche. L'autre noeud (le commentaire), n'est pas retourné.

Exemple 1. Récupération du noeud racine avec DomDocument->document_element()

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Erreur lors de l'analyse du document\n";
  exit;
}

$root = $dom->document_element();
print_r($root);
?>

L'exemple ci-dessus va afficher :

domelement Object
(
    [type] => 1
    [tagname] => chapter
    [0] => 6
    [1] => 137960648
)

Précédent | Sommaire | Suivant
DomDocument->doctype | Niveau supérieur | DomDocument->dump_file


DomDocument->dump_file

(no version information, might be only in CVS)

DomDocument->dump_file -- Convertit un document DOM XML en fichier

Description

string DomDocument->dump_file ( string filename [, bool compressionmode [, bool format]] )

DomDocument->dump_file() crée un document XML à partir de sa représentation interne DOM. DomDocument->dump_mem() est généralement appelée après la construction d'un document à partir de zéro, comme dans l'exemple ci-dessous. Le paramètre format spécifie si l'affichage doit être formaté proprement ou pas. filename est le nom du fichier dans lequel le document XML sera sauvegardé, et compressionmode indique si le fichier doit être compressé ou pas.

Exemple 1. Création d'un en-tête de document HTML avec DomDocument->dump_file()

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
$doc->dump_file("/tmp/test.xml", false, true);
?>

Voir aussi domdocument_dump_mem() et domdocument_html_dump_mem().

Précédent | Sommaire | Suivant
DomDocument->document_element | Niveau supérieur | DomDocument->dump_mem


DomDocument->dump_mem

(no version information, might be only in CVS)

DomDocument->dump_mem -- Convertit l'arbre XML interne en une chaîne de caractères

Description

string DomDocument->dump_mem ( [bool format [, string encoding]] )

DomDocument->dump_mem() crée un document XML à partir de sa représentation interne DOM. DomDocument->dump_mem() est généralement appelée après la construction d'un document à partir de zéro, comme dans l'exemple ci-dessous. Le paramètre format spécifie si l'affichage doit être formaté proprement ou pas.

Exemple 1. Création d'un en-tête de document HTML avec DomDocument->dump_mem()

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
echo "<pre>";
echo htmlentities($doc->dump_mem(true));
echo "</pre>";
?>

Note : Le premier paramètre a été ajouté en PHP 4.3.0.

Voir aussi domdocument_dump_file() et domdocument_html_dump_mem().

Précédent | Sommaire | Suivant
DomDocument->dump_file | Niveau supérieur | DomDocument->get_element_by_id


DomDocument->get_element_by_id

(no version information, might be only in CVS)

DomDocument->get_element_by_id -- Recherche un élément avec son identifiant

Description

domelement DomDocument->get_element_by_id ( string id )

DomDocument->get_element_by_id() est similaire à domdocument_get_elements_by_tagname() mais recherche un élément grâce à l'identifiant passé en paramètre id. Suivant les standards DOM, cela impose l'utilisation d'une DTD qui définit l'attribut ID du type ID, même si l'implémentation courante fait une simple recherche xpath sur //*[@ID = '%s']. Ce n'est pas conforme aux standard DOM, qui demandent le retour de la valeur NULL s'il n'est pas possible de savoir quel attribut est de type id. Ce comportement sera probablement corrigé, alors ne vous fiez pas totalement à ce comportement actuel.

Voir aussi domdocument_get_elements_by_tagname().

Précédent | Sommaire | Suivant
DomDocument->dump_mem | Niveau supérieur | DomDocument->get_elements_by_tagname


DomDocument->get_elements_by_tagname

(no version information, might be only in CVS)

DomDocument->get_elements_by_tagname -- Retourne un tableau avec noeuds pour le nom de tag donné dans le document ou un tableau vide si non trouvé

Description

array DomDocument->get_elements_by_tagname ( string name )

Voir aussi domdocument_add_root().

Précédent | Sommaire | Suivant
DomDocument->get_element_by_id | Niveau supérieur | DomDocument->html_dump_mem


DomDocument->html_dump_mem

(no version information, might be only in CVS)

DomDocument->html_dump_mem -- Convertit l'arbre XML interne en une chaîne de caractères au format HTML

Description

string DomDocument->html_dump_mem ( void )

DomDocument->html_dump_mem() crée un document HTML à partir de sa représentation interne DOM. DomDocument->dump_mem() est généralement appelée après la construction d'un document à partir de zéro, comme dans l'exemple ci-dessous.

Exemple 1. Création d'un en-tête de document HTML avec DomDocument->html_dump_mem()

<?php

// Création du document
$doc = domxml_new_doc("1.0");

$root = $doc->create_element("html");
$root = $doc->append_child($root);

$head = $doc->create_element("head");
$head = $root->append_child($head);

$title = $doc->create_element("title");
$title = $head->append_child($title);

$text = $doc->create_text_node("Ceci est le titre");
$text = $title->append_child($text);

echo $doc->html_dump_mem();
?>

L'exemple ci-dessus va afficher :

<html><head><title>Ceci est le titre</title></head></html>

Voir aussi domdocument_dump_file() et domdocument_html_dump_mem().

Précédent | Sommaire | Suivant
DomDocument->get_elements_by_tagname | Niveau supérieur | DomDocument->xinclude


DomDocument->xinclude

(no version information, might be only in CVS)

DomDocument->xinclude -- Remplace XIncludes dans un objet DomDocument

Description

int DomDocument->xinclude ( void )

DomDocument->xinclude() substitue XIncludes dans un objet DomDocument.

Exemple 1. Substitution des Xincludes

<?php

// include.xml contient :
// <child>test</child>

$xml = '<?xml version="1.0"?>
<root xmlns:xi="http://www.w3.org/2001/XInclude">
  <xi:include href="include.xml">
    <xi:fallback>
      <error>xinclude: include.xml n\'a pas été trouvé</error>
    </xi:fallback>
  </xi:include>
</root>';

$domxml = domxml_open_mem($xml);
$domxml->xinclude();

echo $domxml->dump_mem();

?>

L'exemple ci-dessus va afficher :

<?xml version="1.0"?>
<root xmlns:xi="http://www.w3.org/2001/XInclude">
  <child>test</child>
</root>

Si include.xml n'existe pas, vous verez :

<?xml version="1.0"?>
<root xmlns:xi="http://www.w3.org/2001/XInclude">
  <error>xinclude:dom.xml n'a pas été trouvé</error>
</root>

Précédent | Sommaire | Suivant
DomDocument->html_dump_mem | Niveau supérieur | DomDocumentType->entities()


DomDocumentType->entities()

(no version information, might be only in CVS)

DomDocumentType->entities() -- Retourne la liste des entitées

Description

class DomDocumentType {

array entities ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Migration vers PHP 5

Utilisez la propriété entities de l'objet DOMDocumentType.

Précédent | Sommaire | Suivant
DomDocument->xinclude | Niveau supérieur | DomDocumentType->internal_subset()


DomDocumentType->internal_subset()

(no version information, might be only in CVS)

DomDocumentType->internal_subset() -- Retourne le sous ensemble interne (internal subset)

Description

class DomDocumentType {

bool internal_subset ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Migration vers PHP 5

Utilisez la propriété internalSubset de l'objet DOMDocumentType.

Précédent | Sommaire | Suivant
DomDocumentType->entities() | Niveau supérieur | DomDocumentType->name()


DomDocumentType->name()

(no version information, might be only in CVS)

DomDocumentType->name() -- Retourne le nom du type de document

Description

class DomDocumentType {

string name ( void )

}

Cette fonction retourne le nom du type de document.

Valeurs de retour

Retourne le nom de DomDocumentType, comme une chaîne de caractères.

Exemples

Exemple 1. Récupération du nom du type du document

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Erreur pendant l'analyse du document\n";
    exit;
}

$doctype = $dom->doctype();
echo $doctype->name(); // chapitre

?>

Migration vers PHP 5

Utilisez la propriété name de l'objet DOMDocumentType.

Précédent | Sommaire | Suivant
DomDocumentType->internal_subset() | Niveau supérieur | DomDocumentType->notations()


DomDocumentType->notations()

(no version information, might be only in CVS)

DomDocumentType->notations() -- Retourne la liste des notations

Description

class DomDocumentType {

array notations ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Migration vers PHP 5

Utilisez la propriété notations de l'objet DOMDocumentType.

Précédent | Sommaire | Suivant
DomDocumentType->name() | Niveau supérieur | DomDocumentType->public_id()


DomDocumentType->public_id()

(no version information, might be only in CVS)

DomDocumentType->public_id() -- Retourne l'identifiant public du type de document

Description

class DomDocumentType {

string public_id ( void )

}

Cette fonction retourne l'identifiant public du type de document.

Valeurs de retour

Retourne l'identifiant public de DomDocumentType, comme une chaîne de caractères.

Exemples

L'exemple ci-dessous n'affichera rien.

Exemple 1. Lire l'identifiant public avec DOM XML

<?php
include("exemple.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Erreur lors de l'analyse du document\n";
  exit;
}

$doctype = $dom->doctype();
echo $doctype->public_id();
?>

Migration vers PHP 5

Utilisez la propriété publicId de l'objet DOMDocumentType.

Précédent | Sommaire | Suivant
DomDocumentType->notations() | Niveau supérieur | DomDocumentType->system_id()


DomDocumentType->system_id()

(no version information, might be only in CVS)

DomDocumentType->system_id() -- Retourne l'identifiant système du type de document

Description

class DomDocumentType {

string system_id ( void )

}

Retourne l'identifiant système du type de document.

Valeurs de retour

Retourne l'identifiant système de DomDocumentType, comme une chaîne de caractères.

Exemples

Exemple 1. Lire un identifiant système DOM XML

<?php
include("exemple.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Erreur durant l'analyse du document\n";
  exit;
}

$doctype = $dom->doctype();
echo $doctype->system_id();
?>

L'exemple ci-dessus va afficher :

/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd

Migration vers PHP 5

Utilisez la propriété systemId de l'objet DOMDocumentType.

Précédent | Sommaire | Suivant
DomDocumentType->public_id() | Niveau supérieur | DomElement->get_attribute_node()


DomElement->get_attribute_node()

(no version information, might be only in CVS)

DomElement->get_attribute_node() -- Retourne la valeur d'un attribut

Description

class DomElement {

DomAttribute get_attribute_node ( string name )

}

Retourne le noeud de l'attribut donné dans l'élément courant.

Liste de paramètres

name

Le nom de l'attribut cherché. Ce paramètre est sensible à la casse.

Valeurs de retour

Retourne le noeud de l'attribut comme étant DomAttribute ou FALSE si aucun attribut avec le nom name n'est trouvé.

Exemples

Exemple 1. Récupération d'un attribut d'un noeud

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Erreur lors de l'analyse du document\n";
    exit;
}

$root = $dom->document_element();
if ($attribute = $root->get_attribute_node('language')) {
    echo 'Le langage est : ' . $attribute->value() . "\n";
}

?>

Migration vers PHP 5

Utilisez DOMElement->getAttributeNode().

Voir aussi

DomElement->get_attribute()
DomElement->set_attribute()

Précédent | Sommaire | Suivant
DomDocumentType->system_id() | Niveau supérieur | DomElement->get_attribute()


DomElement->get_attribute()

(no version information, might be only in CVS)

DomElement->get_attribute() -- Retourne la valeur d'un attribut

Description

class DomElement {

string get_attribute ( string name )

}

Retourne la valeur de l'attribut donné dans l'élément courant.

Depuis PHP 4.3, si aucun attribut de nom name n'est trouvé, une chaîne de caractères vide est retournée.

Liste de paramètres

name

Le nom de l'attribut cherché. Ce paramètre est sensible à la casse.

Valeurs de retour

Retourne le nom de l'attribut comme une chaîne de caractères ou une chaîne de caractères vide si aucun attribut avec le nom name n'est trouvé.

Exemples

Exemple 1. Récupération de la valeur d'un attribut

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Erreur lors de l'analyse du document\n";
    exit;
}

// get chapter
$root = $dom->document_element();
echo $root->get_attribute('language'); // en

?>

Mégration vers PHP 5

Utilisez DOMElement->getAttribute().

Voir aussi

DomElement->get_attribute_node()
DomElement->set_attribute()

Précédent | Sommaire | Suivant
DomElement->get_attribute_node() | Niveau supérieur | DomElement->get_elements_by_tagname()


DomElement->get_elements_by_tagname()

(no version information, might be only in CVS)

DomElement->get_elements_by_tagname() -- Lit les éléments par nom de balise

Description

class DomElement {

array get_elements_by_tagname ( string name )

}

Récupère tous les sous éléments avec un nom spécifique name à l'intérieur de l'élément courant.

Liste de paramètres

name

Le nom de l'attribut cherché.

Valeurs de retour

Retourne un tableau d'objets DomElement.

Exemples

Exemple 1. Récupération d'un contenu

<?php
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Erreur pendant le parsage du document\n";
  exit;
}

$root = $dom->document_element();

$node_array = $root->get_elements_by_tagname('element');

foreach ($node_array as $node) {
    echo ' - ' . $node->get_content() . "\n";
}

?>

Migration vers PHP 5

Utilisez DOMElement->getElementsByTagName().

Précédent | Sommaire | Suivant
DomElement->get_attribute() | Niveau supérieur | DomElement->has_attribute()


DomElement->has_attribute()

(no version information, might be only in CVS)

DomElement->has_attribute() -- Vérifie si un attribut existe

Description

class DomElement {

bool has_attribute ( string name )

}

Cette fonction vérifie l'existence d'un attribut nommé name dans le noeud courant.

Liste de paramètres

name

Le nom de l'attribut testé.

Valeurs de retour

Retourne TRUE si l'attribut demandé existe, FALSE autrement.

Exemples

Exemple 1. Teste l'existence d'un attribut

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Erreur lors de l'analyse du document\n";
    exit;
}

$root = $dom->document_element();

$buffer = '<html';
if ($root->has_attribute('language')) {
    $buffer .= 'lang="' . $root->get_attribute('language') . '"';
}
$buffer .= '>';

?>

Migration vers PHP 5

Utilisez DOMElement->hasAttribute().

Précédent | Sommaire | Suivant
DomElement->get_elements_by_tagname() | Niveau supérieur | DomElement->remove_attribute()


DomElement->remove_attribute()

(no version information, might be only in CVS)

DomElement->remove_attribute() -- Supprime un attribut

Description

class DomElement {

bool remove_attribute ( string name )

}

Supprime un attribut du noeud courant DomElement.

Liste de paramètres

name

Le nom de l'attribut à supprimer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Migration vers PHP 5

Utilisez DOMElement->removeAttribute().

Précédent | Sommaire | Suivant
DomElement->has_attribute() | Niveau supérieur | DomElement->set_attribute_node()


DomElement->set_attribute()

(no version information, might be only in CVS)

DomElement->set_attribute() -- Définie la valeur d'un attribut

Description

class DomElement {

DomAttribute set_attribute ( string name, string value )

}

Définie l'attribut de nom name, avec la valeur value.

Liste de paramètres

name

Le nom de l'attribut. Si cet attribut n'existe pas, il sera créé.

value

La valeur de l'attribut.

Valeurs de retour

Retourne le vieux noeud DomAttribute ou le nouveau si vous créé l'attribut pour la première fois.

Exemples

Exemple 1. Créer un attribut avec DOM XML

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>

Migration vers PHP 5

Utilisez DOMElement->setAttribute().

Voir aussi

DomElement->get_attribute_node()
DomElement->get_attribute()

Précédent | Sommaire | Suivant
DomElement->set_attribute_node() | Niveau supérieur | DomElement->tagname()


DomElement->tagname()

(no version information, might be only in CVS)

DomElement->tagname() -- Retourne le nom de l'élément courant

Description

class DomElement {

string tagname ( void )

}

Retourne le nom du noeud courant. Appeler cette fonction revient à accéder à la propriété tagname ou appeler DomNode->node_name sur le noeud courant.

Valeurs de retour

Retourne le nom du noeud courant DomElement.

Exemples

Exemple 1. Récupération du nom du noeud

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Erreur lors de l'analyse du document\n";
    exit;
}

$root = $dom->document_element();
echo $root->tagname();   // chapitre
echo $root->tagname;     // chapitre
echo $root->node_name(); // chapitre

?>

Migration vers PHP 5

Utilisez la propriété tagName de l'objet DOMElement.

Précédent | Sommaire | Suivant
DomElement->set_attribute() | Niveau supérieur | DomNode->add_namespace


DomNode->add_namespace

(no version information, might be only in CVS)

DomNode->add_namespace -- Ajoute une déclaration d'espace de nom à un noeud

Description

class DOMNode {

bool add_namespace ( string uri, string prefix )

}

Cette méthode ajoute une déclaration de nom à un noeud.

Note : Cette méthode ne fait pas parti des spécifications DOM.

Liste de paramètres

uri

L'espace de nom URI du noeud.

prefix

Le préfixe de l'espace de nom du noeud.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Migration vers PHP 5

Vous pouvez spécifier l'espace de nom URI et le préfixe de DOMElement ou de DOMAttr à la création en utilisant DOMDocument->createElementNS() ou DOMDocument->createAttributeNS().

Note : Rappelez-vous qu'un attribut n'hérite pas son espace de nom à partir de l'élément dont il est attaché.

Voir aussi

DomDocument->create_element_ns
DomNode->set_namespace

Précédent | Sommaire | Suivant
DomElement->tagname() | Niveau supérieur | DomNode->append_child


DomNode->append_child

(no version information, might be only in CVS)

DomNode->append_child -- Ajoute un nouveau fils à la fin des enfants

Description

class DOMNode {

DOMNode append_child ( DOMNode newnode )

}

Cette fonction ajoute un fils à une liste existante de fils ou crée une nouvelle liste de fils.

Liste de paramètres

newnode

Le noeud qui sera ajouté. Il peut être créé avec DomDocument->create_element, DomDocument->create_text_node etc. ou simplement en utilisant un autre noeud.

Note : Vous ne pouvez pas ajouter un DOMAttribute en utilisant cette méthode. Utilisez DomElement->set_attribute() à la place.

Valeurs de retour

Retourne le noeud ajouté en cas de succès ou FALSE en cas d'échec.

Historique

Version | Description
4.3.0 | Vous n'êtes plus autorisé d'insérer un noeud à partir d'un autre document.
4.3.0 | Avant PHP 4.3.0, le nouveau fils est dupliqué avant d'être ajouté. Par conséquent, le nouveau fils est une copie qui peut être modifiée sans altérer le noeud utilisé dans cette fonction. Si le noeud passé a des fils, ils seront aussi dupliqués, ce qui rend cette fonction pratique pour copier des documents XML complexes. La valeur retournée est le noeud fils ajouté. Si vous voulez apporter des modifications au noeud fils, vous devez utiliser le noeud retourné.
4.3.0 et 4.3.1 | Le nouveau fils newnode est d'abord déconnecté de son contexte, s'il est déjà fils d'un DomNode. Le noeud est donc déplacé et n'est plus copié. Ceci est le comportement qui correspond aux spécifications W3C. Si vous avez besoin de l'ancien comportement, utilisez DomNode->clone_node avant d'ajouter.
4.3.2 | Le nouveau fils newnode est d'abord déconnecté de son contexte, s'il est déjà dans l'arbre. Les mêmes règles s'appliquent.

Exemples

L'exemple suivant ajoute un nouveau noeud dans un document, et modifie son attribut align à left.

Exemple 1. Ajouter un noeud fils avec dom xml

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>

L'exemple ci-dessus peut être aussi écrit comme ceci :

Exemple 2. Ajouter un noeud fils avec dom xml (méthode 2)

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node->set_attribute("align", "left");
$newnode = $doc->append_child($node);
?>

Un exemple plus complexe est celui ci-dessous. Il commence par rechercher un élément, le duplique avec ses fils, et l'ajoute comme frère. Finalement, un nouvel attribut est ajouté, et le document complet est publié.

Exemple 3. Ajouter un noeud fils avec DOM XML (exemple 3)

<?php
include("exemple.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Erreur lors de l'analyse du document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$parent = $element->parent_node();
$newnode = $parent->append_child($element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
?>

L'exemple ci-dessus peut aussi être réalisé avec la fonction DomNode->insert_before au lieu de DomNode->append_child.

Migration vers PHP 5

Vous devriez utiliser DOMNode->appendChild().

Voir aussi

DomNode->insert_before
DomNode->clone_node

Précédent | Sommaire | Suivant
DomNode->add_namespace | Niveau supérieur | DomNode->append_sibling


DomNode->append_sibling

(no version information, might be only in CVS)

DomNode->append_sibling -- Ajoute un frère à un noeud

Description

domelement DomNode->append_sibling ( domelement newnode )

DomNode->append_sibling() ajoute le noeud newnode aux fils du noeud courant. newnode peut être créé avec les fonctions domdocument_create_element(), domdocument_create_text(), etc. ou simplement en utilisant un autre noeud.

Avant d'être ajouté, un noeud est d'abord dupliqué. Par conséquent, le nouveau fils est une copie qui peut être modifiée sans altérer le noeud utilisé dans cette fonction. Si le noeud passé a des fils, ils seront aussi dupliqués, ce qui rend cette fonction pratique pour copier des documents XML complexes. La valeur retournée est le noeud fils ajouté. Si vous voulez apporter des modifications au noeud fils, vous devez utiliser le noeud retourné.

DomNode->append_sibling() a été ajoutée pour fournir un remplacant à domnode_append_child(), tel qu'il fonctionnait en PHP 4.2.

Voir aussi domnode_append_before().

Précédent | Sommaire | Suivant
DomNode->append_child | Niveau supérieur | DomNode->attributes


DomNode->attributes

(no version information, might be only in CVS)

DomNode->attributes -- Retourne la liste des attributs

Description

array DomNode->attributes ( void )

DomNode->attributes() retourne un tableau avec les attributs du noeud si le noeud est de type XML_ELEMENT_NODE.

(PHP >= 4.3 uniquement) Si aucun attribut n'est trouvé, NULL est retourné.

Précédent | Sommaire | Suivant
DomNode->append_sibling | Niveau supérieur | DomNode->child_nodes


DomNode->child_nodes

(no version information, might be only in CVS)

DomNode->child_nodes -- Retourne les fils d'un noeud

Description

array DomNode->child_nodes ( void )

DomNode->child_nodes() retourne tous les fils d'un noeud.

Voir aussi domnode_next_sibling() et domnode_previous_sibling().

Précédent | Sommaire | Suivant
DomNode->attributes | Niveau supérieur | DomNode->clone_node


DomNode->clone_node

(no version information, might be only in CVS)

DomNode->clone_node -- Clone un noeud

Description

domelement DomNode->clone_node ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DomNode->child_nodes | Niveau supérieur | DomNode->dump_node


DomNode->dump_node

(no version information, might be only in CVS)

DomNode->dump_node -- Convertit un noeud en chaîne

Description

string DomNode->dump_node ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi domdocument_dump_mem().

Précédent | Sommaire | Suivant
DomNode->clone_node | Niveau supérieur | DomNode->first_child


DomNode->first_child

(no version information, might be only in CVS)

DomNode->first_child -- Retourne le premier fils du noeud

Description

domelement DomNode->first_child ( void )

DomNode->first_child() retourne le premier fils du noeud.

(PHP >= 4.3 uniquement) Si aucun noeud fils n'est trouvé, NULL est retourné.

Voir aussi
domnode_last_child(),
domnode_next_sibling() et
domnode_previous_sibling().

Précédent | Sommaire | Suivant
DomNode->dump_node | Niveau supérieur | DomNode->get_content


DomNode->get_content

(no version information, might be only in CVS)

DomNode->get_content -- Retourne le contenu du noeud

Description

string DomNode->get_content ( void )

Cette fonction retourne le contenu du noeud courant.

Exemple 1. Obtenir un contenu

<?php
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Erreur pendant le parsage du document\n";
  exit;
}

$root = $dom->document_element();

$node_array = $root->get_elements_by_tagname("element");

for ($i = 0; $i<count($node_array); $i++) {
        $node = $node_array[$i];
        echo "L'élément[$i] est : " . $node->get_content();
}

?>

Précédent | Sommaire | Suivant
DomNode->first_child | Niveau supérieur | DomNode->has_attributes


DomNode->has_attributes

(no version information, might be only in CVS)

DomNode->has_attributes -- Vérifie si un noeud a des attributs

Description

bool DomNode->has_attributes ( void )

DomNode->has_attributes() vérifie si un noeud a des attributs.

Voir aussi domnode_has_child_nodes().

Précédent | Sommaire | Suivant
DomNode->get_content | Niveau supérieur | DomNode->has_child_nodes


DomNode->has_child_nodes

(no version information, might be only in CVS)

DomNode->has_child_nodes -- Vérifie si un noeud a des fils

Description

bool DomNode->has_child_nodes ( void )

DomNode->has_child_nodes() vérifie si un noeud a des fils.

Voir aussi domnode_child_nodes().

Précédent | Sommaire | Suivant
DomNode->has_attributes | Niveau supérieur | DomNode->insert_before


DomNode->insert_before

(no version information, might be only in CVS)

DomNode->insert_before -- Insère un nouveau noeud fils

Description

domelement DomNode->insert_before ( domelement newnode, domelement refnode )

DomNode->insert_before insère le nouveau noeud fils newnode juste avant le noeud fils refnode. La valeur retournée est la valeur du noeud inséré. Si vous devez faire des modifications sur le fils, vous devez utiliser le noeud retourné.

(PHP >= 4.3 uniquement) Si newnode fait déjà partie du document, il sera d'abord déconnecté de son contexte courant. Si refnode vaut NULL alors newnode sera inséré à la fin de la liste des fils.

domnode_insert_before() est très similaire à domnode_append_child() comme l'exemple ci-dessous le montre : il réalise la même fonction que l'exemple de domnode_append_child().

Exemple 1. Ajouter un noeud fils DOM XML

include("example.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Erreur durant l'analyse du document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$newnode = $element->insert_before($element, $element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

echo "<pre>";
$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
echo "</pre>";

Voir aussi domnode_append_child().

Précédent | Sommaire | Suivant
DomNode->has_child_nodes | Niveau supérieur | DomNode->is_blank_node


DomNode->is_blank_node

(no version information, might be only in CVS)

DomNode->is_blank_node -- Vérifie si un noeud est blanc

Description

bool DomNode->is_blank_node ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DomNode->insert_before | Niveau supérieur | DomNode->last_child


DomNode->last_child

(no version information, might be only in CVS)

DomNode->last_child -- Retourne le dernier fils du noeud

Description

domelement DomNode->last_child ( void )

DomNode->last_child() retourne le dernier fils du noeud.

(PHP >= 4.3 uniquement) Si aucun fils n'est trouvé, NULL est retourné.

Voir aussi
domnode_first_child(),
domnode_next_sibling() et
domnode_previous_sibling().

Précédent | Sommaire | Suivant
DomNode->is_blank_node | Niveau supérieur | DomNode->next_sibling


DomNode->next_sibling

(no version information, might be only in CVS)

DomNode->next_sibling -- Retourne le noeud frère suivant

Description

domelement DomNode->next_sibling ( void )

DomNode->next_sibling retourne le prochain noeud fils du noeud courant. S'il n'y a pas de noeud fils suivant, cette fonction retournera FALSE (< PHP 4.3) ou NULL (>= 4.3). Vous pouvez utiliser cette fonction pour passer en revue tous les fils d'un noeud tel que présenté dans cet exemple.

Exemple 1. Listage des noeuds fils

<?php
include("exemple.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Erreur d'analyse du document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("tbody");
$element = $elements[0];
$child = $element->first_child();

while($child) {
   print_r($child);
   $child = $child->next_sibling();
}
?>

Voir aussi domnode_previous_sibling().

Précédent | Sommaire | Suivant
DomNode->last_child | Niveau supérieur | DomNode->node_name


DomNode->node_name

(no version information, might be only in CVS)

DomNode->node_name -- Retourne le nom du noeud

Description

string DomNode->node_name ( void )

DomNode->node_name() retourne le nom du noeud. Le nom a différentes signification suivant le type de noeud, tel que présenté ci-dessous :

Tableau 1. Signification de la valeur

Type | Signification
DomAttribute | Valeur de l'attribut
DomAttribute |
DomCDataSection | #cdata-section
DomComment | #comment
DomDocument | #document
DomDocumentType | Nom du type de document
DomElement | Nom de la balise
DomEntity | Nom de l'entité
DomEntityReference | Nom de la référence de l'entité
DomNotation | Nom de la notation
DomProcessingInstruction | target
DomText | #text

Précédent | Sommaire | Suivant
DomNode->next_sibling | Niveau supérieur | DomNode->node_type


DomNode->node_type

(no version information, might be only in CVS)

DomNode->node_type -- Retourne le type de noeud

Description

int DomNode->node_type ( void )

DomNode->node_type() retourne le type de noeud. Tous les types possibles sont listés dans l'introduction.

Exemple 1.

<?php

include 'example.inc';

$dom = domxml_open_mem($xmlstr);

$chapter = $dom->document_element();

// Regardons les éléments contenus dans "chapter"
foreach($chapter->child_nodes() as $node) {
  if ($node->node_type() == XML_ELEMENT_NODE) {
    echo $node->node_name() . "\n";
  }
}

?>

L'exemple ci-dessus va afficher :

title
para

Précédent | Sommaire | Suivant
DomNode->node_name | Niveau supérieur | DomNode->node_value


DomNode->node_value

(no version information, might be only in CVS)

DomNode->node_value -- Retourne la valeur d'un noeud

Description

string DomNode->node_value ( void )

DomNode->node_value() retourne la valeur d'un noeud. La valeur a différente signification suivant le type de noeud, tel que présenté ci-dessous :

Tableau 1. Signification de la valeur

Type | Signification
DomAttribute | Valeur de l'attribut
DomAttribute |
DomCDataSection | Contenu
DomComment | Contenu du commentaire
DomDocument | NULL
DomDocumentType | NULL
DomElement | NULL
DomEntity | NULL
DomEntityReference | NULL
DomNotation | NULL
DomProcessingInstruction | Tout le document sans la cible (target)
DomText | Contenu du texte

Précédent | Sommaire | Suivant
DomNode->node_type | Niveau supérieur | DomNode->owner_document


DomNode->owner_document

(no version information, might be only in CVS)

DomNode->owner_document -- Retourne le document auquel appartient ce noeud DOM XML

Description

domdocument DomNode->owner_document ( void )

DomNode->owner_document() retourne le document auquel appartient ce noeud.

L'exemple suivant affiche deux listes identiques de fils.

Exemple 1. Liste les noeuds sous DOM XML

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
print_r($children);

$doc2 = $node->owner_document();
$children = $doc2->children();
print_r($children);
?>

Voir aussi domnode_insert_before().

Précédent | Sommaire | Suivant
DomNode->node_value | Niveau supérieur | DomNode->parent_node


DomNode->parent_node

(no version information, might be only in CVS)

DomNode->parent_node -- Retourne le père d'un noeud DOM XML

Description

domnode DomNode->parent_node ( void )

DomNode->parent_node() retourne le père d'un noeud.

(PHP >= 4.3 uniquement) Si aucun parent n'est trouvé, NULL est retourné.

L'exemple ci-dessous affiche deux listes identiques de noeuds fils

Exemple 1. Trouver le document d'un noeud avec DOM XML

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
print_r($children);

$doc2 = $node->parent_node();
$children = $doc2->children();
print_r($children);
?>

Précédent | Sommaire | Suivant
DomNode->owner_document | Niveau supérieur | DomNode->prefix


DomNode->prefix

(no version information, might be only in CVS)

DomNode->prefix -- Retourne le préfixe d'espace de nom d'un noeud

Description

string DomNode->prefix ( void )

DomNode->prefix() retourne le préfixe d'espace de nom d'un noeud.

Précédent | Sommaire | Suivant
DomNode->parent_node | Niveau supérieur | DomNode->previous_sibling


DomNode->previous_sibling

(no version information, might be only in CVS)

DomNode->previous_sibling -- Retourne le frère précédent d'un noeud

Description

domelement DomNode->previous_sibling ( void )

DomNode->previous_sibling() retourne le frère précédent d'un noeud. S'il n'y a pas de noeud précédent, DomNode->previous_sibling() retournera FALSE (< PHP 4.3) ou NULL (>= PHP 4.3). Vous pouvez utiliser cette fonction pour lister tous les fils d'un noeud.

Voir aussi domnode_next_sibling().

Précédent | Sommaire | Suivant
DomNode->prefix | Niveau supérieur | DomNode->remove_child


DomNode->remove_child

(no version information, might be only in CVS)

DomNode->remove_child -- Supprime un fils de la liste des noeuds fils

Description

domtext DomNode->remove_child ( domtext oldchild )

DomNode->remove_child() supprime le fils oldchild de la liste des noeuds fils du noeud courant. Si le fils n'a pu être retiré, ou si ce n'est pas un fils du noeud courant, DomNode->remove_child() retournera FALSE. Si le fils a pu être retiré, DomNode->remove_child() le retournera.

Exemple 1. Supprimer un noeud en DOM XML

<?php
include("exemple.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Erreur lors de l'analyse d'un document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("tbody");
$element = $elements[0];
$children = $element->child_nodes();
$child = $element->remove_child($children[0]);

echo "<pre>";
$xmlfile = $dom->dump_mem(true);
echo htmlentities($xmlfile);
echo "</pre>";
?>

Voir aussi domnode_append_child().

Précédent | Sommaire | Suivant
DomNode->previous_sibling | Niveau supérieur | DomNode->replace_child


DomNode->replace_child

(no version information, might be only in CVS)

DomNode->replace_child -- Remplace un noeud fils

Description

domelement DomNode->replace_child ( domelement newnode, domelement oldnode )

(PHP 4.2) DomNode->replace_child() remplace le noeud fils oldnode avec le nouveau noeud newnode. Si le nouveau noeud est déjà un fils, il ne sera pas ajouté une seconde fois. Si l'ancien noeud ne peut être trouvé, DomNode->replace_child() retournera FALSE. Si le remplacement a pu avoir lieu, oldnode est retourné.

(PHP 4.3) DomNode->replace_child() remplace le noeud fils oldnode avec le nouveau noeud newnode, même si newnode est déjà fils. Si le nouveau noeud est déjà inséré dans le document, il sera retiré de son contexte courant.. Si DomNode->replace_child() ne peut trouver l'ancien noeud, elle retournera FALSE. Si le remplacement a pu avoir lieu, oldnode est retourné.

Voir aussi domnode_append_child().

Précédent | Sommaire | Suivant
DomNode->remove_child | Niveau supérieur | DomNode->replace_node


DomNode->replace_node

(no version information, might be only in CVS)

DomNode->replace_node -- Remplace un noeud DomXML

Description

domelement DomNode->replace_node ( domelement newnode )

(PHP 4.2) DomNode->replace_node() remplace un noeud par newnode. Avant le remplacement, newnode est copié s'il a un parent, pour s'assure qu'un noeud qui est déjà dans le document n'est pas inséré une nouvelle fois. Ce comportement impose de faire toutes les modifications sur le noeud avant le remplacement, ou de le relire après le remplacement, avec des fonctions comme domnode_first_child(), domnode_child_nodes(), etc.

(PHP 4.3) DomNode->replace_node() remplace un noeud par le noeud newnode. Il n'est plus copié du tout. Si newnode était déjà inséré dans le document, il sera d'abord désolidarisé de son contexte courant. Si le remplacement réussi, le noeud est retourné.

Voir aussi domnode_append_child().

Précédent | Sommaire | Suivant
DomNode->replace_child | Niveau supérieur | DomNode->set_content


DomNode->set_content

(no version information, might be only in CVS)

DomNode->set_content -- Modifie le contenu d'un noeud

Description

bool DomNode->set_content ( string content )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DomNode->replace_node | Niveau supérieur | DomNode->set_name


DomNode->set_name

(no version information, might be only in CVS)

DomNode->set_name -- Modifie le nom d'un noeud

Description

bool DomNode->set_name ( void )

DomNode->set_name() modifie le nom d'un noeud.

Voir aussi domnode_node_name().

Précédent | Sommaire | Suivant
DomNode->set_content | Niveau supérieur | DomNode->set_namespace


DomNode->set_namespace

(no version information, might be only in CVS)

DomNode->set_namespace -- Modifie l'espace de noms d'un noeud

Description

void DomNode->set_namespace ( string uri [, string prefix] )

DomNode->set_namespace remplace l'espace de noms courant du noeud par uri. S'il y a une déclaration d'espace de nom de même URI dans l'un des noeuds parents, le préfixe de ce parent sera alors utilisé. Sinon, la fonction prendre le préfixe fourni dans le paramètre optionnel prefix ou bien en générera un aléatoirement.

Voir aussi domdocument_create_element_ns() et domnode_add_namespace().

Précédent | Sommaire | Suivant
DomNode->set_name | Niveau supérieur | DomNode->unlink_node


DomNode->unlink_node

(no version information, might be only in CVS)

DomNode->unlink_node -- Efface un noeud

Description

void DomNode->unlink_node ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DomNode->set_namespace | Niveau supérieur | DomProcessingInstruction->data


DomProcessingInstruction->data

(no version information, might be only in CVS)

DomProcessingInstruction->data -- Retourne les données du noeud l'instruction en cours

Description

class DomProcessingInstruction {

string data ( void )

}

Cette méthode retourne les données du noeud de l'instruction en cours.

Valeurs de retour

Retourne les données de l'instruction en cours.

Migration vers PHP 5

Utilisez la propriété data de DOMProcessingInstruction.

Précédent | Sommaire | Suivant
DomNode->unlink_node | Niveau supérieur | DomProcessingInstruction->target


DomProcessingInstruction->target

(no version information, might be only in CVS)

DomProcessingInstruction->target -- Retourne la cible du noeud de l'instruction en cours

Description

class DomProcessingInstruction {

string target ( void )

}

Cette méthode retourne la cible de l'instruction en cours.

Valeurs de retour

Retourne la cible de l'instruction en cours.

Migration vers PHP 5

Utilisez la propriété target de DOMProcessingInstruction.

Précédent | Sommaire | Suivant
DomProcessingInstruction->data | Niveau supérieur | DomXsltStylesheet->process()


DomXsltStylesheet->process()

(no version information, might be only in CVS)

DomXsltStylesheet->process() -- Applique une transformation XSLT à un objet domdocument

Description

class DomXsltStylesheet {

DomDocument process ( DomDocument xml_doc [, array xslt_params [, bool is_xpath_param [, string profile_filename]]] )

}

Applique une Transformation XSLT sur l'objet DomDocument donné.

Liste de paramètres

xml_doc

Le document XML qui sera transformé, comme un objet DomDocument.

xslt_params

Un tableau associatif composé de paires de paramètres noms et valeurs.

is_xpath_param

Si FALSE, les valeurs de xslt_params seront mises entre guillemets. Ceci est le comportement par défaut. Cela vous permet de passer les valeurs comme des chaînes de caractères PHP.

Note : Si vos chaînes de caractères contiennent des apostrophes et des guillemets, vous devez faire attention à mettre en guillemets toutes les valeurs par vous-même et mettre ce paramètre à TRUE.

profile_filename

Mettre ce paramètre à un chemin d'un fichier, si vous souhaitez avoir des informations de profilage.

Valeurs de retour

Retourne le résultat du traitement, comme un objet DomDocument.

Migration vers PHP 5

Utilisez XSLTProcessor::setParameter et XSLTProcessor::transformToDoc.

Historique

Version | Description
4.3.0 | Le paramètre profile_filename a été ajouté.

Voir aussi

domxml_xslt_stylesheet()
domxml_xslt_stylesheet_file()
domxml_xslt_stylesheet_doc()

Précédent | Sommaire | Suivant
DomProcessingInstruction->target | Niveau supérieur | DomXsltStylesheet->result_dump_file()


DomXsltStylesheet->result_dump_file()

(no version information, might be only in CVS)

DomXsltStylesheet->result_dump_file() -- Écrit le résultat d'un transformation XSLT dans un fichier

Description

class DomXsltStylesheet {

string result_dump_file ( DomDocument xmldoc, string filename )

}

Comme DomXsltStylesheet->process() retourne toujours un document XML correctement formaté, quelque soit la méthode d'affichage qui a été déclarée dans <xsl:output> ou dans un attribut similaire, elle n'est pas très pratique si vous voulez produire des documents HTML 4 ou du texte.

Cette fonction, au contraire, utilise <xsl:output method="html|text"> et les autres directives de contrôle des sorties. Voyez l'exemple pour plus de détails.

Exemples

Exemple 1. Sauver le résultat d'une transformation XSLT dans un fichier

<?php
$filename = "stylesheet.xsl";
$xmldoc = domxml_open_file("data.xml");
$xsldoc = domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
print $xsldoc->result_dump_file($result,"filename");
?>

Voir aussi

DomXsltStylesheet->result_dump_mem()
DomXsltStylesheet->process()

Précédent | Sommaire | Suivant
DomXsltStylesheet->process() | Niveau supérieur | DomXsltStylesheet->result_dump_mem()


DomXsltStylesheet->result_dump_mem()

(no version information, might be only in CVS)

DomXsltStylesheet->result_dump_mem() -- Écrit le résultat d'un transformation XSLT dans une chaîne

Description

class DomXsltStylesheet {

string result_dump_mem ( DomDocument xmldoc )

}

Comme DomXsltStylesheet->process() retourne toujours un document XML correctement formaté, quelque soit la méthode d'affichage qui a été déclarée dans <xsl:output> ou dans un attribut similaire, elle n'est pas très pratique si vous voulez produire des documents HTML 4 ou du texte.

Cette fonction, au contraire, utilise <xsl:output method="html|text"> et les autres directives de contrôle des sorties. Voyez l'exemple pour plus de détails.

Exemples

Exemple 1. Sauver le résultat d'une transformation XSLT dans une chaîne

<?php
$filename = "stylesheet.xsl";
$xmldoc = domxml_open_file("data.xml");
$xsldoc = domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
echo $xsldoc->result_dump_mem($result);
?>

Voir aussi

DomXsltStylesheet->result_dump_file()
DomXsltStylesheet->process()

Précédent | Sommaire | Suivant
DomXsltStylesheet->result_dump_file() | Niveau supérieur | domxml_new_doc


domxml_new_doc

(PHP 4 >= 4.2.1, PECL)

domxml_new_doc -- Crée un document XML vide

Description

DomDocument domxml_new_doc ( string version )

Crée un nouveau document Dom à partir de zéro et le retourne.

Liste de paramètres

version

Le numéro de version XML du document.

Valeurs de retour

Retourne une nouvelle instance DomDocument.

Précédent | Sommaire | Suivant
DomXsltStylesheet->result_dump_mem() | Niveau supérieur | domxml_open_file


domxml_open_file

(PHP 4 >= 4.2.1, PECL)

domxml_open_file -- Crée un objet DOM à partir d'un fichier XML

Description

DomDocument domxml_open_file ( string filename [, int mode [, array &error]] )

Cette fonction analyse le document XML dans le fichier donné.

Liste de paramètres

filename

Le chemin au fichier XML. Le fichier est accédé en mode lecture seule.

mode

Le paramètre optionnel peut être utilisé pour changer le comportement de cette fonction.

Vous pouvez utiliser une de ces constantes suivantes : DOMXML_LOAD_PARSING (défaut), DOMXML_LOAD_VALIDATING ou DOMXML_LOAD_RECOVERING. Vous pouvez également ajouter à ces valeurs DOMXML_LOAD_DONT_KEEP_BLANKS, DOMXML_LOAD_SUBSTITUTE_ENTITIES et DOMXML_LOAD_COMPLETE_ATTRS avec une manipulation sur les bits avec un OU.

error

Si utilisé, il contiendra les messages d'erreur. error doit être passé par référence.

Valeurs de retour

Retourne une instance DomDocument du fichier donné.

Exemples

Exemple 1. Ouvrir un document XML à partir d'un fichier

<?php

if(!$dom = domxml_open_file("exemple.xml")) {
  echo "Erreur lors de l'analyse du document\n";
  exit;
}

$root = $dom->document_element();
?>

Historique

Version | Description
4.3.0 | Les paramètres mode et error ont été ajoutés.

Voir aussi

domxml_open_mem()
domxml_new_doc()

Précédent | Sommaire | Suivant
domxml_new_doc | Niveau supérieur | domxml_open_mem


domxml_open_mem

(PHP 4 >= 4.2.1, PECL)

domxml_open_mem -- Crée un objet DOM pour un document XML

Description

DomDocument domxml_open_mem ( string str [, int mode [, array &error]] )

Cette fonction analyse le document XML dans le fichier donné.

Liste de paramètres

str

Le contenu du fichier XML.

mode

Le paramètre optionnel peut être utilisé pour changer le comportement de cette fonction.

Vous pouvez utiliser une de ces constantes suivantes : DOMXML_LOAD_PARSING (défaut), DOMXML_LOAD_VALIDATING ou DOMXML_LOAD_RECOVERING. Vous pouvez également ajouter à ces valeurs DOMXML_LOAD_DONT_KEEP_BLANKS, DOMXML_LOAD_SUBSTITUTE_ENTITIES et DOMXML_LOAD_COMPLETE_ATTRS avec une manipulation sur les bits avec un OU.

error

Si utilisé, il contiendra les messages d'erreur. error doit être passé par référence.

Valeurs de retour

Retourne une instance DomDocument du contenu XML donné.

Exemples

Exemple 1. Ouvrir un document XML à partir d'une chaîne

<?php
include("exemple.inc");

if(!$dom = domxml_open_mem($xmlstr)) {
  echo "Erreur lors de l'analyse du document\n";
  exit;
}

$root = $dom->document_element();
?>

Voir aussi

domxml_open_file()
domxml_new_doc()

Précédent | Sommaire | Suivant
domxml_open_file | Niveau supérieur | domxml_version


domxml_version

(PHP 4 >= 4.1.0, PECL)

domxml_version -- Lit le numéro de version de la bibliothèque XML

Description

string domxml_version ( void )

Lit le numéro de version de la bibliothèque XML actuellement utilisé.

Valeurs de retour

La version de la bibliothèque XML, comme une chaîne de caractères.

Exemples

Exemple 1. Exemple avec domxml_version()

<?php

echo domxml_version();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

20607

Précédent | Sommaire | Suivant
domxml_open_mem | Niveau supérieur | domxml_xmltree


domxml_xmltree

(PHP 4 >= 4.2.1, PECL)

domxml_xmltree -- Crée un arbre d'objets PHP à partir d'un document XML

Description

DomDocument domxml_xmltree ( string str )

Cette fonction analyse le document XML passé dans la chaîne str et retourne un arbre d'objets PHP, représentant le document.

Cette fonction est isolée des autres, ce qui signifie que vous ne pouvez pas accéder aux objets de l'arbre avec les autres fonctions. Modifier l'arbre, par exemple en ajoutant des noeuds, n'a pas de sens car il n'y a pas moyen de convertir cet arbre fichier XML.

Cependant, cette fonction est pratique si vous vouez lire un fichier XML et en étudier le contenu.

Liste de paramètres

str

Le contenu du fichier XML.

Valeurs de retour

Retourne un arbre d'objets Dom commençant par un DomDocument.

Précédent | Sommaire | Suivant
domxml_version | Niveau supérieur | domxml_xslt_stylesheet_doc


domxml_xslt_stylesheet_doc

(PHP 4 >= 4.2.0, PECL)

domxml_xslt_stylesheet_doc -- Crée un objet DomXsltStylesheet à partir d'un objet DomDocument

Description

DomXsltStylesheet domxml_xslt_stylesheet_doc ( DomDocument xsl_doc )

Crée un objet DomXsltStylesheet à partir du document XSL donné.

Liste de paramètres

xsl_doc

Le document XSL, comme un objet DomDocument.

Valeurs de retour

Retourne une nouvelle instance de DomXsltStylesheet.

Migration vers PHP 5

Appelez XSLTProcessor::importStylesheet avec le paramètre xsl_doc.

Voir aussi

DomXsltStylesheet->process()
domxml_xslt_stylesheet()
domxml_xslt_stylesheet_file()

Précédent | Sommaire | Suivant
domxml_xmltree | Niveau supérieur | domxml_xslt_stylesheet_file


domxml_xslt_stylesheet_file

(PHP 4 >= 4.2.0, PECL)

domxml_xslt_stylesheet_file -- Crée un objet DomXsltStylesheet à partir d'un document XSL dans un fichier

Description

DomXsltStylesheet domxml_xslt_stylesheet_file ( string xsl_file )

Crée un objet DomXsltStylesheet à partir du fichier XSL donné.

Liste de paramètres

xsl_file

Le chemin du document XSL, comme une chaîne.

Valeurs de retour

Retourne une nouvelle instance de DomXsltStylesheet.

Migration vers PHP 5

Appelez XSLTProcessor::importStylesheet avec DOMDocument::load($xsl_file) comme paramètre.

Voir aussi

DomXsltStylesheet->process()
domxml_xslt_stylesheet()
domxml_xslt_stylesheet_doc()

Précédent | Sommaire | Suivant
domxml_xslt_stylesheet_doc | Niveau supérieur | domxml_xslt_stylesheet


domxml_xslt_stylesheet

(PHP 4 >= 4.2.0, PECL)

domxml_xslt_stylesheet -- Crée un objet DomXsltStylesheet à partir d'un document XSL dans une chaîne

Description

DomXsltStylesheet domxml_xslt_stylesheet ( string xsl_buf )

Crée un objet DomXsltStylesheet à partir d'une mémoire tampon XSL.

Liste de paramètres

xsl_buf

Le document XSL, comme une chaîne de caractères.

Valeurs de retour

Retourne une nouvelle instance de DomXsltStylesheet.

Migration vers PHP 5

Appelez XSLTProcessor::importStylesheet avec DOMDocument::loadXML($xsl_buf) comme paramètre.

Voir aussi

DomXsltStylesheet->process()
domxml_xslt_stylesheet_file()
domxml_xslt_stylesheet_doc()

Précédent | Sommaire | Suivant
domxml_xslt_stylesheet_file | Niveau supérieur | domxml_xslt_version


xpath_eval_expression

(PHP 4 >= 4.0.4, PECL)

xpath_eval_expression -- Calcule un chemin XPath à partir d'une chaîne

Description

class XPathContext {

XPathObject xpath_eval_expression ( string expression [, domnode contextnode] )

}XPathObject xpath_eval_expression ( XPathContext xpath_context, string expression [, domnode contextnode] )

Exemple 1. Exemple avec xpath_eval_expression()

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Erreur lors de l'analyse du document\n";
    exit;
}

$xpath = xpath_new_context($dom);
var_dump(xpath_eval_expression($xpath, '/chapter/@language'));

?>

L'exemple ci-dessus va afficher :

object(XPathObject)(2) {
   ["type"]=>
   int(1)
   ["nodeset"]=>
   array(1) {
     [0]=>
     object(domattribute)(5) {
       ["type"]=>
       int(2)
       ["name"]=>
       string(8) "language"
       ["value"]=>
       string(2) "en"
       [0]=>
       int(7)
       [1]=>
       int(138004256)
     }
  }
}

Voir aussi xpath_eval().

Précédent | Sommaire | Suivant
domxml_xslt_version | Niveau supérieur | xpath_eval


xpath_eval

(PHP 4 >= 4.0.4, PECL)

xpath_eval -- Calcule un chemin XPath à partir d'une chaîne

Description

class XPathContext {

XPathObject xpath_eval ( string xpath_expression [, domnode contextnode] )

}XPathObject xpath_eval ( XPathContext xpath_context, string xpath_expression [, domnode contextnode] )

Le paramètre optionnel contextnode sert à spécifier des requêtes XPath relatives.

Voir aussi xpath_new_context().

Précédent | Sommaire | Suivant
xpath_eval_expression | Niveau supérieur | xpath_new_context


xpath_new_context

(PHP 4 >= 4.0.4, PECL)

xpath_new_context -- Crée un nouveau contexte xpath

Description

XPathContext xpath_new_context ( domdocument dom_document )

Voir aussi xpath_eval().

Précédent | Sommaire | Suivant
xpath_eval | Niveau supérieur | xpath_register_ns_auto


xptr_eval

(PHP 4 >= 4.0.4, PECL)

xptr_eval -- Calcul un chemin XPtr à partir d'une chaîne

Description

class XPathContext {

int xptr_eval ( string eval_str [, domnode contextnode] )

}int xptr_eval ( XPathContext xpath_context, string eval_str [, domnode contextnode] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
xpath_register_ns | Niveau supérieur | xptr_new_context


xptr_new_context

(PHP 4 >= 4.0.4, PECL)

xptr_new_context -- Crée un nouveau contexte XPath

Description

XPathContext xptr_new_context ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
xptr_eval | Niveau supérieur | Fonctions enchant


Fonctions .NET

Manuel PHP
Précédent Suivant

I. Fonctions .NET

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Table des matières
dotnet_load -- Charge un module DOTNET

Précédent | Sommaire | Suivant
Référence des fonctions | Niveau supérieur | dotnet_load


dotnet_load

(no version information, might be only in CVS)

dotnet_load -- Charge un module DOTNET

Description

int dotnet_load ( string assembly_name [, string datatype_name [, int codepage]] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
Fonctions .NET | Niveau supérieur | Fonctions Apache


Gestion des erreurs

Manuel PHP
Précédent Suivant

XXXIII. Gestion des erreurs

Introduction

Ces fonctions permettent de gérer les erreurs et de les enregistrer. Vous pouvez définir les règles de traitement des erreurs et choisir la manière de les enregistrer : vous pouvez adapter le rapport d'erreurs à vos besoins.

Avec les fonctions d'enregistrements, vous pouvez envoyer directement les rapports à d'autres machines (ou même les envoyer par email à un pager), à l'historique système, ou encore sélectionner les erreurs les plus importantes et ne pas enregistrer les autres.

La fonction de niveau d'erreur vous permet de personnaliser le niveau et le type d'erreur noté : depuis les inoffensives alertes jusqu'aux erreurs personnalisées retournées par les fonctions.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
error_reporting | NULL | PHP_INI_ALL |
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.3.
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
ignore_repeated_errors | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
ignore_repeated_source | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
report_memleaks | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
track_errors | "0" | PHP_INI_ALL |
html_errors | "1" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP <=4.2.3. Disponible depuis PHP 4.0.2.
docref_root | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
docref_ext | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.2.
error_prepend_string | NULL | PHP_INI_ALL |
error_append_string | NULL | PHP_INI_ALL |
error_log | NULL | PHP_INI_ALL |
warn_plus_overloading | NULL | PHP_INI?? |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

error_reporting entier

Fixe le niveau d'erreur. Ce paramètre est un entier, représentant un champ de bits. Ajoutez les valeurs suivantes pour choisir le niveau que vous désirez, telles que décrites dans la section Constantes pré-définies, et dans le fichier php.ini. Pour modifier cette configuration durant l'exécution du script, utilisez la fonction error_reporting(). Voyez aussi la directive display_errors.

En PHP 4 et PHP 5, la configuration par défaut est E_ALL & ~E_NOTICE. Elle montre toutes les erreurs, sauf les E_NOTICE. Il est recommandé de les afficher durant le développement.

Note : Activer le rapport d'erreur de niveau E_NOTICE durant le développement a des avantages. En terme de débogage, les message d'alertes vous signalent des bogues potentiels dans votre code. Par exemple, l'utilisation de valeurs non initialisées est signalée. Il est aussi plus pratique pour trouver des coquilles, et, ainsi, gagner du temps. Les messages NOTICE vous signaleront aussi les mauvaises pratiques de codage. Par exemple $arr[item] doit toujours être écrit $arr['item'] car PHP va considérer "item" comme une constante, au premier abord. Si cette constante n'est pas définie, alors il va l'utiliser comme une chaîne.

Note : En PHP 5, un nouveau niveau d'erreur nommé E_STRICT est disponible. Comme E_STRICT n'est pas inclus sans E_ALL, vous devez explicitement activer ce niveau d'erreur. Activer E_STRICT pendant le développement peut être bénéfique. Les messages STRICT vous aideront à utiliser la dernière et meilleure suggestion de méthode de codage, par exemple, vous alertera de l'utilisation de fonctions non recommandées.

Les constantes PHP en dehors de PHP : L'utilisation des constantes PHP en dehors de PHP, comme dans le fichier httpd.conf, n'a pas de signification utile mise à part dans les cas où des valeurs entières sont nécessaires. Et depuis que les niveaux d'erreurs ont été ajoutés, la valeur maximale (pour E_ALL) devrait changée. Donc, à la place de E_ALL, utilisez plutôt une valeur plus grande pour couvrir tous les octets, une valeur numérique comme 2147483647.

En PHP 3, la configuration par défaut est (E_ERROR | E_WARNING | E_PARSE), ce qui correspond à la même configuration qu'en PHP 4. Notez toutefois que les constantes ne sont pas supportées dans le php3.ini de PHP 3, et que le niveau d'erreur doit être spécifié numériquement, c'est à dire 7.

display_errors boolean

Cette directive détermine si les erreurs doivent être affichées à l'écran ou non.

Note : C'est une directive nécessaire en développement mais qui ne doit jamais être utilisée sur un système en production. (e.g. systèmes connectés à Internet).

Note : Bien que display_errors peut être défini en cours d'exécution (avec la fonction ini_set()), il n'aura aucun effet si le script a des erreurs fatales, car l'action désirée au moment de l'exécution ne sera pas exécutée.

display_startup_errors boolean

Même si display_errors est activé, des erreurs peuvent survenir lors de la séquence de démarrage de PHP, et ces erreurs sont cachées. Avec cette option, vous pouvez les afficher, ce qui est recommandé pour le débogage. En dehors de ce cas, il est fortement recommandé de laisser display_startup_errors à off.

log_errors boolean

Indique où les messages d'erreur générés doivent être écrits : dans l'historique 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 entier

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é pour enregistrer dans l'historique les erreurs, afficher les erreurs et également à $php_errormsg.

Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..

ignore_repeated_errors boolean

Ne pas enregistrer des messages répétitifs. Les erreurs répétées doivent survenir au même moment, à la même ligne et depuis le même fichier de script, jusqu'à ce que ignore_repeated_source soit mis à TRUE.

ignore_repeated_source boolean

Ignore la source du message lors des messages répétés. Lorsque vous avez configuré cette option à On, vous n'enregistrerez pas les erreurs répétées provenant de fichiers et lignes de code différents.

report_memleaks boolean

Si ce paramètre est mis à Off, alors les fuites de mémoires ne seront pas affichées (sur la sortie standard, stdout ou dans les logs). Cette option n'a d'effet que si PHP a été compilé avec l'option de débogage, et si error_reporting inclut E_WARNING dans sa liste.

track_errors boolean

Si cette option est activée, le dernier message d'erreur sera placé dans la variable globale $php_errormsg.

html_errors boolean

Désactive les balises HTML dans les messages d'erreurs. Le nouveau format d'erreurs HTML fournit des messages cliquables, qui redirige l'utilisateur vers la documentation de l'erreur ou de la fonction. Ces références sont affectées par docref_root et docref_ext.

docref_root string

Le nouveau format d'erreur contient une référence à une page décrivant l'erreur, ou la fonction ayant causé l'erreur. Pour le manuel, vous pouvez télécharger ce dernier dans votre langue, et configurer cette option pour qu'elle pointe sur lui. Si votre copie du manuel est accessible à '/manual/', vous pouvez simplement utiliser docref_root=/manual/. De plus, vous devez configurer docref_ext pour qu'elle corresponde aux extensions de votre manuel. docref_ext=.html. Il est possible d'utiliser des références externes. Par exemple, vous pouvez utiliser docref_root=http://manual/en/ ou docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon&url=http%3A%2F%2Fwww.php.net%2F"

La plupart du temps, vous utilisez l'option docref_root avec un slash a la fin ('/'). Mais ce n'est pas obligatoire, comme le montre le second exemple ci-dessus.

Note : Cette directive est destiné à vous aider dans votre développement en rendant facile la consultation de la description d'une fonction. Ne jamais l'utiliser sur un système de production (e.g. système connecté à Internet).

docref_ext string

Voir aussi docref_root.

Note : La valeur de docref_ext doit commencer par un point '.'.

error_prepend_string string

La chaîne à placer avant les messages d'erreur.

error_append_string string

La chaîne à placer après les messages d'erreur.

error_log string

Nom du fichier où seront enregistrées les erreurs. Le fichier doit être accessible en écriture par l'utilisateur exécutant le serveur web. Si la valeur spéciale syslog est utilisée, les erreurs seront envoyées au système d'historique du serveur. Sous Unix, cela correspond à syslog(3) et sous Windows NT, à l'historique d'événement. L'historique n'est pas supporté sous Windows 95. Voir aussi : syslog(). Si cette directive n'est pas fixée, les erreurs sont envoyées au journal d'erreurs SAPI. Par exemple, s'il s'agit d'une erreur de journal dans Apache ou stderr dans CLI.

warn_plus_overloading boolean

Si cette option est activée, PHP va afficher une alerte lorsque l'opérateur d'addition (+) est utilisé avec des chaînes de caractères. Cela peut aider à trouver les erreurs où le plus est utilisé comme opérateur de concaténation au lieu de point (.). Cette option n'existe pas en PHP 4.

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 de champs de bits.

Tableau 2. Erreurs et historique

Valeur | Constante | Description | Note
1 | E_ERROR (entier) | Les erreurs sont aussi affichées par défaut, et l'exécution du script est interrompue. Elles indiquent des erreurs qui ne peuvent pas être ignorées, comme des problèmes d'allocation de mémoire, par exemple. |
2 | E_WARNING (entier) | Les alertes sont affichées par défaut, mais n'interrompent pas l'exécution du script. Elles indiquent un problème qui doit être intercepté par le script durant l'exécution du script. Par exemple, appeler ereg() avec une regex invalide. |
4 | E_PARSE (entier) | Les erreurs d'analyse ne doivent être générées que par l'analyseur. Elles ne sont citées ici que dans le but d'être exhaustif. |
8 | E_NOTICE (entier) | Les notices ne sont pas affichées par défaut, et indiquent que le script a rencontré quelque chose qui peut être une erreur, mais peut aussi être un événement normal dans la vie du script. Par exemple, essayer d'accéder à une valeur qui n'a pas été déclarée, ou appeler stat() sur un fichier qui n'existe pas. |
16 | E_CORE_ERROR (entier) | Elles sont similaires aux erreurs E_ERROR, mais elles sont générées par le code de PHP. Les fonctions ne doivent pas générer ce genre d'erreur. | depuis PHP 4 seulement
32 | E_CORE_WARNING (entier) | Elles sont similaires à E_WARNING, mais elles sont générées par le code de PHP. Les fonctions ne doivent pas générer ce genre d'erreur. | depuis PHP 4 seulement
64 | E_COMPILE_ERROR (entier) | Elles sont similaires à E_ERROR, mais elles sont générées par Zend Scripting Engine. Les fonctions ne doivent pas générer ce genre d'erreur. | depuis PHP 4 seulement
128 | E_COMPILE_WARNING (entier) | Elles sont similaires à E_WARNING, mais elles sont générées par Zend Scripting Engine. Les fonctions ne doivent pas générer ce genre d'erreur. | depuis PHP 4 seulement
256 | E_USER_ERROR (entier) | E_USER_ERROR est comparable à E_ERROR. Elle est générée en PHP par l'utilisation de la fonction trigger_error(). Les fonctions ne doivent pas générer ce genre d'erreur. | depuis PHP 4 seulement
512 | E_USER_WARNING (entier) | E_USER_WARNING est comparable à E_WARNING. Elle est générée en PHP par l'utilisation de la fonction trigger_error(). Les fonctions ne doivent pas générer ce genre d'erreur. | depuis PHP 4 seulement
1024 | E_USER_NOTICE (entier) | E_USER_NOTICE est comparable à E_NOTICE. Elle est générée en PHP parl'utilisation de la fonction trigger_error(). Les fonctions ne doivent pas générer ce genre d'erreur. | depuis PHP 4 seulement
2048 | E_STRICT (entier) | Notices au moment de l'exécution. Permet d'obtenir des suggestions de PHP pour modifier votre code, assurant ainsi une meilleure interopérabilité et compatibilité de celui-ci. | PHP 5 seulement.
4096 | E_RECOVERABLE_ERROR (entier) | Erreur fatale qui peut être captée. Ceci indique qu'une erreur probablement dangereuse s'est produite, mais n'a pas laissé l'engin Zend dans un état instable. Si l'erreur n'est pas attrapée par un gestionnaire d'erreur défini par l'utilisateur (voyez aussi set_error_handler(), l'application arrête prématurément comme si cela était une E_ERROR. | Depuis PHP 5.2.0
8191 | E_ALL (entier) | Toutes les erreurs et alertes supportées sauf le niveau E_STRICT dans PHP < 6. | 6143 dans PHP 5.2.x et 2047 auparavant

Les valeurs ci-dessus (numérique ou symbolique) sont utilisées pour constituer des champs de bits, qui spécifient le niveau de rapport d'erreur. Vous pouvez utiliser les opérateurs de bits pour combiner ces valeurs pour en faire des masques qui filtrent certaines erreurs. Notez bien que seuls '|', '~', '!', '^' et '&' seront compris dans le fichier php.ini, et que aucun opérateur logique ne sera compris en php3.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";

?>

Voir aussi

Voir aussi syslog().

Table des matières
debug_backtrace -- Génère le contexte de débogage
debug_print_backtrace -- Affiche une backtrace
error_get_last -- Récupère la dernière erreur survenue
error_log -- Stocke un message d'erreur
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()

Précédent | Sommaire | Suivant
enchant_dict_suggest | Niveau supérieur | debug_backtrace


debug_backtrace

(PHP 4 >= 4.3.0, PHP 5)

debug_backtrace -- Génère le contexte de débogage

Description

array debug_backtrace ( void )

debug_backtrace() génère un contexte de débogage PHP.

Valeurs de retour

Retourne un tableau associatif. Les éléments de retour possibles sont les suivants :

Tableau 1. É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 | string | Le nom du fichier courant. Voir aussi __FILE__.
class | string | Le nom courante de la classe. Voir aussi __CLASS__
object | object | L'objet courant.
type | string | Le type de classe courante. Si une méthode est appelée, "->" est retourné. Si une méthode statique est appelé, "::" est retourné. Si une fonction est appelée, rien ne sera retourné.
args | array | Si à l'intérieur d'une fonction, ceci liste des arguments. Si dans un fichier inclus, ceci liste des fichiers inclus.

Historique

Version | Description
5.1.1 | Ajout de l'objet courant comme élément de retour possible.

Exemples

Exemple 1. Exemple avec debug_backtrace()

<?php
// filename: a.php

function a_test($str)
{
  echo "\nHi: $str";
  var_dump(debug_backtrace());
}

a_test('friend');
?>

<?php
// filename: 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()
debug_print_backtrace()

Précédent | Sommaire | Suivant
Gestion des erreurs | Niveau supérieur | debug_print_backtrace


debug_print_backtrace

(PHP 5)

debug_print_backtrace -- Affiche une backtrace

Description

void debug_print_backtrace ( void )

debug_print_backtrace() affiche la backtrace de PHP. Elle affiche les appels aux fonctions, aux fichiers inclus / requis ainsi que le travail sur les eval().

Liste de paramètres

Cette fonction n'a aucun paramètre.

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

L'exemple ci-dessus va afficher quelque chose de similaire à :

#0  eval() called at [/tmp/include.php:5]
#1  a() called at [/tmp/include.php:17]
#2  include(/tmp/include.php) called at [/tmp/test.php:3]

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

Précédent | Sommaire | Suivant
debug_backtrace | Niveau supérieur | error_get_last


error_log

(PHP 3, PHP 4, PHP 5)

error_log -- Stocke un message d'erreur

Description

bool error_log ( string message [, int message_type [, string destination [, string extra_headers]]] )

Envoie un message d'erreur à l'historique du serveur web, à un port TCP ou un fichier.

Liste de paramètres

message

Le message d'erreur qui doit être stocké.

message_type

Spécifie où le message d'erreur doit aller. Les types possibles de messages sont :

Tableau 1. error_log() log types

0 | message est envoyé à l'historique PHP, qui est basé sur l'historique système ou un fichier, en fonction de la configuration de error_log. C'est l'option par défaut.
1 | message est envoyé par email à l'adresse destination. C'est le seul type qui utilise le quatrième paramètre extra_headers.
2 | message est envoyé par la connexion de débogage PHP. Cette option n'est disponible que si l'option remote_debugging a été désactivée. Dans ce cas, le paramètre destination spécifie l'hôte ou l'adresse IP, et optionnellement le numéro de port, de la socket qui recevra les informations de débogage. Cette option est uniquement disponible en PHP 3.
3 | message est ajouté au fichier destination. Une nouvelle ligne est automatiquement ajoutée à la fin de la chaîne message.

destination

La destination. Cela dépend du paramètre message_type décrit ci-dessus.

extra_headers

Les en-têtes supplémentaires. Ils sont utilisés lorsque le paramètre message_type est défini à 1. Ce type de message utilise la même fonction interne que la fonction mail().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. error_log() examples

<?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 !", 2, "127.0.0.1:7000");
error_log("Grosse bourde !", 2, "loghost");
error_log("Grosse bourde !", 3, "/var/tmp/mes-erreurs.log");
?>

Précédent | Sommaire | Suivant
error_get_last | Niveau supérieur | error_reporting


error_reporting

(PHP 3, PHP 4, PHP 5)

error_reporting -- Fixe le niveau de rapport d'erreurs PHP

Description

int error_reporting ( [int level] )

error_reporting() modifie la directive error_reporting pendant l'exécution du script. PHP possède plusieurs niveaux d'erreurs, utiliser cette fonction configure ce niveau pendant la durée (d'exécution) de votre script.

Liste de paramètres

level

Le nouveau niveau error_reporting. Il peut être un champ de bits ou une combinaison de constantes. L'utilisation des constantes est vivement recommandée pour assurer une compatibilité maximale avec les futures versions. Au fur et à mesure que de nouveaux niveaux d'erreurs sont créés, les valeurs évoluent, c'est pourquoi les anciennes valeurs n'ont plus forcément la même signification.

Les constantes représentant les niveaux d'erreurs disponibles sont listées ci-dessous. La signification actuelle de ces niveaux d'erreurs est décrite dans le manuel sur les constantes prédéfinies.

Tableau 1. Constantes des niveaux d'error_reporting() et la valeur de bits

valeur | constante
1 | E_ERROR
2 | E_WARNING
4 | E_PARSE
8 | E_NOTICE
16 | E_CORE_ERROR
32 | E_CORE_WARNING
64 | E_COMPILE_ERROR
128 | E_COMPILE_WARNING
256 | E_USER_ERROR
512 | E_USER_WARNING
1024 | E_USER_NOTICE
6143 | E_ALL
2048 | E_STRICT
4096 | E_RECOVERABLE_ERROR

Valeurs de retour

Retourne l'ancien niveau d'error_reporting.

Historique

Version | Description
5.0.0 | E_STRICT est introduit (ne fait plus partie de E_ALL).
5.2.0 | E_RECOVERABLE_ERROR est introduit.
6 | E_STRICT devient une partie de E_ALL.

Exemples

Exemple 1. Exemple avec error_reporting()

<?php

// Désactiver le rapport d'erreurs
error_reporting(0);

// Rapporte les erreurs d'exécution de script
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Rapporter les E_NOTICE peut vous aider à améliorer vos scripts
// (variables non initialisées, variables mal orthographiées..)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Rapporte toutes les erreurs à part les E_NOTICE
// C'est la configuration par défaut de php.ini
error_reporting(E_ALL ^ E_NOTICE);

// Repporte toutes les erreurs PHP (pour PHP 3, utilisez l'entier 63)
error_reporting(E_ALL);

// Même chose que error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

Notes

Avertissement

La plupart des erreurs E_STRICT sont évaluées au moment de la compilation, comme les erreurs qui ne sont pas reportées dans le fichier lorsque error_reporting est défini pour inclure les erreurs E_STRICT (et vis-versa).

Voir aussi

The display_errors directive
ini_set()

Précédent | Sommaire | Suivant
error_log | Niveau supérieur | restore_error_handler


restore_error_handler

(PHP 4 >= 4.0.1, PHP 5)

restore_error_handler -- Réactive l'ancienne fonction de gestion des erreurs

Description

bool restore_error_handler ( void )

Utilisée après avoir modifié la fonction de gestion des erreurs, grâce à set_error_handler(), restore_error_handler() permet de réutiliser l'ancienne version de gestion des erreurs (qui peut être la fonction PHP par défaut, ou une autre fonction utilisateur).

Valeurs de retour

Cette fonction retourne toujours TRUE.

Exemples

Exemple 1. Exemple avec restore_error_handler()

Si unserialize() cause une erreur, alors on restaure le gestionnaire d'erreur original.

<?php
function unserialize_handler($errno, $errstr)
{
echo "Valeur incorrectement linéarisée.\n";
}

$serialized = 'foo';
set_error_handler('unserialize_handler');
$original = unserialize($serialized);
restore_error_handler();
?>

L'exemple ci-dessus va afficher :

Valeur incorrectement linéarisée.

Notes

Note : L'appel de la fonction restore_error_handler() depuis la fonction error_handler est ignoré.

Voir aussi

error_reporting()
set_error_handler()
restore_exception_handler()
trigger_error()

Précédent | Sommaire | Suivant
error_reporting | Niveau supérieur | restore_exception_handler


restore_exception_handler

(PHP 5)

restore_exception_handler -- Réactive l'ancienne fonction de gestion d'exceptions

Description

bool restore_exception_handler ( void )

restore_exception_handler() est utilisé, après le changement de la fonction de gestion d'exceptions avec la fonction set_exception_handler(), pour revenir à l'ancien gestionnaire d'exceptions (qui peut être la fonction interne ou une fonction définie par l'utilisateur).

Valeurs de retour

Cette fonction retourne toujours TRUE.

Voir aussi

set_exception_handler()
set_error_handler()
restore_error_handler()
error_reporting()

Précédent | Sommaire | Suivant
restore_error_handler | Niveau supérieur | set_error_handler


set_error_handler

(PHP 4 >= 4.0.1, PHP 5)

set_error_handler -- Spécifie une fonction utilisateur comme gestionnaire d'erreurs

Description

mixed set_error_handler ( callback error_handler [, int error_types] )

set_error_handler() choisit la fonction utilisateur error_handler pour gérer les erreurs dans un script.

set_error_handler() peut être utilisé pour définir votre propre manière de gérer les erreurs durant l'exécution, par exemple pour une application dans laquelle vous devez nettoyer les données/fichiers lorsqu'une erreur survient ou lorsque vous devez déclencher une erreur sous certaines conditions (en utilisant trigger_error()).

Il faut se rappeler que la fonction standard de traitement des erreurs de PHP est alors complètement ignorée. error_reporting() n'aura plus d'effet, et votre fonction de gestion des erreurs sera toujours appelée. Vous pourrez toujours lire la valeur de l'erreur courante de error_reporting et faire réagir la fonction de gestion des erreurs en fonction. Cette remarque est notamment valable si la commande a été préfixée par @.

Notez aussi qu'il est alors confié à cette fonction de terminer le script (die()) si nécessaire. Si la fonction de gestion des erreurs se termine normalement, l'exécution du script se poursuivra avec l'exécution de la prochaine commande.

Les types d'erreur suivants ne peuvent pas être gérés avec cette fonction : E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING ainsi que la plupart des E_STRICT d'un fichier lorsque set_error_handler() est appelé.

Si une erreur survient avant que le script ne soit exécuté (par exemple un téléchargement de fichier), le gestionnaire d'erreurs personnalisé ne pourra pas être appelé, car il n'est pas encore enregistré.

Liste de paramètres

error_handler

La fonction utilisateur doit accepter deux paramètres : le code d'erreur et une chaîne décrivant le code d'erreur. Depuis, trois paramètres optionnels sont fournis en même temps : le fichier dans lequel l'erreur est survenue, la ligne à laquelle l'erreur est survenue, et le contexte dans lequel l'erreu est survenue (un tableau contenant la liste des symboles lors de l'erreur). La fonction peut être décrite comme ceci :

handler ( int errno, string errstr [, string errfile [, int errline [, array errcontext]]] )

errno

Le premier paramètre errno, contient le niveau d'erreur, sous la forme d'un entier.

errstr

Le second paramètre errstr, contient le message d'erreur, sous forme de chaîne.

errfile

Le troisième paramètre, optionnel, errfile, contient le nom du fichier dans lequel l'erreur a été identifiée.

errline

Le quatrième paramètre, optionnel, errline, contient le numéro de ligne à laquelle l'erreur a été identifiée.

errcontext

Le cinquième paramètre, optionnel, errcontext, est un tableau qui pointe sur la table des symboles actifs lors de l'erreur. En d'autres termes, errcontext contient un tableau avec toutes les variables qui existaient lorsque l'erreur a été déclenchée. La fonction de gestion d'erreurs de l'utilisateur ne doit pas modifier le contexte d'erreur.

error_types

Sert de masque pour appeler la fonction error_handler de la même façon que l'option de configuration error_reporting contrôle les erreurs qui sont affichées. Sans le masque, error_handler sera appelé pour toutes les erreurs, quelque soit la valeur de error_reporting.

Valeurs de retour

Retourne une chaîne de caractères contenant le dernier gestionnaire d'erreurs (si il y en avait un) ou NULL en cas d'erreur. Si l'ancien gestionnaire d'erreurs était une méthode d'une classe, cette fonction retournera un tableau indexé avec les noms de la classe et de la méthode.

Historique

Version | Description
5.2.0 | Le gestionnaire d'erreurs doit retourner FALSE pour peupler la variable $php_errormsg.
5.0.0 | Le paramètre error_types a été introduit.
4.3.0 | Au lieu d'un nom de fonction, un tableau contenant une référence à un objet ainsi qu'un nom de méthode peut aussi être passé au paramètre error_handler.
4.0.2 | Trois paramètres optionnels pour le paramètre error_handler de la fonction utilisateur ont été introduits. C'est le nom du fichier, le numéro de ligne ainsi que le contexte.

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)
{
    switch ($errno) {
    case E_USER_ERROR:
        echo "<b>Mon ERREUR</b> [$errno] $errstr<br />\n";
        echo "  Erreur fatale sur la ligne $errline dans le fichier $errfile";
        echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
        echo "Arrêt...<br />\n";
        exit(1);
        break;

    case E_USER_WARNING:
        echo "<b>Mon ALERTE</b> [$errno] $errstr<br />\n";
        break;

    case E_USER_NOTICE:
        echo "<b>Mon AVERTISSEMENT</b> [$errno] $errstr<br />\n";
        break;

    default:
        echo "Type d'erreur inconnu : [$errno] $errstr<br />\n";
        break;
    }

    /* Ne pas exécuter le gestionnaire interne de PHP */
    return true;
}

// Fonction pour tester la gestion d'erreur
function scale_by_log($vect, $scale)
{
    if (!is_numeric($scale) || $scale <= 0) {
        trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale", E_USER_ERROR);
    }

    if (!is_array($vect)) {
        trigger_error("Type d'entrée incorrect, tableau de valeurs attendu", E_USER_WARNING);
        return null;
    }

    $temp = array();
    foreach($vect as $pos => $value) {
        if (!is_numeric($value)) {
            trigger_error("La valeur à la position $pos n'est pas un nombre, utilisation 0 (zéro)", E_USER_NOTICE);
            $value = 0;
        }
        $temp[$pos] = log($scale) * $value;
    }
    return $temp;
  }

// Configuration du gestionnaire d'erreurs
$old_error_handler = set_error_handler("myErrorHandler");

// Génération de quelques erreurs. Commençons par créer un tableau
echo "vector a\n";
$a = array(2, 3, "foo", 5.5, 43.3, 21.11);
print_r($a);

// Générons maintenant un second tableau
echo "----\nvector b - a notice (b = log(PI) * a)\n";
/* Valeur à la position $pos n'est pas un nombre, utilisation de 0 (zéro) */
$b = scale_by_log($a, M_PI);
print_r($b);

// Ceci est un problème, nous avons utilisé une chaîne au lieu d'un tableau
echo "----\nvector c - a warning\n";
/* Type d'entrée incorrect, tableau de valeurs attendu */
$c = scale_by_log("non un tablau", 2.3);
var_dump($c); // NULL

// Ceci est une erreur critique : le logarithme de zéro ou d'un nombre négatif est indéfini
echo "----\nvector d - fatal error\n";
/* log(x) pour x <= 0 est indéfini, vous utilisez : scale = $scale" */
$d = scale_by_log($a, -2.5);
var_dump($d); // Jamais atteint
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

vector a
Array
(
    [0] => 2
    [1] => 3
    [2] => foo
    [3] => 5.5
    [4] => 43.3
    [5] => 21.11
)
----
vector b - a notice (b = log(PI) * a)
<b>Mon AVERTISSEMENT</b> [1024] La valeur à la position 2 n'est pas un nombre, utilisation de 0 (zéro)<br />
Array
(
    [0] => 2.2894597716988
    [1] => 3.4341896575482
    [2] => 0
    [3] => 6.2960143721717
    [4] => 49.566804057279
    [5] => 24.165247890281
)
----
vector c - an warning
<b>Mon ALERTE</b> [512] Entrée incorrect, tableau de valeurs attendu<br />
NULL
----
vector d - fatal error
<b>Mon ERREUR</b> [256] log(x) for x <= 0 est indéfini, vous utilisez : scale = -2.5<br />
Erreur fatale sur la ligne 36 dans le fichier trigger_error.php, PHP 4.0.2 (Linux)<br />
Abandon...<br />

Voir aussi

error_reporting()
restore_error_handler()
trigger_error()
error level constants
information à propos de callback type

Précédent | Sommaire | Suivant
restore_exception_handler | Niveau supérieur | set_exception_handler


set_exception_handler

(PHP 5)

set_exception_handler -- Définit une fonction utilisateur de gestion d'exceptions

Description

string set_exception_handler ( callback exception_handler )

set_exception_handler() définit le gestionnaire d'exceptions par défaut si une exception n'est pas attrapée avec un bloc d'essai/d'attrape. L'exécution sera stoppé après l'appel à la fonction exception_handler.

Liste de paramètres

exception_handler

Nom de la fonction à appeler lorsqu'une exception qui n'a pu être attrapée survient. Cette fonction doit être définie avant l'appel de la fonction set_exception_handler(). Ce gestionnaire de fonction doit accepter un paramètre qui sera l'objet représentant l'exception qui vient d'être lancée.

Valeurs de retour

Retourne le nom du gestionnaire précédemment défini ou NULL en cas d'erreur. Si aucun gestionnaire n'a été précédemment défini, NULL est également retournée.

Exemples

Exemple 1. Exemple avec set_exception_handler()

<?php
function exception_handler($exception) {
  echo "Exception non attrapée : " , $exception->getMessage(), "\n";
}

set_exception_handler('exception_handler');

throw new Exception('Uncaught Exception');
echo "Non exécuté\n";
?>

Voir aussi

restore_exception_handler(),
restore_error_handler(),
error_reporting(),
information à propos de callback type et
les exceptions en PHP 5.

Précédent | Sommaire | Suivant
set_error_handler | Niveau supérieur | trigger_error


trigger_error

(PHP 4 >= 4.0.1, PHP 5)

trigger_error -- Déclenche une erreur utilisateur

Description

bool trigger_error ( string error_msg [, int error_type] )

trigger_error() est utilisé pour déclencher une erreur utilisateur. Elle peut aussi être utilisée en conjonction avec un gestionnaire d'erreurs interne, ou un gestionnaire d'erreurs utilisateur qui a été choisi comme gestionnaire d'erreurs avec set_error_handler().

trigger_error() est pratique lorsque vous devez générer une réponse particulière lors de l'exécution.

Liste de paramètres

error_msg

Le message d'erreur désigné pour cette erreur. Il est limité en longueur à 1024 caractères. Tous caractères après les 1024 seront ignorés.

error_type

Le type d'erreur désigné pour cette erreur. Cela ne fonctionne qu'avec la famille de constantes E_USER et sera par défaut E_USER_NOTICE.

Valeurs de retour

Cette fonction retourne FALSE si un paramètre incorrect est passé à error_type, TRUE sinon.

Exemples

Exemple 1. Exemple avec trigger_error()

Voir set_error_handler() pour un exemple plus conséquent.

<?php
if (assert($divisor == 0)) {
  trigger_error("Impossible de diviser par zéro", E_USER_ERROR);
}
?>

Voir aussi

error_reporting()
set_error_handler()
restore_error_handler()
The error level constants

Précédent | Sommaire | Suivant
set_exception_handler | Niveau supérieur | user_error


user_error

(PHP 4, PHP 5)

user_error -- Alias de trigger_error()

Description

Cette fonction est un alias de : trigger_error().

Précédent | Sommaire | Suivant
trigger_error | Niveau supérieur | EXIF


Exécution de programmes externes

Manuel PHP
Précédent Suivant

CXXX. Exécution de programmes externes

Introduction

Ces fonctions fournissent la possibilité de passer directement des commandes au système, mais aussi de protéger le système des commandes passées.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension définit une ressource process, retournée par la fonction proc_open().

Constantes pré-définies

Cette extension ne définit aucune constante.

Voir aussi

Ces fonctions sont complétées par l'opérateur guillemets obliques. De plus, lorsque le safe mode est activé, vous devez configurer l'option safe_mode_exec_dir.

Table des matières
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() et retourne le code de sortie
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

Précédent | Sommaire | Suivant
printer_write | Niveau supérieur | escapeshellarg


escapeshellarg

(PHP 4 >= 4.0.3, PHP 5)

escapeshellarg -- Protège une chaîne de caractères pour utilisation en ligne de commande

Description

string escapeshellarg ( string arg )

escapeshellarg() ajoute des guillemets simples autour des chaînes de caractères, et ajoute des guillemets puis échappe les guillemets simples de la chaîne. Cela permet de faire passer directement le paramètre arg comme argument Shell, tout en assurant un maximum de sécurité. escapeshellarg() doit être utilisée pour traiter individuellement chacun des arguments à passer au Shell. Les fonctions Shell sont exec(), system() et les opérateurs guillemets obliques.

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()
exec()
popen()
system()
backtick operator

Précédent | Sommaire | Suivant
Exécution de programmes externes | Niveau supérieur | escapeshellcmd


escapeshellcmd

(PHP 3, PHP 4, PHP 5)

escapeshellcmd -- Protège les caractères spéciaux du Shell

Description

string escapeshellcmd ( string command )

escapeshellcmd() échappe tous les caractères de la chaîne command qui pourraient avoir une signification spéciale dans une commande Shell. Cette fonction permet de s'assurer que la commande sera correctement passée à l'exécuteur de commande Shell exec() et system(), ou encore à guillemets obliques.

Les caractères suivants seront échappés : #&;`|*?~<>^()[]{}$\, \x0A et \xFF. ' et " sont échappés que s'ils ne sont pas par paire. Sous Windows, tous ces caractères ainsi que % sont remplacés par un espace.

Liste de paramètres

command

La commande à échapper.

Valeurs de retour

La chaîne échappée.

Exemples

Exemple 1. Exemple avec escapeshellcmd()

<?php
$e = escapeshellcmd($userinput);

// Ici, peut importe si $e contient des espaces
system("echo $e");
$f = escapeshellcmd($filename);

// et ici, on s'en préoccupe, nous utilisons donc des guillements
system("touch \"/tmp/$f\"; ls -l \"/tmp/$f\"");
?>

Voir aussi

escapeshellarg()
exec()
popen()
system()
les guillemets obliques

Précédent | Sommaire | Suivant
escapeshellarg | Niveau supérieur | exec


exec

(PHP 3, PHP 4, PHP 5)

exec -- Exécute un programme externe

Description

string exec ( string command [, array &output [, int &return_var]] )

exec() exécute la commande command.

Liste de paramètres

command

La commande à exécuter.

output

Si l'argument output est présent, alors ce tableau sera rempli par les lignes retournées par la commande. Les espaces de début et de fin de chaîne, comme \n, ne seront pas inclus dans ce tableau. Il faut noter que si ce tableau contient des éléments, exec() ajoutera les nouvelles lignes à la fin du tableau. Si vous ne voulez pas que les nouveaux éléments soient concaténés, utilisez la fonction unset() avec ce tableau avant de le passer à exec().

return_var

Si l'argument return_var est présent en plus du tableau output, alors le statut de retour d'exécution sera inscrit dans cette variable.

Valeurs de retour

La dernière ligne du résultat de la commande. Pour exécuter une commande et obtenir le résultat sans aucun traitement, il faut utiliser la fonction passthru().

Pour récupérer la sortie de la commande exécutée, assurez-vous de définir et d'utiliser le paramètre output.

Exemples

Exemple 1. Exemple avec exec()

<?php
// Affiche le nom d'utilisateur qui fait tourner le processus php/http
// (sur un système ayant "whoami" dans le chemin d'exécutables)
echo exec('whoami');
?>

Notes

Avertissement

Si vous allez passer des données provenant de l'utilisateur à cette fonction, vous devez utiliser escapeshellarg() ou escapeshellcmd() pour être sûr qu'ils n'endommagent pas le système en exécutant des commandes arbitraires.

Note : Si vous démarrez un programme en utilisant cette fonction et que vous voulez le laisser tourner en arrière plan, vous devez vous assurer que la sortie du programme est redirigée vers un fichier, ou un autre flux de sortie, sinon PHP attendra jusqu'à la fin de l'exécution du programme.

Note : Lorsque le safe mode est activé, vous pouvez uniquement exécuter des programmes qui se situent dans le dossier défini par safe_mode_exec_dir. Pour des raisons pratiques, il n'est actuellement pas permis d''avoir le composant .. dans le chemin de l'exécutable.

Avertissement

Lorsque le safe mode est activé, la chaîne de commande est échappée avec la fonction escapeshellcmd(). Par exemple, echo y | echo x devient echo y \| echo x.

Voir aussi

system()
passthru()
escapeshellcmd()
pcntl_exec()
system()
les guillemets obliques

Précédent | Sommaire | Suivant
escapeshellcmd | Niveau supérieur | passthru


passthru

(PHP 3, PHP 4, PHP 5)

passthru -- Exécute un programme externe et affiche le résultat brut

Description

void passthru ( string command [, int &return_var] )

passthru() est similaire à la fonction exec() car les deux exécutent la commande command. Si l'argument return_var est présent, le code de statut de réponse UNIX y sera placé. Cette fonction doit être utilisée de préférence aux commandes exec() ou system() lorsque le résultat attendu est de type binaire, et doit être passé tel quel à un navigateur. Une utilisation classique de cette fonction est l'exécution de l'utilitaire pbmplus qui peut retourner une image. En fixant le résultat du contenu (Content-Type) à image/gif puis en appelant pbmplus pour obtenir une image gif, vous pouvez créer des scripts PHP qui retournent des images.

Liste de paramètres

command

La commande à exécuter.

return_var

Si l'argument return_var est présent, le statut retourné par la commande Unix sera placé dans cette variable.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Avertissement

Si vous allez passer des données provenant de l'utilisateur à cette fonction, vous devez utiliser escapeshellarg() ou escapeshellcmd() pour être sûr qu'ils n'endommagent pas le système en exécutant des commandes arbitraires.

Note : Si vous démarrez un programme en utilisant cette fonction et que vous voulez le laisser tourner en arrière plan, vous devez vous assurer que la sortie du programme est redirigée vers un fichier, ou un autre flux de sortie, sinon PHP attendra jusqu'à la fin de l'exécution du programme.

Note : Lorsque le safe mode est activé, vous pouvez uniquement exécuter des programmes qui se situent dans le dossier défini par safe_mode_exec_dir. Pour des raisons pratiques, il n'est actuellement pas permis d''avoir le composant .. dans le chemin de l'exécutable.

Avertissement

Lorsque le safe mode est activé, la chaîne de commande est échappée avec la fonction escapeshellcmd(). Par exemple, echo y | echo x devient echo y \| echo x.

Voir aussi

exec()
system()
popen()
escapeshellcmd()
les guillemets obliques

Précédent | Sommaire | Suivant
exec | Niveau supérieur | proc_close


proc_close

(PHP 4 >= 4.3.0, PHP 5)

proc_close -- Ferme un processus ouvert par proc_open() et retourne le code de sortie

Description

int proc_close ( resource process )

proc_close() est similaire à pclose() hormis le fait qu'elle fonctionne avec les processus ouverts par proc_open(). proc_close() attend que le processus process se termine, puis retourne son code de sortie. Si vous avez des pipes ouverts avec ce processus, il faut les fermer avec fclose() avant d'appeler cette fonction pour éviter des verrouillages : le processus peut ne pas pouvoir sortir tant que les pipes sont ouverts.

Liste de paramètres

process

La resource proc_open() à fermer.

Valeurs de retour

Retourne le code de sortie du processus.

Précédent | Sommaire | Suivant
passthru | Niveau supérieur | proc_get_status


proc_get_status

(PHP 5)

proc_get_status -- Lit les informations concernant un processus ouvert par proc_open()

Description

array proc_get_status ( resource process )

proc_get_status() lit les données concernant le processus process créé avec la fonction proc_open().

Liste de paramètres

process

La resource proc_open() à évaluer.

Valeurs de retour

Un tableau contenant les informations collectées en cas de succès, et FALSE en cas d'échec. Le tableau retourné contient les éléments suivants :

Élément | Type | Description
command | chaîne de caractères | La commande passée à la fonction proc_open().
pid | entier | identifiant du processus
running | booléen | TRUE si le processus fonctionne toujours et FALSE s'il est terminé.
signaled | booléen | TRUE si le processus fils a été terminé par un signal inconnu. Toujours défini à FALSE sous Windows.
stopped | booléen | TRUE si le processus fils a été stoppé par un signal. Toujours défini à FALSE sous Windows.
exitcode | entier | Le code retourné par le processus (uniquement si l'élément running vaut FALSE). Seul le premier appel à cette fonction retourne une valeur réelle, les prochains appels retournent -1.
termsig | entier | le numéro du signal qui a causé la fin de l'exécution du processus fils (uniquement significatif si signaled vaut TRUE).
stopsig | entier | le numéro du signal qui a causé l'arrêt de l'exécution du processus fils (uniquement significatif si signaled vaut TRUE).

Voir aussi

proc_open()

Précédent | Sommaire | Suivant
proc_close | Niveau supérieur | proc_nice


proc_nice

(PHP 5)

proc_nice -- Change la priorité d'exécution du processus courant

Description

bool proc_nice ( int increment )

proc_nice() modifie la priorité du processus courant par le paramètre spécifié increment. Un paramètre increment positif atténuera la priorité du processus courant, tandis qu'une valeur négative increment augmentera la priorité.

proc_nice() n'est pas lié à proc_open() et ses fonctions associées d'aucune façon.

Liste de paramètres

increment

La valeur de l'incrément de la priorité.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Si une erreur survient, par exemple, si l'utilisateur qui tente de changer la priorité d'un processus n'a pas suffisamment de droit pour le faire, une erreur de niveau E_WARNING est générée et FALSE est retourné.

Notes

Disponibilité : proc_nice() n'est disponible que sur les systèmes qui disposent de capacités NICE. NICE est compatible avec : SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3. Par exemple, proc_nice() n'est pas disponible sous Windows.

Précédent | Sommaire | Suivant
proc_get_status | Niveau supérieur | proc_open


proc_open

(PHP 4 >= 4.3.0, PHP 5)

proc_open -- Exécute une commande et ouvre les pointeurs de fichiers pour les entrées / sorties

Description

resource proc_open ( string cmd, array descriptorspec, array &pipes [, string cwd [, array env [, array other_options]]] )

proc_open() est similaire à popen() mais fournit un plus grand degré de contrôle sur l'exécution du programme.

Liste de paramètres

cmd

La commande à exécuter

descriptorspec

Un tableau indexé, dont les clés représentent le numéro de descripteur et la valeur la méthode avec laquelle PHP va passer ce descripteur au processus fils. 0 est stdin, 1 est stdout, et 2 est stderr.

Les types de descripteurs actuellement supportés sont file et pipe.

Les numéros de descripteurs de fichiers ne sont pas limités à 0, 1 et 2 - vous pouvez spécifier n'importe quel numéro de descripteur valide, et il sera passé au processus fils. Cela permettra à votre script d'inter opérer avec d'autres scripts, et d'être exécuté comme "co-processus". En particulier, c'est très pratique pour passer des mots de passes à des programmes comme PGP, GPG et openssl, avec une méthode très protégée. C'est aussi pratique pour lire des informations de statut fournies par ces programmes, sur des descripteurs auxiliaires.

pipes

Doit être défini en un tableau indexé de pointeurs de fichiers qui correspondent à la fin de n'importe quel descripteur PHP qui sont crés.

cwd

Le dossier initial de travail de la commande. Cela doit être un chemin absolu vers le dossier ou NULL si vous voulez utiliser la valeur par défaut (le dossier de travail du processus courant PHP)

env

Un tableau contenant les variables d'environnement pour la commande qui doit être exécutée, ou NULL pour utiliser le même environnement que le processus PHP courant

other_options

Vous permet de spécifier des options supplémentaires. Les options actuellement supportées sont :

suppress_errors (windows uniquement): suppression des erreurs générées par cette fonction lorsque définit à TRUE
bypass_shell (windows uniquement): bypass du shell cmd.exe lorsque définit à TRUE
context: contexte du flux utilisé lors de l'ouverture des fichiers (créé avec la fonction stream_context_create())
binary_pipes: ouverture des pipes en mode binaire, au lieu d'utiliser l'encodage habituel stream_encoding

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
6.0.0 | Ajout des options context et binary_pipes au paramètre other_options.
5.2.1 | Ajout de l'option bypass_shell au paramètre other_options.
5.0.0. | Ajout des paramètres cwd, env et other_options.

Exemples

Exemple 1. Exemple avec proc_open()

<?php
$descriptorspec = array(
   0 => array("pipe", "r"),  // // stdin est un pipe où le processus va lire
   1 => array("pipe", "w"),  // stdout est un pipe où le processus va écrire
   2 => array("file", "/tmp/error-output.txt", "a") // stderr est un fichier
);

$cwd = '/tmp';
$env = array('quelques_options' => 'aeiou');

$process = proc_open('php', $descriptorspec, $pipes, $cwd, $env);

if (is_resource($process)) {
    // $pipes ressemble à :
    // 0 => fichier accessible en écriture, connecté à l'entrée standard du processus fils
    // 1 => fichier accessible en lecture, connecté à la sortie standard du processus fils
    // Toute erreur sera ajoutée au fichier /tmp/error-output.txt

    fwrite($pipes[0], '<?php print_r($_ENV); ?>');
    fclose($pipes[0]);

    echo stream_get_contents($pipes[1]);
    fclose($pipes[1]);

    // Il est important que vous fermiez les pipes avant d'appeler
    // proc_close afin d'éviter un verrouillage.
    $return_value = proc_close($process);

    echo "La commande a retourné $return_value\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [some_option] => aeiou
    [PWD] => /tmp
    [SHLVL] => 1
    [_] => /usr/local/bin/php
)
La commande a retourné 0

Notes

Note : Compatibilité Windows : les descripteurs au-delà de 2 (stderr) sont accessibles au processus fils, sous la forme de pointeurs héritables, 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. Stdin, stdout et stderr fonctionnent comme d'habitude.

Note : Si vous n'avez besoin que d'un processus uni-directionnel, popen() sera plus pratique, car plus simple à utiliser.

Voir aussi

popen()
exec()
system()
passthru()
stream_select()
The les guillemets obliques

Précédent | Sommaire | Suivant
proc_nice | Niveau supérieur | proc_terminate


proc_terminate

(PHP 5)

proc_terminate -- Termine un processus ouvert par proc_open()

Description

bool proc_terminate ( resource process [, int signal] )

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(). Cependant, ce n'est possible que depuis PHP 5.2.2 car les versions antérieures détruisent la ressource resource.

Liste de paramètres

process

La ??? 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()
proc_close()
proc_get_status()

Précédent | Sommaire | Suivant
proc_open | Niveau supérieur | shell_exec


shell_exec

(PHP 4, PHP 5)

shell_exec -- Exécute une commande via le Shell et retourne le résultat sous forme de chaîne

Description

string shell_exec ( string cmd )

shell_exec() est identique aux guillemets obliques.

Liste de paramètres

cmd

La commande à exécuter.

Valeurs de retour

La sortie de l'exécution de la commande.

Exemples

Exemple 1. Exemple avec shell_exec()

<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>

Notes

Note : Cette fonction est désactivée par le safe-mode

Voir aussi

exec()
escapeshellcmd()

Précédent | Sommaire | Suivant
proc_terminate | Niveau supérieur | system


system

(PHP 3, PHP 4, PHP 5)

system -- Exécute un programme externe et affiche le résultat

Description

string system ( string command [, int &return_var] )

system() est la version PHP de la fonction C qui exécute la commande command et retourne le résultat.

L'appel à la fonction system() tente également d'actualiser le buffer de sortie du serveur web après chaque ligne de sortie si PHP fonctionne en tant que module serveur.

Si vous devez exécuter une commande et récupérer tout le résultat sans aucune intervention, utilisez la fonction passthru().

Liste de paramètres

command

La commande à exécuter.

return_var

Si l'argument return_var est présent, alors le statut retourné de l'exécution de la commande sera écrit dans cette variable.

Valeurs de retour

Retourne la dernière ligne de la sortie de la commande en cas de succès, et FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec system()

<?php
echo '<pre>';

 // Affiche le résultat de la commande "ls" et retourne
 // la dernière lignes dans $last_line. Stocke la valeur retournée
 // par la commande shelle dans $retval.
 $last_line = system('ls', $retval);

 // Affichage d'autres informations
 echo '
</pre>
<hr />La dernière ligne lue : ' . $last_line . '
<hr />Valeur retournée : ' . $retval;
?>

Notes

Avertissement

Si vous allez passer des données provenant de l'utilisateur à cette fonction, vous devez utiliser escapeshellarg() ou escapeshellcmd() pour être sûr qu'ils n'endommagent pas le système en exécutant des commandes arbitraires.

Note : Si vous démarrez un programme en utilisant cette fonction et que vous voulez le laisser tourner en arrière plan, vous devez vous assurer que la sortie du programme est redirigée vers un fichier, ou un autre flux de sortie, sinon PHP attendra jusqu'à la fin de l'exécution du programme.

Note : Lorsque le safe mode est activé, vous pouvez uniquement exécuter des programmes qui se situent dans le dossier défini par safe_mode_exec_dir. Pour des raisons pratiques, il n'est actuellement pas permis d''avoir le composant .. dans le chemin de l'exécutable.

Avertissement

Lorsque le safe mode est activé, la chaîne de commande est échappée avec la fonction escapeshellcmd(). Par exemple, echo y | echo x devient echo y \| echo x.

Voir aussi

exec()
passthru()
popen()
escapeshellcmd()
pcntl_exec()
les guillemets obliques

Précédent | Sommaire | Suivant
shell_exec | Niveau supérieur | Création de document PostScript


EXIF

Manuel PHP
Précédent Suivant

XXXIV. EXIF

Introduction

Avec l'extension EXIF, vous pouvez travailler avec les meta-données des images. Par exemple, vous pouvez utiliser les fonctions EXIF pour lire les meta-données d'une image prise avec un appareil photographique numérique, et placées dans les en-têtes des images JPEG et TIFF.

Pré-requis

PHP doit être compilé avec l'option --enable-exif. PHP n'a pas besoin de bibliothèque supplémentaire pour faire fonctionner cette extension. Les utilisateurs Windows doivent aussi avoir activé l'extension mbstring.

Installation

Pour activer le support EXIF en PHP, il suffit d'ajouter l'option de compilation --enable-exif.

Les utilisateurs Windows doivent s'assurer que les bibliothèques DLL php_mbstring.dll et php_exif.dll sont spécifiées dans le fichier php.ini. La bibliothèque php_mbstring.dll doit être chargée avant la bibliothèque php_exif.dll : pensez à ajuster votre php.ini.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

EXIF supporte automatiquement la conversion depuis Unicode et JIS, lorsque le module mbstring est compilé avec PHP. Cela se fait en décodant le commentaire avec le jeu de caractères spécifié. Le résultat est ensuite codé avec un autre jeu de caractères, compatible avec la sortie HTTP.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.encode_jis | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.decode_jis_intel | "JIS" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

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.

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.

EXIF_USE_MBSTRING (entier)

La fonction exif_imagetype() liste plusieurs constantes connexes.

Table des matières
exif_imagetype -- Détermine le type d'une image
exif_read_data -- Lit les en-têtes EXIF dans les images JPEG ou TIFF
exif_tagname -- Lit le nom d'en-tête EXIF d'un index
exif_thumbnail -- Récupère la miniature d'une image TIFF ou JPEG
read_exif_data -- Alias de exif_read_data()

Précédent | Sommaire | Suivant
user_error | Niveau supérieur | exif_imagetype


exif_imagetype

(PHP 4 >= 4.3.0, PHP 5)

exif_imagetype -- Détermine le type d'une image

Description

int exif_imagetype ( string filename )

exif_imagetype() lit les premiers octets du fichier d'image filename, et vérifie sa signature.

exif_imagetype() peut être utilisée pour éviter les appels aux autres fonctions exif pour les formats de fichiers qui ne sont pas supportés, ou en conjonction avec $_SERVER['HTTP_ACCEPT'] pour vérifier si l'utilisateur pourra voir cette image dans son navigateur.

Liste de paramètres

filename

L'image à vérifier.

Valeurs de retour

Lorsqu'une valeur valide est trouvée, la constante appropriée est retournée, et sinon, FALSE. La valeur retournée est la même que la fonction getimagesize() à l'index 2, mais cette fonction est bien plus rapide.

Historique

Version | Description
4.3.2 | Support pour JPC, JP2, JPX, JB2, XBM et WBMP
4.3.0 | Support pour SWC

Constantes pré-définies

Les constantes suivantes sont définies et représentent les valeurs possibles de retour de la fonction exif_imagetype() :

Tableau 1. 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

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

getimagesize()

Précédent | Sommaire | Suivant
EXIF | Niveau supérieur | exif_read_data


exif_read_data

(PHP 4 >= 4.2.0, PHP 5)

exif_read_data -- Lit les en-têtes EXIF dans les images JPEG ou TIFF

Description

array exif_read_data ( string filename [, string sections [, bool arrays [, bool thumbnail]]] )

exif_read_data() lit les en-têtes EXIF des images JPEG et TIFF. Avec cette fonction, vous pouvez lire les données méta générées par les appareils photos numériques.

Les en-têtes EXIF tendent à être présents dans les images JPEG/TIFF générées par les appareils photos numériques, mais malheureusement, chaque appareil photo numérique a une idée différente de la façon dont leurs images doivent être marquées, donc, vous ne pouvez pas toujours compter sur un en-tête EXIF spécifique, bien que présent.

Les paramètres Height et Width sont calculés de la même façon que pour la fonction getimagesize(), donc leurs valeurs ne feront parties d'aucun en-tête retourné. De même, l'index html est la représentation textuelle de la hauteur/largeur utilisée dans une balise image HTML classique.

Lorsqu'un en-tête EXIF contient une note de Copyright, cet en-tête peut alors contenir lui-même deux valeurs. Comme cette solution est incohérente avec les standards EXIF 2.10, la section COMPUTED retournera les deux en-têtes, Copyright.Photographer et Copyright.Editor, tandis que les sections IFD0 contiennent le tableau d'octets avec des caractères NULL pour séparer les deux entrées ; ou bien, juste la première entrée si le type de données était erroné (comportement par défaut de EXIF). La section COMPUTED va aussi contenir une entrée Copyright, qui sera soit la chaîne originale de copyright, soit une liste de valeurs séparées par des virgules de photos et de copyright de l'auteur.

La balise UserComment présente le même problème que la balise Copyright. Elle peut stocker deux valeurs : en premier, le jeu de caractères utilisé, puis la valeur elle-même. Si c'est le cas, la section IFD contiendra uniquement le jeu de caractères, ou bien un tableau d'octets. La section COMPUTED va stocker les deux entrées UserCommentEncoding et UserComment. L'index UserComment est disponible dans les deux cas, et il est préférable de l'utiliser, plutôt que la valeur de la section IFD0.

exif_read_data() valide les données des balises EXIF en accord avec la spécification EXIF (http://exif.org/Exif2-2.PDF, page 20).

Note : Windows ME/XP peuvent endommager les en-têtes EXIF lors de la connexion à la caméra. Plus d'informations disponibles sur http://www.canon.co.jp/Imaging/NOTICE/011214-e.html.

Liste de paramètres

filename

Le nom du fichier image à lire. Il ne peut pas être une URL.

sections

Liste de valeur séparées par des virgules des sections qui devront être présentées dans le tableau de résultat. Si aucune des sections demandées n'est trouvée, la valeur retournée est FALSE.

FILE | FileName (nom du ficher), FileSize (taille du fichier), FileDateTime (date de modification du fichier), SectionsFound (sections trouvées)
COMPUTED | Attribut Html, largeur, hauteur, couleur ou noir et blanc et plus si disponible. La largeur et la hauteur sont calculées de la même façon que la fonction getimagesize(), donc, leurs valeurs ne devraient jamais différer. De même, l'index html est la représentation textuelle de la hauteur/largeur utilisée dans une balise image HTML classique.
ANY_TAG | Toutes les informations concernant cette balise, comme IFD0, EXIF, ...
IFD0 | Toutes les balises IFD0. Dans les images normales, ils contiennent les dimensions de l'image, etc.
THUMBNAIL | Un fichier qui contient une miniature, s'il y a un second IFD. Toutes les informations mises en balises à propos de cette miniature seront stockées dans cette section.
COMMENT | En-tête de commentaire des images JPEG.
EXIF | La section EXIF est une sous section de la section IFD0. Elle contient des informations plus détaillées sur les images. La plupart de ces index sont reliés aux appareils numériques.

arrays

Spécifie si chaque section doit être un tableau ou non. Les sections FILE, COMPUTED et THUMBNAIL seront toujours transformées en tableau, car elle contiennent des noms qui risquent d'être en conflit.

thumbnail

Lorsque défini à TRUE, la miniature elle-même est lue. Sinon, seules les données contenues dans le taf seront lues.

Valeurs de retour

Retourne un tableau associatif où les indexes sont les noms des en-têtes et les valeurs sont les valeurs associées à ces en-têtes. Si aucune donnée ne peut être retournée, exif_read_data() retournera FALSE.

Historique

Version | Description
4.3.0 | Peut aussi lire les sections IFD incluses dans les tableaux, et retournées sous cette forme. De plus, la taille d'une miniature intégrée est retournée dans le sous tableau THUMBNAIL et la fonction exif_read_data() peut retourner les miniatures au format TIFF. Enfin, il n'y a plus de longueur maximale pour les valeurs renvoyées (hormis la place en mémoire).
4.3.0 | Si PHP a été compilé avec le support mbstring, les commentaires utilisateurs peuvent changés automatiquement de jeu de caractères. De plus, si les commentaires utilisateurs utilisent l'encodage Unicode ou JIS, cet encodage sera automatiquement modifié en accord avec le paramètre de configuration exif du php.ini.
4.3.0 | Si l'image contient des données IFD0, alors la section COMPUTED contient l'entrée ByteOrderMotorola qui vaut 0 pour little-endian (Intel) et 1 pour big-endian (Motorola). En outre, les sections COMPUTED et UserComment ne contiennent as seulement la première entrée de l'index copyright si les données sont fausses.

Exemples

Exemple 1. Exemple avec exif_read_data()

<?php
echo "test1.jpg:<br />\n";
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif===false ? "Aucun en-tête de donnés n'a été trouvé.<br />\n" : "L'image contient des en-têtes<br />\n";

$exif = exif_read_data('tests/test2.jpg', 0, true);
echo "test2.jpg:<br />\n";
foreach ($exif as $key => $section) {
    foreach ($section as $name => $val) {
        echo "$key.$name: $val<br />\n";
    }
}
?>

Le premier appel échoue car l'image n'a pas d'en-tête d'information.

L'exemple ci-dessus va afficher quelque chose de similaire à :

test1.jpg:
Aucun en-tête de donnés n'a été trouvé.
test2.jpg:
FILE.FileName: test2.jpg
FILE.FileDateTime: 1017666176
FILE.FileSize: 1240
FILE.FileType: 2
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, COMMENT
COMPUTED.html: width="1" height="1"
COMPUTED.Height: 1
COMPUTED.Width: 1
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.UserComment: Exif test image.
COMPUTED.UserCommentEncoding: ASCII
COMPUTED.Copyright: Photo (c) M.Boerger, Edited by M.Boerger.
COMPUTED.Copyright.Photographer: Photo (c) M.Boerger
COMPUTED.Copyright.Editor: Edited by M.Boerger.
IFD0.Copyright: Photo (c) M.Boerger
IFD0.UserComment: ASCII
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.JPEGInterchangeFormatLength: 523
COMMENT.0: Comment #1.
COMMENT.1: Comment #2.
COMMENT.2: Comment #3end
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.Thumbnail.Height: 1
THUMBNAIL.Thumbnail.Height: 1

Voir aussi

exif_thumbnail()
getimagesize()

Précédent | Sommaire | Suivant
exif_imagetype | Niveau supérieur | exif_tagname


exif_tagname

(PHP 4 >= 4.2.0, PHP 5)

exif_tagname -- Lit le nom d'en-tête EXIF d'un index

Description

string exif_tagname ( string index )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

index

L'index de l'image

Valeurs de retour

exif_tagname() retourne FALSE si index est indéfini, sinon, elle retourne le nom de l'en-tête.

Voir aussi

exif_imagetype()

Précédent | Sommaire | Suivant
exif_read_data | Niveau supérieur | exif_thumbnail


exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5)

exif_thumbnail -- Récupère la miniature d'une image TIFF ou JPEG

Description

string exif_thumbnail ( string filename [, int &width [, int &height [, int &imagetype]]] )

exif_thumbnail() lit la miniature de l'image TIFF ou JPEG dans le fichier filename.

Si vous voulez afficher des miniatures avec cette fonction, vous devez envoyer le bon type MIME avec la fonction header().

Il est possible que la fonction exif_thumbnail() n'arrive pas à créer l'image mais peut déterminer sa taille. Dans ce cas, la fonction retourne FALSE mais les paramètres width et height sont définis.

Liste de paramètres

filename

Le nom du fichier image à lire. Cette image contient une miniature.

width

La largeur retournée de la miniature retournée.

height

La hauteur retournée de la miniature retournée.

imagetype

Le type de l'image retourné de la miniature retournée. Peut être soit TIFF, soit JPEG.

Valeurs de retour

Retourne la miniature embarquée ou FALSE si l'image ne contient pas de miniature.

Historique

Version | Description
4.3.0 | Les paramètres optionnels width, height et imagetype deviennent disponibles.
4.3.0 | Les miniatures peuvent être retournées dans le format TIFF.

Exemples

Exemple 1. Exemple avec exif_thumbnail()

<?php
if (array_key_exists('file', $_REQUEST)) {
    $image = exif_thumbnail($_REQUEST['file'], $width, $height, $type);
} else {
    $image = false;
}
if ($image!==false) {
    header('Content-type: ' .image_type_to_mime_type($type));
    echo $image;
    exit;
} else {
    // aucune miniature de disponible, traitement de l'erreur ici
    echo 'No thumbnail available';
}
?>

Voir aussi

exif_read_data()
image_type_to_mime_type()

Précédent | Sommaire | Suivant
exif_tagname | Niveau supérieur | read_exif_data


read_exif_data

(PHP 4 >= 4.0.1, PHP 5)

read_exif_data -- Alias de exif_read_data()

Description

Cette fonction est un alias de : exif_read_data().

Précédent | Sommaire | Suivant
exif_thumbnail | Niveau supérieur | Fonctions Expect


Fonctions de monitorage d'altération de fichiers

Manuel PHP
Précédent Suivant

XXXVI. Fonctions de monitorage d'altération de fichiers

Introduction

FAM surveille les fichiers et les dossiers, alertant les applications impliquées de changement. Pour plus d'informations sur FAM, voyez le site http://oss.sgi.com/projects/fam/.

Un script PHP peut spécifier une liste de fichiers à FAM pour les surveiller en utilisant les fonctions fournies par cette extension.

Le processus FAM est démarré lorsque la première connexion d'une application est ouverte. Il se termine après la fermeture de toutes les connexions.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Pré-requis

Cette extension utilise les fonctions de la bibliothèque FAM, développée par SGI. Vous devez la télécharger et installer la bibliothèque FAM.

Installation

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Il y a deux types de ressources utilisés dans le module FAM. Le premier est la connexion au service FAM retournée par la fonction fam_open(), la seconde, une ressource de surveillace retournée par les fonctions fam_monitor_XXX.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Tableau 1. Constantes d'événements FAM

Constante | Description
FAMChanged (entier) | Une valeur qui a été modifiée pour un fichier ou un dossier. Elle est accessible via fstat(1).
FAMDeleted (entier) | Un fichier ou un dossier a été effacé.
FAMStartExecuting (entier) | Un fichier exécutable a été lancé.
FAMStopExecuting (entier) | Un fichier exécutable a fini de s'exécuter.
FAMCreated (entier) | Un fichier a été créé dans un dossier.
FAMMoved (entier) | Cet événement ne se produit jamais.
FAMAcknowledge (entier) | Evénement survenu en réponse à fam_cancel_monitor().
FAMExists (entier) | Un événement survenu suite à une commande de surveillance d'un fichier ou d'un dossier. Lorsque le dossier est sous surveillance, un événement est généré pour ce dossier et tous ses fichiers.
FAMEndExist (entier) | Un événement après le dernier événement.
Table des matières
fam_cancel_monitor -- Termine le monitoring
fam_close -- Ferme la connexion FAM
fam_monitor_collection -- Monitore les changements d'une collection de fichiers dans un dossier
fam_monitor_directory -- Monitore un dossier pour les changements
fam_monitor_file -- Monitore un fichier régulier pour les changements
fam_next_event -- Retourne le prochain événement FAM en attente
fam_open -- Ouvre une connexion vers le démon FAM
fam_pending -- Vérifie si des événements FAM sont disponibles
fam_resume_monitor -- Reprend un monitoring suspendu
fam_suspend_monitor -- Suspend temporairement le monitoring

Précédent | Sommaire | Suivant
expect_popen | Niveau supérieur | fam_cancel_monitor


fam_cancel_monitor

(PHP 5 <= 5.0.4)

fam_cancel_monitor -- Termine le monitoring

Description

bool fam_cancel_monitor ( resource fam, resource fam_monitor )

Termine le monitoring d'une resource.

De plus un événement FAMAcknowledge survient.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

fam_monitor

Une ressource retournée par une des fonctions fam_monitor_XXX.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fam_monitor_file()
fam_monitor_directory()
fam_monitor_collection()
fam_suspend_monitor()

Précédent | Sommaire | Suivant
Fonctions de monitorage d'altération de fichiers | Niveau supérieur | fam_close


fam_close

(PHP 5 <= 5.0.4)

fam_close -- Ferme la connexion FAM

Description

void fam_close ( resource fam )

Ferme une connexion au service FAM.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

fam_monitor_open()

Précédent | Sommaire | Suivant
fam_cancel_monitor | Niveau supérieur | fam_monitor_collection


fam_monitor_collection

(PHP 5 <= 5.0.4)

fam_monitor_collection -- Monitore les changements d'une collection de fichiers dans un dossier

Description

resource fam_monitor_collection ( resource fam, string dirname, int depth, string mask )

Monitore une collection de fichiers dans le dossier spécifié.

Une événement FAM sera généré lorsque le status d'un fichier changera. Les codes des événements possibles sont décrit en détail dans la partie constantes de cette section.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

dirname

Chemin vers le dossier contenant les fichiers à monitorer

depth

La profondeur maximale de recherche à partir de ce dossier

mask

Un masque restreignant les noms de fichier

Valeurs de retour

Retourne une ressource ou FALSE si une erreur survient.

Voir aussi

fam_monitor_file()
fam_monitor_directory()
fam_cancel_monitor()
fam_suspend_monitor()
fam_resume_monitor()

Précédent | Sommaire | Suivant
fam_close | Niveau supérieur | fam_monitor_directory


fam_monitor_directory

(PHP 5 <= 5.0.4)

fam_monitor_directory -- Monitore un dossier pour les changements

Description

resource fam_monitor_directory ( resource fam, string dirname )

Monitore un dossier et tous ses fichiers.

Un événement FAM sera généré à chaque fois que le status du dossier (i.e. le résultat de la fonction stat() sur ce dossier) ou de son contenu (ie. le résultat de readdir()) changera.

Les codes des événements possibles sont décrit en détail dans la partie constantes de cette section.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

dirname

Chemin vers le dossier surveillé

Valeurs de retour

Retourne une ressource ou FALSE si une erreur survient.

Voir aussi

fam_monitor_file()
fam_monitor_collection()
fam_cancel_monitor()
fam_suspend_monitor()
fam_resume_monitor()

Précédent | Sommaire | Suivant
fam_monitor_collection | Niveau supérieur | fam_monitor_file


fam_monitor_file

(PHP 5 <= 5.0.4)

fam_monitor_file -- Monitore un fichier régulier pour les changements

Description

resource fam_monitor_file ( resource fam, string filename )

met en place le monitoring pour un fichier. Un événement FAM sera généré à chaque fois que le status du fichier (i.e. le résultat de la fonction stat() sur ce fichier) changera.

Les codes des événements possibles sont décrit en détail dans la partie constantes de cette section.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

filename

Chemin vers le fichier surveillé

Valeurs de retour

Retourne une ressource ou FALSE si une erreur survient.

Voir aussi

fam_monitor_directory()
fam_monitor_collection()
fam_cancel_monitor()
fam_suspend_monitor()
fam_resume_monitor()

Précédent | Sommaire | Suivant
fam_monitor_directory | Niveau supérieur | fam_next_event


fam_next_event

(PHP 5 <= 5.0.4)

fam_next_event -- Retourne le prochain événement FAM en attente

Description

array fam_next_event ( resource fam )

Retourne l'événement FAM suivant dans la file d'attente.

Cette fonction bloquera tant qu'un événement sera disponible, ce qui peut être vérifié en appelant fam_pending().

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

Valeurs de retour

Retourne un tableau contenant un code événement FAM dans l'entrée 'code', le chemin vers le fichier ciblé dans l'entrée 'filename' et optionnellement un nom d'hôte dans l'entrée 'hostname'.

Les codes événements possibles sont détaillés dans la partie constantes de cette section.

Voir aussi

fam_pending()

Précédent | Sommaire | Suivant
fam_monitor_file | Niveau supérieur | fam_open


fam_open

(PHP 5 <= 5.0.4)

fam_open -- Ouvre une connexion vers le démon FAM

Description

resource fam_open ( [string appname] )

Ouvre une connexion vers le démon du service FAM.

Liste de paramètres

appname

chaîne de caractères identifiant l'application pour les journaux de logs.

Valeurs de retour

Retourne une ressource représentant une connexion à un service FAM en cas de succès, ou FALSE si une erreur survient.

Voir aussi

fam_close()

Précédent | Sommaire | Suivant
fam_next_event | Niveau supérieur | fam_pending


fam_pending

(PHP 5 <= 5.0.4)

fam_pending -- Vérifie si des événements FAM sont disponibles

Description

int fam_pending ( resource fam )

Vérifie si des événements FAM sont disponibles.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

Valeurs de retour

Retourne une valeur différente de zéro si des évènements sont disponibles pour être récupérés avec fam_next_event().

Voir aussi

fam_next_event()

Précédent | Sommaire | Suivant
fam_open | Niveau supérieur | fam_resume_monitor


fam_resume_monitor

(PHP 5 <= 5.0.4)

fam_resume_monitor -- Reprend un monitoring suspendu

Description

bool fam_resume_monitor ( resource fam, resource fam_monitor )

Reprend le monitoring d'une ressource précédemment suspendu avec fam_suspend_monitor().

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

fam_monitor

Une ressource retournée par une des fonctions fam_monitor_XXX

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fam_suspend_monitor()

Précédent | Sommaire | Suivant
fam_pending | Niveau supérieur | fam_suspend_monitor


fam_suspend_monitor

(PHP 5 <= 5.0.4)

fam_suspend_monitor -- Suspend temporairement le monitoring

Description

bool fam_suspend_monitor ( resource fam, resource fam_monitor )

fam_suspend_monitor() suspend temporairement le monitoring d'une ressource.

Le monitoring peut être repris par la suite à l'aide de fam_resume_monitor() sans avoir à en recréer un nouveau.

Liste de paramètres

fam

Une ressource représentant une connexion à un service FAM retournée par la fonction fam_open()

fam_monitor

Une ressource retournée par une des fonctions fam_monitor_XXX

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fam_cancel_monitor()
fam_resume_monitor()

Précédent | Sommaire | Suivant
fam_resume_monitor | Niveau supérieur | Forms Data Format


FrontBase

Manuel PHP
Précédent Suivant

XLV. FrontBase

Introduction

Ces fonctions vous permettent d'accéder aux serveurs SQL FrontBase. Plus de détails sur le serveur FrontBase sont disponibles sur le site de http://www.frontbase.com/.

La documentation complète de FrontBase est disponible à http://www.frontbase.com/cgi-bin/WebObjects/FrontBase.woa/wa/productsPage?currentPage=Documentation.

Frontbase est supporté depuis PHP 4.0.6.

Pré-requis

Vous devez installer un serveur de bases de données FrontBase ou, tout au moins, les bibliothèques clientes fbsql, pour accéder à ces fonctions. Vous pouvez accéder au site de FrontBase à l'adresse http://www.frontbase.com/.

Installation

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP avec le support fbsql en utilisant l'option de configuration --with-fbsql. Si vous utilisez cette option sans spécifier le chemin jusqu'au dossier d'installation fbsql, PHP recherchera les bibliothèques du client fbsql dans les dossiers habituels, sur votre système. Les utilisateurs qui ont installé FrontBase dans un dossier non standard doivent spécifier le chemin comme ceci : --with-fbsql=/path/to/fbsql. Cela va indiquer à PHP le bon emplacement des bibliothèques de FrontBase, et éviter les conflits.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.2.0.
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.autocommit | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_links | "128" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_connections | "128" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_results | "128" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.batchSize | "1000" | PHP_INI_SYSTEM |
fbsql.default_host | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_password | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_database | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_database_password | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

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.

FBSQL_ASSOC (entier)

FBSQL_NUM (entier)

FBSQL_BOTH (entier)

FBSQL_LOCK_DEFERRED (entier)

FBSQL_LOCK_OPTIMISTIC (entier)

FBSQL_LOCK_PESSIMISTIC (entier)

FBSQL_ISO_READ_UNCOMMITTED (entier)

FBSQL_ISO_READ_COMMITTED (entier)

FBSQL_ISO_REPEATABLE_READ (entier)

FBSQL_ISO_SERIALIZABLE (entier)

FBSQL_ISO_VERSIONED (entier)

FBSQL_UNKNOWN (entier)

FBSQL_STOPPED (entier)

FBSQL_STARTING (entier)

FBSQL_RUNNING (entier)

FBSQL_STOPPING (entier)

FBSQL_NOEXEC (entier)

FBSQL_LOB_DIRECT (entier)

FBSQL_LOB_HANDLE (entier)

Table des matières
fbsql_affected_rows -- Lit le nombre de lignes affectées par la dernière requête
fbsql_autocommit -- Active ou désactive la validation automatique
fbsql_blob_size -- Retourne la taille d'un BLOB
fbsql_change_user -- Change le nom d'utilisateur de la session active
fbsql_clob_size -- Retourne la taille d'un CLOB
fbsql_close -- Ferme la connexion FrontBase
fbsql_commit -- Valide une transaction
fbsql_connect -- Ouvre une connexion à un serveur FrontBase
fbsql_create_blob -- Crée un BLOB
fbsql_create_clob -- Crée un CLOB
fbsql_create_db -- Crée une base de données
fbsql_data_seek -- Déplace le pointeur interne de résultat FBSQL
fbsql_database_password -- Modifie/lit le mot de passe dans une base FBSQL
fbsql_database -- Lit ou définit le nom de la base de données utilisée avec une connexion
fbsql_db_query -- Envoie une requête à la base FrontBase
fbsql_db_status -- Lit le statut courant d'une base de données
fbsql_drop_db -- Supprime une base de données FrontBase
fbsql_errno -- Retourne le code d'erreur FrontBase
fbsql_error -- Retourne le message d'erreur FrontBase
fbsql_fetch_array -- Lit toute une ligne de résultat dans un tableau
fbsql_fetch_assoc -- Lit toute une ligne de résultat dans un tableau associatif
fbsql_fetch_field -- Lit des informations sur une colonne dans un résultat, et retourne un objet
fbsql_fetch_lengths -- Lit la taille de chaque colonne d'un résultat
fbsql_fetch_object -- Lit une ligne de résultat sous forme d'objet
fbsql_fetch_row -- Lit une ligne de résultat sous forme de tableau numérique
fbsql_field_flags -- Lit les options associées à une colonne de résultat
fbsql_field_len -- Retourne la taille d'un champs
fbsql_field_name -- Lit le nom d'un champs
fbsql_field_seek -- Déplace le pointeur de résultat
fbsql_field_table -- Lit le nom de la table d'origine d'un champs
fbsql_field_type -- Lit le type d'une colonne
fbsql_free_result -- Libère le résultat de la mémoire
fbsql_get_autostart_info --
fbsql_hostname -- Lit ou définit le nom de l'hôte à utiliser avec une connexion
fbsql_insert_id -- Lit le dernier identifiant généré par une requête INSERT
fbsql_list_dbs -- Liste les bases de données FBSQL
fbsql_list_fields -- Liste les champs d'une table FrontBase
fbsql_list_tables -- Liste les tables dans une base de données FrontBase
fbsql_next_result -- Déplace le pointeur interne vers le résultat suivant
fbsql_num_fields -- Lit le nombre de champs dans un résultat
fbsql_num_rows -- Lit le nombre de lignes dans un résultat
fbsql_password -- Lit ou définit le mot de passe à utiliser avec une connexion
fbsql_pconnect -- Ouvre une connexion persistante sur un serveur FrontBase
fbsql_query -- Exécute une requête sur un serveur FrontBase
fbsql_read_blob -- Lit un BLOB dans une base de données
fbsql_read_clob -- Lit un CLOB dans une base de données
fbsql_result -- Lit des données dans un résultat
fbsql_rollback -- Annule une transaction FBSQL
fbsql_rows_fetched -- Récupère le nombre de lignes affectées par la dernière requête
fbsql_select_db -- Sélectionne une base de données FrontBase
fbsql_set_characterset -- Modifie le jeu de caractères pour l'entrée / sortie
fbsql_set_lob_mode -- Modifie le mode de lecture des LOB
fbsql_set_password -- Change le mot de passe de l'utilisateur spécifié
fbsql_set_transaction -- Configure le verrouillage et l'isolation de transactions
fbsql_start_db -- Démarre une base de données FBSQL
fbsql_stop_db -- Stoppe une base de données FBSQL
fbsql_table_name -- Récupère le nom de la table d'un champs
fbsql_tablename -- Alias de de fbsql_table_name()
fbsql_username -- Lit ou définit le nom de login à utiliser avec une connexion
fbsql_warnings -- Active ou désactive les alertes FrontBase

Précédent | Sommaire | Suivant
fribidi_log2vis | Niveau supérieur | fbsql_affected_rows


fbsql_affected_rows

(PHP 4 >= 4.0.6, PHP 5)

fbsql_affected_rows -- Lit le nombre de lignes affectées par la dernière requête

Description

int fbsql_affected_rows ( [resource link_identifier] )

fbsql_affected_rows() retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE, effectuée avec la connexion représentée par link_identifier.

Note : Si vous utilisez les transactions, vous devez appeler fbsql_affected_rows() après votre requête INSERT, UPDATE ou DELETE, et non après la validation.

Si la dernière requête DELETE ne contenait pas de clause WHERE, toutes les lignes seront effacées, mais fbsql_affected_rows() retournera 0.

Note : Lors d'une requête UPDATE, FrontBase ne modifie pas les lignes dont les anciennes valeurs sont égales aux nouvelles. Cela fait que fbsql_affected_rows() ne retournera pas le nombre de lignes traitées, mais le nombre de lignes affectées (modifiées) par la requête.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Si la dernière requête échoue, fbsql_affected_rows() retourne -1.

Voir aussi

fbsql_num_rows()

Précédent | Sommaire | Suivant
FrontBase | Niveau supérieur | fbsql_autocommit


fbsql_autocommit

(PHP 4 >= 4.0.6, PHP 5)

fbsql_autocommit -- Active ou désactive la validation automatique

Description

bool fbsql_autocommit ( resource link_identifier [, bool OnOff] )

Retourne l'état courant de la validation automatique.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

OnOff

Si ce paramètre optionnel est fourni, le statut de l'auto-validation sera changé.

Si le paramètre onoff vaut TRUE, FBSQL va se mettre en mode d'auto-validation, et les requêtes seront validées automatiquement si aucune erreur n'est trouvée.

Si le paramètre onoff vaut FALSE, FBSQL va se mettre en mode de validation manuelle, et les requêtes seront validées par l'appel de la fonction fbsql_commit() ou annulées par fbsql_rollback().

Valeurs de retour

Retourne le statut courant de l'auto-validation, sous la forme d'un booléen.

Voir aussi

fbsql_commit()
fbsql_rollback()

Précédent | Sommaire | Suivant
fbsql_affected_rows | Niveau supérieur | fbsql_blob_size


fbsql_blob_size

(PHP 4 >= 4.2.0, PHP 5)

fbsql_blob_size -- Retourne la taille d'un BLOB

Description

int fbsql_blob_size ( string blob_handle [, resource link_identifier] )

Retourne la taille du BLOB fourni.

Liste de paramètres

blob_handle

Un gestionnaire de BLOB, retourné par la fonction fbsql_create_blob().

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne la taille du BLOB, sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi

fbsql_clob_size()

Précédent | Sommaire | Suivant
fbsql_autocommit | Niveau supérieur | fbsql_change_user


fbsql_change_user

(no version information, might be only in CVS)

fbsql_change_user -- Change le nom d'utilisateur de la session active

Description

bool fbsql_change_user ( string user, string password [, string database [, resource link_identifier]] )

fbsql_change_user() change le nom de l'utilisateur sur la session courante. Si l'identification du nouvel utilisateur échoue, l'utilisateur courant reste actif.

Liste de paramètres

user

Le nom du nouvel utilisateur.

password

Le mot de passe du nouvel utilisateur.

database

Si spécifié, ce sera la base de données par défaut après le changement d'utilisateur.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
fbsql_blob_size | Niveau supérieur | fbsql_clob_size


fbsql_clob_size

(PHP 4 >= 4.2.0, PHP 5)

fbsql_clob_size -- Retourne la taille d'un CLOB

Description

int fbsql_clob_size ( string clob_handle [, resource link_identifier] )

Retourne la taille du CLOB fourni.

Liste de paramètres

clob_handle

Un gestionnaire de CLOB, retourné par la fonction fbsql_create_clob().

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne la taille du CLOB, sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi

fbsql_blob_size()

Précédent | Sommaire | Suivant
fbsql_change_user | Niveau supérieur | fbsql_close


fbsql_close

(PHP 4 >= 4.0.6, PHP 5)

fbsql_close -- Ferme la connexion FrontBase

Description

bool fbsql_close ( [resource link_identifier] )

Ferme la connexion au serveur FrontBase associée à la ressource spécifiée.

Utiliser fbsql_close() n'est pas nécessaire, car les liens non persistants seront automatiquement fermés à la fin du script.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec fbsql_close()

<?php
$link = fbsql_connect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
echo "Connecté !";
fbsql_close($link);
?>

Voir aussi

fbsql_connect()
fbsql_pconnect()

Précédent | Sommaire | Suivant
fbsql_clob_size | Niveau supérieur | fbsql_commit


fbsql_commit

(PHP 4 >= 4.0.6, PHP 5)

fbsql_commit -- Valide une transaction

Description

bool fbsql_commit ( [resource link_identifier] )

Termine la transaction courante en sauvant toutes les insertions, modifications et effacements sur le serveur, puis en relachant tous les verrous qui ont été posés sur les tables. Cette commande n'est nécessaire que si FBSQL est en mode de validation manuelle.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fbsql_autocommit()
fbsql_rollback()

Précédent | Sommaire | Suivant
fbsql_close | Niveau supérieur | fbsql_connect


fbsql_connect

(PHP 4 >= 4.0.6, PHP 5)

fbsql_connect -- Ouvre une connexion à un serveur FrontBase

Description

resource fbsql_connect ( [string hostname [, string username [, string password]]] )

fbsql_connect() établit une connexion avec un serveur FrontBase.

Si un deuxième appel est fait à fbsql_connect() avec les mêmes arguments, une nouvelle connexion ne sera pas générée, mais la connexion déjà ouverte sera réutilisée, et retournée.

La connexion au serveur sera fermée dès la fin du script, à moins qu'elle ne soit explicitement terminée plus tôt, avec la fonction fbsql_close().

Liste de paramètres

hostname

Le nom du serveur hôte. Par défaut, 'NULL'.

username

Le nom de l'utilisateur pour la connexion. Par défaut, _SYSTEM.

password

Le mot de passe pour la connexion. Par défaut, une chaîne vide.

Valeurs de retour

Retourne une ressource de connexion positive FrontBase en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec fbsql_connect()

<?php

$link = fbsql_connect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
echo "Connexion effectuée !";
fbsql_close($link);

?>

Voir aussi

fbsql_pconnect()
fbsql_close()

Précédent | Sommaire | Suivant
fbsql_commit | Niveau supérieur | fbsql_create_blob


fbsql_create_blob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_create_blob -- Crée un BLOB

Description

string fbsql_create_blob ( string blob_data [, resource link_identifier] )

Crée un BLOB à partir des données fournies.

Liste de paramètres

blob_data

Les données BLOB.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un gestionnaire de ressource BLOB qui peut être utilisé avec les commandes insertions ou de mise à jour pour stocker le BLOB dans la base de données.

Exemples

Exemple 1. Exemple avec fbsql_create_blob()

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
$filename = "blobfile.bin";
$fp = fopen($filename, "rb");
$blobdata = fread($fp, filesize($filename));
fclose($fp);

$blobHandle = fbsql_create_blob($blobdata, $link);

$sql = "INSERT INTO BLOB_TABLE (BLOB_COLUMN) VALUES ($blobHandle);";
$rs = fbsql_query($sql, $link);
?>

Voir aussi

fbsql_create_clob()
fbsql_read_blob()
fbsql_read_clob()
fbsql_set_lob_mode()

Précédent | Sommaire | Suivant
fbsql_connect | Niveau supérieur | fbsql_create_clob


fbsql_create_clob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_create_clob -- Crée un CLOB

Description

string fbsql_create_clob ( string clob_data [, resource link_identifier] )

Crée un CLOB à partir des données fournies.

Liste de paramètres

clob_data

Les données CLOB.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un gestionnaire de ressource CLOB qui pourra être utilisé avec les commandes d'insertion ou de mise à jour pour stocker le CLOB dans la base de données.

Exemples

Exemple 1. Exemple avec fbsql_create_clob()

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
$filename = "clob_file.txt";
$fp = fopen($filename, "rb");
$clobdata = fread($fp, filesize($filename));
fclose($fp);

$clobHandle = fbsql_create_clob($clobdata, $link);

$sql = "INSERT INTO CLOB_TABLE (CLOB_COLUMN) VALUES ($clobHandle);";
$rs = fbsql_query($sql, $link);
?>

Voir aussi

fbsql_create_blob()
fbsql_read_blob()
fbsql_read_clob()
fbsql_set_lob_mode()

Précédent | Sommaire | Suivant
fbsql_create_blob | Niveau supérieur | fbsql_create_db


fbsql_create_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_create_db -- Crée une base de données

Description

bool fbsql_create_db ( string database_name [, resource link_identifier [, string database_options]] )

Tente de créer une nouvelle base de données sur le serveur spécifié.

Liste de paramètres

database_name

Le nom de la base de données, sous la forme d'une chaîne de caractères.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

database_options

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec fbsql_create_db()

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
if (fbsql_create_db("my_db")) {
    echo "Base de données créée avec succès\n";
} else {
    printf("Erreur de création de la base de données : %s\n", fbsql_error());
}
?>

Voir aussi

fbsql_drop_db()

Précédent | Sommaire | Suivant
fbsql_create_clob | Niveau supérieur | fbsql_data_seek


fbsql_data_seek

(PHP 4 >= 4.0.6, PHP 5)

fbsql_data_seek -- Déplace le pointeur interne de résultat FBSQL

Description

bool fbsql_data_seek ( resource result, int row_number )

Déplace le pointeur interne de ligne dans le résultat de requête result_identifier jusqu'à la ligne row_number.

Le prochain appel à la fonction fbsql_fetch_row() retournera cette ligne.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

row_number

Le numéro de la ligne. Commence à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec fbsql_data_seek()

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");

fbsql_select_db("samp_db")
    or die("Impossible de sélectionner une base");

$query = "SELECT last_name, first_name FROM friends;";
$result = fbsql_query($query)
    or die("La requête a échoué");

// Lecture des lignes en ordre inverse

for ($i = fbsql_num_rows($result) - 1; $i >=0; $i--) {
    if (!fbsql_data_seek($result, $i)) {
        printf("Impossible d'accéder à la ligne %d\n", $i);
        continue;
    }

    if (!($row = fbsql_fetch_object($result)))
        continue;

    echo $row->last_name . $row->first_name . "<br />\n";
}

fbsql_free_result($result);
?>

Précédent | Sommaire | Suivant
fbsql_create_db | Niveau supérieur | fbsql_database_password


fbsql_database_password

(PHP 4 >= 4.0.6, PHP 5)

fbsql_database_password -- Modifie/lit le mot de passe dans une base FBSQL

Description

string fbsql_database_password ( resource link_identifier [, string database_password] )

Modifie et lit le mot de passe de la base de données courante. Si la base de données est protégée par un mot de passe, l'utilisateur doit appeler cette fonction avant d'appeler la fonction fbsql_select_db().

Si aucune connexion n'a été ouverte PHP essaiera d'en ouvrir une en appelant la fonction fbsql_connect(), et en utilisant la connexion qui en résultera (si elle réussit).

Cette fonction ne modifie pas le mot de passe d'accès au serveur qui est stocké sur le serveur, et elle ne permet pas non plus d'aller lire ce mot de passe.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

database_password

Le mot de passe, sous la forme d'une chaîne de caractères. Si fourni, la fonction définira le mot de passe de base de données pour la connexion courante.

Valeurs de retour

Retourne le mot de passe de base de données associé à la connexion courante.

Exemples

Exemple 1. Exemple avec fbsql_create_clob()

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
fbsql_database_password($link, "secret db password");
fbsql_select_db($database, $link);
?>

Voir aussi

fbsql_connect()
fbsql_pconnect()
fbsql_select_db()

Précédent | Sommaire | Suivant
fbsql_data_seek | Niveau supérieur | fbsql_database


fbsql_database

(PHP 4 >= 4.0.6, PHP 5)

fbsql_database -- Lit ou définit le nom de la base de données utilisée avec une connexion

Description

string fbsql_database ( resource link_identifier [, string database] )

Lit ou définit le nom de la base de données utilisée avec la connexion fournie.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

database

Le nom de la base de données. Si fourni, la base de données par défaut pour la connexion sera changé en database.

Valeurs de retour

Retourne le nom de la base de données utilisée avec cette connexion.

Précédent | Sommaire | Suivant
fbsql_database_password | Niveau supérieur | fbsql_db_query


fbsql_db_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_db_query -- Envoie une requête à la base FrontBase

Description

resource fbsql_db_query ( string database, string query [, resource link_identifier] )

Sélectionne une base de données et y exécute une requête.

Liste de paramètres

database

La base de données à sélectionner.

query

La requête SQL à exécuter.

Note : La requête doit toujours se terminer par un point virgule.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un identifiant de résultat positif FrontBase ou FALSE si une erreur survient.

Voir aussi

fbsql_query()
fbsql_connect()

Précédent | Sommaire | Suivant
fbsql_database | Niveau supérieur | fbsql_db_status


fbsql_db_status

(PHP 4 >= 4.1.0, PHP 5)

fbsql_db_status -- Lit le statut courant d'une base de données

Description

int fbsql_db_status ( string database_name [, resource link_identifier] )

Lit le statut courant de la base de données fournie.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un entier correspondant au statut courant. Il peut être une des constantes suivantes :

  • FALSE - Le gestion de cet hôte était invalide. Cette erreur survient lorsque PHP se connecte directement à une base de données en utilisant un numéro de port. FBExec peut être disponible sur un serveur, mais aucune connexion n'a été faite.

  • FBSQL_UNKNOWN - Le statut est inconnu.

  • FBSQL_STOPPED - La base de données ne fonctionne pas. Utilisez fbsql_start_db() pour démarrer la base.

  • FBSQL_STARTING - La base de données démarre.

  • FBSQL_RUNNING - La base de données fonctionne, et est disponible pour recevoir des requêtes SQL.

  • FBSQL_STOPPING - La base de données s'arrête.

  • FBSQL_NOEXEC - FBExec ne fonctionne par sur le serveur, et il n'est pas possible d'obtenir le statut de la base de données.

Voir aussi

fbsql_start_db()
fbsql_stop_db()

Précédent | Sommaire | Suivant
fbsql_db_query | Niveau supérieur | fbsql_drop_db


fbsql_drop_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_drop_db -- Supprime une base de données FrontBase

Description

bool fbsql_drop_db ( string database_name [, resource link_identifier] )

fbsql_drop_db() essaie de supprimer la base de données database_name, sur la connexion représentée par link_identifier.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fbsql_create_db()

Précédent | Sommaire | Suivant
fbsql_db_status | Niveau supérieur | fbsql_errno


fbsql_errno

(PHP 4 >= 4.0.6, PHP 5)

fbsql_errno -- Retourne le code d'erreur FrontBase

Description

int fbsql_errno ( [resource link_identifier] )

Retourne le code d'erreur de la dernière opération sur la connexion FrontBase fournie.

Les erreurs générées par FrontBase ne sont pas automatiquement affichées comme alertes. Il faut utiliser la fonction fbsql_errno() pour connaître leur code d'erreur. Notez que cette fonction ne retourne que le code d'erreur généré par la dernière fonction FrontBase (hormis fbsql_error() et fbsql_errno()) : si vous voulez repérer les erreurs, faites-le dès que les fonctions ont été appelées.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne le numéro de l'erreur généré par la dernière fonction fbsql ou 0 si aucune erreur survient.

Exemples

Exemple 1. Exemple avec fbsql_errno()

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

Voir aussi

fbsql_error()
fbsql_warnings()

Précédent | Sommaire | Suivant
fbsql_drop_db | Niveau supérieur | fbsql_error


fbsql_error

(PHP 4 >= 4.0.6, PHP 5)

fbsql_error -- Retourne le message d'erreur FrontBase

Description

string fbsql_error ( [resource link_identifier] )

Retourne le dernier message d'erreur généré par le serveur FrontBase.

Les erreurs générées par FrontBase ne sont pas automatiquement affichées comme alertes. Il faut utiliser la fonction fbsql_errno() pour connaître leur code d'erreur. Notez que cette fonction ne retourne que le code d'erreur généré par la dernière fonction FrontBase (hormis fbsql_error() et fbsql_errno()) : si vous voulez repérer les erreurs, faites-le dès que les fonctions ont été appelées.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne le texte de l'erreur générée par la dernière fonction fbsql ou '' (une chaîne vide) si aucune erreur n'est survenue.

Exemples

Exemple 1. Exemple avec fbsql_error()

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

Voir aussi

fbsql_errno()
fbsql_warnings()

Précédent | Sommaire | Suivant
fbsql_errno | Niveau supérieur | fbsql_fetch_array


fbsql_fetch_array

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_array -- Lit toute une ligne de résultat dans un tableau

Description

array fbsql_fetch_array ( resource result [, int result_type] )

fbsql_fetch_array() est une combinaison de
fbsql_fetch_row() et
fbsql_fetch_assoc().

Il est important de noter que fbsql_fetch_array() n'est pas significativement plus lente que fbsql_fetch_row(), tandis qu'elle apporte un confort d'utilisation notable.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

result_type

Une constante et peut prendre les valeurs suivantes : FBSQL_ASSOC, FBSQL_NUM, ou FBSQL_BOTH.

Lors de l'utilisation de FBSQL_BOTH, en plus de stocker les indices numériques du tableau de résultats, il stockera les données dans des indices associatifs, en utilisant les noms des champs comme clés.

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée, ou FALSE s'il y a plus de ligne de disponible.

Si deux colonnes (ou plus) ont le même nom, la dernière colonne sera utilisée. Pour accéder aux autres colonnes de même nom, vous devez absolument utiliser les indices numériques.

select t1.f1 as foo t2.f1 as bar from t1, t2

Exemples

Exemple 1. Exemple avec fbsql_fetch_array()

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select user_id, fullname from table");
while ($row = fbsql_fetch_array($result)) {
    echo "user_id: " . $row["user_id"] . "<br />\n";
    echo "user_id: " . $row[0] . "<br />\n";
    echo "Nom complet : " . $row["fullname"] . "<br />\n";
    echo "Nom complet : " . $row[1] . "<br />\n";
}
fbsql_free_result($result);
?>

Voir aussi

fbsql_fetch_row()
fbsql_fetch_assoc()
fbsql_fetch_object()

Précédent | Sommaire | Suivant
fbsql_error | Niveau supérieur | fbsql_fetch_assoc


fbsql_fetch_assoc

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_assoc -- Lit toute une ligne de résultat dans un tableau associatif

Description

array fbsql_fetch_assoc ( resource result )

fbsql_fetch_assoc() est équivalent à fbsql_fetch_array() avec l'option FBSQL_ASSOC. Elle ne retourne qu'un tableau associatif.

C'est le comportement initial de fbsql_fetch_array(). Si vous avez aussi besoin des indices numériques, utilisez fbsql_fetch_array().

Il est important de noter que fbsql_fetch_assoc() n'est pas significativement plus lente que fbsql_fetch_row(), tandis qu'elle apporte un confort d'utilisation notable.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne un tableau associatif contenant la ligne courante du résultat, ou FALSE s'il n'y a plus de lignes.

Si deux colonnes (ou plus) ont le même nom, la dernière colonne sera utilisée. Pour accéder aux autres colonnes de même nom, vous devez absolument utiliser la fonction fbsql_fetch_array().

Exemples

Exemple 1. Exemple avec fbsql_fetch_assoc()

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_assoc($result)) {
    echo $row["user_id"];
    echo $row["fullname"];
}
fbsql_free_result($result);
?>

Voir aussi

fbsql_fetch_row()
fbsql_fetch_array()
fbsql_fetch_object()

Précédent | Sommaire | Suivant
fbsql_fetch_array | Niveau supérieur | fbsql_fetch_field


fbsql_fetch_field

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_field -- Lit des informations sur une colonne dans un résultat, et retourne un objet

Description

object fbsql_fetch_field ( resource result [, int field_offset] )

Sert à lire des informations sur les champs dans le résultat fourni.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

field_offset

L'offset numérique du champs. L'index du champs commence à 0. Si aucun n'est spécifié, le prochain champs qui n'a pas été récupéré par la fonction fbsql_fetch_field() sera retourné.

Valeurs de retour

Retourne un objet contenant les informations sur le champs ou FALSE si une erreur survient.

Les propriétés de l'objet sont :

  • name - Nom de colonne

  • table - Nom de la table d'origine

  • max_length - Taille maximale de la colonne

  • not_null - 1 si la colonne ne peut être nulle

  • type - Type de la colonne

Exemples

Exemple 1. Exemple avec fbsql_fetch_field()

<?php
fbsql_connect($host, $user, $password)
    or die("Impossible de se connecter");
$result = fbsql_db_query("database", "select * from table")
    or die("La requête a échoué");
// lire les données de colonnes
$i = 0;
while ($i < fbsql_num_fields($result)) {
    echo "Information de la colonne $i:<br />\n";
    $meta = fbsql_fetch_field($result);
    if (!$meta) {
        echo "Aucune information disponible<br />\n";
    }
    echo "<pre>
max_length:   $meta->max_length
name:         $meta->name
not_null:     $meta->not_null
table:        $meta->table
type:         $meta->type
</pre>";
    $i++;
}
fbsql_free_result($result);
?>

Voir aussi

fbsql_field_seek()

Précédent | Sommaire | Suivant
fbsql_fetch_assoc | Niveau supérieur | fbsql_fetch_lengths


fbsql_fetch_lengths

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_lengths -- Lit la taille de chaque colonne d'un résultat

Description

array fbsql_fetch_lengths ( resource result )

Stocke les tailles de chaque ligne de résultat retournée par
fbsql_fetch_row(),
fbsql_fetch_array() et
fbsql_fetch_object()
dans un tableau à indices numériques, commençant à 0.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne un tableau, commençant à l'offset 0, qui correspond aux tailles de chaque champs présent dans la dernière ligne récupérée par la fonction fbsql_fetch_row(), ou FALSE si une erreur survient.

Voir aussi

fbsql_fetch_row()

Précédent | Sommaire | Suivant
fbsql_fetch_field | Niveau supérieur | fbsql_fetch_object


fbsql_fetch_object

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_object -- Lit une ligne de résultat sous forme d'objet

Description

object fbsql_fetch_object ( resource result )

fbsql_fetch_object() est similaire à fbsql_fetch_array(), à la différence qu'elle retourne un objet. Nous ne pouvez alors accéder aux données qu'avec les noms des colonnes, et sous la forme de membres d'objet, et non plus avec leurs index (les nombres ne peuvent représenter un membre d'objet).

En terme de vitesse, cette fonction est identique à fbsql_fetch_array() et presque aussi rapide que fbsql_fetch_row() (la différence n'est pas significative).

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne un objet dont les propriétés correspondent à la ligne récupérée ou FALSE s'il n'y a plus de ligne à lire.

Exemples

Exemple 1. Exemple avec fbsql_fetch_object()

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
fbsql_free_result($result);
?>

Voir aussi

fbsql_fetch_array()
fbsql_fetch_row()
fbsql_fetch_assoc()

Précédent | Sommaire | Suivant
fbsql_fetch_lengths | Niveau supérieur | fbsql_fetch_row


fbsql_fetch_row

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_row -- Lit une ligne de résultat sous forme de tableau numérique

Description

array fbsql_fetch_row ( resource result )

fbsql_fetch_row() lit une ligne de données dans le résultat result et crée un tableau indexé.

Le prochain appel à fbsql_fetch_row() va lire la prochaine ligne, ou bien retourner FALSE s'il n'y a plus de ligne à lire.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée où chaque colonne du résultat y est stocké, en commançant par la position 0 ou FALSE s'il n'y a plus de ligne à lire.

Voir aussi

fbsql_fetch_array()
fbsql_fetch_assoc()
fbsql_fetch_object()
fbsql_data_seek()
fbsql_fetch_lengths()
fbsql_result()

Précédent | Sommaire | Suivant
fbsql_fetch_object | Niveau supérieur | fbsql_field_flags


fbsql_field_flags

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_flags -- Lit les options associées à une colonne de résultat

Description

string fbsql_field_flags ( resource result [, int field_offset] )

Lit les options associées à la colonne de résultat spécifié dans le résultat.

Liste de paramètres

result

Un pointeur de résultat, retourné par la fonction fbsql_list_fields().

field_offset

La position numérique du champs. L'index des champs commence à 0.

Valeurs de retour

Retourne les options du champ field_offset, dans le résultat result. Les options sont retournées sous la forme d'un seul mot par option, séparées par des espaces, de façon à faciliter la manipulation avec explode().

Précédent | Sommaire | Suivant
fbsql_fetch_row | Niveau supérieur | fbsql_field_len


fbsql_field_len

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_len -- Retourne la taille d'un champs

Description

int fbsql_field_len ( resource result [, int field_offset] )

Retourne la taille du champs spécifié.

Liste de paramètres

result

Un pointeur de résultat, retourné par la fonction fbsql_list_fields().

field_offset

La position numérique du champs. L'index des champs commence à 0.

Valeurs de retour

Retourne la taille du champs spécifié.

Précédent | Sommaire | Suivant
fbsql_field_flags | Niveau supérieur | fbsql_field_name


fbsql_field_name

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_name -- Lit le nom d'un champs

Description

string fbsql_field_name ( resource result [, int field_index] )

Lit le nom d'un champs à un index spécifié.

Liste de paramètres

result

Un pointeur de résultat, retourné par la fonction fbsql_list_fields().

field_index

La position numérique du champs. L'index des champs commence à 0.

Valeurs de retour

Retourne le nom sous la forme d'une chaîne de caractères ou FALSE si le champs n'existe pas.

Exemples

Exemple 1. Exemple avec fbsql_field_name()

<?php
// La table utilisateur est constituée de trois colonnes :
//   user_id
//   username
//   password

$res = fbsql_db_query("users", "select * from users", $link);

echo fbsql_field_name($res, 0) . "\n";
echo fbsql_field_name($res, 2);
?>

L'exemple ci-dessus va afficher :

user_id
password

Voir aussi

fbsql_field_type()

Précédent | Sommaire | Suivant
fbsql_field_len | Niveau supérieur | fbsql_field_seek


fbsql_field_seek

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_seek -- Déplace le pointeur de résultat

Description

bool fbsql_field_seek ( resource result [, int field_offset] )

Place le pointeur de colonne à la colonne spécifiée. Si le prochain appel à fbsql_fetch_field() n'inclue pas un pointeur de champs, le pointeur du champs spécifié dans fbsql_field_seek() sera retourné.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

field_offset

La position numérique du champs. L'index des champs commence à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fbsql_fetch_field()

Précédent | Sommaire | Suivant
fbsql_field_name | Niveau supérieur | fbsql_field_table


fbsql_field_table

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_table -- Lit le nom de la table d'origine d'un champs

Description

string fbsql_field_table ( resource result [, int field_offset] )

Retourne le nom de la table d'où est issu le champs spécifié.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

field_offset

La position numérique du champs. L'index des champs commence à 0.

Valeurs de retour

Retourne le nom de la table, sous la forme d'une chaîne de caractères.

Précédent | Sommaire | Suivant
fbsql_field_seek | Niveau supérieur | fbsql_field_type


fbsql_field_type

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_type -- Lit le type d'une colonne

Description

string fbsql_field_type ( resource result [, int field_offset] )

fbsql_field_type() est similaire à la fonction fbsql_field_name(). Les arguments sont identiques, mais le type du champ est retourné.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

field_offset

La position numérique du champs. L'index des champs commence à 0.

Valeurs de retour

Retourne le type du champs, sous la forme d'une chaîne de caractères.

Ce type peut être un parmis int, real, string, blob, et d'autres, tel que spécifié dans la documentation de FrontBase.

Exemples

Exemple 1. Exemple avec fbsql_field_type()

<?php

fbsql_connect("localhost", "_SYSTEM", "");
fbsql_select_db("wisconsin");
$result = fbsql_query("SELECT * FROM onek;");
$fields = fbsql_num_fields($result);
$rows   = fbsql_num_rows($result);
$i = 0;
$table = fbsql_field_table($result, $i);
echo "Votre table '" . $table . "' a " . $fields . " colonnes et " . $rows . " lignes <br />";
echo "TLa table dispose des champs suivants <br />";
while ($i < $fields) {
    $type  = fbsql_field_type($result, $i);
    $name  = fbsql_field_name($result, $i);
    $len   = fbsql_field_len($result, $i);
    $flags = fbsql_field_flags($result, $i);
    echo $type . " " . $name . " " . $len . " " . $flags . "<br />";
    $i++;
}
fbsql_close();

?>

Voir aussi

fbsql_field_name()

Précédent | Sommaire | Suivant
fbsql_field_table | Niveau supérieur | fbsql_free_result


fbsql_free_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_free_result -- Libère le résultat de la mémoire

Description

bool fbsql_free_result ( resource result )

Libérer toute la mémoire utilisée par le résultat associé à la ressource result.

fbsql_free_result() n'a besoin d'être appelé que si vous craignez que votre script ne consomme trop de mémoire, lorsqu'une requête retourne de très grands résultats. Toutes les ressources mémoire utilisées par le script sont de toute manière libérées à la fin du script.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
fbsql_field_type | Niveau supérieur | fbsql_get_autostart_info


fbsql_get_autostart_info

(PHP 4 >= 4.1.0, PHP 5)

fbsql_get_autostart_info --

Description

array fbsql_get_autostart_info ( [resource link_identifier] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Précédent | Sommaire | Suivant
fbsql_free_result | Niveau supérieur | fbsql_hostname


fbsql_hostname

(PHP 4 >= 4.0.6, PHP 5)

fbsql_hostname -- Lit ou définit le nom de l'hôte à utiliser avec une connexion

Description

string fbsql_hostname ( resource link_identifier [, string host_name] )

Lit ou définit le nom de l'hôte à utiliser avec une connexion.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

host_name

Si fourni, ce sera le nouveau nom de l'hôte à utiliser.

Valeurs de retour

Retourne le nom de l'hôte courant pour la connexion.

Voir aussi

fbsql_username()
fbsql_password()

Précédent | Sommaire | Suivant
fbsql_get_autostart_info | Niveau supérieur | fbsql_insert_id


fbsql_insert_id

(PHP 4 >= 4.0.6, PHP 5)

fbsql_insert_id -- Lit le dernier identifiant généré par une requête INSERT

Description

int fbsql_insert_id ( [resource link_identifier] )

Retourne l'identifiant généré par la colonne de type DEFAULT UNIQUE, lors de la dernière requête INSERT.

Note : La valeur de la fonction FrontBase SQL fbsql_insert_id() retourne toujours la dernière valeur générée par DEFAULT UNIQUE et n'est jamais annulée entre les requêtes.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne l'identifiant généré depuis la dernière requête INSERT, ou 0 si la dernière requête n'a pas générée une valeur DEFAULT UNIQUE.

Si vous devez sauver cette valeur pour plus tard, n'oubliez pas d'appeler fbsql_insert_id() tout de suite après la requête qui a généré cette valeur.

Voir aussi

fbsql_affected_rows()

Précédent | Sommaire | Suivant
fbsql_hostname | Niveau supérieur | fbsql_list_dbs


fbsql_list_dbs

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_dbs -- Liste les bases de données FBSQL

Description

resource fbsql_list_dbs ( [resource link_identifier] )

Retourne un résultat contenant la liste des bases de données disponibles sur le serveur [link_identifier]. Utilisez la fonction fbsql_tablename() pour passer en revue ce résultat.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un pointeur de résultat ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec fbsql_list_dbs()

$link = fbsql_connect('localhost', 'myname', 'secret');
$db_list = fbsql_list_dbs($link);

while ($row = fbsql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}

L'exemple ci-dessus va afficher quelque chose de similaire à :

database1
database2
database3
...

Note : L'exemple ci-dessus peut aussi bien fonctionner avec la fonction fbsql_fetch_row() ou toute autre similaire.

Voir aussi

fbsql_list_fields()
fbsql_list_tables()

Précédent | Sommaire | Suivant
fbsql_insert_id | Niveau supérieur | fbsql_list_fields


fbsql_list_fields

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_fields -- Liste les champs d'une table FrontBase

Description

resource fbsql_list_fields ( string database_name, string table_name [, resource link_identifier] )

Liste les champs d'une table fournie.

Liste de paramètres

database_name

Le nom de la base de données.

table_name

Le nom de la table.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un pointeur de résultat qui pourra être utilisé avec les fonctions fbsql_field_xxx ou FALSE si une erreur survient.

Erreurs / Exceptions

Une chaîne décrivant l'erreur sera placée dans la variable $phperrmsg, et ce, même si la fonction a été appelé comme ceci : @fbsql(), puis, l'erreur sera également affichée.

Exemples

Exemple 1. Exemple avec fbsql_list_fields()

<?php
$link = fbsql_connect('localhost', 'myname', 'secret');

$fields = fbsql_list_fields("database1", "table1", $link);
$columns = fbsql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo fbsql_field_name($fields, $i) . "\n";;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

field1
field2
field3
...

Voir aussi

fbsql_field_len()
fbsql_field_name()
fbsql_field_type()
fbsql_field_flags()

Précédent | Sommaire | Suivant
fbsql_list_dbs | Niveau supérieur | fbsql_list_tables


fbsql_list_tables

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_tables -- Liste les tables dans une base de données FrontBase

Description

resource fbsql_list_tables ( string database [, resource link_identifier] )

Retourne un pointeur de résultat décrivant la base de données database.

Liste de paramètres

database

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne un pointeur de résultat qui pourra être utilisé avec la fonction fbsql_tablename() pour lire les noms des tables ou FALSE si une erreur survient.

Voir aussi

fbsql_list_fields()
fbsql_list_dbs()

Précédent | Sommaire | Suivant
fbsql_list_fields | Niveau supérieur | fbsql_next_result


fbsql_next_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_next_result -- Déplace le pointeur interne vers le résultat suivant

Description

bool fbsql_next_result ( resource result )

Lorsque vous envoyez plus d'une commande SQL au serveur ou que vous exécutez une procédure stockée avec de multiples résultats, cela va conduire le serveur à retourner plusieurs jeux de lignes. fbsql_next_result() va vérifier l'existence de plusieurs résultats disponibles sur le serveur. Si un autre jeu de résultats existe, fbsql_next_result() va détruire le résultat précédent et préparer la lecture dans les nouvelles lignes.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne TRUE si un jeu de résultats additionnel est disponible, FALSE sinon.

Exemples

Exemple 1. Exemple avec fbsql_next_result()

<?php
$link = fbsql_connect("localhost", "_SYSTEM", "secret");
fbsql_select_db("MyDB", $link);
$SQL = "Select * from table1; select * from table2;";
$rs = fbsql_query($SQL, $link);
do {
    while ($row = fbsql_fetch_row($rs)) {
    }
} while (fbsql_next_result($rs));
fbsql_free_result($rs);
fbsql_close($link);
?>

Précédent | Sommaire | Suivant
fbsql_list_tables | Niveau supérieur | fbsql_num_fields


fbsql_num_fields

(PHP 4 >= 4.0.6, PHP 5)

fbsql_num_fields -- Lit le nombre de champs dans un résultat

Description

int fbsql_num_fields ( resource result )

Retourne le nombre de champs dans le résultat result.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne le nombre de champs, sous la forme d'un entier.

Voir aussi

fbsql_db_query()
fbsql_query()
fbsql_fetch_field()
fbsql_num_rows()

Précédent | Sommaire | Suivant
fbsql_next_result | Niveau supérieur | fbsql_num_rows


fbsql_num_rows

(PHP 4 >= 4.0.6, PHP 5)

fbsql_num_rows -- Lit le nombre de lignes dans un résultat

Description

int fbsql_num_rows ( resource result )

Lit le nombre de lignes dans le jeu de résultats result.

Cette fonction n'est valable qu'avec les commandes SELECT. Pour connaître le nombre de lignes dans une requête INSERT, UPDATE ou DELETE, utilisez fbsql_affected_rows().

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne le nombre de lignes retourné par la dernière requête SELECT.

Exemples

Exemple 1. Exemple avec fbsql_num_rows()

<?php

$link = fbsql_connect("localhost", "username", "password");
fbsql_select_db("database", $link);

$result = fbsql_query("SELECT * FROM table1;", $link);
$num_rows = fbsql_num_rows($result);

echo "$num_rows lignes\n";

?>

Voir aussi

fbsql_affected_rows()
fbsql_connect()
fbsql_select_db()
fbsql_query()

Précédent | Sommaire | Suivant
fbsql_num_fields | Niveau supérieur | fbsql_password


fbsql_password

(PHP 4 >= 4.0.6, PHP 5)

fbsql_password -- Lit ou définit le mot de passe à utiliser avec une connexion

Description

string fbsql_password ( resource link_identifier [, string password] )

Lit ou définit le mot de passe à utiliser avec une connexion.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

password

Si fourni, il sera le nouveau mot de passe pour la connexion.

Valeurs de retour

Retourne le mot de passe courant pour la connexion.

Voir aussi

fbsql_username()
fbsql_hostname()

Précédent | Sommaire | Suivant
fbsql_num_rows | Niveau supérieur | fbsql_pconnect


fbsql_pconnect

(PHP 4 >= 4.0.6, PHP 5)

fbsql_pconnect -- Ouvre une connexion persistante sur un serveur FrontBase

Description

resource fbsql_pconnect ( [string hostname [, string username [, string password]]] )

Ouvre une connexion persistante sur un serveur FrontBase.

Pour choisir le port d'accès au serveur FrontBase, voyez fbsql_select_db().

fbsql_pconnect() se comporte comme fbsql_connect() avec deux différences majeures :

Premièrement, lors de la connexion, fbsql_pconnect() essaie de trouver une connexion permanante déjà ouverte sur cet hôte, avec les mêmes nom d'utilisateur et mot de passe. Si une telle connexion est trouvée, son identifiant est retourné sans ouvrir de nouvelle connexion.

Deuxièmement, la connexion au serveur fbssl ne sera pas terminée avec la fin du script. Au lieu de cela, le lien sera conservé pour un prochain accès (fbsql_close() ne terminera pas une connexion persistante établie par fbsql_pconnect()).

C'est pourquoi ce type de connexion est dit 'persistant'.

Liste de paramètres

hostname

Le nom de l'hôte du serveur. Par défaut, c'est localhost.

username

Le nom d'utilisateur pour la connexion. Par défaut, c'est _SYSTEM.

password

Le mot de passe pour la connexion. Par défaut, c'est une chaîne vide.

Valeurs de retour

Retourne un identifiant de connexion persistant FrontBase en cas de succès, ou FALSE si une erreur survient.

Voir aussi

fbsql_connect()

Précédent | Sommaire | Suivant
fbsql_password | Niveau supérieur | fbsql_query


fbsql_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_query -- Exécute une requête sur un serveur FrontBase

Description

resource fbsql_query ( string query [, resource link_identifier [, int batch_size]] )

Envoie la requête query à la base de données courante, sur le serveur.

Lorsque la requête réussit, vous pouvez utilisez fbsql_num_rows() pour savoir combien de lignes ont été retournées par une requête SELECT, ou fbsql_affected_rows() pour les autres requêtes (DELETE, INSERT, REPLACE et UPDATE).

Liste de paramètres

query

La requête SQL à exécuter.

Note : La requête doit toujours se terminer par un point virgule.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

batch_size

Valeurs de retour

fbsql_query() retourne une ressource en cas de succès, ou FALSE, en cas d'échec. Si TRUE est retourné, cela signifie que la requête est correct et qu'elle peut être exécutée par le serveur. Cela n'indique rien sur le nombre de lignes concernées ou retournées. Il est tout à fait possible qu'une requête réussisse mais qu'aucune ligne ne soit affectée ni retournée.

Pour les requêtes SELECT, fbsql_query() retourne une ressource de résultat, que vous pouvez passer à fbsql_result().

fbsql_query() échouera si vous n'avez pas les droits d'accès sur l'une des bases de données utilisées dans la requête.

Exemples

La requête suivante est invalide, et fbsql_query() échouera puis retournera FALSE :

Exemple 1. Exemple avec fbsql_query()

<?php
$result = fbsql_query("SELECT * WHERE 1=1")
    or die ("Requête invalide");
?>

La requête suivante est invalide si my_col n'est pas une colonne dans la table my_tbl : fbsql_query() échouera puis retournera FALSE :

Exemple 2. Exemple avec fbsql_query()

<?php
$result = fbsql_query ("SELECT my_col FROM my_tbl;")
    or die ("Requête invalide");
?>

Voir aussi

fbsql_affected_rows()
fbsql_db_query()
fbsql_free_result()
fbsql_result()
fbsql_select_db()
fbsql_connect()

Précédent | Sommaire | Suivant
fbsql_pconnect | Niveau supérieur | fbsql_read_blob


fbsql_read_blob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_read_blob -- Lit un BLOB dans une base de données

Description

string fbsql_read_blob ( string blob_handle [, resource link_identifier] )

Lit un BLOB d'une base de données.

Si une sélection contient une colonne de type BLOB et/ou de type CLOB, FrontBase retournera directement les données lors de la lecture. Ce comportement par défaut peut être modifié avec la fonction fbsql_set_lob_mode() pour que les fonctions de lecture ne retournent qu'un identifiant de BLOB ou CLOB. Si un identifiant est lu, il faut utiliser la fonction fbsql_read_blob() pour obtenir la valeur du BLOB.

Liste de paramètres

blob_handle

Un gestionnaire BLOB, retourné par la fonction fbsql_create_blob().

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne une chaîne de caractères contenant les données du BLOB spécifié.

Exemples

Exemple 1. Exemple avec fbsql_read_blob()

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
$sql = "SELECT BLOB_COLUMN FROM BLOB_TABLE;";
$rs = fbsql_query($sql, $link);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] contiendra maintenant les données du blob de la première
// ligne
fbsql_free_result($rs);

$rs = fbsql_query($sql, $link);
fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] contient maintenant un gestionnaire vers les données BLOB
// dans la première ligne
$blob_data = fbsql_read_blob($row_data[0]);
fbsql_free_result($rs);

?>

Voir aussi

fbsql_create_blob()
fbsql_read_clob()
fbsql_set_lob_mode()

Précédent | Sommaire | Suivant
fbsql_query | Niveau supérieur | fbsql_read_clob


fbsql_read_clob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_read_clob -- Lit un CLOB dans une base de données

Description

string fbsql_read_clob ( string clob_handle [, resource link_identifier] )

Lit un CLOB d'une base de données.

Si une sélection contient une colonne de type CLOB et/ou de type BLOB, FrontBase retournera directement les données lors de la lecture. Ce comportement par défaut peut être modifié avec la fonction fbsql_set_lob_mode() pour que les fonctions de lecture ne retournent qu'un identifiant de BLOB ou CLOB. Si un identifiant est lu, il faut utiliser la fonction fbsql_read_clob() pour obtenir la valeur du CLOB.

Liste de paramètres

clob_handle

Un gestionnaire CLOB, retourné par la fonction fbsql_create_clob().

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Retourne une chaîne de caractères contenant les données du CLOB spécifié.

Exemples

Exemple 1. Exemple avec fbsql_read_clob()

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Impossible de se connecter");
$sql = "SELECT CLOB_COLUMN FROM CLOB_TABLE;";
$rs = fbsql_query($sql, $link);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] contiendra maintenant les données du blob de la
// première ligne
fbsql_free_result($rs);

$rs = fbsql_query($sql, $link);
fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] contiendra maintenant un identifiant vers les
// données du clob de la première ligne
$clob_data = fbsql_read_clob($row_data[0]);
fbsql_free_result($rs);

?>

Voir aussi

fbsql_create_clob()
fbsql_read_blob()
fbsql_set_lob_mode()

Précédent | Sommaire | Suivant
fbsql_read_blob | Niveau supérieur | fbsql_result


fbsql_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_result -- Lit des données dans un résultat

Description

mixed fbsql_result ( resource result [, int row [, mixed field]] )

Retourne le contenu d'une cellule depuis un jeu de résultat FrontBase.

Lorsque vous travaillez sur de grands résultats, il est vivement recommandé d'utiliser les fonctions qui lisent toute une ligne d'un coup, plutôt que fbsql_result() qui travaille ligne par ligne. Elles sont beaucoup plus rapides. Notez aussi que les offset numériques sont plus rapides que les offset nominaux.

L'utilisation de fbsql_result() ne doit pas être mélangée avec d'autres fonctions qui utilisent aussi le résultat result.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

row

field

Peut être la position du champs ou le nom du champs, ou le nom de la table, suivi d'un point, suivi du nom du champs (tabledname.fieldname).

Si l'on n'utilise pas d'aliase ('select foo as bar from...'), utilisez plutôt le nom de la colonne.

Note : Le fait de spécifier une position numérique pour l'argument du champs est plus rapide que de spécifier le nom du champs ou la forme tablename.fieldname comme argument.

Valeurs de retour

Voir aussi

Alternatives vivement recommandées :

fbsql_fetch_row()
fbsql_fetch_array()
fbsql_fetch_assoc()
fbsql_fetch_object()

Précédent | Sommaire | Suivant
fbsql_read_clob | Niveau supérieur | fbsql_rollback


fbsql_rollback

(PHP 4 >= 4.0.6, PHP 5)

fbsql_rollback -- Annule une transaction FBSQL

Description

bool fbsql_rollback ( [resource link_identifier] )

Termine la transaction courante en annulant toutes les requêtes émises depuis la dernière validation.

Cette commande n'est utile que si FrontBase est en mode de validation manuelle.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fbsql_autocommit()
fbsql_commit()

Précédent | Sommaire | Suivant
fbsql_result | Niveau supérieur | fbsql_rows_fetched


fbsql_select_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_select_db -- Sélectionne une base de données FrontBase

Description

bool fbsql_select_db ( [string database_name [, resource link_identifier]] )

Sélectionne une base de données FrontBase.

Le client contacte FBExec pour connaître le numéro de port à utiliser pour la connexion à la base de données. Si le nom de la base est un numéro, le système l'utilisera comme numéro de port, et ne le demandera pas à FBExec. Le serveur Frontbase peut être démarré avec la commande : FRontBase -FBExec=No -port=<port number> <database name>.

Tous les prochains appels à fbsql_query() se feront dans la base database_name.

Liste de paramètres

database_name

Le nom de la base de données à sélectionner.

Si la base de données est protégée avec un mot de passe, l'utilisateur doit appeler la fonction fbsql_database_password() avant de sélectionner la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fbsql_connect()
fbsql_pconnect()
fbsql_database_password()
fbsql_query()

Précédent | Sommaire | Suivant
fbsql_rows_fetched | Niveau supérieur | fbsql_set_characterset


fbsql_set_lob_mode

(PHP 4 >= 4.2.0, PHP 5)

fbsql_set_lob_mode -- Modifie le mode de lecture des LOB

Description

bool fbsql_set_lob_mode ( resource result, int lob_mode )

Modifie le mode de lecture des LOB depuis la base de données.

Lorsque des données BLOB ou CLOB sont stockées dans une base de données FrontBase, elles peuvent l'être de manière directe ou indirecte. Si les données sont stockées directement, elles seront automatiquement lues, quelque soit le mode choisi. Si un LOB fait moins de 512 octets, il sera aussi stocké directement.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

lob_mode

Peut être un parmis :

  • FBSQL_LOB_DIRECT - les données LOB sont lues directements. Lorsque les données sont lues dans la base avec fbsql_fetch_row() ou d'autres fonctions de lectures, toutes les colonnes de type CLOB et BLOB seront retournées comme des colonnes habituelles. C'est le comportement par défaut de FrontBase.

  • FBSQL_LOB_HANDLE - Les données LOB sont lues sous forme d'identifiants. Lorsque les données sont lues dans la base avec fbsql_fetch_row() ou d'autres fonctions de lecture, toutes les colonnes de type CLOB et BLOB seront retournées sous la forme d'un identifiant. Cet identifiant sera une chaîne de 27 caractères de long, formatée comme ceci : "@'000000000000000000000000'".

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fbsql_create_blob()
fbsql_create_clob()
fbsql_read_blob()
fbsql_read_clob()

Précédent | Sommaire | Suivant
fbsql_set_characterset | Niveau supérieur | fbsql_set_password


fbsql_set_password

(PHP 5)

fbsql_set_password -- Change le mot de passe de l'utilisateur spécifié

Description

bool fbsql_set_password ( resource link_identifier, string user, string password, string old_password )

Change le mot de passe de l'utilisateur user.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

user

Le nom de l'utilisateur.

password

Le nouveau mot de passe à définir.

old_password

L'ancien mot de passe à remplacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
fbsql_set_lob_mode | Niveau supérieur | fbsql_set_transaction


fbsql_set_transaction

(PHP 4 >= 4.2.0, PHP 5)

fbsql_set_transaction -- Configure le verrouillage et l'isolation de transactions

Description

void fbsql_set_transaction ( resource link_identifier, int locking, int isolation )

Configure le verrouillage et l'isolation de la transaction.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

locking

Le type de verrouillage à définir. Il peut être une constante parmi : FBSQL_LOCK_DEFERRED, FBSQL_LOCK_OPTIMISTIC, ou FBSQL_LOCK_PESSIMISTIC.

isolation

Le type d'isolation à définir. Il peut être une constante parmi : FBSQL_ISO_READ_UNCOMMITTED, FBSQL_ISO_READ_COMMITTED, FBSQL_ISO_REPEATABLE_READ, FBSQL_ISO_SERIALIZABLE, ou FBSQL_ISO_VERSIONED.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
fbsql_set_password | Niveau supérieur | fbsql_start_db


fbsql_start_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_start_db -- Démarre une base de données FBSQL

Description

bool fbsql_start_db ( string database_name [, resource link_identifier [, string database_options]] )

Démarre une base de données FBSQL.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

database_options

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fbsql_db_status()
fbsql_stop_db()

Précédent | Sommaire | Suivant
fbsql_set_transaction | Niveau supérieur | fbsql_stop_db


fbsql_stop_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_stop_db -- Stoppe une base de données FBSQL

Description

bool fbsql_stop_db ( string database_name [, resource link_identifier] )

Stoppe une base de données FBSQL sur un serveur local ou distant.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fbsql_db_status()
fbsql_start_db()

Précédent | Sommaire | Suivant
fbsql_start_db | Niveau supérieur | fbsql_table_name


fbsql_tablename

(PHP 4 >= 4.2.0, PHP 5)

fbsql_tablename -- Alias de de fbsql_table_name()

Description

Cette fonction est un alias de : fbsql_table_name().

Précédent | Sommaire | Suivant
fbsql_table_name | Niveau supérieur | fbsql_username


fbsql_username

(PHP 4 >= 4.0.6, PHP 5)

fbsql_username -- Lit ou définit le nom de login à utiliser avec une connexion

Description

string fbsql_username ( resource link_identifier [, string username] )

Lit ou définit le nom de login à utiliser avec la connexion.

Liste de paramètres

link_identifier

Un identifiant de lien FrontBase retourné par la fonction fbsql_connect() ou la fonction fbsql_pconnect().

Si ce paramètre est optionnel et qu'il n'est pas spécifié, la fonction tentera de trouver un lien ouvert vers le serveur FrontBase et un tel lien n'est pas trouvé, la fonction tentera d'en créer un, de la même façon que si la fonction fbsql_connect() est appelée sans aucun argument.

username

Si fourni, il sera le nouveau nom de l'utilisateur à définir.

Valeurs de retour

Retourne le nom de l'utilisateur courant utilisé avec la connexion, sous la forme d'une chaîne de caractères.

Voir aussi

fbsql_password()
fbsql_hostname()

Précédent | Sommaire | Suivant
fbsql_tablename | Niveau supérieur | fbsql_warnings


fbsql_warnings

(PHP 4 >= 4.0.6, PHP 5)

fbsql_warnings -- Active ou désactive les alertes FrontBase

Description

bool fbsql_warnings ( [bool OnOff] )

Active ou désactive les alertes FrontBase.

Liste de paramètres

OnOff

Si l'on doit activer ou non les alertes.

Valeurs de retour

Retourne TRUE si les alertes sont actives, FALSE sinon.

Voir aussi

fbsql_errno()
fbsql_error()

Précédent | Sommaire | Suivant
fbsql_username | Niveau supérieur | Fonctions FTP


Forms Data Format

Manuel PHP
Précédent Suivant

XXXVII. Forms Data Format

Introduction

Forms Data Format (FDF) est un format de formulaire pour les documents PDF. Vous pouvez lire la documentation (en anglais) à http://partners.adobe.com/asn/acrobat/forms.jsp 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://partners.adobe.com/asn/acrobat/forms.jsp. 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

Vous devez compiler PHP avec --with-fdftk[=DIR].

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 fichier de configuration supporte la hierarchie 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 aux utilisateurs Win32 : Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : fdftk.dll

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

fdf

La plupart des fonctions FDF nécessite une ressource de type fdf comme premier argument. Une ressource fdf est une structure qui représente un fichier FDF ouvert. Vous pouvez créer des ressources fdf avec les fonctions fdf_create(), fdf_open() et fdf_open_string().

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

FDFValue (entier)

FDFStatus (entier)

FDFFile (entier)

FDFID (entier)

FDFFf (entier)

FDFSetFf (entier)

FDFClearFf (entier)

FDFFlags (entier)

FDFSetF (entier)

FDFClrF (entier)

FDFAP (entier)

FDFAS (entier)

FDFAction (entier)

FDFAA (entier)

FDFAPRef (entier)

FDFIF (entier)

FDFEnter (entier)

FDFExit (entier)

FDFDown (entier)

FDFUp (entier)

FDFFormat (entier)

FDFValidate (entier)

FDFKeystroke (entier)

FDFCalculate (entier)

FDFNormalAP (entier)

FDFRolloverAP (entier)

FDFDownAP (entier)

Exemples

Les exemples suivants montrent comment évaluer les données du formulaire.

Exemple 1. Evaluer un document FDF

<?php
// Ouvrir un fichier FDF depuis une chaîne fournie par l'extension PDF
// Le formulaire PDF contient plusieurs champs texte avec les noms de
// volume, date, comment, publisher, preparer, et two boîtes à cocher
// show_publisher et show_preparer.
$fdf = fdf_open_string($HTTP_FDF_DATA);
$volume = fdf_get_value($fdf, "volume");
echo 'Le champ Volume contient la valeur : "<strong>' . $volume . '</strong>"<br />';

$date = fdf_get_value($fdf, "date");
echo 'La valeur du champ date était "<strong>' . $date . '</strong>"<br />';

$comment = fdf_get_value($fdf, "comment");
echo 'La valeur du champ comment était "<strong>' . $comment . '</strong>"<br />';

if (fdf_get_value($fdf, "show_publisher") == "On") {
  $publisher = fdf_get_value($fdf, "publisher");
  echo "La valeur du champ Publisher était : '<strong>" . $publisher . "</strong><br />";
} else
  echo 'La valeur du champ Publisher ne doit pas être affichée.<br />';

if (fdf_get_value($fdf, "show_preparer") == "On") {
  $preparer = fdf_get_value($fdf, "preparer");
  echo 'La valeur du champ Preparer était  "<strong>' . $preparer . '</strong>"<br />';
} else
  echo 'La valeur du champ Preparer ne doit pas être affiché.<br />';
fdf_close($fdf);
?>

Table des matières
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

Précédent | Sommaire | Suivant
fam_suspend_monitor | Niveau supérieur | fdf_add_doc_javascript


fdf_add_doc_javascript

(PHP 4 >= 4.3.0, PHP 5)

fdf_add_doc_javascript -- Ajoute du code javascript dans un document FDF

Description

bool fdf_add_doc_javascript ( resource fdf_document, string script_name, string script_code )

Ajoute le code javascript script_code dans le document fdfdoc, qu'Acrobat ajoutera aux scripts de niveau document, une fois le FDF importé.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

script_name

Le nom du script.

script_code

Le code du script. Il est fortement recommandé d'utiliser '\r' comme séparateur de lignes dans le code script_code.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
Forms Data Format | Niveau supérieur | fdf_add_template


fdf_add_template

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

fdf_add_template -- Ajoute un template dans le document FDF

Description

bool fdf_add_template ( resource fdf_document, int newpage, string filename, string template, int rename )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
fdf_add_doc_javascript | Niveau supérieur | fdf_close


fdf_close

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_close -- Ferme un document FDF

Description

void fdf_close ( resource fdf_document )

Ferme le document FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

fdf_open()

Précédent | Sommaire | Suivant
fdf_add_template | Niveau supérieur | fdf_create


fdf_create

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_create -- Crée un nouveau document FDF

Description

resource fdf_create ( void )

Crée un nouveau document FDF.

Cette fonction est nécessaire pour ceux qui veulent pré-remplir les champs d'un formulaire dans un fichier PDF.

Valeurs de retour

Retourne un gestionnaire de document FDF, ou FALSE si une erreur survient.

Exemples

Exemple 1. Pré-remplir un formulaire PDF

<?php
$outfdf = fdf_create();
fdf_set_value($outfdf, "volume", $volume, 0);

fdf_set_file($outfdf, "http:/testfdf/resultlabel.pdf");
fdf_save($outfdf, "outtest.fdf");
fdf_close($outfdf);
Header("Content-type: application/vnd.fdf");
$fp = fopen("outtest.fdf", "r");
fpassthru($fp);
unlink("outtest.fdf");
?>

Voir aussi

fdf_close()
fdf_save()
fdf_open()

Précédent | Sommaire | Suivant
fdf_close | Niveau supérieur | fdf_enum_values


fdf_enum_values

(PHP 4 >= 4.3.0, PHP 5)

fdf_enum_values -- Appelle une fonction utilisateur à chaque valeur FDF

Description

bool fdf_enum_values ( resource fdf_document, callback function [, mixed userdata] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
fdf_create | Niveau supérieur | fdf_errno


fdf_errno

(PHP 4 >= 4.3.0, PHP 5)

fdf_errno -- Retourne le code d'erreur de la dernière opération FDF

Description

int fdf_errno ( void )

Récupère le code d'erreur de la dernière opération FDF.

Un message d'erreur est accessible via la fonction fdf_error() function.

Valeurs de retour

Retourne le code erreur sous la forme d'un entier ou 0 si aucune erreur n'est survenue.

Voir aussi

fdf_error()

Précédent | Sommaire | Suivant
fdf_enum_values | Niveau supérieur | fdf_error


fdf_error

(PHP 4 >= 4.3.0, PHP 5)

fdf_error -- Retourne le message d'erreur FDF

Description

string fdf_error ( [int error_code] )

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

Précédent | Sommaire | Suivant
fdf_errno | Niveau supérieur | fdf_get_ap


fdf_get_ap

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_ap -- Lit l'apparence d'un champ

Description

bool fdf_get_ap ( resource fdf_document, string field, int face, string filename )

Lit l'apparence du champ field (i.e. la valeur de la clé /AP) et le stocke dans le fichier filename.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

field

face

Les valeurs possibles sont FDFNormalAP, FDFRolloverAP et FDFDownAP.

filename

L'apparence sera stockée dans ce paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
fdf_error | Niveau supérieur | fdf_get_attachment


fdf_get_attachment

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_attachment -- Extrait un fichier intégré dans un document FDF

Description

array fdf_get_attachment ( resource fdf_document, string fieldname, string savepath )

Extrait le fichier fieldname téléchargé par le biais du champ "file selection", puis le stocke dans le fichier savepath.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

fieldname

savepath

Peut être le nom d'un fichier ou bien un dossier dans lequel le fichier téléchargé sera créé sous son nom original. Tout fichier déjà existant avec le même nom sera écrasé.

Note : Il semble qu'il n'y ait pas d'autre moyen pour connaître le nom du fichier téléchargé que de le stocker dans un dossier avec savepath puis de lire son nom dans le dossier.

Valeurs de retour

Le tableau retourné contient les champs suivants :

  • path - chemin de stockage du dossier

  • size - taille du fichier stocké en octets

  • type - Type MIMI du fichier, s'il a été fourni dans le document FDF

Exemples

Exemple 1. Enregistrement d'un fichier téléchargé

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
$data = fdf_get_attachment($fdf, "filename", "/tmpdir");
echo "Le fichier téléchargé est stocké dans $data[path]";
?>

Précédent | Sommaire | Suivant
fdf_get_ap | Niveau supérieur | fdf_get_encoding


fdf_get_encoding

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_encoding -- Lit la valeur de la clé /Encoding

Description

string fdf_get_encoding ( resource fdf_document )

Récupère la valeur de la clé /Encoding.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

Valeurs de retour

Retourne l'encodage, sous la forme d'une chaîne de caractères. Une chaîne vide est retournée si le schéma PDFDocEncoding/Unicode est utilisé.

Voir aussi

fdf_set_encoding()

Précédent | Sommaire | Suivant
fdf_get_attachment | Niveau supérieur | fdf_get_file


fdf_get_file

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_get_file -- Lit la valeur de la clé /F

Description

string fdf_get_file ( resource fdf_document )

Lit la valeur de la clé /F.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

Valeurs de retour

Retourne la valeur de la clé, sous la forme d'une chaîne de caractères.

Voir aussi

fdf_set_file()

Précédent | Sommaire | Suivant
fdf_get_encoding | Niveau supérieur | fdf_get_flags


fdf_get_flags

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_flags -- Lit les attributs d'un champ FDF

Description

int fdf_get_flags ( resource fdf_document, string fieldname, int whichflags )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
fdf_get_file | Niveau supérieur | fdf_get_opt


fdf_get_opt

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_opt -- Lit une valeur dans un tableau de valeur d'un champ FDF

Description

mixed fdf_get_opt ( resource fdf_document, string fieldname [, int element] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
fdf_get_flags | Niveau supérieur | fdf_get_status


fdf_get_status

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_get_status -- Lit la valeur de la clé /STATUS

Description

string fdf_get_status ( resource fdf_document )

Lit la valeur de la clé /STATUS.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

Valeurs de retour

Retourne la valeur de la clé, sous la forme d'une chaîne de caractères.

Voir aussi

fdf_set_status()

Précédent | Sommaire | Suivant
fdf_get_opt | Niveau supérieur | fdf_get_value


fdf_get_value

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_get_value -- Retourne la valeur d'un champ FDF

Description

mixed fdf_get_value ( resource fdf_document, string fieldname [, int which] )

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

Précédent | Sommaire | Suivant
fdf_get_status | Niveau supérieur | fdf_get_version


fdf_get_version

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_version -- Lit le numéro de version de l'API FDF

Description

string fdf_get_version ( [resource fdf_document] )

Retourne le numéro de version FDF pour le document fdf_document, pour l'API si aucun paramètre n'est donné.

Liste de paramètres

fdf_document

Le gestionnaire de document, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

Valeurs de retour

Retourne la version, sous la forme d'une chaîne de caractères. Pour la version actuelle du FDF toolkit 5.0, le numéro de version est 5.0 et le numéro de version de document est 1.2, 1.3 ou 1.4.

Voir aussi

fdf_set_version()

Précédent | Sommaire | Suivant
fdf_get_value | Niveau supérieur | fdf_header


fdf_header

(PHP 4 >= 4.3.0, PHP 5)

fdf_header -- Émet les en-têtes HTTP spécifiques à FDF

Description

void fdf_header ( void )

fdf_header est une fonction de confort, pour émettre les en-têtes HTTP spécifiques à FDF. Elle permet d'envoyer le type Content-type: avec la valeur application/vnd.fdf.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
fdf_get_version | Niveau supérieur | fdf_next_field_name


fdf_next_field_name

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_next_field_name -- Lit le nom du champ FDF suivant

Description

string fdf_next_field_name ( resource fdf_document [, string fieldname] )

Lit le nom du champ FDF suivant. Ce nom pourra être utilisé dans plusieurs fonctions.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères. S'il n'est pas fournis, le premier champ sera retourné.

Valeurs de retour

Retourne le nom du champ, sous la forme d'une chaîne de caractères.

Exemples

Exemple 1. Détecter tous les noms d'un formulaire FDF

<?php
$fdf = fdf_open($HTTP_FDF_DATA);
for ($field = fdf_next_field_name($fdf);
    $field != "";
    $field = fdf_next_field_name($fdf, $field)) {
    echo "field: $field\n";
}
?>

Voir aussi

fdf_get_value()

Précédent | Sommaire | Suivant
fdf_header | Niveau supérieur | fdf_open_string


fdf_open_string

(PHP 4 >= 4.3.0, PHP 5)

fdf_open_string -- Lit un document FDF à partir d'une chaîne de caractères

Description

resource fdf_open_string ( string fdf_data )

Lit un document FDF à partir d'une chaîne de caractères.

Vous pouvez utiliser fdf_open_string() avec la variable $HTTP_FDF_DATA pour traiter des données de formulaires issues de clients distants.

Liste de paramètres

fdf_data

Les données, comme retournés depuis un formulaire PDF ou créés en utilisant les fonctions fdf_create() et fdf_save_string().

Valeurs de retour

Retourne un gestionnaire de document FDF, ou FALSE si une erreur survient.

Exemples

Exemple 1. Accès aux données de formulaire FDF

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
/* ... */
fdf_close($fdf);
?>

Voir aussi

fdf_open()
fdf_close()
fdf_create()
fdf_save_string()

Précédent | Sommaire | Suivant
fdf_next_field_name | Niveau supérieur | fdf_open


fdf_open

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_open -- Ouvre un document FDF

Description

resource fdf_open ( string filename )

Ouvre un document FDF.

Vous pouvez également utiliser la fonction fdf_open_string() pour traiter le résultat d'un formulaire PDF issue d'une méthode POST.

Liste de paramètres

filename

Chemin vers le fichier FDF. Ce fichier doit contenir les données telles que retournées par un formulaire PDF ou créées en utilisant les fonctions fdf_create() et fdf_save().

Valeurs de retour

Retourne un gestionnaire de document FDF, ou FALSE si une erreur survient.

Exemples

Exemple 1. Accéder aux données du formulaire

<?php
// Sauve le fichier FDF dans un fichier temporaire.
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Ouvre le fichier temporaire, et utilise les données.
$fdf = fdf_open("test.fdf");
/* ... */
fdf_close($fdf);
?>

Voir aussi

fdf_open_string()
fdf_close()
fdf_create()
fdf_save()

Précédent | Sommaire | Suivant
fdf_open_string | Niveau supérieur | fdf_remove_item


fdf_remove_item

(PHP 4 >= 4.3.0, PHP 5)

fdf_remove_item -- Configure le cadre FDF de destination pour le formulaire

Description

bool fdf_remove_item ( resource fdf_document, string fieldname, int item )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
fdf_open | Niveau supérieur | fdf_save_string


fdf_save_string

(PHP 4 >= 4.3.0, PHP 5)

fdf_save_string -- Retourne un document FDF sous forme d'une chaîne de caractères

Description

string fdf_save_string ( resource fdf_document )

Retourne un document FDF sous forme d'une chaîne de caractères.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

Valeurs de retour

Retourne le document, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple 1. Lire un document FDF sous forme de chaîne de caractères

<?php
$fdf = fdf_create();
fdf_set_value($fdf, "foo", "bar");
$str = fdf_save_string($fdf);
fdf_close($fdf);
echo $str;
?>

L'exemple ci-dessus va afficher :

%FDF-1.2
%âãÏÓ
1 0 obj
<<
/FDF << /Fields 2 0 R >>
>>
endobj
2 0 obj
[
<< /T (foo)/V (bar)>>
]
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

Voir aussi

fdf_open_string()
fdf_close()
fdf_create()
fdf_save()

Précédent | Sommaire | Suivant
fdf_remove_item | Niveau supérieur | fdf_save


fdf_save

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_save -- Sauvegarde un document FDF

Description

bool fdf_save ( resource fdf_document [, string filename] )

Sauvegarde un document FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

filename

Si fourni, le FDF résultant sera écrit dans ce paramètre. Sinon, cette fonction écrira le FDF dans la sortie standard PHP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fdf_close()
fdf_create()
fdf_save_string()

Précédent | Sommaire | Suivant
fdf_save_string | Niveau supérieur | fdf_set_ap


fdf_set_ap

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_set_ap -- Fixe l'apparence d'un champ FDF

Description

bool fdf_set_ap ( resource fdf_document, string field_name, int face, string filename, int page_number )

Fixe l'apparence d'un champ FDF (i.e. la valeur de la clé /AP).

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

field_name

face

Les valeurs possibles : FDFNormalAP, FDFRolloverAP et FDFDownAP.

filename

page_number

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
fdf_save | Niveau supérieur | fdf_set_encoding


fdf_set_encoding

(PHP 4 >= 4.1.0, PHP 5)

fdf_set_encoding -- Modifie l'encodage des caractères

Description

bool fdf_set_encoding ( resource fdf_document, string encoding )

Modifie l'encodage des caractères du document FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

encoding

Le nom de l'encodage. Les valeurs suivantes sont supportées : "Shift-JIS", "UHC", "GBK" et "BigFive".

Une chaîne de caractères vide replace la valeur par défaut de l'encodage au schéma PDFDocEncoding/Unicode.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
fdf_set_ap | Niveau supérieur | fdf_set_file


fdf_set_file

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_set_file -- Crée un document PDF pour y afficher des données FDF

Description

bool fdf_set_file ( resource fdf_document, string url [, string target_frame] )

Crée un document PDF pour y afficher des données FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

url

Doit être fourni sous la forme d'une URL absolue.

target_frame

Utilisez ce paramètre pour spécifier la frame dans laquelle le document sera affiché. Vous pouvez également définir la valeur par défaut de ce paramètre en utilisant la fonction fdf_set_target_frame().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
fdf_set_encoding | Niveau supérieur | fdf_set_flags


fdf_set_flags

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_flags -- Modifie une option d'un champ

Description

bool fdf_set_flags ( resource fdf_document, string fieldname, int whichFlags, int newFlags )

Modifie une option d'un champ.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

whichFlags

newFlags

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fdf_set_opt()

Précédent | Sommaire | Suivant
fdf_set_file | Niveau supérieur | fdf_set_javascript_action


fdf_set_javascript_action

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_javascript_action -- Modifie l'action javascript d'un champ

Description

bool fdf_set_javascript_action ( resource fdf_document, string fieldname, int trigger, string script )

Modifie l'action javascript d'un champ donné.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

trigger

script

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fdf_set_submit_form_action()

Précédent | Sommaire | Suivant
fdf_set_flags | Niveau supérieur | fdf_set_on_import_javascript


fdf_set_on_import_javascript

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_on_import_javascript -- Ajoute du code Javascript à être exécuté lorsque Acrobat ouvre un FDF

Description

bool fdf_set_on_import_javascript ( resource fdf_document, string script, bool before_data_import )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

fdf_add_doc_javascript()
fdf_set_javascript_action()

Précédent | Sommaire | Suivant
fdf_set_javascript_action | Niveau supérieur | fdf_set_opt


fdf_set_opt

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_opt -- Modifie une option d'un champ

Description

bool fdf_set_opt ( resource fdf_document, string fieldname, int element, string str1, string str2 )

Modifie une option d'un champ donné.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction fdf_create(), la fonction fdf_open() ou la fonction fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

element

str1

str2

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fdf_set_flags()

Précédent | Sommaire | Suivant
fdf_set_on_import_javascript | Niveau supérieur | fdf_set_status


fdf_set_status

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_set_status -- Fixe la valeur de la clé /STATUS

Description

bool fdf_set_status ( resource fdf_document, string status )

Fixe la valeur de la clé /STATUS. Lorsqu'un client reçoit un FDF avec un statut positionné, sa valeur sera présenté dans une boîte d'alerte.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

status

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fdf_get_status()

Précédent | Sommaire | Suivant
fdf_set_opt | Niveau supérieur | fdf_set_submit_form_action


fdf_set_submit_form_action

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_submit_form_action -- Modifie l'action d'un formulaire

Description

bool fdf_set_submit_form_action ( resource fdf_document, string fieldname, int trigger, string script, int flags )

Modifie l'action d'un formulaire.

Liste de paramètres

fdf_document

Le gestionnaire de document, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

trigger

script

flags

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fdf_set_javascript_action()

Précédent | Sommaire | Suivant
fdf_set_status | Niveau supérieur | fdf_set_target_frame


fdf_set_target_frame

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_target_frame -- Configure le cadre de destination pour l'affichage du formulaire

Description

bool fdf_set_target_frame ( resource fdf_document, string frame_name )

Configure le cadre de destination pour l'affichage du résultat PDF défini par fdf_save_file().

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

frame_name

Le nom du cadre, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fdf_save_file()

Précédent | Sommaire | Suivant
fdf_set_submit_form_action | Niveau supérieur | fdf_set_value


fdf_set_value

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_set_value -- Modifie la valeur d'un champ FDF

Description

bool fdf_set_value ( resource fdf_document, string fieldname, mixed value [, int isName] )

Modifie la valeur d'un champ FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

fieldname

Nom du champ FDF, sous la forme d'une chaîne de caractères.

value

Ce paramètre devra être stocké comme une chaîne de caractères même si c'est un tableau. Dans ce cas, tous les éléments du tableau seront stockés comme un tableau de valeur.

isName

Note : Dans les anciennes versions de la suite FDF, le dernier paramètre déterminait si la valeur du champs devait être convertie en un nom PDF (isname = 1) ou positionnée comme une chaîne de caractères (isname = 0).

La valeur n'est plus dans la suite actuelle, version 5.0. Pour des raisons de compatibilité, cela est toujours supporté comme un paramètre optionnel depuis PHP 4.3, mais ignoré en interne.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Historique

Version | Description
4.3.0 | Le support des tableaux dans le paramètre value a été ajouté.

Voir aussi

fdf_get_value()
fdf_remove_item()

Précédent | Sommaire | Suivant
fdf_set_target_frame | Niveau supérieur | fdf_set_version


fdf_set_version

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_version -- Modifie le numéro de version du fichier FDF

Description

bool fdf_set_version ( resource fdf_document, string version )

Modifie le numéro de version du document FDF courant.

Certaines fonctionnalités supportées par cette extension ne sont disponibles que pour les nouvelles versions de FDF.

Liste de paramètres

fdf_document

Le gestionnaire de document FDF, retourné par la fonction
fdf_create(), la fonction
fdf_open() ou la fonction
fdf_open_string().

version

Le numéro de version. Pour le toolkit FDF courant, ce peut être 1.2, 1.3 ou 1.4.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fdf_get_version()

Précédent | Sommaire | Suivant
fdf_set_value | Niveau supérieur | Fonctions Fileinfo


Fonctions filePro

Manuel PHP
Précédent Suivant

XXXIX. Fonctions filePro

Introduction

Ces fonctions permettent de lire des données enregistrées dans des bases de données non modifiables filePro.

filePro est une marque de fP Technologies, Inc. Vous pouvez avoir plus de détails sur filePro en visitant http://www.fptech.com/.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.2.0.

Installation

Le support de filePro n'est pas activé par défaut dans PHP. Pour utiliser le support fourni dans la distribution, qui assure l'accès en lecture-seule, vous devez compiler PHP avec l'option --enable-filepro.

Table des matières
filepro_fieldcount -- Retourne le nombre de champs dans une base filePro
filepro_fieldname -- Retourne le nom d'un champ filePro
filepro_fieldtype -- Retourne le type d'un champ filePro
filepro_fieldwidth -- Retourne la taille d'un champ filePro
filepro_retrieve -- Retourne la valeur d'un champ filePro
filepro_rowcount -- Retourne le nombre de lignes dans une base filePro
filepro -- Lit et vérifie un fichier

Précédent | Sommaire | Suivant
finfo_set_flags | Niveau supérieur | filepro_fieldcount


filepro_fieldcount

(PHP 3, PHP 4, PHP 5)

filepro_fieldcount -- Retourne le nombre de champs dans une base filePro

Description

int filepro_fieldcount ( void )

Retourne le nombre de champs (ou colonnes) d'une base filePro.

Valeurs de retour

Retourne le nombre de champs d'une base de donnée filePro ouverte, ou FALSE si une erreur survient.

Voir aussi

filepro()

Précédent | Sommaire | Suivant
Fonctions filePro | Niveau supérieur | filepro_fieldname


filepro_fieldname

(PHP 3, PHP 4, PHP 5)

filepro_fieldname -- Retourne le nom d'un champ filePro

Description

string filepro_fieldname ( int field_number )

Retourne le nom du champ d'index field_number.

Liste de paramètres

field_number

Le numéro du champs.

Valeurs de retour

Retourne le nom du champs sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
filepro_fieldcount | Niveau supérieur | filepro_fieldtype


filepro_fieldtype

(PHP 3, PHP 4, PHP 5)

filepro_fieldtype -- Retourne le type d'un champ filePro

Description

string filepro_fieldtype ( int field_number )

Retourne le type du champ d'index field_number.

Liste de paramètres

field_number

Le numéro du champs.

Valeurs de retour

Retourne le type du champs sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
filepro_fieldname | Niveau supérieur | filepro_fieldwidth


filepro_fieldwidth

(PHP 3, PHP 4, PHP 5)

filepro_fieldwidth -- Retourne la taille d'un champ filePro

Description

int filepro_fieldwidth ( int field_number )

Retourne la taille du champ d'index field_number.

Liste de paramètres

field_number

Le numéro du champs.

Valeurs de retour

Retourne la taille du champs sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
filepro_fieldtype | Niveau supérieur | filepro_retrieve


filepro_retrieve

(PHP 3, PHP 4, PHP 5)

filepro_retrieve -- Retourne la valeur d'un champ filePro

Description

string filepro_retrieve ( int row_number, int field_number )

Retourne les données à partir de l'endroit spécifié dans la base de données.

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Liste de paramètres

row_number

Le numéro de ligne. Doit être compris entre 0 et le nombre total de lignes moins une (0..filepro_rowcount() - 1)

field_number

Le numéro du champs. Doit être compris entre 0 et le nombre total de champs moins un (0..filepro_fieldcount() - 1)

Valeurs de retour

Retourne les données spécifiées, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
filepro_fieldwidth | Niveau supérieur | filepro_rowcount


filepro_rowcount

(PHP 3, PHP 4, PHP 5)

filepro_rowcount -- Retourne le nombre de lignes dans une base filePro

Description

int filepro_rowcount ( void )

Retourne le nombre de lignes dans une base filePro.

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Valeurs de retour

Retourne le nombre de lignes d'une base de données filePro ouverte, ou FALSE si une erreur survient.

Voir aussi

filepro()

Précédent | Sommaire | Suivant
filepro_retrieve | Niveau supérieur | filepro


filepro

(PHP 3, PHP 4, PHP 5)

filepro -- Lit et vérifie un fichier

Description

bool filepro ( string directory )

Lit et vérifie un fichier, puis enregistre le nombre de champs et de lignes.

Aucun verrouillage n'est pratiqué : il vaut alors mieux ne pas modifier la base filePro lorsqu'elle est ouverte par PHP.

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Liste de paramètres

directory

Le dossier du fichier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
filepro_rowcount | Niveau supérieur | Système de fichiers


Système de fichiers

Manuel PHP
Précédent Suivant

XL. Système de fichiers

Introduction

Pré-requis

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.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
allow_url_fopen | "1" | PHP_INI_SYSTEM | PHP_INI_ALL dans PHP <= 4.3.4. Disponible depuis PHP 4.0.4.
allow_url_include | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.2.0.
user_agent | NULL | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
default_socket_timeout | "60" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
from | "" | PHP_INI_ALL |
auto_detect_line_endings | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

allow_url_fopen booléen

Cette option active les versions étendues des fonctions d'accès aux fichiers, qui savent exploiter les URL. Les extensions par défaut permettent d'accéder aux fichiers distants avec les protocoles FTP ou HTTP. Certaines extensions comme zlib, peuvent ajouter d'autres fonctionnalités.

Note : Cette option peut seulement être définie dans le php.ini pour des raisons de sécurité.

Note : Cette option a été introduite immédiatement après la publication de la version 4.0.3. Pour les versions jusqu'à la, vous ne pouvez désactiver cette fonctionnalité qu'au moment de la compilation, avec l'option --disable-url-fopen-wrapper.

Avertissement

Sous Windows, dans les versions antérieures à la version 4.3, les fonctions suivantes ne supportent pas l'accès aux fichiers distants : include(), include_once(), require(), require_once() et les fonctions imagecreatefromXXX de l'extension Référence LXV, Images.

allow_url_include booléen

Cette option permet l'utilisation des gestionnaires fopen 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 positionné à 'on'.

user_agent string

Définit le type d'"user agent" (Définition du navigateur web) utilisé par PHP.

default_socket_timeout entier

Durée d'expiration (en secondes) pour les flots basés sur les sockets.

Note : Cette option de configuration a été introduite en PHP 4.3.

from string

Définit le mot de passe FTP en mode anonyme (en général, votre adresse email).

auto_detect_line_endings booléen

Lorsque cette option est activée, PHP va examiner les données lues par fgets() et file() pour voir si le fichier utilise les conventions de ligne de Unix, MS-Dos ou Macintosh.

Cela permet à PHP de fonctionner avec des systèmes Macintosh, mais par défaut, cette option est désactivée, car cette détection impose un légère pénalité en temps de traitement, mais aussi parce que ceux qui utilisent les retours chariots comme séparateurs auront des soucis de compatibilité.

Note : Cette option de configuration a été introduite en PHP 4.3.

Types de ressources

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

GLOB_BRACE (entier)

GLOB_ONLYDIR (entier)

GLOB_MARK (entier)

GLOB_NOSORT (entier)

GLOB_NOCHECK (entier)

GLOB_NOESCAPE (entier)

PATHINFO_DIRNAME (entier)

PATHINFO_BASENAME (entier)

PATHINFO_EXTENSION (entier)

PATHINFO_FILENAME (entier)

Since PHP 5.2.0.

FILE_USE_INCLUDE_PATH (entier)

FILE_APPEND (entier)

FILE_IGNORE_NEW_LINES (entier)

FILE_SKIP_EMPTY_LINES (entier)

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 Annexe N.

Table des matières
basename -- Sépare le nom du fichier et le nom du dossier
chgrp -- Change le groupe propriétaire d'un fichier
chmod -- Change le mode du fichier
chown -- Change le groupe propriétaire du fichier
clearstatcache -- Efface le cache de stat()
copy -- Copie un fichier
delete -- Effacer
dirname -- Renvoie le nom du dossier
disk_free_space -- Renvoie l'espace disque disponible dans le répertoire
disk_total_space -- Retourne la taille d'un dossier
diskfreespace -- Alias de disk_free_space()
fclose -- Ferme un fichier
feof -- Teste la fin du fichier
fflush -- Envoie tout le contenu généré dans un fichier
fgetc -- Lit un caractère dans un fichier
fgetcsv -- Renvoie la ligne courante et cherche les champs CSV
fgets -- Renvoie la ligne courante sur laquelle se trouve le pointeur du fichier
fgetss -- Renvoie la ligne courante du fichier et élimine les balises HTML
file_exists -- Vérifie si un fichier existe
file_get_contents -- Lit tout un fichier dans une chaîne
file_put_contents -- Ecrit une chaîne 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 dernier accès à un inode
filegroup -- Lire le nom du groupe
fileinode -- Renvoie le numéro d'inode du fichier
filemtime -- Renvoie la date de dernière modification du fichier
fileowner -- Renvoie le nom du propriétaire du fichier
fileperms -- Renvoie les permissions affectées à un fichier
filesize -- Renvoie la taille d'un fichier
filetype -- Retourne le type de fichier
flock -- Verrouille le fichier
fnmatch -- Repère un fichier à partir d'un masque
fopen -- Ouverture d'un fichier ou d'une URL
fpassthru -- Affiche le reste du fichier
fputcsv -- Formate une ligne en CSV et l'écrit dans un fichier
fputs -- Alias de fwrite()
fread -- Lecture du fichier en mode binaire
fscanf -- Analyse un fichier en fonction d'un format
fseek -- Modifie la position du pointeur de fichier
fstat -- Lit les informations sur un fichier à partir d'un pointeur de fichier
ftell -- Renvoie la position du pointeur du fichier
ftruncate -- Tronque un fichier
fwrite -- Ecrit 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 est autorisé en lecture
is_uploaded_file -- Indique si le fichier a été téléchargé par HTTP POST
is_writable -- Indique si un fichier est autorisé en écriture
is_writeable -- Alias de is_writable()
lchgrp -- Change l'appartenance du groupe d'un lien symbolique
lchown -- Change l'appartenance du propriétaire d'un lien symbolique
link -- Crée un lien
linkinfo -- Renvoie les informations d'un lien
lstat -- Retourne les informations sur n fichier ou un lien symbolique
mkdir -- Crée un dossier
move_uploaded_file -- Déplace un fichier téléchargé
parse_ini_file -- Traite un fichier 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 nom du fichier vers lequel pointe un lien symbolique
realpath -- Retourne le chemin canonique absolu
rename -- Renomme un fichier ou un dossier
rewind -- Replace le pointeur de fichier au début
rmdir -- Efface un dossier
set_file_buffer -- Alias de stream_set_write_buffer()
stat -- Renvoie les informations à propos d'un fichier
symlink -- Crée un lien symbolique
tempnam -- Crée un fichier avec un nom unique
tmpfile -- Crée un fichier temporaire
touch -- Modifie la date de modification et de dernier accès d'un fichier
umask -- Change le "umask" courant
unlink -- Efface un fichier

Précédent | Sommaire | Suivant
filepro | Niveau supérieur | basename


basename

(PHP 3, PHP 4, PHP 5)

basename -- Sépare le nom du fichier et le nom du dossier

Description

string basename ( string path [, string suffix] )

basename() prend en paramètre path, le chemin complet d'un fichier et en extrait le nom du fichier. Si suffix est fourni, le suffixe sera aussi supprimé.

Sous Windows, les caractères (/) et anti-slash (\) sont utilisés comme séparateurs de dossier. Sous les autres OS, seul le caractère slash (/) est utilisé.

Exemple 1. Exemple avec basename()

<?php
$path = "/home/httpd/html/index.php";
$file = basename ($path);        // $file is set to "index.php"
$file = basename ($path,".php"); // $file is set to "index"
?>

Note : Le paramètre suffix a été ajouté en PHP 4.1.0.

Voir aussi dirname().

Précédent | Sommaire | Suivant
Système de fichiers | Niveau supérieur | chgrp


chgrp

(PHP 3, PHP 4, PHP 5)

chgrp -- Change le groupe propriétaire d'un fichier

Description

bool chgrp ( string filename, mixed group )

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

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi chown() et chmod().

Précédent | Sommaire | Suivant
basename | Niveau supérieur | chmod


chmod

(PHP 3, PHP 4, PHP 5)

chmod -- Change le mode du fichier

Description

bool chmod ( string filename, int mode )

chmod() remplace le mode du fichier filename par le mode mode.

Il est à noter que le mode mode est considéré comme un nombre en notation octale. Afin de vous en assurer, vous pouvez préfixer cette valeur par un zéro (mode):

Exemple 1. Comment utiliser chmod()

chmod ("/somedir/somefile", 755);
// notation décimale : probablement faux
chmod ("/somedir/somefile", "u+rwx,go+rx");
// chaîne : incorrect
chmod ("/somedir/somefile", 0755);
// notation octale : valeur du mode correcte

Le paramètre mode est constitué de trois valeurs octales qui spécifient les droits pour le propriétaire, le groupe du propriétaire et les autres, respectivement. Chaque composant peut être calculé en ajoutant les droits désirés. Le chiffre 1 donne les droits d'exécution, le chiffre 2 les droits d'écriture et le chiffre 4 les droits de lecture. Ajoutez simplement ces nombres pour spécifier les droits voulus. Vous pouvez aussi lire le manuel des systèmes Unix avec man 1 chmod et man 2 chmod.

Exemple 2. Comment utiliser le paramètre mode de chmod()

// Lecture et écriture pour le propriétaire, rien pour les autres
chmod ("/un_dossier/un_fichier", 0600);

// Lecture et écriture pour le propriétaire, lecture pour les autres
chmod ("/un_dossier/un_fichier", 0644);

// Tous pour le propriétaire, lecture et exécution pour les autres
chmod ("/un_dossier/un_fichier", 0755);

// Tout pour le propriétaire, lecture exécution pour le groupe, rien pour les autres
chmod ("/un_dossier/un_fichier", 0750);

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.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Lorsque le safe mode est activé, PHP vérifie si les fichiers et dossiers que vous allez utiliser ont le même UID (propriétaire) que le script qui est en cours d'exécution. De plus, vous ne pouvez pas modifier les SUID, SGID et sticky bits.

Note : Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Voir aussi chown() et chgrp().

Précédent | Sommaire | Suivant
chgrp | Niveau supérieur | chown


chown

(PHP 3, PHP 4, PHP 5)

chown -- Change le groupe propriétaire du fichier

Description

bool chown ( string filename, mixed user )

chown() change le groupe propriétaire courant du fichier filename en user. Seul le super-utilisateur (root) peut changer arbitrairement le propriétaire d'un fichier.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi chmod().

Précédent | Sommaire | Suivant
chmod | Niveau supérieur | clearstatcache


clearstatcache

(PHP 3, PHP 4, PHP 5)

clearstatcache -- Efface le cache de stat()

Description

void clearstatcache ( void )

L'appel à la fonction stat() ou lstat() est relativement coûteux en terme 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 bien que PHP ne met pas en cache les informations concernant un fichier inexistant. Si vous appelez file_exists() sur un fichier qui n'existe pas, la fonction retournera FALSE jusqu'à ce que vous créiez le fichier. Si vous créez le fichier, la fonction retournera TRUE même si vous effacez le fichier.

Note : Cette fonction met en cache des informations sur les fichiers. Vous n'avez donc besoin d'appeler clearstatcache() que si vous faites des opérations multiples sur le dossier, et que vous voulez avoir une version récente des informations.

Les fonctions affectées sont :
stat(),
lstat(),
file_exists(),
is_writable(),
is_readable(),
is_executable(),
is_file(),
is_dir(),
is_link(),
filectime(),
fileatime(),
filemtime(),
fileinode(),
filegroup(),
fileowner(),
filesize(),
filetype(), et
fileperms().

Précédent | Sommaire | Suivant
chown | Niveau supérieur | copy


copy

(PHP 3, PHP 4, PHP 5)

copy -- Copie un fichier

Description

bool copy ( string source, string dest )

copy() fait une copie du fichier source vers le fichier dest. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec copy()

<?php
$file = 'example.txt';
$newfile = 'example.txt.bak';

if (!copy($file, $newfile)) {
    echo "La copie du fichier $file n'a pas réussi...\n";
}
?>

Si vous souhaitez déplacer un fichier, utilisez la fonction rename().

Note : Depuis PHP 4.3.0, les deux paramètres source et dest peuvent être des URL si les gestionnaires d'URL ont été activés. Voyez la fonction fopen() pour plus de détails. Si dest est une URL, la copie peut échouer si ce protocole ne supporte pas l'écrasement de fichiers existants.

Avertissement

Si le fichier de destination dest existe déjà, il sera écrasé.

Note : Compatibilité avec Windows : si vous copiez un fichier avec une taille nulle, copy() retournera FALSE, mais le fichier sera correctement copié.

Voir aussi move_uploaded_file(), rename() et la section du manuel concernant la gestion des téléchargements de fichiers.

Précédent | Sommaire | Suivant
clearstatcache | Niveau supérieur | delete


delete

(no version information, might be only in CVS)

delete -- Effacer

Description

void delete ( string file )

Ceci est une page d'entrée du manuel pour ceux qui recherchent en fait la fonction unlink() ou unset().

Voir aussi unlink() et unset().

Précédent | Sommaire | Suivant
copy | Niveau supérieur | dirname


dirname

(PHP 3, PHP 4, PHP 5)

dirname -- Renvoie le nom du dossier

Description

string dirname ( string path )

dirname() retourne le nom du dossier qui contient le fichier ou dossier path.

Sous Windows, les slash (/) et anti-slash (\) sont utilisés comme séparateurs de dossier. Dans les autres environnements, seul le slash (/) est utilisé.

Exemple 1. Exemple avec dirname()

<?php
$path = "/etc/passwd";
$file = dirname ($path);
// $file vaut "/etc"
?>

Note : En PHP 4.0.3, dirname() a été modifié pour être compatible POSIX. Cela signifie notamment que s'il n'y a pas de slash dans le paramètre path, un point ('.') est retourné, indiquant le dossier courant. Sinon, la chaîne retournée est path avec le composant final / supprimé. Notez que cela signifie que vous allez obtenir un slash ou un point là où l'ancien comportement de dirname() retournait une chaîne vide.

dirname() a changé de comportement en PHP 4.3.0. Voyez les exemples suivants :

Exemple 2. Différents comportements de dirname()

<?php

//avant PHP 4.3.0
dirname('c:/'); // retourne '.'

//apres PHP 4.3.0
dirname('c:/'); // retourne 'c:'

?>

dirname() a été protégé des données binaires depuis PHP 5.0.0.

Voir aussi
basename(),
pathinfo() et
realpath().

Précédent | Sommaire | Suivant
delete | Niveau supérieur | disk_free_space


disk_free_space

(PHP 4 >= 4.1.0, PHP 5)

disk_free_space -- Renvoie l'espace disque disponible dans le répertoire

Description

float disk_free_space ( string directory )

disk_free_space() retournera le nombre d'octets disponibles sur le disque contenant le dossier directory.

Exemple 1. Exemple avec disk_free_space()

<?php
$df = disk_free_space("/");
// $df contient le nombre d'octets libres sur "/"
?>

Note : Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Voir aussi disk_total_space().

Précédent | Sommaire | Suivant
dirname | Niveau supérieur | disk_total_space


disk_total_space

(PHP 4 >= 4.1.0, PHP 5)

disk_total_space -- Retourne la taille d'un dossier

Description

float disk_total_space ( string directory )

disk_total_space() lit récursivement toutes les tailles du dossier directory et retourne la somme en octets. directory peut être aussi une partition de disque.

Exemple 1. Exemple avec disk_total_space()

<?php
$df = disk_total_space("/"); // $df contient le nombre d'octets du dossier "/"
?>

Note : Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Voir aussi disk_free_space().

Précédent | Sommaire | Suivant
disk_free_space | Niveau supérieur | diskfreespace


diskfreespace

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

diskfreespace -- Alias de disk_free_space()

Description

Cette fonction est un alias de : disk_free_space().

Précédent | Sommaire | Suivant
disk_total_space | Niveau supérieur | fclose


fclose

(PHP 3, PHP 4, PHP 5)

fclose -- Ferme un fichier

Description

bool fclose ( resource handle )

fclose() ferme le fichier handle.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Le pointeur de fichier doit être valide et doit avoir été correctement ouvert par fopen() ou fsockopen().

Exemple 1. Exemple avec fclose()

<?php

$handle = fopen('un_fichier.txt', 'r');

fclose($handle);

?>

Précédent | Sommaire | Suivant
diskfreespace | Niveau supérieur | feof


feof

(PHP 3, PHP 4, PHP 5)

feof -- Teste la fin du fichier

Description

bool feof ( resource handle )

feof() retourne TRUE si le pointeur handle est à la fin du fichier ou si une erreur survient, sinon, retourne FALSE.

Avertissement

Si une connexion ouverte avec fsockopen() n'est pas fermée par le serveur, feof() attendra qu'un délai limite ne soit atteint pour retourner TRUE. Le délai par défaut vaut 60 secondes. Vous devez utiliser la fonction stream_set_timeout() pour modifier cette valeur.

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

Avertissement

Si le pointeur de fichier passé n'est pas valide, vous obtiendrez une boucle infinie parceque EOF échoue à retourner TRUE.

Exemple 1. Exemple avec feof() et un pointeur de fichier invalide

<?php
// Si le fichier ne peut être lu ou n'existe pas, la fonction fopen retourne FALSE
$file = @fopen("no_such_file", "r");

// FALSE issu de fopen emmetra une alerte et fera quel'on aura une boucle infinie ici
    while (!feof($file)) {
}

fclose($file);
?>

Précédent | Sommaire | Suivant
fclose | Niveau supérieur | fflush


fflush

(PHP 4 >= 4.0.1, PHP 5)

fflush -- Envoie tout le contenu généré dans un fichier

Description

bool fflush ( resource handle )

fflush() force l'écriture de toutes les données bufferisées dans le fichier désigné par handle. fflush() retourne TRUE en cas de succès, et FALSE sinon.

handle est un pointeur de fichier ouvert avec fopen(), popen(), ou fsockopen().

Précédent | Sommaire | Suivant
feof | Niveau supérieur | fgetc


fgetc

(PHP 3, PHP 4, PHP 5)

fgetc -- Lit un caractère dans un fichier

Description

string fgetc ( resource handle )

fgetc() retourne une chaîne contenant un seul caractère, lu depuis le fichier pointé par handle. fgetc() retourne FALSE à la fin du fichier (contrairement à feof()).

Le pointeur de fichier doit être valide, et avoir été correctement ouvert par fopen(), popen(), ou fsockopen().

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemple 1. Exemple avec fgetc()

<?php
$fp = fopen('unfichier.txt', 'r');
if (!$fp) {
    echo "Impossible d'ouvrir le fichier unfichier.txt";
}
while (false !== ($char = fgetc($fp))) {
    echo "$char\n";
}
?>

Note : Cette fonction gère les chaînes binaires.

Voir aussi
fread(),
fopen(),
popen(),
fsockopen() et
fgets().

Précédent | Sommaire | Suivant
fflush | Niveau supérieur | fgetcsv


fgetcsv

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

fgetcsv -- Renvoie la ligne courante et cherche les champs CSV

Description

array fgetcsv ( resource handle [, int length [, string delimiter [, string enclosure]]] )

handle

Un pointeur valide sur un fichier ouvert avec fopen(), popen() ou fsockopen().

length (Optionnel)

Doit être plus grand que la plus grande ligne (en terme de caractères) à lire dans le fichier (y compris le caractère de fin de ligne). Ce paramètre est optionnel depuis PHP 5. Omettre ce paramètre (ou le définir à 0 en PHP 5.0.4 et suivant) fait que la longueur maximale de la ligne n'est pas limitée, ce qui est légèrement plus lent.

delimiter (Optionnel)

Spécifie le séparateur (un seul caractère). Par défaut, c'est la virgule.

enclosure (Optionnel)

Spécifie le caractère de délimitation (un seul caractère). Par défaut, c'est les guillemets doubles. Ce paramètre a été ajouté en PHP 4.3.0.

fgetcsv() est identique à fgets() mais fgetcsv() analyse la ligne qu'il lit et recherche les champs CSV, qu'il va retourner dans un tableau les contenant. Le délimiteur de champs delimiter est la virgule, à moins que vous ne fournissiez un troisième argument.

Note : Le paramètre enclosure a été ajouté en PHP 4.3.0.

handle doit être un pointeur valide, et avoir été correctement ouvert par fopen(), popen(), ou fsockopen().

length doit être plus grand que la plus grande ligne trouvée dans un fichier CSV (en comptant les caractères de fin de ligne). Il est devenu optionnl en PHP 5.

fgetcsv() retourne FALSE en cas d'erreur, ou en cas de fin du fichier.

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.

Exemple 1. Lit et affiche le contenu d'un fichier CSV avec fgetcsv()

<?php
$row = 1;
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $num = count($data);
    echo "<p> $num fields in line $row: <br /></p>\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
        echo $data[$c] . "<br />\n";
    }
}
fclose($handle);
?>

fgetcsv() a été protégé des données binaires depuis PHP 4.3.5.

Note : La définition des locales entre en jeux avec cette fonction. Si LANG vaut, e.g. en_US.UTF-8, les fichiers encodés sur un octet sont mal lus par cette fonction.

Voir aussi
explode(),
file(),
pack() et
fputcsv().

Précédent | Sommaire | Suivant
fgetc | Niveau supérieur | fgets


fgets

(PHP 3, PHP 4, PHP 5)

fgets -- Renvoie la ligne courante sur laquelle se trouve le pointeur du fichier

Description

string fgets ( resource handle [, int length] )

fgets() retourne la chaîne lue jusqu'à la longueur length - 1 octet depuis le pointeur de fichier handle, ou bien la fin du fichier, ou une nouvelle ligne (qui inclut 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.

Si une erreur survient, fgets() retourne FALSE.

Erreur courante :

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.

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

Un exemple simple :

Exemple 1. Lecture d'un fichier ligne par ligne

<?php
$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
    while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        echo $buffer;
    }
    fclose($handle);
}
?>

Note : Le paramètre length est devenu optionnel depuis PHP 4.2.0. Depuis PHP 4.3.0, le fait d'ommettre ce paramètre fait que la fonction lira 1024 octets de la ligne. Si la majorité des lignes du fichier dépassent les 8 ko, il est plus efficace pour votre script de spécifier ce paramètre.

Note : fgets() est compatible avec les données binaires depuis PHP 4.3. Les versions plus anciennes ne le sont pas.

Note : Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

Voir aussi
fgetss()
fread(),
fgetc(),
stream_get_line(),
fopen(),
popen(),
fsockopen() et
stream_set_timeout().

Précédent | Sommaire | Suivant
fgetcsv | Niveau supérieur | fgetss


fgetss

(PHP 3, PHP 4, PHP 5)

fgetss -- Renvoie la ligne courante du fichier et élimine les balises HTML

Description

string fgetss ( resource handle [, int length [, string allowable_tags]] )

fgetss() est identique à fgets(), mais fgetss() supprime toutes les balises HTML et PHP qu'il trouve dans le texte lu. fgetss() lit jusqu'à length octets dans la ressource de fichier handle.

Vous pouvez aussi préciser les balises qui seront ignorées dans le troisième paramètre optionnel.

Note : allowable_tags a été ajouté en PHP 3.0.13 et PHP 4.0.0.

Le paramètre length est optionnel depuis PHP 5.

Note : Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

Voir aussi
fgets(),
fopen(),
fsockopen(),
popen() et
strip_tags().

Précédent | Sommaire | Suivant
fgets | Niveau supérieur | file_exists


file_exists

(PHP 3, PHP 4, PHP 5)

file_exists -- Vérifie si un fichier existe

Description

bool file_exists ( string filename )

file_exists() retourne TRUE si le fichier filename existe, et FALSE sinon.

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.

Exemple 1. Test d'existence d'un fichier

<?php
$filename = '/chemin/jusqu/a/fichier.txt';

if (file_exists($filename)) {
    print "Le fichier $filename existe";
} else {
    print "Le fichier $filename n'existe pas";
}
?>

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Avertissement

Cette fonction retourne FALSE pour les fichiers non accessibles en raison des restrictions du safe mode. Cependant, ces fichiers peuvent toujours être inclus s'ils sont dans le dossier safe_mode_include_dir.

Note : La vérification est effectuée en utilisant l'UID/GID réel au lieu de l'effectif.

Voir aussi
is_readable(),
is_writable(),
is_file() et
file().

Précédent | Sommaire | Suivant
fgetss | Niveau supérieur | file_get_contents


file_get_contents

(PHP 4 >= 4.3.0, PHP 5)

file_get_contents -- Lit tout un fichier dans une chaîne

Description

string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )

file_get_contents() est identique à la fonction readfile(), hormis le fait que file_get_contents() retourne le fichier filename dans une chaîne, à partir de la position offset, et jusqu'à maxlen octets. En cas d'erreur, file_get_contents() retourne FALSE.

Vous pouvez utiliser l'option use_include_path : en la mettant à "1", vous rechercherez aussi dans le dossier include_path.

Note : Si vous ouvrez une URI avec des caractères spéciaux, comme des espaces, vous devez encoder cette URI avec la fonction urlencode().

Note : Le paramètre context peut être éludé par la valeur NULL.

Historique

Version | Description
5.0.0 | Ajout du support du contexte.
5.1.0 | Ajout des paramètres offset et maxlen.

Notes

Note : Cette fonction gère les chaînes binaires.

Astuce : Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Annexe N pour une liste des protocoles URL supportés.

Note : Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contexts, référez-vous à Référence CLX, Flux.

Avertissement

Lorsque vous utilisez SSL, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer l'indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. L'astuce est de baisser le niveau de la directive error_reporting pour ne pas inclure les warnings. À partir de PHP 4.3.7, le bogue est détecté automatiquement lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour créer une socket ssl://, vous devez vous occuper vous-même de supprimer l'erreur.

Voir aussi

file()
fgets()
fread()
readfile()
file_put_contents()
stream_get_contents()
stream_context_create()

Précédent | Sommaire | Suivant
file_exists | Niveau supérieur | file_put_contents


file_put_contents

(PHP 5)

file_put_contents -- Ecrit une chaîne dans un fichier

Description

int file_put_contents ( string filename, mixed data [, int flags [, resource context]] )

Revient à appeler les fonctions fopen(), fwrite(), et fclose() successivement.

Vous pouvez également spécifier le paramètre data sous forme de tableau (tableau non multi-dimensionnel). C'est l'équivalent à file_put_contents($filename, implode('', $array)).

Depuis PHP 5.1.0, vous pouvez également passer un flux au paramètre data. Ainsi, le buffer restant de ce flux sera copié dans le fichier spécifié. Ce comportement revient à utiliser la fonction stream_copy_to_stream().

Liste de paramètres

filename

Le nom du fichier où l'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).

flags

flags peut prendre FILE_USE_INCLUDE_PATH, FILE_APPEND et/ou LOCK_EX (acquière un verrou exclusif), cependant, l'option FILE_USE_INCLUDE_PATH doit être utilisée avec précaution.

context

Une ressource de contexte

Valeurs de retour

La fonction retourne le nombre d'octets écrits dans le fichier ou FALSE si une erreur survient.

Historique

Version | Description
5.1.0 | Ajout du support de LOCK_EX et la possibilité de passer une ressource de flux dans le paramètre data

Notes

Note : Cette fonction gère les chaînes binaires.

Note : Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contexts, référez-vous à Référence CLX, Flux.

Astuce : Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Annexe N pour une liste des protocoles URL supportés.

Voir aussi

fopen()
fwrite()
file_get_contents()
stream_context_create()

Précédent | Sommaire | Suivant
file_get_contents | Niveau supérieur | file


file

(PHP 3, PHP 4, PHP 5)

file -- Lit le fichier et renvoie le résultat dans un tableau

Description

array file ( string filename [, int use_include_path [, resource context]] )

file() est identique à file_get_contents(), hormis le fait que file() retourne le fichier filename dans un tableau. Chaque élément du tableau correspond à une ligne du fichier, et les retour-chariots sont placés en fin de ligne.

Note : Chaque élément du tableau résultat contiendra la nouvelle ligne de fin de chaîne. Il faudra donc utiliser rtrim() sur cette valeur pour la supprimer.

Vous pouvez utiliser l'option use_include_path : en la mettant à "1", vous rechercherez aussi dans le dossier include_path. file() utilise le contexte context, pour les connexions réseau.

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 'Ligne No <strong>' . $line_num . '</strong> : ' . htmlspecialchars($line) . '<br />'."\n";
}

// Un autre exemple, pour obtenir une page web dans une chaîne. Voir aussi la fonction file_get_contents().
$html = implode ('', file ('http://www.example.com/'));
?>

Note : Depuis PHP 4.3.0, vous pouvez utiliser file_get_contents() pour lire le contenu d'un fichier dans une chaîne.

En PHP 4.3.0, file() est désormais compatible avec les données binaires.

Note : Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contexts, référez-vous à Référence CLX, Flux.

Avertissement

Lorsque vous utilisez SSL, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer l'indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. L'astuce est de baisser le niveau de la directive error_reporting pour ne pas inclure les warnings. À partir de PHP 4.3.7, le bogue est détecté automatiquement lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour créer une socket ssl://, vous devez vous occuper vous-même de supprimer l'erreur.

Voir aussi
readfile(),
fopen(),
fsockopen(),
popen(),
file_get_contents(),
include() et
stream_context_create().

Précédent | Sommaire | Suivant
file_put_contents | Niveau supérieur | fileatime


fileatime

(PHP 3, PHP 4, PHP 5)

fileatime -- Renvoie la date à laquelle le fichier a été accédé pour la dernière fois

Description

int fileatime ( string filename )

fileatime() renvoie la date à laquelle le fichier filename a été accédé pour la dernière fois, ou FALSE en cas d'erreur.

Note : La date de dernière modification d'un fichier est supposé changer à chaque fois que les blocks de données du fichier ont commencés à être lus. Cela peut être très couteux 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 : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Exemple 1. Exemple avec fileatime()

<?php

// affiche : un_fichier.txt a été accédé le : December 29 2002 22:16:23.

$filename = 'un_fichier.txt';
if (file_exists($filename)) {
    echo "$filename  a été accédé le : " . date("F d Y H:i:s.", fileatime($filename));
}

?>

Voir aussi
filemtime(),
fileinode() et
date().

Précédent | Sommaire | Suivant
file | Niveau supérieur | filectime


filectime

(PHP 3, PHP 4, PHP 5)

filectime -- Renvoie la date de dernier accès à un inode

Description

int filectime ( string filename )

filectime() renvoie l'heure à laquelle l'inode filename a été accédé pour la dernière fois, ou FALSE en cas d'erreur.

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

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 : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Exemple 1. Exemple avec filectime()

<?php

// affiche e.g.  un_fichier.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));
}

?>

Voir aussi filemtime().

Précédent | Sommaire | Suivant
fileatime | Niveau supérieur | filegroup


filegroup

(PHP 3, PHP 4, PHP 5)

filegroup -- Lire le nom du groupe

Description

int filegroup ( string filename )

filegroup() renvoie le groupe qui possède le fichier filename, ou FALSE en cas d'erreur. 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é, et PHP génère un erreur de niveau E_WARNING.

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi fileowner() et safe_mode_gid.

Précédent | Sommaire | Suivant
filectime | Niveau supérieur | fileinode


fileinode

(PHP 3, PHP 4, PHP 5)

fileinode -- Renvoie le numéro d'inode du fichier

Description

int fileinode ( string filename )

fileinode() renvoie le numéro d'inode du fichier filename, ou FALSE en cas d'erreur.

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi stat().

Précédent | Sommaire | Suivant
filegroup | Niveau supérieur | filemtime


filemtime

(PHP 3, PHP 4, PHP 5)

filemtime -- Renvoie la date de dernière modification du fichier

Description

int filemtime ( string filename )

filemtime() renvoie la date de dernière modification du fichier filename, ou FALSE en cas d'erreur.

filemtime() retourne l'heure d'écriture des blocs données d'un fichier. Utilisez date() sur ce résultat pour obtenir une date de modification humainement lisible.

Exemple 1. Exemple avec filemtime()

<?php
// l'affichage sera : lefichier.txt a été modifié le : December 29 2002 22:16:23.

$filename = 'lefichier.txt';
if (file_exists($filename)) {
    echo "$filename  a été modifié le : " . date ("F d Y H:i:s.", filemtime($filename));
}
?>

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi
filectime(),
stat(),
touch() et
getlastmod().

Précédent | Sommaire | Suivant
fileinode | Niveau supérieur | fileowner


fileowner

(PHP 3, PHP 4, PHP 5)

fileowner -- Renvoie le nom du propriétaire du fichier

Description

int fileowner ( string filename )

fileowner() renvoie le nom du possesseur du fichier filename, ou FALSE en cas d'erreur. L'identification du possesseur de fichier est numérique : il faut utiliser posix_getpwuid() pour retrouver le nom d'utilisateur.

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi stat().

Précédent | Sommaire | Suivant
filemtime | Niveau supérieur | fileperms


fileperms

(PHP 3, PHP 4, PHP 5)

fileperms -- Renvoie les permissions affectées à un fichier

Description

int fileperms ( string filename )

fileperms() renvoie les permissions affectées au fichier filename, ou FALSE en cas d'erreur.

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Exemple 1. Affichage des permissions 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 toutes les permissions

<?php
$perms = fileperms('/etc/passwd');

if (($perms & 0xC000) == 0xC000) {
    // Socket
    $info = 's';
} elseif (($perms & 0xA000) == 0xA000) {
    // Lien symbolique
    $info = 'l';
} elseif (($perms & 0x8000) == 0x8000) {
    // Régulier
    $info = '-';
} elseif (($perms & 0x6000) == 0x6000) {
    // Bloc spécial
    $info = 'b';
} elseif (($perms & 0x4000) == 0x4000) {
    // Dossier
    $info = 'd';
} elseif (($perms & 0x2000) == 0x2000) {
    // Caractère spécial
    $info = 'c';
} elseif (($perms & 0x1000) == 0x1000) {
    // FIFO pipe
    $info = 'p';
} else {
    // 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' : '-'));

// Tous
$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--

Voir aussi is_readable() et stat().

Précédent | Sommaire | Suivant
fileowner | Niveau supérieur | filesize


filesize

(PHP 3, PHP 4, PHP 5)

filesize -- Renvoie la taille d'un fichier

Description

int filesize ( string filename )

filesize() renvoie la taille du fichier filename, 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, filesize() peut retourner des résultats étranges pour les fichiers de taille supérieure à 2 Go. Pour les fichiers entre 2Go et 4 Go, cela peut être contourné avec sprintf("%u", filesize($file)).

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Exemple 1. Exemple avec filesize()

<?php

// outputs e.g.  unfichier.txt: 1024 octets

$nom_du_fichier = 'unfichier.txt';
echo $filename . ': ' . filesize($nom_du_fichier) . ' octets';

?>

Voir aussi file_exists().

Précédent | Sommaire | Suivant
fileperms | Niveau supérieur | filetype


filetype

(PHP 3, PHP 4, PHP 5)

filetype -- Retourne le type de fichier

Description

string filetype ( string filename )

filetype() renvoie le type du fichier filename. Les réponses possibles sont : fifo, char, dir, block, link, file et unknown.

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

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Exemple 1. Exemple avec filetype()

<?php

echo filetype('/etc/passwd');  // fichier
echo filetype('/etc/');        // dossier

?>

Voir aussi
is_dir(),
is_file(),
is_link(),
file_exists(),
stat() et
mime_content_type().

Précédent | Sommaire | Suivant
filesize | Niveau supérieur | flock


flock

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

flock -- Verrouille le fichier

Description

bool flock ( resource handle, int operation [, int &wouldblock] )

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.

Note : flock() est obligatoire sous Windows.

flock() agit sur le fichier handle qui doit avoir été ouvert au préalable. operation est une des valeurs suivantes :

  • Acquisition d'un verrou en lecture : operation = LOCK_SH (valeur de 1 pour les versions plus anciennes que PHP 4.0.1).

  • Acquisition d'un verrou exclusif en écriture : operation = LOCK_EX (valeur de 2 pour les versions plus anciennes que PHP 4.0.1).

  • Libération d'un verrou partagé ou exclusif, operation = LOCK_UN (valeur de 3 pour les versions plus anciennes que PHP 4.0.1).

  • Si vous voulez que flock() ne se bloque pas durant le verrouillage, ajoutez LOCK_NB à operation (valeur de 4 pour les versions plus anciennes que PHP 4.0.1).

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 troisième paramètre optionnel &wouldblock vaut par défaut TRUE, si le verrou doit bloquer le script (condition d'erreur EWOULDBLOCK). Le verrou est également levé avec la fonction fclose() (qui est également automatiquement appelée lors de la fin du script).

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec flock()

<?php

$fp = fopen("/tmp/lock.txt", "w+");

if (flock($fp, LOCK_EX)) { // pose un verrou exclusif
    fwrite($fp, "Ecrire dans le fichier\n");
    flock($fp, LOCK_UN); // libère le verrou
} else {
    echo "Impossible de verrouiller le fichier!";
}

fclose($fp);

?>

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

Avertissement

flock() ne fonctionne pas sur NFS ou sur les autres systèmes de fichiers réseaux. Vérifiez la documentation de votre système d'exploitation pour plus de détails.

Sur certains systèmes d'exploitation, flock() est implémenté au niveau processus. Lorsque vous utilisez une API multi-thread comme ISAPI, vous risquez de ne pas pouvoir avoir confiance en flock() pour protéger vos fichiers contre d'autres scripts PHP qui fonctionnent en parallèle sur d'autres threads du même serveur.

flock() n'est pas supporté sur les vieux systèmes de fichiers comme FAT et ses dérivés, et elle retournera forcément FALSE sous ces environnements (ceci est particulièrement vrai pour les utilisateurs de Windows 98).

Précédent | Sommaire | Suivant
filetype | Niveau supérieur | fnmatch


fnmatch

(PHP 4 >= 4.3.0, PHP 5)

fnmatch -- Repère un fichier à partir d'un masque

Description

bool fnmatch ( string pattern, string string [, int flags] )

fnmatch() vérifie si la chaîne string va passer le masque Shell pattern. flags est un nom de type de masque.

C'est tout particulièrement pratique pour les noms de fichiers, et il peut être utilisé sur des chaînes de caractè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 ereg() ou preg_match() pour des recherches peut être plus pratique pour les non-initiés.

Exemple 1. Vérifier le nom d'une couleur avec un masque Shell

<?php
if(fnmatch("*gr[ae]y", $color)) {
    echo "some form of gray ...";
}
?>

Avertissement

Actuellement, cette fonction n'est pas disponible pour Windows et les autres systèmes non-POSIX.

Voir aussi glob(), ereg() et preg_match(). Vous pouvez aussi consulter le manuel Unix pour fnmatch(3) les valeurs de flags.

Précédent | Sommaire | Suivant
flock | Niveau supérieur | fopen


fopen

(PHP 3, PHP 4, PHP 5)

fopen -- Ouverture d'un fichier ou d'une URL

Description

resource fopen ( string filename, string mode [, bool use_include_path [, resource context]] )

fopen() crée une ressource nommée, spécifiée par le paramètre filename, sous la forme d'un flux. Si filename est de la forme "protocole://", filename est supposé être une URL, et PHP va rechercher un gestionnaire de protocole adapté pour lire ce fichier. Si aucun gestionnaire pour ce protocole n'est disponible, PHP va émettre une alerte qui vous permettra de savoir que vous avez des problèmes dans votre script, et il tentera d'exploiter filename comme un fichier classique.

Si PHP décide que le fichier filename est un fichier local, il va essayer d'ouvrir un flux avec ce fichier. Le fichier doit être accessible à PHP. Il vous faut donc vous assurer que vous avez les droits d'accès à ce fichier. Si vous activez le safe mode, ou la directive open_basedir, d'autres conditions peuvent aussi s'appliquer.

Si PHP a décidé que filename spécifie un protocole enregistré, et que ce protocole est enregistré comme un protocole réseau, PHP s'assurera que la directive allow_url_fopen est activée. Si elle est inactive, PHP va émettre une alerte et l'ouverture va échouer.

Note : La liste des protocoles supportés est disponible sur Annexe N. 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).

Note : Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contexts, référez-vous à Référence CLX, Flux.

Note : Depuis PHP 4.3.2, le mode par défaut est le mode binaire pour toutes les plates-formes qui font la distinction entre les modes binaire et texte. Si vous rencontrez des problèmes dans vos scripts après une mise à jour, essayez d'utiliser le flag 't' en attendant que vous rendiez votre script plus portable comme mentionné ci-dessous.

Le paramètre mode spécifie le type d'accès désiré au flux. Il peut prendre les valeurs suivantes :

Tableau 1. Liste des modes possibles pour la fonction fopen() en utilisant le paramètre mode

mode | Description
'r' | Ouvre en lecture seule, et place le pointeur de fichier au début du fichier.
'r+' | Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier.
'w' | Ouvre en écriture seule ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
'w+' | Ouvre en lecture et écriture ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
'a' | Ouvre en écriture seule ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer.
'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.
'x' | Crée et ouvre le fichier en lecture seule ; 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. Cette option est supportée à partir de PHP 4.3.2 et fonctionne uniquement avec des fichiers locaux.
'x+' | Crée et ouvre le fichier en lecture et écriture ; 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. Cette option est supportée à partir de PHP 4.3.2, et fonctionne uniquement avec des fichiers locaux.

Note : Les systèmes d'exploitation utilisent différents caractères pour les nouvelles lignes. Lorsque vous écrivez un fichier texte, et insérez une nouvelle ligne, vous devez utiliser le bon caractère pour votre système d'exploitation. Les systèmes Unix utilisent \n comme nouvelle ligne, les systèmes Windows utilisent \r\n, et les systèmes Macintosh utilisent \r.

Si vous n'utilisez pas le bon caractère de nouvelle ligne lors de l'écriture de vos fichiers, vous risquez d'ouvrir vos fichiers avec des applications qui donneront un aspect 'bizarre' au texte.

Windows propose un mode de traduction ('t'), qui va traduire automatiquement les caractères \n en \r\n lorsque vous travaillez sur le fichier. À l'inverse, vous pouvez utiliser l'option 'b' pour forcer le fichier a être écrit en mode binaire, sans traduction des données. Pour utiliser ces options, ajoutez 'b' ou 't' comme dernier caractère du paramètre mode.

Le mode de traduction par défaut dépend de l'interface SAPI et de la version de PHP que vous utilisez. Nous vous recommandons de toujours spécifier les options de traductions pour des raisons de portabilité. Vous devriez utiliser 't' lorsque vous écrivez des fichiers de texte, et le caractère \n pour définir vos fin de ligne, dans les scripts, mais que vous vous attendez à ce que le fichier soit relu par une application comme Notepad. Vous devriez toujours utiliser l'option 'b' dans les autres cas.

Si vous ne précisez pas 'b' lorsque vous travaillez avec des fichiers binaires, vous pourriez rencontrer des problèmes avec vos données, comme des images corrompues ou des caractères \r\n inopinés.

Note : Pour des raisons de portabilité, il est recommandé de toujours utiliser l'option 'b' lorsque vous ouvrez des fichiers avec fopen().

Note : À nouveau, pour des raisons de portabilité, il est fortement recommandé de réécrire les scripts qui utilisent l'option 't', pour qu'ils utilisent le bon caractère de nouvelle ligne, et le mode 'b'.

Le troisième paramètre optionnel use_include_path peut être défini à 1 ou à TRUE pour chercher le fichier dans l'include_path.

Si l'ouverture échoue, la fonction retourne FALSE et une alerte E_WARNING sera générée. Vous pouvez utiliser le caractère @ pour supprimer cette alerte.

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

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.

Sous Windows, assurez-vous de bien protéger les anti-slash utilisés dans le chemin du fichier, ou bien utilisez des slash.

Exemple 2. Exemple avec fopen() sous Windows

<?php
$handle = fopen("c:\\data\\info.txt", "r");
?>

Avertissement

Lorsque vous utilisez SSL, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer l'indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. L'astuce est de baisser le niveau de la directive error_reporting pour ne pas inclure les warnings. À partir de PHP 4.3.7, le bogue est détecté automatiquement lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour créer une socket ssl://, vous devez vous occuper vous-même de supprimer l'erreur.

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi
Annexe N,
fclose(),
fgets(),
fread(),
fwrite(),
fsockopen(),
file(),
file_exists(),
is_readable(),
socket_set_timeout(),
popen() et
stream_context_create().

Précédent | Sommaire | Suivant
fnmatch | Niveau supérieur | fpassthru


fpassthru

(PHP 3, PHP 4, PHP 5)

fpassthru -- Affiche le reste du fichier

Description

int fpassthru ( resource handle )

fpassthru() lit tout le reste d'un fichier jusqu'à la fin et dirige le résultat vers la sortie standard.

Si une erreur survient, fpassthru() retourne FALSE. Sinon, fpassthru() retourne le nombre de caractères lus dans handle et passés à la sortie standard.

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

Vous devez appeler la fonction rewind() pour réinitialiser le pointeur de fichier au début si vous avez déjà écrit des données dans le fichier.

Si vous voulez uniquement copier le contenu d'un fichier dans le buffer de sortie, sans le modifier auparavant ou placer le pointeur à un endroit particulier, vous devriez utiliser la fonction readfile(), ce qui vous évite d'appeler la fonction fopen() call.

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.

Exemple 1. Utiliser 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;

?>

Voir aussi
readfile(),
fopen(),
popen() et
fsockopen().

Précédent | Sommaire | Suivant
fopen | Niveau supérieur | fputcsv


fputcsv

(PHP 5 >= 5.1.0RC1)

fputcsv -- Formate une ligne en CSV et l'écrit dans un fichier

Description

int fputcsv ( resource handle [, array fields [, string delimiter [, string enclosure]]] )

fputcsv() formate la ligne passée sous forme de tableau fields, puis écrit le résultat dans le fichier handle. fputcsv() retourne la taille de la chaîne écrite, ou bien FALSE en cas d'échec.

Le paramètre optionnel delimiter spécifie le délimiteur (un seul caractère). Par défaut, c'est la virgule.

Le paramètre enclosure spécifie le caractère d'encadrement (un seul caractère), et par défaut, c'est le guillemet double ".

Exemple 1. Exemple avec fputcsv()

<?php

$list = array (
    'aaa,bbb,ccc,dddd',
    '123,456,789',
    '"aaa","bbb"'
);

$fp = fopen('file.csv', 'w');

foreach ($list as $line) {
    fputcsv($fp, split(',', $line));
}

fclose($fp);
?>

Note : Si vous avez des problèmes avec PHP qui ne reconnaît pas certaines lignes lors de la lecture de fichiers qui ont été créés ou lus sur un MacIntosh, vous pouvez activer l'option de configuration auto_detect_line_endings.

Voir aussi fgetcsv().

Précédent | Sommaire | Suivant
fpassthru | Niveau supérieur | fputs


fputs

(PHP 3, PHP 4, PHP 5)

fputs -- Alias de fwrite()

Description

Cette fonction est un alias de : fwrite().

Précédent | Sommaire | Suivant
fputcsv | Niveau supérieur | fread


fread

(PHP 3, PHP 4, PHP 5)

fread -- Lecture du fichier en mode binaire

Description

string fread ( resource handle, int length )

fread() lit jusqu'à length octets dans le fichier référencé par handle. La lecture s'arrête lorsque length octets ont été lus, ou que l'on a atteint la fin du fichier, ou lorsqu'un paquet devient disponible ou (après avoir ouvert les flux utilisateurs) lorsque 8192 octets ont été lus, le premier des trois survenant.

Retourne la chaîne lue ou FALSE si une erreur survient.

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

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

Exemple 2. Utilisation des fichiers binaires avec fread()

<?php
$filename = "c:\\fichiers\\uneimage.gif";
$handle = fopen ($filename, "rb");
$contents = fread ($handle, filesize ($filename));
fclose ($handle);
?>

Avertissement

Lorsque vous lisez depuis n'importe quelle source qui n'est pas un fichier local, comme des flux retournés lors de la lecture de fichiers distants ou depuis popen() et fsockopen(), la lecture s'arrête après la réception d'un paquet. Il faut donc faire des boucles pour collecter les données par paquet, comme présenté ci-dessous.

<?php
// Pour PHP 5 et suivant
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?>

<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
    $contents .= fread($handle, 8192);
}
fclose($handle);
?>

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.

Voir aussi
fwrite(),
fopen(),
fsockopen(),
popen(),
fgets(),
fgetss(),
file() et
fpassthru().

Précédent | Sommaire | Suivant
fputs | Niveau supérieur | fscanf


fscanf

(PHP 4 >= 4.0.1, PHP 5)

fscanf -- Analyse un fichier en fonction d'un format

Description

mixed fscanf ( resource handle, string format [, mixed &...] )

fscanf() est similaire à sscanf(), mais elle prend comme entrée un fichier, associé à handle et l'interprète en fonction du format format. Si seulement deux paramètres sont passés à la fonction, les valeurs analysées seront retournées sous forme de tableau. Si des arguments optionnels var1 sont passés, la fonction retournera le nombre de valeurs assignées. Les options doivent être passées par référence.

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.

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. Fichier utilisateurs.txt

javier  argonaute        pe
hiroshi sculpteur        jp
robert  hockeyuer us
luigi   fleuriste it

Note : Avant PHP 4.3.0, le nombre maximum de caractères lus dans le fichier était de 512, ou bien jusqu'à la première nouvelle ligne "\n" : en fait, le premier des deux. Depuis PHP 4.3.0, des lignes de n'importe quelle taille peuvent être lues.

Voir aussi
fread(),
fgets(),
fgetss(),
sscanf(),
printf() et
sprintf().

Précédent | Sommaire | Suivant
fread | Niveau supérieur | fseek


fseek

(PHP 3, PHP 4, PHP 5)

fseek -- Modifie la position du pointeur de fichier

Description

int fseek ( resource handle, int offset [, int whence] )

fseek() modifie le curseur de position dans le fichier handle. La nouvelle position mesurée en octets à partir du début du fichier, est obtenue en additionnant la distance offset à la position whence. Ce paramètre peut prendre les valeurs suivantes :

SEEK_SET - La position finale vaut offset octets.
SEEK_CUR - La position finale vaut 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.

Si whence n'est pas spécifiée, il vaut par défaut SEEK_SET.

fseek() retourne 0 en cas de succès, et sinon -1. Notez que positionner le pointeur au-delà de la fin du fichier n'est pas une erreur.

Exemple 1. Exemple avec fseek()

<?php

$fp = fopen('un_fichier.txt', 'r');

// lit quelques données
$data = fgets($fp, 4096);

// retourne au début du fichier
// identique à rewind($fp);
fseek($fp, 0);

?>

fseek() ne peut pas être utilisé sur les pointeurs retournés par fopen() s'ils sont au format HTTP ou FTP. fseek() donne également des résultats indéfinis pour les flux "append-only" (ouvert avec le flag "a").

Note : Le paramètre whence a été ajouté en PHP 4.0.0.

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.

Voir aussi ftell() et rewind().

Précédent | Sommaire | Suivant
fscanf | Niveau supérieur | fstat


fstat

(PHP 4, PHP 5)

fstat -- Lit les informations sur un fichier à partir d'un pointeur de fichier

Description

array fstat ( resource handle )

fstat() rassemble les informations sur le fichier dont on connaît le pointeur handle. fstat() est similaire à la fonction stat(), hormis le fait qu'elle utilise un pointeur de fichier, au lieu d'un nom de fichier.

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

Exemple 1. Exemple avec fstat()

<?php

// ouuvre un fichier
$fp = fopen("/etc/passwd", "r");

// lit des informations
$fstat = fstat($fp);

// ferme le fichier
fclose($fp);

// affiche le résultat
print_r(array_slice($fstat, 13));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [dev] => 771
    [ino] => 488704
    [mode] => 33188
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 1114
    [atime] => 1061067181
    [mtime] => 1056136526
    [ctime] => 1056136526
    [blksize] => 4096
    [blocks] => 8
)

Note : Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Précédent | Sommaire | Suivant
fseek | Niveau supérieur | ftell


ftell

(PHP 3, PHP 4, PHP 5)

ftell -- Renvoie la position du pointeur du fichier

Description

int ftell ( resource handle )

ftell() retourne la position courante du pointeur dans le fichier repéré par le pointeur handle, i.e., son offset.

Si une erreur survient, retourne FALSE.

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

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(),
popen(),
fseek() et
rewind().

Précédent | Sommaire | Suivant
fstat | Niveau supérieur | ftruncate


ftruncate

(PHP 4, PHP 5)

ftruncate -- Tronque un fichier

Description

bool ftruncate ( resource handle, int size )

ftruncate() prend le pointeur de fichier handle et le tronque à la taille de size. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Le pointeur du fichier n'est changé qu'en mode aout. En mode écriture, un appel additionnel à la fonction fseek() est nécessaire.

Note : Avant PHP 4.3.3, ftruncate() retournait un entier de valeur 1, en cas de succès, au lieu de la valeur boolean TRUE.

Voir aussi fopen() et fseek().

Précédent | Sommaire | Suivant
ftell | Niveau supérieur | fwrite


fwrite

(PHP 3, PHP 4, PHP 5)

fwrite -- Ecrit un fichier en mode binaire

Description

int fwrite ( resource handle, string string [, int length] )

fwrite() écrit le contenu de la chaîne string dans le fichier pointé par handle. 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).

fwrite() retourne le nombre d'octets écrits ou FALSE en cas d'erreur.

Notez que si length est fourni, alors l'option de configuration magic_quotes_runtime sera ignorée, et les slash seront conservés.

Note : Sur les systèmes qui font la différence entre les fichiers binaires et les fichiers textes (par exemple, Windows), le fichier doit être ouvert avec l'option 'b' inclus dans le paramètre de mode de fopen().

Note : Si handle est ouvert en mode append, fwrite() sera atomique (sauf si la taille de string excède la taille du bloc du système de fichiers, sur quelques plateformes, 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.

Exemple 1. Exemple simple avec fwrite()

<?php
$filename = 'test.txt';
$somecontent = "Ajout de chaîne dans le fichier \n";

// Assurons nous que le fichier est accessible en écriture
if (is_writable($filename)) {

    // Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout
    // Le pointeur de fichier est placé à la fin du fichier
    // c'est là que $somecontent sera placé
    if (!$handle = fopen($filename, 'a')) {
        echo "Impossible d'ouvrir le fichier ($filename)";
        exit;
    }

    // Ecrivons quelque chose dans notre fichier.
    if (fwrite($handle, $somecontent) === FALSE) {
        echo "Impossible d'écrire dans le fichier ($filename)";
        exit;
    }

    echo "L'écriture de ($somecontent) dans le fichier ($filename) a réussi";

    fclose($handle);

} else {
echo "Le fichier $filename n'est pas accessible en écriture.";
}
?>

Voir aussi
fread(),
fopen(),
fsockopen(),
popen() et
file_put_contents().

Précédent | Sommaire | Suivant
ftruncate | Niveau supérieur | glob


glob

(PHP 4 >= 4.3.0, PHP 5)

glob -- Recherche des chemins qui vérifient un masque

Description

array glob ( string pattern [, int flags] )

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. Aucun remplacement de tilde (~) ou de paramètre n'est fait.

glob() retourne un tableau contenant les fichiers et les dossiers trouvés, un tableau vide si aucun fichier/dossier n'est trouvé ou FALSE en cas d'erreur.

Valeurs autorisées pour flags :

  • GLOB_MARKAjoute un slash final à chaque élément retourné

  • GLOB_NOSORT : Retourne les fichiers tant l'ordre d'apparence (pas de tri)

  • GLOB_NOCHECK : Retourne le masque de recherche si aucun fichier n'a été trouvé

  • GLOB_NOESCAPE : Ne protège aucun méta-caractère d'un anti-slash

  • GLOB_BRACE : Remplace {a,b,c} par 'a', 'b' ou 'c'

    Note : Ce drapeau n'est pas disponible sur tous les systèmes GNU, comme Solaris.

  • GLOB_ONLYDIR : Ne retourne que les dossiers qui vérifient le masque

    Note : Avant PHP 4.3.3 GLOB_ONLYDIR n'était pas disponible sur Windows et les systèmes qui n'utilisent pas la bibliothèque GNU C.

  • GLOB_ERR : Stop lors d'une erreur (comme des dossiers non lisibles), par défaut, les erreurs sont ignorées. Ajouté en PHP 5.1.

Exemple 1. Un moyen pratique pour remplacer opendir() par glob()

<?php
$files = glob("*.txt");
foreach ($files as $filename) {
   echo "$filename occupe " . filesize($filename) . " octets\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

funclist.txt occupe 44686 octets
funcsummary.txt occupe 267625 octets
quickref.txt occupe 137820 octets

Note : Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note : Cette fonction n'est pas disponible sur quelques systèmes (e.g. vieux Sun OS).

Voir aussi
opendir(),
readdir(),
closedir() et
fnmatch().

Précédent | Sommaire | Suivant
fwrite | Niveau supérieur | is_dir


is_dir

(PHP 3, PHP 4, PHP 5)

is_dir -- Indique si le fichier est un dossier

Description

bool is_dir ( string filename )

is_dir() retourne TRUE si filename existe et est un dossier.

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Exemple 1. Exemple avec is_dir()

<?php
var_dump(is_dir('un_fichier.txt')) . "\n";
var_dump(is_dir('bogus_dir/abc')) . "\n";

var_dump(is_dir('..')); //le dossier au-dessus
?>

L'exemple ci-dessus va afficher :

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

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi
chdir(),
dir,
opendir(),
is_file() et
is_link().

Précédent | Sommaire | Suivant
glob | Niveau supérieur | is_executable


is_executable

(PHP 3, PHP 4, PHP 5)

is_executable -- Indique si le fichier est exécutable

Description

bool is_executable ( string filename )

is_executable() retourne TRUE si filename existe et est exécutable.

is_executable() est disponible avec Windows depuis PHP 5.0.0.

Exemple 1. Exemple avec is_executable()

<?php

$file = '/home/vincent/unfichier.sh';

if (is_executable($file)) {
    echo $file.' est exécutable';
} else {
    echo $file.' n\'est pas exécutable';
}

?>

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi is_file() et is_link().

Précédent | Sommaire | Suivant
is_dir | Niveau supérieur | is_file


is_file

(PHP 3, PHP 4, PHP 5)

is_file -- Indique si le fichier est un véritable fichier

Description

bool is_file ( string filename )

is_file() retourne TRUE si filename existe et est un fichier (et pas un dossier).

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)

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi is_dir() et is_link().

Précédent | Sommaire | Suivant
is_executable | Niveau supérieur | is_link


is_link

(PHP 3, PHP 4, PHP 5)

is_link -- Indique si le fichier est un lien symbolique

Description

bool is_link ( string filename )

is_link() retourne TRUE si filename existe et est un lien symbolique.

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi
is_dir(),
is_file() et
readlink().

Précédent | Sommaire | Suivant
is_file | Niveau supérieur | is_readable


is_readable

(PHP 3, PHP 4, PHP 5)

is_readable -- Indique si un fichier est autorisé en lecture

Description

bool is_readable ( string filename )

is_readable() retourne TRUE si le fichier ou le dossier spécifié par le paramètre filename existe et est accessible en lecture.

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

Exemple 1. Exemple avec is_readable()

<?php
$filename = 'test.txt';
if (is_readable($filename)) {
    echo 'Le fichier est lisible';
} else {
    echo 'Le fichier n\'est pas lisible';
}
?>

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des 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.

Voir aussi
is_writable(),
file_exists() et
fgets().

Précédent | Sommaire | Suivant
is_link | Niveau supérieur | is_uploaded_file


is_uploaded_file

(PHP 3 >= 3.0.17, PHP 4 >= 4.0.3, PHP 5)

is_uploaded_file -- Indique si le fichier a été téléchargé par HTTP POST

Description

bool is_uploaded_file ( string filename )

is_uploaded_file() est disponible à partir des versions PHP 3.0.16 et 4.0.2.

is_uploaded_file() retourne TRUE si le fichier filename a été téléchargé par HTTP POST. Cela est très utile pour vous assurer qu'un utilisateur n'essaie pas d'accéder intentionnellement à un fichier auquel il n'a pas droit (comme /etc/passwd).

Ce type de vérification est spécialement important s'il est possible que les fichiers téléchargés révèlent leur contenu à l'utilisateur, ou même aux utilisateurs du même système.

Pour un fonctionnement correct, la fonction is_uploaded_file() nécessite un argument comme $_FILES['userfile']['tmp_name'], - le nom du fichier téléchargé sur la machine cliente $_FILES['userfile']['name'] ne fonctionne pas.

Exemple 1. Exemple avec is_uploaded_file()

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
    echo "Fichier ". $_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'] . "'.";
}

?>

is_uploaded_file() est disponible dans les versions de PHP 3 après PHP 3.0.16, et dans les versions de PHP 4 après la 4.0.2. Si vous êtes coincés avec une version plus ancienne, vous pouvez utiliser l'une des fonctions suivantes pour vous protéger :

Note : L'exemple suivant ne fonctionne pas avec les versions de PHP ultérieures à la 4.0.2. Elle dépend de fonctionnalités internes de PHP qui ont disparu après cette version.

Exemple 2. Exemple avec is_uploaded_file() en PHP 4 < 4.0.3.

<?php
/* Test utilisateur du fichier téléchargé. */
function is_uploaded_file_4_0_2($filename) {
    if (!$tmp_file = get_cfg_var('upload_tmp_dir')) {
        $tmp_file = dirname(tempnam('', ''));
    }
    $tmp_file .= '/' . basename($filename);
    /* L'utilisateur peut avoir laissé des / finaux dans php.ini... */
    return (ereg_replace('/+', '/', $tmp_file) == $filename);
}

/* Voici comment l'utiliser, car move_uploaded_file() n'est pas disponible
dans les anciennes versions : */
if (is_uploaded_file_4_0_2($HTTP_POST_FILES['userfile'])) {
    copy($HTTP_POST_FILES['userfile'], "/dossier/ou/placer/un/fichier/uploadé");
} else {
    echo "Tentative d'attaque possible : '$HTTP_POST_FILES[userfile]'.";
}
?>

Voir aussi move_uploaded_file(), et la section sur la gestion des téléchargements pour un exemple simple.

Précédent | Sommaire | Suivant
is_readable | Niveau supérieur | is_writable


is_writable

(PHP 4, PHP 5)

is_writable -- Indique si un fichier est autorisé en écriture

Description

bool is_writable ( string filename )

is_writable() retourne TRUE si filename existe et 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).

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

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi
is_readable(),
file_exists() et
fwrite().

Précédent | Sommaire | Suivant
is_uploaded_file | Niveau supérieur | is_writeable


is_writeable

(PHP 3, PHP 4, PHP 5)

is_writeable -- Alias de is_writable()

Description

Cette fonction est un alias de : is_writable().

Précédent | Sommaire | Suivant
is_writable | Niveau supérieur | lchgrp


link

(PHP 3, PHP 4, PHP 5)

link -- Crée un lien

Description

bool link ( string target, string link )

link() crée un lien entre le fichier source link et le fichier de destination target. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi
symlink() pour créer des liens symboliques,
readlink() et
linkinfo().

Précédent | Sommaire | Suivant
lchown | Niveau supérieur | linkinfo


linkinfo

(PHP 3, PHP 4, PHP 5)

linkinfo -- Renvoie les informations d'un lien

Description

int linkinfo ( string path )

linkinfo() renvoie les informations du lien path, c'est-à-dire le champ st_dev de la structure C UNIX retournée par lstat. (comme en langage C). linkinfo() sert à vérifier si le lien identifié par path existe, en utilisant la même méthode que la macro S_ISLNK de stat.h. linkinfo() retourne FALSE en cas d'erreur.

Exemple 1. Exemple avec linkinfo()

<?php

echo linkinfo('/vmlinuz'); // 835

?>

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi
symlink(),
link() et
readlink().

Précédent | Sommaire | Suivant
link | Niveau supérieur | lstat


lstat

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

lstat -- Retourne les informations sur n fichier ou un lien symbolique

Description

array lstat ( string filename )

lstat() renvoie les informations sur le fichier filename. 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.

Voyez la page de manuel de stat() pour plus d'informations sur la structure du tableau retourné par lstat().

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Voir aussi stat().

Précédent | Sommaire | Suivant
linkinfo | Niveau supérieur | mkdir


mkdir

(PHP 3, PHP 4, PHP 5)

mkdir -- Crée un dossier

Description

bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )

mkdir() tente de créer un dossier dans le chemin pathname.

Notez que vous aurez à préciser le mode en base octale, ce qui signifie que vous aurez probablement un 0 comme premier chiffre. Le mode sera aussi modifié par le umask courant, que vous pouvez modifier avec la fonction umask().

Note : Le paramètre mode est ignoré sous Windows, et il est devenu optionnel depuis PHP 4.2.0.

Le mode par défaut est le mode 0777, ce qui correspond au maximum de droits possible. Pour plus d'informations sur les modes, lisez en détail la documentation de la fonction chmod().

Exemple 1. Exemple avec mkdir()

<?php
mkdir ("/chemin/de/mon/dossier", 0700);
?>

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Depuis PHP 5.0.0, la fonction mkdir() peut aussi être utilisée avec certains gestionnaires d'URL. Reportez-vous à Annexe N, pour une liste des gestionnaires qui supportent mkdir().

Note : Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contexts, référez-vous à Référence CLX, Flux.

Note : Le paramètre recursivea été ajouté en PHP 5.0.0.

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi rmdir().

Précédent | Sommaire | Suivant
lstat | Niveau supérieur | move_uploaded_file


move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5)

move_uploaded_file -- Déplace un fichier téléchargé

Description

bool move_uploaded_file ( string filename, string destination )

move_uploaded_file() s'assure que le fichier filename est un fichier téléchargé par HTTP POST. Si le fichier est valide, il est déplacé jusqu'à destination.

Si filename n'est pas valide, rien ne se passe, et move_uploaded_file() retournera FALSE.

Si filename est un fichier téléchargé, mais que pour une raison quelconque, il ne peut être déplacé, rien ne se passe, et move_uploaded_file() retourne FALSE. De plus, une alerte sera affichée.

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.

Note : move_uploaded_file() n'est pas affectée par les restrictions liées au safe mode et à l'open_basedir. Cependant, les restrictions sont placées uniquement sur le paramètre destination qui permet le déplacement des fichiers chargés dans lesquels filename peut entrer en conflit avec ces restrictions. move_uploaded_file() permet de s'assurer de la sécurité de cette opération en autorisant le déplacement des seuls fichiers chargés via PHP.

Avertissement

Si le fichier de destination existe déjà, il sera écrasé.

Voir aussi is_uploaded_file(), et la section sur la gestion des téléchargements de fichiers pour un exemple simple d'utilisation.

Précédent | Sommaire | Suivant
mkdir | Niveau supérieur | parse_ini_file


parse_ini_file

(PHP 4, PHP 5)

parse_ini_file -- Traite un fichier de configuration

Description

array parse_ini_file ( string filename [, bool process_sections] )

parse_ini_file() charge le fichier filename et retourne les configurations qui s'y trouvent sous forme d'un tableau associatif. En passant le deuxième paramètre optionnel à process_sections, vous obtiendrez un tableau multi-dimensionnel avec les noms des sections. La valeur par défaut de ce paramètre est FALSE

Note : Cette fonction n'a rien a voir avec le fichier php.ini. Ce dernier a déjà était traité lorsque vous commencez a exécuter votre script. Cette fonction peut vous permettre de lire vos propres fichiers de configuration.

La structure des fichiers de configuration lus est similaire à celle de php.ini.

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 : Depuis PHP 4.2.1, cette fonction est aussi affectée par le safe mode et open_basedir.

Note : Depuis PHP 5.0.0, cette fonction gère aussi les nouvelles lignes dans les valeurs.

Note : Il y a 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 et false. Les valeurs null, no et false donnent "", yes et true donnent "1". Les caractères {}|&~![()" ne doivent pas être utilisés n'importe où dans la clé et ont une signification spéciale dans la valeur.

La structure du fichier .ini est similaire à celle du fichier php.ini.

Les constantes peuvent aussi être utilisées dans le fichier .ini, ce qui fait que si vous définissez une constante avant d'exécuter parse_ini_file(), elle sera intégrée dans les résultats. Seules les valeurs de configuration sont remplacées par leur équivalent en constantes. Par exemple :

Exemple 1. Contenu de sample.ini

; Ceci est un fichier de configuration
; Les commentaires commencent par ';', comme dans php.ini

[premiere_section]
un = 1
cinq = 5
animal = oiseau

[seconde_section]
chemin = "/usr/local/bin"
URL = "http://www.example.com/~utilisateur"

Exemple 2. Exemple avec parse_ini_file()

<?php

define ('oiseau', 'dodu dodo');

// Analyse sans les sections
$ini_array = parse_ini_file("exemple.ini");
print_r($ini_array);

// Analyse avec les sections
$ini_array = parse_ini_file("exemple.ini", TRUE);
print_r($ini_array);

?>

L'exemple ci-dessus va afficher :

Array
(
    [un] => 1
    [cinq] => 5
    [animal] => dodu dodo
    [chemin] => /usr/local/bin
    [URL] => http://www.example.com/~username
)
Array
(
    [premiere_section] => Array
    (
        [un] => 1
        [cinq] => 5
        [animal] => dodu dodo
    )

    [seconde_section] => Array
    (
        [chemin] => /usr/local/bin
        [URL] => http://www.example.com/~utilisateur
    )

)

Si les clés et les noms des sections sont des nombres, ils seront évalués comme des entier PHP. Les nombres commençant par 0 sont évalués comme octal et les nombres commençant par 0x sont évalués comme hexadécimal.

Précédent | Sommaire | Suivant
move_uploaded_file | Niveau supérieur | pathinfo


pathinfo

(PHP 4 >= 4.0.3, PHP 5)

pathinfo -- Retourne des informations sur un chemin système

Description

mixed pathinfo ( string path [, int options] )

pathinfo() retourne un tableau associatif, contenant les informations sur le chemin path. Les éléments suivants sont retournés : dirname, basename et extension si un présent.

Vous pouvez spécifier quels seront les éléments retournés avec le paramètre optionnel options. Il est composé des constantes PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION et PATHINFO_FILENAME (disponible depuis PHP 5.2.0). Par défaut, tous les éléments sont retournés. Cette fonction retourne une chaîne de caractères si tous les éléments ne sont pas tous demandés.

Exemple 1. Exemple avec pathinfo()

<?php
$path_parts = pathinfo('/www/htdocs/index.html');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // depuis PHP 5.2.0
?>

L'exemple ci-dessus va afficher :

/www/htdocs
index.html
html
index

Note : Pour plus d'informations sur la lecture du chemin courant, lisez la section sur les variables pré-définies.

Voir aussi
dirname(),
basename(),
parse_url() et
realpath().

Précédent | Sommaire | Suivant
parse_ini_file | Niveau supérieur | pclose


pclose

(PHP 3, PHP 4, PHP 5)

pclose -- Ferme un processus de pointeur de fichier

Description

int pclose ( resource handle )

pclose() ferme le processus de pointeur de fichier handle, ouvert par popen().

Le pointeur de fichier doit être valide, et avoir été ouvert correctement par popen().

pclose() retourne le statut final du processus exécuté.

Voir aussi popen().

Précédent | Sommaire | Suivant
pathinfo | Niveau supérieur | popen


popen

(PHP 3, PHP 4, PHP 5)

popen -- Crée un processus de pointeur de fichier

Description

resource popen ( string command, string mode )

popen() ouvre un processus fils en faisant un fork de la commande command.

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

Si une erreur survient, retourne FALSE.

Exemple 1. Exemple avec popen()

<?php
$handle = popen ("/bin/ls", "r");
?>

Note : 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. Lire des messages d'erreurs avec popen()

<?php
error_reporting(E_ALL);

/* Ajoute une redirection pour que vous puissiez lire stderr */
$handle = popen('/chemin/vers/spooge 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>

Note : Lorsque le safe mode est activé, vous pouvez uniquement exécuter des programmes qui se situent dans le dossier défini par safe_mode_exec_dir. Pour des raisons pratiques, il n'est actuellement pas permis d''avoir le composant .. dans le chemin de l'exécutable.

Avertissement

Lorsque le safe mode est activé, la chaîne de commande est échappée avec la fonction escapeshellcmd(). Par exemple, echo y | echo x devient echo y \| echo x.

Voir aussi
pclose(),
fopen() et
proc_open().

Précédent | Sommaire | Suivant
pclose | Niveau supérieur | readfile


readfile

(PHP 3, PHP 4, PHP 5)

readfile -- Affiche un fichier

Description

int readfile ( string filename [, bool use_include_path [, resource context]] )

readfile() lit le fichier filename et l'envoie à la sortie standard.

readfile() retourne le nombre d'octets lus depuis le fichier. Si une erreur survient, retourne FALSE, et à moins que la fonction n'ait été appelée avec @readfile, un message d'erreur est affiché.

Astuce : Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Annexe N pour une liste des protocoles URL supportés.

Vous pouvez utiliser le deuxième paramètre optionnel use_include_path pour explorer le dossier include_path, en passant la valeur de TRUE.

Vous pouvez utiliser le contexte context pour configurer les accès aux fichiers distants.

Note : Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contexts, référez-vous à Référence CLX, Flux.

Voir aussi
fpassthru(),
file(),
fopen(),
include(),
file_get_contents(),
Annexe N,
require() et
virtual().

Précédent | Sommaire | Suivant
popen | Niveau supérieur | readlink


readlink

(PHP 3, PHP 4, PHP 5)

readlink -- Renvoie le nom du fichier vers lequel pointe un lien symbolique

Description

string readlink ( string path )

readlink() fait la même chose que la fonction readlink en C. Elle retourne le contenu du lien symbolique repéré par path, ou FALSE en cas d'erreur.

Exemple 1. Exemple avec readlink()

<?php

// affiche par exemple : /boot/vmlinux-2.4.20-xfs
echo readlink('/vmlinuz');

?>

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi
is_link(),
symlink() et
linkinfo().

Précédent | Sommaire | Suivant
readfile | Niveau supérieur | realpath


realpath

(PHP 4, PHP 5)

realpath -- Retourne le chemin canonique absolu

Description

string realpath ( string path )

realpath() résout tous les liens symboliques, et remplace toutes les références /./, /../ et / de path puis retourne le chemin canonique absolu ainsi trouvé. Le résultat ne contient aucun lien symbolique, /./ ou /../.

realpath() retourne FALSE si une erreur survient, e.g. si le fichier n'existe pas. Sous les systèmes BSD, realpath() n'échouera pas s'il manque que le dernier composant du paramètre path, alors que les autres systèmes retourneront FALSE.

Exemple 1. Exemple avec realpath()

<?php
chdir('/var/www/');
echo realpath('./../../etc/passwd');
?>

L'exemple ci-dessus va afficher :

/etc/passwd

Voir aussi
basename(),
dirname() et
pathinfo().

Précédent | Sommaire | Suivant
readlink | Niveau supérieur | rename


rename

(PHP 3, PHP 4, PHP 5)

rename -- Renomme un fichier ou un dossier

Description

bool rename ( string oldname, string newname [, resource context] )

rename() tente de renommer oldname en newname.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec rename()

<?php
rename("/tmp/tmp_file.txt", "/home/user/login/docs/mon_file.txt");
?>

Note : Avant PHP 4.3.3, rename() ne pouvait pas renommer des fichiers entre différentes partitions Unix.

Note : Depuis PHP 5.0.0, rename() peut aussi être utilisée avec certains gestionnaires d'URL. Reportez vous à Annexe N pour une liste des gestionnaires qui supportent rename().

Note : Le gestionnaire utilisé dans le paramètre oldname DOIT être le même que celui utilisé dans newname.

Note : Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contexts, référez-vous à Référence CLX, Flux.

Voir aussi
copy(),
unlink() et
move_uploaded_file().

Précédent | Sommaire | Suivant
realpath | Niveau supérieur | rewind


rewind

(PHP 3, PHP 4, PHP 5)

rewind -- Replace le pointeur de fichier au début

Description

bool rewind ( resource handle )

rewind() replace le pointeur du fichier handle au début. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Le pointeur de fichier doit être valide, et avoir été correctement ouvert par fopen().

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.

Voir aussi fseek() et ftell().

Précédent | Sommaire | Suivant
rename | Niveau supérieur | rmdir


rmdir

(PHP 3, PHP 4, PHP 5)

rmdir -- Efface un dossier

Description

bool rmdir ( string dirname [, resource context] )

rmdir() tente d'effacer le dossier dont le chemin est dirname. Le dossier doit être vide, et le script doit avoir les autorisations adéquates.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Depuis PHP 5.0.0, rmdir() peut aussi être utilisée avec certains gestionnaires d'URL. Reportez vous à Annexe N pour une liste des gestionnaires qui supportent rmdir().

Note : Le paramètre context a été ajouté en PHP 5.0.0.

Note : Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contexts, référez-vous à Référence CLX, Flux.

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi mkdir() et unlink().

Précédent | Sommaire | Suivant
rewind | Niveau supérieur | set_file_buffer


set_file_buffer

(PHP 3 >= 3.0.8, PHP 4 >= 4.0.1, PHP 5)

set_file_buffer -- Alias de stream_set_write_buffer()

Description

Cette fonction est un alias de : stream_set_write_buffer().

Précédent | Sommaire | Suivant
rmdir | Niveau supérieur | stat


stat

(PHP 3, PHP 4, PHP 5)

stat -- Renvoie les informations à propos d'un fichier

Description

array stat ( string filename )

stat() renvoie les informations à propos du fichier filename. Si filename est un lien symbolique, les informations proviennent du fichier lui-même, et non du lien symbolique. lstat() est identique à stat() sauf que les informations seront alors basées sur le lien symbolique.

En cas d'erreurs, stat() retourne FALSE. Elle générera aussi un avertissement.

Retourne un tableau avec des informations sur le fichier avec les éléments suivants. Ce tableau commence à zéro. En plus de retourner ces attributs dans un tableau indexé, ils peuvent être accédés par leurs clés, comme mentionné à côté de chaque paramètre ; ceci est disponible depuis PHP 4.0.6 :

Tableau 1. Résultat de stat() et fstat()

Numéro | Nom (depuis PHP 4.0.6) | Description
0 | dev | volume
1 | ino | inode
2 | mode | droits 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 de volume, si le volume est *
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 alloués
* - uniquement sur les systèmes qui supportent le type st_blksize. Les autres systèmes (e.g. Windows) retournent -1.

Note : Les résultats de cette fonction sont mis en cache. Voyez la fonction clearstatcache() pour plus de détails.

Astuce : Depuis PHP 5.0.0, cette fonction peut aussi être utilisée avec quelques protocoles url. Lisez Annexe N pour une liste des protocoles supportant la famille de fonctionnalités de stat().

Voir aussi
lstat(),
fstat(),
filemtime() et
filegroup().

Précédent | Sommaire | Suivant
set_file_buffer | Niveau supérieur | symlink


symlink

(PHP 3, PHP 4, PHP 5)

symlink -- Crée un lien symbolique

Description

bool symlink ( string target, string link )

symlink() crée un lien symbolique pour l'objet target avec le nom de link.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi
link(),
readlink() et
linkinfo().

Précédent | Sommaire | Suivant
stat | Niveau supérieur | tempnam


tempnam

(PHP 3, PHP 4, PHP 5)

tempnam -- Crée un fichier avec un nom unique

Description

string tempnam ( string dir, string prefix )

tempnam() crée un fichier temporaire unique dans le dossier dir. Si le dossier n'existe pas, tempnam() va générer un nom de fichier dans le dossier temporaire du système. Le nom sera préfixé par le paramètre prefix.

Avant PHP 4.0.6, le comportement de tempnam() dépendait de l'OS sous-jacent. Sous Windows, la variable d'environnement TMP remplace le paramètre dir; sous Linux, la variable d'environnement TMPDIR a la priorité, tandis que pour les OS en système V R4, le paramètre dir sera toujours utilisé, si le dossier qu'il représente existe. Consultez votre documentation pour plus de détails.

Note : Si PHP ne peut pas créer un fichier dans le dossier spécifié par le paramètre dir, il tentera dans le dossier par défaut du système.

tempnam() retourne le nom du fichier temporaire ou FALSE en cas d'échec.

Exemple 1. Exemple avec tempnam()

<?php
$tmpfname = tempnam ("/tmp", "FOO");

$handle = fopen($tmpfname, "w");
fwrite($handle, "Ecrire dans le fichier temporaire");
fclose($handle);

// faire quelquechose ici

unlink($tmpfname);
?>

Note : Le comportement de tempnam() a été modifié en PHP 4.0.3. Le fichier temporaire est aussi créé pour éviter des conflits si le fichier apparaît dans le système de fichiers entre le moment où la chaîne est générée et avant que le script n'ait terminé la création du fichier. Notez que vous devez effacer le fichier si vous n'en avez plus besoin, car cela n'est pas fait automatiquement.

Voir aussi
tmpfile(),
sys_get_tmp_dir() et
unlink().

Précédent | Sommaire | Suivant
symlink | Niveau supérieur | tmpfile


tmpfile

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

tmpfile -- Crée un fichier temporaire

Description

resource tmpfile ( void )

tmpfile() crée un fichier temporaire avec un nom unique, ouvert en écriture et lecture (w+), et retourne un pointeur de fichier, identique à ceux retournés par fopen(). Ce fichier sera automatiquement effacé lorsqu'il sera fermé (avec fclose()), ou lorsque le script sera terminé.

Pour plus de détails, consultez votre documentation système sur la fonction tmpfile(3), et sur stdio.h.

Exemple 1. Exemple avec tmpfile()

<?php
$temp = tmpfile();
fwrite($temp, "Ecriture dans le fichier temporaire");
fseek($temp, 0);
echo fread($temp, 1024);
fclose($temp); // Ceci supprime le fichier temporaire
?>

L'exemple ci-dessus va afficher :

Ecriture dans le fichier temporaire

Voir aussi tempnam() et sys_get_temp_dir().

Précédent | Sommaire | Suivant
tempnam | Niveau supérieur | touch


touch

(PHP 3, PHP 4, PHP 5)

touch -- Modifie la date de modification et de dernier accès d'un fichier

Description

bool touch ( string filename [, int time [, int atime]] )

touch() tente de forcer la date de modification du fichier désigné par le paramètre filename à la date de spécifiée par le paramètre time. Si time est omis, c'est l'heure courante qui est utilisée. Si le troisième paramètre atime est fourni, il est utilisé comme date de dernier accès. Notez bien que la date de dernier accès est modifiée, quelque soit le nombre de paramètres.

Si le fichier n'existe pas, PHP tente de le créer. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Avertissement

Il n'est pour le moment pas possible de changer la date de modification d'un dossier avec cette fonction sous Windows.

Exemple 1. Exemple avec touch()

<?php
if ( touch($NomDeFichier) ) {
    echo "La date de modification de $NomDeFichier a
    été fixée à maintenant";
} else {
    echo "Désolé, il est impossible de changer
    la date de modification de $NomDeFichier";
}
?>

Précédent | Sommaire | Suivant
tmpfile | Niveau supérieur | umask


umask

(PHP 3, PHP 4, PHP 5)

umask -- Change le "umask" courant

Description

int umask ( [int mask] )

umask() change le umask de PHP et le remplace par mask : mask & 0777 puis, retourne le vieux umask. Lorsque PHP est utilisé comme module de serveur, le umask reprend sa valeur à la fin de chaque script.

umask(), appelée sans arguments, retourne simplement le umask courant.

Note : Évitez d'utiliser cette fonction sur un serveur Web multi-threadé. 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.

Exemple 1. Exemple avec umask()

<?php
$old = umask(0);
chmod("/chemin/un_dossier/un_fichier.txt", 0755);
umask($old);

// vérification
if ($old != umask()) {
   die('Une erreur est intervenue durant la modification des droits');
}
?>

Précédent | Sommaire | Suivant
touch | Niveau supérieur | unlink


unlink

(PHP 3, PHP 4, PHP 5)

unlink -- Efface un fichier

Description

bool unlink ( string filename [, resource context] )

unlink() efface filename. Identique à la fonction Unix C unlink(). Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Depuis PHP 5.0.0, unlink() peut aussi être utilisée avec quelques protocoles d'URL. Voyez Annexe N pour une liste des protocoles supportant unlink().

Note : Le support de contexte a été ajouté en PHP 5.0.0. Pour une description des contexts, référez-vous à Référence CLX, Flux.

Voir aussi rmdir() pour la suppression de dossiers.

Précédent | Sommaire | Suivant
umask | Niveau supérieur | Fonctions Filter


Fonctions FriBiDi

Manuel PHP
Précédent Suivant

XLIV. Fonctions FriBiDi

Introduction

FriBiDi est une implémentation libre de l'algorithme bidirectionnel unicode.

Pré-requis

Vous devez télécharger et installer la bibliothèque FriBiDi.

Installation

Cette extension PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/fribidi.

Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support Fribidi en utilisant l'option de configuration --with-fribidi[=DIR].

Les utilisateurs de Windows doivent activer la bibliothèque php_fribidi.dll dans le php.ini pour pouvoir utiliser ces fonctions. La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Configuration à l'exécution

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.

FRIBIDI_CHARSET_UTF8 (entier)

Unicode

FRIBIDI_CHARSET_8859_6 (entier)

Arabe

FRIBIDI_CHARSET_8859_8 (entier)

Hébreu

FRIBIDI_CHARSET_CP1255 (entier)

Hébreu / Yiddish

FRIBIDI_CHARSET_CP1256 (entier)

Arabe

FRIBIDI_CHARSET_ISIRI_3342 (entier)

Persan

FRIBIDI_CHARSET_CAP_RTL (entier)

Utilisé à des fins de tests ; traite les CAPS comme des lettres non anglaises

FRIBIDI_RTL (entier)

De droite à gauche

FRIBIDI_LTR (entier)

De gauche à droite

FRIBIDI_AUTO (entier)

Autodétection de la direction

Table des matières
fribidi_log2vis -- Convertit une chaîne logique en chaîne visuelle

Précédent | Sommaire | Suivant
PDO_FIREBIRD DSN | Niveau supérieur | fribidi_log2vis


fribidi_log2vis

(PHP 4 >= 4.0.4, PECL)

fribidi_log2vis -- Convertit une chaîne logique en chaîne visuelle

Description

string fribidi_log2vis ( string str, string direction, int charset )

Convertit une chaîne logique en chaîne visuelle.

Liste de paramètres

str

La chaîne logique.

direction

Une constante parmis FRIBIDI_RTL, FRIBIDI_LTR ou FRIBIDI_AUTO.

charset

Une constante parmis les constantes FRIBIDI_CHARSET_XXX.

Valeurs de retour

Retourne la chaîne visuelle en cas de succès, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
Fonctions FriBiDi | Niveau supérieur | FrontBase


Fonctions FTP

Manuel PHP
Précédent Suivant

XLVI. Fonctions FTP

Introduction

Les fonctions de cette extension implémentent l'accès au client à un serveur de fichier qui gère le protocole FTP comme défini dans la RFC http://www.faqs.org/rfcs/rfc959. Cette extension Cette extension permet à l'accès détaillé sur un serveur FTP fournissant un éventail de commandes pour les scripts. Si vous voulez uniquement lire ou écrire un fichier sur un serveur FTP, utilisez plutôt le gestionnaire ftp:// wrapper avec les fonctions de système de fichiers qui fournissent une interface simple et intuitive.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Pour activer le module FTP de votre configuration PHP, il faut utiliser l'option --enable-ftp en PHP 4 et supérieur, et l'option --with-ftp en PHP 3.

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

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension utilise un type de ressource qui est un identifiant du lien de 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 (entier)

FTP_TEXT (entier)

FTP_BINARY (entier)

FTP_IMAGE (entier)

FTP_TIMEOUT_SEC (entier)

Voir ftp_set_option() pour les détails.

Les constantes suivantes ont été introduites en PHP 4.3.0.

FTP_AUTOSEEK (entier)

Voir ftp_set_option() pour les détails.

FTP_AUTORESUME (entier)

Détermine automatiquement la position de reprise (RESUME) et la position de début pour les requêtes GET et PUT (ne fonctionne qu'avec FTP_AUTOSEEK)

FTP_FAILED (entier)

Le mode asynchrone a échoué

FTP_FINISHED (entier)

Le mode asynchrone a terminé

FTP_MOREDATA (entier)

Le mode asynchrone est encore actif

Exemples

Exemple 1. Exemple FTP

<?php
// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
        echo "La connexion FTP a échoué !";
        echo "Tentative de connexion au serveur $ftp_server pour l'utilisateur $ftp_user_name";
        exit;
    } else {
        echo "Connexion au serveur $ftp_server, pour l'utilisateur $ftp_user_name";
    }

// Chargement d'un fichier
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// Vérification du status du chargement
if (!$upload) {
        echo "Le chargement FTP a échoué!";
    } else {
        echo "Chargement de $source_file vers $ftp_server en tant que $destination_file";
    }

// Fermeture du flux FTP
ftp_close($conn_id);
?>

Table des matières
ftp_alloc -- Alloue de l'espace pour un téléchargement de fichier
ftp_cdup -- Change de dossier et passe au dossier parent
ftp_chdir -- Change 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 le serveur FTP
ftp_fget -- Télécharge un fichier via FTP dans un fichier local
ftp_fput -- Charge un fichier sur un serveur FTP
ftp_get_option -- Lit différentes options pour la connexion FTP courante
ftp_get -- Télécharge un fichier depuis un serveur FTP
ftp_login -- Identification avec une connexion FTP
ftp_mdtm -- Retourne la date de dernière modification d'un fichier sur un serveur FTP
ftp_mkdir -- Crée un dossier sur un serveur FTP
ftp_nb_continue -- Reprend le téléchargement d'un fichier (non bloquant)
ftp_nb_fget -- Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)
ftp_nb_fput -- Ecrit 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 le serveur FTP (non-bloquant)
ftp_nlist -- Retourne la liste des fichiers dans 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 dans 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 -- Envoie la commande SITE au serveur
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

Précédent | Sommaire | Suivant
fbsql_warnings | Niveau supérieur | ftp_alloc


ftp_alloc

(PHP 5)

ftp_alloc -- Alloue de l'espace pour un téléchargement de fichier

Description

bool ftp_alloc ( resource ftp_stream, int filesize [, string &result] )

ftp_alloc() envoie la commande FTP ALLO pour allouer un espace sur le serveur FTP de filesize octets.

Note : De nombreux serveur FTP ne supportent pas cette commande. Ces serveurs peuvent retourner un code d'erreur (FALSE) qui indique que la commande n'est pas supportée, ou (TRUE) pour dire que la pré-allocation n'est pas nécessaire : le client continue alors ses opérations de la même façon. À cause de cela, il est préférable de n'utiliser cette fonction qu'avec les serveurs qui requièrent spécifiquement cette fonction.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

filezise

Le nombre d'octets à allouer.

return

Une représentation textuelle de la réponse du serveur qui sera retournée par référence dans result si une variable est fournie.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec ftp_alloc()

<?php

$file = "/home/user/myfile";

/* Connexion au serveur */
$conn_id = ftp_connect('ftp.example.com');
$login_result = ftp_login($conn_id, 'anonymous', 'user@example.com');

if (ftp_alloc($conn_id, filesize($file), $result)) {
  echo "Espace alloué avec succès sur le serveur. Envoi de $file.\n";
  ftp_put($conn_id, '/incomming/myfile', $file, FTP_BINARY);
} else {
  echo "Impossible d'allouer l'espace sur le serveur. Réponse du serveur : $result\n";
}

ftp_close($conn_id);

?>

Voir aussi

ftp_put()
ftp_fput()

Précédent | Sommaire | Suivant
Fonctions FTP | Niveau supérieur | ftp_cdup


ftp_cdup

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_cdup -- Change de dossier et passe au dossier parent

Description

bool ftp_cdup ( resource ftp_stream )

ftp_cdup() change de dossier et passe au dossier parent.

Liste de paramètres

ftp_stream

L'identifiant du lien de la connexion FTP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec ftp_cdup()

<?php
// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec nom d'utilisateur et mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Modifie le dossier courant en html
ftp_chdir($conn_id, 'html');

echo ftp_pwd($conn_id); // /html

// Retour au dossier parent
if (ftp_cdup($conn_id)) {
  echo "succès de cdup\n";
} else {
  echo "Echec de cdup\n";
}

echo ftp_pwd($conn_id); // /

ftp_close($conn_id);
?>

Voir aussi

ftp_chdir()
ftp_pwd()

Précédent | Sommaire | Suivant
ftp_alloc | Niveau supérieur | ftp_chdir


ftp_chdir

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_chdir -- Change le dossier FTP courant

Description

bool ftp_chdir ( resource ftp_stream, string directory )

ftp_chdir() change le dossier courant en directory.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

directory

Le dossier cible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Si le changement échoue, PHP lancera également une alerte.

Exemples

Exemple 1. Exemple avec ftp_chdir()

<?php

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
    die("Echec de la connexion FTP !");
}

echo "Dossier courant : " . ftp_pwd($conn_id) . "\n";

// Tentative de modification du dossier en "somedir"
if (ftp_chdir($conn_id, "somedir")) {
    echo "Le dossier courant est maintenant : " . ftp_pwd($conn_id) . "\n";
} else {
    echo "Impossible de changer de dossier\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi

ftp_cdup()
ftp_pwd()

Précédent | Sommaire | Suivant
ftp_cdup | Niveau supérieur | ftp_chmod


ftp_chmod

(PHP 5)

ftp_chmod -- Modifie les droits d'un fichier via FTP

Description

int ftp_chmod ( resource ftp_stream, int mode, string filename )

ftp_chmod() modifie les droits d'accès au fichier filename sur le serveur FTP ftp_stream, en lui attribuant les droits de mode, spécifié sous la forme d'un entier en base octale.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

mode

La nouvelle permission, donnée en tant que valeur octale.

filename

Le fichier distant.

Valeurs de retour

Retourne les nouvelles permissions du fichier en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec ftp_chmod()

<?php
$file = 'public_html/index.php';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tentative de modification des permissions du fichier $file en 644
if (ftp_chmod($conn_id, 0644, $file) !== false) {
 echo "Les permissions du fichier $file ont été modifiées avec succès en 644\n";
} else {
 echo "Impossible de modifier les permissions du fichier $file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi

chmod()

Précédent | Sommaire | Suivant
ftp_chdir | Niveau supérieur | ftp_close


ftp_close

(PHP 4 >= 4.2.0, PHP 5)

ftp_close -- Ferme une connexion FTP

Description

bool ftp_close ( resource ftp_stream )

ftp_close() ferme la connexion ftp_stream et libère les ressources.

Note : Après avoir appelé cette fonction, vous ne pouvez plus utiliser l'ancienne connexion, et vous devez en ouvrir une nouvelle avec ftp_connect().

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec ftp_close()

<?php

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Affichage du dossier courant
echo ftp_pwd($conn_id); // /

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi

ftp_connect()

Précédent | Sommaire | Suivant
ftp_chmod | Niveau supérieur | ftp_connect


ftp_connect

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_connect -- Ouvre une connexion FTP

Description

resource ftp_connect ( string host [, int port [, int timeout]] )

ftp_connect() ouvre une connexion FTP avec l'hôte host.

Liste de paramètres

host

L'adresse du serveur FTP. Ce paramètre ne doit jamais avoir de slash final et ne doit pas être préfixé par ftp://.

port

Ce paramètre spécifie un numéro de port alternatif pour la connexion. S'il est omis ou définie à zéro, alors le port par défaut utilisé sera 21.

timeout

Ce paramètre spécifie le délai de connexion pour toutes les opérations de sous séquences du réseau. S'il est omis, la valeur par défaut sera 90 secondes. Le délai de connexion peut être modifié et interrogé à n'importe quel moment avec les moments ftp_set_option() et ftp_get_option().

Valeurs de retour

Retourne un flux FTP en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec ftp_connect()

<?php

$ftp_server = "ftp.example.com";

// Mise en place d'une connexion
$conn_id = ftp_connect($ftp_server) or die("Impossible de se connecter au serveur $ftp_server");

?>

Historique

Version | Description
4.2.0 | timeout a été ajouté.

Voir aussi

ftp_close()
ftp_ssl_connect()

Précédent | Sommaire | Suivant
ftp_close | Niveau supérieur | ftp_delete


ftp_delete

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_delete -- Efface un fichier sur un serveur FTP

Description

bool ftp_delete ( resource ftp_stream, string path )

ftp_delete() efface le fichier path sur un serveur FTP.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

path

Le fichier à effacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec ftp_delete()

<?php
$file = 'public_html/old.txt';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tente d'effacer le fichier $file
if (ftp_delete($conn_id, $file)) {
 echo "$file effacé avec succès\n";
} else {
 echo "Impossible d'effacer le fichier $file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Précédent | Sommaire | Suivant
ftp_connect | Niveau supérieur | ftp_exec


ftp_exec

(PHP 4 >= 4.0.3, PHP 5)

ftp_exec -- Exécute une commande sur le serveur FTP

Description

bool ftp_exec ( resource ftp_stream, string command )

ftp_exec() envoie une commande SITE EXEC au serveur FTP, pour qu'il exécute le programme command.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

command

La commande à exécuter.

Valeurs de retour

Retourne TRUE si la commande a été exécutée avec succès (le serveur envoie le code réponse : 200); sinon, retourne FALSE.

Exemples

Exemple 1. Exemple avec ftp_exec()

<?php

// Initialisation de la variable
$command = 'ls -al >files.txt';

// Initialisation de la connexion
$conn_id = ftp_connect($ftp_server);

// Identification
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Éxécution d'une commande
if (ftp_exec($conn_id, $command)) {
    echo "$command a été exécuté avec succès\n";
} else {
    echo "Impossible d\'exécuter : $command\n";
}

// Fermeture de la connexion
ftp_close($conn_id);

?>

Voir aussi

ftp_raw()

Précédent | Sommaire | Suivant
ftp_delete | Niveau supérieur | ftp_fget


ftp_fget

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_fget -- Télécharge un fichier via FTP dans un fichier local

Description

bool ftp_fget ( resource ftp_stream, resource handle, string remote_file, int mode [, int resumepos] )

ftp_fget() télécharge le fichier remote_file depuis le serveur FTP et l'écrit dans le fichier identifié par handle.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

handle

Un pointeur de fichier ouvert dans lequel on écrit les données.

remote_file

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

resumepos

La position du fichier distant à partir de laquelle le téléchargement commence.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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.txt', 'w');

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tente de téléchargement le fichier $remote_file et de le sauvegarder dans $handle
if (ftp_fget($conn_id, $handle, $remote_file, FTP_ASCII, 0)) {
 echo "Ecriture dans le fichier $local_file avec succès\n";
} else {
 echo "Il y a un problème lors du téléchargement du fichier $remote_file dans $local_file\n";
}

// Fermeture de la connexion et du pointeur de fichier
ftp_close($conn_id);
fclose($handle);
?>

Historique

Version | Description
4.3.0 | resumepos a été ajouté.

Voir aussi

ftp_get()
ftp_nb_get()
ftp_nb_fget()

Précédent | Sommaire | Suivant
ftp_exec | Niveau supérieur | ftp_fput


ftp_fput

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_fput -- Charge un fichier sur un serveur FTP

Description

bool ftp_fput ( resource ftp_stream, string remote_file, resource handle, int mode [, int startpos] )

ftp_fput() charge les données issues du fichier identifié par handle jusqu'à la fin du fichier.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le chemin vers le fichier distant.

handle

Un pointeur de fichier ouvert sur le fichier local. La lecture s'arrête à la fin du fichier.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

startpos

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec ftp_fput()

<?php

// Ouverture de quelques fichiers pour lecture
$file = 'somefile.txt';
$fp = fopen($file, 'r');

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tente de charger le fichier $file
if (ftp_fput($conn_id, $file, $fp, FTP_ASCII)) {
    echo "Chargement avec succès du fichier $file\n";
} else {
    echo "Il y a eu un problème lors du chargement du fichier $file\n";
}

// Fermeture de la connexion et du pointeur de fichier
ftp_close($conn_id);
fclose($fp);

?>

Historique

Version | Description
4.3.0 | startpos a été ajouté.

Voir aussi

ftp_put()
ftp_nb_fput()
ftp_nb_put()

Précédent | Sommaire | Suivant
ftp_fget | Niveau supérieur | ftp_get_option


ftp_get_option

(PHP 4 >= 4.2.0, PHP 5)

ftp_get_option -- Lit différentes options pour la connexion FTP courante

Description

mixed ftp_get_option ( resource ftp_stream, int option )

ftp_get_option() retourne la valeur de l'option option depuis la connexion FTP spécifiée.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

option

Actuellement, les options suivantes sont supportées :

Tableau 1. Options FTP supportées

FTP_TIMEOUT_SEC | Retourne le délai de connexion courant utilisé pour les opérations sur le réseau.
FTP_AUTOSEEK | Retourne TRUE si cette option est active, FALSE sinon.

Valeurs de retour

Retourne la valeur en cas de succès, ou FALSE si l'option option n'est pas supportée. Dans le dernier cas, un message d'alerte est également envoyé.

Exemples

Exemple 1. Exemple avec ftp_get_option()

<?php
// Récupération du délai de connexion du flux FTP courant
$timeout = ftp_get_option($conn_id, FTP_TIMEOUT_SEC);
?>

Voir aussi

ftp_set_option()

Précédent | Sommaire | Suivant
ftp_fput | Niveau supérieur | ftp_get


ftp_get

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_get -- Télécharge un fichier depuis un serveur FTP

Description

bool ftp_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos] )

ftp_get() télécharge le fichier remote_file depuis le serveur FTP, et le sauve dans le fichier local local_file.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

local_file

Le chemin vers le fichier local (sera écrasé si le fichier existe déjà).

remote_file

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

resumepos

La position dans le fichier distant à partir duquel on commence le téléchargement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec ftp_get()

<?php

// Définission de quelques variables
$local_file = 'local.zip';
$server_file = 'server.zip';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tentative de téléchargement du fichier $server_file et sauvegarde dans le fichier $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
    echo "Le fichier $local_file a été écris avec succès\n";
} else {
    echo "Il y a un problème\n";
}

// Fermeture de la connexion
ftp_close($conn_id);

?>

Historique

Version | Description
4.3.0 | resumepos a été ajouté.

Voir aussi

ftp_pasv()
ftp_fget()
ftp_nb_get()
ftp_nb_fget()

Précédent | Sommaire | Suivant
ftp_get_option | Niveau supérieur | ftp_login


ftp_login

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_login -- Identification avec une connexion FTP

Description

bool ftp_login ( resource ftp_stream, string username, string password )

ftp_login() identifie le flux FTP sur le serveur, avec le nom d'utilisateur username et le mot de passe password.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

username

Le nom de l'utilisateur (USER).

password

Le mot de passe (PASS).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Si l'identification échoue, PHP lancera une alerte.

Exemples

Exemple 1. Exemple avec ftp_login()

<?php

$ftp_server = "ftp.example.com";
$ftp_user = "foo";
$ftp_pass = "bar";

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

// Tentative d'identification
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
    echo "Connecté en tant que $ftp_user@$ftp_server\n";
} else {
    echo "Connexion impossible en tant que $ftp_user\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Précédent | Sommaire | Suivant
ftp_get | Niveau supérieur | ftp_mdtm


ftp_mdtm

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_mdtm -- Retourne la date de dernière modification d'un fichier sur un serveur FTP

Description

int ftp_mdtm ( resource ftp_stream, string remote_file )

ftp_mdtm() lit la date de dernière modification d'un fichier distant.

Note : Tous les serveurs ne supportent pas cette fonctionnalité !

Note : ftp_mdtm() ne fonctionne pas avec les dossiers.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le fichier depuis lequel on doit extraire la date de dernière modification.

Valeurs de retour

Retourne la date de dernière modification en tant que timestamp Unix en cas de succès, ou -1 si une erreur survient.

Exemples

Exemple 1. Exemple avec ftp_mdtm()

<?php

$file = 'somefile.txt';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

//  Récupération de la date de dernière modification
$buff = ftp_mdtm($conn_id, $file);

if ($buff != -1) {
    // somefile.txt was last modified on: March 26 2003 14:16:41.
    echo "$file a été modifié pour la dernière fois : " . date("F d Y H:i:s.", $buff);
} else {
    echo "Impossible de récupérer mdtime";
}

// Fermeture de la connexion
ftp_close($conn_id);

?>

Précédent | Sommaire | Suivant
ftp_login | Niveau supérieur | ftp_mkdir


ftp_mkdir

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_mkdir -- Crée un dossier sur un serveur FTP

Description

string ftp_mkdir ( resource ftp_stream, string directory )

ftp_mkdir() crée le dossier nommé directory sur le serveur FTP.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

directory

Le nom du dissier qui doit être créé.

Valeurs de retour

Retourne le nom du dossier créé en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec ftp_mkdir()

<?php

$dir = 'www';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identication avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tentative de création du dossier $dir
if (ftp_mkdir($conn_id, $dir)) {
 echo "Le dossier $dir a été créé avec succès\n";
} else {
 echo "Il y a eu un problème lors de la création du dossier $dir\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi

ftp_rmdir()

Précédent | Sommaire | Suivant
ftp_mdtm | Niveau supérieur | ftp_nb_continue


ftp_nb_continue

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_continue -- Reprend le téléchargement d'un fichier (non bloquant)

Description

int ftp_nb_continue ( resource ftp_stream )

ftp_nb_continue() reprend le téléchargement d'un fichier sur la connexion ftp_stream, de manière asynchrone.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

Valeurs de retour

Retourne FTP_FAILED ou FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple 1. ftp_nb_continue() example

<?php

// Initialisation du téléchargement
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Continue le téléchargement...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Il y a eu une erreur pendant le téléchargement du fichier...";
   exit(1);
}
?>

Précédent | Sommaire | Suivant
ftp_mkdir | Niveau supérieur | ftp_nb_fget


ftp_nb_fget

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fget -- Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)

Description

int ftp_nb_fget ( resource ftp_stream, resource handle, string remote_file, int mode [, int resumepos] )

ftp_nb_fget() lit le fichier remote_file présent sur le serveur FTP ftp_stream.

La différence entre cette fonction et ftp_fget() est que cette fonction peut lire le fichier de manière asynchrone, afin que votre programme fasse autre chose pendant que le fichier est téléchargé.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

handle

Un pointeur de fichier ouvert dans lequel les données sont écrites.

remote_file

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soir FTP_ASCII ou FTP_BINARY.

resumepos

Valeurs de retour

Retourne FTP_FAILED ou FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple 1. Exemple avec ftp_nb_fget()

<?php

// Ouverture de quelques fichiers pour lecture
$file = 'index.php';
$fp = fopen($file, 'w');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Initialise le téléchargement
$ret = ftp_nb_fget($conn_id, $fp, $file, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Faites ce que vous voulez...
   echo ".";

   // Continue le téléchargement...
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "Il y a eu une erreur pendant le téléchargement du fichier...";
   exit(1);
}

// Ferme le pointeur de fichier
fclose($fp);
?>

Voir aussi

ftp_nb_get()
ftp_nb_continue()
ftp_fget()
ftp_get()

Précédent | Sommaire | Suivant
ftp_nb_continue | Niveau supérieur | ftp_nb_fput


ftp_nb_fput

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fput -- Ecrit un fichier sur un serveur FTP, et le lit depuis un fichier (non bloquant)

Description

int ftp_nb_fput ( resource ftp_stream, string remote_file, resource handle, int mode [, int startpos] )

ftp_nb_fput() écrit le fichier remote_file présent sur la machine locale, sur le serveur FTP ftp_stream.

La différence entre cette fonction et ftp_fput() est que cette fonction peut lire le fichier de manière asynchrone, afin que votre programme fasse autre chose pendant que le fichier est téléchargé.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le chemin vers le fichier distant.

handle

Un pointeur de fichier vers un fichier local. La lecture s'arrête à la fin du fichier.

mode

Le mode de transfert. Doit être soit FTP_ASCII ou FTP_BINARY.

startpos

Valeurs de retour

Retourne FTP_FAILED ou FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple 1. Exemple avec ftp_nb_fput()

<?php

$file = 'index.php';

$fp = fopen($file, 'r');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Initialise le chargement
$ret = ftp_nb_fput($conn_id, $file, $fp, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Faites ce que vous voulez...
   echo ".";

   // Continue le chargement...
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "Il y a eu un problème lors du chargement du fichier...";
   exit(1);
}

fclose($fp);
?>

Voir aussi

ftp_nb_put()
ftp_nb_continue()
ftp_put()
ftp_fput()

Précédent | Sommaire | Suivant
ftp_nb_fget | Niveau supérieur | ftp_nb_get


ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_get -- Lit un fichier sur un serveur FTP, et l'écrit dans un fichier (non bloquant)

Description

int ftp_nb_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos] )

ftp_nb_get() lit le fichier remote_file présent sur le serveur FTP ftp_stream et le sauvegarde dans un fichier local.

La différence entre cette fonction et ftp_fget() est que cette fonction peut lire le fichier de manière asynchrone, afin que votre programme fasse autre chose pendant que le fichier est téléchargé.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

local_file

Le chemin vers le fichier local (sera écrasé si le fichier existe déjà).

remote_file

Le chemin vers le fichier distant.

mode

Le mode de transfert. Doit être soit FTP_ASCII ou FTP_BINARY.

resumepos

Valeurs de retour

Retourne FTP_FAILED ou FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple 1. Exemple avec ftp_nb_get()

<?php

// Initialise le téléchargement
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Faites ce que vous voulez...
   echo ".";

   // Continue le téléchargement...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Il y a eu un problème lors du téléchargement...";
   exit(1);
}
?>

Exemple 2. Reprise d'un téléchargement avec ftp_nb_get()

<?php

// Initialise
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,
                      filesize("test"));
// Ou : $ret = ftp_nb_get($my_connection, "test", "README",
//                           FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

   // Faites ce que vous voulez...
   echo ".";

   // Continue le téléchargement...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Il y a eu un problème lors du téléchargement du fichier...";
   exit(1);
}
?>

Exemple 3. Reprise d'un téléchargement à la position 100 dans un nouveau fichier avec ftp_nb_get()

<?php

// Désactive l'Autoseek
ftp_set_option($my_connection, FTP_AUTOSEEK, false);

// Initialisation
$ret = ftp_nb_get($my_connection, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

   /* ... */

   // Continue le téléchargement...
   $ret = ftp_nb_continue($my_connection);
}
?>

Dans l'exemple ci-dessus, "newfile" est 100 octets plus petit que "README" sur le site FTP, car nous avons commencé à lire à l'offset 100. Si nous n'avions pas désactivé l'option FTP_AUTOSEEK, les premiers 100 octets du fichier seraient complétés avec '\0'.

Voir aussi

ftp_nb_fget()
ftp_nb_continue()
ftp_fget()
ftp_get()

Précédent | Sommaire | Suivant
ftp_nb_fput | Niveau supérieur | ftp_nb_put


ftp_nb_put

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_put -- Envoie un fichier sur le serveur FTP (non-bloquant)

Description

int ftp_nb_put ( resource ftp_stream, string remote_file, string local_file, int mode [, int startpos] )

ftp_nb_put() écrit le fichier remote_file présent sur la machine locale, sur le serveur FTP ftp_stream.

La différence entre cette fonction et ftp_fput() est que cette fonction peut lire le fichier de manière asynchrone, afin que votre programme fasse autre chose pendant que le fichier est téléchargé.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le chemin vers le fichier distant.

local_file

Le chemin vers le fichier local.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

startpos

Valeurs de retour

Retourne FTP_FAILED ou FTP_FINISHED ou FTP_MOREDATA.

Exemples

Exemple 1. Exemple avec ftp_nb_put()

<?php

// Initialisation du chargement
$ret = ftp_nb_put($my_connection, "test.remote", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // Faites ce que vous voulez...
   echo ".";

   // Continue le chargement...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Il y a eu un problème lors du chargement du fichier...";
   exit(1);
}
?>

Exemple 2. Reprise d'un chargement avec ftp_nb_put()

<?php

// Initialisation
$ret = ftp_nb_put($my_connection, "test.remote", "test.local",
                      FTP_BINARY, ftp_size("test.remote"));
// Ou : $ret = ftp_nb_put($my_connection, "test.remote", "test.local",
//                           FTP_BINARY, FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

   // Faites ce que vous voulez...
   echo ".";

   // Continue le chargement...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "Il y a eu un problème lors du chargement...";
   exit(1);
}
?>

Voir aussi

ftp_nb_fput()
ftp_nb_continue()
ftp_put()
ftp_fput()

Précédent | Sommaire | Suivant
ftp_nb_get | Niveau supérieur | ftp_nlist


ftp_nlist

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_nlist -- Retourne la liste des fichiers dans un dossier

Description

array ftp_nlist ( resource ftp_stream, string directory )

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

directory

Le dossier à lister. Ce paramètre peut également inclure des arguments, eg. ftp_nlist($conn_id, "-la /your/dir"); Notez que ce paramètre n'est pas échappé, il peut donc y avoir des comportements non-désirés si le nom des fichiers contient des espaces ou d'autres caractères.

Valeurs de retour

Retourne un tableau de nom de fichiers depuis le dossier spécifié en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec ftp_nlist()

<?php

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Récupération du contenu d'un dossier
$contents = ftp_nlist($conn_id, ".");

// Affichage de $contents
var_dump($contents);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  string(11) "public_html"
  [1]=>
  string(10) "public_ftp"
  [2]=>
  string(3) "www"

Voir aussi

ftp_rawlist()

Précédent | Sommaire | Suivant
ftp_nb_put | Niveau supérieur | ftp_pasv


ftp_pasv

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_pasv -- Active ou désactive le mode passif

Description

bool ftp_pasv ( resource ftp_stream, bool pasv )

ftp_pasv() active ou non le mode passif. En mode passif, les données de connexion sont initiées par le client, plutôt que par le serveur. Ce mode peut être nécessaire lorsque le client est dérrière un pare-feu.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

pasv

Si TRUE, le mode passif est activé, sinon, il est désactivé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec ftp_pasv()

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Activation du mode passif
ftp_pasv($conn_id, true);

// Chargement d'un fichier
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "Le fichier $file a été chargé avec succès\n";
} else {
 echo "Il y a eu un problème lors du chargement du fichier $file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Précédent | Sommaire | Suivant
ftp_nlist | Niveau supérieur | ftp_put


ftp_put

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_put -- Charge un fichier sur un serveur FTP

Description

bool ftp_put ( resource ftp_stream, string remote_file, string local_file, int mode [, int startpos] )

ftp_put() enregistre le fichier local_file sur le serveur FTP.

Liste de paramètres

ftp_stream

L'identifiant du lien de la connexion FTP.

remote_file

Le chemin vers le fichier distant.

local_file

Le chemin vers le fichier local.

mode

Le mode de transfert. Doit être soit FTP_ASCII, soit FTP_BINARY.

startpos

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec ftp_put()

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Charge un fichier
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "Le fichier $file a té chargé avec succès\n";
} else {
 echo "Il y a eu un problème lors du chargement du fichier $file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Historique

Version | Description
4.3.0 | startpos a été ajouté.

Voir aussi

ftp_pasv()
ftp_fput()
ftp_nb_fput()
ftp_nb_put()

Précédent | Sommaire | Suivant
ftp_pasv | Niveau supérieur | ftp_pwd


ftp_pwd

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_pwd -- Retourne le nom du dossier courant

Description

string ftp_pwd ( resource ftp_stream )

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

Valeurs de retour

Retourne le nom du dossier courant ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec ftp_pwd()

<?php

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Change le dossier en public_html
ftp_chdir($conn_id, 'public_html');

// Affiche le dossier courant
echo ftp_pwd($conn_id); // /public_html

// Fermeture de la connexion
ftp_close($conn_id);
?>

Voir aussi

ftp_chdir()
ftp_cdup()

Précédent | Sommaire | Suivant
ftp_put | Niveau supérieur | ftp_quit


ftp_quit

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_quit -- Alias de ftp_close()

Description

Cette fonction est un alias de : ftp_close().

Précédent | Sommaire | Suivant
ftp_pwd | Niveau supérieur | ftp_raw


ftp_raw

(PHP 5)

ftp_raw -- Envoie une commande FTP brute

Description

array ftp_raw ( resource ftp_stream, string command )

ftp_raw() envoie la commande FTP brute command au serveur FTP identifié par ftp_stream.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

command

La commande à exécuter.

Valeurs de retour

Retourne la réponse serveur en tant qu'un tableau de chaînes. Aucune analyse n'est faite sur la chaîne réponse, ni si ftp_raw() détermine si la commande a réussi.

Exemples

Exemple 1. Utilisation de ftp_raw() pour s'identifier sur un serveur FTP manuellement.

<?php
$fp = ftp_connect("ftp.example.com");

/* Ceci est la même chose que :
   ftp_login($fp, "joeblow", "secret"); */
ftp_raw($fp, "USER joeblow");
ftp_raw($fp, "PASS secret");
?>

Voir aussi

ftp_exec()

Précédent | Sommaire | Suivant
ftp_quit | Niveau supérieur | ftp_rawlist


ftp_rawlist

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_rawlist -- Fait une liste détaillée des fichiers dans un dossier

Description

array ftp_rawlist ( resource ftp_stream, string directory [, bool recursive] )

ftp_rawlist() exécute la commande FTP LIST, et retourne le résultat dans un tableau.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

directory

Le chemin vers le dossier.

recursive

Si définie à TRUE, la commande sera LIST -R.

Valeurs de retour

Retourne un tableau où les éléments correspondent à une ligne de texte.

La sortie n'est jamais analysée. L'identifiant du type système retourné par ftp_systype() peut être utilisé pour déterminer comment les résultats doivent être interprétés.

Exemples

Exemple 1. Exemple avec ftp_rawlist()

<?php

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Récupère la liste des fichiers de /
$buff = ftp_rawlist($conn_id, '/');

// Fermeture de la connexion
ftp_close($conn_id);

// Affiche le buffer
var_dump($buff);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(3) {
  [0]=>
  string(65) "drwxr-x---   3 vincent  vincent      4096 Jul 12 12:16 public_ftp"
  [1]=>
  string(66) "drwxr-x---  15 vincent  vincent      4096 Nov  3 21:31 public_html"
  [2]=>
  string(73) "lrwxrwxrwx   1 vincent  vincent        11 Jul 12 12:16 www -> public_html"
}

Historique

Version | Description
4.3.0 | recursive a été ajouté.

Voir aussi

ftp_nlist()

Précédent | Sommaire | Suivant
ftp_raw | Niveau supérieur | ftp_rename


ftp_rename

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_rename -- Renomme un fichier sur un serveur FTP

Description

bool ftp_rename ( resource ftp_stream, string oldname, string newname )

ftp_rename() renomme le fichier ou le dossier from en to, sur le serveur ftp_stream.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

oldname

L'ancien nom du dossier / fichier.

newname

Le nouveau nom.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec ftp_rename()

<?php
$old_file = 'somefile.txt.bak';
$new_file = 'somefile.txt';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tentative de renommage de $old_file en $new_file
if (ftp_rename($conn_id, $old_file, $new_file)) {
 echo "Renommage avec succès de $old_file en $new_file\n";
} else {
 echo "Il y a eu un problème lors du renommage de $old_file en $new_file\n";
}

// Fermeture de la connexion
ftp_close($conn_id);
?>

Précédent | Sommaire | Suivant
ftp_rawlist | Niveau supérieur | ftp_rmdir


ftp_rmdir

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_rmdir -- Efface un dossier FTP

Description

bool ftp_rmdir ( resource ftp_stream, string directory )

ftp_rmdir() efface le dossier directory.

Liste de paramètres

ftp_stream

L'identification du lien de connexion FTP.

directory

Le dossier à effacer. Ce doit être soit un chemin absolu, soit un chemin relatif vers un dossier vide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec ftp_rmdir()

<?php

$dir = 'www/';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Tentative d'effacement du dossier $dir
if (ftp_rmdir($conn_id, $dir)) {
    echo "Le dossier $dir a été effacé avec succès\n";
} else {
    echo "Il y a eu un problème lors de l'effacement du dossier $dir\n";
}

ftp_close($conn_id);

?>

Voir aussi

ftp_mkdir()

Précédent | Sommaire | Suivant
ftp_rename | Niveau supérieur | ftp_set_option


ftp_set_option

(PHP 4 >= 4.2.0, PHP 5)

ftp_set_option -- Modifie les options de la connexion FTP

Description

bool ftp_set_option ( resource ftp_stream, int option, mixed value )

ftp_set_option() contrôle diverses options de connexion pour une connexion FTP.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

option

Actuellement, les options suivantes sont supportées :

Tableau 1. Options FTP supportées

FTP_TIMEOUT_SEC | Modifie le délai de connexion en secondes utilisé pour toutes les fonctions raltives au réseau. value doit être un entier plus grand que 0. Le délai de connexion par défaut est de 90 secondes.
FTP_AUTOSEEK | Lorsqu'actif, les requêtes GET ou PUT avec un paramètre resumepos ou startpos se positionnera d'abord à la position désirée dans le fichier. Ceci est actif par défaut.

value

Ce paramètre dépend de l'option option que l'on veut modifier.

Valeurs de retour

Retourne TRUE si l'option a pû être modifiée, FALSE sinon. Un message d'alerte sera envoyé si option n'est pas supportée ou bien si la valeur value ne correspond pas à la valeur attendue pour l'option option donnée.

Exemples

Exemple 1. Exemple avec ftp_set_option()

<?php
// Définission du délai de connexion à 10 secondes
ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 10);
?>

Voir aussi

ftp_get_option()

Précédent | Sommaire | Suivant
ftp_rmdir | Niveau supérieur | ftp_site


ftp_site

(PHP 3 >= 3.0.15, PHP 4, PHP 5)

ftp_site -- Envoie la commande SITE au serveur

Description

bool ftp_site ( resource ftp_stream, string command )

ftp_site() envoie la commande SITE au 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 fichier, et les groupes.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

command

La commande SITE. Notez que ce paramètre n'est pas échappé, il peut donc y avoir des comportements non-désirés si le nom des fichiers contient des espaces ou d'autres caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Envoi d'une commande SITE à un serveur FTP

<?php
/* Connexion au serveur FTP */
$conn = ftp_connect('ftp.example.com');
if (!$conn) die('Impossible de se connecter au serveur ftp.example.com');

/* Identification avec l'utilisateur "user" et le mot de passe "pass" */
if (!ftp_login($conn, 'user', 'pass')) die('Erreur d\'identification au serveur ftp.example.com');

/* Résultat : commande "SITE CHMOD 0600 /home/user/privatefile" sur le serveur ftp */
if (ftp_site($conn, 'CHMOD 0600 /home/user/privatefile')) {
   echo "La commande a été exécutée avec succès.\n";
} else {
   die('La commande a échouée.');
}
?>

Voir aussi

ftp_raw()

Précédent | Sommaire | Suivant
ftp_set_option | Niveau supérieur | ftp_size


ftp_size

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_size -- Retourne la taille d'un fichier

Description

int ftp_size ( resource ftp_stream, string remote_file )

ftp_size() retourne la taile d'un fichier donné en octets.

Note : Tous les serveurs ne supportent pas cette fonctionnalité.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

remote_file

Le fichier distant.

Valeurs de retour

Retourne la taille du fichier en cas de succès, ou -1 si une erreur survient.

Exemples

Exemple 1. Exemple avec ftp_size()

<?php

$file = 'somefile.txt';

// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Récupération de la taille du fichier $file
$res = ftp_size($conn_id, $file);

if ($res != -1) {
    echo "La taille du fichier $file est de $res octets";
} else {
    echo "Impossible de récupérer la taille du fichier";
}

// Fermeture de la connexion
ftp_close($conn_id);

?>

Voir aussi

ftp_rawlist()

Précédent | Sommaire | Suivant
ftp_site | Niveau supérieur | ftp_ssl_connect


ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5)

ftp_ssl_connect -- Ouvre une connexion FTP sécurisée avec SSL

Description

resource ftp_ssl_connect ( string host [, int port [, int timeout]] )

ftp_ssl_connect() ouvre une connexion FTP sécurisée avec SSL sur l'hôte host spécifié.

Pourquoi cette fonction peut ne pas exister ? : ftp_ssl_connect() n'est disponible que si le support OpenSSL est actif dans votre version de PHP. Pour Windows, vous devez compiler votre propre binaire PHP pour qu'il supporte cette fonctionnalité.

Liste de paramètres

host

L'adresse FTP du serveur. Ce paramètre ne doit pas comporter de slashe final et ne doit pas être préfixé par ftp://.

port

Ce paramètre spécifie un port alternatif de connexion. S'il est omis ou défini à zéro, alors le port par défaut FTP, 21, sera utilisé.

timeout

Ce paramètre spécifie le délai de connexion pour toutes les opérations sur le réseau. S'il est omis, la valeur par défaut sera de 90 secondes. Ce délai de connexion peut être modifié et consulté à tout moment avec les fonctions ftp_set_option() et ftp_get_option().

Valeurs de retour

Retourne un flux SSL-FTP en cas de succès ou FALSE si une erreur survient.

Historique

Version | Description
5.2.2 | Cette fonction retourne FALSE lorsqu'elle ne peut pas utiliser une connexion SSL, au lieu d'utiliser à la place une connexion non-SSL.

Exemples

Exemple 1. Exemple avec ftp_ssl_connect()

<?php

// Mise en place d'une connexion basique
$conn_id = ftp_ssl_connect($ftp_server);

// Identification avec un nom d'utilisateur et un mot de passe
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

echo ftp_pwd($conn_id); // /

// Fermeture de la connexion SSL
ftp_close($conn_id);
?>

Voir aussi

ftp_connect()

Précédent | Sommaire | Suivant
ftp_size | Niveau supérieur | ftp_systype


ftp_systype

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_systype -- Retourne un identifiant de type de serveur FTP

Description

string ftp_systype ( resource ftp_stream )

ftp_systype() retourne le type de serveur FTP distant.

Liste de paramètres

ftp_stream

L'identifiant du lien de connexion FTP.

Valeurs de retour

Retourne le type de serveur distant ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec ftp_systype()

<?php

// Connexion ftp
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'user', 'password');

// Récupération du type de serveur
if ($type = ftp_systype($ftp)) {
    echo "Example.com est exécuté par $type\n";
} else {
    echo "Impossible de récupérer le type du serveur";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Example.com est exécuté par UNIX

Précédent | Sommaire | Suivant
ftp_ssl_connect | Niveau supérieur | Fonctions


Fonctions

Manuel PHP
Précédent Suivant

XLVII. Fonctions

Introduction

Ces fonctions effectuent les manipulations liées à la gestion des fonctions.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
call_user_func_array -- Appelle une fonction utilisateur avec les paramètres rassemblés en tableau
call_user_func -- Appelle une fonction utilisateur
create_function -- Crée une fonction anonyme (style lambda)
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 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

Précédent | Sommaire | Suivant
ftp_systype | Niveau supérieur | call_user_func_array


call_user_func_array

(PHP 4 >= 4.0.4, PHP 5)

call_user_func_array -- Appelle une fonction utilisateur avec les paramètres rassemblés en tableau

Description

mixed call_user_func_array ( callback function, array param_arr )

Appelle la fonction utilisateur function avec les paramètres param_arr, rassemblés dans un tableau.

Liste de paramètres

function

La fonction à appeler.

param_arr

Les paramètres à passer à la fonction, sous la forme d'un tableau indexé.

Valeurs de retour

Retourne le résultat de la fonction, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec call_user_func_array()

<?php
function debug($var, $val)
{
    echo "***DEBUGGING\nVARIABLE: $var\nVALUE:";
    if (is_array($val) || is_object($val) || is_resource($val)) {
        print_r($val);
    } else {
        echo "\n$val\n";
    }
    echo "***\n";
}

$c = mysql_connect();
$host = $_SERVER["SERVER_NAME"];

call_user_func_array('debug', array("host", $host));
call_user_func_array('debug', array("c", $c));
call_user_func_array('debug', array("_POST", $_POST));
?>

Voir aussi

call_user_func()
information à propos de callback type

Précédent | Sommaire | Suivant
Fonctions | Niveau supérieur | call_user_func


call_user_func

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

call_user_func -- Appelle une fonction utilisateur

Description

mixed call_user_func ( callback function [, mixed parameter [, mixed ...]] )

Appelle une fonction utilisateur fournie par le paramètre function.

Liste de paramètres

function

La fonction à appeler. Les méthodes de classes peuvent être appelées statiquement en passant array($classname, $methodname) à ce paramètre.

parameter

0 ou plus de paramètres à passer à la fonction.

Note : Notez que les paramètres pour call_user_func() ne sont pas passés par référence.

<?php
function increment(&$var)
{
    $var++;
}

$a = 0;
call_user_func('increment', $a);
echo $a; // 0

call_user_func_array('increment', array(&$a)); // Vous pouvez utiliser ceci à la place
echo $a; // 1
?>

Valeurs de retour

Retourne le résultat de la fonction, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec call_user_func()

<?php
function barber($type)
{
    echo "Vous voulez une coupe $type, aucun problème";
}
call_user_func('barber', "mushroom");
call_user_func('barber', "shave");
?>

Exemple 2. Utilisation d'une méthode d'une classe

<?php
class myclass {
    function say_hello()
    {
        echo "Bonjour !\n";
    }
}

$classname = "myclass";

call_user_func(array($classname, 'say_hello'));
?>

Voir aussi

call_user_func_array()
is_callable()
information à propos de callback type

Précédent | Sommaire | Suivant
call_user_func_array | Niveau supérieur | create_function


create_function

(PHP 4 >= 4.0.1, PHP 5)

create_function -- Crée une fonction anonyme (style lambda)

Description

string create_function ( string args, string code )

Crée une fonction anonyme, à partir des paramètres passés, et retourne un nom de fonction unique.

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 proteger 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 fonction 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 fonction 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 , 1908338681
similarité (a,b) = 11(45.833333333333%)

Mais l'utilisation la plus courante des fonctions lambda est la fonction de callback, par exemple, lors de l'utilisation de array_walk() ou usort()

Exemple 3. Utilisation de fonctions anonymes comme fonction de callback

<?php
$av = array("the ", "a ", "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
)

Précédent | Sommaire | Suivant
call_user_func | Niveau supérieur | func_get_arg


func_get_arg

(PHP 4, PHP 5)

func_get_arg -- Retourne un élément de la liste des arguments

Description

mixed func_get_arg ( int arg_num )

Récupère un élément de la liste des arguments d'une fonction utilisateur.

func_get_arg() peut être utilisé
conjointement à func_num_args() et
func_get_args() pour permettre aux fonctions
utilisateurs d'accepter un nombre variable d'arguments.

Liste de paramètres

arg_num

La position de l'argument. Les arguments de la fonction sont comptés en commençant à partir de 0.

Valeurs de retour

Retourne l'argument spécifié, ou FALSE si une erreur survient.

Erreurs / Exceptions

Générera une alerte si elle est appelée hors d'une fonction utilisateur, ou si arg_num est plus grand que le nombre d'arguments passés.

Exemples

Exemple 1. Exemple avec func_get_arg()

<?php
function foo()
{
     $numargs = func_num_args();
     echo "Nombre d'arguments : $numargs<br />\n";
     if ($numargs >= 2) {
         echo "Le second argument est : " . func_get_arg(1) . "<br />\n";
     }
}

foo (1, 2, 3);
?>

Notes

Note : Parce que cette fonction dépend de la portée courante pour déterminer les détails des paramètres, ils ne peuvent être utilisés en tant que paramètre d'une fonction. Si vous devez passer cette valeur, assignez les résultats à une variable et utilisez-la.

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

func_get_args()
func_num_args()

Précédent | Sommaire | Suivant
create_function | Niveau supérieur | func_get_args


func_get_args

(PHP 4, PHP 5)

func_get_args -- Retourne les arguments d'une fonction sous la forme d'un tableau

Description

array func_get_args ( void )

Récupère les arguments d'une fonction sous la forme d'un tableau.

func_get_arg() peut être utilisé conjointement à func_num_args() et func_get_args() pour permettre aux fonctions utilisateurs d'accepter un nombre variable d'arguments.

Valeurs de retour

Retourne un tableau dont chaque élément est une copie du membre correspondant de la liste d'arguments de la fonction.

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<br />\n";
    if ($numargs >= 2) {
        echo "Le second argument est : " . func_get_arg(1) . "<br />\n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "L'argument $i est : " . $arg_list[$i] . "<br />\n";
    }
}

foo(1, 2, 3);
?>

Notes

Note : Parce que cette fonction dépend de la portée courante pour déterminer les détails des paramètres, ils ne peuvent être utilisés en tant que paramètre d'une fonction. Si vous devez passer cette valeur, assignez les résultats à une variable et utilisez-la.

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

func_get_arg()
func_num_args()

Précédent | Sommaire | Suivant
func_get_arg | Niveau supérieur | func_num_args


func_num_args

(PHP 4, PHP 5)

func_num_args -- Retourne le nombre d'arguments passés à la fonction

Description

int func_num_args ( void )

Récupère le nombre d'arguments passés à la fonction.

func_get_arg() peut être utilisé
conjointement à func_num_args() et
func_get_args() pour permettre aux fonctions
utilisateurs d'accepter un nombre variable d'arguments.

Valeurs de retour

Retourne le nombre d'arguments passés à la fonction utilisateur courante.

Erreurs / Exceptions

Génère une alerte si elle est appelée hors d'une fonction utilisateur.

Exemples

Exemple 1. Exemple avec func_num_args()

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Nombre d'arguments : $numargs\n";
}

foo(1, 2, 3);    // affiche 'Nombre d'arguments: 3'
?>

Notes

Note : Parce que cette fonction dépend de la portée courante pour déterminer les détails des paramètres, ils ne peuvent être utilisés en tant que paramètre d'une fonction. Si vous devez passer cette valeur, assignez les résultats à une variable et utilisez-la.

Voir aussi

func_get_arg()
func_get_args()

Précédent | Sommaire | Suivant
func_get_args | Niveau supérieur | function_exists


function_exists

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

function_exists -- Indique si une fonction est définie

Description

bool function_exists ( string function_name )

Vérifie la liste des fonctions définies par l'utilisateur afin d'y trouver function_name.

Liste de paramètres

function_name

Le nom de la fonction, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne TRUE si la fonciton function_name existe et est une fonction, FALSE sinon.

Note :
    Notez également que function_exists() retournera
    FALSE pour les instructions comme include_once()
    et echo().

Exemples

Exemple 1. Exemple avec function_exists()

<?php
if (function_exists('imap_open')) {
    echo "Les fonctions IMAP sont disponibles.<br />\n";
} else {
    echo "Les fonctions IMAP ne sont pas disponibles.<br />\n";
}
?>

Notes

Note : Un nom de fonction peut exister même si la fonction elle-même n'est pas utilisable à cause d'une configuration ou d'une option de compilation (avec les fonctions image par exemple).

Voir aussi

method_exists()
is_callable()
get_defined_functions()

Précédent | Sommaire | Suivant
func_num_args | Niveau supérieur | get_defined_functions


get_defined_functions

(PHP 4 >= 4.0.4, PHP 5)

get_defined_functions -- Liste toutes les fonctions définies

Description

array get_defined_functions ( void )

Liste toutes les fonctions définies.

Valeurs de retour

Retourne un tableau multi-dimensionnel, contenant la liste de toutes les fonctions définies, aussi bien les fonctions internes à PHP que celle déjà définie par l'utilisateur. Les noms des fonctions internes sont accessibles via $arr["internal"], et les fonctions utilisateur sont accessibles via $arr["user"].

Exemples

Exemple 1. Exemple avec get_defined_functions()

<?php
function myrow($id, $data)
{
    return "<tr><th>$id</th><td>$data</td></tr>\n";
}

$arr = get_defined_functions();

print_r($arr);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [internal] => Array
        (
            [0] => zend_version
            [1] => func_num_args
            [2] => func_get_arg
            [3] => func_get_args
            [4] => strlen
            [5] => strcmp
            [6] => strncmp
            ...
            [750] => bcscale
            [751] => bccomp
        )

    [user] => Array
        (
            [0] => myrow
        )

)

Voir aussi

function_exists()
get_defined_vars()
get_defined_constants()

Précédent | Sommaire | Suivant
function_exists | Niveau supérieur | register_shutdown_function


register_shutdown_function

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

register_shutdown_function -- Enregistre une fonction pour exécution à l'extinction

Description

void register_shutdown_function ( callback function [, mixed parameter [, mixed ...]] )

Enregistre la fonction function pour exécution à l'extinction.

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.

En PHP 4.0.6 et précédent sous Apache, les fonctions d'extinction sont appelées après la fin de la requête (notamment les buffers ont été vidés), ce qui fait qu'il est impossible d'afficher du texte depuis cette fonction, avec echo() ou print(), ou encore de lire le contenu des buffers avec ob_get_contents(). Depuis PHP 4.1, les fonctions d'extinction sont appelées comme une partie de la requête, donc, il est possible d'envoyer l'affichage depuis ces dernières. Il n'y a actuellement aucune façon de traiter les données avec les fonctions d'affichage du buffer dans la fonction d'extinction. La fonction d'extinction est appelé après avoir fermée tous les buffers de sortie ouverts, de ce fait, par exemple, la sortie ne sera pas compressée si zlib.output_compression est activé.

Depuis PHP 4, il est possible de passer des paramètres à la fonction d'extinction en passant des paramètres additionnels à la fonction register_shutdown_function().

Liste de paramètres

function

parameter

...

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note : Typiquement, les fonctions non définies causent des erreurs fatales en PHP, mais lorsque la fonction function est appelée avec register_shutdown_function() en étant non définie, une erreur de type E_WARNING est générée. De plus, pour des raisons internes à PHP cette erreur va être indiquée comme Unknown at line #0.

Note : Le dossier de travail du script peut changer dans la fonction d'extinction sous quelques serveurs web, e.g. Apache.

Note : La fonction d'extinction est appelé durant l'arrêt du script, donc, les en-têtes sont toujours déjà envoyés.

Voir aussi

auto_append_file
exit()
La section sur la gestion des connexions

Précédent | Sommaire | Suivant
get_defined_functions | Niveau supérieur | register_tick_function


register_tick_function

(PHP 4 >= 4.0.3, PHP 5)

register_tick_function -- Enregistre une fonction exécutée à chaque tick

Description

bool register_tick_function ( callback function [, mixed arg [, mixed ...]] )

Enregistre la fonction function pour être exécutée à chaque fois qu'un tick est appelé.

Liste de paramètres

function

Le nom de la fonction, sous la forme d'une chaîne de caractères ou d'un tableau d'objets et de méthodes.

arg

...

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec register_tick_function()

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

Notes

Avertissement

register_tick_function() ne doit pas être utilisé avec les modules de serveur web threadé. Les ticks ne fonctionnent pas en mode ZTS et peuvent interrompre votre serveur web.

Voir aussi

declare
unregister_tick_function()

Précédent | Sommaire | Suivant
register_shutdown_function | Niveau supérieur | unregister_tick_function


unregister_tick_function

(PHP 4 >= 4.0.3, PHP 5)

unregister_tick_function -- Annule la fonction exécutée à chaque tick

Description

void unregister_tick_function ( string function_name )

Annule l'exécution automatique de function_name à chaque tick.

Liste de paramètres

function_name

Le nom de la fonction, sous la forme d'une chaîne de caractères.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

register_tick_function()

Précédent | Sommaire | Suivant
register_tick_function | Niveau supérieur | Fonctions GeoIP


Fonctions Gettext

Manuel PHP
Précédent Suivant

XLIX. Fonctions Gettext

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.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
bind_textdomain_codeset -- Spécifie le jeu de caractères utilisé pour les messages du domaine DOMAIN
bindtextdomain -- Fixe le chemin d'un domaine
dcgettext -- Remplace le domaine lors d'une recherche
dcngettext -- Version plurielle de dcgettext
dgettext -- Remplace le domaine courant
dngettext -- Version plurielle de dgettext
gettext -- Recherche un message dans le domaine courant
ngettext -- Version plurielle de gettext
textdomain -- Fixe le domaine par défaut

Précédent | Sommaire | Suivant
geoip_region_by_name | Niveau supérieur | bind_textdomain_codeset


bind_textdomain_codeset

(PHP 4 >= 4.2.0, PHP 5)

bind_textdomain_codeset -- Spécifie le jeu de caractères utilisé pour les messages du domaine DOMAIN

Description

string bind_textdomain_codeset ( string domain, string codeset )

Spécifie l'encodage à utiliser pour les messages du domaine domain retourné par l'ensemble des fonctions gettext().

Liste de paramètres

domain

Le domaine

codeset

Le jeu de caractères

Valeurs de retour

Une chaîne de caractères en cas de succès.

Précédent | Sommaire | Suivant
Fonctions Gettext | Niveau supérieur | bindtextdomain


bindtextdomain

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

bindtextdomain -- Fixe le chemin d'un domaine

Description

string bindtextdomain ( string domain, string directory )

Fixe le chemin du domaine.

Liste de paramètres

domain

Le domaine

directory

Le chemin vers le dossier

Valeurs de retour

Le chemin complet vers le domaine.

Exemples

Exemple 1. Exemple avec bindtextdomain()

<?php

$domain = 'myapp';
echo bindtextdomain($domain, '/usr/share/myapp/locale');

?>

L'exemple ci-dessus va afficher :

/usr/share/myapp/locale

Précédent | Sommaire | Suivant
bind_textdomain_codeset | Niveau supérieur | dcgettext


dcgettext

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

dcgettext -- Remplace le domaine lors d'une recherche

Description

string dcgettext ( string domain, string message, int category )

Permet de remplacer le domaine courant lors de la recherche d'un message.

Liste de paramètres

domain

Le domaine

message

Le message

category

La catégorie

Valeurs de retour

Une chaîne de caractères en cas de succès.

Voir aussi

gettext()

Précédent | Sommaire | Suivant
bindtextdomain | Niveau supérieur | dcngettext


dcngettext

(PHP 4 >= 4.2.0, PHP 5)

dcngettext -- Version plurielle de dcgettext

Description

string dcngettext ( string domain, string msgid1, string msgid2, int n, int category )

Vous permet de remplacer le domaine courant pour une recherche simple au pluriel d'un message.

Liste de paramètres

domain

Le domaine

msgid1

msgid2

n

category

Valeurs de retour

Une chaîne de caractères en cas de succès.

Voir aussi

ngettext()

Précédent | Sommaire | Suivant
dcgettext | Niveau supérieur | dgettext


dgettext

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

dgettext -- Remplace le domaine courant

Description

string dgettext ( string domain, string message )

dgettext() remplace le domaine courant domain pour une recherche simple dans message.

Liste de paramètres

domain

Le domaine

message

Le message

Valeurs de retour

Une chaîne de caractères en cas de succès.

Voir aussi

gettext()

Précédent | Sommaire | Suivant
dcngettext | Niveau supérieur | dngettext


dngettext

(PHP 4 >= 4.2.0, PHP 5)

dngettext -- Version plurielle de dgettext

Description

string dngettext ( string domain, string msgid1, string msgid2, int n )

dngettext() vous permet de remplacer le domaine courant domain pour une recherche simple au pluriel d'un message.

Liste de paramètres

domain

Le domaine

msgid1

msgid2

n

Valeurs de retour

Une chaîne de caractères en cas de succès.

Voir aussi

ngettext()

Précédent | Sommaire | Suivant
dgettext | Niveau supérieur | gettext


gettext

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

gettext -- Recherche un message dans le domaine courant

Description

string gettext ( string message )

Recherche un message dans le domaine courant.

Liste de paramètres

message

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

// Or use the alias _() for gettext()
echo _("Passer une bonne journée");
?>

Notes

Note : Vous pouvez utiliser le caractère souligné (_) comme alias de cette fonction.

Voir aussi

setlocale()

Précédent | Sommaire | Suivant
dngettext | Niveau supérieur | ngettext


ngettext

(PHP 4 >= 4.2.0, PHP 5)

ngettext -- Version plurielle de gettext

Description

string ngettext ( string msgid1, string msgid2, int n )

Version plurielle de gettext(). Quelques langues ont plus d'une forme de messages pluriels dépendant du compteur.

Liste de paramètres

msgid1

msgid2

n

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

?>

Précédent | Sommaire | Suivant
gettext | Niveau supérieur | textdomain


textdomain

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

textdomain -- Fixe le domaine par défaut

Description

string textdomain ( string text_domain )

textdomain() fixe le domaine text_domain à utiliser lors des recherches avec gettext(). Ce domaine dépend généralement de l'application.

Liste de paramètres

text_domain

Le nouveau domaine des messages, ou NULL pour récupérer la configuration courante sans la modifier.

Valeurs de retour

Cette fonction retourne le message courant du domaine en cas de succès, après une possible modification.

Précédent | Sommaire | Suivant
ngettext | Niveau supérieur | Fonctions GMP


Fonctions GMP

Manuel PHP
Précédent Suivant

L. Fonctions GMP

Introduction

Ces fonctions vous permettent de travailler avec des nombres de taille arbitraire, en utilisant la bibliothèque GNU MP.

Ces fonctions ont été ajoutées en PHP 4.0.4.

Note : La majorité des fonctions GMP acceptent des nombres GMP comme arguments, définis ci-dessous comme resource. Cependant, la plupart de ces fonctions acceptent aussi des nombres et des chaînes à partir du moment où on peut les convertir en nombre. Si une fonction utilisant les entiers est plus rapide, elle sera automatiquement appelée si les arguments fournis sont des entiers. Cela se fait de manière transparente : vous pouvez donc utiliser des entiers avec les fonctions GMP sans perte de vitesse. Voir aussi gmp_init().

Avertissement

Si vous voulez explicitement spécifier un entier de grande taille, spécifiez-le sous forme de chaîne. Si vous ne le faites pas, PHP va interpréter votre entier et le transformer en une représentation interne, qui vous fera sûrement perdre de la précision, avant même que GMP n'entre en jeu.

Note : Cette extension est disponible sur les plates-formes Windows depuis PHP 5.1.0.

Pré-requis

Vous pouvez télécharger GMP sur le site de http://www.swox.com/gmp/. Ce site propose aussi un manuel GMP.

Vous devez utiliser GMP 2 ou plus récent pour utiliser ces fonctions. Certaines d'entre elles peuvent requérir une version encore plus récente de GMP.

Installation

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP GMP en utilisant l'option --with-gmp.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

La plupart des fonctions GPM opère ou retourne des ressources GMP.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

GMP_ROUND_ZERO (entier)

GMP_ROUND_PLUSINF (entier)

GMP_ROUND_MINUSINF (entier)

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.

Voir aussi

D'autres fonctions mathématiques sont disponibles avec les extensions Nombres de grande taille BCMath et Mathématiques.

Table des matières
gmp_abs -- Valeur absolue GMP
gmp_add -- Addition de 2 nombres GMP
gmp_and -- ET logique
gmp_clrbit -- Annule un bit
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_fact -- Factorielle GMP
gmp_gcd -- PGCD
gmp_gcdext -- PGCD étendu
gmp_hamdist -- Distance de Hamming
gmp_init -- Crée un nombre GMP
gmp_intval -- Convertit un nombre GMP en entier
gmp_invert -- Inverse modulo
gmp_jacobi -- Symbole de Jacobi
gmp_legendre -- Symbole de Legendre
gmp_mod -- Modulo GMP
gmp_mul -- Multiplication de 2 nombres GMP
gmp_neg -- Opposé de nombre GMP
gmp_nextprime -- Trouve le prochain nombre premier
gmp_or -- OU logique
gmp_perfect_square -- Carré parfait GMP
gmp_popcount -- Compte de population
gmp_pow -- Puissance
gmp_powm -- Puissance et modulo
gmp_prob_prime -- Nombre GMP probablement premier
gmp_random -- Nombre GMP aléatoire
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_xor -- OU exclusif logique

Précédent | Sommaire | Suivant
textdomain | Niveau supérieur | gmp_abs


gmp_abs

(PHP 4 >= 4.0.4, PHP 5)

gmp_abs -- Valeur absolue GMP

Description

resource gmp_abs ( resource a )

gmp_abs() retourne la valeur absolue de a.

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

Précédent | Sommaire | Suivant
Fonctions GMP | Niveau supérieur | gmp_add


gmp_add

(PHP 4 >= 4.0.4, PHP 5)

gmp_add -- Addition de 2 nombres GMP

Description

resource gmp_add ( resource a, resource b )

gmp_add() additionne les nombres GMP a et b. Le résultat est un nombre GMP.

Exemple 1. Exemple avec gmp_add()

<?php
$sum = gmp_add("123456789012345", "76543210987655");
echo gmp_strval($sum) . "\n";
?>

L'exemple ci-dessus va afficher :

200000000000000

Précédent | Sommaire | Suivant
gmp_abs | Niveau supérieur | gmp_and


gmp_and

(PHP 4 >= 4.0.4, PHP 5)

gmp_and -- ET logique

Description

resource gmp_and ( resource a, resource b )

gmp_and() calcule le ET logique de a et b.

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

Précédent | Sommaire | Suivant
gmp_add | Niveau supérieur | gmp_clrbit


gmp_clrbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_clrbit -- Annule un bit

Description

void gmp_clrbit ( resource &a, int index )

gmp_clrbit() met le bit index à 0 dans le nombre GMP a. L'index commence à zéro.

Note : Contrairement à la plupart des autres fonctions GMP, gmp_clrbit() doit être appelée avec une ressource GMP existant déjà (en utilisant gmp_init() par exemple). Elle ne sera pas automatiquement créée.

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

Voir aussi gmp_setbit().

Précédent | Sommaire | Suivant
gmp_and | Niveau supérieur | gmp_cmp


gmp_cmp

(PHP 4 >= 4.0.4, PHP 5)

gmp_cmp -- Compare des nombres GMP

Description

int gmp_cmp ( resource a, resource b )

gmp_cmp() retourne une valeur positive si a > b, zéro si a = b et négative si a < b.

Exemple 1. Exemple avec gmp_cmp()

<?php
$cmp1 = gmp_cmp("1234", "1000"); // plus grand
$cmp2 = gmp_cmp("1000", "1234"); // plus petit
$cmp3 = gmp_cmp("1234", "1234"); // égal

echo "$cmp1 $cmp2 $cmp3\n";
?>

L'exemple ci-dessus va afficher :

1 -1 0

Précédent | Sommaire | Suivant
gmp_clrbit | Niveau supérieur | gmp_com


gmp_com

(PHP 4 >= 4.0.4, PHP 5)

gmp_com -- Calcule le complémentaire d'un nombre

Description

resource gmp_com ( resource a )

Retourne le complémentaire de a.

Exemple 1. Exemple avec gmp_com()

<?php
$com = gmp_com("1234");
echo gmp_strval($com) . "\n";
?>

L'exemple ci-dessus va afficher :

-1235

Précédent | Sommaire | Suivant
gmp_cmp | Niveau supérieur | gmp_div_q


gmp_div_q

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_q -- Divisions de 2 nombres GMP

Description

resource gmp_div_q ( resource a, resource b [, int round] )

gmp_div_q() divise le nombre GMP b par a. Le résultat est un entier. L'arrondi du résultat est défini par round, qui peut prendre l'une des valeurs suivantes :

  • gmp_round_zero: Le résultat est tronqué vers 0.

  • gmp_round_plusinf: Le résultat est tronqué vers +infinity

  • gmp_round_minusinf: Le résultat est tronqué vers -infinity

gmp_div_q() peut aussi être appelée gmp_div().

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

Voir aussi gmp_div_r() et gmp_div_qr().

Précédent | Sommaire | Suivant
gmp_com | Niveau supérieur | gmp_div_qr


gmp_div_qr

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_qr -- Divise deux nombres GMP

Description

array gmp_div_qr ( resource n, resource d [, int round] )

gmp_div_qr() divise n par d et retourne un tableau, dont le premier élément est [n/d] (le quotient entier de la division) et le second est (n - [n/d] * d) (le reste).

Voir gmp_div_q() pour une description du paramètre round.

Exemple 1. Division de nombres GMP

<?php
$a = gmp_init("0x41682179fbf5");
$res = gmp_div_qr($a, "0xDEFE75");
printf("Le résultat est : q - %s, r - %s",
       gmp_strval($res[0]), gmp_strval($res[1]));
?>

Voir aussi gmp_div_q() et gmp_div_r().

Précédent | Sommaire | Suivant
gmp_div_q | Niveau supérieur | gmp_div_r


gmp_div_r

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_r -- Reste de la division de deux nombres GMP

Description

resource gmp_div_r ( resource n, resource d [, int round] )

gmp_div_r() le reste de la division entière de n par d. Le reste a le même signe que n, s'il est non nul.

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 gmp_div_q() pour une description du paramètre round.

Voir aussi gmp_div_q() et gmp_div_qr().

Précédent | Sommaire | Suivant
gmp_div_qr | Niveau supérieur | gmp_div


gmp_div

(PHP 4 >= 4.0.4, PHP 5)

gmp_div -- Alias de gmp_div_q()

Description

Cette fonction est un alias de : gmp_div_q().

Précédent | Sommaire | Suivant
gmp_div_r | Niveau supérieur | gmp_divexact


gmp_divexact

(PHP 4 >= 4.0.4, PHP 5)

gmp_divexact -- Division exacte de nombres GMP

Description

resource gmp_divexact ( resource n, resource d )

gmp_divexact() divise n par d, en utilisant les algorithmes de "division exacte". Cette fonction ne fournit de résultats cohérents que s'il est su par avance que d divise n.

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

Précédent | Sommaire | Suivant
gmp_div | Niveau supérieur | gmp_fact


gmp_fact

(PHP 4 >= 4.0.4, PHP 5)

gmp_fact -- Factorielle GMP

Description

resource gmp_fact ( int a )

gmp_fact() calcule la factorielle de a : a!.

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

Précédent | Sommaire | Suivant
gmp_divexact | Niveau supérieur | gmp_gcd


gmp_gcd

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcd -- PGCD

Description

resource gmp_gcd ( resource a, resource b )

gmp_gcd() calcule le PGCD (plus grand commun diviseur) de a et b. Le résultat est toujours positif, même si l'un des deux (ou les deux) nombres est négatif.

Exemple 1. Exemple avec gmp_gcd()

<?php
$gcd = gmp_gcd("12", "21");
echo gmp_strval($gcd) . "\n";
?>

L'exemple ci-dessus va afficher :

3

Précédent | Sommaire | Suivant
gmp_fact | Niveau supérieur | gmp_gcdext


gmp_gcdext

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcdext -- PGCD étendu

Description

array gmp_gcdext ( resource a, resource b )

gmp_gcdext() calcule les entiers g, s, et t, tels que a*s + b*t = g = gcd(a,b), où gcd est le pgcd de a et b. La fonction retourne un tableau avec les index g, s et t.

Cette fonction peut être utilisée pour résoudre des équations diophantines linéaires à deux variables. Ces équations n'ont qu'une seule solution entière, et elles sont de la forme : a*x + b*y = c. Pour plus d'informations, voyez les pages "Diophantine Equation" sur MathWorld, en anglais.

Exemple 1. Résolution d'une équation Diophantine linéaire

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

Précédent | Sommaire | Suivant
gmp_gcd | Niveau supérieur | gmp_hamdist


gmp_hamdist

(PHP 4 >= 4.0.4, PHP 5)

gmp_hamdist -- Distance de Hamming

Description

int gmp_hamdist ( resource a, resource b )

gmp_hamdist() retourne la distance de Hamming entre a et b. Les deux paramètres doivent être strictement positifs.

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

Précédent | Sommaire | Suivant
gmp_gcdext | Niveau supérieur | gmp_init


gmp_init

(PHP 4 >= 4.0.4, PHP 5)

gmp_init -- Crée un nombre GMP

Description

resource gmp_init ( mixed number [, int base] )

gmp_init() crée un nombre GMP, à partir d'un entier ou d'une chaîne. Les chaînes peuvent être en décimal, hexadécimal ou octal. Le paramètre optionnel base est disponible depuis PHP 4.1.0. Sa valeur par défaut est 0.

La base peut varier de 2 à 36. Si la base vaut 0 (valeur par défaut), la base actuelle est déterminée depuis les derniers caractères ; si les deux premiers caractères sont 0x ou 0X, on suppose que c'est de l'hexadécimal, sinon, si le premier caractère est "0", on suppose que c'est de l'octal, sinon, on suppose que c'est de la décimale.

Exemple 1. Création d'un nombre GMP

<?php
$a = gmp_init(123456);
$b = gmp_init("0xFFFFDEBACDFEDF7200");
?>

Note : Il n'est pas nécessaire d'appeler gmp_init() si vous voulez utiliser des entiers ou des chaînes à la place de nombre GMP dans les fonctions GMP, comme gmp_add(). Les arguments de ces fonctions sont automatiquement convertis en nombres GMP, si cette conversion est possible et nécessaire, en utilisant les mêmes règles que gmp_init().

Précédent | Sommaire | Suivant
gmp_hamdist | Niveau supérieur | gmp_intval


gmp_intval

(PHP 4 >= 4.0.4, PHP 5)

gmp_intval -- Convertit un nombre GMP en entier

Description

int gmp_intval ( resource gmpnumber )

gmp_intval() convertit un nombre GMP en entier.

Avertissement

gmp_intval() retourne un résultat cohérent uniquement si le nombre GMP peut être représenté par un entier PHP (i.e. type long signé). Si vous vous voulez simplement afficher un nombre GMP, utilisez plutôt gmp_strval().

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

Précédent | Sommaire | Suivant
gmp_init | Niveau supérieur | gmp_invert


gmp_invert

(PHP 4 >= 4.0.4, PHP 5)

gmp_invert -- Inverse modulo

Description

resource gmp_invert ( resource a, resource b )

gmp_invert() calcule l'inverse de a modulo b. gmp_invert() retourne FALSE si un tel inverse n'existe pas.

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

Précédent | Sommaire | Suivant
gmp_intval | Niveau supérieur | gmp_jacobi


gmp_jacobi

(PHP 4 >= 4.0.4, PHP 5)

gmp_jacobi -- Symbole de Jacobi

Description

int gmp_jacobi ( resource a, resource p )

gmp_jacobi() calcule le symbole de Jacobi de a et p. p doit être positif et impair.

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

Précédent | Sommaire | Suivant
gmp_invert | Niveau supérieur | gmp_legendre


gmp_legendre

(PHP 4 >= 4.0.4, PHP 5)

gmp_legendre -- Symbole de Legendre

Description

int gmp_legendre ( resource a, resource p )

gmp_legendre() calcule le symbole de Legendre de a et p. p doit être positif et impair.

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

Précédent | Sommaire | Suivant
gmp_jacobi | Niveau supérieur | gmp_mod


gmp_mod

(PHP 4 >= 4.0.4, PHP 5)

gmp_mod -- Modulo GMP

Description

resource gmp_mod ( resource n, resource d )

gmp_mod() calcule n modulo d. Le résultat est toujours positif ou nul, car le signe de d est ignoré.

Exemple 1. Exemple avec gmp_mod()

<?php
$mod = gmp_mod("8", "3");
echo gmp_strval($mod) . "\n";
?>

L'exemple ci-dessus va afficher :

2

Précédent | Sommaire | Suivant
gmp_legendre | Niveau supérieur | gmp_mul


gmp_mul

(PHP 4 >= 4.0.4, PHP 5)

gmp_mul -- Multiplication de 2 nombres GMP

Description

resource gmp_mul ( resource a, resource b )

gmp_mul() multiplie les nombres GMP a et b.

Exemple 1. Exemple avec gmp_mul()

<?php
$mul = gmp_mul("12345678", "2000");
echo gmp_strval($mul) . "\n";
?>

L'exemple ci-dessus va afficher :

24691356000

Précédent | Sommaire | Suivant
gmp_mod | Niveau supérieur | gmp_neg


gmp_neg

(PHP 4 >= 4.0.4, PHP 5)

gmp_neg -- Opposé de nombre GMP

Description

resource gmp_neg ( resource a )

gmp_neg() retourne l'opposé de a (-1 * a).

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

Précédent | Sommaire | Suivant
gmp_mul | Niveau supérieur | gmp_nextprime


gmp_or

(PHP 4 >= 4.0.4, PHP 5)

gmp_or -- OU logique

Description

resource gmp_or ( resource a, resource b )

gmp_or() calcule le OU logique de a et b.

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

Précédent | Sommaire | Suivant
gmp_nextprime | Niveau supérieur | gmp_perfect_square


gmp_perfect_square

(PHP 4 >= 4.0.4, PHP 5)

gmp_perfect_square -- Carré parfait GMP

Description

bool gmp_perfect_square ( resource a )

gmp_perfect_square() retourne TRUE si a est un carré parfait, et FALSE sinon.

Exemple 1. Exemple avec gmp_perfect_square()

<?php
// 3 * 3, carré parfait
var_dump(gmp_perfect_square("9"));

// pas un carré parfait
var_dump(gmp_perfect_square("7"));

// 1234567890 * 1234567890, carré parfait
var_dump(gmp_perfect_square("1524157875019052100"));
?>

L'exemple ci-dessus va afficher :

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

Voir aussi gmp_sqrt() et gmp_sqrtrem().

Précédent | Sommaire | Suivant
gmp_or | Niveau supérieur | gmp_popcount


gmp_popcount

(PHP 4 >= 4.0.4, PHP 5)

gmp_popcount -- Compte de population

Description

int gmp_popcount ( resource a )

gmp_popcount() dénombre la population de a.

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

Précédent | Sommaire | Suivant
gmp_perfect_square | Niveau supérieur | gmp_pow


gmp_pow

(PHP 4 >= 4.0.4, PHP 5)

gmp_pow -- Puissance

Description

resource gmp_pow ( resource base, int exp )

gmp_pow() élève base à la puissance exp. Dans le cas de 0^0, gmp_pow() retourne 1. exp ne doit pas être négatif.

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

Précédent | Sommaire | Suivant
gmp_popcount | Niveau supérieur | gmp_powm


gmp_powm

(PHP 4 >= 4.0.4, PHP 5)

gmp_powm -- Puissance et modulo

Description

resource gmp_powm ( resource base, resource exp, resource mod )

gmp_powm() calcule (base puissance exp) modulo mod. Si exp est négatif, le résultat est indéfini.

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

Précédent | Sommaire | Suivant
gmp_pow | Niveau supérieur | gmp_prob_prime


gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5)

gmp_prob_prime -- Nombre GMP probablement premier

Description

int gmp_prob_prime ( resource a [, int reps] )

Si gmp_prob_prime() retourne 0, a est défini comme non premier. Si gmp_prob_prime() retourne 1, alors a est "probablement" premier. Si gmp_prob_prime() retourne 2, alors a est sûrement premier. reps peut raisonnablement varier de 5 à 10 (par défaut, c'est 10); une valeur supérieure réduit la probabilité qu'un nombre non premier soit identifié comme "probablement" premier.

gmp_prob_prime() utilise le test de probabilité Miller-Rabin.

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

Précédent | Sommaire | Suivant
gmp_powm | Niveau supérieur | gmp_random


gmp_random

(PHP 4 >= 4.0.4, PHP 5)

gmp_random -- Nombre GMP aléatoire

Description

resource gmp_random ( int limiter )

gmp_random() génère un nombre aléatoire. Ce nombre sera compris entre zéro et le nombre de bits par limb multiplié par limiter. Si limiter est négatif, un nombre négatif est généré.

Un limb est un mécanisme interne de GMP. Le nombre de bits dans un limb n'est pas statique, et peut varier entre les systèmes. En général, le nombre de bits par limb est 16 ou 32, mais ce n'est pas garantit.

Exemple 1. Exemple avec gmp_random()

<?php
$rand1 = gmp_random(1); // nombre aléatoire de 0 à 1 * bits per limb
$rand2 = gmp_random(2); // nombre aléatoire de 0 à 2 * bits per limb

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

Cet exemple peut afficher :

1915834968
8642564075890328087

Précédent | Sommaire | Suivant
gmp_prob_prime | Niveau supérieur | gmp_scan0


gmp_scan0

(PHP 4 >= 4.0.4, PHP 5)

gmp_scan0 -- Recherche 0

Description

int gmp_scan0 ( resource a, int start )

gmp_scan0() recherche dans a, en commençant à la position start, vers les bits de poids lourd, jusqu'à ce qu'elle rencontre un bit à 0. Sa position est alors retournée.

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

Précédent | Sommaire | Suivant
gmp_random | Niveau supérieur | gmp_scan1


gmp_scan1

(PHP 4 >= 4.0.4, PHP 5)

gmp_scan1 -- Recherche 1

Description

int gmp_scan1 ( resource a, int start )

gmp_scan1() recherche dans a, en commençant à la position start, vers les bits de poids lourd, jusqu'à ce qu'elle rencontre un bit à 1. Sa position est alors retournée. Si aucun bit n'est trouvé, gmp_scan1() retourne -1.

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

Précédent | Sommaire | Suivant
gmp_scan0 | Niveau supérieur | gmp_setbit


gmp_setbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_setbit -- Modifie un bit

Description

void gmp_setbit ( resource &a, int index [, bool set_clear] )

gmp_setbit() modifie le bit index dans a.

Note : Contrairement à la plupart des autres fonctions GMP, gmp_setbit() doit être appelée avec une ressource GMP existant déjà (en utilisant gmp_init() par exemple). Elle ne sera pas automatiquement créée.

Exemple 1. Exemple avec gmp_setbit()

<?php
$a = gmp_init("0xfd");
gmp_setbit($a, 1); // l'index commence à zéro
echo gmp_strval($a) . "\n";
?>

L'exemple ci-dessus va afficher :

255

Voir aussi gmp_clrbit().

Précédent | Sommaire | Suivant
gmp_scan1 | Niveau supérieur | gmp_sign


gmp_sign

(PHP 4 >= 4.0.4, PHP 5)

gmp_sign -- Signe du nombre GMP

Description

int gmp_sign ( resource a )

gmp_sign() retourne le signe de a : 1 si a est positif, -1 s'il est négatif et 0 si a est égal à zéro.

Exemple 1. Exemple avec gmp_sign()

<?php
// positive
echo gmp_sign("500") . "\n";

// negative
echo gmp_sign("-500") . "\n";

// zero
echo gmp_sign("0") . "\n";
?>

L'exemple ci-dessus va afficher :

1
-1
0

Précédent | Sommaire | Suivant
gmp_setbit | Niveau supérieur | gmp_sqrt


gmp_sqrt

(PHP 4 >= 4.0.4, PHP 5)

gmp_sqrt -- Racine carrée GMP

Description

resource gmp_sqrt ( resource a )

gmp_sqrt() calcule la racine carrée de a.

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

Précédent | Sommaire | Suivant
gmp_sign | Niveau supérieur | gmp_sqrtrem


gmp_sqrtrem

(PHP 4 >= 4.0.4, PHP 5)

gmp_sqrtrem -- Racine carrée avec reste GMP

Description

array gmp_sqrtrem ( resource a )

gmp_sqrtrem() retourne un tableau dont le premier élément est la racine carrée entière de a (voir aussi gmp_sqrt()), et le second est le reste de (i.e., la différence entre a et le carré du premier élément).

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

Précédent | Sommaire | Suivant
gmp_sqrt | Niveau supérieur | gmp_strval


gmp_strval

(PHP 4 >= 4.0.4, PHP 5)

gmp_strval -- Convertit un nombre GMP en chaîne

Description

string gmp_strval ( resource gmpnumber [, int base] )

gmp_strval() convertit un nombre GMP en chaîne de caractères, dans la base base. La base par défaut est 10. Les valeurs possibles vont de 2 à 36.

Exemple 1. Conversion d'un nombre GMP en chaîne

<?php
$a = gmp_init("0x41682179fbf5");
printf("Décimal : %s, base 36: %s",
       gmp_strval($a), gmp_strval($a, 36));
?>

Précédent | Sommaire | Suivant
gmp_sqrtrem | Niveau supérieur | gmp_sub


gmp_sub

(PHP 4 >= 4.0.4, PHP 5)

gmp_sub -- Soustraction de 2 nombres GMP

Description

resource gmp_sub ( resource a, resource b )

gmp_sub() soustrait le nombre GMP b de a. Le résultat est un nombre GMP.

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

Précédent | Sommaire | Suivant
gmp_strval | Niveau supérieur | gmp_xor


gmp_xor

(PHP 4 >= 4.0.4, PHP 5)

gmp_xor -- OU exclusif logique

Description

resource gmp_xor ( resource a, resource b )

gmp_or() calcule le OU exclusif logique de a et b.

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

Précédent | Sommaire | Suivant
gmp_sub | Niveau supérieur | gnupg Fonctions


HTTP

Manuel PHP
Précédent Suivant

LV. HTTP

Introduction

Cette extension HTTP fournit un jeu de fonctionnalités puissantes pour les applications PHP.

Il devient facile de gérer les URLs HTTP, les dates, les redirections, les en-têtes et les messages, de gérer les négociations avec les clients concernant le langage et les jeux de caractères, mais aussi d'envoyer des données arbitraires.

Elle fournit des fonctionnalités puissantes pour les requêtes, si elle est construite avec le support CURL. Les requêtes parallèles sont disponibles depuis PHP 5 et suivant.

En plus de la référence de l'API de ce manuel, vous pouvez trouver des informations sur l'installation et la configuration mais aussi quelles constantes sont prédéfinies, dans les sections suivantes :

Installation
Configuration
Constantes globales
Types de ressource

Classes

Ces classes sont définies par cette extension, et elles ne seront disponibles que si cette extension a été compilée avec PHP, ou bien chargée dynamiquement.

La classe HttpResponse nécessaite au moins PHP v5.1. Toutes les autres classes sont disponibles depuis PHP v5.0.

Note : Soyez prudent ! Quelques méthodes ne sont pas disponibles avec PHP 5.0.

HttpMessage
HttpQueryString
HttpDeflateStream
HttpInflateStream
HttpRequest
HttpRequestPool
HttpResponse

Fonctions

Fonctions internes

Les fonctions HTTP internes lisées sur cette page peuvent être trouvées dans la catégorie réseau.

Les fonctions suivantes ne nécessitent pas la présence du module HTTP :
header(), headers_list(),
headers_sent(),
setcookie()  et setrawcookie().

Mise en cache

http_cache_etag()
http_cache_last_modified()

Encodage

http_chunked_decode()
http_deflate()
http_inflate()

Divers

http_build_cookie()
http_date()
http_get_request_body_stream()
http_get_request_body()
http_get_request_headers()
http_match_etag()
http_match_modified()
http_match_request_header()
http_support()

Négociation

http_negotiate_charset()
http_negotiate_content_type()
http_negotiate_language()

Gestionnaires de sortie

ob_deflatehandler()
ob_etaghandler()
ob_inflatehandler()

Analyseurs

http_parse_cookie()
http_parse_headers()
http_parse_message()
http_parse_params()

Requêtes

http_get()
http_head()
http_post_data()
http_post_fields()
http_put_data()
http_put_file()
http_put_stream()
http_request_body_encode()
http_request_method_exists()
http_request_method_name()
http_request_method_register()
http_request_method_unregister()
http_request()

Réponses

http_redirect()
http_send_content_disposition()
http_send_content_type()
http_send_data()
http_send_file()
http_send_last_modified()
http_send_status()
http_send_stream()
http_throttle()

Urls

http_build_str()
http_build_url()

Gestionnaires persistents

http_persistent_handles_count()
http_persistent_handles_ident()
http_persistent_handles_clean()

Table des matières
Installation -- Installation et configuration de l'extension HTTP
Configuration -- Directives de configuration du module http
Resources -- Resources created by the HTTP extension
Constantes -- constantes prédéfinies du module HTTP
Request Options -- options usable with the HttpRequest class and request functions
HttpMessage -- CLasse HTTP Message
HttpMessage::__construct -- Constructeur de la classe HttpMessage
HttpMessage::factory -- Create HttpMessage from string
HttpMessage::fromEnv -- Create HttpMessage from environment
HttpMessage::fromString -- Crée un HttpMessage depuis une chaîne de caractères
HttpMessage::toString -- Récupère la représentation du message sous la forme d'une chaîne de caractères
HttpMessage::toMessageTypeObject -- Crée un objet HTTP en fonction du type de message
HttpMessage::guessContentType -- Demande le type de contenu
HttpMessage::detach -- Détache un HttpMessage
HttpMessage::prepend -- Ajoute un message
HttpMessage::reverse -- Renverse la chaîne du message
HttpMessage::send -- Envoie le message
HttpMessage::getParentMessage -- Récupère le message parent
HttpMessage::getType -- Récupère le type du message
HttpMessage::setType -- Définit le type de message
HttpMessage::getHttpVersion -- Récupère la version HTTP
HttpMessage::setHttpVersion -- Définit la version HTTP
HttpMessage::getHeaders -- Récupère les en-têtes du message
HttpMessage::getHeader -- Récupère les en-têtes
HttpMessage::addHeaders -- Ajoute des en-têtes
HttpMessage::setHeaders -- Définit les en-têtes
HttpMessage::getBody -- Récupère le corps du message
HttpMessage::setBody -- Définit le corps du message
HttpMessage::getRequestMethod -- Récupère la méthode de la demande
HttpMessage::setRequestMethod -- Définit la méthode de la demande
HttpMessage::getRequestUrl -- Récupère l'URL de la demande
HttpMessage::setRequestUrl -- Définit l'URL de la demande
HttpMessage::getResponseCode -- Récupère le code réponse
HttpMessage::setResponseCode -- Définit le code réponse
HttpMessage::getResponseStatus -- Récupère le statut de la réponse
HttpMessage::setResponseStatus -- Définit le statut de la réponse
HttpQueryString -- Classe HTTPQueryString
HttpQueryString::__construct -- Constructeur de la classe HttpQueryString
HttpQueryString::singleton -- Récupère un instance simple de HttpQueryString
HttpQueryString::get -- Récupère (une partie) de la requête
HttpQueryString::mod -- Modifie la copie de la requête
HttpQueryString::set -- Définit les paramètres de la requête
HttpQueryString::toArray -- Récupère la requête sous la forme d'un tableau
HttpQueryString::toString -- Récupère la requête
HttpQueryString::xlate -- Modifie le jeu de caractères de la requête
HttpDeflateStream -- Classe de compression du flux HTTP
HttpDeflateStream::__construct -- Constructeur de la classe HttpDeflateStream
HttpDeflateStream::update -- Met à jour le flux compressé
HttpDeflateStream::flush -- Envoi un flux compressé
HttpDeflateStream::finish -- Finalise un flux compressé
HttpInflateStream -- Décompression d'un flux HTTP
HttpInflateStream::__construct -- Constructeur de la classe HttpInflateStream
HttpInflateStream::update -- Met à jour un flux décompressé
HttpInflateStream::flush -- Envoi un flux décompressé
HttpInflateStream::finish -- Finalise un flux décompressé
HttpRequest -- Classe HTTPRequest
HttpRequest::addCookies -- Ajoute des cookies
HttpRequest::addHeaders -- Ajoute des en-têtes
HttpRequest::addPostFields -- Ajoute des champs POST
HttpRequest::addPostFile -- Ajoute un fichier en POST
HttpRequest::addPutData -- Ajoute des données PUT
HttpRequest::addQueryData -- Ajoute des paramètres à une requête
HttpRequest::addRawPostData -- Ajoute une ligne de données POST
HttpRequest::addSslOptions -- Ajoute des options SSL
HttpRequest::clearHistory -- Efface l'historique
HttpRequest::__construct -- Constructeur de HttpRequest
HttpRequest::enableCookies -- Active les cookies
HttpRequest::getContentType -- Récupère le type de contenu
HttpRequest::getCookies -- Récupère les cookies
HttpRequest::getHeaders -- Récupère les en-têtes
HttpRequest::getHistory -- Récupère l'historique
HttpRequest::getMethod -- Récupère une méthode
HttpRequest::getOptions -- Récupère les options
HttpRequest::getPostFields -- Récupère les champs POST
HttpRequest::getPostFiles -- Récupère les fichiers POST
HttpRequest::getPutData -- Récupère des données PUT
HttpRequest::getPutFile -- Récupère un fichier PUT
HttpRequest::getQueryData -- Récupère les données de la requête
HttpRequest::getRawPostData -- Récupère les données POST
HttpRequest::getRawRequestMessage -- Récupère le message de la requête
HttpRequest::getRawResponseMessage -- Récupère le message de réponse
HttpRequest::getRequestMessage -- Récupère le message de la requête
HttpRequest::getResponseBody -- Récupère le coprs de la réponse
HttpRequest::getResponseCode -- Récupère le code de la réponse
HttpRequest::getResponseCookies -- Récupère la réponse des cookies
HttpRequest::getResponseData -- Récupère les données de la réponse
HttpRequest::getResponseHeader -- Récupère les en-têtes de la réponse
HttpRequest::getResponseInfo -- Récupère les informations de la réponse
HttpRequest::getResponseMessage -- Récupère le message de la réponse
HttpRequest::getResponseStatus -- Récupère le statut de la réponse
HttpRequest::getSslOptions -- RÃ©cupÃ¨re les options SSL
HttpRequest::getUrl -- Récupère l'url
HttpRequest::resetCookies -- Efface les cookies
HttpRequest::send -- Envoi une requête
HttpRequest::setContentType -- Définit le type de contenu
HttpRequest::setCookies -- Définit un cookie
HttpRequest::setHeaders -- Définit un en-tête
HttpRequest::setMethod -- Définit la méthode
HttpRequest::setOptions -- Définit des options
HttpRequest::setPostFields -- Définit les champs POST
HttpRequest::setPostFiles -- Définit les fichiers POST
HttpRequest::setPutData -- Définit les données PUT
HttpRequest::setPutFile -- Définit le fichier PUT
HttpRequest::setQueryData -- Définit les données de la requête
HttpRequest::setRawPostData -- Définit les données POST
HttpRequest::setSslOptions -- Définit les options SSL
HttpRequest::setUrl -- Définit l'URL
HttpRequestPool -- Classe HTTPRequestPool
HttpRequestPool::attach -- Attache un objet HttpRequest
HttpRequestPool::__construct -- Constructeur de la classe HttpRequestPool
HttpRequestPool::__destruct -- Déstructeur de la classe HttpRequestPool
HttpRequestPool::detach -- Détache un objet HttpRequest
HttpRequestPool::getAttachedRequests -- Récupère les requêtes attachées
HttpRequestPool::getFinishedRequests -- Récupère les requêtes terminées
HttpRequestPool::reset -- Efface la file d'attente des requêtes
HttpRequestPool::send -- Envoie toutes les requêtes
HttpRequestPool::socketPerform -- Effectue une action sur le socket
HttpRequestPool::socketSelect -- Sélectionne un socket
HttpResponse -- Classe HTTPResponse
HttpResponse::capture -- Capture la sortie du script
HttpResponse::getBufferSize -- Récupère la taille du buffer
HttpResponse::getCacheControl -- Récupère l'en-tête Cache-Control
HttpResponse::getCache -- Récupère le cache
HttpResponse::getContentDisposition -- Récupère l'en-tête Content-Disposition
HttpResponse::getContentType -- Récupère l'en-tête Content-Type
HttpResponse::getData -- Récupère les données
HttpResponse::getETag -- Récupère l'ETag
HttpResponse::getFile -- Récupère le fichier
HttpResponse::getGzip -- Récupère la configuration gzip
HttpResponse::getHeader -- Récupère un en-tête
HttpResponse::getLastModified -- Récupère l'en-tête Last-Modified
HttpResponse::getStream -- Récupère le flux
HttpResponse::getThrottleDelay -- Récupère le délai de la commande
HttpResponse::guessContentType -- Devine le type de contenu
HttpResponse::send -- Envoi la réponse
HttpResponse::setBufferSize -- Définit la taille du buffer
HttpResponse::setCacheControl -- Définit l'en-tête cache-control
HttpResponse::setCache -- Définit le cache
HttpResponse::setContentDisposition -- Définit l'en-tête Content-Disposition
HttpResponse::setContentType -- Définit l'en-tête content-type
HttpResponse::setData -- Définit les données
HttpResponse::setETag -- Dfinit l'ETag
HttpResponse::setFile -- Définit le fichier
HttpResponse::setGzip -- Définit le mode gzip
HttpResponse::setHeader -- Définit un en-tête
HttpResponse::setLastModified -- Définit l'en-tête Last-Modified
HttpResponse::setStream -- Définit le flux
HttpResponse::setThrottleDelay -- Définit le délai de la commande
http_cache_etag -- Mise en cache en fonction de l'ETag
http_cache_last_modified -- Mise en cache en fonction de la date de dernière modification
http_chunked_decode -- Décode un fragment de donnée encodé
http_deflate -- Compresse des données
http_inflate -- Décompresse des données
http_get_request_body_stream -- Récupère le corps demandé sous la forme d'un flux
http_get_request_body -- Récupère le corps demandé sous la forme d'une chaîne de caractères
http_get_request_headers -- Récupère les en-têtes sous la forme d'un tableau
http_date -- Compose une date respectant la RFC HTTP
http_support -- Vérifie le support HTTP interne
http_match_etag -- Cherche un ETag particulier
http_match_modified -- Vérifie la date de dernière modification
http_match_request_header -- Cherche n'importe quel en-tete
http_build_cookie -- Construit le cookie
http_negotiate_charset -- Jeu de caractères préféré pour la négociation avec les clients
http_negotiate_content_type -- Negotiate clients preferred content type
http_negotiate_language -- Négocie le langage préféré par les clients
ob_deflatehandler -- Gestionnaire de sortie de compression
ob_etaghandler -- Gestionnaire de sortie ETag
ob_inflatehandler -- Gestionnaire de sortie de décompression
http_parse_cookie -- Analyse un cookie HTTP
http_parse_headers -- Analyse les en-tetes HTTP
http_parse_message -- Analyse un message HTTP
http_parse_params -- Analyse la liste des paramètres
http_persistent_handles_count -- Stat persistent handles
http_persistent_handles_ident -- Get/set ident of persistent handles
http_persistent_handles_clean -- Clean up persistent handles
http_get -- Effectue une requête GET
http_head -- Effectue une requête HEAD
http_post_data -- Effectue une requête POST avec des données pré-encodées
http_post_fields -- Effectue une requête POST avec des données à encoder
http_put_data -- Effectue une requête PUT avec des données
http_put_file -- Effecute une requête PUT avec un fichier
http_put_stream -- Effectue une requête PUT avec un flux
http_request_method_exists -- Vérifie si la méthode de requête existe
http_request_method_name -- Récupère le nom de la requête
http_request_method_register -- Enregistre une méthode de requête
http_request_method_unregister -- Désenregistre une méthode de requête
http_request -- Effectue une requête personnalisée
http_request_body_encode -- Encode le corps de la requête
http_redirect -- Effectue une redirection HTTP
http_send_content_disposition -- Envoi l'en-tête Content-Disposition
http_send_content_type -- Envoi le type de contenu
http_send_data -- Envoi des données arbitraires
http_send_file -- Envoi un fichier
http_send_last_modified -- Envoi l'en-tête Last-Modified
http_send_status -- Envoi le statut
http_send_stream -- Envoi un flux
http_throttle -- Étranglement HTTP
http_build_str -- Construit une URL à partir d'une chaîne de caractères
http_build_url -- Construit une URL

Précédent | Sommaire | Suivant
hash | Niveau supérieur | Installation


header

(PHP 3, PHP 4, PHP 5)

header -- Envoie un en-tête HTTP

Description

void header ( string string [, bool replace [, int http_response_code]] )

header() permet de spécifier l'en-tête HTTP string lors de l'envoi des fichiers HTML. Reportez-vous à HTTP/1.1 Specification pour plus d'informations sur les en-têtes HTTP.

Note : Depuis PHP 4.4.2 et PHP 5.1.2, cette fonction prévient l'envoi de plus d'un en-tête en même temps pour lutter contre les attaques par injection d'en-tête.

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 :

Exemple 1. Identification HTTP avec header()

<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>

Le second paramètre optionnel force le code de réponse HTTP à la valeur de http_response_code. Ce paramètre est disponible en PHP 4.3.0 et plus récent.

Il y a deux en-têtes spéciaux. Le premier commence par la chaîne "HTTP/" (insensible à la casse), qui est utilisée pour signifier le statut HTTP à envoyer. Par exemple, si vous avez configuré Apache pour utiliser les scripts PHP pour gérer les requêtes vers des fichiers inexistants (en utilisant la directive ErrorDocument), vous voulez-vous assurer que le script génère un code statut correct.

Exemple 2. Générer une erreur 404 avec header()

<?php
header("HTTP/1.0 404 Not Found");
?>

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

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) à Apache. Du point de vue de l'auteur de script, cela importe peu, mais pour ceux qui connaissent les rouages internes d'Apache, c'est primordial.

Exemple 3. Redirection HTTP avec header()

<?php
/* Redirige vers une page différente du dossier courant */
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>

Note : HTTP/1.1 demande une URI absolue comme argument de Location:, y compris le protocole, hôte et chemin absolu. Mais certains navigateurs acceptent les URI relatives. Vous pouvez généralement utiliser les variables globales $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] et dirname() pour construire vous-même une URI absolue :

Exemple 4. Redirection à l'aide de header()

<?php
header("Location: http://" . $_SERVER['HTTP_HOST']
. rtrim(dirname($_SERVER['PHP_SELF']), '/\\')
. "/" . $relative_url);
?>

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.

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 :

Exemple 5. Interdire la mise en cache avec header()

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date du 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.

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 affichges 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 génèreront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.

Exemple 6. header() doit toujours être appelé en premier

<?php

require("user_logging.inc")
?>
<?php
header("Content-Type: audio/x-pn-realaudio");
?>
&nbsp;
// Erreur :  Notez la ligne blanche ci-dessus
?>

Note : Depuis PHP 4, 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.

Si vous voulez que vos utilisateur 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.

Exemple 7. Utilisation de header() pour générer un fichier de type PDF ou d'un autre type

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

Note : Il y a un bogue sous Microsoft Internet Explorer 4.01 qui empêche cet en-tête de fonctionner. Il n'y a pas d'autre solution. Il y a aussi un bogue dans Microsoft Internet Explorer 5.5 qui interfère avec ceci, mais qui peut être résolu en utilisant le Service Pack 2 ou plus récent.

Note : Si safe mode est activé, l'UID du script est ajouté à la partie realm des en-têtes WWW-Authenticate que vous envoyez avec cet en-tête.

Voir aussi headers_sent(), setcookie() et la section sur l'identification HTTP .

Précédent | Sommaire | Suivant
getservbyport | Niveau supérieur | headers_list


headers_list

(PHP 5)

headers_list -- Retourne la liste des en-têtes de réponse du script courant

Description

array headers_list ( void )

headers_list() retourne un tableau avec la liste des en-têtes qui seront transmis au navigateur. Pour déterminer si ces en-têtes ont été déjà envoyés ou pas, utilisez la fonction headers_sent().

Exemple 1. Exemple avec headers_list()

<?php

/* setcookie() va ajouter un en-tête */
setcookie('foo', 'bar');

/* Définit un en-tête de réponse
Il sera ignoré par la majorité des navigateurs */
header("X-Sample-Test: foo");

/* Spécification de la réponse en texte simple */
header('Content-type: text/plain');

/* Quels sont les en-têtes qui vont être envoyés ? */
var_dump(headers_list());

?>

L'exemple ci-dessus va afficher :

array(4) {
   [0]=>
   string(23) "X-Powered-By: PHP/5.1.3"
   [1]=>
   string(19) "Set-Cookie: foo=bar"
   [2]=>
   string(18) "X-Sample-Test: foo"
   [3]=>
   string(24) "Content-type: text/plain"
}

Voir aussi
headers_sent(),
header() et
setcookie().

Précédent | Sommaire | Suivant
header | Niveau supérieur | headers_sent


headers_sent

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

headers_sent -- Indique si les en-têtes HTTP ont déjà été envoyés

Description

bool headers_sent ( [string &file [, int &line]] )

headers_sent() retourne TRUE si les en-têtes HTTP ont déjà été envoyés, et FALSE sinon. Si les paramètres optionnels file et line sont fournis, headers_sent() va placer le nom du fichier source et le numéro de ligne qui ont débuté l'affichage, dans les variables file et line.

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.

Note : Les paramètres optionnels file et line ont été ajoutés en PHP 4.3.0.

Exemple 1. Exemple avec headers_sent()

<?php

// Si aucun en-tête n'a été envoyé, envoyons-en un
if (!headers_sent()) {
   header ('Location: http://www.example.com/');
   exit;
}

// Voici un exemple d'utilisation des paramètres optionnels de fichier et de ligne
// disponibles depuis PHP 4.3.0. Notez que $filename et $linenum sont
// transmis pour utilisation ultérieure. Ne les assignez pas avant de les utiliser.
if (!headers_sent($filename, $linenum)) {
   header ('Location: http://www.example.com/');
   exit;

// Vous allez probablement déclencher une erreur ici
} else {

   echo "Les en-têtes ont déjà été envoyés, depuis le fichier $filename à la ligne $linenum\n" .
   "Il est donc impossible de vous rediriger automatiquement, aussi veuillez
   cliquez <a href=\"http://www.example.com\">ici</a>.\n";
   exit;
}

?>

Voir aussi ob_start(), trigger_error() et header() pour plus de détails sur les tenants et aboutissants.

Précédent | Sommaire | Suivant
headers_list | Niveau supérieur | inet_ntop


setcookie

(PHP 3, PHP 4, PHP 5)

setcookie -- Envoie un cookie

Description

bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] )

setcookie() définit un cookie qui sera envoyé avec le reste des en-têtes. Comme pour les autres en-têtes, les cookies doivent être envoyés avant tout 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>. Si quelque chose a été envoyé 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.

Note : Depuis PHP 4, vous pouvez utiliser la bufferisation de sortie pour pouvoir envoyer du contenu avant d'appeler cette fonction, avec la contrepartie que toute votre page sera envoyée en une fois. Vous pouvez faire cela en appelant ob_start() et ob_end_flush() dans votre script, ou en activant la directive output_buffering dans votre fichier de configuration php.ini.

Tous les arguments sauf name (nom) sont optionnels. Si seul le nom est présent, le cookie portant ce nom sera supprimé du navigateur de l'internaute. Vous pouvez aussi utiliser une chaîne vide comme valeur, pour ignorer un argument. Comme l'argument expire est un entier, il ne peut pas être ignoré avec une chaîne vide, vous devez utiliser le zéro pour cela (0). Le tableau suivant explique chaque paramètre de la fonction setcookie(). Veuillez lire "Netscape cookie specification" pour le fonctionnement de chaque paramètre de setcookie() ainsi que la RFC 2965 pour des compléments d'informations sur les cookies HTTP.

Tableau 1. Description des paramètres de setcookie()

Paramètre | Description | Exemples
name | Le nom du cookie. | 'cookiename' est appelé via $_COOKIE['cookiename']
value | La valeur du cookie. Cette valeur est stocké sur l'ordinateur du client ; ne stocker pas d'informations importantes. | Le paramètre name est le 'cookiename', cette valeur est retrouvé en utilisant $_COOKIE['cookiename']
expire | Le temps après lequel le cookie expire. C'est un timestamp Unix, donc, ce sera un nombre de secondes depuis l'époque Unix (1 Janvier 1970). En d'autres mots, vous devriez fixer cette valeur à l'aide de la fonction time() et en y ajoutant le nombre de secondes après lequel on veut que le cookie expire. Vous ouvez utiliser aussi mktime(). | time()+60*60*24*30 fera expirer le cookie dans 30 jours. Si vous ne spécifiez pas ce paramètre ou s'il vaut 0, le cookie expirera à la fin de la session (lorsque le navigateur sera fermé).
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 ces sous-répertoires comme /foo/bar/ du domaine domain. La valeur par défaut est le répertoire courant où le cookie a été défini.
domain | Le domaine où le cookie est disponible. | Pour rendre le cookie disponible sur tous les sous-domaines de example.com, vous devez mettre la valeur '.example.com'. Le point (.) n'est pas requis mais est nécessaire pour la compatibilité avec encore plus de navigateurs. Positionnez le à www.example.com rendra le cookie disponible uniquement sur le sous-domaine www. Reportez-vous aux spécifications pour plus de détails.
secure | Indique si le cookie doit uniquement être transmis à travers une connexion sécurisée HTTPS depuis le client. Lorsqu'il est positionné à TRUE, le cookie ne sera positionné uniquement si la connexion sécurisée existe. La valeur par défaut est FALSE. Côté serveur, c'est au développeur d'envoyer ce genre de cookie uniquement sur les connexions sécurisées (e.g. en utilisant la variable $_SERVER["HTTPS"]). | TRUE ou FALSE
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. Cette configuration permet de limiter les attaques via XSS (bien qu'elle ne soit pas supporté par tous les navigateurs). Ajouté en PHP 5.2.0. | TRUE or FALSE

Une fois que le cookie a été placé, il est accessible dans les variables globales $_COOKIE ou bien $HTTP_COOKIE_VARS arrays. Notez que les superglobales telles que $_COOKIE sont disponibles en PHP depuis la version 4.1.0. $HTTP_COOKIE_VARS existe depuis PHP 3. Les valeurs de cookies existent aussi dans la variable $_REQUEST.

Note : Si la directive PHP register_globals est positionnée à on, la valeur du cookie est aussi disponible dans une variable. Dans l'exemple ci-dessous, $TestCookie existe. Il est vivement recommandé d'utiliser $_COOKIE.

Erreurs communes :

  • Les cookies ne seront accessibles qu'au chargement de la prochaine page, ou au rechargement de la page courante. Pour tester si un cookie a été défini avec succès, vérifiez la présence du cookie au prochain chargement de la page avant que le cookie n'expire. Le délai d'expiration est défini en utilisant le paramètre expire. Une façon simple de vérifier le positionnement du cookie est d'utiliser print_r($_COOKIE);.

  • Les cookies doivent être effacés avec les mêmes paramètres que ceux utilisés lors de leur création. Si l'argument value est une chaîne vide ou vaut FALSE et quelques autres arguments sont exactements les mêmes que lors du positionnement du cookie, alors le cookie sera effacé du client.

  • Du fait que l'assignation d'une valeur vallant 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é.

En PHP 3, les appels multiples à setcookie() dans le même script seront effectués dans l'ordre inverse. Si vous essayez d'effacer un cookie avant d'insérer une nouvelle valeur, vous devez placer l'insertion avant l'effacement. Depuis PHP 4, les appels multiples à setcookie() sont effectués dans un ordre naturel.

Quelques exemples :

Exemple 1. Exemples avec setcookie()

<?php
$value = 'Valeur de test';

setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  /* expire dans une heure */
setcookie("TestCookie", $value, time()+3600,"/~rasmus/",".utoronto.ca",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 le voulez pas de ce comportement par défaut, vous pouvez utiliser la fonction setrawcookie() si vous utilisez PHP 5. Pour voir le résultat, essayez les scripts suivants :

Exemple 2. Affectation des valeurs de cookie

<?php
// Afficher un cookie
echo $_COOKIE["TestCookie"];
echo $HTTP_COOKIE_VARS["TestCookie"];

// Une autre méthode pour afficher tous les cookies
print_r($_COOKIE);
?>

Lorsque vous effacez un cookie, vous devriez toujours vous assurer que sa date d'expiration est déjà passée, pour déclencher le mécanisme de votre navigateur. Voici comment procéder :

Exemple 3. Exemple d'effacement de cookies avec setcookie()

<?php
// utilisation de la date moins une heure
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".example.com", 1);
?>

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 :

Exemple 4. Utilisation des tableaux avec setcookie()

<?php
setcookie("cookie[three]", "cookiethree" );
setcookie("cookie[two]", "cookietwo" );
setcookie("cookie[one]", "cookieone" );

// Après avoir rechargé la page :
if (isset($_COOKIE['cookie'])) {
   foreach ($_COOKIE['cookie'] as $name => $value) {
      echo "$name : $value <br />\n";
   }
}
?>

L'exemple ci-dessus va afficher :

three : cookiethree
two : cookietwo
one : cookieone

Note : Les RFCs suivantes peuvent être utiles : RFC 2109 et RFC 2695.

Vous pourrez noter que le paramètre expire prend un timestamp unique, et non pas la date au format Jour, JJ-Mois-AAAA HH:MM:SS GMT, car PHP fait la conversion en interne.

Le paramètre expire est comparé avec le temps du client qui peut être différent de celui du serveur.

Note : Microsoft Internet Explorer 4 utilisé avec le Service Pack 1 ne gère pas bien les cookies qui possèdent un paramètre path.

Netscape Communicator 4.05 et Microsoft Internet Explorer 3.x semblent ne pas gérer correctement les cookies lorsque path et expire ne sont pas fournis.

Voir aussi header(), setrawcookie() ainsi que la section sur les cookies.

Précédent | Sommaire | Suivant
pfsockopen | Niveau supérieur | setrawcookie


setrawcookie

(PHP 5)

setrawcookie -- Envoie un cookie sans encoder sa valeur en URL

Description

bool setrawcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] )

setrawcookie() est exactement la même que setcookie() excepté que la valeur du cookie ne sera pas automatiquement encodée URL lors de l'envoi au navigateur.

Note : La paramètre httponly a été ajouté en PHP 5.2.0.

Voir aussi header(), setcookie() et la section sur les cookies.

Précédent | Sommaire | Suivant
setcookie | Niveau supérieur | socket_get_status


Hyperwave

Manuel PHP
Précédent Suivant

LVI. Hyperwave

Introduction

Hyperwave a été développé par IICM à Graz. Son nom original était Hyper-G et il a pris le nom de Hyperwave lors de sa commercialisation (en 1996).

Hyperwave n'est pas gratuit. La version actuelle est la 5.5, disponible à http://www.hyperwave.com/. Une version limitée à 30 jours peut être demandée.

Voir aussi le module Hyperwave API.

HIS est un système d'information similaire à une base de données, (HIS, Hyperwave Information Server). HIS se concentre sur l'enregistrement et la gestion des documents. Un document peut être n'importe quelle donnée, qui peut être stockée dans un fichier. Chaque document est accompagné par un enregistrement. Cet enregistrement contient des méta données à propos du document. Ces méta données sont des listes d'attributs qui peuvent être étendues par l'utilisateur. Un attribut est une paire clé/valeur de la forme : clé =valeur. L'enregistrement complet contient autant de paires que le désire l'utilisateur. Le nom d'un attribut n'a pas besoin d'être unique, c'est-à-dire qu'une même clé peut apparaître plusieurs fois dans un enregistrement. Cela peut être utile si vous devez donner un titre à votre document en plusieurs langues, par exemple. Dans un cas pareil, la convention est que chaque valeur de titre est précédée par deux lettres et deux points, tel que : 'fr:Titre en français' ou 'ge:Titel in deutsch'. D'autres attributs comme une description ou des mots-clés sont aussi susceptibles de recourir à ce genre de procédé. Vous pouvez aussi remplacer l'abréviation de langage par une autre chaîne, tant qu'elle est séparée de la valeur par les deux points.

Chaque enregistrement a une représentation native qui contient toutes les paires clé/valeur, séparées par un retour à la ligne. L'extension Hyperwave reconnaît une autre représentation qui est un tableau associatif, où les attributs servent de clés. Les attributs multilingues étant gérés sous la forme d'un autre tableau associatif, dont les clés sont les chaînes de langue. En fait, tous les attributs multiformes sont gérés sous la forme de tableau associatif. (Cela n'est pas encore complètement codé. Uniquement les attributs de titre, description et mot-clés sont traités correctement).

En dehors des documents, tous les hyperliens contenus dans un document sont enregistrés dans un autre enregistrement. Les hyperliens qui sont à l'intérieur d'un document en seront supprimés, et enregistrés dans des objets particuliers au moment de l'insertion dans la base de données. L'enregistrement des hyperliens contient les informations d'origine et d'objectif. Afin d'accéder au document original, vous devrez lire le document sans les liens, puis lire les liens et les réinsérer (les fonctions hw_pipedocument() et hw_gettext() le font pour vous. L'avantage de séparer les liens du document est évident : une fois qu'un document, cible d'un hyperlien, a été renommé, le liens peut facilement être modifié. Le document contenant le lien n'est pas modifié pour autant. Vous pouvez même ajouter un lien à un document sans le modifier.

Dire que hw_pipedocument() et hw_gettext() font l'insertion automatiquement n'est pas aussi simple qu'il y paraît. L'insertion implique une certaine hiérarchie de documents. Sur un serveur web, la hiérarchie est fournie par le système de fichiers, mais Hyperwave dispose de sa propre hiérarchie et les noms de fichiers ne reflètent pas la position d'un objet dans cette hiérarchie. Ainsi, la création de liens requiert en premier lieu la construction de la hiérarchie et de l'espace des noms dans une hiérarchie web et un espace de nom web. La différence fondamentale entre Hyperwave et le web est qu'il y a une distinction claire entre les noms et la hiérarchie dans Hyperwave. Le nom ne contient aucune information à propos de la position de l'objet dans la hiérarchie. Sur le web, le nom contient les informations de localisation dans la hiérarchie. Cela conduit à deux méthodes d'accès : soit la hiérarchie Hyperwave et le nom de l'objet sont inscrits dans l'URL. Pour simplifier les choses, une deuxième approche est pratiquée. L'objet Hyperwave de nom 'mon_objet' correspond à l'URL 'http://hote/mon_objet', peu importe alors où il est rangé dans la hiérarchie. Un objet dont le nom est 'parent/mon_objet' peut être le fils de l'objet 'mon_objet' dans la hiérarchie Hyperwave, bien que ce soit le contraire en convention web, et cela risque de perturber l'utilisateur.

Ayant pris cette décision, un deuxième problème surgit : comment faire l'interface avec PHP ? L'URL http://hote/mon_objet n'appellera aucun script PHP à moins que vous ne demandiez à votre serveur web de le remplacer par autre chose, comme : 'http://host/php3_script/mon_objet' et le script 'php3_script' utilise la variable $PATH_INFO pour rechercher l'objet 'mon_objet' sur le serveur Hyperwave. Il y a juste un petit inconvénient, qui peut facilement être corrigé. Réécrire une URL ne vous permettra aucun accès aux autres documents du serveur web. Un script de recherche dans le serveur Hyperwave serait impossible. Il vous faudra donc au moins une autre règle pour exclure certaines URL, comme celles qui commencent par http://host/Hyperwave. Voici, de manière simple, comment partager un espace de nom entre un serveur web et un serveur Hyperwave serveur.

Basé sur le mécanisme précédent, on trouve l'insertion dans les documents.

Il est plus compliqué d'avoir PHP ne fonctionnant pas comme un module de serveur, ou un script CGI, mais comme une application indépendante. Dans ce cas, il est utile d'inscrire la hiérarchie et le nom de fichier Hyperwave dans le système de fichier. Mais comme cela risque d'entrer en conflit avec le séparateur de dossier ('/'), il faut le remplacer par un autre caractère,. '_'.

Le protocole réseau pour communiquer avec un serveur Hyperwave est appelé HG-CSP (Hyper-G Client/Server Protocol). Il est basé sur des messages qui initient des actions, comme lire l'en-tête de fichier. Dans les premières versions de Hyperwave Server, deux clients natifs (Harmony, Amadeus) étaient fournis pour permettre la communication avec le serveur. Ils ont disparu lors de la commercialisation de Hyperwave. En tant qu'ersatz, un client appelé wavemaster est désormais fourni. wavemaster est un espèce de convertisseur de protocole de HTTP en HG-CSP. L'idée est de faire toute l'administration de la base et la visualisation des documents par une interface web. Le wavemaster implémente un jeu d'emplacement pour certaines actions de personnalisation de l'interface. Ce jeu est appelé PLACE language. PLACE pêche encore par le manque de nombreuses fonctions de programmation et le manque d'évolutivité. Cela a conduit à l'utilisation de JavaScript ce qui ne rend pas la vie facile.

Que PHP supporte Hyperwave permet de combler ces manques. PHP implémente tous les messages définis par HG-CSP mais fourni d'autres commandes puissantes, comme celle de lire des documents complets.

Hyperwave dispose de sa propre terminologie pour localiser certaines informations. Cette terminologie a été largement étendue. Presque toutes les fonctions utilisent l'un des types de données suivants :

  • object ID : un entier unique pour chaque objet sur le serveur Hyperwave. C'est aussi un des attributs de l'enregistrement de l'objet (ObjectID). Les object ids sont souvent utilisés comme paramètre d'entrée pour spécifier un objet.

  • object record : une chaîne contenant des paires clé=valeur. Les paires sont séparées par un retour à la ligne. Un enregistrement d'objet peut facilement être converti en tableau, avec la fonction hw_objrec2array(). De nombreuses fonctions retournent un objet record. Ces fonctions ont leur nom qui finit par obj.

  • object array : un tableau associatif qui contient tous les attributs d'un objet. La clé est l'attribut. Si un attribut apparaît plusieurs fois, il sera représenté sous la forme d'un tableau associatif ou indexé. Les attributs qui dépendent des langues (comme title, keyword ou description) seront représentés sous la forme d'un tableau associatif dont les clés seront les abréviations de langues. Tous les autres attributs à valeur multiple prendront la forme d'un tableau indexé.

  • hw_document : ce type est un nouveau type de données, qui contient le document lui-même, comme HTML, PDF etc. Il est optimisé pour les documents HTML mais peut s'utiliser avec n'importe quel format.

De nombreuses fonctions qui retournent un tableau d'enregistrements, retournent aussi un tableau associé, avec des informations statistiques. Ce tableau est le dernier élément du tableau d'enregistrements. Les statistiques contiennent les entrées suivantes :

Hidden

Nombre d'objets dont l'attribut PresentationHints est Hidden.

CollectionHead

Nombre d'objets dont l'attribut PresentationHints est CollectionHead.

FullCollectionHead

Nombre d'objets dont l'attribut PresentationHints est FullCollectionHead.

CollectionHeadNr

Index du premier objet du tableau d'enregistrement avec l'attribut PresentationHints à CollectionHead.

FullCollectionHeadNr

Index du premier objet du tableau d'enregistrement avec l'attribut PresentationHints est FullCollectionHead.

Total

Total : nombre d'enregistrements.

Pré-requis

Cette extension requiert un serveur Hyperwave, téléchargeable sur le site de http://www.hyperwave.com/.

Installation

Cette extension PECL n'est pas intégrée à PHP.

Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support Hyperwave en utilisant l'option de configuration --with-hyperwave[=DIR].

Les utilisateurs de Windows doivent activer la bibliothèque php_hyperwave.dll dans le php.ini pour pouvoir utiliser ces fonctions. La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Intégration avec Apache

L'extension Hyperwave est utilisée de manière optimale lorsque PHP est compilé comme module Apache. Dans ce cas, le serveur Hyperwave sous-jacent peut être caché quasiment totalement aux utilisateurs, si Apache utilise son moteur d'écriture. Les explications suivantes vous éclaireront :

Étant donné que PHP avec l'extension Hyperwave et Apache tend à remplacer la solution native basée sur Wavemaster, je vais supposer que le serveur Apache servira seulement d'interface Hyperwave. Ce n'est pas nécessaire, mais cela simplifie grandement la configuration. Le concept est très simple. Premièrement, vous avez besoin d'un script PHP qui évalue la variable $_ENV['PATH_INFO'] et considère que cette valeur est un objet Hyperwave. Appelons ce script 'Hyperwave'. L'URL http://votre.hote/Hyperwave/nom_objet retourne l'objet Hyperwave dont le nom est 'nom_objet'. Le script doit alors réagir suivant le type de l'objet. Si c'est un groupe, il devra probablement retourner une liste de fils. Si c'est un document, il pourra retourner son type MIME et son contenu. Une amélioration peut être obtenue en utilisant le moteur de réécriture d'Apache. D'un point de vue utilisateur, il est plus direct si l'URL http://votre.hote/nom_objet retourne l'objet. La règle de réécriture est simple :

Exemple 1. Configuration d'Apache pour HyperWave

RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]
Maintenant, toutes les URL pointent sur un objet Hyperwave. Cela conduit à un problème simple. Il n'y a pas d'autre façon d'exécuter, c'est-à-dire rechercher, un autre script que ce script 'Hyperwave'. Cela pourra être corrigé avec une autre règle telle que :

Exemple 2. Configuration d'Apache pour HyperWave (2)

RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]
Le dossier /usr/local/apache/htdocs/hw sera ainsi réservé pour d'autres scripts et fichiers. Assurez-vous que cette règle est évaluée avant la première règle que nous avons défini. Il y a juste un léger inconvénient : tous les objets Hyperwave qui commencent par 'hw/' seront cachés. Alors, assurez-vous que vous n'utilisez pas de tels noms. Si vous avez besoin d'autres dossiers, par exemple, un dossier d'images, ajoutez simplement d'autres règles. N'oubliez pas de lancer le moteur de réécriture avec.

Exemple 3. Demarrer les règles de réécriture d'Apache pour HyperWave

RewriteEngine on
Mon expérience m'a montré que vous aurez besoin des scripts suivants :

  • Retourne l'objet lui-même

  • Pour autoriser la recherche

  • S'identifier

  • Choisir une configuration

  • Un script pour chaque fonction supplémentaire, comme afficher un objet, afficher des informations sur les utilisateurs, afficher le statut du serveur, etc.

Une alternative pour le moteur de réécriture est l'utilisation de la directive Apache ErrorDocument, mais sachez alors que ErrorDocument n'effectue pas les redirections de méthodes POST.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
hyerwave.allow_persistent | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.2.
hyperwave.default_port | "418" | PHP_INI_ALL |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

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.

HW_ATTR_LANG (entier)

HW_ATTR_NR (entier)

HW_ATTR_NONE (entier)

À faire

Il reste encore beaucoup à faire :

  • La fonction hw_InsertDocument doit être séparée en deux : hw_insertobject() et hw_putdocument().

  • Les noms de nombreuses fonctions ne sont pas encore fixés.

  • La majorité des fonctions requièrent la connexion courante comme premier paramètre. Cela conduit à beaucoup de frappe clavier, même s'il n'y a souvent qu'une seule connexion en jeu. Une connexion par défaut améliorerait ceci.

  • La conversion depuis un objet record en un objet array a besoin de gérer les attributs multiples.

Table des matières
hw_Array2Objrec -- Convertit un tableau en un objet
hw_changeobject -- Change les attributs d'un objet (obsolète)
hw_Children -- Liste des objets ids des objets fils
hw_ChildrenObj -- Liste des objets records des objets fils
hw_Close -- Ferme la connexion Hyperwave
hw_Connect -- Ouvre une connexion Hyperwave
hw_connection_info -- Affiche des informations sur la connexion au serveur Hyperwave
hw_cp -- Copie des objets HyperWave
hw_Deleteobject -- Efface des objets
hw_DocByAnchor -- Identifiant d'objet de l'objet dans l'ancrage
hw_DocByAnchorObj -- Attributs de l'objet dans l'ancrage
hw_Document_Attributes -- Object record de hw_document
hw_Document_BodyTag -- Balise de corps d'un document
hw_Document_Content -- Contenu d'un document
hw_Document_SetContent -- Modifie/remplace le contenu d'un document
hw_Document_Size -- Taille d'un document
hw_dummy -- Fonction sans objet pour Hyperwave
hw_EditText -- Retourne un document texte
hw_Error -- Retourne le code d'erreur
hw_ErrorMsg -- Retourne un message d'erreur
hw_Free_Document -- Détruit un document
hw_GetAnchors -- Identifiants des ancrages d'un document
hw_GetAnchorsObj -- Attributs des ancrages d'un document
hw_GetAndLock -- Retourne les attributs et verrouille l'objet
hw_GetChildColl -- Identifiant d'objets des groupes fils
hw_GetChildCollObj -- Objet record d'un groupe d'enfants
hw_GetChildDocColl -- Identifiant des documents fils d'un groupe
hw_GetChildDocCollObj -- Attributs des documents fils d'un groupe
hw_GetObject -- Lit les attributs d'un objet Hyperwave
hw_GetObjectByQuery -- Recherche un objet
hw_GetObjectByQueryColl -- Recherche un objet dans un groupe
hw_GetObjectByQueryCollObj -- Recherche un objet dans un groupe
hw_GetObjectByQueryObj -- Recherche un objet
hw_GetParents -- Identifiant d'objet des parents
hw_GetParentsObj -- Attributs des parents
hw_getrellink -- Crée le lien depuis la source vers le destinataire, relativement à rootid
hw_GetRemote -- Retourne un document distant
hw_getremotechildren -- Retourne les fils d'un document distant
hw_GetSrcByDestObj -- Retourne les ancrages qui pointent sur un objet
hw_GetText -- Retourne un document texte
hw_getusername -- Nom de l'utilisateur actuellement identifié
hw_Identify -- Identifie un utilisateur
hw_InCollections -- Vérifie qu'un identifiant d'objet est dans un groupe
hw_Info -- Informations à propos d'une connexion
hw_InsColl -- Insère un groupe
hw_InsDoc -- Insère un document
hw_insertanchors -- Insère uniquement des ancres dans du texte
hw_InsertDocument -- Insère un document dans un groupe
hw_InsertObject -- Insère un objet record
hw_mapid -- Représente un id global en un id virtuel local
hw_Modifyobject -- Modifie les attributs d'object record
hw_mv -- Déplace un objet
hw_New_Document -- Crée un nouveau document
hw_objrec2array -- Convertit les attributs d'un objet en tableau
hw_Output_Document -- Affiche hw_document
hw_pConnect -- Crée une connexion persistante
hw_PipeDocument -- Retourne un document
hw_Root -- Objet id de la racine
hw_setlinkroot -- Configure l'identifiant vers lequel les liens sont calculés
hw_stat -- Retourne le statut de la chaîne
hw_Unlock -- Déverrouille un objet
hw_Who -- Liste des utilisateurs actuellement identifiés

Précédent | Sommaire | Suivant
http_build_url | Niveau supérieur | hw_Array2Objrec


hw_Array2Objrec

(PHP 3 >= 3.0.4, PHP 4, PECL)

hw_Array2Objrec -- Convertit un tableau en un objet

Description

string hw_array2objrec ( array object_array )

hw_Array2Objrec() convertit un object_array en un objet. Les attributs multiples tels que 'Title' en différentes langues seront traités correctement.

Voir aussi hw_objrec2array().

Précédent | Sommaire | Suivant
Hyperwave | Niveau supérieur | hw_changeobject


hw_changeobject

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_changeobject -- Change les attributs d'un objet (obsolète)

Description

bool hw_changeobject ( int link, int objid, array attributes )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
hw_Array2Objrec | Niveau supérieur | hw_Children


hw_Children

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Children -- Liste des objets ids des objets fils

Description

array hw_children ( int connection, int objectID )

hw_Children() retourne un tableau avec des objets ids. Chaque objet id est celui d'un des fils du groupe dont l'id est objectID. Ce tableau contient tous les fils, documents et groupes.

Précédent | Sommaire | Suivant
hw_changeobject | Niveau supérieur | hw_ChildrenObj


hw_ChildrenObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_ChildrenObj -- Liste des objets records des objets fils

Description

array hw_childrenobj ( int connection, int objectID )

hw_ChildrenObj() retourne un tableau avec des objets records. Chaque objet records est celui d'un des fils du groupe dont l'id est objectID. Ce tableau contient tous les fils, documents et groupes

Précédent | Sommaire | Suivant
hw_Children | Niveau supérieur | hw_Close


hw_Close

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Close -- Ferme la connexion Hyperwave

Description

bool hw_close ( int connection )

hw_Close() ferme la connexion connection à un serveur Hyperwave. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
hw_ChildrenObj | Niveau supérieur | hw_Connect


hw_Connect

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Connect -- Ouvre une connexion Hyperwave

Description

int hw_connect ( string host, int port [, string username, string password] )

hw_Connect() ouvre une connexion Hyperwave et retourne un identifiant de connexion en cas de succès, ou FALSE si la connexion n'a pas pu être créée. Chaque argument doit être entouré de guillemets, sauf le numéro de port. Les arguments username et password sont optionnels et peuvent être ignorés. Dans ce cas, aucune identification ne sera faite au niveau du serveur. Cela revient à s'identifier en tant qu'utilisateur anonyme. Cette fonction retourne un identifiant de connexion qui sera nécessaire aux autres fonctions Hyperwave. Vous pouvez avoir plusieurs connexions simultanées. N'oubliez pas que les mots de passe ne sont pas cryptés.

Voir aussi hw_pconnect().

Précédent | Sommaire | Suivant
hw_Close | Niveau supérieur | hw_connection_info


hw_connection_info

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_connection_info -- Affiche des informations sur la connexion au serveur Hyperwave

Description

void hw_connection_info ( int link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
hw_Connect | Niveau supérieur | hw_cp


hw_cp

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_cp -- Copie des objets HyperWave

Description

int hw_cp ( int connection, array object_id_array, int destination_id )

hw_cp() copie les objets ayant les identifiants object_id_array, et crée un groupe ayant l'objet id destination_id.

La valeur retournée est le nombre d'objets copiés.

Voir aussi hw_mv().

Précédent | Sommaire | Suivant
hw_connection_info | Niveau supérieur | hw_Deleteobject


hw_Deleteobject

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Deleteobject -- Efface des objets

Description

bool hw_deleteobject ( int connection, int object_to_delete )

hw_Deleteobject() efface l'objet dont l'identifiant est object_to_delete. Toutes les instances de l'objet object_to_delete seront effacées.

hw_deleteobject() retourne TRUE si aucune erreur ne survient, sinon, FALSE.

Voir aussi hw_mv().

Précédent | Sommaire | Suivant
hw_cp | Niveau supérieur | hw_DocByAnchor


hw_DocByAnchor

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_DocByAnchor -- Identifiant d'objet de l'objet dans l'ancrage

Description

int hw_docbyanchor ( int connection, int anchorID )

hw_DocByAnchor() retourne l'dentifiant d'objet de l'objet dans l'ancrage anchorID.

Précédent | Sommaire | Suivant
hw_Deleteobject | Niveau supérieur | hw_DocByAnchorObj


hw_DocByAnchorObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_DocByAnchorObj -- Attributs de l'objet dans l'ancrage

Description

string hw_docbyanchorobj ( int connection, int anchorID )

hw_DocByAnchorObj() retourne les attributs du document qui correspond à anchorID.

Précédent | Sommaire | Suivant
hw_DocByAnchor | Niveau supérieur | hw_Document_Attributes


hw_Document_Attributes

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Document_Attributes -- Object record de hw_document

Description

string hw_document_attributes ( int hw_document )

hw_Document_Attributes() retourne les attributs du document hw_document.

Voir aussi hw_document_bodytag() et hw_document_size().

Pour la compatibilité ascendante, hw_documentattributes() est aussi accepté, mais il est déconseillé.

Voir aussi hw_document_bodytag() et hw_document_size().

Précédent | Sommaire | Suivant
hw_DocByAnchorObj | Niveau supérieur | hw_Document_BodyTag


hw_Document_BodyTag

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Document_BodyTag -- Balise de corps d'un document

Description

string hw_document_bodytag ( int hw_document [, string prefix] )

hw_document_bodytag() retourne la balise BODY du document hw_document. Si le document est un document HTML, la balise BODY doit être affichée avant le document.

Voir aussi hw_document_attributes() et hw_document_size().

Pour la compatibilité ascendante, hw_documentbodytag() est aussi accepté, mais il est déconseillé.

Précédent | Sommaire | Suivant
hw_Document_Attributes | Niveau supérieur | hw_Document_Content


hw_Document_Content

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Document_Content -- Contenu d'un document

Description

string hw_document_content ( int hw_document )

hw_documentcontent() retourne la balise BODY du document hw_document.Si le document est un document HTML, la balise BODY doit être affichée avant le document.

Voir aussi
hw_document_attributes(),
hw_document_size() et
hw_document_setcontent().

Précédent | Sommaire | Suivant
hw_Document_BodyTag | Niveau supérieur | hw_Document_SetContent


hw_Document_SetContent

(PHP 4, PECL)

hw_Document_SetContent -- Modifie/remplace le contenu d'un document

Description

bool hw_document_setcontent ( int hw_document, string content )

hw_document_setcontent() modifie/remplace le contenu du document hw_document par la valeur de content. Si le document est un document HTML, le contenu représente tout ce qui est placé au-delà de la balise BODY. Les informations de HEAD et de la balise BODY sont enregistrées dans les attributs. Si vous fournissez aussi ces informations dans le corps du document, le serveur Hyperwave modifiera les attributs. Cela n'est cependant pas une bonne idée. Si la fonction échoue, l'ancien contenu est restauré.

Voir aussi
hw_document_attributes(),
hw_document_size() et
hw_document_content().

Précédent | Sommaire | Suivant
hw_Document_Content | Niveau supérieur | hw_Document_Size


hw_Document_Size

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Document_Size -- Taille d'un document

Description

int hw_document_size ( int hw_document )

hw_document_size() retourne la taille du document en octets.

Voir aussi hw_document_bodytag() et hw_document_attributes().

Pour la compatibilité ascendante, hw_documentsize() est aussi accepté, mais il est déconseillé.

Précédent | Sommaire | Suivant
hw_Document_SetContent | Niveau supérieur | hw_dummy


hw_dummy

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_dummy -- Fonction sans objet pour Hyperwave

Description

string hw_dummy ( int link, int id, int msgid )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
hw_Document_Size | Niveau supérieur | hw_EditText


hw_EditText

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_EditText -- Retourne un document texte

Description

bool hw_edittext ( int connection, int hw_document )

hw_EditText() charge le texte du document sur le serveur. Les attributs du document ne doivent pas être modifiés tant que le document est en train d'être édité. Cette fonction n'est disponible que sur les documents texte. Elle n'ouvrira pas de canal de transfert, et donc, bloquera le script durant le transfert.

Voir aussi
hw_pipedocument(),
hw_free_document(),
hw_document_bodytag(),
hw_document_size(),
hw_output_document() et
hw_gettext().

Précédent | Sommaire | Suivant
hw_dummy | Niveau supérieur | hw_Error


hw_Error

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Error -- Retourne le code d'erreur

Description

int hw_error ( int connection )

hw_Error() retourne le code d'erreur de la dernière erreur. Si la valeur 0 est retournée, c'est qu'il n'y avait pas d'erreur. L'erreur se rapporte à la dernière commande.

Précédent | Sommaire | Suivant
hw_EditText | Niveau supérieur | hw_ErrorMsg


hw_ErrorMsg

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_ErrorMsg -- Retourne un message d'erreur

Description

string hw_errormsg ( int connection )

hw_ErrorMsg() retourne une chaîne contenant le dernier message d'erreur ou 'No Error' (pas d'erreur). Si FALSE est retourné, cette fonction a échoué. Ce message est relatif à la dernière commande exécutée.

Précédent | Sommaire | Suivant
hw_Error | Niveau supérieur | hw_Free_Document


hw_Free_Document

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Free_Document -- Détruit un document

Description

bool hw_free_document ( int hw_document )

hw_Free_Document() détruit un document Hyperwave.

Précédent | Sommaire | Suivant
hw_ErrorMsg | Niveau supérieur | hw_GetAnchors


hw_GetAnchors

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetAnchors -- Identifiants des ancrages d'un document

Description

array hw_getanchors ( int connection, int objectID )

hw_GetAnchors() retourne un tableau contenant les identifiants des ancrages du document objectID.

Précédent | Sommaire | Suivant
hw_Free_Document | Niveau supérieur | hw_GetAnchorsObj


hw_GetAnchorsObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetAnchorsObj -- Attributs des ancrages d'un document

Description

array hw_getanchorsobj ( int connection, int objectID )

hw_getanchorsobj() retourne un tableau d'attributs des ancrages du document objectid.

Précédent | Sommaire | Suivant
hw_GetAnchors | Niveau supérieur | hw_GetAndLock


hw_GetAndLock

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetAndLock -- Retourne les attributs et verrouille l'objet

Description

string hw_getandlock ( int connection, int objectID )

hw_getandlock() retourne les attributs et verrouille l'objet objectID. Le verrouillage empêchera les autres utilisateurs d'y accéder jusqu'à ce qu'il soit deverrouillé.

Voir aussi hw_unlock() et hw_getobject().

Précédent | Sommaire | Suivant
hw_GetAnchorsObj | Niveau supérieur | hw_GetChildColl


hw_GetChildColl

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetChildColl -- Identifiant d'objets des groupes fils

Description

array hw_getchildcoll ( int connection, int objectID )

hw_getchildcoll() retourne un tableau contenant les identifiants d'objets des groupes fils du groupe objectID. Cette fonction ne retournera pas d'identifiants d'objets des documents fils.

Voir aussi hw_children() et hw_getchilddoccoll().

Précédent | Sommaire | Suivant
hw_GetAndLock | Niveau supérieur | hw_GetChildCollObj


hw_GetChildCollObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetChildCollObj -- Objet record d'un groupe d'enfants

Description

array hw_getchildcollobj ( int connection, int objectID )

hw_getchildcollobj() retourne un tableau d'object record. Chaque object record appartient à un groupe d'enfants de la collection objectID. La fonction ne retournera pas de documents enfants.

Voir aussi hw_childrenobj() et hw_getchilddoccollobj().

Précédent | Sommaire | Suivant
hw_GetChildColl | Niveau supérieur | hw_GetChildDocColl


hw_GetChildDocColl

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetChildDocColl -- Identifiant des documents fils d'un groupe

Description

array hw_getchilddoccoll ( int connection, int objectID )

hw_getchilddoccoll() retourne un tableau avec les id des documents fils d'une collection.

Voir aussi hw_children() et hw_getchildcoll().

Précédent | Sommaire | Suivant
hw_GetChildCollObj | Niveau supérieur | hw_GetChildDocCollObj


hw_GetChildDocCollObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetChildDocCollObj -- Attributs des documents fils d'un groupe

Description

array hw_getchilddoccollobj ( int connection, int objectID )

hw_getchilddoccollobj() retourne un tableau contenant les attributs des documents fils du groupe objectID.

Voir aussi hw_childrenobj() et hw_getchildcollobj().

Précédent | Sommaire | Suivant
hw_GetChildDocColl | Niveau supérieur | hw_GetObject


hw_GetObject

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetObject -- Lit les attributs d'un objet Hyperwave

Description

mixed hw_getobject ( int connection, mixed objectID [, string query] )

hw_GetObject() retourne les attributs de l'objet dont l'identifiant est objectid, si le second paramètre est un entier. Si ce second paramètre est un tableau, la fonction retournera un tableau d'attributs. Dans ce cas, le dernier paramètre est aussi évalué.

query a la syntaxe suivante :

<expression> ::= "(" <expression> ")" |

"!" <expression> | /* NOT */

<expression> "||" <expression> | /* OR */

<expression> "&&" <expression> | /* AND */

<attribute> <operator> <value>

<attribute> ::= /* * n'importe quel attribut (Title, Author, DocumentType ...) */

<operator> ::= "=" | /* égal */

"<" | /* moins que (comparaison de type chaîne) */

">" | /* plus que (comparaison de type chaîne) */

"~" /* recherche par expression rationnelle */

query permet de sélectionner une nouvelle fois certains objets dans la liste des objets donnés. Contrairement aux autres requêtes, celle-ci peut utiliser des attributs non indexés. Le nombre d'attributs retournés dépend de la requête de la requête et des autorisations d'accès aux objets.

Voir aussi hw_getandlock() et hw_getobjectbyquery().

Précédent | Sommaire | Suivant
hw_GetChildDocCollObj | Niveau supérieur | hw_GetObjectByQuery


hw_GetObjectByQuery

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetObjectByQuery -- Recherche un objet

Description

array hw_getobjectbyquery ( int connection, string query, int max_hits )

hw_getobjectbyquery() recherche un objet sur tout le serveur et retourne un tableau d' object ids. Le nombre maximum d'objets est limité par max_hits. Si max_hits vaut -1, il n'y a pas de limite.

La requête ne fonctionnera qu'avec des attributs indexés.

Voir aussi hw_getobjectbyqueryobj().

Précédent | Sommaire | Suivant
hw_GetObject | Niveau supérieur | hw_GetObjectByQueryColl


hw_GetObjectByQueryColl

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetObjectByQueryColl -- Recherche un objet dans un groupe

Description

array hw_getobjectbyquerycoll ( int connection, int objectID, string query, int max_hits )

hw_getobjectbyquerycoll() recherche un objet sur tout le groupe objectID et retourne un tableau d' object records. Le nombre maximum d'objet est limité par objectID. Si objectID vaut -1 il n'y a pas de limite.

La requête ne fonctionnera qu'avec des attributs indexés.

Voir aussi hw_getobjectbyquerycollobj().

Précédent | Sommaire | Suivant
hw_GetObjectByQuery | Niveau supérieur | hw_GetObjectByQueryCollObj


hw_GetObjectByQueryCollObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetObjectByQueryCollObj -- Recherche un objet dans un groupe

Description

array hw_getobjectbyquerycollobj ( int connection, int objectID, string query, int max_hits )

hw_getobjectbyquerycollobj() recherche un objet sur tout le groupe objectID et retourne un tableau d' object records. Le nombre maximum d'objets est limité par objectID. Si objectid vaut -1 il n'y a pas de limite.

La requête ne fonctionnera qu'avec des attributs indexés.

Voir aussi hw_getobjectbyquerycoll().

Précédent | Sommaire | Suivant
hw_GetObjectByQueryColl | Niveau supérieur | hw_GetObjectByQueryObj


hw_GetObjectByQueryObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetObjectByQueryObj -- Recherche un objet

Description

array hw_getobjectbyqueryobj ( int connection, string query, int max_hits )

hw_getobjectbyqueryobj() recherche un objet sur tout le serveur et retourne un tableau d' object records. Le nombre maximum d'objets est limité par max_hits. Si max_hits vaut -1, il n'y a pas de limite.

La requête ne fonctionnera qu'avec des attributs indexés.

Voir aussi hw_getobjectbyquery().

Précédent | Sommaire | Suivant
hw_GetObjectByQueryCollObj | Niveau supérieur | hw_GetParents


hw_GetParents

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetParents -- Identifiant d'objet des parents

Description

array hw_getparents ( int connection, int objectID )

hw_getparents() retourne un tableau indexé avec les identifiants des objets parents de objectID.

Précédent | Sommaire | Suivant
hw_GetObjectByQueryObj | Niveau supérieur | hw_GetParentsObj


hw_GetParentsObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetParentsObj -- Attributs des parents

Description

array hw_getparentsobj ( int connection, int objectID )

hw_getparentsobj() retourne un tableau indexé, avec les attributs et un tableau associé d'informations statistiques à propos des attributs. Ce tableau associé est le dernier élément du tableau retourné. Chaque attribut appartient au père de l'objet objectID.

Précédent | Sommaire | Suivant
hw_GetParents | Niveau supérieur | hw_getrellink


hw_getrellink

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_getrellink -- Crée le lien depuis la source vers le destinataire, relativement à rootid

Description

string hw_getrellink ( int link, int rootid, int sourceid, int destid )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
hw_GetParentsObj | Niveau supérieur | hw_GetRemote


hw_GetRemote

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetRemote -- Retourne un document distant

Description

int hw_getremote ( int connection, int objectID )

hw_getremote() retourne un document distant. Les documents distants sont, en Hyperwave, des documents lus depuis une source externe. La plupart des documents éloignés sont des pages web externes, ou des requêtes sur une base de données. Afin de pouvoir accéder à des sources externes, grâce aux documents distants, Hyperwave introduit l'interface HGI (Hyperwave Gateway Interface) qui est similaire à CGI. Actuellement, seuls les protocoles de FTP, HTTP et certaines bases de données sont accessibles avec HGI. hw_getremote() retourne le document de la source distante. Si vous voulez utiliser cette fonction, il vous faut vous familiariser avec HGIs. Il est aussi préférable d'utiliser PHP plutôt que Hyperwave pour accéder aux sources externes. Le support des bases de données sera plus difficile avec Hyperwave que PHP.

Voir aussi hw_getremotechildren().

Précédent | Sommaire | Suivant
hw_getrellink | Niveau supérieur | hw_getremotechildren


hw_getremotechildren

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_getremotechildren -- Retourne les fils d'un document distant

Description

mixed hw_getremotechildren ( int connection, string object_record )

hw_getremotechildren() retourne les fils d'un document distant. Les fils d'un document distant sont des documents distants eux mêmes. Cela est cohérent si une requête sur une base de données doit être rendue plus sélective, comme expliqué dans Hyperwave Programmers' Guide. Si le nombre de fils est 1, la fonction va retourner le document lui-même, formaté Hyperwave Gateway Interface (HGI). Si le nombre de fils est supérieur à 1, la fonction retournera un tableau d'attributs qui pourra servir à une nouvelle requête avec hw_getremotechildren(). Ces attributs sont virtuels et n'existent pas sur le serveur Hyperwave, et ainsi, n'ont pas d'identifiant d'objet valide. L'ordre exact de ces objets est du ressort de HGI. Si vous voulez utiliser cette fonction, vous devez être très avec familier HGIs. Il vaut mieux PHP plutôt que Hyperwave pour accéder aux fichiers distants. Le support de base de données y est bien meilleur.

Voir aussi hw_getremote().

Précédent | Sommaire | Suivant
hw_GetRemote | Niveau supérieur | hw_GetSrcByDestObj


hw_GetSrcByDestObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetSrcByDestObj -- Retourne les ancrages qui pointent sur un objet

Description

array hw_getsrcbydestobj ( int connection, int objectID )

hw_getsrcbydestobj() retourne les attributs de tous les ancrages qui pointent sur objectID. L'objet peut être un document ou un autre ancrage, de type destination.

Voir aussi hw_getanchors().

Précédent | Sommaire | Suivant
hw_getremotechildren | Niveau supérieur | hw_GetText


hw_GetText

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetText -- Retourne un document texte

Description

int hw_gettext ( int connection, int objectID [, mixed rootID/prefix] )

hw_gettext() retourne le document de l'objet objectID. Si le document possède des ancrages qui peuvent être insérés, ils le seront déjà. L'option rootID/prefix peut être une chaîne ou un entier. Si c'est un entier, il détermine la méthode d'insertion des liens dans le document. Par défaut, il vaut 0 et les liens seront construits en fonction du nom de l'objet cible. Cela sert beaucoup dans les applications web. Si un lien pointe sur un objet avec le nom 'film_internet' le lien HTML sera <A HREF="/film_internet">. La position réelle de la source et de la cible dans la hiérarchie seront ignorés. Vous devrez modificer votre site web pour qu'il réécrive les URL, comme '/mon_script.php3/film_internet'. 'mon_script.php3' devra analyser $PATH_INFO et savoir rechercher le document '/mon_script.php3/film_internet'. Si vous ne voulez pas de ce comportement, vous pouvez affecter à rootID/prefix n'importe quel prefixe. Dans ce cas, ce sera une chaîne.

Si rootID/prefix est un entier différent de 0 le lien sera construit avec tous les noms de la hiérarchie, en commençant à l'objet d'identifiant rootID/prefix, et séparé par des slash. Si, par exemple, le document 'film_internet' est situé à 'a-b-c-film_internet' et '-' qui sert de séparateur hiérarchique de niveau sur le serveur Hyperwave et le document source est situé dans 'a-b-d-source' alors, le lien HTML sera : <A HREF="../c/film_internet">. Cela est très pratique si vous voulez télécharger tout le contenu d'un serveur sur un disque, et faire une carte du système sur votre disque.

hw_gettext() n'est opérationnelle qu'avec des documents de pur texte. Elle n'ouvrira pas de canal spécial de transfert et, ainsi, bloquera le script le temps du transfert.

Voir aussi
hw_pipedocument(),
hw_free_document(),
hw_document_bodytag(),
hw_document_size() et
hw_output_document().

Précédent | Sommaire | Suivant
hw_GetSrcByDestObj | Niveau supérieur | hw_getusername


hw_getusername

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_getusername -- Nom de l'utilisateur actuellement identifié

Description

string hw_getusername ( int connection )

hw_getusername() retourne le nom d'utilisateur utilisé par la connexion.

Précédent | Sommaire | Suivant
hw_GetText | Niveau supérieur | hw_Identify


hw_Identify

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Identify -- Identifie un utilisateur

Description

string hw_identify ( int link, string username, string password )

hw_identify() identifie un utilisateur dont le nom d'utilisateur est username et le mot de passe password. L'identification n'est valide que pour la session en cours. Je ne pense pas que cette fonction serve souvent. Dans la plupart des cas, il est plus simple de s'identifier lors de l'ouverture de la connexion.

Voir aussi hw_connect().

Précédent | Sommaire | Suivant
hw_getusername | Niveau supérieur | hw_InCollections


hw_InCollections

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_InCollections -- Vérifie qu'un identifiant d'objet est dans un groupe

Description

array hw_incollections ( int connection, array object_id_array, array collection_id_array, int return_collections )

hw_incollections() vérifie qu'un ensemble d'objets (documents ou groupes) donnés par object_id_array fait partie des groupes listés par object_id_array. Lorsque le quatrième paramètre return_collections vaut 0, le sous-ensemble d'identifiants qui font partie d'un groupe (i.e. les documents ou groupes qui sont fils d'un ou plusieurs groupe, ou leurs fils, récursivement) est retourné sous la forme d'un tableau. Cette option permet de mettre en valeur la partie de l'arborescence qui contient le résultat d'une requête, dans un sens graphique.

Précédent | Sommaire | Suivant
hw_Identify | Niveau supérieur | hw_Info


hw_Info

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Info -- Informations à propos d'une connexion

Description

string hw_info ( int connection )

hw_info() retourne les informations de la connexion courante. La chaîne retournée a le format suivant : <Serverstring>, <Host>, <Port>, <Username>, <Port of Client>, <Byte swapping>

Précédent | Sommaire | Suivant
hw_InCollections | Niveau supérieur | hw_InsColl


hw_InsColl

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_InsColl -- Insère un groupe

Description

int hw_inscoll ( int connection, int objectID, array object_array )

hw_inscoll() insère un nouveau groupe, avec les attributs object_array dans le groupe objectID.

Précédent | Sommaire | Suivant
hw_Info | Niveau supérieur | hw_InsDoc


hw_InsDoc

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_InsDoc -- Insère un document

Description

int hw_insdoc ( resource connection, int parentID, string object_record [, string text] )

hw_insdoc() insère un nouveau document avec les attributs object_record, dans le groupe parentID. Cette fonction insère soit un objet avec ses seuls attributs, soit un objet ascii, avec text s'il est fourni. Si vous voulez insérer un document de type général, utilisez plutôt hw_insertdocument().

Voir aussi hw_insertdocument() et hw_inscoll().

Précédent | Sommaire | Suivant
hw_InsColl | Niveau supérieur | hw_insertanchors


hw_insertanchors

(PHP 4 >= 4.0.4, PECL)

hw_insertanchors -- Insère uniquement des ancres dans du texte

Description

bool hw_insertanchors ( int hwdoc, array anchorecs, array dest [, array urlprefixes] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
hw_InsDoc | Niveau supérieur | hw_InsertDocument


hw_InsertDocument

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_InsertDocument -- Insère un document dans un groupe

Description

int hw_insertdocument ( int connection, int parent_id, int hw_document )

hw_insertdocument() insère un document dans le groupe parent_id. Le document doit avoir été créé auparavant avec hw_new_document(). Assurez-vous que les attributs du nouveau document contiennent au moins les indications suivantes : Type, DocumentType, Title et Name. Vous aurez aussi parfois besoin de MimeType. La fonction retourne l'identifiant de l'objet inséré, ou bien FALSE.

Voir aussi hw_pipedocument().

Précédent | Sommaire | Suivant
hw_insertanchors | Niveau supérieur | hw_InsertObject


hw_InsertObject

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_InsertObject -- Insère un objet record

Description

int hw_insertobject ( int connection, string object_rec, string parameter )

hw_insertobject() insère un objet dans le serveur. L'objet peut être n'importe quel objet Hyperwave valide. Reportez-vous à la documentation HG-CSP pour plus de détails sur les paramètres.

Note : si vous voulez insérer une ancre, l'attribut Position doit être mis à la valeur start/end (début ou fin) ou encore 'invisible'. Les positions invisibles sont nécessaires si l'annotation n'a pas de liens correspondant dans le texte de l'annotation.

Voir aussi
hw_pipedocument(),
hw_insertdocument(),
hw_insdoc() et
hw_inscoll().

Précédent | Sommaire | Suivant
hw_InsertDocument | Niveau supérieur | hw_mapid


hw_mapid

(PHP 3 >= 3.0.13, PHP 4, PECL)

hw_mapid -- Représente un id global en un id virtuel local

Description

int hw_mapid ( int connection, int server_id, int object_id )

hw_mapid() représente l'id d'un objet global de n'importe quel serveur Hyperwave, même si vous ne vous y êtes pas connecté avec hw_connect(), avec un id d'objet local virtuel. Cet id d'objet local peut alors être utilisé comme n'importe quel id d'objet : par exemple on peut obtenir l'enregistrement d'objet avec la fonction hw_getobject(). L'id du serveur est la première partie de l'id global (GOid) de l'objet, qui est en fait une adresse IP.

Note : afin d'utiliser cette fonction, vous devez lever le flag F_DISTRIBUTED, ce qui ne peut être fait qu'à la compilation. Par défaut, il n'est pas levé. Lisez les commentaires de début du fichier hg_comm.c

Précédent | Sommaire | Suivant
hw_InsertObject | Niveau supérieur | hw_Modifyobject


hw_Modifyobject

(PHP 3 >= 3.0.7, PHP 4, PECL)

hw_Modifyobject -- Modifie les attributs d'object record

Description

bool hw_modifyobject ( int connection, int object_to_change, array remove, array add [, int mode] )

hw_Modifyobject() permet d'effacer, d'ajouter ou de modifier les attributs d'un objet. L'objet est reperé par son identifiant object_to_change. Le premier tableau, remove, est la liste des attributs à effacer. Le deuxième tableau, add, est celle des attributs à ajouter. Afin de modifier un attribut, il vous faudra dont l'effacer, puis l'ajouter à nouveau. hw_modifyobject() effacera toujours les attributs avant de les ajouter, à moins que la valeur de l'attribut à effacer ne soit pas une chaîne, ou un tableau.

Le dernier paramètre détermine si la modification est récursive ou pas. 1 signifie que la modification est récursive. Si un objet ne peut pas être modifié, il sera ignoré. hw_error() n'indiquera alors pas toujours d'erreur, même si certains objets n'ont pas pu être modifiés.

Les clés des deux tableaux sont les noms des attributs. La valeur de chaque élément peut être un tableau, une chaîne ou n'importe quoi d'autre. Dans le cas du tableau, la valeur de l'attribut est construite en séparant chaque élément par un point virgule. Dans le cas de la chaîne, elle sert directement de valeur. Une chaîne vide provoquera un effacement de l'attribut. Si la valeur n'est ni un tableau, ni une chaîne, aucune opération ne sera effectuée. Cela est nécessaire si vous voulez ajouter un attribut complètement nouveau, pas seulement une nouvelle valeur pour un attribut existant. Si le tableau d'effacement contenait une chaîne vide comme attribut, le serveur tenterait d'effacer l'attribut, ce qui échouerait de toute manière, car cet attribut n'existe pas. L'ajout de cet attribut échouerait aussi. Affecter la valeur de 0 à cet attribut ne l'effacerait pas, et l'ajout fonctionnerait.

Si vous voulez changer l'attribut 'Nom' de valeur courante 'livres' en 'articles' vous devrez faire deux tableaux, et appeler hw_modifyobject().

Exemple 1. Modification d'un attribut

<?php
// $connect est une connexion valide
// $objid est l'identifiant de l'objet
$remarr = array("Name" => "books");
$addarr = array("Name" => "articles");
$hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
Afin d'effacer/ajouter une paire nom=valeur aux attributs d'un objet, utilisez simplement les tableaux d'effacement et d'ajout, et laissez le dernier/troisième paramètre vide. Si l'attribut est le premier de ce nom à ajouter, donnez une valeur entière à cet élément.

Exemple 2. Ajouter un nouvel attribut

<?php
// $connect est une connexion Hyperwave valide
// $objid est l'identifiant de l'objet à modifier
$remarr = array("Name" => 0);
$addarr = array("Name" => "articles");
$hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

Note : Les attributs multilingues, tels que 'Title', peuvent être modifiés de deux façons : soit en fournissant la valeur de ces attributs de manière native (langue :valeur), soit en fournissant un tableau avec les éléments de chaque langue, comme décrit ci-dessus. L'exemple deviendrait alors :

Exemple 3. Modifier l'attribut de Titre (Title)

<?php
$remarr = array("Title" => "en:Books");
$addarr = array("Title" => "en:Articles");
$hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
ou

Exemple 4. Modifier l'attribut Title

<?php
$remarr = array("Title" => array("en" => "Books"));
$addarr = array("Title" => array("en" => "Articles", "ge"=>"Artikel"));
$hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
Pour supprimer l'entrée française 'Livres' et ajouter l'entrée 'Articles' et l'entrée allemande 'Artikel'.

Exemple 5. Suppression d'un attribut

<?php
$remarr = array("Title" => "");
$addarr = array("Title" => "en:Articles");
$hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

Note : Cet exemple va effacer tous les attributs avec le nom 'Title' et ajouter un nouvel attribut 'Title'. Cela peut être pratique pour effacer des attributs récursivement.

Note : Si vous devez effacer tous les attributs avec un certain nom, vous devez passer une chaîne vide comme valeur.

Note : Seuls les attributs 'Title', 'Description' et 'Keyword' gèrent correctement le préfixe de langue. Pour les autres attributs qui ne portent pas de préfixe de langage, le préfixe 'xx' sera assigné.

Note : L'attribut 'Name' est un peu particulier. Dans certains cas, il ne peut pas être complètement effacé. Vous aurez alors le message 'Change of base attribute' (l'apparition de cette erreur n'est pas très claire). Ainsi, vous aurez à ajouter une nouvelle entrée pour Name puis, effacer l'ancien.

Note : Il ne faut pas encadrer cette fonction par des appels à hw_getandlock() et hw_unlock(). hw_modifyobject() le fait de manière interne.

Retourne TRUE si aucune erreur ne survient et FALSE sinon.

Précédent | Sommaire | Suivant
hw_mapid | Niveau supérieur | hw_mv


hw_mv

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_mv -- Déplace un objet

Description

int hw_mv ( int connection, array object_id_array, int source_id, int destination_id )

hw_mv() déplace les objets dont les identifiants sont passés dans le tableau source_id, depuis le source_id dans le destination_id. Si destination_id vaut 0, les objets ne seront plus insérés dans le groupe (ni dans le serveur). Dans ce cas, si une instance était la dernière instance d'un objet, l'objet sera effacé. Si vous voulez effacer toutes les instances d'un coup, utilisez hw_deleteobject().

La valeur retournée est le nombre d'objet déplacés.

Voir aussi hw_cp() et hw_deleteobject().

Précédent | Sommaire | Suivant
hw_Modifyobject | Niveau supérieur | hw_New_Document


hw_New_Document

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_New_Document -- Crée un nouveau document

Description

int hw_new_document ( string object_record, string document_data, int document_size )

hw_new_document() retourne un nouveau document Hyperwave avec comme données document_data et comme attributs object_record. La longueur de document_data doit être donnée dans document_size. Cette fonction n'insère pas l'objet dans le serveur Hyperwave.

Voir aussi
hw_free_document(),
hw_document_size(),
hw_document_bodytag(),
hw_output_document() et
hw_insertdocument().

Précédent | Sommaire | Suivant
hw_mv | Niveau supérieur | hw_objrec2array


hw_objrec2array

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_objrec2array -- Convertit les attributs d'un objet en tableau

Description

array hw_objrec2array ( string object_record [, array format] )

hw_objrec2array() convertit les attributs object_record d'un objet en un tableau. Les clés du tableau seront les noms des attributs. Les attributs multiples comme 'Title', dans différentes langues, seront rassemblés dans un autre tableau. Une clé est la partie gauche d'un attribut. Cette partie doit être longue d'au moins deux caractères. Les autres valeurs multiples d'un attribut sans préfixe forment un tableau indexé. Si le paramètre optionnel format est omis, les attributs 'Title', 'Description' et 'Keyword' seront traités comme des attributs de langue, et les attributs 'Group', 'Parent' et'HtmlAttr' le seront comme des attributs non préfixés, à valeur multiples. En passant un tableau qui contient le type de chaque attribut, vous pouvez modifier ce comportement. Le tableau est un tableau associatif, avec les attributs comme nom d'index, et la valeur étant l'une des suivantes : HW_ATTR_LANG or HW_ATTR_NONE

Voir aussi hw_array2objrec().

Précédent | Sommaire | Suivant
hw_New_Document | Niveau supérieur | hw_Output_Document


hw_Output_Document

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Output_Document -- Affiche hw_document

Description

bool hw_output_document ( int hw_document )

hw_output_document() affiche hw_document sans la balise BODY.

Pour la compatibilité ascendante, hw_outputdocument() est aussi accepté, mais il est déconseillé.

Précédent | Sommaire | Suivant
hw_objrec2array | Niveau supérieur | hw_pConnect


hw_pConnect

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_pConnect -- Crée une connexion persistante

Description

int hw_pconnect ( string host, int port [, string username, string password] )

hw_pConnect() retourne un index de connexion en cas de succès, et FALSE si la connexion n'a pas pu être créée. hw_pconnect() ouvre une connexion persistante à un serveur Hyperwave. Tous les arguments doivent être entre guillemets, hormis le numéro de port port. Les arguments username et password sont optionnels, et peuvent être ignorés. Dans ce cas, aucune identification ne sera faite : connexion anonyme. Cette fonction retourne une ressource de connexion qui sera utilisée par les autres fonctions Hyperwave. Vous pouvez ouvrir plusieurs connexions persistantes simultanées.

Voir aussi hw_connect().

Précédent | Sommaire | Suivant
hw_Output_Document | Niveau supérieur | hw_PipeDocument


hw_PipeDocument

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_PipeDocument -- Retourne un document

Description

int hw_pipedocument ( int connection, int objectID [, array url_prefixes] )

hw_pipedocument() retourne le document Hyperwave d'objet id objectID. Si le document a des ancrages, ils seront insérés. Le document sera transmis via une connexion de données spéciale, qui ne bloque pas la connexion de contrôle (ie, le serveur n'attend pas la fin du transfert pour rendre la main).

Voir aussi
hw_gettext(),
hw_free_document(),
hw_document_size(),
hw_document_bodytag() et
hw_output_document().

Précédent | Sommaire | Suivant
hw_pConnect | Niveau supérieur | hw_Root


hw_Root

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Root -- Objet id de la racine

Description

int hw_root ( )

hw_root() retourne l'objet ID de la racine. Actuellement, cet identifiant est toujours 0. L'ensemble des fils de la racine est celui du serveur courant.

Précédent | Sommaire | Suivant
hw_PipeDocument | Niveau supérieur | hw_setlinkroot


hw_setlinkroot

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_setlinkroot -- Configure l'identifiant vers lequel les liens sont calculés

Description

int hw_setlinkroot ( int link, int rootid )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
hw_Root | Niveau supérieur | hw_stat


hw_stat

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_stat -- Retourne le statut de la chaîne

Description

string hw_stat ( int link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
hw_setlinkroot | Niveau supérieur | hw_Unlock


hw_Unlock

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Unlock -- Déverrouille un objet

Description

bool hw_unlock ( int connection, int objectID )

hw_unlock() déverrouille un document, et laisse l'accès aux autres utilisateurs.

Voir aussi hw_getandlock().

Précédent | Sommaire | Suivant
hw_stat | Niveau supérieur | hw_Who


hw_Who

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Who -- Liste des utilisateurs actuellement identifiés

Description

array hw_who ( int connection )

hw_who() retourne un tableau contenant la liste des utilisateurs actuellement connectés au serveur Hyperwave. Chaque élément du tableau est lui-même un tableau qui contient l'identifiant de l'élément, le nom, le système, la date de connexion (onSinceDate), l'heure de connexion (onSinceTime), la durée de connexion (TotalTime ) et self. 'self' vaut 1 si cette entrée appartient à l'utilisateur qui a appelé la fonction.

Précédent | Sommaire | Suivant
hw_Unlock | Niveau supérieur | Hyperwave API


Hyperwave API

Manuel PHP
Précédent Suivant

LVII. Hyperwave API

Introduction

Hyperwave a été développé à l'IICM à Graz. Le projet a commencé avec le nom de Hyper-G, puis il est devenu Hyperwave, lors de sa commercialisation en 1996.

Hyperwave n'est pas un logiciel libre. Sa version courante, la 5.5, est disponible à http://www.hyperwave.com/. Une version limitée dans le temps est commandable gratuitement (30 jours).

Voir aussi le module Hyperwave.

Hyperwave est un système d'information comparable à une base de données (HIS, Hyperwave Information Server). Il se concentre sur le stockage et la gestion de documents. Un document peut être n'importe quelle pièce de données qui soit stockable dans un fichier. Chaque document est accompagné de son propre enregistrement. L'enregistrement contient les méta-données du document. Les méta-données sont des listes d'attributs qui peuvent être manipulés par l'utilisateur. Certains attributs sont gérés par le serveur Hyperwave, les autres peuvent être modifiés par l'utilisateur.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.2.0.

Pré-requis

Depuis 2001, il y a un SDK Hyperwave disponible. Il supporte Java, JavaScript et C++. Cette extension PHP est basée sur l'interface C++. Pour activer le support hwapi de PHP, vous devez installer le SDK d'abord.

Installation

Après avoir installé le SDK Hyperwave, compilez PHP avec l'option --with-hwapi[=DIR].

intégration dans Apache

L'intégration dans Apache et éventuellement d'autres serveurs est déjà décrite dans le module Hyperwave, qui a été la première extension à se connecter au serveur Hyperwave.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
hwapi.allow_persistent | "0" | PHP_INI_SYSTEM |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Classes

L'API fournie avec l'extension HW_API est complètement orientée objet. Elle est très similaire à l'interface C++ du SDK Hyperwave. Elle est constituée des classes suivantes :

  • HW_API

  • HW_API_Object

  • HW_API_Attribute

  • HW_API_Error

  • HW_API_Content

  • HW_API_Reason

Certains classes basiques comme HW_API_String, HW_API_String_Array, etc., qui existent dans le SDK Hyperwave SDK n'ont pas été implémentées, car PHP a de puissants ersatz pour elles.

Chaque classe dispose de certaines méthodes, dont les noms sont identiques à leur alter ego du SDK Hyperwave SDK. Le passage des arguments à ces fonctions diffère de toutes les autres extensions PHP, mais est proche de l'API C++ du SDK Hyperwave. Au lieu de passer plusieurs paramètres, ils sont tous placés dans un tableau associatif, et transmis sous la forme d'un seul paramètre. Les paramètres les plus communs sont listés ci-dessous. Si d'autres paramètres sont nécessaires, ils seront documentés à chaque cas.

  • objectIdentifier Le nom ou l'identifiant de l'objet, e.g. "rootcollection", "0x873A8768 0x00000002".

  • parentIdentifier Le nom ou l'identifiant de l'objet qui est considéré comme parent.

  • object Une instance de la classe HW_API_Object.

  • parameters Une instance de la classe HW_API_Object.

  • version La version de l'objet.

  • mode Un entier qui détermine la méthode d'exécution de l'opération.

  • attributeSelector Un tableau de chaînes de caractères, chacun contenant le nom d'un attribut. C'est le cas si vous lisez des enregistrements d'objets, et que vous voulez inclure certains attributs.

  • objectQuery Une requête pour sélectionner certains objets dans une liste. Elle est utilisée pour réduire le nombre d'objets qui a été livré par une fonction comme hw_api->children() ou hw_api->find().

Note : Les méthodes retournant un booléen peuvent retourner TRUE, FALSE ou un objet HW_API_Error.

Table des matières
hw_api_attribute->key -- Retourne la clé d'un attribut
hw_api_attribute->langdepvalue -- Retourne la valeur d'un attribut dans une langue
hw_api_attribute->value -- Retourne la valeur d'un attribut
hw_api_attribute->values -- Retourne toutes les valeurs de l'attribut
hw_api_attribute -- Crée une nouvelle instance de la classe hw_api_attribute
hw_api->checkin -- Archive un objet
hw_api->checkout -- Extrait un objet
hw_api->children -- Retourne le fils d'un objet
hw_api_content->mimetype -- Retourne le type MIME
hw_api_content->read -- Lit le contenu
hw_api->content -- Retourne le contenu d'un objet
hw_api->copy -- Copie physique
hw_api->dbstat -- Retourne des statistiques sur le serveur de bases
hw_api->dcstat -- Retourne des statistiques sur le serveur de cache de document
hw_api->dstanchors -- Liste toutes les ancres de destination
hw_api->dstofsrcanchor -- Retourne la destination d'une ancre source
hw_api_error->count -- Retourne le nombre de raisons d'erreurs
hw_api_error->reason -- Retourne la première raison d'erreur
hw_api->find -- Recherche des objets
hw_api->ftstat -- Retourne des statistiques sur le serveur de textes
hwapi_hgcsp -- Retourne un objet de classe hw_api
hw_api->hwstat -- Retourne les statistiques sur le serveur Hyperwave
hw_api->identify -- S'identifie auprès du serveur Hyperwave
hw_api->info -- Retourne des informations sur la configuration du serveur
hw_api->insert -- Insère un nouvel objet
hw_api->insertanchor -- Insère un nouvel objet de type ancre
hw_api->insertcollection -- Insère un nouvel objet de type collection
hw_api->insertdocument -- Insère un nouvel objet de type document
hw_api->link -- Crée un lien avec un objet
hw_api->lock -- Verrouille un objet
hw_api->move -- Déplace un objet d'une collection à l'autre
hw_api_content -- Crée une nouvelle instance de la classe hw_api_content
hw_api_object->assign -- Clone un objet
hw_api_object->attreditable -- Vérifie si un attribut est éditable
hw_api_object->count -- Retourne le nombre d'attributs
hw_api_object->insert -- Insère un nouvel attribut HyperWave
hw_api_object -- Crée une nouvelle instance de la classe hw_api_object
hw_api_object->remove -- Supprime un attribut HyperWave
hw_api_object->title -- Retourne le titre de l'attribut
hw_api_object->value -- Retourne la valeur de l'attribut
hw_api->object -- Lit les informations d'attribut
hw_api->objectbyanchor -- Retourne l'objet propriétaire d'une ancre
hw_api->parents -- Retourne le parent d'un objet
hw_api_reason->description -- Retourne la description d'une raison
hw_api_reason->type -- Retourne le type de raison
hw_api->remove -- Efface un objet
hw_api->replace -- Remplace un objet
hw_api->setcommittedversion -- Valide une version autre que la dernière
hw_api->srcanchors -- Retourne la liste de toutes les ancres
hw_api->srcsofdst -- Retourne les sources d'un objet de destination
hw_api->unlock -- Déverrouille un objet HyperWave verrouillé
hw_api->user -- Retourne le propriétaire d'un objet
hw_api->userlist -- Retourne la liste des utilisateurs connectés

Précédent | Sommaire | Suivant
hw_Who | Niveau supérieur | hw_api_attribute->key


hw_api_attribute->key

(no version information, might be only in CVS)

hw_api_attribute->key -- Retourne la clé d'un attribut

Description

string hw_api_attribute->key ( void )

hw_api_attribute->key retourne le nom de l'attribut.

Voir aussi hwapi_attribute_value().

Précédent | Sommaire | Suivant
Hyperwave API | Niveau supérieur | hw_api_attribute->langdepvalue


hw_api_attribute->langdepvalue

(no version information, might be only in CVS)

hw_api_attribute->langdepvalue -- Retourne la valeur d'un attribut dans une langue

Description

string hw_api_attribute->langdepvalue ( string language )

hw_api_attribute->langdepvalue() retourne la valeur de l'attribut dans la langue language.

Voir aussi hwapi_attribute_value().

Précédent | Sommaire | Suivant
hw_api_attribute->key | Niveau supérieur | hw_api_attribute->value


hw_api_attribute->value

(no version information, might be only in CVS)

hw_api_attribute->value -- Retourne la valeur d'un attribut

Description

string hw_api_attribute->value ( void )

hw_api_attribute->value() retourne la valeur de l'attribut.

Voir aussi hwapi_attribute_key() et hwapi_attribute_values().

Précédent | Sommaire | Suivant
hw_api_attribute->langdepvalue | Niveau supérieur | hw_api_attribute->values


hw_api_attribute->values

(no version information, might be only in CVS)

hw_api_attribute->values -- Retourne toutes les valeurs de l'attribut

Description

array hw_api_attribute->values ( void )

hw_api_attribute->values() retourne toutes les valeurs de l'attribut sous la forme d'un tableau de chaînes.

Voir aussi hwapi_attribute_value().

Précédent | Sommaire | Suivant
hw_api_attribute->value | Niveau supérieur | hw_api_attribute


hw_api_attribute

(no version information, might be only in CVS)

hw_api_attribute -- Crée une nouvelle instance de la classe hw_api_attribute

Description

HW_API_Attribute hw_api_attribute ( [string name [, string value]] )

hw_api_attribute->attribute() crée une nouvelle instance de la classe hw_api_attribute avec le nom name et la valeur value.

Précédent | Sommaire | Suivant
hw_api_attribute->values | Niveau supérieur | hw_api->checkin


hw_api->checkin

(no version information, might be only in CVS)

hw_api->checkin -- Archive un objet

Description

bool hw_api->checkin ( array parameter )

hw_api->checkin archive un objet ou une hiérarchie d'objets. Le paramètre obligatoire parameter contient un 'objectIdentifier' et les éléments optionnels 'version', 'comment', 'mode' et 'objectQuery'. 'version' spécifie la version de l'objet. Elle est constituée de versions majeure et mineure, séparées par des virgules. Si une version n'existe pas, la version mineure est incrémentée. 'mode' peut être l'une des constantes suivantes :

HW_API_CHECKIN_NORMAL

Archive et valide l'objet. L'objet doit être un document.

HW_API_CHECKIN_RECURSIVE

Si l'objet à archiver est une collection, tous les fils seront vérifiés récursivement, s'ils sont des documents. Tenter d'archiver une collection générera une erreur.

HW_API_CHECKIN_FORCE_VERSION_CONTROL

Archive un objet même s'il ne passe pas sous le contrôle de versions.

HW_API_CHECKIN_REVERT_IF_NOT_CHANGED

Vérifie s'il existe une version différente de la dernière version. À moins que cela ne soit le cas, l'objet sera alors archivé.

HW_API_CHECKIN_KEEP_TIME_MODIFIED

Conserve la date de modification de l'objet le plus récent.

HW_API_CHECKIN_NO_AUTO_COMMIT

L'objet n'est pas automatiquement validé lors de l'archivage.

Voir aussi hwapi_checkout().

Précédent | Sommaire | Suivant
hw_api_attribute | Niveau supérieur | hw_api->checkout


hw_api->checkout

(no version information, might be only in CVS)

hw_api->checkout -- Extrait un objet

Description

bool hw_api->checkout ( array parameter )

hw_api->checkout extrait un objet ou toute une hiérarchie d'objets. Le paramètre parameter contient l'élément obligatoire 'objectIdentifier' et les éléments optionnels 'version', 'mode' et 'objectQuery'. 'mode' peut prendre l'une des valeurs suivantes :

HW_API_CHECKIN_NORMAL

Extrait un objet. L'objet doit être un document.

HW_API_CHECKIN_RECURSIVE

Si l'objet à extraire est une collection, tous les fils seront extraits récursivement si ce sont des documents. Extraire une collection générera une erreur.

Voir aussi hwapi_checkin().

Précédent | Sommaire | Suivant
hw_api->checkin | Niveau supérieur | hw_api->children


hw_api->children

(no version information, might be only in CVS)

hw_api->children -- Retourne le fils d'un objet

Description

array hw_api->children ( array parameter )

hw_api->children() retrouve le fils d'une collection ou l'attribut d'un document. Le fils peut être ensuite filtré en spécifiant une requête d'objet. Le paramètre parameter contient les éléments requis 'objectIdentifier' et les éléments optionnels 'attributeSelector' et 'objectQuery'.

La valeur retournée est un tableau d'objets de type HW_API_Object ou HW_API_Error.

Voir aussi hwapi_parents().

Précédent | Sommaire | Suivant
hw_api->checkout | Niveau supérieur | hw_api_content->mimetype


hw_api_content->mimetype

(no version information, might be only in CVS)

hw_api_content->mimetype -- Retourne le type MIME

Description

string hw_api_content->mimetype ( void )

hw_api_content->mimetype retourne le type MIME du contenu.

Précédent | Sommaire | Suivant
hw_api->children | Niveau supérieur | hw_api_content->read


hw_api_content->read

(no version information, might be only in CVS)

hw_api_content->read -- Lit le contenu

Description

string hw_api_content->read ( string buffer, int len )

hw_api_content->read() lit len octets dans le buffer buffer.

Précédent | Sommaire | Suivant
hw_api_content->mimetype | Niveau supérieur | hw_api->content


hw_api->content

(no version information, might be only in CVS)

hw_api->content -- Retourne le contenu d'un objet

Description

HW_API_Content hw_api->content ( array parameter )

hw_api->content() retourne le contenu d'un document sous la forme d'un objet de type hw_api_content. Le paramètre parameter est un tableau qui contient l'élément obligatoire 'objectidentifier' et l'élément optionnel 'mode'. Le mode peut être l'une des constantes suivantes : HW_API_CONTENT_ALLLINKS, HW_API_CONTENT_REACHABLELINKS ou HW_API_CONTENT_PLAIN. HW_API_CONTENT_ALLLINKS signifie qu'il faut insérer toutes les ancres même si la destination n'est pas accessible. HW_API_CONTENT_REACHABLELINKS indique à hw_api_content() qu'il faut insérer uniquement les destinations accessibles, et HW_API_CONTENT_PLAIN conduit à un document sans aucun lien.

Précédent | Sommaire | Suivant
hw_api_content->read | Niveau supérieur | hw_api->copy


hw_api->copy

(no version information, might be only in CVS)

hw_api->copy -- Copie physique

Description

hw_api_object hw_api->copy ( array parameter )

hw_api->copy() fait une copie physique incluant le contenu éventuel, et retourne un nouvel objet ou un objet d'erreur. Le paramètre parameter est un tableau qui contient les éléments obligatoires 'objectIdentifier' et 'destinationParentIdentifier' et l'élément optionnel 'attributeSelector'.

Voir aussi hwapi_move() et hwapi_link().

Précédent | Sommaire | Suivant
hw_api->content | Niveau supérieur | hw_api->dbstat


hw_api->dbstat

(no version information, might be only in CVS)

hw_api->dbstat -- Retourne des statistiques sur le serveur de bases

Description

hw_api_object hw_api->dbstat ( array parameter )

dbstat() retourne des statistiques sur le serveur de bases.

Voir aussi
hwapi_dcstat(),
hwapi_hwstat() et
hwapi_ftstat().

Précédent | Sommaire | Suivant
hw_api->copy | Niveau supérieur | hw_api->dcstat


hw_api->dcstat

(no version information, might be only in CVS)

hw_api->dcstat -- Retourne des statistiques sur le serveur de cache de document

Description

hw_api_object hw_api->dcstat ( array parameter )

hw_api->dcstat() retourne des statistiques sur le serveur de cache de document.

Voir aussi
hwapi_hwstat(),
hwapi_dbstat() et
hwapi_ftstat().

Précédent | Sommaire | Suivant
hw_api->dbstat | Niveau supérieur | hw_api->dstanchors


hw_api->dstanchors

(no version information, might be only in CVS)

hw_api->dstanchors -- Liste toutes les ancres de destination

Description

array hw_api->dstanchors ( array parameter )

hw_api->dstanchors() liste toutes les ancres de destination. Le paramètre parameter contient l'élément obligatoire 'objectIdentifier' et les éléments optionnels 'attributeSelector' et 'objectQuery'.

Voir aussi hwapi_srcanchors().

Précédent | Sommaire | Suivant
hw_api->dcstat | Niveau supérieur | hw_api->dstofsrcanchor


hw_api->dstofsrcanchor

(no version information, might be only in CVS)

hw_api->dstofsrcanchor -- Retourne la destination d'une ancre source

Description

hw_api_object hw_api->dstofsrcanchor ( array parameter )

hw_api->dstofsrcanchor() retourne l'objet de destination sur lequel pointe l'ancre source spécifiée. L'objet de destination peut être une ancre de destination ou un document entier. Le paramètre parameter contient l'élément obligatoire 'objectIdentifier' et le paramètre optionnel 'attributeSelector'.

Voir aussi
hwapi_srcanchors(),
hwapi_dstanchors() et
hwapi_objectbyanchor().

Précédent | Sommaire | Suivant
hw_api->dstanchors | Niveau supérieur | hw_api_error->count


hw_api_error->count

(no version information, might be only in CVS)

hw_api_error->count -- Retourne le nombre de raisons d'erreurs

Description

int hw_api_error->count ( void )

hw_api_error->count() retourne le nombre de raisons d'erreurs.

Voir aussi hwapi_error_reason().

Précédent | Sommaire | Suivant
hw_api->dstofsrcanchor | Niveau supérieur | hw_api_error->reason


hw_api_error->reason

(no version information, might be only in CVS)

hw_api_error->reason -- Retourne la première raison d'erreur

Description

HW_API_Reason hw_api_error->reason ( void )

hw_api_error->reason() retourne la première raison d'erreur.

Voir aussi hwapi_error_count().

Précédent | Sommaire | Suivant
hw_api_error->count | Niveau supérieur | hw_api->find


hw_api->find

(no version information, might be only in CVS)

hw_api->find -- Recherche des objets

Description

array hw_api->find ( array parameter )

hw_api->find() recherche des objets grâce à leur clé d'exécution et/ou grâce à une requête en texte plein. Les objets trouvés peuvent alors être filtrés à nouveau par une requête optionnelle. Les objets sont triés par importance. La seconde opération de recherche est relativement lente, et ses résultats peuvent être limités à certaines valeurs. Cela permet de réaliser des recherches incrémentales, chacune retournant un sous-ensemble de tous les documents trouvés, en partant d'un index donné. Le paramètre parameter est un tableau qui contient les éléments obligatoires 'objectquery', 'scope', 'lanugages' et 'attributeselector'. En cas de recherche incrémentale, les éléments optionnels 'startIndex', 'numberOfObjectsToGet' et 'exactMatchUnit' peuvent aussi être passés.

Précédent | Sommaire | Suivant
hw_api_error->reason | Niveau supérieur | hw_api->ftstat


hw_api->ftstat

(no version information, might be only in CVS)

hw_api->ftstat -- Retourne des statistiques sur le serveur de textes

Description

hw_api_object hw_api->ftstat ( array parameter )

ftstat() retourne des statistiques sur le serveur de textes.

Voir aussi
hwapi_dcstat(),
hwapi_dbstat() et
hwapi_hwstat().

Précédent | Sommaire | Suivant
hw_api->find | Niveau supérieur | hwapi_hgcsp


hwapi_hgcsp

(no version information, might be only in CVS)

hwapi_hgcsp -- Retourne un objet de classe hw_api

Description

HW_API hwapi_hgcsp ( string hostname [, int port] )

hwapi_hgcsp() ouvre une connexion au serveur Hyperwave sur l'hôte hostname. Le protocole utilisé est HGCSP. Si vous l'omettez, le port 418 sera utilisé.

Voir aussi hwapi_hwtp().

Précédent | Sommaire | Suivant
hw_api->ftstat | Niveau supérieur | hw_api->hwstat


hw_api->hwstat

(no version information, might be only in CVS)

hw_api->hwstat -- Retourne les statistiques sur le serveur Hyperwave

Description

hw_api_object hw_api->hwstat ( array parameter )

hwstat() retourne les statistiques sur le serveur Hyperwave.

Voir aussi
hwapi_dcstat(),
hwapi_dbstat() et
hwapi_ftstat().

Précédent | Sommaire | Suivant
hwapi_hgcsp | Niveau supérieur | hw_api->identify


hw_api->identify

(no version information, might be only in CVS)

hw_api->identify -- S'identifie auprès du serveur Hyperwave

Description

bool hw_api->identify ( array parameter )

hw_api->identify() s'identifie auprès du serveur Hyperwave. Le paramètre parameter est un tableau qui contient les éléments obligatoires 'username' et 'password'.

La valeur retournée sera un objet du type HW_API_Error si l'identification a échoué, ou bien TRUE si cela a fonctionné.

Précédent | Sommaire | Suivant
hw_api->hwstat | Niveau supérieur | hw_api->info


hw_api->info

(no version information, might be only in CVS)

hw_api->info -- Retourne des informations sur la configuration du serveur

Description

array hw_api->info ( array parameter )

hw_api->info() retourne des informations sur la configuration du serveur.

Voir aussi
hwapi_dcstat(),
hwapi_dbstat(),
hwapi_ftstat() et
hwapi_hwstat().

Précédent | Sommaire | Suivant
hw_api->identify | Niveau supérieur | hw_api->insert


hw_api->insert

(no version information, might be only in CVS)

hw_api->insert -- Insère un nouvel objet

Description

hw_api_object hw_api->insert ( array parameter )

hw_api->insert() insère un nouvel objet. Le type d'objet peut être user, group, document ou anchor. Suivant le type de l'autre objet, des attributs supplémentaires doivent être assignés. Le paramètre parameter est un tableau qui contient les éléments obligatoires 'object' et 'content' (si l'objet est un document) et les éléments optionnels 'parameters', 'mode' et 'attributeSelector'. 'object' doit contenir tous les attributs de l'objet. 'parameters' est un objet qu contient les attributs supplémentaires, comme ceux de destination (attribut 'Parent'). 'content' est une combinaison des constantes suivantes :

HW_API_INSERT_NORMAL

L'objet est inseré sur le serveur.

HW_API_INSERT_FORCE_VERSION_CONTROL

HW_API_INSERT_AUTOMATIC_CHECKOUT

HW_API_INSERT_PLAIN

HW_API_INSERT_KEEP_TIME_MODIFIED

HW_API_INSERT_DELAY_INDEXING

Voir aussi hwapi_replace().

Précédent | Sommaire | Suivant
hw_api->info | Niveau supérieur | hw_api->insertanchor


hw_api->insertanchor

(no version information, might be only in CVS)

hw_api->insertanchor -- Insère un nouvel objet de type ancre

Description

hw_api_object hw_api->insertanchor ( array parameter )

hw_api->insertanchor() est un raccourci pour hwapi_insert(). Elle insère un objet de type ancre ('anchor') et assigne les attributs nécessaires. Le paramètre parameter contient les éléments obligatoires 'object' et 'documentIdentifier' et les éléments optionnels 'destinationIdentifier', 'parameter', 'hint' et 'attributeSelector'. L'élément 'documentIdentifier' spécifie le document d'insertion de l'ancre. La cible de l'ancre est spécifiée par 'destinationIdentifier' s'il existe. Si la cible n'existe pas, l'élément 'hint' doit être configuré avec le nom de l'objet qui est prévu pour être inséré ultérieurement. Une fois que l'insertion a été faite, la cible sera résolue automatiquement.

Voir aussi
hwapi_insertdocument(),
hwapi_insertcollection() et
hwapi_insert().

Précédent | Sommaire | Suivant
hw_api->insert | Niveau supérieur | hw_api->insertcollection


hw_api->insertcollection

(no version information, might be only in CVS)

hw_api->insertcollection -- Insère un nouvel objet de type collection

Description

hw_api_object hw_api->insertcollection ( array parameter )

hw_api->insertcollection() est un raccourci pour la fonction hwapi_insert(). Elle insère un objet de type collection et lui assigne certains attributs obligatoires. parameter est un tableau qui contient les éléments obligatoires 'object' et 'parentIdentifier', et les éléments optionnels 'parameter' et 'attributeSelector'. Voyez hwapi_insert() pour connaître le détail de chaque élément.

Voir aussi
hwapi_insertdocument(),
hwapi_insertanchor() et
hwapi_insert().

Précédent | Sommaire | Suivant
hw_api->insertanchor | Niveau supérieur | hw_api->insertdocument


hw_api->insertdocument

(no version information, might be only in CVS)

hw_api->insertdocument -- Insère un nouvel objet de type document

Description

hw_api_object hw_api->insertdocument ( array parameter )

hw_api->insertdocument() est un raccourci pour hwapi_insert(). Il insère un objet avec un contenu et assigne certains attributs obligatoires. Le paramètre parameter est un tableau qui contient les éléments obligatoires 'object', 'parentIdentifier' et 'content' et les éléments optionnels 'mode', 'parameter' et 'attributeSelector'. Voyez hwapi_insert() pour la signification de chacun des éléments.

Voir aussi
hwapi_insert(),
hwapi_insertanchor() et
hwapi_insertcollection().

Précédent | Sommaire | Suivant
hw_api->insertcollection | Niveau supérieur | hw_api->link


hw_api->link

(no version information, might be only in CVS)

hw_api->link -- Crée un lien avec un objet

Description

bool hw_api->link ( array parameter )

hw_api->link() crée un lien avec un objet. Accéder à ce lien revient à accéder à l'objet vers lequel il pointe. Le paramètre parameter contient les éléments obligatoires de 'objectIdentifier' et 'destinationParentIdentifier'. 'destinationParentIdentifier' est la collection de destination.

hw_api->link() retourne TRUE en cas de succès et, sinon, un objet d'erreur.

Voir aussi hwapi_copy().

Précédent | Sommaire | Suivant
hw_api->insertdocument | Niveau supérieur | hw_api->lock


hw_api->lock

(no version information, might be only in CVS)

hw_api->lock -- Verrouille un objet

Description

bool hw_api->lock ( array parameter )

hw_api->lock() verrouille un objet pour le faire éditer exclusivement par l'utilisateur qui appelle cette fonction. L'objet ne peut être déverrouillé que par cet utilisateur ou par le système. Le paramètre parameter est un tableau qui contient l'élément obligatoire 'objectIdentifier' et les paramètres optionnels 'mode' et 'objectquery'. 'mode' détermine comment l'objet est verrouillé. HW_API_LOCK_NORMAL signifie que l'objet est verrouillé jusqu'à son déverrouillage. HW_API_LOCK_RECURSIVE est uniquement valide pour une collection et verrouille tous les objets de la collection et des sous-collections. HW_API_LOCK_SESSION signifie que l'objet est verrouillé aussi longtemps que tient la session en cours.

Voir aussi hwapi_unlock().

Précédent | Sommaire | Suivant
hw_api->link | Niveau supérieur | hw_api->move


hw_api->move

(no version information, might be only in CVS)

hw_api->move -- Déplace un objet d'une collection à l'autre

Description

bool hw_api->move ( array parameter )

hw_api->move() déplace un objet d'une collection à l'autre.

Voir aussi hw_objrec2array().

Précédent | Sommaire | Suivant
hw_api->lock | Niveau supérieur | hw_api_content


hw_api_content

(no version information, might be only in CVS)

hw_api_content -- Crée une nouvelle instance de la classe hw_api_content

Description

HW_API_Content hw_api_content ( string content, string mimetype )

hw_api_content() crée un nouvel objet de contenu à partir de la chaîne content. Le type MIME est défini à mimetype.

Précédent | Sommaire | Suivant
hw_api->move | Niveau supérieur | hw_api_object->assign


hw_api_object->assign

(no version information, might be only in CVS)

hw_api_object->assign -- Clone un objet

Description

bool hw_api_object->assign ( array parameter )

hw_api_object->assign() clone les attributs d'un objet.

Précédent | Sommaire | Suivant
hw_api_content | Niveau supérieur | hw_api_object->attreditable


hw_api_object->attreditable

(no version information, might be only in CVS)

hw_api_object->attreditable -- Vérifie si un attribut est éditable

Description

bool hw_api_object->attreditable ( array parameter )

hw_api_object->attreditable() vérifie si un attribut est éditable.

Précédent | Sommaire | Suivant
hw_api_object->assign | Niveau supérieur | hw_api_object->count


hw_api_object->count

(no version information, might be only in CVS)

hw_api_object->count -- Retourne le nombre d'attributs

Description

int hw_api_object->count ( array parameter )

hw_api_object->count() retourne le nombre d'attributs.

Précédent | Sommaire | Suivant
hw_api_object->attreditable | Niveau supérieur | hw_api_object->insert


hw_api_object->insert

(no version information, might be only in CVS)

hw_api_object->insert -- Insère un nouvel attribut HyperWave

Description

bool hw_api_object->insert ( HW_API_Attribute attribute )

hw_api_object->insert() ajoute l'attribut attribute à l'objet courant. hw_api_object->insert() retourne TRUE en cas de succès et, sinon, FALSE.

Voir aussi hwapi_object_remove().

Précédent | Sommaire | Suivant
hw_api_object->count | Niveau supérieur | hw_api_object


hw_api_object

(no version information, might be only in CVS)

hw_api_object -- Crée une nouvelle instance de la classe hw_api_object

Description

hw_api_object hw_api_object ( array parameter )

hw_api_object() crée une nouvelle instance de la classe hw_api_object.

Voir aussi hwapi_lock().

Précédent | Sommaire | Suivant
hw_api_object->insert | Niveau supérieur | hw_api_object->remove


hw_api_object->remove

(no version information, might be only in CVS)

hw_api_object->remove -- Supprime un attribut HyperWave

Description

bool hw_api_object->remove ( string name )

hw_api_object->remove() supprime l'attribut de nom name dans l'objet courant. hw_api_object->remove() retourne TRUE en cas de succès, et FALSE sinon.

Voir aussi hwapi_object_insert().

Précédent | Sommaire | Suivant
hw_api_object | Niveau supérieur | hw_api_object->title


hw_api_object->title

(no version information, might be only in CVS)

hw_api_object->title -- Retourne le titre de l'attribut

Description

string hw_api_object->title ( array parameter )

Précédent | Sommaire | Suivant
hw_api_object->remove | Niveau supérieur | hw_api_object->value


hw_api_object->value

(no version information, might be only in CVS)

hw_api_object->value -- Retourne la valeur de l'attribut

Description

string hw_api_object->value ( string name )

hw_api_object->value() retourne la valeur de l'attribut name, ou bien FALSE si une erreur est survenue.

Précédent | Sommaire | Suivant
hw_api_object->title | Niveau supérieur | hw_api->object


hw_api->object

(no version information, might be only in CVS)

hw_api->object -- Lit les informations d'attribut

Description

hw_api_object hw_api->object ( array parameter )

hw_api->object() lit les informations d'attribut d'un objet de n'importe quelle version. Elle ne retournera pas le contenu du document. Le paramètre parameter est un tableau qui contient l'élément obligatoire 'objectIdentifier' et les éléments optionnels 'attributeSelector' et 'version'.

L'objet retourné est une instance de la classe HW_API_Object en cas de succès ou HW_API_Error en cas d'erreur.

Cet exemple simple lit un objet et vérifie les erreurs.

Exemple 1. Lit un objet Hyperwave et le vérifie

<?php
function handle_error($error)
{
  $reason = $error->reason(0);
  echo 'Type: <strong>';
  switch ($reason->type()) {
    case 0:
      echo 'Erreur';
      break;
    case 1:
      echo 'Alerte';
      break;
    case 2:
      echo 'Message';
      break;
  }
  echo "</strong><br />\n";
  echo "Description : " . $reason->description("en") . "<br />\n";
}

function list_attr($obj)
{
  echo "<table>\n";
  $count = $obj->count();
  for ($i=0; $i<$count; $i++) {
    $attr = $obj->attribute($i);
    printf("<tr><td><strong>%s</strong></td><td>%s</td></tr>\n",
             $attr->key(), $attr->value());
  }
  echo "</table>\n";
}

$hwapi = hwapi_hgcsp($g_config[HOSTNAME]);
$parms = array("objectIdentifier" => "rootcollection", "attributeSelector"=>array("Title", "Name", "DocumentType"));
$root = $hwapi->object($parms);
if (get_class($root) == "HW_API_Error") {
  handle_error($root);
  exit;
}
list_attr($root);
?>

Voir aussi hwapi_content().

Précédent | Sommaire | Suivant
hw_api_object->value | Niveau supérieur | hw_api->objectbyanchor


hw_api->objectbyanchor

(no version information, might be only in CVS)

hw_api->objectbyanchor -- Retourne l'objet propriétaire d'une ancre

Description

hw_api_object hw_api->objectbyanchor ( array parameter )

hw_api->objectbyanchor() retourne l'objet qui contient une ancre donnée. Le paramètre parameter est un tableau qui contient l'élément obligatoire 'objectIdentifier' et l'élément optionnel 'attributeSelector'.

Voir aussi
hwapi_dstofsrcanchor(),
hwapi_srcanchors() et
hwapi_dstanchors().

Précédent | Sommaire | Suivant
hw_api->object | Niveau supérieur | hw_api->parents


hw_api->parents

(no version information, might be only in CVS)

hw_api->parents -- Retourne le parent d'un objet

Description

array hw_api->parents ( array parameter )

hw_api->parents() lit le parent d'un objet. Le parent peut être filtré en spécifiant un objet de requête. Le paramètre parameter est un tableau qui contient l'élément obligatoire 'objectidentifier' et les éléments optionnels 'attributeselector' et 'objectquery'.

La valeur retournée est un tableau d'objets de type HW_API_Object ou HW_API_Error.

Voir aussi hwapi_children().

Précédent | Sommaire | Suivant
hw_api->objectbyanchor | Niveau supérieur | hw_api_reason->description


hw_api_reason->description

(no version information, might be only in CVS)

hw_api_reason->description -- Retourne la description d'une raison

Description

string hw_api_reason->description ( void )

hw_api_reason->description() retourne la description d'une raison.

Précédent | Sommaire | Suivant
hw_api->parents | Niveau supérieur | hw_api_reason->type


hw_api_reason->type

(no version information, might be only in CVS)

hw_api_reason->type -- Retourne le type de raison

Description

HW_API_Reason hw_api_reason->type ( void )

hw_api_reason->type() retourne le type de raison.

Précédent | Sommaire | Suivant
hw_api_reason->description | Niveau supérieur | hw_api->remove


hw_api->remove

(no version information, might be only in CVS)

hw_api->remove -- Efface un objet

Description

bool hw_api->remove ( array parameter )

hw_api->remove() efface un objet avec un parent spécifique. Les collections seront effacées récursivement. Vous pouvez passez un objet optionnel de requête pour filtrer les objets qui seront effacés. Un objet sera effacé physiquement si c'est sa dernière instance. Le paramètre parameter est un tableau qui contient les éléments obligatoires 'objectidentifier' et 'parentidentifier'. Si vous souhaitez effacer un utilisateur ou un groupe, 'parentidentifier' peut être omis. L'élément optionnel 'mode' détermine comment l'effacement est réalisé. En mode normal, l'objet sera effacé physiquement lorsque toutes ses instances seront supprimées. En mode physique, toutes les instances d'un objet seront supprimées immédiatement. En mode removelinks toutes les références vers et depuis l'objet seront aussi effacées. En mode nonrecursive, l'effacement n'est pas récusrsif. Effacer une collection qui n'est pas vide causera une erreur.

Voir aussi hwapi_move().

Précédent | Sommaire | Suivant
hw_api_reason->type | Niveau supérieur | hw_api->replace


hw_api->replace

(no version information, might be only in CVS)

hw_api->replace -- Remplace un objet

Description

hw_api_object hw_api->replace ( array parameter )

hw_api->replace() remplace les attributs et le contenu d'un objet. Le paramètre parameter est un tableau qui contient les éléments obligatoires 'objectIdentifier' et 'object', puis les paramètres optionnels 'content', 'parameters', 'mode' et 'attributeSelector'. 'objectIdentifier' contient l'objet qui doit être remplacé. 'object' contient le nouvel objet. 'content' contient le nouveau contenu. 'parameters' contient des informations supplémentaires pour les documents HTML. HTML_Language est l'abbrévation de la langue pour le titre. HTML_Base est l'attribut de base pour le contenu du document HTML. 'mode' peut être la combinaison de l'une des constantes suivantes :

HW_API_REPLACE_NORMAL

L'objet sur le serveur est remplacé par l'objet passé.

HW_API_REPLACE_FORCE_VERSION_CONTROL

HW_API_REPLACE_AUTOMATIC_CHECKOUT

HW_API_REPLACE_AUTOMATIC_CHECKIN

HW_API_REPLACE_PLAIN

HW_API_REPLACE_REVERT_IF_NOT_CHANGED

HW_API_REPLACE_KEEP_TIME_MODIFIED

Voir aussi hwapi_insert().

Précédent | Sommaire | Suivant
hw_api->remove | Niveau supérieur | hw_api->setcommittedversion


hw_api->setcommittedversion

(no version information, might be only in CVS)

hw_api->setcommittedversion -- Valide une version autre que la dernière

Description

hw_api_object hw_api->setcommittedversion ( array parameter )

hw_api->setcommittedversion() valide une version du document. La version validée est celle qui est visible par les utilisateurs ayant un accès en lecture. Par défaut, la dernière version est celle qui est validée.

Voir aussi
hwapi_checkin(),
hwapi_checkout() et
hwapi_revert().

Précédent | Sommaire | Suivant
hw_api->replace | Niveau supérieur | hw_api->srcanchors


hw_api->srcanchors

(no version information, might be only in CVS)

hw_api->srcanchors -- Retourne la liste de toutes les ancres

Description

array hw_api->srcanchors ( array parameter )

hw_api->srcanchors() lit toutes les ancres sources d'un objet. Le paramètre parameter est un tableau qui contient l'élément obligatoire 'objectIdentifier' et les éléments optionnels 'attributeSelector' wr 'objectQuery'.

Voir aussi hwapi_dstanchors().

Précédent | Sommaire | Suivant
hw_api->setcommittedversion | Niveau supérieur | hw_api->srcsofdst


hw_api->srcsofdst

(no version information, might be only in CVS)

hw_api->srcsofdst -- Retourne les sources d'un objet de destination

Description

array hw_api->srcsofdst ( array parameter )

hw_api->srcsofdst() retourne les sources d'un objet de destination. L'objet de destination peut être une ancre ou un document complet. Le paramètre parameter est un tableau qui contient l'élément obligatoire 'objectIdentifier' et les éléments optionnels 'attributeSelector' et 'objectQuery'. La fonction retourne un tableau d'objet ou une erreur.

Voir aussi hwapi_dstofsrcanchor().

Précédent | Sommaire | Suivant
hw_api->srcanchors | Niveau supérieur | hw_api->unlock


hw_api->unlock

(no version information, might be only in CVS)

hw_api->unlock -- Déverrouille un objet HyperWave verrouillé

Description

bool hw_api->unlock ( array parameter )

hw_api->unlock() déverrouille un objet verrouillé. Seuls l'utilisateur qui a verrouillé un objet et l'administrateur système peuvent le déverrouiller. Le paramètre parameter est un tableau qui contient les éléments obligatoires de objectIdentifier et les paramètres optionnels de mode et objectquery. La signification de mode est la même que dans la fonction hwapi_lock().

hw_api->unlock() retourne TRUE en cas de succès et, sinon, un objet d'erreur HW_API_Error.

Voir aussi hwapi_lock().

Précédent | Sommaire | Suivant
hw_api->srcsofdst | Niveau supérieur | hw_api->user


hw_api->user

(no version information, might be only in CVS)

hw_api->user -- Retourne le propriétaire d'un objet

Description

hw_api_object hw_api->user ( array parameter )

hw_api->user() retourne le propriétaire d'un objet.

Voir aussi hwapi_userlist().

Précédent | Sommaire | Suivant
hw_api->unlock | Niveau supérieur | hw_api->userlist


hw_api->userlist

(no version information, might be only in CVS)

hw_api->userlist -- Retourne la liste des utilisateurs connectés

Description

array hw_api->userlist ( array parameter )

hw_api->userlist() retourne la liste des utilisateurs connectés.

Voir aussi hwapi_user().

Précédent | Sommaire | Suivant
hw_api->user | Niveau supérieur | i18n Fonctions


Fonctions Firebird/InterBase

Manuel PHP
Précédent Suivant

XLII. Fonctions Firebird/InterBase

Introduction

Firebird/InterBase est une base de données relationnelles offrant la plus part des fonctionnalités décrites dans la norme ANSI SQL-92, qui fonctionne sous environnements Linux, Windows, et la plus part des systèmes Unix. Firebird/InterBase offre une excellente simultanéité, de hautes performances et un langage efficace pour l'écriture des procédures stockées et des triggers. 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 Borland/Inprise. Pour plus d'informations sur Interbase, allez à http://www.borland.com/interbase/.

Firebird est un projet commerciallement indépendant de programmeurs C et 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 Borland Software Corp) sous la licence InterBase Public License v.1.0 le 25 Juillet 2000. Pour plus d'informations sur Firebird, allez à http://www.firebirdsql.org/.

Note : Cette extension supporte Interbase version 5 et suivante ainsi que toutes les versions de Firbird. Le support d'Interbase version 5.x sera supprimé dans PHP 5.

Cette base de données utilise les guillemets simples (') pour échapper les caractères, un peu comme le fait Sybase. Ajoutez à votre fichier php.ini la directive suivante :

Exemple 1. Configuration InterBase

magic_quotes_sybase = On

Pré-requis

Installation

Pour activer le support de ibase, vous devez compiler PHP avec l'option --with-interbase[=DIR].

Note aux utilisateurs Win32 : Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : gds32.dll

Dans le cas où vous installeriez un serveur InterBase sur la même machine que celle faisant fonctionner PHP, vous devriez déjà avoir cette bibliothèque. Ainsi, ne vous en faites pas car gds32.dll sera déjà dans votre PATH.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
ibase.allow_persistent | "1" | PHP_INI_SYSTEM |
ibase.max_persistent | "-1" | PHP_INI_SYSTEM |
ibase.max_links | "-1" | PHP_INI_SYSTEM |
ibase.default_db | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
ibase.default_user | NULL | PHP_INI_ALL |
ibase.default_password | NULL | PHP_INI_ALL |
ibase.default_charset | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL |
ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL |
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ibase.allow_persistent booléen

Accepte ou non les connexions persistantes à Firebird/Interbase.

ibase.max_persistent entier

Le nombre maximal de connexions persistantes Firebird/Interbase par processus. Les nouvelles connexions avec ibase_pconnect() ne seront pas persistantes si ce nombre maximal est atteint.

ibase.max_links entier

Le nombre maximal de connexions Firebird/Interbase par processus, incluant les connexions persistantes.

ibase.default_db chaîne de caractères

Le nom de la base de données par défaut lorsque ibase_[p]connect() est appelé sans base de données spécifique. Si cette valeur est définie et que le mode sécurisé (safe mode) SQL est activé, aucune connexion à d'autres bases de données que celle-ci ne sera autorisé.

ibase.default_user chaîne de caractères

Le nom d'utilisateur utilisé lors de la connexion à la base de données lorsque aucun n'est spécifié.

ibase.default_password chaîne de caractères

Le mot de passe utilisé lors de la connexion à la base de données lorsque aucun n'est spécifié.

ibase.default_charset chaîne de caractères

Le jeux de caractères utilisé lors de la connexion à la base de données lorsque aucun n'est spécifié.

ibase.timestampformat chaîne de caractères

ibase.dateformat chaîne de caractères

ibase.timeformat chaîne de caractères

Ces directives sont utilisées pour définir les formats de dates et d'heures qui seront utilisés lorsque des dates/heures seront retournées d'un jeux de résultat, ou lors de traitement d'arguments en paramètres dates/heures.

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.

Les constantes suivantes peuvent être passées à la fonction ibase_trans() pour spécifier le comportement du traitement.

Tableau 2. 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 plus part 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ébutté.
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.

Tableau 3. Constantes Firebird/InterBase

Constante | Description
IBASE_FETCH_BLOBS | Aussi disponible sous le nom IBASE_TEXT pour des raisons de compatiblité ascendante. Permet de lire le contenu d'un BLOB 'inline' au lieu de le parcourir en utilisant un identifiant de BLOB.
IBASE_FETCH_ARRAYS | Permet de lire un tableau 'inline'. Sinon, les identifiants de tableaux sont retournés. Les identifiants de tableaux ne peuvent être passés uniquement comme arguments aux requêtes INSERT, car aucune fonction pour traiter les identifiants de tableaux n'est actuellement disponible.
IBASE_UNIXTIME | Permet de retourner les champs date et heure non pas comme des chaînes de caractères mais comme des timestamps UNIX (le nombre de secondes depuis l'époque UNIX, qui est le 1-Jan-1970 0:00 UTC). Cela peut être problèmatique si vous utilisez des dates antérieures à 1970 sur quelques systèmes.

Les constantes suivantes sont utilisées pour passer des requêtes et des options à l'API (ibase_server_info(), ibase_db_info(), ibase_backup(), ibase_restore() et ibase_maintain_db()). Merci de consulter le manuel Firebird/InterBase pour plus d'informations sur la significations de ces options.

IBASE_BKP_IGNORE_CHECKSUMS

IBASE_BKP_IGNORE_LIMBO

IBASE_BKP_METADATA_ONLY

IBASE_BKP_NO_GARBAGE_COLLECT

IBASE_BKP_OLD_DESCRIPTIONS

IBASE_BKP_NON_TRANSPORTABLE

IBASE_BKP_CONVERT

Options de ibase_backup()

IBASE_RES_DEACTIVATE_IDX

IBASE_RES_NO_SHADOW

IBASE_RES_NO_VALIDITY

IBASE_RES_ONE_AT_A_TIME

IBASE_RES_REPLACE

IBASE_RES_CREATE

IBASE_RES_USE_ALL_SPACE

Options de ibase_restore()

IBASE_PRP_PAGE_BUFFERS

IBASE_PRP_SWEEP_INTERVAL

IBASE_PRP_SHUTDOWN_DB

IBASE_PRP_DENY_NEW_TRANSACTIONS

IBASE_PRP_DENY_NEW_ATTACHMENTS

IBASE_PRP_RESERVE_SPACE

IBASE_PRP_RES_USE_FULL

IBASE_PRP_RES

IBASE_PRP_WRITE_MODE

IBASE_PRP_WM_ASYNC

IBASE_PRP_WM_SYNC

IBASE_PRP_ACCESS_MODE

IBASE_PRP_AM_READONLY

IBASE_PRP_AM_READWRITE

IBASE_PRP_SET_SQL_DIALECT

IBASE_PRP_ACTIVATE

IBASE_PRP_DB_ONLINE

IBASE_RPR_CHECK_DB

IBASE_RPR_IGNORE_CHECKSUM

IBASE_RPR_KILL_SHADOWS

IBASE_RPR_MEND_DB

IBASE_RPR_VALIDATE_DB

IBASE_RPR_FULL

IBASE_RPR_SWEEP_DB

Options de ibase_maintain_db()

IBASE_STS_DATA_PAGES

IBASE_STS_DB_LOG

IBASE_STS_HDR_PAGES

IBASE_STS_IDX_PAGES

IBASE_STS_SYS_RELATIONS

Options de ibase_db_info()

IBASE_SVC_SERVER_VERSION

IBASE_SVC_IMPLEMENTATION

IBASE_SVC_GET_ENV

IBASE_SVC_GET_ENV_LOCK

IBASE_SVC_GET_ENV_MSG

IBASE_SVC_USER_DBPATH

IBASE_SVC_SVR_DB_INFO

IBASE_SVC_GET_USERS

Options de ibase_server_info()

Table des matières
ibase_add_user -- Ajoute un utilisateur à une base de données de sécurité (uniquement pour IB6 ou plus récent)
ibase_affected_rows -- Retourne le nombre de lignes affectées par la dernière requête iBase
ibase_backup -- Effectue une sauvegarde de base de données InterBase
ibase_blob_add -- Ajoute des données dans un BLOB iBase fraîchement créé
ibase_blob_cancel -- Annule la création d'un BLOB iBase
ibase_blob_close -- Ferme un BLOB ibase
ibase_blob_create -- Crée un BLOB iBase pour ajouter des données
ibase_blob_echo -- Affiche le contenu d'un BLOB iBase au navigateur
ibase_blob_get -- Lit len octets de données dans un BLOB iBase ouvert
ibase_blob_import -- Crée un BLOB iBase, y copie un fichier et le referme
ibase_blob_info -- Retourne la taille d'un BLOB iBase et d'autres informations utiles
ibase_blob_open -- Ouvre un BLOB iBase pour récupérer des parties de données
ibase_close -- Ferme une connexion à une base de données Interbase
ibase_commit_ret -- Valide une transaction iBase sans la refermer
ibase_commit -- Valide une transaction iBase
ibase_connect -- Ouvre une connexion à une base de données InterBase
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é (uniquement pour IB6 ou plus récent)
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 dans 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é (uniquement pour InterBase6 ou plus récent)
ibase_name_result -- Assigne un nom à un jeu de résultats iBase
ibase_num_fields -- Retourne le nombre de colonnes dans un résultat iBase
ibase_num_params -- Retourne le nombre de paramètres dans une requête préparée iBase
ibase_param_info -- Retourne des informations à propos d'un paramètre dans une requête préparée iBase
ibase_pconnect -- Ouvre une connexion persistante à une base de données InterBase
ibase_prepare -- Prépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement
ibase_query -- Exécute une requête sur une base iBase
ibase_restore -- Restaure une sauvegarde de base de données Interbase
ibase_rollback_ret -- Annule une transaction sans la refermer
ibase_rollback -- Annule une transaction iBase
ibase_server_info -- Demande des informations sur le serveur Interbase
ibase_service_attach -- Connexion au service de gestion Interbase
ibase_service_detach -- Déconnexion du service de gestion Interbase
ibase_set_event_handler -- Enregistre une fonction de callback sur un événement iBase
ibase_timefmt -- Fixe le format de date pour les prochaines requêtes
ibase_trans -- Prépare une transaction iBase
ibase_wait_event -- Attend un événement iBase

Précédent | Sommaire | Suivant
filter_var | Niveau supérieur | ibase_add_user


ibase_add_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_add_user -- Ajoute un utilisateur à une base de données de sécurité (uniquement pour IB6 ou plus récent)

Description

bool ibase_add_user ( resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]] )

PHP 4 utilise les paramètres server, dba_user_name et dba_user_password au lieu de service_handle.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi ibase_modify_user() et ibase_delete_user().

Précédent | Sommaire | Suivant
Fonctions Firebird/InterBase | Niveau supérieur | ibase_affected_rows


ibase_affected_rows

(PHP 5)

ibase_affected_rows -- Retourne le nombre de lignes affectées par la dernière requête iBase

Description

int ibase_affected_rows ( [resource link_identifier] )

ibase_affected_rows() 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. Si link_identifier est une ressource de connexion, sa transaction par défaut est utilisée.

Voir aussi ibase_query() et ibase_execute().

Précédent | Sommaire | Suivant
ibase_add_user | Niveau supérieur | ibase_backup


ibase_backup

(PHP 5)

ibase_backup -- Effectue une sauvegarde de base de données InterBase

Description

mixed ibase_backup ( resource service_handle, string source_db, string dest_file [, int options [, bool verbose]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ibase_affected_rows | Niveau supérieur | ibase_blob_add


ibase_blob_add

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_add -- Ajoute des données dans un BLOB iBase fraîchement créé

Description

void ibase_blob_add ( resource blob_handle, string data )

ibase_blob_add() ajoute les données data dans le BLOB blob_handle, créé avec ibase_blob_create(). Retourne NULL en cas de succès ou FALSE si une erreur survient.

Voir aussi
ibase_blob_cancel(),
ibase_blob_close(),
ibase_blob_create() et
ibase_blob_import().

Précédent | Sommaire | Suivant
ibase_backup | Niveau supérieur | ibase_blob_cancel


ibase_blob_cancel

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_cancel -- Annule la création d'un BLOB iBase

Description

bool ibase_blob_cancel ( resource blob_handle )

ibase_blob_cancel() annule la création du BLOB blob_handle, créé par ibase_create_blob() s'il n'a pas encore été fermé avec ibase_blob_close(). Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi
ibase_blob_close(),
ibase_blob_create() et
ibase_blob_import().

Précédent | Sommaire | Suivant
ibase_blob_add | Niveau supérieur | ibase_blob_close


ibase_blob_close

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_close -- Ferme un BLOB ibase

Description

mixed ibase_blob_close ( resource blob_handle )

ibase_blob_close() ferme le BLOB blob_handle, ouvert en lecture avec ibase_open_blob() ou en écriture avec ibase_create_blob(). 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() et ibase_blob_open().

Précédent | Sommaire | Suivant
ibase_blob_cancel | Niveau supérieur | ibase_blob_create


ibase_blob_create

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_create -- Crée un BLOB iBase pour ajouter des données

Description

resource ibase_blob_create ( [resource link_identifier] )

ibase_blob_create() crée un nouveau BLOB à remplir avec des données, sur la connexion InterBase link_identifier. Elle retourne un identifiant de BLOB à utiliser avec ibase_blob_add() ou FALSE en cas d'échec.

Voir aussi
ibase_blob_add(),
ibase_blob_cancel(),
ibase_blob_close() et
ibase_blob_import().

Précédent | Sommaire | Suivant
ibase_blob_close | Niveau supérieur | ibase_blob_echo


ibase_blob_echo

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_echo -- Affiche le contenu d'un BLOB iBase au navigateur

Description

bool ibase_blob_echo ( resource link_identifier, string blob_id )

bool ibase_blob_echo ( string blob_id )

ibase_blob_echo() ouvre le BLOB blob_id en lecture et envoie son contenu directement vers la sortie standard (le navigateur dans la plupart des cas). Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi
ibase_blob_open(),
ibase_blob_close() et
ibase_blob_get().

Précédent | Sommaire | Suivant
ibase_blob_create | Niveau supérieur | ibase_blob_get


ibase_blob_get

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_get -- Lit len octets de données dans un BLOB iBase ouvert

Description

string ibase_blob_get ( resource blob_handle, int len )

ibase_blob_get() retourne au plus len octets du BLOB blob_handle qui a été ouvert en lecture par ibase_blob_open(). Cette fonction retourne FALSE en cas d'échec.

Exemple 1. Exemple avec ibase_blob_get()

<?php
    $sql       = "SELECT blob_value FROM matable";
    $result    = ibase_query( $sql );
    $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.

Note : Il n'est pas possible de lire dans un BLOB ouvert en écriture par ibase_blob_create().

Voir aussi
ibase_blob_open(),
ibase_blob_close() et
ibase_blob_echo().

Précédent | Sommaire | Suivant
ibase_blob_echo | Niveau supérieur | ibase_blob_import


ibase_blob_import

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_import -- Crée un BLOB iBase, y copie un fichier et le referme

Description

string ibase_blob_import ( resource link_identifier, resource file_handle )

string ibase_blob_import ( resource file_handle )

ibase_blob_import() crée un nouveau BLOB sur la connexion iBase link_identifier, y copie le fichier file_handle en entier, le referme et en retourne l'identifiant assigné. Le pointeur de fichier est une ressource retournée par fopen(). Cette fonction retourne FALSE en cas d'échec.

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 de données
}
?>

Voir aussi
ibase_blob_add(),
ibase_blob_cancel(),
ibase_blob_close() et
ibase_blob_create().

Précédent | Sommaire | Suivant
ibase_blob_get | Niveau supérieur | ibase_blob_info


ibase_blob_info

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_info -- Retourne la taille d'un BLOB iBase et d'autres informations utiles

Description

array ibase_blob_info ( resource link_identifier, string blob_id )

array ibase_blob_info ( string blob_id )

ibase_blob_info() retorune 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é.

Précédent | Sommaire | Suivant
ibase_blob_import | Niveau supérieur | ibase_blob_open


ibase_blob_open

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_open -- Ouvre un BLOB iBase pour récupérer des parties de données

Description

resource ibase_blob_open ( resource link_identifier, string blob_id )

resource ibase_blob_open ( string blob_id )

ibase_blob_open() ouvre le BLOB blob_id en lecture. Elle retourne une ressource BLOB à utiliser avec ibase_blob_get() ou FALSE en cas d'échec.

Voir aussi
ibase_blob_close(),
ibase_blob_echo() et
ibase_blob_get().

Précédent | Sommaire | Suivant
ibase_blob_info | Niveau supérieur | ibase_close


ibase_close

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_close -- Ferme une connexion à une base de données Interbase

Description

bool ibase_close ( [resource connection_id] )

ibase_close() ferme une connexion à une base de données Interbase. Cette fonction prend comme argument l'identifiant de connexion connection_id retourné par ibase_connect(). Si connection_id est omis, la dernière connexion ibase est fermée. Les transactions par défaut sont validées et les autres sont annulées. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi ibase_connect() et ibase_pconnect().

Précédent | Sommaire | Suivant
ibase_blob_open | Niveau supérieur | ibase_commit_ret


ibase_commit_ret

(PHP 5)

ibase_commit_ret -- Valide une transaction iBase sans la refermer

Description

bool ibase_commit_ret ( [resource link_or_trans_identifier] )

Si ibase_commit_ret() est appelée sans argument, elle valide la transaction par défaut de la connexion par défaut. Si l'argument link_identifier est un identifiant de connexion, sa transaction par défaut est validée. Si l'argument link_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. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ibase_close | Niveau supérieur | ibase_commit


ibase_commit

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_commit -- Valide une transaction iBase

Description

bool ibase_commit ( [resource link_or_trans_identifier] )

ibase_commit() valide la transaction link_or_trans_identifier, qui a été préparée avec ibase_trans(). Si link_or_trans_identifier est une ressource de connexion, la transaction correspondante sera validée. Si l'argument est une ressource de transaction, cette transaction sera validée. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ibase_commit_ret | Niveau supérieur | ibase_connect


ibase_connect

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_connect -- Ouvre une connexion à une base de données InterBase

Description

resource ibase_connect ( [string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role [, int sync]]]]]]]] )

ibase_connect() établit une connexion avec un serveur InterBase. database doit être un chemin valide jusqu'à un fichier de base de données sur le serveur sur lequel il résde. Si le serveur est distant, il faut le préfixer avec un nom d'hôte 'hostname:' (TCP/IP), '//hostname/' (NetBEUI) ou 'hostname@' (IPX/SPX), en fonction du protocole de communication utilisé. username et password peuvent être spécifiés dans les directives de configuration de PHP ibase.default_user et ibase.default_password. charset est le jeu de caractère par défaut de la base. 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 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.

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.

Exemple 1. Exemple ibase_connect()

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

Note : buffers a été ajouté en PHP 4.0.0.

Note : dialect a été ajouté en PHP 4.0.0. Il n'est opérationnel qu'avec les versions InterBase 6 et plus récentes.

Note : role a été ajouté en PHP 4.0.0. Il n'est opérationnel qu'avec les versions InterBase 5 et plus récentes.

Note : 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 positionner un charset correct (i.e. ISO8859_1 ou votre charset courant).

Voir aussi ibase_pconnect() et ibase_close().

Précédent | Sommaire | Suivant
ibase_commit | Niveau supérieur | ibase_db_info


ibase_db_info

(PHP 5)

ibase_db_info -- Demande des statistiques sur une base de données Interbase

Description

string ibase_db_info ( resource service_handle, string db, int action [, int argument] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ibase_connect | Niveau supérieur | ibase_delete_user


ibase_delete_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_delete_user -- Efface un utilisateur d'une base de données de sécurité (uniquement pour IB6 ou plus récent)

Description

bool ibase_delete_user ( resource service_handle, string user_name )

PHP 4 utilise les paramètres server, dba_user_name et dba_user_password au lieu de service_handle.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi ibase_add_user() et ibase_modify_user().

Précédent | Sommaire | Suivant
ibase_db_info | Niveau supérieur | ibase_drop_db


ibase_drop_db

(PHP 5)

ibase_drop_db -- Supprime une base de données iBase

Description

bool ibase_drop_db ( [resource connection] )

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. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi ibase_connect() et ibase_pconnect().

Précédent | Sommaire | Suivant
ibase_delete_user | Niveau supérieur | ibase_errcode


ibase_errcode

(PHP 5)

ibase_errcode -- Retourne le code d'erreur iBase

Description

int ibase_errcode ( void )

ibase_errcode() retourne le code erreur résultant de l'appel le plus récent à une fonction InterBase. ibase_errcode() retourne FALSE si aucune erreur n'est survenue.

Voir aussi ibase_errmsg().

Précédent | Sommaire | Suivant
ibase_drop_db | Niveau supérieur | ibase_errmsg


ibase_errmsg

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_errmsg -- Retourne un message d'erreur

Description

string ibase_errmsg ( void )

ibase_errmsg() retourne une chaîne contenant les messages d'erreurs. Retourne FALSE si aucune erreur n'est survenu.

Précédent | Sommaire | Suivant
ibase_errcode | Niveau supérieur | ibase_execute


ibase_execute

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_execute -- Exécute une requête iBase préparée

Description

resource ibase_execute ( resource query [, mixed bind_arg [, mixed ...]] )

ibase_execute() exécute une requête préparée (et éventuellement liée) par ibase_prepare(). 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.

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

?>

Note : Depuis la version 5.0.0 de PHP, 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.

Voir aussi ibase_query().

Précédent | Sommaire | Suivant
ibase_errmsg | Niveau supérieur | ibase_fetch_assoc


ibase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

ibase_fetch_assoc -- Récupère une ligne du résultat d'une requête dans un tableau associatif

Description

array ibase_fetch_assoc ( resource result [, int fetch_flag] )

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

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.

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.

Voir aussi
ibase_query(),
ibase_fetch_row(), et
ibase_fetch_object().

Précédent | Sommaire | Suivant
ibase_execute | Niveau supérieur | ibase_fetch_object


ibase_fetch_object

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_fetch_object -- Lit une ligne dans une base Interbase dans un objet

Description

object ibase_fetch_object ( resource result_id [, int fetch_flag] )

ibase_fetch_object() lit une ligne dans une base Interbase et la place dans un pseudo objet. ibase_fetch_object() prend comme argument l'identifiant de résultat result_id obtenu de ibase_query() ou ibase_execute().

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

L'appel a ibase_fetch_object() renvoie la ligne suivante dans le jeux d'enregistrements ou FALSE s'il n'y a plus de lignes disponibles.

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.

Voir aussi ibase_fetch_row() et ibase_fetch_assoc().

Précédent | Sommaire | Suivant
ibase_fetch_assoc | Niveau supérieur | ibase_fetch_row


ibase_fetch_row

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_fetch_row -- Lit une ligne dans une base Interbase

Description

array ibase_fetch_row ( resource result_identifier [, int fetch_flag] )

ibase_fetch_row() retourne la prochaine ligne spécifiée dans le résultat obtenu de ibase_query(), ou FALSE s'il n'y a plus de lignes.

ibase_fetch_row() lit une ligne de données dans le résultat, sous la forme d'un tableau numérique. Chaque colonne est stockée avec un offset différent, commençant à 0.

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.

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.

Voir aussi ibase_fetch_assoc() et ibase_fetch_row().

Précédent | Sommaire | Suivant
ibase_fetch_object | Niveau supérieur | ibase_field_info


ibase_field_info

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_field_info -- Lit les informations sur un champ iBase

Description

array ibase_field_info ( resource result, int field_number )

ibase_field_info() retourne un tableau contenant les informations sur le champ numéro field_number après une requête de SELECT. Le tableau contient les index name (nom), alias, relation, length (taille), type.

Exemple 1. Exemple avec ibase_field_info()

<?php
    $rs = ibase_query("Select * from matable");
    $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().

Précédent | Sommaire | Suivant
ibase_fetch_row | Niveau supérieur | ibase_free_event_handler


ibase_free_event_handler

(PHP 5)

ibase_free_event_handler -- Libère un gestionnaire d'événements iBase

Description

bool ibase_free_event_handler ( resource event )

ibase_free_event_handler() annule le gestionnaire d'événements enregistré, spécifié par event. La fonction de callback ne sera plus exécutée pour les événements qu'elle devait prendre en charge. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi ibase_set_event_handler().

Précédent | Sommaire | Suivant
ibase_field_info | Niveau supérieur | ibase_free_query


ibase_free_query

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_free_query -- Libère la mémoire réservée par une requête préparée

Description

bool ibase_free_query ( resource query )

ibase_free_query() libère la mémoire réservée par une requête préparée par ibase_prepare(). Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ibase_free_event_handler | Niveau supérieur | ibase_free_result


ibase_free_result

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_free_result -- Libère un résultat iBase

Description

bool ibase_free_result ( resource result_identifier )

ibase_free_result() libère les ressources liées au résultat result_identifier. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ibase_free_query | Niveau supérieur | ibase_gen_id


ibase_gen_id

(PHP 5)

ibase_gen_id -- Incrémente le générateur donné et retourne sa nouvelle valeur

Description

mixed ibase_gen_id ( string generator [, int increment [, resource link_identifier]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Retourne une nouvelle valeur générée sous la forme d'un entier ou une chaîne si la valeur est trop grosse.

Précédent | Sommaire | Suivant
ibase_free_result | Niveau supérieur | ibase_maintain_db


ibase_maintain_db

(PHP 5)

ibase_maintain_db -- Exécute une commande de maintenance sur une base de données Interbase

Description

bool ibase_maintain_db ( resource service_handle, string db, int action [, int argument] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ibase_gen_id | Niveau supérieur | ibase_modify_user


ibase_modify_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_modify_user -- Modifie un utilisateur dans une base de données de sécurité (uniquement pour InterBase6 ou plus récent)

Description

bool ibase_modify_user ( resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]] )

PHP 4 utilise les paramètres server, dba_user_name et dba_user_password au lieu de service_handle.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi ibase_add_user() et ibase_delete_user().

Précédent | Sommaire | Suivant
ibase_maintain_db | Niveau supérieur | ibase_name_result


ibase_name_result

(PHP 5)

ibase_name_result -- Assigne un nom à un jeu de résultats iBase

Description

bool ibase_name_result ( resource result, string name )

ibase_name_result() 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. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
ibase_modify_user | Niveau supérieur | ibase_num_fields


ibase_num_fields

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_num_fields -- Retourne le nombre de colonnes dans un résultat iBase

Description

int ibase_num_fields ( resource result_id )

ibase_num_fields() retourne le nombre de colonnes dans le résultat iBase result_id.

Exemple 1. Exemple avec ibase_num_fields()

<?php
    $rs = ibase_query("SELECT * FROM matable");
    $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().

Précédent | Sommaire | Suivant
ibase_name_result | Niveau supérieur | ibase_num_params


ibase_num_params

(PHP 5)

ibase_num_params -- Retourne le nombre de paramètres dans une requête préparée iBase

Description

int ibase_num_params ( resource query )

ibase_num_params() retourne le nombre de paramètres dans la requête spécifiée par query. C'est le nombre d'arguments de substitution qui doivent être présents lors de l'appel de ibase_execute().

Voir aussi ibase_prepare() et ibase_param_info().

Précédent | Sommaire | Suivant
ibase_num_fields | Niveau supérieur | ibase_param_info


ibase_param_info

(PHP 5)

ibase_param_info -- Retourne des informations à propos d'un paramètre dans une requête préparée iBase

Description

array ibase_param_info ( resource query, int param_number )

ibase_param_info() retourne un tableau avec des informations à propos d'un paramètre après qu'une requête n'ait été préparée. Le tableau contient les entrées name, alias, relation, length, type (nom, alias, relation, taille, type).

Voir aussi ibase_field_info() et ibase_num_params().

Précédent | Sommaire | Suivant
ibase_num_params | Niveau supérieur | ibase_pconnect


ibase_pconnect

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_pconnect -- Ouvre une connexion persistante à une base de données InterBase

Description

resource ibase_pconnect ( [string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role [, int sync]]]]]]]] )

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

Note : buffers a été ajouté en PHP 4.0.0.

Note : dialect a été ajouté en PHP 4.0.0. Il n'est opérationnel qu'avec les versions InterBase 6 et plus récentes.

Note : role a été ajouté en PHP 4.0.0. Il n'est opérationnel qu'avec les versions InterBase 5 et plus récentes.

Voir aussi ibase_close() et ibase_connect() pour plus de détails sur les arguments de cette fonction.

Précédent | Sommaire | Suivant
ibase_param_info | Niveau supérieur | ibase_prepare


ibase_prepare

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_prepare -- Prépare une requête iBase pour lier les paramètres et l'exécuter ultérieurement

Description

resource ibase_prepare ( string query )

resource ibase_prepare ( resource link_identifier, string query )

resource ibase_prepare ( resource link_identifier, string trans, string query )

ibase_prepare() prépare une requête pour l'exécuter

Précédent | Sommaire | Suivant
ibase_pconnect | Niveau supérieur | ibase_query


ibase_query

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_query -- Exécute une requête sur une base iBase

Description

resource ibase_query ( [resource link_identifier, string query [, int bind_args]] )

ibase_query() exécute la requête query
sur une base Interbase, et retourne un identifiant de résultat,
à utiliser avec ibase_fetch_row(),
ibase_free_result() et/ou ibase_free_query().
ibase_query() retourne FALSE si la requête
échoue.

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

?>

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.

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

Voir aussi
ibase_errmsg(),
ibase_fetch_row(),
ibase_fetch_object() et
ibase_free_result().

Précédent | Sommaire | Suivant
ibase_prepare | Niveau supérieur | ibase_restore


ibase_restore

(PHP 5)

ibase_restore -- Restaure une sauvegarde de base de données Interbase

Description

mixed ibase_restore ( resource service_handle, string source_file, string dest_db [, int options [, bool verbose]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ibase_query | Niveau supérieur | ibase_rollback_ret


ibase_rollback_ret

(PHP 5)

ibase_rollback_ret -- Annule une transaction sans la refermer

Description

bool ibase_rollback_ret ( [resource 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_identifier est un identifiant de connexion, la transaction par défaut de cette connexion sera annulée. Si l'argument link_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. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ibase_restore | Niveau supérieur | ibase_rollback


ibase_rollback

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_rollback -- Annule une transaction iBase

Description

bool ibase_rollback ( [resource 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_identifier est un identifiant de transaction, celle-ci sera annulée. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ibase_rollback_ret | Niveau supérieur | ibase_server_info


ibase_server_info

(PHP 5)

ibase_server_info -- Demande des informations sur le serveur Interbase

Description

string ibase_server_info ( resource service_handle, int action )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ibase_rollback | Niveau supérieur | ibase_service_attach


ibase_service_attach

(PHP 5)

ibase_service_attach -- Connexion au service de gestion Interbase

Description

resource ibase_service_attach ( string host, string dba_username, string dba_password )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ibase_server_info | Niveau supérieur | ibase_service_detach


ibase_service_detach

(PHP 5)

ibase_service_detach -- Déconnexion du service de gestion Interbase

Description

bool ibase_service_detach ( resource service_handle )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ibase_service_attach | Niveau supérieur | ibase_set_event_handler


ibase_set_event_handler

(PHP 5)

ibase_set_event_handler -- Enregistre une fonction de callback sur un événement iBase

Description

resource ibase_set_event_handler ( callback event_handler, string event_name1 [, string event_name2 [, string ...]] )

resource ibase_set_event_handler ( resource connection, callback event_handler, string event_name1 [, string event_name2 [, string ...]] )

ibase_set_event_handler() enregistre la fonction utilisateur PHP event_handler en tant que gestionnaire d'événements pour les événements spécifiés par event_name1, event_name2... La fonction event_handler callback est 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 callback 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.

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

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

Voir aussi ibase_free_event_handler() et ibase_wait_event().

Précédent | Sommaire | Suivant
ibase_service_detach | Niveau supérieur | ibase_timefmt


ibase_timefmt

(PHP 3 >= 3.0.6, PHP 4)

ibase_timefmt -- Fixe le format de date pour les prochaines requêtes

Description

int ibase_timefmt ( string format [, int columntype] )

ibase_timefmt() fixe le format des colonnes de type date, heure et timestamp retournées par les requêtes. En interne, les colonnes sont formatées par la fonction C strftime() : reportez-vous à sa documentation pour connaître la structure de la chaîne de format. columntype est une des constantes suivantes : IBASE_TIMESTAMP, IBASE_DATE ou IBASE_TIME. Si elle est omise, la valeur par défaut est IBASE_TIMESTAMP, pour compatibilité ascendante.

Exemple 1. Exemple avec ibase_timefmt()

<?php
/* Les colonnes TIME de InterBase 6 seront retournées avec
 * la forme '05 heures 37 minutes'. */
ibase_timefmt("%H heures %M minutes", IBASE_TIME);
?>

Vous pouvez aussi modifier les formats par défaut avec les directives PHP ibase.timestampformat, ibase.dateformat et ibase.timeformat.

Note : Cette fonction a été supprimée de PHP 5, utilisez ini_set() à la place.

Précédent | Sommaire | Suivant
ibase_set_event_handler | Niveau supérieur | ibase_trans


ibase_trans

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_trans -- Prépare une transaction iBase

Description

resource ibase_trans ( [int trans_args [, resource link_identifier]] )

ibase_trans() prépare une transaction sur la connexion InterBase link_identifier.

trans_args peut être une combinaison des constantes suivantes : IBASE_READ, IBASE_WRITE, IBASE_COMMITED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT et IBASE_NOWAIT.

Note : Le comportement de cette fonction a changé depuis PHP 5.0.0. 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 : Dans les versions 5.0.0 de PHP et suivantes, 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().

Précédent | Sommaire | Suivant
ibase_timefmt | Niveau supérieur | ibase_wait_event


ibase_wait_event

(PHP 5)

ibase_wait_event -- Attend un événement iBase

Description

string ibase_wait_event ( string event_name1 [, string event_name2 [, string ...]] )

string ibase_wait_event ( resource connection, string event_name1 [, string event_name2 [, string ...]] )

ibase_wait_event() suspend l'exécution du script jusqu'à ce que l'un des événements spécifiés par event_name1, event_name2, ... 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.

Voir aussi ibase_set_event_handler() et ibase_free_event_handler().

Précédent | Sommaire | Suivant
ibase_trans | Niveau supérieur | Fonctions Firebird/Interbase (PDO_FIREBIRD)


db2_autocommit

(PECL)

db2_autocommit -- Retourne ou modifie l'état AUTOCOMMIT de la connexion à la base de données

Description

mixed db2_autocommit ( resource connection [, bool value] )

Modifie ou lit le comportement de AUTOCOMMIT de la connexion spécifiée.

Liste de paramètres

connection

Une variable de connexion à une base de données valide retournée par db2_connect() ou db2_pconnect().

value

Une des constantes suivantes :

DB2_AUTOCOMMIT_OFF

Désactive AUTOCOMMIT.

DB2_AUTOCOMMIT_ON

Active AUTOCOMMIT.

Valeurs de retour

Lorsque db2_autocommit() reçoit seulement connection comme paramètre, la fonction retourne un entier représentant l'état courant de AUTOCOMMIT de la connexion fournie. Une valeur de 0 signifie que AUTOCOMMIT est désactivé, tandis qu'une valeur de 1 signifie que AUTOCOMMIT est activé.

Lorsque db2_autocommit() reçoit les deux paramètres connection et autocommit, la fonction essaie de modifier l'état AUTOCOMMIT à l'état autocommit de la connexion fournie. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Récupération de la valeur de AUTOCOMMIT pour une connexion

Dans l'exemple suivant, une connexion qui a été initialisée avec l'état AUTOCOMMIT désactivé est testé avec la fonction db2_autocommit().

<?php
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);
$ac = db2_autocommit($conn);
if ($ac == 0) {
    print "$ac -- AUTOCOMMIT est désactivé.";
} else {
    print "$ac -- AUTOCOMMIT est activé.";
}
?>

L'exemple ci-dessus va afficher :

0 -- AUTOCOMMIT est désactivé.

Exemple 2. Modification de la valeur de AUTOCOMMIT pour une connexion

Dans l'exemple suivant, une connexion qui a été préalablement initialisée avec l'état AUTOCOMMIT désactivé a son comportement changé lors de l'activation de l'état AUTOCOMMIT.

<?php
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);

// Active AUTOCOMMIT
$rc = db2_autocommit($conn, DB2_AUTOCOMMIT_ON);
if ($rc) {
    print "Activation AUTOCOMMIT réussie.\n";
}

// Vérification de l'état AUTOCOMMIT
$ac = db2_autocommit($conn);
if ($ac == 0) {
    print "$ac -- AUTOCOMMIT est désactivé.";
} else {
    print "$ac -- AUTOCOMMIT est activé.";
}
?>

L'exemple ci-dessus va afficher :

Activation AUTOCOMMIT réussie.
1 -- AUTOCOMMIT est activé.

Voir aussi

db2_connect()
db2_pconnect()

Précédent | Sommaire | Suivant
Fonctions IBM DB2, Cloudscape et Apache Derby | Niveau supérieur | db2_bind_param


db2_bind_param

(PECL)

db2_bind_param -- Associe une variable PHP à un paramètre d'une requête SQL

Description

bool db2_bind_param ( resource stmt, int parameter-number, string variable-name [, int parameter-type [, int data-type [, int precision [, int scale]]]] )

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 un surdébit 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.

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, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
db2_autocommit | Niveau supérieur | db2_client_info


db2_close

(PECL)

db2_close -- Ferme une connexion de base de données

Description

bool db2_close ( resource connection )

Cette fonction ferme la connexion client DB2 initialisée avec db2_connect() et libère les ressources correspondantes du serveur de base de données.

Si vous essayez de fermer une connexion client DB2 persistante initialisée avec db2_pconnect(), la requête de fermeture est ignorée et la connexion client DB2 persistante reste disponible pour de prochains appels.

Liste de paramètres

connection

Spécifie une connexion client DB2 active.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
db2_client_info | Niveau supérieur | db2_column_privileges


db2_column_privileges

(PECL)

db2_column_privileges -- Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table

Description

resource db2_column_privileges ( resource connection [, string qualifier [, string schema [, string table-name [, string column-name]]]] )

Retourne un jeu de résultats listant les colonnes et ses privilèges d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Pour concorder avec tous les schémas, passez NULL ou une chaîne vide.

table-name

Le nom de la table. Pour obtenir toutes les tables dans la base de données, passez NULL ou une chaîne vide.

column-name

Le nom de la colonne. Pour obtenir toutes les colonnes de la table, passez NULL ou une chaîne vide.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrivent les privilèges des colonnes concordant avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne | Description
TABLE_CAT | Nom du catalogue. La valeur est NULL si la table ne possède pas de catalogue.
TABLE_SCHEM | Nom du schéma.
TABLE_NAME | Nom de la table.
COLUMN_NAME | Nom de la colonne.
GRANTOR | ID d'autorisation de l'utilisateur qui a donné le privilège.
GRANTEE | ID d'autorisation de l'utilisateur à qui le privilège a été donné.
PRIVILEGE | Le privilège pour la colonne.
IS_GRANTABLE | Si GRANTEE est permis pour donner ce privilège à d'autres utilisateurs.

Voir aussi

db2_columns()
db2_foreign_keys()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_special_columns()
db2_statistics()
db2_table_privileges()
db2_tables()

Précédent | Sommaire | Suivant
db2_close | Niveau supérieur | db2_columns


db2_columns

(PECL)

db2_columns -- Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table

Description

resource db2_columns ( resource connection [, string qualifier [, string schema [, string table-name [, string column-name]]]] )

Retourne un jeu de résultats listant les colonnes et ses métadonnées d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Pour concorder avec tous les schémas, passez '%'.

table-name

Le nom de la table. Pour obtenir toutes les tables dans la base de données, passez NULL ou une chaîne vide.

column-name

Le nom de la colonne. Pour obtenir toutes les colonnes de la table, passez NULL ou une chaîne vide.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrivent les privilèges des colonnes concordant avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne | Description
TABLE_CAT | Nom du catalogue. La valeur est NULL si la table ne possède pas de catalogue.
TABLE_SCHEM | Nom du schéma.
TABLE_NAME | Nom de la table.
COLUMN_NAME | Nom de la colonne.
DATA_TYPE | Le type de données SQL pour la colonne, représenté comme un entier.
TYPE_NAME | Une chaîne représentant le type de données pour la colonne.
COLUMN_SIZE | Un entier représentant la grandeur de la colonne.
BUFFER_LENGTH | Nombre d'octets maximaux nécessaires pour enregistrer des données de cette colonne.
DECIMAL_DIGITS | L'échelle de la colonne ou NULL où l'échelle n'est pas applicable.
NUM_PREC_RADIX | Un entier pouvant être 10 (représentant un type de données numérique exact), 2 (représentant un type de données numériques approximé) ou NULL (représentant un type de données pour lequel la base n'est pas applicable).
NULLABLE | Un entier représentant si la colonne peut être nulle ou pas.
REMARKS | Description de la colonne.
COLUMN_DEF | Valeur par défaut de la colonne.
SQL_DATA_TYPE | Un entier représentant la grandeur de la colonne.
SQL_DATETIME_SUB | Retourne un entier représentant un code de sous-type datetime ou NULL si les types de données SQL n'appliquent pas.
CHAR_OCTET_LENGTH | Grandeur maximale en octets pour les type 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()
db2_foreign_keys()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_special_columns()
db2_statistics()
db2_table_privileges()
db2_tables()

Précédent | Sommaire | Suivant
db2_column_privileges | Niveau supérieur | db2_commit


db2_commit

(PECL)

db2_commit -- Valide la transaction

Description

bool db2_commit ( resource connection )

Envoie une une requête en cours sur la ressource de connexion spécifiée et commence une nouvelle transaction. Les applications PHP ont normalement pour valeur par défaut AUTOCOMMIT d'activé, alors db2_commit() n'est pas nécessaire tant que AUTOCOMMIT n'est pas désactivée pour la ressource de connexion.

Note : Si la ressource de connexion spécifiée est persistante, toutes les transactions en cours pour toutes les applications qui utilisent cette connexion persistante seront validées. Pour cette raison, les connexions persistantes ne sont pas recommandées pour les applications qui nécessitent des transactions.

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, FALSE en cas d'échec.

Voir aussi

db2_autocommit()
db2_rollback()

Précédent | Sommaire | Suivant
db2_columns | Niveau supérieur | db2_conn_error


db2_conn_error

(PECL)

db2_conn_error -- Retourne une chaîne contenant la valeur de SQLSTATE retournée par la dernière tentative de connexion

Description

string db2_conn_error ( [resource connection] )

db2_conn_error() retourne la valeur de SQLSTATE représentant la raison pour laquelle la dernière tentative de connexion à la base de données a échouée. Lorsque db2_connect() retourne FALSE en cas d'une tentative de connexion échouée, ne passez aucun paramètre à db2_conn_error() pour obtenir la valeur de SQLSTATE.

Si par contre la connexion était réussie mais est devenue invalide avec le temps, vous pouvez passer le paramètre de connexion connection pour obtenir la valeur de SQLSTATE pour la connexion spécifique.

Pour comprendre les valeurs de SQLSTATE, vous pouvez taper la commande suivante dans le processeur de ligne de commandes de DB2 : db2 '? sqlstate-value'. Vous pouvez aussi appeler la fonction db2_conn_errormsg() pour obtenir un message d'erreur explicite ainsi que la valeur de SQLCODE associée.

Liste de paramètres

connection

Une ressource de connexion associée à la connexion qui a préalablement été réussie, mais qui est devenue invalide avec le temps.

Valeurs de retour

Retourne la valeur de SQLSTATE résultant d'une mauvaise tentative de connexion. Retourne une chaîne vide s'il n'y a pas d'erreur associée avec la dernière tentative de connexion.

Exemples

Exemple 1. Récupération de la valeur de SQLSTATE pour une tentative de connexion échouée

L'exemple suivant montre comment retourner une valeur de SQLSTATE après un passage forcé d'un paramètre invalide à la fonction db2_connect().

<?php
$conn = db2_connect('mauvaisnom', 'mauvaisutilisateur', 'mauvaismotdepasse');
if (!$conn) {
    print "Valeur de SQLSTATE : " . db2_conn_error();
}
?>

L'exemple ci-dessus va afficher :

Valeur de SQLSTATE : 08001

Voir aussi

db2_conn_errormsg()
db2_connect()
db2_stmt_error()
db2_stmt_errormsg()

Précédent | Sommaire | Suivant
db2_commit | Niveau supérieur | db2_conn_errormsg


db2_conn_errormsg

(PECL)

db2_conn_errormsg -- Retourne le dernier message d'erreur de connexion ainsi que la valeur de SQLCODE

Description

string db2_conn_errormsg ( [resource connection] )

db2_conn_errormsg() retourne un message d'erreur et la valeur de SQLCODE représentant la raison pour laquelle la dernière tentative de connexion à la base de données a échouée. Lorsque db2_connect() retourne FALSE en cas d'une tentative de connexion échouée, ne passez aucun paramètre à db2_conn_errormsg() pour obtenir le message d'erreur et la valeur de SQLCODE.

Si par contre la connexion était réussie mais est devenue invalide avec le temps, vous pouvez passer le paramètre de connexion connection pour obtenir le message d'erreur et la valeur de SQLCODE pour la connexion spécifique.

Liste de paramètres

connection

Une ressource de connexion associée à la connexion qui a préalablement été réussie, mais qui est devenue invalide avec le temps.

Valeurs de retour

Retourne une chaîne contenant le message d'erreur et la valeur de SQLCODE résultant d'une mauvaise tentative de connexion. Retourne une chaîne vide s'il n'y a pas d'erreur associée avec la dernière tentative de connexion.

Exemples

Exemple 1. Récupération du message d'erreur retourné par une tentative de connexion échouée

L'exemple suivant montre comment retourner un message d'erreur ainsi que la valeur de SQLCODE après un passage forcé d'un paramètre invalide à la fonction db2_connect(). db2_connect().

<?php
$conn = db2_connect('mauvaisnom', 'mauvaisutilisateur', 'mauvaismotdepasse');
if (!$conn) {
    print db2_conn_errormsg();
}
?>

L'exemple ci-dessus va afficher :

[IBM][CLI Driver] SQL1013N  The database alias name
or database name "MAUVAISNOM" could not be found.  SQLSTATE=42705
 SQLCODE=-1013

Voir aussi

db2_conn_error()
db2_connect()
db2_stmt_error()
db2_stmt_errormsg()

Précédent | Sommaire | Suivant
db2_conn_error | Niveau supérieur | db2_connect


db2_connect

(PECL)

db2_connect -- Retourne une connexion à une base de données

Description

resource db2_connect ( string database, string username, string password [, array options] )

Crée une nouvelle connexion à une base de données IBM DB2 Universal Database, IBM Cloudscape ou Apache Derby.

Liste de paramètres

database

Pour une connexion cataloguée de la base de données, database représente l'alias de la base de données dans le catalogue client DB2

Pour une connexion non cataloguée de la base de données, database représente une chaîne complète de connexion qui est dans le format suivant : 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

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.

Les nouvelles options suivantes i5/OS sont disponibles depuis la version 1.5.1 de ibm_db2. Note : les anciennes versions de ibm_db2 ne supportent pas ces nouvelles options.

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. 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érialisables. 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

SQL_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 est 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.

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

Voir aussi

db2_close()
db2_pconnect()

Précédent | Sommaire | Suivant
db2_conn_errormsg | Niveau supérieur | db2_cursor_type


db2_cursor_type

(PECL)

db2_cursor_type -- Retourne le type de curseur utilisé par une ressource

Description

int db2_cursor_type ( resource stmt )

Retourne le type de curseur utilisé par une ressource. Utilisez cette fonction pour déterminer si vous travaillez avec un curseur à avancement seul ou un curseur flottant.

Liste de paramètres

stmt

Une ressource valide.

Valeurs de retour

Retourne DB2_FORWARD_ONLY si la ressource utilise un curseur à avance seul ou DB2_SCROLLABLE si la ressource utilise un curseur flottant.

Voir aussi

db2_prepare()

Précédent | Sommaire | Suivant
db2_connect | Niveau supérieur | db2_exec


db2_exec

(PECL)

db2_exec -- Exécute une requête SQL directement

Description

resource db2_exec ( resource connection, string statement [, array options] )

Exécute une requête SQL directement.

Si vous prévoyez intercaler des variables PHP dans la requête SQL, vous devez comprendre que c'est l'une des plus communes failles de sécurité. Considérez qu'il faut appeler la fonction db2_prepare() pour préparer une requête SQL qui contient des marqueurs pour des variables d'entrée. Ensuite, vous pouvez appeler la fonction db2_execute() pour passer les valeurs d'entrée et ainsi éviter les attaques par injections SQL.

Si vous prévoyez appeler à plusieurs reprises la même requête SQL avec des paramètres différents, considérez qu'il est préférable d'appeler la fonction db2_prepare() et db2_execute() pour permettre au serveur de base de données de réutiliser son plan d'accès et ainsi augmenter l'efficacité de votre accès à la base de données.

Liste de paramètres

connection

Une variable ressource de connexion valide retournée par db2_connect() ou db2_pconnect().

statement

Une requête SQL. La requête ne peut contenir de marqueur.

options

Un tableau associatif contenant les options de la requête. Vous pouvez utiliser ce paramètre pour demander un curseur flottant sur les serveurs de base de données qui supportent cette fonctionnalité.

cursor

La valeur DB2_FORWARD_ONLY demande un curseur d'avancement seul pour cette requête SQL. Cette valeur est le type par défaut pour un curseur et est supportée par tous les serveurs de base de données. C'est aussi beaucoup plus rapide qu'un curseur flottant.

La valeur DB2_SCROLLABLE demande un curseur flottant pour cette requête SQL. Ce type de curseur permet de récupérer les lignes de manière non séquentielle du serveur de base de données. Cependant, cela est supporté que par les serveurs DB2 et est beaucoup plus lent que les curseurs d'avancement seul.

Valeurs de retour

Retourne une variable ressource si la requête SQL était envoyée correctement ou FALSE si la base de données n'a pas réussi à exécuter la requête SQL.

Exemples

Exemple 1. Création d'une table avec db2_exec()

L'exemple suivant utilise la fonction db2_exec() pour envoyer un ensemble de requêtes DDL afin de créer une table.

<?php
$conn = db2_connect($database, $user, $password);

// Create the test table
$create = 'CREATE TABLE animaux (id INTEGER, race VARCHAR(32),
    nom CHAR(16), poids DECIMAL(7,2))';
$result = db2_exec($conn, $create);
if ($result) {
    print "La table a été créée correctement.\n";
}

// Remplit la table de test
$animaux = array(
    array(0, 'chat', 'Pook', 3.2),
    array(1, 'chien', 'Peaches', 12.3),
    array(2, 'cheval', 'Smarty', 350.0),
    array(3, 'cyprin doré', 'Bubbles', 0.1),
    array(4, 'perruche', 'Gizmo', 0.2),
    array(5, 'chèvre', 'Rickety Ride', 9.7),
    array(6, 'lama', 'Sweater', 150)
);

foreach ($animaux as $animal) {
    $rc = db2_exec($conn, "INSERT INTO animaux (id, race, nom, poids)
      VALUES ({$animal[0]}, '{$animal[1]}', '{$animal[2]}', {$animal[3]})");
    if ($rc) {
        print "Insertion... ";
    }
}
?>

L'exemple ci-dessus va afficher :

La table a été créée correctement.
Insertion... Insertion... Insertion... Insertion... Insertion... Insertion... Insertion...

Exemple 2. Exécution d'une requête SELECT avec un curseur flottant

L'exemple suivant montre comment demander un curseur flottant pour une requête SQL envoyée avec la fonction db2_exec().

<?php
$conn = db2_connect($database, $user, $password);
$sql = "SELECT nom FROM animaux
    WHERE poids < 10.0
    ORDER BY nom";
if ($conn) {
    require_once('prepare.inc');
    $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
    while ($row = db2_fetch_array($stmt)) {
        print "$row[0]\n";
    }
}
?>

L'exemple ci-dessus va afficher :

Bubbles
Gizmo
Pook
Rickety Ride

Exemple 3. Retourne des données XML en tant que ResultSet SQL

L'exemple suivant démontre comment utiliser des documents enregistrés dans une colonne XML en utilisant la base de données SAMPLE. En utilisant un simple SQL/XML, cet exemple retourne quelques noeuds dans un document XML dans un format ResultSet SQL dont la plupart des utilisateurs sont familiers.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" VARCHAR (50) PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) AS T
    WHERE NAME = \'Kathy Smith\'
    ';
$stmt = db2_exec($conn, $query);

while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE\n");
}
db2_close($conn);

?>

L'exemple ci-dessus va afficher :

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Exemple 4. Exécuter un "JOIN" avec des données XML

L'exemple suivant fonctionne avec des documents enregistrés dans deux colonnes différentes dans la base de données SAMPLE. Cela crée deux tables temporaires provenant des documents XML de deux différentes colonnes XML et retourne un ResultSet SQL avec les informations contenant le statut de livraison pour un client.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
    SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
    FROM
    XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" BIGINT PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) as A,
    PURCHASEORDER AS B,
    XMLTABLE (
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
    COLUMNS
    "PONUM"  BIGINT PATH \'@PoNum\',
    "STATUS" VARCHAR (50) PATH \'@Status\'
    ) as C
    WHERE A.CID = B.CUSTID AND
    B.POID = C.PONUM AND
    A.NAME = \'Kathy Smith\'
';

$stmt = db2_exec($conn, $query);

while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
}

db2_close($conn);

?>

L'exemple ci-dessus va afficher :

1001     Kathy Smith     905-555-7258     5002     Shipped

Exemple 5. Retourne des données SQL faisant partie d'un document XML large

L'exemple suivant utilise une portion des documents de PRODUCT.DESCRIPTION dans la base de données SAMPLE. Cela crée un document XML contenant la description du produit (données XML) et les informations concernant le prix (données SQL).

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
    declare boundary-space strip;
    declare default element namespace "http://posample.org";
    <promoList> {
    for $prod in $doc/product
    where $prod/description/price < 10.00
    order by $prod/description/price ascending
    return(
        <promoitem> {
        $prod,
        <startdate> {$start} </startdate>,
        <enddate> {$end} </enddate>,
        <promoprice> {$promo} </promoprice>
        } </promoitem>
    )
    } </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = \'100-100-01\'
';

$stmt = db2_exec($conn, $query);

while($row = db2_fetch_array($stmt)){
    printf("$row[0]\n");
}
db2_close($conn);

?>

L'exemple ci-dessus va afficher :

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

Voir aussi

db2_execute()
db2_prepare()

Précédent | Sommaire | Suivant
db2_cursor_type | Niveau supérieur | db2_execute


db2_execute

(PECL)

db2_execute -- Exécute une requête SQL préparée

Description

bool db2_execute ( resource stmt [, array parameters] )

db2_execute() exécute une requête SQL qui a été préparée par db2_prepare().

Si la requête SQL retourne un jeu de résultats, par exemple, une requête SELECT ou CALL à une procédure d'enregistrement retourne un ou plusieurs jeux de résultats, vous pouvez récupérer une ligne en tant que tableau à partir de la ressource stmt en utilisant db2_fetch_assoc(), db2_fetch_both() ou db2_fetch_array(). Alternativement, vous pouvez utiliser db2_fetch_row() pour déplacer le pointeur à la ligne suivante et récupérer une colonne à la fois de cette ligne avec la fonction db2_result().

Référez-vous à db2_prepare() pour une brève discussion sur les avantages de l'utilisation de db2_prepare() et db2_execute() plutôt que db2_exec().

Liste de paramètres

stmt

Une requête préparée retournée par db2_prepare().

parameters

Un tableau des paramètres d'entrée qui contient les marqueurs de variables contenus dans la requête préparée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Préparation et exécution d'une requête SQL avec des marqueurs

L'exemple suivant prépare une requête INSERT qui accepte quatre marqueurs, ensuite itère sur le tableau contenant les valeurs d'entrées qui sera passé à la fonction db2_execute().

<?php
$pet = array(0, 'chat', 'Pook', 3.2);

$insert = 'INSERT INTO animaux (id, race, nom, poids)
    VALUES (?, ?, ?, ?)';

$stmt = db2_prepare($conn, $insert);
if ($stmt) {
    $result = db2_execute($stmt, $pet);
    if ($result) {
        print "Ajout d'un nouvel animal réussi.";
    }
}
?>

L'exemple ci-dessus va afficher :

Ajout d'un nouvel animal réussi.

Exemple 2. Appel d'une procédure d'enregistrement avec un paramètre de SORTIE

L'exemple suivant prépare une requête CALL qui accepte un marqueur qui représente un paramètre de SORTIE, lie la variable PHP $my_pets au paramètre en utilisant la fonction db2_bind_param() et appelle la fonction db2_execute() pour exécuter la requête CALL. Une fois que la requête CALL a été exécutée, la valeur de $num_pets change pour réfléchir la valeur retournée par la procédure d'enregistrement pour ce paramètre de SORTIE.

<?php
$num_pets = 0;
$res = db2_prepare($conn, "CALL count_my_pets(?)");
$rc = db2_bind_param($res, 1, "num_pets", DB2_PARAM_OUT);
$rc = db2_execute($res);
print "Je possède $num_pets animaux !";
?>

L'exemple ci-dessus va afficher :

Je possède 7 animaux !

Exemple 3. Retourne des données XML en tant que ResultSet SQL

L'exemple suivant démontre comment utiliser des documents enregistrés dans une colonne XML en utilisant la base de données SAMPLE. En utilisant un simple SQL/XML, cet exemple retourne quelques noeuds dans un document XML dans un format ResultSet SQL dont la plupart des utilisateurs sont familiers.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" VARCHAR (50) PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) AS T
    WHERE NAME = ?
    ';

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if ($stmt) {
    db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE\n");
    }
}
db2_close($conn);

?>

L'exemple ci-dessus va afficher :

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Exemple 4. Exécuter un "JOIN" avec des données XML

L'exemple suivant fonctionne avec des documents enregistrés dans deux colonnes différentes dans la base de données SAMPLE. Cela crée deux tables temporaires provenant des documents XML de deux différentes colonnes XML et retourne un ResultSet SQL avec les informations contenant le statut de livraison pour un client.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
FROM
XMLTABLE(
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
COLUMNS
"CID" BIGINT PATH \'@Cid\',
"NAME" VARCHAR (50) PATH \'name\',
"PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
) as A,
PURCHASEORDER AS B,
XMLTABLE (
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
COLUMNS
"PONUM"  BIGINT PATH \'@PoNum\',
"STATUS" VARCHAR (50) PATH \'@Status\'
) as C
WHERE A.CID = B.CUSTID AND
    B.POID = C.PONUM AND
    A.NAME = ?
';

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if ($stmt) {
    db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
    }
}

db2_close($conn);

?>

L'exemple ci-dessus va afficher :

1001     Kathy Smith     905-555-7258     5002     Shipped

Exemple 5. Retourne des données SQL faisant partie d'un document XML large

L'exemple suivant utilise une portion des documents de PRODUCT.DESCRIPTION dans la base de données SAMPLE. Cela crée un document XML contenant la description du produit (données XML) et les informations concernant le prix (données SQL).

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
    declare boundary-space strip;
    declare default element namespace "http://posample.org";
    <promoList> {
    for $prod in $doc/product
    where $prod/description/price < 10.00
    order by $prod/description/price ascending
    return(
        <promoitem> {
        $prod,
        <startdate> {$start} </startdate>,
        <enddate> {$end} </enddate>,
         <promoprice> {$promo} </promoprice>
            } </promoitem>
    )
    } </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = ?
';

$stmt = db2_prepare($conn, $query);

$pid = "100-100-01";

if ($stmt) {
    db2_bind_param($stmt, 1, "pid", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_array($stmt)){
    printf("$row[0]\n");
    }
}

db2_close($conn);

?>

L'exemple ci-dessus va afficher :

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

Voir aussi

db2_exec()
db2_fetch_array()
db2_fetch_assoc()
db2_fetch_both()
db2_fetch_row()
db2_prepare()
db2_result()

Précédent | Sommaire | Suivant
db2_exec | Niveau supérieur | db2_fetch_array


db2_fetch_assoc

(PECL)

db2_fetch_assoc -- Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats

Description

array db2_fetch_assoc ( resource stmt [, int row_number] )

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 erreur PHP de type warning 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()
db2_fetch_both()
db2_fetch_object()
db2_fetch_row()
db2_result()

Précédent | Sommaire | Suivant
db2_fetch_array | Niveau supérieur | db2_fetch_both


db2_fetch_both

(PECL)

db2_fetch_both -- Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats

Description

array db2_fetch_both ( resource stmt [, int row_number] )

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 erreur PHP de type warning 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()
db2_fetch_assoc()
db2_fetch_object()
db2_fetch_row()
db2_result()

Précédent | Sommaire | Suivant
db2_fetch_assoc | Niveau supérieur | db2_fetch_object


db2_fetch_row

(PECL)

db2_fetch_row -- Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée

Description

bool db2_fetch_row ( resource stmt [, int row_number] )

Utilisez db2_fetch_row() pour itérer à travers un jeu de résultats ou pour pointer à une ligne spécifique d'un jeu de résultats si vous avez demandé un curseur flottant.

Pour obtenir des champs individuels du jeu de résultats, appelez la fonction db2_result().

Au lieu d'appeler les fonctions db2_fetch_row() et db2_result(), la plupart des applications vont appeler la fonction db2_fetch_assoc(), db2_fetch_both() ou db2_fetch_array() pour avancer le pointeur dans le jeu de résultats et retourner une ligne complète en tant que tableau.

Liste de paramètres

stmt

Une ressource stmt valide contenant le jeu de résultats.

row_number

Avec des curseurs flottants, vous pouvez demander un numéro de ligne spécifique du jeu de résultats. Les numéros des lignes commencent par l'indice 1

Valeurs de retour

Retourne TRUE si la ligne demandée existe dans le jeu de résultats. Retourne FALSE si la ligne demandée n'existe pas dans le jeu de résultats.

Exemples

Exemple 1. Itère à travers un jeu de résultats

L'exemple suivant démontre comment itérer à travers un jeu de résultats avec la fonction db2_fetch_row() et récupérer les colonnes du jeu de résultats avec db2_result().

<?php
$sql = 'SELECT nom, race FROM animaux WHERE poids < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
    $nom = db2_result($stmt, 0);
    $race = db2_result($stmt, 1);
    print "$nom $race";
}
?>

L'exemple ci-dessus va afficher :

chat Pook
cyprin doré Bubbles
perruche Gizmo
chèvre Rickety Ride

Exemple 2. Alternatives recommandées i5/OS pour db2_fetch_row/db2_result

Sur i5/OS, il est recommandé que vous utilisiez db2_fetch_both(), db2_fetch_array() ou db2_fetch_object() au lieu de db2_fetch_row()/db2_result(). En général db2_fetch_row()/db2_result() a plus de problèmes avec des types de colonne variés dans la traduction de EBCIDIC à ASCII, en incluant de possible troncature dans les applications DBCS. Vous pourriez aussi trouver une performance d'utiliser db2_fetch_both(), db2_fetch_array() et db2_fetch_object() à utiliser db2_fetch_row()/db2_result().

<?php
  $conn = db2_connect("","","");
  $sql = 'SELECT SPECIFIC_SCHEMA, SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_CREATED, ROUTINE_BODY, IN_PARMS, OUT_PARMS, INOUT_PARMS, PARAMETER_STYLE, EXTERNAL_NAME, EXTERNAL_LANGUAGE FROM QSYS2.SYSROUTINES FETCH FIRST 2 ROWS ONLY';
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_both($stmt)){
    echo "<br>db2_fetch_both {$row['SPECIFIC_NAME']} {$row['ROUTINE_CREATED']} {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_array($stmt)){
    echo "<br>db2_fetch_array {$row[1]}  {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_object($stmt)){
    echo "<br>db2_fetch_object {$row->SPECIFIC_NAME} {$row->ROUTINE_CREATED}";
  }
  db2_close($conn);
?>

L'exemple ci-dessus va afficher :

db2_fetch_both MATCH_ANIMAL 2006-08-25-17.10.23.775000 2006-08-25-17.10.23.775000
db2_fetch_both MULTIRESULTS 2006-10-17-10.11.05.308000 2006-10-17-10.11.05.308000
db2_fetch_array MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_array MULTIRESULTS 2006-10-17-10.11.05.308000
db2_fetch_object MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_object MULTIRESULTS 2006-10-17-10.11.05.308000

Voir aussi

db2_fetch_array()
db2_fetch_assoc()
db2_fetch_both()
db2_fetch_object()
db2_result()

Précédent | Sommaire | Suivant
db2_fetch_object | Niveau supérieur | db2_field_display_size


db2_field_display_size

(PECL)

db2_field_display_size -- Retourne le maximum d'octets requis pour afficher une colonne

Description

int db2_field_display_size ( resource stmt, mixed column )

Retourne le maximum d'octets requis pour afficher une colonne dans un jeu de résultats.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne une valeur entière avec le maximum d'octets requis pour afficher la colonne spécifiée. Si la colonne n'existe pas dans le jeu de résultats, db2_field_display_size() retourne FALSE.

Voir aussi

db2_field_name()
db2_field_num()
db2_field_precision()
db2_field_scale()
db2_field_type()
db2_field_width()

Précédent | Sommaire | Suivant
db2_fetch_row | Niveau supérieur | db2_field_name


db2_field_name

(PECL)

db2_field_name -- Retourne le nom de la colonne du jeu de résultats

Description

string db2_field_name ( resource stmt, mixed column )

Retourne le nom de la colonne du jeu de résultats

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne une chaîne contenant le nom de la colonne spécifiée. Si la colonne spécifiée n'existe pas dans le jeu de résultat, db2_field_name() retourne FALSE.

Voir aussi

db2_field_display_size()
db2_field_num()
db2_field_precision()
db2_field_scale()
db2_field_type()
db2_field_width()

Précédent | Sommaire | Suivant
db2_field_display_size | Niveau supérieur | db2_field_num


db2_field_num

(PECL)

db2_field_num -- Retourne la position du nom de la colonne du jeu de résultats

Description

int db2_field_num ( resource stmt, mixed column )

Retourne la position du nom de la colonne du jeu de résultats

Liste de paramètres

stmt

Spécifie une ressource contenant un jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne un entier contenant la position commençant à 0 du nom de la colonne dans le jeu de résultats. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_num() retourne FALSE.

Voir aussi

db2_field_display_size()
db2_field_name()
db2_field_precision()
db2_field_scale()
db2_field_type()
db2_field_width()

Précédent | Sommaire | Suivant
db2_field_name | Niveau supérieur | db2_field_precision


db2_field_precision

(PECL)

db2_field_precision -- Retourne la précision de la colonne indiquée du jeu de résultats

Description

int db2_field_precision ( resource stmt, mixed column )

Retourne la précision de la colonne indiquée du jeu de résultats.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne un entier contenant la précision de la colonne spécifiée. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_precision() retourne FALSE.

Voir aussi

db2_field_display_size()
db2_field_name()
db2_field_num()
db2_field_scale()
db2_field_type()
db2_field_width()

Précédent | Sommaire | Suivant
db2_field_num | Niveau supérieur | db2_field_scale


db2_field_scale

(PECL)

db2_field_scale -- Retourne l'échelle de la colonne indiquée du jeu de résultats

Description

int db2_field_scale ( resource stmt, mixed column )

Retourne l'échelle de la colonne indiquée du jeu de résultats.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne un entier contenant l'échelle de la colonne spécifiée. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_scale() retourne FALSE.

Voir aussi

db2_field_display_size()
db2_field_name()
db2_field_num()
db2_field_precision()
db2_field_type()
db2_field_width()

Précédent | Sommaire | Suivant
db2_field_precision | Niveau supérieur | db2_field_type


db2_field_type

(PECL)

db2_field_type -- Retourne le type de donnée de la colonne indiquée du jeu de résultats

Description

string db2_field_type ( resource stmt, mixed column )

Retourne le type de donnée de la colonne indiquée du jeu de résultats.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne une chaîne contenant le type de données défini de la colonne spécifiée. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_type() retourne FALSE.

Voir aussi

db2_field_display_size()
db2_field_name()
db2_field_num()
db2_field_precision()
db2_field_scale()
db2_field_width()

Précédent | Sommaire | Suivant
db2_field_scale | Niveau supérieur | db2_field_width


db2_field_width

(PECL)

db2_field_width -- Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats

Description

int db2_field_width ( resource stmt, mixed column )

Retourne la largeur de la valeur courante de la colonne indiquée du jeu de résultats. Cela est la largeur maximale de la colonne pour un type de données de longueur fixe ou la largeur actuelle de la colonne pour un type de données de longueur fixe.

Liste de paramètres

stmt

Spécifie la ressource contenant le jeu de résultats.

column

Spécifie la colonne dans le jeu de résultats. Cela peut être un entier commençant à la position 0 représentant le numéro de la colonne ou une chaîne contenant le nom de la colonne.

Valeurs de retour

Retourne un entier contenant la largeur du caractère spécifié ou de la colonne de type binaire dans le jeu de résultats. Si la colonne spécifiée n'existe pas dans le jeu de résultats, db2_field_width() retourne FALSE.

Voir aussi

db2_field_display_size()
db2_field_name()
db2_field_num()
db2_field_precision()
db2_field_scale()
db2_field_type()

Précédent | Sommaire | Suivant
db2_field_type | Niveau supérieur | db2_foreign_keys


db2_foreign_keys

(PECL)

db2_foreign_keys -- Retourne un jeu de résultats listant les clés étrangères d'une table

Description

resource db2_foreign_keys ( resource connection, string qualifier, string schema, string table-name )

Retourne un jeu de résultats listant les clés étrangères d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Si schema est NULL, db2_foreign_keys() fait concorder le schéma pour la connexion courante.

table-name

Le nom de la table.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant des lignes décrivant les clés étrangères à la table spécifiée. Le jeu de résultats est composé des colonnes suivantes :

Nom de la colonne | Description
PKTABLE_CAT | Nom du catalogue de la table contenant la clé primaire. La valeur est NULL si la table n'a pas de catalogue.
PKTABLE_SCHEM | Nom du schéma de la table contenant la clé primaire.
PKTABLE_NAME | Nom de la table contenant la clé primaire.
PKCOLUMN_NAME | Nom de la colonne contenant la clé primaire.
FKTABLE_CAT | Nom du catalogue de la table contenant la clé étrangère. La valeur est NULL si la table n'a pas de catalogue.
FKTABLE_SCHEM | Nom du schéma de la table contenant la clé étrangère.
FKTABLE_NAME | Nom de la table contenant la clé étrangère.
FKCOLUMN_NAME | Nom de la colonne contenant la clé étrangère.
KEY_SEQ | Position commençant à 1 de la colonne dans la clé.
UPDATE_RULE | Entier représentant l'action appliquée à la clé étrangère lorsque une opération est de type UPDATE.
DELETE_RULE | Entier représentant l'action appliquée à la clé étrangère lorsque une opération est de type DELETE.
FK_NAME | Nom de la clé étrangère.
PK_NAME | Nom de la clé primaire.
DEFERRABILITY | Un entier représentant si le mode différé de la clé étrangère est SQL_INITIALLY_DEFERRED, SQL_INITIALLY_IMMEDIATE ou SQL_NOT_DEFERRABLE.

Voir aussi

db2_column_privileges()
db2_columns()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_special_columns()
db2_statistics()
db2_table_privileges()
db2_tables()

Précédent | Sommaire | Suivant
db2_field_width | Niveau supérieur | db2_free_result


db2_free_result

(PECL)

db2_free_result -- Libère la mémoire associée à un jeu de résultats

Description

bool db2_free_result ( resource stmt )

Libère la mémoire des ressources du système et de base de données associée du jeu de résultats. Ces ressources sont libérées implicitement lorsqu'un script se termine, mais vous pouvez appeler db2_free_result() pour libérer explicitement les ressources avant la fin du script.

Liste de paramètres

stmt

Une ressource valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

db2_free_stmt()

Précédent | Sommaire | Suivant
db2_foreign_keys | Niveau supérieur | db2_free_stmt


db2_free_stmt

(PECL)

db2_free_stmt -- Libère la mémoire associée à la ressource indiquée

Description

bool db2_free_stmt ( resource stmt )

Libère la mémoire des ressources du système et de base de données associée au jeu de résultats. Ces ressources sont libérées implicitement lorsqu'un script se termine, mais vous pouvez appeler db_free_stmt() pour libérer explicitement les ressources avant la fin du script.

Liste de paramètres

stmt

Une ressource valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

db2_free_result()

Précédent | Sommaire | Suivant
db2_free_result | Niveau supérieur | db2_next_result


db2_next_result

(PECL)

db2_next_result -- Demande le prochain jeu de résultats de la ressource indiquée

Description

resource db2_next_result ( resource stmt )

Une procédure d'enregistrement peut retourner aucun ou plusieurs jeux de résultats. Vous devez gérer le premier jeu de résultats de la même manière que vous gèreriez 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           "
}

Précédent | Sommaire | Suivant
db2_free_stmt | Niveau supérieur | db2_num_fields


db2_num_fields

(PECL)

db2_num_fields -- Retourne le nombre de champs contenu du jeu de résultats

Description

int db2_num_fields ( resource stmt )

Retourne le nombre de champs contenus dans le jeu de résultats. Cette fonction est très utile lorsque vous gérez des jeux de résultats retourné par des requêtes générées dynamiquement ou pour des jeux de résultats retournés par des procédures d'enregistrement, là où votre application ne peut faire autrement pour obtenir et utiliser ces résultats.

Liste de paramètres

stmt

Une ressource valide contenant un jeu de résultats.

Valeurs de retour

Retourne un entier représentant le nombre de champs dans le jeu de résultats associé avec la ressource spécifiée. Retourne FALSE si la ressource n'est pas valide.

Exemples

Exemple 1. Exemple avec db2_num_fields()

L'exemple suivant démontre comment obtenir le nombre de champs retournés dans le jeu de résultats.

<?php

$sql = "SELECT id, nom, race, poids FROM animaux ORDER BY race";
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, $sql);
$columns = db2_num_fields($stmt);

echo "Il y a {$columns} colonne dans le jeu de résultats.";
?>

L'exemple ci-dessus va afficher :

Il y a 4 colonnes dans le jeu de résultats.

Voir aussi

db2_execute()
db2_field_display_size()
db2_field_name()
db2_field_num()
db2_field_precision()
db2_field_scale()
db2_field_type()
db2_field_width()

Précédent | Sommaire | Suivant
db2_next_result | Niveau supérieur | db2_num_rows


db2_num_rows

(PECL)

db2_num_rows -- Retourne le nombre de lignes affectées par une requête SQL

Description

int db2_num_rows ( resource stmt )

Retourne le nombre de lignes supprimées, ajoutées, mises à jour par une requête SQL.

Afin de déterminer le nombre de lignes que retournera une requête SELECT, utilisez la requête SELECT COUNT(*) avec les mêmes attributs lorsque vous avez effectué la requête SELECT et la récupération des valeurs.

Si la logique de votre application vérifie le nombre de ligne retournée par une requête SELECT et effectue le saut si le nombre de ligne est 0, modifiez votre application pour tenter de retourner la première ligne avec db2_fetch_assoc(), db2_fetch_both(), db2_fetch_array() ou db2_fetch_row(), et effectuez le saut si la fonction retourne FALSE.

Note : Si vous envoyez une requête SELECT avec un curseur flottant, db2_num_rows() retournera le nombre de lignes retournées par la requête SELECT. Cependant, le temps système associé avec des curseurs flottants dégrade considérablement les performances de votre application, alors si cela est la seule raison pour laquelle vous utilisez des curseurs flottants, vous devriez utiliser des curseurs à avancement seul et de plus appeler SELECT COUNT(*) ou compter sur les valeurs de retour des fonctions de type boolean pour obtenir l'équivalent de fonctionnalité avec une performance bien meilleure.

Liste de paramètres

stmt

Une ressource stmt valide contenant le jeu de résultats.

Valeurs de retour

Retourne le nombre de lignes affectées par la dernière requête SQL envoyée par une fonction qui exécute les requêtes SQL.

Précédent | Sommaire | Suivant
db2_num_fields | Niveau supérieur | db2_pconnect


db2_pconnect

(PECL)

db2_pconnect -- Retourne une connexion persistante à une base de données

Description

resource db2_pconnect ( string database, string username, string password [, array options] )

Retourne une connexion persistante à une base de données IBM DB2 Universal Database, IBM Cloudscape ou Apache Derby. Pour plus d'informations sur les connexions persistantes, référez-vous à Chapitre 41.

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

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.

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

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.

Voir aussi

db2_connect()

Précédent | Sommaire | Suivant
db2_num_rows | Niveau supérieur | db2_prepare


db2_prepare

(PECL)

db2_prepare -- Prépare une requête SQL à être exécutée

Description

resource db2_prepare ( resource connection, string statement [, array options] )

db2_prepare() crée une requête SQL préparée qui peut inclure aucun ou plusieurs marqueurs (caractères ?) représentant les paramètres d'entrée, sortie ou d'entrée/sortie. Vous pouvez passer des paramètres à la requête préparée en utilisant la fonction db2_bind_param(), si vous avez que des entrées, vous pouvez utiliser db2_execute().

Il y a trois principaux avantages d'utiliser les requêtes préparées dans votre application :

  • Performance : lorsque vous préparez une requête, le serveur de base de données crée un plan d'accès optimisé pour la récupération des données avec la requête. Par la suite, l'envoi de la requête préparée avec db2_execute() permet à la requête de réutiliser le plan d'accès et ainsi d'éviter les surcharges du processeurs à chaque envoi de requête qui créerait dynamiquement un nouveau plan d'accès.

  • Sécurité : lorsque vous préparez une requête, vous pouvez inclure des marqueurs pour les valeurs d'entrées. Lorsque vous exécutez une requête préparée avec ces valeurs d'entrées, le serveur de base de données vérifie chaque valeur d'entrée pour s'assurer que les types concordent avec la définition de la colonne ou du paramètre de définition.

  • Fonctionnalité avancée : Les marqueurs vous permettent non seulement de passer des valeurs d'entrées dans les requêtes SQL préparées, mais permettent aussi de récupérer des paramètres de SORTIE et d'ENTRÉE/SORTIE des procédures d'enregistrement en utilisant la fonction db2_bind_param().

Liste de paramètres

connection

Une variable ressource de connexion valide retournée par db2_connect() ou db2_pconnect().

statement

Une requête SQL qui peut contenir un ou plusieurs marqueurs.

options

Un tableau associatif contenant les options de la requête. Vous pouvez utiliser ce paramètre pour demander un curseur flottant sur les serveurs de base de données qui supportent cette fonctionnalité.

cursor

La valeur DB2_FORWARD_ONLY demande un curseur d'avancement seul pour cette requête SQL. Cette valeur est le type par défaut pour un curseur et est supportée par tous les serveurs de base de données. C'est aussi beaucoup plus rapide qu'un curseur flottant.

La valeur DB2_SCROLLABLE demande un curseur flottant pour cette requête SQL. Ce type de curseur permet de récupérer les lignes de manière non séquentielle du serveur de base de données. Cependant, cela est supporté que par les serveurs DB2 et est beaucoup plus lent que les curseurs d'avancement seul.

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()
db2_execute()
db2_stmt_error()
db2_stmt_errormsg()

Précédent | Sommaire | Suivant
db2_pconnect | Niveau supérieur | db2_primary_keys


db2_primary_keys

(PECL)

db2_primary_keys -- Retourne un jeu de résultats listant les clés d'une table

Description

resource db2_primary_keys ( resource connection, string qualifier, string schema, string table-name )

Retourne un jeu de résultats listant les clés d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Si schema est NULL, db2_primary_keys() fait concorder le schéma pour la connexion courante.

table-name

Le nom de la table.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant des lignes décrivant les clés primaires à la table spécifiée. Le jeu de résultats est composé des colonnes suivantes :

Nom de la colonne | Description
TABLE_CAT | Nom du catalogue de la table contenant la clé primaire. La valeur est NULL si la table n'a pas de catalogue.
TABLE_SCHEM | Nom du schéma de la table contenant la clé primaire.
TABLE_NAME | Nom de la table contenant la clé primaire.
COLUMN_NAME | Nom de la colonne contenant la clé primaire.
KEY_SEQ | Position commençant à 1 de la colonne dans la clé.
PK_NAME | Nom de la clé primaire.

Voir aussi

db2_column_privileges()
db2_columns()
db2_foreign_keys()
db2_procedure_columns()
db2_procedures()
db2_special_columns()
db2_statistics()
db2_table_privileges()
db2_tables()

Précédent | Sommaire | Suivant
db2_prepare | Niveau supérieur | db2_procedure_columns


db2_procedure_columns

(PECL)

db2_procedure_columns -- Retourne un jeu de résultats listant les paramètres de procédure d'enregistrement

Description

resource db2_procedure_columns ( resource connection, string qualifier, string schema, string procedure, string parameter )

Retourne un jeu de résultats listant les paramètres pour une ou plusieurs procédures d'enregistrement.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

procedure

Le nom de la procédure. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

parameter

Le nom du paramètre. Ce paramètre accepte un paramètre de recherche de forme contenant _ et % en tant que mot clé. Si ce paramètre est %null;, tous les paramètres pour la procédure d'enregistrement spécifiée sont retournés.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrient les paramètres pour les procédures d'enregistrement qui concordent avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne | Description
PROCEDURE_CAT | Nom du catalogue que contient la table. La valeur est NULL si la table n'a pas de catalogue.
PROCEDURE_SCHEM | Nom du schéma que contient la procédure d'enregistrement.
PROCEDURE_NAME | Nom de la procédure.
COLUMN_NAME | Nom du paramètre.
COLUMN_TYPE

Un entier représentant le type du paramètre :

Valeur de retour | Type de paramètre
1 (SQL_PARAM_INPUT) | Paramètre d'entrée (IN).
2 (SQL_PARAM_INPUT_OUTPUT) | Paramètre d'entrée/sortie (INOUT).
3 (SQL_PARAM_OUTPUT) | Paramètre d'entrée (OUT).

DATA_TYPE | Le type de données SQL pour le paramètre représenté en tant qu'entier.
TYPE_NAME | Une chaîne représentant le type de données pour le paramètre.
COLUMN_SIZE | Un entier représentant la grandeur du paramètre.
BUFFER_LENGTH | Nombre d'octets maximaux nécessaires pour enregistrer des données de ce paramètre.
DECIMAL_DIGITS | L'échelle du paramètre ou NULL où l'échelle n'est pas applicable.
NUM_PREC_RADIX | Un entier pouvant être 10 (représentant un type de données numérique exact), 2 (représentant 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 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 type 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()
db2_columns()
db2_foreign_keys()
db2_primary_keys()
db2_procedures()
db2_special_columns()
db2_statistics()
db2_table_privileges()
db2_tables()

Précédent | Sommaire | Suivant
db2_primary_keys | Niveau supérieur | db2_procedures


db2_procedures

(PECL)

db2_procedures -- Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données

Description

resource db2_procedures ( resource connection, string qualifier, string schema, string procedure )

Retourne un jeu de résultats listant les procédures d'enregistrement enregistrées dans la base de données.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

procedure

Le nom de la procédure. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrient les procédures enregistrées qui concordent avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne | Description
PROCEDURE_CAT | Nom du catalogue que contient la table. La valeur est NULL si la table n'a pas de catalogue.
PROCEDURE_SCHEM | Nom du schéma que contient la procédure d'enregistrement.
PROCEDURE_NAME | Nom de la procédure.
NUM_INPUT_PARAMS | Nombre de paramètres d'entrée (IN) pour la procédure d'enregistrement.
NUM_OUTPUT_PARAMS | Nombre de paramètres de sortie (OUT) pour la procédure d'enregistrement.
NUM_RESULT_SETS | Nombre de jeux de résultats retournés par la procédure d'enregistrement.
REMARKS | Commentaires concernant la procédure d'enregistrement.
PROCEDURE_TYPE | Retourne toujours 1, indiquant que la procédure d'enregistrement ne retourne aucune valeur de retour.

Voir aussi

db2_column_privileges()
db2_columns()
db2_foreign_keys()
db2_primary_keys()
db2_procedure_columns()
db2_special_columns()
db2_statistics()
db2_table_privileges()
db2_tables()

Précédent | Sommaire | Suivant
db2_procedure_columns | Niveau supérieur | db2_result


db2_result

(PECL)

db2_result -- Retourne une colonne d'une ligne d'un jeu de résultats

Description

mixed db2_result ( resource stmt, mixed column )

Utilisez db2_result() pour retourner une valeur d'une colonne spécifique dans la ligne courante d'un jeu de résultats. Vous devez appeler db2_fetch_row() avant d'appeler db2_result() pour enregistrer les valeurs pointées du jeu de résultats.

Liste de paramètres

stmt

Une ressource stmt valide.

column

Un tableau d'entier commençant avec l'indice 0 qui pointe vers les champs du jeu de résultats ou une chaîne représentant le nom de la colonne.

Valeurs de retour

Retourne la valeur du champ demandé si le champ existe dans le jeu de résultats. Retourne NULL si le champ n'existe pas et retourne une erreur de type warning.

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()
db2_fetch_assoc()
db2_fetch_both()
db2_fetch_object()
db2_fetch_row()

Précédent | Sommaire | Suivant
db2_procedures | Niveau supérieur | db2_rollback


db2_rollback

(PECL)

db2_rollback -- Annule une transaction

Description

bool db2_rollback ( resource connection )

Annule une transaction en cours sur la connexion spécifiée et commence une nouvelle transaction. Les applications PHP ont normalement pour valeur par défaut AUTOCOMMIT d'activé, alors db2_commit() n'est pas nécessaire tant que AUTOCOMMIT n'est pas désactivée pour la ressource de connexion.

Note : Si la ressource de connexion spécifiée est persistante, toutes les transactions en cours pour toutes les applications qui utilisent cette connexion persistante seront validées. Pour cette raison, les connexions persistantes ne sont pas recommandées pour les applications qui nécessitent des transactions.

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, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
db2_result | Niveau supérieur | db2_server_info


db2_special_columns

(PECL)

db2_special_columns -- Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table

Description

resource db2_special_columns ( resource connection, string qualifier, string schema, string table_name, int scope )

Retourne un jeu de résultats listant les identifiants uniques des lignes d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

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()
db2_columns()
db2_foreign_keys()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_statistics()
db2_table_privileges()
db2_tables()

Précédent | Sommaire | Suivant
db2_set_option | Niveau supérieur | db2_statistics


db2_statistics

(PECL)

db2_statistics -- Retourne un jeu de résultats listant les index et statistiques d'une table

Description

resource db2_statistics ( resource connection, string qualifier, string schema, string table-name, bool unique )

Retourne un jeu de résultats listant les index et statistiques d'une table.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables visées. Si le paramètre est NULL, les statistiques et les index sont retournés pour le schéma de l'utilisateur en cours.

table_name

Le nom de la table.

unique

Un entier représentant le type d'information à retourner.

0

Retourne seulement les informations pour les index uniques de la table.

1

Retourne les informations pour tous les index de la table.

Valeurs de retour

Ce que la fonction retourne, premièrement lors de succès, ensuite lors d'échec. Voyez aussi l'entité Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
db2_columns()
db2_foreign_keys()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_special_columns()
db2_table_privileges()
db2_tables()

Précédent | Sommaire | Suivant
db2_special_columns | Niveau supérieur | db2_stmt_error


db2_stmt_error

(PECL)

db2_stmt_error -- Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL

Description

string db2_stmt_error ( [resource stmt] )

Retourne une chaîne contenant la valeur de SQLSTATE retournée par une requête SQL.

Si vous ne passez pas de ressource en tant qu'argument à la fonction db2_stmt_error(), elle retournera le message d'erreur associé avec le dernier essai de retour d'une requête SQL, par exemple, provenant de db2_prepare() ou db2_exec().

Pour comprendre les valeurs de SQLSTATE, vous pouvez taper la commande suivante dans le processeur de ligne de commandes de DB2 : db2 '? sqlstate-value'. Vous pouvez aussi appeler la fonction db2_conn_errormsg() pour obtenir un message d'erreur explicite ainsi que la valeur de SQLCODE associée.

Liste de paramètres

stmt

Une ressource valide.

Valeurs de retour

Retourne une chaîne contenant la valeur de SQLSTATE.

Voir aussi

db2_conn_error()
db2_conn_errormsg()
db2_stmt_errormsg()

Précédent | Sommaire | Suivant
db2_statistics | Niveau supérieur | db2_stmt_errormsg


db2_stmt_errormsg

(PECL)

db2_stmt_errormsg -- Retourne le dernier message d'erreur d'une requête SQL

Description

string db2_stmt_errormsg ( [resource stmt] )

Retourne le dernier message d'erreur d'une requête SQL.

Si vous ne passez pas de ressource en tant qu'argument à la fonction db2_stmt_error_msg(), 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()
db2_conn_errormsg()
db2_stmt_error()

Précédent | Sommaire | Suivant
db2_stmt_error | Niveau supérieur | db2_table_privileges


db2_table_privileges

(PECL)

db2_table_privileges -- Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données

Description

resource db2_table_privileges ( resource connection [, string qualifier [, string schema [, string table_name]]] )

Retourne un jeu de résultats listant les tables et leurs privilèges qui leur sont associées d'une base de données.

Liste de paramètres

connection

Une connexion valide à une base de données IBM DB2, Cloudscape ou Apache Derby.

qualifier

Un qualificatif pour les bases de données DB2 qui fonctionnent sur les serveurs OS/390 ou z/OS. Pour les autres bases de données, passez NULL ou une chaîne vide.

schema

Le schéma qui contient les tables. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

table-name

Le nom de la table. Le paramètre accepte les formes contenant _ et % en tant que mot clé.

Valeurs de retour

Retourne une ressource avec le jeu de résultats contenant les lignes qui décrient les privilèges pour la table qui concordent avec les paramètres spécifiés. Les lignes sont composées des colonnes suivantes :

Nom de la colonne | Description
TABLE_CAT | Nom du catalogue que contient la table. La valeur est NULL si la table n'a pas de catalogue.
TABLE_SCHEM | Nom du schéma que contient la table.
TABLE_NAME | Nom de la table.
GRANTOR | ID d'autorisation de l'utilisateur qui a donné le privilège.
GRANTEE | ID d'autorisation de l'utilisateur à qui le privilège a été donné.
PRIVILEGE | Le privilège qui a été donné. Cela peut être un de ces mots suivants : ALTER, CONTROL, DELETE, INDEX, INSERT, REFERENCES, SELECT ou UPDATE.
IS_GRANTABLE | Une chaîne contenant "YES" ou "NO" indiquant si l'utilisateur à qui le privilège a été donné peut donner le privilège aux autres utilisateurs.

Voir aussi

db2_column_privileges()
db2_columns()
db2_foreign_keys()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_special_columns()
db2_statistics()
db2_tables()

Précédent | Sommaire | Suivant
db2_stmt_errormsg | Niveau supérieur | db2_tables


db2_tables

(PECL)

db2_tables -- Retourne un jeu de résultats listant les tables et leurs métadatas qui leur sont associées d'une base de données

Description

resource db2_tables ( resource connection [, string qualifier [, string schema [, string table-name [, string table-type]]]] )

Retourne un jeu de résultats listant les tables et leurs métadatas 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()
db2_columns()
db2_foreign_keys()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_special_columns()
db2_statistics()
db2_table_privileges()

Précédent | Sommaire | Suivant
db2_table_privileges | Niveau supérieur | ICAP


ICAP

Manuel PHP
Précédent Suivant

LXI. ICAP

Introduction

Note : L'extension Icap a été supprimée de PHP. Le module icap et la bibliothèque ne sont plus supportés. Si vous voulez utiliser ces fonctions de calendrier avec PHP, utilisez plutôt mcal .

Pré-requis

La bibliothèque icap doit être installée. Elle n'est plus supportée, ni disponible.

Installation

Pour faire fonctionner cette extension, vous devez compiler PHP avec l'option --with-icap.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

icap_open() retourne un flux ICAP.

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
icap_close -- Ferme le flux ICAP
icap_create_calendar -- Crée un nouveau calendrier
icap_delete_calendar -- Supprime un calendrier
icap_delete_event -- Efface un événement dans un agenda ICAP
icap_fetch_event -- Recherche un événement dans le calendrier
icap_list_alarms -- Retourne une liste d'événements qui ont une alarme prévue à une date
icap_list_events -- Retourne une liste d'événements entre deux dates
icap_open -- Ouvre une connexion ICAP
icap_rename_calendar -- Renomme un calendrier
icap_reopen -- Réouvre un flux ICAP pour un nouveau calendrier
icap_snooze -- Eteind l'alarme d'un événement
icap_store_event -- Enregistre un événement dans un agenda ICAP

Précédent | Sommaire | Suivant
db2_tables | Niveau supérieur | icap_close


icap_close

(no version information, might be only in CVS)

icap_close -- Ferme le flux ICAP

Description

int icap_close ( int icap_stream [, int flags] )

icap_close() ferme le flux ICAP icap_stream.

Précédent | Sommaire | Suivant
ICAP | Niveau supérieur | icap_create_calendar


icap_create_calendar

(PHP 4 <= 4.2.3)

icap_create_calendar -- Crée un nouveau calendrier

Description

string icap_create_calendar ( int stream_id, string calendar )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
icap_close | Niveau supérieur | icap_delete_calendar


icap_delete_calendar

(PHP 4 <= 4.2.3)

icap_delete_calendar -- Supprime un calendrier

Description

string icap_delete_calendar ( int stream_id, string calendar )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
icap_create_calendar | Niveau supérieur | icap_delete_event


icap_delete_event

(PHP 4 <= 4.2.3)

icap_delete_event -- Efface un événement dans un agenda ICAP

Description

string icap_delete_event ( int stream_id, int uid )

icap_delete_event() efface l'événement d'identifiant uid.

icap_delete_event() retourne TRUE.

Précédent | Sommaire | Suivant
icap_delete_calendar | Niveau supérieur | icap_fetch_event


icap_fetch_event

(PHP 4 <= 4.2.3)

icap_fetch_event -- Recherche un événement dans le calendrier

Description

int icap_fetch_event ( int stream_id, int event_id [, int options] )

icap_fetch_event() recherche un évenement dans le calendrier spécifié par id.

icap_fetch_event() retourne un objet événement dont les attributs sont :

  • int id - ID de l'événement.

  • int public - TRUE si l'événement est public, FALSE s'il est privé.

  • string category - Catégorie de l'événement.

  • string title - Titre de l'événement.

  • string description - Description de l'événement.

  • int alarm - Nombre de minutes avant d'envoyer une alerte pour cet événement.

  • object start - Objet contenant une date et une heure.

  • object end - Objet contenant une date et une heure.

Tous les objets de date et heure sont construits comme suit :

  • int year - année

  • int month - mois

  • int mday - jour du mois

  • int hour - heure

  • int min - minutes

  • int sec - secondes

Précédent | Sommaire | Suivant
icap_delete_event | Niveau supérieur | icap_list_alarms


icap_list_alarms

(PHP 4 <= 4.2.3)

icap_list_alarms -- Retourne une liste d'événements qui ont une alarme prévue à une date

Description

int icap_list_alarms ( int stream_id, array date, array time )

icap_list_alarms() retourne un tableau d'identifiants, qui ont une alarme de prévue à la date alarm_date.

icap_list_alarms() prend une date, et retourne un tableau d'identifiants.

Tous les objets de date et heure sont construits comme suit :

  • int year - année

  • int month - mois

  • int mday - jour du mois

  • int hour - heure

  • int min - minutes

  • int sec - secondes

Précédent | Sommaire | Suivant
icap_fetch_event | Niveau supérieur | icap_list_events


icap_list_events

(PHP 4 <= 4.2.3)

icap_list_events -- Retourne une liste d'événements entre deux dates

Description

array icap_list_events ( int stream_id, int begin_date [, int end_date] )

icap_list_events() retourne un tableau d'identifiants d'événéments compris entre deux dates.

icap_list_events() prend une date de début et une date de fin. Un tableau d'identifiants est retourné.

Tous les objets de date et heure sont construits comme suit :

  • int year : année

  • int month : mois

  • int mday : jour du mois

  • int hour : heure

  • int min : minutes

  • int sec : secondes

Précédent | Sommaire | Suivant
icap_list_alarms | Niveau supérieur | icap_open


icap_open

(PHP 4 <= 4.2.3)

icap_open -- Ouvre une connexion ICAP

Description

resource icap_open ( string calendar, string username, string password, string options )

icap_open() retourne un flux ICAP en cas de succès, FALSE en cas d'erreur.

icap_open() ouvre une connexion ICAP au serveur de calendrier calendar. Si le paramètre options est spécifié, passe options à la boîte aux lettres (????).

Précédent | Sommaire | Suivant
icap_list_events | Niveau supérieur | icap_rename_calendar


icap_rename_calendar

(PHP 4 <= 4.2.3)

icap_rename_calendar -- Renomme un calendrier

Description

string icap_rename_calendar ( int stream_id, string old_name, string new_name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
icap_open | Niveau supérieur | icap_reopen


icap_reopen

(PHP 4 <= 4.2.3)

icap_reopen -- Réouvre un flux ICAP pour un nouveau calendrier

Description

int icap_reopen ( int stream_id, string calendar [, int options] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
icap_rename_calendar | Niveau supérieur | icap_snooze


icap_snooze

(PHP 4 <= 4.2.3)

icap_snooze -- Eteind l'alarme d'un événement

Description

string icap_snooze ( int stream_id, int uid )

icap_snooze() éteind l'alarme de l'événement identifié par l'UID uid.

icap_snooze() retourne TRUE.

Précédent | Sommaire | Suivant
icap_reopen | Niveau supérieur | icap_store_event


icap_store_event

(PHP 4 <= 4.2.3)

icap_store_event -- Enregistre un événement dans un agenda ICAP

Description

string icap_store_event ( int stream_id, object event )

icap_store_event() enregistre un événement dans un calendrier ICAP.

Un événement est un objet avec les attributs suivants :

  • int public - 1 si l'événement est public, 0 s'il est privé.

  • string category - Catégorie de l'événement.

  • string title - Titre de l'événement.

  • string description - Description de l'événement.

  • int alarm - Nombre de minutes avant d'envoyer une alerte pour cet événement.

  • object start - Objet contenant une date et une heure.

  • object end - Objet contenant une date et une heure.

Tous les objets de date et heure sont construits comme suit :

  • int year : année

  • int month : mois

  • int mday : jour du mois

  • int hour : heure

  • int min : minutes

  • int sec : secondes

icap_store_event() retourne TRUE en cas de succès, et FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
icap_snooze | Niveau supérieur | Iconv


Iconv

Manuel PHP
Précédent Suivant

LXII. Iconv

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 iconv() sur votre système. Notez que cette fonction ne fonctionne pas toujours bien sur tous les systèmes. Dans ce cas, ce serait une bonne idée d'installer la bibliothèque GNU libiconv.

Depuis PHP 5.0.0, cette extension dispose de beaucoup de fonctions utiles qui peuvent vous aider à écrire des scripts multilangues. Regardez les sections suivantes pour voir des 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

Pour pouvoir l'utiliser, vous devez compiler PHP avec l'option --with-iconv[=DIR].

Note aux utilisateurs Win32 : Afin d'activer ce module dans l'environnement Windows®, vous devez copier la bibliothèque iconv.dll ou iconv-1.3.dll (pour les versions antérieures à 4.2.1) qui est fournie avec le package PHP/Win32 dans un dossier spécifié par la variable d'environnement PATH ou dans un des dossiers systèmes de votre installation de Windows®.

Ce module fait parti de PHP depuis PHP 4, donc les bibliothèques iconv.dll et php_iconv.dll ne sont plus nécessaires.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
iconv.input_encoding | "ISO-8859-1" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
iconv.output_encoding | "ISO-8859-1" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
iconv.internal_encoding | "ISO-8859-1" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

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.

Note : L'option de configuration iconv.input_encoding n'est actuellement pas utilisée.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Depuis PHP 4.3.0, il est possible d'identifier durant l'exécution, la version de la bibliothèque iconv que vous utilisez.

Tableau 2. Constantes iconv

Constante | Type | Description
ICONV_IMPL | string | Le nom de la bibliothèque
ICONV_VERSION | string | La version de la bibliothèque

Note : La programmation de scripts dépendant de versions spécifiques, avec ces constantes, est fortement déconseillée.

Depuis PHP 5.0.0, les contantes suivantes sont également disponibles :

Tableau 3. Constantes iconv disponibles depuis PHP 5.0.0

Constante | Type | Description
ICONV_MIME_DECODE_STRICT | entier | Un masque utilisé par iconv_mime_decode()
ICONV_MIME_DECODE_CONTINUE_ON_ERROR | entier | Un masque utilisé pour iconv_mime_decode()

Voir aussi

Voir aussi les fonctions GNU Recode.

Table des matières
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 occurence de needle dans haystack
iconv_strrpos -- Trouve la position de la dernière occurence d'un élément dans une chaîne
iconv_substr -- Retourne une partie de chaîne iconv
iconv -- Convertit une chaîne dans un jeu de caractères
ob_iconv_handler -- Gestionnaire de sortie pour maîtriser le jeu de caractères de sortie

Précédent | Sommaire | Suivant
icap_store_event | Niveau supérieur | iconv_get_encoding


iconv_get_encoding

(PHP 4 >= 4.0.5, PHP 5)

iconv_get_encoding -- Lit le jeu de caractères courant

Description

mixed iconv_get_encoding ( [string type] )

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

Précédent | Sommaire | Suivant
Iconv | Niveau supérieur | iconv_mime_decode_headers


iconv_mime_decode_headers

(PHP 5)

iconv_mime_decode_headers -- Décode des en-têtes MIME multiples

Description

array iconv_mime_decode_headers ( string encoded_headers [, int mode [, string charset]] )

Retourne un tableau associatif qui contient les en-têtes MIME spécifiés par le paramètre encoded_headers, ou bien FALSE si une erreur survient durant le décodage.

Chaque clé du tableau retourné contient un nom d'en-tête distinct, et sa valeur correspondante. Si plusieurs champs ont le même nom, iconv_mime_decode_headers() fera de ce champ un tableau indexé, avec les valeurs dans leur ordre d'apparence.

Liste de paramètres

encoded_headers

Les en-têtes encodés, sous la forme d'une chaîne de caractères.

mode

mode détermine le comportement de la fonction, si iconv_mime_decode_headers() rencontre un en-tête MIME malformé.

Tableau 1. Masques acceptables pour la fonction iconv_mime_decode_headers()

Valeur | Constante | Description
1 | ICONV_MIME_DECODE_STRICT | Si utilisés, les en-têtes sont décodés en respectant scrupuleusement le standard de la RFC2047. Cette option est désactivée par défaut, car il y a de nombreux clients mails qui ne suivent pas ces spécifications et qui ne produisent pas d'en-têtes MIME corrects.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | Si cette option est activée, iconv_mime_decode_headers() tente d'ignorer les erreurs de syntaxe et continue de traiter l'en-tête donné.

charset

Le paramètre optionnel charset spécifie le jeu de caractères utilisé pour représenter le résultat. S'il est omis, le jeu définit dans le fichier php.ini iconv.internal_encoding est utilisé.

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()
mb_decode_mimeheader()
imap_mime_header_decode()
imap_base64()
imap_qprint()

Précédent | Sommaire | Suivant
iconv_get_encoding | Niveau supérieur | iconv_mime_decode


iconv_mime_decode

(PHP 5)

iconv_mime_decode -- Décode un champ d'en-tête MIME

Description

string iconv_mime_decode ( string encoded_header [, int mode [, string charset]] )

Décode un champ d'en-tête MIME.

Liste de paramètres

encoded_header

L'en-tête encodé, sous la forme d'une chaîne de caractères.

mode

mode détermine une alternative dans le cas où iconv_mime_decode() rencontre un champ d'en-tête MIME mal formé.

Tableau 1. Masques acceptables pour la fonction iconv_mime_decode()

Valeur | Constante | Description
1 | ICONV_MIME_DECODE_STRICT | Si défini, l'en-tête correspondante sera décodé en suivant strictement le standard RFC2047. Cette option est désactivé par défaut car il existe beaucoups de mauvais mail user agents qui ne suivent pas ce standard et donc, produisent de mauvaises 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ée même si des erreurs apparaissent.

charset

Le paramètre par défaut charset spécifie le jeux de caractères a utilisé pour représenter le résultat. S'il est omis, iconv.internal_encoding sera utilisé.

Valeurs de retour

Retourne un champs MIME en cas de succès, ou FALSE si une erreur survient durant le décodage.

Exemples

Exemple 1. Exemple avec iconv_mime_decode()

<?php
// Ceci affichera : "Subject: Prüfung Prüfung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
                       0, "ISO-8859-1");
?>

Voir aussi

iconv_mime_decode_headers()
mb_decode_mimeheader()
imap_mime_header_decode()
imap_base64()
imap_qprint()

Précédent | Sommaire | Suivant
iconv_mime_decode_headers | Niveau supérieur | iconv_mime_encode


iconv_mime_encode

(PHP 5)

iconv_mime_encode -- Construit un en-tête MIME avec les champs field_name et field_value

Description

string iconv_mime_encode ( string field_name, string field_value [, array preferences] )

Compose et retourne une chaîne de caractères qui représente un champs 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 champs.

Liste de paramètres

field_name

Le nom du champs.

field_value

La valeur du champs.

preferences

Vous pouvez contrôler le comportement de la fonction iconv_mime_encode() en spécifiant un tableau associatif contenant la configuration des éléments dans le paramètre preferences. La liste des éléments supportés par iconv_mime_encode() figure ci-dessous. Notez que les noms des éléments sont sensibles à la casse.

Tableau 1. Liste des éléments supportés par iconv_mime_encode()

Elément | Type | Description | Valeur par défaut | Exemple
scheme | boolean | Spécifie la méthode d'encodage d'un champ. Les valeurs possibles sont "B" ou "Q", où "B" signifie que le shé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. S'il est omis, la même valeur que input-charset sera utilisée. | iconv.internal_encoding | UTF-8
line-length | integer | Spécifie la longueur maximale de chaque en-tête. Si l'en-tête est plus grande que la longueur défini par ce paramètre, l'en-tête résultant sera un en-tête composée de plusieurs lignes conformément au standard RFC2822 - Internet Message Format. S'il est omis, la longueur maximale sera fixée à 76 caractères. | 76 | 996
line-break-chars | string | Spécifie les caractères de fin de ligne. S'il est omis, la valeur par défaut sera "\r\n" (CR LF). Notez que ce paramètre est toujours représenté comme une chaîne ASCII au regard de la valeur du paramètre input-charset. | \r\n | \n

Valeurs de retour

Retourne un champs MIME en cas de succès, ou FALSE si une erreur survient durant l'encodage.

Exemples

Exemple 1. Exemple avec iconv_mime_encode()

<?php
$preferences = array(
    "input-charset" => "ISO-8859-1",
    "output-charset" => "UTF-8",
    "line-length" => 76,
    "line-break-chars" => "\n"
);
$preferences["scheme"] = "Q";
// This yields "Subject: =?UTF-8?Q?Pr=C3=BCfung_Pr=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()
mb_encode_mimeheader()
imap_8bit()

Précédent | Sommaire | Suivant
iconv_mime_decode | Niveau supérieur | iconv_set_encoding


iconv_set_encoding

(PHP 4 >= 4.0.5, PHP 5)

iconv_set_encoding -- Modifie le jeu courant de caractères d'encodage

Description

bool iconv_set_encoding ( string type, string charset )

Modifie le jeu de caractères courant, et remplace la valeur courante du paramétre type par charset.

Liste de paramètres

type

Les valeurs possibles de type sont :

input_encoding
output_encoding
internal_encoding

charset

Le jeu de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
iconv_mime_encode | Niveau supérieur | iconv_strlen


iconv_strlen

(PHP 5)

iconv_strlen -- Retourne le nombre de caractères d'une chaîne

Description

int iconv_strlen ( string str [, string charset] )

À l'opposée de strlen(), la valeur de retour de iconv_strlen() est le nombre de caractères faisant partie de la séquence de bytes str, ce qui n'est pas toujours la même chose que la taille en bytes de la chaîne de caractères.

Liste de paramètres

str

La chaîne de caractères.

charset

Si charset n'est pas passé en paramètre, str est supposée être encodée en iconv.internal_encoding.

Valeurs de retour

Retourne le nombre de caractères de la chaîne str, sous la forme d'un entier.

Voir aussi

strlen()
mb_strlen()

Précédent | Sommaire | Suivant
iconv_set_encoding | Niveau supérieur | iconv_strpos


iconv_strpos

(PHP 5)

iconv_strpos -- Trouve la position de la première occurence de needle dans haystack

Description

int iconv_strpos ( string haystack, string needle [, int offset [, string charset]] )

Trouve la position de la première occurence de needle dans haystack.

À l'opposé de strpos(), la valeur retournée par iconv_strpos() est le nombre de caractères se trouvant avant needle, plutôt que la position en octets où needle a été trouvé. Les caractères sont comptés en se basant sur le jeux de caractères spécifié par charset.

Liste de paramètres

haystack

La chaîne de caractères entière.

needle

La chaîne de caractères à chercher.

offset

Le paramètre optionnel offset spécifie la position à partir de laquelle la recherche doit commencer.

charset

Si le paramètre charset est omis, string sera encodé en accord avec iconv.internal_encoding.

Si haystack ou needle ne sont pas des chaînes de caractères, ils sont convertis en entiers et appliqués en tant que valeur ordinale d'un caractère.

Valeurs de retour

Retourne la position numérique de la première occurence 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, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi

strpos()
iconv_strrpos()
mb_strpos()

Précédent | Sommaire | Suivant
iconv_strlen | Niveau supérieur | iconv_strrpos


iconv_strrpos

(PHP 5)

iconv_strrpos -- Trouve la position de la dernière occurence d'un élément dans une chaîne

Description

int iconv_strrpos ( string haystack, string needle [, string charset] )

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

Liste de paramètres

haystack

La chaîne de caractères entière.

needle

La chaîne de caractères cherchée.

charset

Si le paramètre optionnel charset est omis, string est supposé être encodé en iconv.internal_encoding.

Si haystack ou needle ne sont pas des chaînes de caractères, ils seront convertis en chaîne de caractères et reconnus comme code ASCII de chaque caractères.

Valeurs de retour

Retourne la position numérique de la dernière occurence de needle dans haystack. Les caractères sont comptés en tenant compte du jeu de caractères spécifié charset.

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, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi

strrpos()
iconv_strpos()
mb_strrpos()

Précédent | Sommaire | Suivant
iconv_strpos | Niveau supérieur | iconv_substr


iconv_substr

(PHP 5)

iconv_substr -- Retourne une partie de chaîne iconv

Description

string iconv_substr ( string str, int offset [, int length [, string charset]] )

Retourne le segment de str défini par start et length.

Liste de paramètres

str

La chaîne de caractères originale.

offset

Si offset n'est pas négatif, iconv_substr() retourne le segment de str en commençant au offset ème caractères, en comptant à partir de zéro.

Si offset est négatif, iconv_substr() retourne le segment en commant à la position offset caractères et en allant vers la fin de la chaîne de caractères str.

length

If length is given and is positive, the return value will contain at most length characters of the portion that begins at offset (depending on the length of string).

Si length est passé et négatif, iconv_substr() coupe la portion externe de str depuis le offset ème caractère jusqu'au length ème caractères depuis la fin de la chaîne de caractères. Dans le cas où offset est également négatif, la position de départ est calculée en amont, suivant la règle expliquée plus haut.

charset

Si charset est omis, string est supposé avoir été encodée en iconv.internal_encoding.

Notez que offset et length sont toujours considérés comme représentant une position calculée sur la représentation ASCII des caractères déterminés par charset, contrairement à substr() qui se base toujours sur la position par octet.

Valeurs de retour

Retourne la portion de str spécifié par les paramètres offset et length.

Si str est plus petit que offset, FALSE sera retourné.

Voir aussi

substr()
mb_substr()
mb_strcut()

Précédent | Sommaire | Suivant
iconv_strrpos | Niveau supérieur | iconv


iconv

(PHP 4 >= 4.0.5, PHP 5)

iconv -- Convertit une chaîne dans un jeu de caractères

Description

string iconv ( string in_charset, string out_charset, string str )

Convertit la chaîne str depuis le jeu de caractères in_charset vers le jeu de caractères out_charset.

Liste de paramètres

in_charset

Le jeu de caractères d'entrée.

out_charset

Le jeu de caractères de sortie.

Si vous ajoutez la chaîne //TRANSLIT au paramètre out_charset, la translittération est activée. Cela signifie que lorsqu'un caractère ne peut être représenté dans le jeu de caractères cible, il peut être représenté approximativement à partir d'un ou plusieurs caractères représentant le même caractère. Si vous ajoutez la chaîne //IGNORE, les caractères qui ne peuvent être représentés dans le jeu de caractères cible sont tout simplement ignorés. Sinon, str sera coupé à partir du premier caractère illégal rencontré.

str

La chaîne de caractères à convertir.

Valeurs de retour

Retourne la chaîne de caractères convertie ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec iconv()

<?php
echo iconv("ISO-8859-1", "UTF-8", "Ceci est un test.");
?>

Précédent | Sommaire | Suivant
iconv_substr | Niveau supérieur | ob_iconv_handler


ob_iconv_handler

(PHP 4 >= 4.0.5, PHP 5)

ob_iconv_handler -- Gestionnaire de sortie pour maîtriser le jeu de caractères de sortie

Description

string ob_iconv_handler ( string contents, int status )

Convertit la chaîne utilisant le jeu de caractères internal_encoding en une chaîne utilisant celui de output_encoding.

internal_encoding et output_encoding doivent être définis par iconv_set_encoding() ou dans le fichier de configuration php.ini.

Liste de paramètres

Voir la documentation sur la fonction ob_start() pour plus d'informations sur les paramètres de cette fonction.

Valeurs de retour

Voir la documentation sur la fonction ob_start() pour plus d'informations sur les valeurs retournées par cette fonction.

Exemples

Exemple 1. Exemple avec ob_iconv_handler()

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
ob_start("ob_iconv_handler"); // Commence la mise en buffer de l'affichage
?>

Voir aussi

iconv_get_encoding()
iconv_set_encoding()
output-control functions

Précédent | Sommaire | Suivant
iconv | Niveau supérieur | Fonctions ID3


Fonctions ID3

Manuel PHP
Précédent Suivant

LXIII. Fonctions ID3

Introduction

Ces fonctions vous permettent de lire et de manipuler les tags ID3. Les tags ID3 sont utilisés dans les fichiers MP3 pour sotcker le titre d'une chanson, tout comme des informations sur l'artiste, l'album, le genre, l'année et le numéro de la piste.

Depuis la version 0.2, il est également possible d'extraire des champs texte depuis des tags ID3 v2.2+.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

id3 est une partie de PECL et peut être installé en utilisant l'installeur Pear. Pour compiler PHP avec le support ID3, téléchargez le code source, mettez-le dans le dossier php-src/ext/id3 et compilez en spécifiant --enable-id3.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

La plupart des fonctions ID3 vous permettent soit de spécifier, soit de retourner un tag. Pour spécifier la version, utilisez une de ces constantes :

ID3_V1_0 (entier)

ID3_V1_0 est utilisé si vous travaillez avec des tags ID3 V1.0. Ces tags peuvent contenir les champs title, artist, album, genre, year et comment.

ID3_V1_1 (entier)

ID3_V1_1 est utilisé si vous travaillez avec des tags ID3 V1.1. Ces tags peuvent contenir tous les champs de la version 1.0 ainsi qu'un champ représentant le numéro de la piste.

ID3_V2_1 (entier)

ID3_V2_1 est utilisé si vous travaillez avec des tags ID3 V2.1.

ID3_V2_2 (entier)

ID3_V2_2 est utilisé si vous travaillez avec des tags ID3 V2.2 tags.

ID3_V2_3 (entier)

ID3_V2_3 est utilisé si vous travaillez avec des tags ID3 V2.3 tags.

ID3_V2_4 (entier)

ID3_V2_4 est utilisé si vous travaillez avec des tags ID3 V2.4 tags.

ID3_BEST (entier)

ID3_BEST est utilisé si vous voulez laisser les fonctions id3 déterminer quelle version de tags doit être utilisée.

Table des matières
id3_get_frame_long_name -- Récupère le nom long d'un champs ID3v2
id3_get_frame_short_name -- Récupère le nom court d'un champs ID3v2
id3_get_genre_id -- Récupération d'un id pour un genre
id3_get_genre_list -- Récupère toutes les valeurs possibles du genre
id3_get_genre_name -- Récupère le nom pour un id de genre
id3_get_tag -- Récupère toutes les informations stockées dans un tag ID3
id3_get_version -- Récupère la version d'un tag ID3
id3_remove_tag -- Efface un tag ID3
id3_set_tag -- Met à jour les informations stockées dans un tag ID3

Précédent | Sommaire | Suivant
ob_iconv_handler | Niveau supérieur | id3_get_frame_long_name


id3_get_frame_long_name

(PECL)

id3_get_frame_long_name -- Récupère le nom long d'un champs ID3v2

Description

string id3_get_frame_long_name ( string frameId )

id3_get_frame_long_name() retourne le nom long d'un champs ID3v2.

Liste de paramètres

frameId

Une frame ID3v2

Valeurs de retour

Retourne le nom long d'un champs ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec id3_get_frame_long_name()

<?php
$longName = id3_get_frame_long_name("TOLY");
echo $longName;
?>

L'exemple ci-dessus va afficher :

Original lyricist(s)/text writer(s)

Voir aussi

id3_get_frame_short_name()

Précédent | Sommaire | Suivant
Fonctions ID3 | Niveau supérieur | id3_get_frame_short_name


id3_get_frame_short_name

(PECL)

id3_get_frame_short_name -- Récupère le nom court d'un champs ID3v2

Description

string id3_get_frame_short_name ( string frameId )

id3_get_frame_short_name() retourne le nom court d'un champs ID3v2.

Liste de paramètres

frameId

Une frame ID3v2

Valeurs de retour

Retourne le nom court d'un champs ou FALSE si une erreur survient.

Les valeurs retournées par id3_get_short_name() sont utilisées dans le tableau retourné par id3_get_tag().

Exemples

Exemple 1. Exemple avec id3_get_frame_short_name()

<?php
$shortName = id3_get_frame_short_name("TOLY");
echo $shortName;
?>

L'exemple ci-dessus va afficher :

originalLyricist

Voir aussi

id3_get_frame_long_name()

Précédent | Sommaire | Suivant
id3_get_frame_long_name | Niveau supérieur | id3_get_genre_id


id3_get_genre_id

(PECL)

id3_get_genre_id -- Récupération d'un id pour un genre

Description

int id3_get_genre_id ( string genre )

id3_get_genre_id() retourne l'id pour un genre.

Liste de paramètres

genre

Un entier compris entre 0 et 147

Valeurs de retour

L'id du genre ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec id3_get_genre_id()

<?php
$id = id3_get_genre_id("Alternative");
echo $id;
?>

L'exemple ci-dessus va afficher :

20

Voir aussi

id3_get_genre_name()
id3_get_genre_list()

Précédent | Sommaire | Suivant
id3_get_frame_short_name | Niveau supérieur | id3_get_genre_list


id3_get_genre_list

(PECL)

id3_get_genre_list -- Récupère toutes les valeurs possibles du genre

Description

array id3_get_genre_list ( void )

id3_get_genre_list() retourne un tableau contenant tous les genres possibles pouvant être stockés dans un tag ID3. La liste a été créée par Eric Kemp et, plus tard, complétée par WinAmp.

Cette fonction est pratique pour fournir à vos utilisateurs une liste de genres depuis laquelle ils peuvent en choisir un. Lorsque vous mettez à jour vos tags ID3, vous devez également spécifier un genre sous forme d'entier entre 0-147.

Valeurs de retour

Retourne un tableau contenant tous les genres possibles qui peuvent être stockés dans une balise ID3.

Exemples

Exemple 1. Exemple avec id3_get_genre_list()

<?php
$genres = id3_get_genre_list();
print_r($genres);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Blues
    [1] => Classic Rock
    [2] => Country
    [3] => Dance
    [4] => Disco
    [5] => Funk
    [6] => Grunge
    [7] => Hip-Hop
    [8] => Jazz
    [9] => Metal
    [10] => New Age
    [11] => Oldies
    [12] => Other
    [13] => Pop
    [14] => R&B
    [15] => Rap
    [16] => Reggae
    [17] => Rock
    [18] => Techno
    [19] => Industrial
    [20] => Alternative
    [21] => Ska
    [22] => Death Metal
    [23] => Pranks
    [24] => Soundtrack
    [25] => Euro-Techno
    [26] => Ambient
    [27] => Trip-Hop
    [28] => Vocal
    [29] => Jazz+Funk
    [30] => Fusion
    [31] => Trance
    [32] => Classical
    [33] => Instrumental
    [34] => Acid
    [35] => House
    [36] => Game
    [37] => Sound Clip
    [38] => Gospel
    [39] => Noise
    [40] => Alternative Rock
    [41] => Bass
    [42] => Soul
    [43] => Punk
    [44] => Space
    [45] => Meditative
    [46] => Instrumental Pop
    [47] => Instrumental Rock
    [48] => Ethnic
    [49] => Gothic
    [50] => Darkwave
    [51] => Techno-Industrial
    [52] => Electronic
    [53] => Pop-Folk
    [54] => Eurodance
    [55] => Dream
    [56] => Southern Rock
    [57] => Comedy
    [58] => Cult
    [59] => Gangsta
    [60] => Top 40
    [61] => Christian Rap
    [62] => Pop/Funk
    [63] => Jungle
    [64] => Native US
    [65] => Cabaret
    [66] => New Wave
    [67] => Psychadelic
    [68] => Rave
    [69] => Showtunes
    [70] => Trailer
    [71] => Lo-Fi
    [72] => Tribal
    [73] => Acid Punk
    [74] => Acid Jazz
    [75] => Polka
    [76] => Retro
    [77] => Musical
    [78] => Rock & Roll
    [79] => Hard Rock
    [80] => Folk
    [81] => Folk-Rock
    [82] => National Folk
    [83] => Swing
    [84] => Fast Fusion
    [85] => Bebob
    [86] => Latin
    [87] => Revival
    [88] => Celtic
    [89] => Bluegrass
    [90] => Avantgarde
    [91] => Gothic Rock
    [92] => Progressive Rock
    [93] => Psychedelic Rock
    [94] => Symphonic Rock
    [95] => Slow Rock
    [96] => Big Band
    [97] => Chorus
    [98] => Easy Listening
    [99] => Acoustic
    [100] => Humour
    [101] => Speech
    [102] => Chanson
    [103] => Opera
    [104] => Chamber Music
    [105] => Sonata
    [106] => Symphony
    [107] => Booty Bass
    [108] => Primus
    [109] => Porn Groove
    [110] => Satire
    [111] => Slow Jam
    [112] => Club
    [113] => Tango
    [114] => Samba
    [115] => Folklore
    [116] => Ballad
    [117] => Power Ballad
    [118] => Rhytmic Soul
    [119] => Freestyle
    [120] => Duet
    [121] => Punk Rock
    [122] => Drum Solo
    [123] => Acapella
    [124] => Euro-House
    [125] => Dance Hall
    [126] => Goa
    [127] => Drum & Bass
    [128] => Club-House
    [129] => Hardcore
    [130] => Terror
    [131] => Indie
    [132] => BritPop
    [133] => Negerpunk
    [134] => Polsk Punk
    [135] => Beat
    [136] => Christian Gangsta
    [137] => Heavy Metal
    [138] => Black Metal
    [139] => Crossover
    [140] => Contemporary C
    [141] => Christian Rock
    [142] => Merengue
    [143] => Salsa
    [144] => Thrash Metal
    [145] => Anime
    [146] => JPop
    [147] => SynthPop
)

Voir aussi

id3_get_genre_name()
id3_get_genre_id()

Précédent | Sommaire | Suivant
id3_get_genre_id | Niveau supérieur | id3_get_genre_name


id3_get_genre_name

(PECL)

id3_get_genre_name -- Récupère le nom pour un id de genre

Description

string id3_get_genre_name ( int genre_id )

id3_get_genre_name() retourne le nom pour un id de genre spécifié.

Liste de paramètres

genre_id

Un entier, compris entre 0 et 147

Valeurs de retour

Retourne le nom sous la forme d'une chaîne de caractères.

Exemples

Exemple 1. Exemple avec id3_get_genre_name()

<?php
$genre = id3_get_genre_name(20);
echo $genre;
?>

L'exemple ci-dessus va afficher :

Alternative

Voir aussi

id3_get_genre_list()
id3_get_genre_id()

Précédent | Sommaire | Suivant
id3_get_genre_list | Niveau supérieur | id3_get_tag


id3_get_tag

(PECL)

id3_get_tag -- Récupère toutes les informations stockées dans un tag ID3

Description

array id3_get_tag ( string filename [, int version] )

id3_get_tag() est utilisée pour récupérer toutes les informations stockées dans un tag ID3 d'un fichier spécifique.

Liste de paramètres

filename

Le chemin vers le fichier MP3

Au lieu de passer un nom de fichier, vous pouvez aussi passer un flux de ressource valide.

version

Vous permet de spécifier la version du tag, bien que les fichiers MP3 doivent contenir à la fois les versions 1.x et les versions 2.x.

Depuis la version 0.2, id3_get_tag() supporte également les tags ID3 version 2.2, 2.3 et 2.4. Pour extraire les informations de ces tags, passez une des constantes ID3_V2_2, ID3_V2_3 ou ID3_V2_4 en tant que second paramètre. Les tags ID3 v2.x peuvent contenir beaucoup plus d'informations sur le fichier MP3 que les versions ID3 v1.x.

Valeurs de retour

Retourne un tableau associatif avec diverses clés, comme : title, artist, ..

La clé genre doit contenir un entier compris entre 0 et 147. Vous pouvez utiliser la fonction id3_get_genre_name() pour convertir ce nombre en une chaîne lisible humainement.

Exemples

Exemple 1. Exemple avec id3_get_tag()

<?php
$tag = id3_get_tag( "path/to/example.mp3" );
print_r($tag);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [title] => DN-38416
    [artist] => Re:\Legion
    [album] => Reflections
    [year] => 2004
    [genre] => 19
)

Exemple 2. Exemple avec id3_get_tag()

<?php
$tag = id3_get_tag( "path/to/example2.mp3", ID3_V2_3 );
print_r($tag);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [copyright] => Dirty Mac
    [originalArtist] => Dirty Mac
    [composer] => Marcus Götze
    [artist] => Dirty Mac
    [title] => Little Big Man
    [album] => Demo-Tape
    [track] => 5/12
    [genre] => (17)Rock
    [year] => 2001
)

Voir aussi

id3_set_tag()
id3_remove_tag()
id3_get_version()

Précédent | Sommaire | Suivant
id3_get_genre_name | Niveau supérieur | id3_get_version


id3_get_version

(PECL)

id3_get_version -- Récupère la version d'un tag ID3

Description

int id3_get_version ( string filename )

id3_get_version() récupère la(les) version(s) de la(des) balise(s) ID3 d'un fichier MP3.

Si un fichier contient une balise ID3 v1.1, il contiendra toujours aussi une balise 1.0, vu que 1.1 est uniquement une extension de 1.0.

Liste de paramètres

filename

Le chemin vers le fichier MP3

Au lieu de passer un nom de fichier, vous pouvez aussi passer un flux de ressource valide.

Valeurs de retour

Retourne la(les) version(s) du(des) tag(s) ID3 d'un fichier MP3. Sachant qu'un tag peut contenir des tags ID3 de version v1.x et v2.x, la valeur retournée par cette fonction doit être comparée au niveau binaire avec les constantes pré-définies ID3_V1_0, ID3_V1_1 et ID3_V2.

Exemples

Exemple 1. Exemple avec id3_get_version()

<?php
$version = id3_get_version( "path/to/example.mp3" );
if ($version & ID3_V1_0) {
    echo "Contains a 1.x tag\n";
}
if ($version & ID3_V1_1) {
    echo "Contains a 1.1 tag\n";
}
if ($version & ID3_V2) {
    echo "Contains a 2.x tag\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Contains a 1.x tag
Contains a 1.1 tag

Voir aussi

id3_set_tag()
id3_get_tag()
id3_remove_tag()

Précédent | Sommaire | Suivant
id3_get_tag | Niveau supérieur | id3_remove_tag


id3_remove_tag

(PECL)

id3_remove_tag -- Efface un tag ID3

Description

bool id3_remove_tag ( string filename [, int version] )

id3_remove_tag() est utilisé pour affacer les informations stockées dans un tag ID3.

Liste de paramètres

filename

Le chemin vers le fichier MP3

Au lieu d'un nom de fichier, vous pouvez également passer une ressource valide.

version

Vous permet de spécifier la version du tag, bien que les fichiers MP3 doivent contenir à la fois les versions 1.x et les versions 2.x.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec id3_remove_tag()

<?php
$result = id3_remove_tag( "path/to/example.mp3", ID3_V1_0 );
if ($result === true) {
    echo "Le tag a été effacé avec succès\n";
}
?>

Si le fichier est accessible en écriture et qu'il contient un tag 1.0, l'exemple affichera :

Le tag a été effacé avec succès

Notes

Note : Actuellement, id3_remove_tag() supporte uniquement les tags version 1.0 et 1.1. Si vous tentez d'effacer un tag 1.0 et que le fichier contient un tag 1.1, le tag sera effacé car la version 1.1 n'est qu'une extension de la version 1.0.

Voir aussi

id3_set_tag()
id3_get_tag()
id3_get_version()

Précédent | Sommaire | Suivant
id3_get_version | Niveau supérieur | id3_set_tag


id3_set_tag

(PECL)

id3_set_tag -- Met à jour les informations stockées dans un tag ID3

Description

bool id3_set_tag ( string filename, array tag [, int version] )

id3_set_tag() est utilisé pour changer les informations stockées dans un tag ID3. Si aucun tag n'est présent, le tag sera ajouté au fichier.

Liste de paramètres

filename

Le chemin vers le fichier MP3

Au lieu d'un nom de fichier, vous pouvez également passer une ressource valide.

tag

Un tableau associatif de clés et de valeurs de tags

Les clés suivantes peuvent être utilisées dans le tableau associatif :

Tableau 1. Clés dans le tableau associatif

Clé | Valeur possible | Disponible dans la version
title | chaîne de caractères avec un maximum de 30 caractères | v1.0, v1.1
artist | chaîne de caractères avec un maximum de 30 caractères | v1.0, v1.1
album | chaîne de caractères avec un maximum de 30 caractères | v1.0, v1.1
year | 4 digits | v1.0, v1.1
genre | valeur entière comprise entre 0 et 147 | v1.0, v1.1
comment | chaîne de caractères avec un maximum de 30 caractères (28 en v1.1) | v1.0, v1.1
track | entier compris entre 0 et 255 | v1.1

version

Vous permet de spécifier la version du tag, bien que les fichiers MP3 doivent contenir à la fois les versions 1.x et les versions 2.x.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec id3_set_tag()

<?php
$data = array(
              "title" => "Re:Start",
              "artist" => "Re:\Legion",
              "comment" => "A nice track"
             );
$result = id3_set_tag( "path/to/example.mp3", $data, ID3_V1_0 );
if ($result === true) {
    echo "Le tag a été mis à jour avec succès\n";
}
?>

Si le fichier est accessible en écriture, l'exemple affichera :

Le tag a été mis à jour avec succès

Notes

Note : Actuellement, id3_set_tag() supporte uniquement les versions 1.0 et 1.1.

Voir aussi

id3_remove_tag()
id3_get_tag()
id3_get_version()

Précédent | Sommaire | Suivant
id3_remove_tag | Niveau supérieur | Fonctions d'administration d'IIS


Informix

Manuel PHP
Précédent Suivant

LXVIII. Informix

Introduction

Les pilotes d'accès à Informix pour Online (ODS) 7.x, SE 7.x, Universal Server (IUS) 9.x et IDS 2000 sont implémentés dans "functions/ifx.ec" et "functions/php3_ifx.h". Le support ODS 7.x est plutôt complet, et accepte les colonnes de type BYTE et TEXT. Le support IUS 9.x est partiellement fini, de nouveaux types sont disponibles, mais SLOB et CLOB sont toujours en cours de développement.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.2.1.

Pré-requis

Configuration notes : Vous avez besoin d'une version de ESQL/C pour compiler le pilote PHP d'Informix. Les versions ESQL/C 7.2x sont utilisables. ESQL/C fait partie du SDK Informix Client.

Avant que vous ne lanciez le script "configure", assurez-vous que la variable d'environnement "INFORMIXDIR" a été correctement paramétrée, et que $INFORMIXDIR/bin est dans votre PATH.

Installation

Pour activer ces fonctions, vous devez compiler PHP avec l'option --with-informix[=DIR], où DIR est le dossier d'installation de Informix et, par défaut, il ne vaut rien.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Note : Avant que vous ne lanciez le script "configure", assurez-vous que la variable d'environnement "INFORMIXDIR" a été correctement paramétrée, et que $INFORMIXDIR/bin est dans votre PATH. Vérifiez cela en étudiant le résultat de la fonction phpinfo() avant de commencer à utiliser cette extension. phpinfo() devrait lister ces variables d'environnement. C'est le cas aussi bien pour les modes CGI que module Apache. Vous pouvez aussi mettre en place ces variables dans votre script de démarrage Apache.

Les bibliothèques partagées Informix doivent être accessibles pour le chargement (vérifiez LD_LIBRARY_PATH et ld.so.conf/ldconfig).

Notes sur l'utilisation des BLOBs (TEXT et BYTE) : Les objets de type BLOB sont normalement gérés par des identifiants de BLOB. Les requêtes de sélection retournent un identifiant de BLOB pour chaque colonne de type BYTE et TEXT. Vous pouvez en lire le contenu, avec des commandes de type "string_var = ifx_get_blob($BLOB_id);" ; si vous souhaitez ramener le BLOB en mémoire (avec: "ifx_blobinfile_mode(0);"). Si vous préférez recevoir le contenu d'une colonne BLOB dans un fichier, utilisez ifx_blobinfile_mode(), et ifx_get_blob($BLOB_id) vous retournera le nom du fichier. Utilisez les fonctions habituelles d'accès aux fichiers pour lire son contenu.

Pour les requêtes INSERT/UPDATE, vous devez créer les identifiants de BLOB vous-même, avec la fonction ifx_create_blob(). Puis, vous placez l'identifiant de BLOB dans un tableau, et remplacez la colonne par un point d'interrogation (?). Pour les UPDATE/INSERT, vous êtes responsable du contenu du BLOB, avec la fonction ifx_update_blob().

Le comportement par défaut des colonnes de type BLOB peut être modifié en affectant de nouvelles valeurs aux variables de configuration (même à la volée) :

Variable de configuration : ifx.textasvarchar

Variable de configuration : ifx.byteasvarchar

Fonctions à utiliser lors de l'exécution :

ifx_textasvarchar(0) : utilise l'identifiant de BLOB avec des colonnes de type TEXT, dans les requêtes SELECT

ifx_byteasvarchar(0) : utilise l'identifiant de BLOB avec des colonnes de type BYTE, dans les requêtes SELECT

ifx_textasvarchar(1) : retourne les colonnes de type TEXT sous la forme de VARCHAR, sans utiliser les identifiants de BLOB dans les requêtes SELECT.

ifx_byteasvarchar(1) : retourne les colonnes de type BYTE sous la forme de VARCHAR, sans utiliser les identifiants de BLOB dans les requêtes SELECT.

Variable de configuration : ifx.BLOBinfile

Fonctions à utiliser lors de l'exécution :

ifx_blobinfile_mode(0) : retourne les colonnes de type BYTE en mémoire ; l'identifiant de BLOB vous donnera accès au contenu.

ifx_blobinfile_mode(1) : retourne les colonnes de type BYTE dans un fichier ; l'identifiant de BLOB vous donnera accès au nom de ce fichier.

En affectant la valeur 1 à ifx_text/byteasvarchar, vous pouvez utiliser les colonnes de type TEXT et BYTE dans les requêtes SELECT comme des champs VARCHAR (mais plus long). Étant donné la gestion des chaînes par PHP, cette technique conserve les données binaires. Les données retournées peuvent contenir n'importe quoi, et vous êtes responsable de la bonne manipulation de ces valeurs.

En affectant la valeur 1 à ifx_blobinfile_mode(), utilisez le nom de fichier retourné par ifx_get_blob() pour accéder au contenu du BLOB. Notez bien que vous êtes tenu responsable de l'effacement des fichiers temporaires, créés par Informix. Chaque nouvelle ligne lue sur le serveur va créer un nouveau fichier temporaire, pour chaque colonne de type BYTE.

L'emplacement des fichiers temporaires peut être modifié, grâce à la variable "blobdir", (par défaut, ".", c'est-à-dire, le dossier courant). Une valeur telle que BLOBdir="tmpBLOB" simplifiera le nettoyage des fichiers temporaires, accidentellement oubliés (les noms commencent tous par "blb").

Suppression automatique des espaces (SQLCHAR et SQLNCHAR) : Elle peut être mise en place avec la variable de configuration.

ifx.charasvarchar : avec la valeur 1, les espaces de fin de champs seront automatiquement supprimés.

NULL values : Lorsque la variable de configuration ifx.nullformat (ou que la fonction ifx_nullformat()) est à un, les colonnes contenant la valeur NULL retourneront la chaîne "NULL" et, sinon, retourneront une chaîne vide. Cela vous permet de faire la différence entre les colonnes vides et celles qui contiennent la valeur NULL.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
ifx.allow_persistent | "1" | PHP_INI_SYSTEM |
ifx.max_persistent | "-1" | PHP_INI_SYSTEM |
ifx.max_links | "-1" | PHP_INI_SYSTEM |
ifx.default_host | NULL | PHP_INI_SYSTEM |
ifx.default_user | NULL | PHP_INI_SYSTEM |
ifx.default_password | NULL | PHP_INI_SYSTEM |
ifx.blobinfile | "1" | PHP_INI_ALL |
ifx.textasvarchar | "0" | PHP_INI_ALL |
ifx.byteasvarchar | "0" | PHP_INI_ALL |
ifx.charasvarchar | "0" | PHP_INI_ALL |
ifx.nullformat | "0" | PHP_INI_ALL |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

ifx.allow_persistent bool

Active les connexions persistantes à une base de données Informix.

ifx.max_persistent entier

Nombre maximum de connexions persistantes à une base de données Informix, par processus.

ifx.max_links entier

Nombre maximum de connexions à une base de données Informix par processus, en incluant les connexions persistantes.

ifx.default_host string

Hôte par défaut où se connecter si aucun hôte n'est spécifié par les fonctions ifx_connect() ou ifx_pconnect(). Cette option ne s'applique pas si le safe mode est activé.

ifx.default_user string

Utilisateur par défaut si aucun utilisateur n'est spécifié par les fonctions ifx_connect() ou ifx_pconnect(). Cette option ne s'applique pas si le safe mode est activé.

ifx.default_password string

Mot de passe par défaut si aucun mot de passe n'est spécifié par les fonctions ifx_connect() ou ifx_pconnect(). Cette option ne s'applique pas si le safe mode est activé.

ifx.blobinfile bool

Lorsque cette option est activée, les colonnes de type "blob" seront retournées dans un fichier. Par défaut, elles seront retournées en mémoire. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_blobinfile_mode().

ifx.textasvarchar bool

Lorsque cette option est activée, les colonnes de type "TEXT" seront retournées dans une chaîne de caractères. Par défaut, elles seront retournées en mémoire. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_textasvarchar().

ifx.byteasvarchar bool

Lorsque cette option est activée, les colonnes de type "BYTE" seront retournées dans une chaîne de caractères. Par défaut, elles seront retournées en mémoire. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_textasvarchar().

ifx.charasvarchar bool

Lorsque cette option est activée, les espaces en fin de chaîne de caractères seront conservés lors d'une commande FETCH.

ifx.nullformat bool

Lorsque cette option est activée, les colonnes de valeur NULL seront retournées comme des chaînes de caractères vides. Il est possible de modifier dynamiquement cette valeur grâce à la fonction ifx_nullformat().

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.

IFX_SCROLL (integer)

IFX_HOLD (integer)

IFX_LO_RDONLY (integer)

IFX_LO_WRONLY (integer)

IFX_LO_APPEND (integer)

IFX_LO_RDWR (integer)

IFX_LO_BUFFER (integer)

IFX_LO_NOBUFFER (integer)

Table des matières
ifx_affected_rows -- Retourne le nombre de lignes affectées par une requête
ifx_blobinfile_mode -- Choisit le mode par défaut des objets BLOB pour toutes les requêtes SELECT
ifx_byteasvarchar -- Choisit le mode par défaut des objets BYTE
ifx_close -- Ferme une connexion à un serveur Informix
ifx_connect -- Ouvre une connexion à un serveur Informix
ifx_copy_blob -- Duplique un BLOB
ifx_create_blob -- Crée un objet BLOB
ifx_create_char -- Crée un objet char
ifx_do -- Exécute une requête SQL préparée
ifx_error -- Retourne le code d'erreur de la dernière requête Informix
ifx_errormsg -- Retourne le message d'erreur de la dernière requête Informix
ifx_fetch_row -- Retourne une ligne sous la forme d'un tableau énuméré
ifx_fieldproperties -- Liste les propriétés des champs SQL
ifx_fieldtypes -- Liste les champs Informix SQL
ifx_free_blob -- Supprime un objet BLOB
ifx_free_char -- Supprime un objet char
ifx_free_result -- Libère les ressources prises par un résultat
ifx_get_blob -- Retourne le contenu d'un objet BLOB
ifx_get_char -- Retourne le contenu d'un objet char
ifx_getsqlca -- Retourne le contenu de la variable sqlca.sqlerrd[0..5] après une requête
ifx_htmltbl_result -- Lit toutes les lignes d'un tableau, et le met sous la forme d'un tableau HTML
ifx_nullformat -- Modifie le mode par défaut de lecture des valeurs
ifx_num_fields -- Retourne le nombre de colonnes d'une requête
ifx_num_rows -- Compte le nombre de lignes déjà lues dans un résultat
ifx_pconnect -- Ouvre une connexion persistante à un serveur Informix
ifx_prepare -- Prépare une requête SQL pour l'exécution
ifx_query -- Envoie une requête Informix
ifx_textasvarchar -- Choisit le mode par défaut des objets text
ifx_update_blob -- Modifie le contenu d'un objet BLOB
ifx_update_char -- Modifie le contenu d'un objet char
ifxus_close_slob -- Ferme un objet SLOB
ifxus_create_slob -- Crée un objet SLOB et l'ouvre
ifxus_free_slob -- Supprime un objet SLOB
ifxus_open_slob -- Ouvre un objet SLOB
ifxus_read_slob -- Lit n bytes d'un objet SLOB
ifxus_seek_slob -- Fixe le fichier courant ou la position courante
ifxus_tell_slob -- Retourne le fichier courant ou la position courante
ifxus_write_slob -- Écrit une chaîne dans un objet SLOB

Précédent | Sommaire | Suivant
imap_utf8 | Niveau supérieur | ifx_affected_rows


ifx_affected_rows

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_affected_rows -- Retourne le nombre de lignes affectées par une requête

Description

int ifx_affected_rows ( resource result_id )

Retourne le nombre de lignes affectées par la requête associée à result_id.

Pour les INSERT, UPDATE et DELETE, ce nombre est le nombre exact de lignes affectées (sqlerrd[2]). Pour les SELECT, ce n'est qu'une estimation (sqlerrd[0]). Ne vous y fiez pas. Le serveur de base de données ne peut jamais retourner le nombre de lignes actuel qui sera retourné par une requête SELECT car il n'a pas commencé à les récupérer àce stade (juste après "PREPARE", lorsque l'optimisateur a déterminé le plan de requête).

ifx_affected_rows() est très pratique après ifx_prepare() pour limiter la taille des résultats.

Liste de paramètres

result_id

Un identifiant de résultat valide retourné par la fonction ifx_query() ou la fonction ifx_prepare().

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.

Exemples

Exemple 1. Nombre de lignes affectées

<?php
$rid = ifx_prepare("select * from emp
                     where name like " . $name, $connid);
if (! $rid) {
    /* ... erreur ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Trop de lignes trouvées (%d)\n<br />", $rowcount);
    die ("Rééssayez avec une autre requête.<br />\n");
}
?>

Voir aussi

ifx_num_rows()

Précédent | Sommaire | Suivant
Informix | Niveau supérieur | ifx_blobinfile_mode


ifx_blobinfile_mode

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_blobinfile_mode -- Choisit le mode par défaut des objets BLOB pour toutes les requêtes SELECT

Description

bool ifx_blobinfile_mode ( int mode )

Choisit le mode par défaut des objets BLOB pour toutes les requêtes SELECT.

Liste de paramètres

mode

Mode "0" chargera les BLOB de type Byte en mémoire ; Mode "1" sauvera les BLOB de type Byte dans un fichier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ifx_affected_rows | Niveau supérieur | ifx_byteasvarchar


ifx_byteasvarchar

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_byteasvarchar -- Choisit le mode par défaut des objets BYTE

Description

bool ifx_byteasvarchar ( int mode )

Choisit le mode par défaut des objets BYTE pour toutes les requêtes de sélection.

Liste de paramètres

mode

Le mode "0" retournera l'identifiant de BLOB, et le mode "1" retournera le contenu du TEXT sous la forme d'un VARCHAR.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ifx_textasvarchar()

Précédent | Sommaire | Suivant
ifx_blobinfile_mode | Niveau supérieur | ifx_close


ifx_close

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_close -- Ferme une connexion à un serveur Informix

Description

bool ifx_close ( [resource link_identifier] )

ifx_close() ferme le lien au serveur de données Informix associé à l'identifant de connexion link_identifier.

Notez qu'il n'est généralement pas besoin d'appeler cette fonction, car les connexions non persistantes seront automatiquement fermées.

ifx_close() ne peut pas fermer une connexion ouverte avec ifx_pconnect().

Liste de paramètres

link_identifier

L'identifiant du lien. S'il n'est pas spécifié, le dernier lien ouvert est utilisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Fermer une connexion Informix

<?php
$conn_id = ifx_connect ("mydb@ol_srv", "itsme", "mypassword");
/* ... quelques requêtes diverses et variées ... */
ifx_close($conn_id);
?>

Voir aussi

ifx_connect()
ifx_pconnect()

Précédent | Sommaire | Suivant
ifx_byteasvarchar | Niveau supérieur | ifx_connect


ifx_connect

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_connect -- Ouvre une connexion à un serveur Informix

Description

resource ifx_connect ( [string database [, string userid [, string password]]] )

ifx_connect() établit une connexion à un serveur Informix.

Si un deuxième appel à ifx_connect() est fait avec les mêmes arguments, l'identifiant de connexion déjà ouvert sera retourné.

Le lien avec le serveur sera fermé dès que le script se termine, ce qui fait qu'il n'est pas nécessaire de terminer les connexions avec ifx_close().

Liste de paramètres

Tous les arguments sont optionnels, et, s'ils viennent à manquer, les valeurs par défaut seront prises dans le php.ini (ifx.default_host pour l'hôte par défaut) (Les bibliothèques Informix utiliseront la variable d'environnement $INFORMIXSERVER si ifx.default_host n'est pas définie). ifx.default_user pour l'utilisateur, et ifx.default_password comme mot de passe (si aucun n'a été défini).

database

Le nom de la base de données, sous la forme d'une chaîne de caractères.

userid

Le nom d'utilisateur, sous la forme d'une chaîne de caractères.

password

Le mot de passe, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne un identifiant de connexion en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Connection à un serveur Informix

<?php
$conn_id = ifx_connect ("mydb@ol_srv1", "imyself", "mypassword");
?>

Voir aussi

ifx_pconnect()
ifx_close()

Précédent | Sommaire | Suivant
ifx_close | Niveau supérieur | ifx_copy_blob


ifx_copy_blob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_copy_blob -- Duplique un BLOB

Description

int ifx_copy_blob ( int bid )

Duplique le BLOB fourni.

Liste de paramètres

bid

L'identifiant d'un BLOB.

Valeurs de retour

Retourne l'identifiant vers le nouveau BLOB, ou FALSE si une erreur survient.

Voir aussi

ifx_create_blob()
ifx_free_blob()

Précédent | Sommaire | Suivant
ifx_connect | Niveau supérieur | ifx_create_blob


ifx_create_blob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_create_blob -- Crée un objet BLOB

Description

int ifx_create_blob ( int type, int mode, string param )

Crée un objet BLOB.

Liste de paramètres

type

1 = TEXT, 0 = BYTE

mode

0 = L'objet BLOB place le contenu en mémoire, 1 = L'objet BLOB place le contenu dans un fichier.

param

Si mode = 0: pointeur du contenu, si mode = 1: pointeur vers un fichier.

Valeurs de retour

Retourne l'identifiant vers le nouveau BLOB, ou FALSE si une erreur survient.

Voir aussi

ifx_copy_blob()
ifx_free_blob()

Précédent | Sommaire | Suivant
ifx_copy_blob | Niveau supérieur | ifx_create_char


ifx_create_char

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ifx_create_char -- Crée un objet char

Description

int ifx_create_char ( string param )

Crée un objet char.

Liste de paramètres

param

Le contenu du char.

Valeurs de retour

Retourne l'identifiant vers le nouvel objet char, ou FALSE si une erreur survient.

Voir aussi

ifx_free_char()

Précédent | Sommaire | Suivant
ifx_create_blob | Niveau supérieur | ifx_do


ifx_do

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_do -- Exécute une requête SQL préparée

Description

bool ifx_do ( resource result_id )

Exécute une requête qui a déjà été préparée, ou crée un pointeur pour cela.

ifx_do() ne libère pas result_id en cas d'erreur.

De plus, ifx_do() fixe la valeur de result_id pour accès ultérieur par ifx_affected_rows().

Liste de paramètres

result_id

result_id est un identifiant de résultat valide retourné par la fonction ifx_query() ou la fonction ifx_prepare() (uniquement les requêtes de type SELECT !).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

Exemple 1. Exemple avec ifx_do()

<?php
$conn = fx_connect( "db", "user", "password" );
$result = ifx_prepare("SELECT customer_num, company FROM customer", $conn);
ifx_do($result);
?>

Voir aussi

ifx_prepare()

Précédent | Sommaire | Suivant
ifx_create_char | Niveau supérieur | ifx_error


ifx_error

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_error -- Retourne le code d'erreur de la dernière requête Informix

Description

string ifx_error ( [resource link_identifier] )

Retourne un seul caractère décrivant les résultats généraux d'une requête ainsi que SQLSTATE et SQLCODE associés avec la requête SQL la plus récente.

Liste de paramètres

link_identifier

L'identifiant du lien.

Valeurs de retour

Les codes erreurs Informix (SQLSTATE & SQLCODE) sont formattés ainsi : x [SQLSTATE = aa bbb SQLCODE=cccc].

où x = space : aucune erreur

E : erreur

N : il n'y a plus de donnée

W : alerte

? : indéfinie

Si le caractère "x" vaut autre chose qu'un espace, SQLSTATE et SQLCODE décrivent l'erreur avec plus de détails.

Reportez-vous au manuel Informix pour trouver la description de SQLSTATE et SQLCODE.

Voir aussi

ifx_errormsg()

Précédent | Sommaire | Suivant
ifx_do | Niveau supérieur | ifx_errormsg


ifx_errormsg

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_errormsg -- Retourne le message d'erreur de la dernière requête Informix

Description

string ifx_errormsg ( [int errorcode] )

Retourne le message d'erreur associé à la dernière erreur Informix.

Liste de paramètres

errorcode

Si spécifié, la fonction retournera le message correspondant au code erreur spécifié.

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères.

Exemples

Exemple 1. Exemple avec ifx_errormsg()

printf("%s\n&lt;br>", ifx_errormsg(-201));

Voir aussi

ifx_error()

Précédent | Sommaire | Suivant
ifx_error | Niveau supérieur | ifx_fetch_row


ifx_fetch_row

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_fetch_row -- Retourne une ligne sous la forme d'un tableau énuméré

Description

array ifx_fetch_row ( resource result_id [, mixed position] )

Retourne une ligne de données d'un résultat associé à l'identifiant de résultat result_id.

Les appels ultérieurs à ifx_fetch_row() retourneront la ligne suivante, ou FALSE s'il n'y a plus de ligne.

Liste de paramètres

result_id

result_id est un identifiant valide de résultat, retourné par ifx_query() ou ifx_prepare() (Requêtes SELECT seulement !).

position

position est un paramètre optionnel, pour une opération de lecture d'informations sur un pointeur de type "scroll": NEXT, PREVIOUS, CURRENT, FIRST, LAST ou encore un nombre. Si vous spécifiez un nombre, la ligne d'index absolu sera retournée. Ce paramètre est optionnel, et ne fonctionne qu'avec les pointeurs de type "scroll".

Valeurs de retour

retourne un tableau associatif qui contient la ligne retournée ou FALSE s'il ne reste plus de lignes à lire, ou s'il a eu une erreur.

Les colonnes de types BLOB sont retournées sous la forme d'un identifiant à utiliser avec ifx_get_blob() à moins que vous n'ayez utilisé la fonction ifx_textasvarchar() ou ifx_byteasvarchar() et, dans ce cas, les BLOBs seront retournés sous forme de chaîne.

Exemples

Exemple 1. Exemple avec ifx_fetch_row()

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... erreur ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Trop de lignes dans le résultat. (%d)\n<br />", $rowcount);
    die ("Restreignez votre requête. <br />\n");
}
if (! ifx_do ($rid)) {
   /* ... erreur ... */
}
$row = ifx_fetch_row ($rid, "NEXT");
while (is_array($row)) {
    for (reset($row); $fieldname=key($row); next($row)) {
        $fieldvalue = $row[$fieldname];
        printf ("%s = %s,", $fieldname, $fieldvalue);
    }
    printf("\n<br />");
    $row = ifx_fetch_row($rid, "NEXT");
}
ifx_free_result ($rid);
?>

Précédent | Sommaire | Suivant
ifx_errormsg | Niveau supérieur | ifx_fieldproperties


ifx_fieldproperties

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_fieldproperties -- Liste les propriétés des champs SQL

Description

array ifx_fieldproperties ( resource result_id )

Retourne les propriétés Informix SQL pour tous les champs d'une requête, sous la forme d'un tableau associatif. Les propriétés sont présentées sous la forme : "SQLTYPE;longueur ;précision;échelle;ISNULLABLE" avec SQLTYPE qui représente le type de données Informix tel que "SQLVCHAR" et ISNULLABLE = "Y" ou "N" (le champ peut contenir NULL ou pas : Oui ou Non).

Liste de paramètres

result_id

result_id est un identifiant de résultats valide retourné par la fonction ifx_query() ou la fonction ifx_prepare() (Requête de type SELECT uniquement !).

Valeurs de retour

Retourne un tableau associatif avec les noms des champs comme clés, et les données de propriétés des champs comme valeurs. ifx_fieldproperties() retourne FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec ifx_fieldproperties()

<?php
$properties = ifx_fieldproperties($resultid);
if (!isset($properties)) {
    /* ... erreur ... */
}
foreach ($properties as $fname => $val) {
    echo "$fname :\t property = $val\n";
}
?>

Voir aussi

ifx_fieldtypes()

Précédent | Sommaire | Suivant
ifx_fetch_row | Niveau supérieur | ifx_fieldtypes


ifx_fieldtypes

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_fieldtypes -- Liste les champs Informix SQL

Description

array ifx_fieldtypes ( resource result_id )

Retourne un tableau associatif avec les noms des champs comme clés, et les types SQL comme valeurs.

Liste de paramètres

result_id

result_id est un identifiant de résultats valide, retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Retourne un tableau associatif avec les noms des champs comme clés, et les types SQL comme valeurs. En cas d'erreur, retourne FALSE.

Exemples

Exemple 1. Nom de champs et type SQL

<?php
$types = ifx_fieldtypes($resultid);
if (is_array($types)) {
    foreach ($types as $fname => $val) {
        echo "$fname :\t type = $val\n";
    }
}
?>

Voir aussi

ifx_fieldproperties()

Précédent | Sommaire | Suivant
ifx_fieldproperties | Niveau supérieur | ifx_free_blob


ifx_free_blob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_free_blob -- Supprime un objet BLOB

Description

bool ifx_free_blob ( int bid )

Supprime l'objet BLOB dont l'identifiant est fourni.

Liste de paramètres

bid

L'identifiant de l'objet BLOB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ifx_create_blob()

Précédent | Sommaire | Suivant
ifx_fieldtypes | Niveau supérieur | ifx_free_char


ifx_free_char

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ifx_free_char -- Supprime un objet char

Description

bool ifx_free_char ( int bid )

Supprime l'objet char dont l'identifiant est fourni.

Liste de paramètres

bid

L'identifiant de l'objet char.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ifx_create_char()

Précédent | Sommaire | Suivant
ifx_free_blob | Niveau supérieur | ifx_free_result


ifx_free_result

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_free_result -- Libère les ressources prises par un résultat

Description

bool ifx_free_result ( resource result_id )

Libère les ressources prises par le résultat associé avec result_id.

Liste de paramètres

result_id

result_id est un identifiant de résultats valide, retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ifx_do()

Précédent | Sommaire | Suivant
ifx_free_char | Niveau supérieur | ifx_get_blob


ifx_get_blob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_get_blob -- Retourne le contenu d'un objet BLOB

Description

string ifx_get_blob ( int bid )

Retourne le contenu d'un objet BLOB.

Liste de paramètres

bid

L'identifiant de l'objet BLOB.

Valeurs de retour

Le contenu du BLOB, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Voir aussi

ifx_get_char()

Précédent | Sommaire | Suivant
ifx_free_result | Niveau supérieur | ifx_get_char


ifx_get_char

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ifx_get_char -- Retourne le contenu d'un objet char

Description

string ifx_get_char ( int bid )

Retourne le contenu d'un objet char.

Liste de paramètres

bid

L'identifiant de l'objet char.

Valeurs de retour

Retourne le contenu sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Voir aussi

ifx_get_blob()

Précédent | Sommaire | Suivant
ifx_get_blob | Niveau supérieur | ifx_getsqlca


ifx_getsqlca

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ifx_getsqlca -- Retourne le contenu de la variable sqlca.sqlerrd[0..5] après une requête

Description

array ifx_getsqlca ( resource result_id )

Retourne une pseudo-ligne (tableau associatif) avec sqlca.sqlerrd[0] à sqlca.sqlerrd[5] après la requête associée result_id.

Pour les requêtes INSERT, UPDATE et DELETE, les valeurs retournées sont celles fixées par le serveur après avoir exécuté la requête. Cela donne accès au nombre de lignes affectées, ainsi qu'au numéro de série d'insertion. Pour les requêtes de type SELECT, les valeurs retournées sont celles qui ont été préparées. Utiliser cette fonction économise l'exécution d'une requête SELECT dbinfo('sqlca.sqlerrdx'), étant donné qu'elle retourne les valeurs qui ont été sauvées par le pilote ifx au moment approprié.

Liste de paramètres

result_id

result_id est un identifiant de résultats valide, retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Retourne un tableau associatif, composé des entrées suivantes : sqlerrd0, sqlerrd1, sqlerrd2, sqlerrd3, sqlerrd4 et sqlerrd5.

Exemples

Exemple 1. Lire les valeurs de sqlca.sqlerrd[x]

<?php
/* On suppose que la première colonne d'une table
'quelconque' est un numéro de série */
$qid = ifx_query("insert into sometable
                  values (0, '2nd column', 'another column') ", $connid);
if (!$qid) {
    /* ... erreur ... */
}
$sqlca = ifx_getsqlca($qid);
$serial_value = $sqlca["sqlerrd1"];
echo "Le numéro de série de la valeur insérée est : $serial_value<br />\n";
?>

Précédent | Sommaire | Suivant
ifx_get_char | Niveau supérieur | ifx_htmltbl_result


ifx_htmltbl_result

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_htmltbl_result -- Lit toutes les lignes d'un tableau, et le met sous la forme d'un tableau HTML

Description

int ifx_htmltbl_result ( resource result_id [, string html_table_options] )

Formate et affiche toutes les lignes issues de la requête result_id dans un tableau HTML.

Liste de paramètres

result_id

result_id est un identifiant de résultats, retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

html_table_options

Cet argument optionnel est une chaîne de caractères d'options de balise <table>.

Valeurs de retour

Retourne le nombre de lignes récupérées ou FALSE si une erreur survient.

Exemples

Exemple 1. Affichage sous la forme d'une table HTML

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... erreur ... */
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
    printf ("Trop de lignes dans le résultat : (%d)\n<br />", $rowcount);
    die ("Recommencez votre requête <br />\n");
}
if (! ifx_do($rid)) {
    /* ... erreur ... */
}

ifx_htmltbl_result ($rid, "border=\"2\"");

ifx_free_result($rid);
?>

Précédent | Sommaire | Suivant
ifx_getsqlca | Niveau supérieur | ifx_nullformat


ifx_nullformat

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_nullformat -- Modifie le mode par défaut de lecture des valeurs

Description

bool ifx_nullformat ( int mode )

Modifie le mode par défaut de lecture des valeurs.

Liste de paramètres

mode

Le mode "0" retourne "", et le mode "1" retourne "NULL".

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ifx_htmltbl_result | Niveau supérieur | ifx_num_fields


ifx_num_fields

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_num_fields -- Retourne le nombre de colonnes d'une requête

Description

int ifx_num_fields ( resource result_id )

Après avoir préparé ou exécuté une requête, cette fonction retourne le nombre de colonnes dans la requête.

Liste de paramètres

result_id

result_idest un identifiant de résultats retourné par la fonction ifx_query() ou par la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Retourne le nombre de colonnes dans la requête result_id ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec ifx_num_fields()

<?php
$conn_id = ifx_connect("db", "user", "password");
$res_id = ifx_query("select * from systables", $conn_id);
echo ifx_num_fields($res_id);
?>

Voir aussi

ifx_num_rows()

Précédent | Sommaire | Suivant
ifx_nullformat | Niveau supérieur | ifx_num_rows


ifx_num_rows

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_num_rows -- Compte le nombre de lignes déjà lues dans un résultat

Description

int ifx_num_rows ( resource result_id )

Compte le nombre de lignes déjà lues dans le résultat result_id après ifx_query() ou ifx_do().

Liste de paramètres

result_id

result_id est un identifiant de résultats retourné par la fonction ifx_query() ou la fonction ifx_prepare() (requêtes de type SELECT uniquement !).

Valeurs de retour

Retourne le nombre de lignes récupérées ou FALSE si une erreur survient.

Voir aussi

ifx_num_fields()

Précédent | Sommaire | Suivant
ifx_num_fields | Niveau supérieur | ifx_pconnect


ifx_pconnect

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_pconnect -- Ouvre une connexion persistante à un serveur Informix

Description

resource ifx_pconnect ( [string database [, string userid [, string password]]] )

ifx_pconnect() se comporte de manière très similaire à ifx_connect() avec deux différences importantes.

Tout d'abord, lors de la connexion, la fonction va chercher une connexion (persistante) déjà ouverte avec le même hôte, le même nom d'utilisateur et le même mot de passe. Si elle en trouve une, elle retournera un identifiant de cette connexion au lieu d'en ouvrir une nouvelle.

Deuxièmement, la connexion au serveur SQL ne sera pas automatiquement refermée à la fin de l'exécution du script. Au contraire, le lien va rester ouvert (ifx_close() ne fermera pas les connexions établies avec ifx_pconnect()).

Ainsi, ce type de lien est appelé 'persistant'.

Liste de paramètres

Tous les arguments sont optionnels, et s'ils ne sont pas fournis, les valeurs par défaut sont utilisées, émanant du php.ini (ifx.default_host pour l'hôte (les bibliothèques Informix utiliseront la valeur de la variable d'environnement INFORMIXSERVER si cette valeur n'est pas défini), ifx.default_user pour l'utilisateur, ifx.default_password pour le mot de passe (aucun s'il n'est pas fourni)).

database

Le nom de la base de données, sous la forme d'une chaîne de caractères.

userid

Le nom d'utilisateur, sous la forme d'une chaîne de caractères.

password

Le mot de passe, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne un identifiant valide de connexion persistante à un serveur Informix, ou FALSE, en cas d'erreur.

Voir aussi

ifx_connect()

Précédent | Sommaire | Suivant
ifx_num_rows | Niveau supérieur | ifx_prepare


ifx_prepare

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_prepare -- Prépare une requête SQL pour l'exécution

Description

resource ifx_prepare ( string query, resource link_identifier [, int cursor_def, mixed blobidarray] )

Prépare la requête query pour une utilisation ultérieure avec la fonction ifx_do().

Pour les requêtes de type "select-type" un pointeur de résultat est déclaré et ouvert. Les autres seront exécutées immédiatement.

Pour les autres types de requêtes, le nombre de lignes affectées (estimé ou exact) est enregistré, pour être lu avec la fonction ifx_affected_rows().

Si le contenu d'une colonne est de type TEXT (ou BYTE) vous pouvez aussi utiliser les fonctions ifx_textasvarchar() et ifx_byteasvarchar(). Cela vous permettra d'utiliser les colonnes TEXT (ou BYTE) comme des colonnes de type VARCHAR (mais plus long, tout de même), et vous n'aurez pas besoin de l'identifiant de BLOB.

Avec les fonctions ifx_textasvarchar() et ifx_byteasvarchar() (valeurs par défaut), les requêtes SELECT retourneront des identifiants de BLOB. Cet identifiant peut être une chaîne ou un fichier, suivant la configuration (voir plus loin).

Liste de paramètres

query

La requête.

link_identifier

L'identifiant du lien.

cursor_def

Ce paramètre optionnel permet de choisir le type de pointeur : scroll et/ou hold. Les valeurs peuvent être combinées ensemble (IFX_SCROLL, IFX_HOLD).

blobidarray

Si vous avez une colonne de type BLOB (BYTE ou TEXT) dans une requête de modification, vous pouvez passer un paramètre blobidarray qui contiendra les identifiants des BLOB à modifier, et vous devrez remplacer cette colonne par un point d'interrogation (?) dans la requête.

Valeurs de retour

Retourne un identifiant de résultats pour une utilisation ultérieure avec la fonction ifx_do(), ou FALSE si une erreur survient.

Voir aussi

ifx_do()

Précédent | Sommaire | Suivant
ifx_pconnect | Niveau supérieur | ifx_query


ifx_query

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_query -- Envoie une requête Informix

Description

resource ifx_query ( string query, resource link_identifier [, int cursor_type [, mixed blobidarray]] )

ifx_query() envoie une requête au serveur actif courant, associé à l'identifiant de connexion link_identifier.

Pour les requêtes de type SELECT, un pointeur est déclaré, et ouvert. Les autres seront exécutées immédiatement.

Pour les autres requêtes, le nombre de lignes affectées (estimé ou exact) est enregistré pour être lu avec ifx_affected_rows().

Si le contenu d'une colonne est de type TEXT (ou BYTE) vous pouvez aussi utiliser les fonctions ifx_textasvarchar() et ifx_byteasvarchar(). Cela vous permettra d'utiliser les colonnes TEXT ( ou BYTE ) comme des colonnes de type VARCHAR (mais plus long, tout de même), et vous n'aurez pas besoin de l'identifiant de BLOB.

Avec les fonctions ifx_textasvarchar() et ifx_byteasvarchar() (valeurs par défaut), les requêtes SELECT retourneront des identifiants de BLOB. Ces identifiants peuvent être une chaîne ou un fichier, suivant la configuration (voir plus loin).

Liste de paramètres

query

La requête, sous la forme d'une chaîne de caractères.

link_identifier

L'identifiant du lien.

cursor_def

Ce paramètre optionnel vous permet de choisir le type de curseur, scroll et/ou hold. C'est un masque qui peut être soit IFX_SCROLL, soit IFX_HOLD, ou les deux. Si vous ne fournissez pas ce paramètre, le curseur est un curseur normal séquentiel.

blobidarray

Si vous avez une colonne de type BLOB (BYTE ou TEXT) dans une requête de modification, vous pouvez passer un paramètre blobidarray qui contiendra les identifiants des BLOB à modifier, et vous devrez remplacer cette colonne par un point d'interrogation (?) dans la requête.

Valeurs de retour

Retourne un identifiant de résultats Informix en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Afficher toutes les lignes de la table "ordres" sous la forme html du serveur IFX

<?php
ifx_textasvarchar(1);      // Utilisation du mode "text mode" pour les BLOBs
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
    printf("Impossible de sélectionner des lignes dans : %s\n<br />%s<br />\n", ifx_error());
    ifx_errormsg();
    die;
}
ifx_htmltbl_result($res_id, "border=\"1\"");
ifx_free_result($res_id);
?>

Exemple 2. Insertion de valeurs dans la table "catalogue" IFX

<?php

// Créer un identifiant de BLOB pour une colonne de type BYTE et une de type TEXT
$textid = ifx_create_blob(0, 0, "Colonne Text en mémoire");
$byteid = ifx_create_blob(1, 0, "Colonne Byte en mémoire");

// Stocke l'identifiant du BLOB dans le tableau BLOBid
$blobidarray[] = $textid;
$blobidarray[] = $byteid;

// Exécute la requête
$query = "insert into catalog (stock_num, manu_code, " .
         "cat_descr,cat_picture) values(1,'HRO',?,?)";
$res_id = ifx_query($query, $conn_id, $blobidarray);
if (! $res_id) {
    /* ... erreur ... */
}

// Libération du résultat
ifx_free_result($res_id);
?>

Voir aussi

ifx_connect()

Précédent | Sommaire | Suivant
ifx_prepare | Niveau supérieur | ifx_textasvarchar


ifx_textasvarchar

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_textasvarchar -- Choisit le mode par défaut des objets text

Description

bool ifx_textasvarchar ( int mode )

Modifie le mode par défaut des objets TEXT.

Liste de paramètres

mode

Le mode "0" retournera un identifiant de BLOB et le mode "1" retourne le BLOB sous la forme d'un (gros) varchar.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ifx_bytesasvarchar()

Précédent | Sommaire | Suivant
ifx_query | Niveau supérieur | ifx_update_blob


ifx_update_blob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_update_blob -- Modifie le contenu d'un objet BLOB

Description

bool ifx_update_blob ( int bid, string content )

Modifie le contenu de l'objet BLOB repéré par son identifiant bid.

Liste de paramètres

bid

Un identifiant d'objet BLOB.

content

Les nouvelles données, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ifx_update_char()

Précédent | Sommaire | Suivant
ifx_textasvarchar | Niveau supérieur | ifx_update_char


ifx_update_char

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ifx_update_char -- Modifie le contenu d'un objet char

Description

bool ifx_update_char ( int bid, string content )

Modifie le contenu de l'objet char repéré par son identifiant bid.

Liste de paramètres

bid

Un identifiant d'objet char.

content

Les nouvelles données, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ifx_update_blob()

Précédent | Sommaire | Suivant
ifx_update_blob | Niveau supérieur | ifxus_close_slob


ifxus_close_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_close_slob -- Ferme un objet SLOB

Description

bool ifxus_close_slob ( int bid )

Ferme l'objet SLOB représenté par son identifiant bid.

Liste de paramètres

bid

Un identifiant vers un slob existant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ifxus_open_slob()

Précédent | Sommaire | Suivant
ifx_update_char | Niveau supérieur | ifxus_create_slob


ifxus_create_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_create_slob -- Crée un objet SLOB et l'ouvre

Description

int ifxus_create_slob ( int mode )

Crée un objet SLOB et l'ouvre.

Liste de paramètres

mode

Une combinaison des constantes suivantes : IFX_LO_RDONLY, IFX_LO_WRONLY, IFX_LO_APPEND IFX_LO_RDWR, IFX_LO_BUFFER, IFX_LO_NOBUFFER.

Valeurs de retour

Retourne l'identifiant du nouvel objet slob, ou FALSE si une erreur survient.

Voir aussi

ifxus_close_slob()
ifxus_free_slob()

Précédent | Sommaire | Suivant
ifxus_close_slob | Niveau supérieur | ifxus_free_slob


ifxus_free_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_free_slob -- Supprime un objet SLOB

Description

bool ifxus_free_slob ( int bid )

Supprime un objet SLOB.

Liste de paramètres

bid

Un identifiant vers un slob existant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ifxus_close_slob()

Précédent | Sommaire | Suivant
ifxus_create_slob | Niveau supérieur | ifxus_open_slob


ifxus_open_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_open_slob -- Ouvre un objet SLOB

Description

int ifxus_open_slob ( int bid, int mode )

Ouvre un objet SLOB. bid doit être un identifiant slob existant.

Liste de paramètres

bid

Un identifiant slob existant.

mode

Une combinaison des constantes suivantes : IFX_LO_RDONLY, IFX_LO_WRONLY, IFX_LO_APPEND IFX_LO_RDWR, IFX_LO_BUFFER, IFX_LO_NOBUFFER.

Valeurs de retour

Retourne l'identifiant du nouvel objet slob, ou FALSE si une erreur survient.

Voir aussi

ifxus_close_slob()
ifxus_free_slob()

Précédent | Sommaire | Suivant
ifxus_free_slob | Niveau supérieur | ifxus_read_slob


ifxus_read_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_read_slob -- Lit n bytes d'un objet SLOB

Description

string ifxus_read_slob ( int bid, int nbytes )

Lit nbytes octets de l'objet slob.

Liste de paramètres

bid

Un identifiant slob existant.

nbytes

Le nombre d'octets à lire.

Valeurs de retour

Retourne le contenu du slob sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Voir aussi

ifxus_write_slob()

Précédent | Sommaire | Suivant
ifxus_open_slob | Niveau supérieur | ifxus_seek_slob


ifxus_seek_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_seek_slob -- Fixe le fichier courant ou la position courante

Description

int ifxus_seek_slob ( int bid, int mode, int offset )

Fixe le fichier courant ou la position courante d'un objet slob ouvert.

Liste de paramètres

bid

Un identifiant slob existant.

mode

0 = LO_SEEK_SET, 1 = LO_SEEK_CUR, 2 = LO_SEEK_END.

offset

La position.

Valeurs de retour

Retourne le position sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi

ifxus_tell_slob()

Précédent | Sommaire | Suivant
ifxus_read_slob | Niveau supérieur | ifxus_tell_slob


ifxus_tell_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_tell_slob -- Retourne le fichier courant ou la position courante

Description

int ifxus_tell_slob ( int bid )

Retourne le fichier courant ou la position courante d'un objet slob ouvert.

Liste de paramètres

bid

Un identifiant slob existant.

Valeurs de retour

Retourne la position sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi

ifxus_seek_slob()

Précédent | Sommaire | Suivant
ifxus_seek_slob | Niveau supérieur | ifxus_write_slob


ifxus_write_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_write_slob -- Écrit une chaîne dans un objet SLOB

Description

int ifxus_write_slob ( int bid, string content )

Écrit une chaîne dans un objet SLOB.

Liste de paramètres

bid

Un identifiant slob existant.

content

Le contenu à écrire, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne les octets écrits, sous la forme d'un entier ou FALSE si une erreur survient.

Voir aussi

ifxus_read_slob()

Précédent | Sommaire | Suivant
ifxus_tell_slob | Niveau supérieur | Fonctions Informix (PDO_INFORMIX)


Fonctions d'administration d'IIS

Manuel PHP
Précédent Suivant

LXIV. Fonctions d'administration d'IIS

Introduction

Cette extension PECL n'est pas intégrée à PHP. Cette extension n'est disponible que pour Windows. Elle fournit des fonctions d'administration de Microsoft Internet Information Server (IIS). Cette extension inclut des fonctions pour créer des sites web et des dossiers virtuels, ainsi que pour configurer la sécurité et le extensions de scripts. Ces fonctions ont été ajoutées en PHP 4.

Pour utiliser ces fonctions, vous devez activer la bibliothèque php_iisfunc.dll dans le fichier php.ini. La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

IIS_READ (entier)

IIS_WRITE (entier)

IIS_EXECUTE (entier)

IIS_SCRIPT (entier)

IIS_ANONYMOUS (entier)

IIS_BASIC (entier)

IIS_NTLM (entier)

IIS_STARTING (entier)

IIS_STOPPED (entier)

IIS_PAUSED (entier)

IIS_RUNNING (entier)

Table des matières
iis_add_server -- Crée un nouveau serveur web virtuel
iis_get_dir_security -- Lit la configuration de sécurité du dossier
iis_get_script_map -- Lit le mappage de script dans un dossier virtuel donné
iis_get_server_by_comment -- Retourne le numéro d'instance associé à un Comment
iis_get_server_by_path -- Retourne le numéro d'instance associé avec le chemin
iis_get_server_rights -- Lit les droits du serveur
iis_get_service_state -- Retourne l'état du service défini par ServiceId
iis_remove_server -- Supprime le serveur IIS représenté par ServerInstance
iis_set_app_settings -- Crée un espace d'exécution pour une application dans un dossier virtuel
iis_set_dir_security -- Modifie la configuration de sécurité du dossier
iis_set_script_map -- Modifie le mappage de script pour un dossier virtuel
iis_set_server_rights -- Modifie les droits du serveur
iis_start_server -- Démarre le serveur web virtuel
iis_start_service -- Démarre le service IIS identifié par ServiceId
iis_stop_server -- Stoppe le serveur web virtuel
iis_stop_service -- Stoppe le service IIS identifié par ServiceId

Précédent | Sommaire | Suivant
id3_set_tag | Niveau supérieur | iis_add_server


iis_add_server

(PECL)

iis_add_server -- Crée un nouveau serveur web virtuel

Description

int iis_add_server ( string path, string comment, string server_ip, int port, string host_name, int rights, int start_server )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
Fonctions d'administration d'IIS | Niveau supérieur | iis_get_dir_security


iis_get_dir_security

(PECL)

iis_get_dir_security -- Lit la configuration de sécurité du dossier

Description

int iis_get_dir_security ( int server_instance, string virtual_path )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iis_add_server | Niveau supérieur | iis_get_script_map


iis_get_script_map

(PECL)

iis_get_script_map -- Lit le mappage de script dans un dossier virtuel donné

Description

string iis_get_script_map ( int server_instance, string virtual_path, string script_extension )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iis_get_dir_security | Niveau supérieur | iis_get_server_by_comment


iis_get_server_by_comment

(PECL)

iis_get_server_by_comment -- Retourne le numéro d'instance associé à un Comment

Description

int iis_get_server_by_comment ( string comment )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iis_get_script_map | Niveau supérieur | iis_get_server_by_path


iis_get_server_by_path

(PECL)

iis_get_server_by_path -- Retourne le numéro d'instance associé avec le chemin

Description

int iis_get_server_by_path ( string path )

Chaque serveur virtuel sous IIS est représenté par un numéro d'instance. iis_get_server_by_path() trouve ce numéro d'instance à partir du chemin physique jusqu'à la racine du dossier.

Liste de paramètres

path

Le chemin vers le dossier racine

Valeurs de retour

Retourne le numéro d'instance du serveur.

Précédent | Sommaire | Suivant
iis_get_server_by_comment | Niveau supérieur | iis_get_server_rights


iis_get_server_rights

(PECL)

iis_get_server_rights -- Lit les droits du serveur

Description

int iis_get_server_rights ( int server_instance, string virtual_path )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iis_get_server_by_path | Niveau supérieur | iis_get_service_state


iis_get_service_state

(PECL)

iis_get_service_state -- Retourne l'état du service défini par ServiceId

Description

int iis_get_service_state ( string service_id )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iis_get_server_rights | Niveau supérieur | iis_remove_server


iis_remove_server

(PECL)

iis_remove_server -- Supprime le serveur IIS représenté par ServerInstance

Description

int iis_remove_server ( int server_instance )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iis_get_service_state | Niveau supérieur | iis_set_app_settings


iis_set_app_settings

(PECL)

iis_set_app_settings -- Crée un espace d'exécution pour une application dans un dossier virtuel

Description

int iis_set_app_settings ( int server_instance, string virtual_path, string application_scope )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iis_remove_server | Niveau supérieur | iis_set_dir_security


iis_set_dir_security

(PECL)

iis_set_dir_security -- Modifie la configuration de sécurité du dossier

Description

int iis_set_dir_security ( int server_instance, string virtual_path, int directory_flags )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iis_set_app_settings | Niveau supérieur | iis_set_script_map


iis_set_script_map

(PECL)

iis_set_script_map -- Modifie le mappage de script pour un dossier virtuel

Description

int iis_set_script_map ( int server_instance, string virtual_path, string script_extension, string engine_path, int allow_scripting )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iis_set_dir_security | Niveau supérieur | iis_set_server_rights


iis_set_server_rights

(PECL)

iis_set_server_rights -- Modifie les droits du serveur

Description

int iis_set_server_rights ( int server_instance, string virtual_path, int directory_flags )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iis_set_script_map | Niveau supérieur | iis_start_server


iis_start_server

(PECL)

iis_start_server -- Démarre le serveur web virtuel

Description

int iis_start_server ( int server_instance )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iis_set_server_rights | Niveau supérieur | iis_start_service


iis_start_service

(PECL)

iis_start_service -- Démarre le service IIS identifié par ServiceId

Description

int iis_start_service ( string service_id )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iis_start_server | Niveau supérieur | iis_stop_server


iis_stop_server

(PECL)

iis_stop_server -- Stoppe le serveur web virtuel

Description

int iis_stop_server ( int server_instance )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iis_start_service | Niveau supérieur | iis_stop_service


iis_stop_service

(PECL)

iis_stop_service -- Stoppe le service IIS identifié par ServiceId

Description

int iis_stop_service ( string service_id )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iis_stop_server | Niveau supérieur | Images


Images

Manuel PHP
Précédent Suivant

LXV. Images

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éta-donné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éta-données des photos prises avec des appareils numériques, vous devez utiliser l'extension exif mentionnée ci-dessus.

Pré-requis

Si vous disposez de la bibliothèque GD (disponible à http://www.boutell.com/gd/) vous pourrez aussi créer et manipuler des images.

Les formats des images que vous pourrez manipuler dépendent de la version de GD que vous installerez, et de toutes autres bibliothèques dont GD a besoin pour traiter ces images. Les versions antérieures à la version 1.6 supportent le GIF, mais pas le PNG. À partir des version de GD supérieures à 1.6 et inférieures à 2.0.28, c'est le contraire. Le support du GIF a été rajouté à partir de la verison 2.0.28.

Note : Depuis PHP 4.3, il existe une version de GD qui est distribuée avec PHP. Cette version contient des fonctionnalités supplémentaires, comme les canaux alpha, et il est recommandé de l'utiliser de préférence à la bibliothèque externe, car elle est mieux supportée, et bien plus stable.

Note : Le support pour GD 1.x a été supprimé à partir de PHP 6.0.0, qui requiert 2.0.33 ou supérieur.

Vous pouvez aussi améliorer GD en lui ajoutant des formats d'images supplémentaires.

Tableau 1. Formats d'images supportés

Format d'image | Bibliothèque à télécharger | Notes
gif |  | Uniquement supporté en versions de GD antérieures à la version 1.6 et supérieures ou égales à la version 2.0.28. Le support des images GIF est disponible en lecture seule depuis PHP 4.3.0, et dans la version de la bibliothèque qui est fournie avec la distribution de PHP. L'écriture est supportée depuis PHP 4.3.9 et PHP 5.0.1.
jpeg-6b | ftp://ftp.uu.net/graphics/jpeg/ | Lors de la compilation de la bibliothèque jpeg-v6b (avant celle de PHP), vous devez utiliser l'option de configuration --enable-shared. Dans le cas contraire, vous recevrez une erreur disant que libjpeg.(a|so) not found lorsque vous tenterez de configurer PHP avant de le compiler.
png | http://www.libpng.org/pub/png/libpng.html | Uniquement supporté avec GD plus récente que la version 1.6.
xpm | ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html | Il est probable que vous ayez déjà cette bibliothèque disponible si votre système dispose d'un environnement X.

Vous pouvez aussi améliorer GD en lui ajoutant des fonctionnalités de manipulation de polices. Les bibliothèques suivantes sont supportées :

Tableau 2. Bibliothèques de polices supportées

Bibliothèque de police | Téléchargement | Notes
FreeType 1.x | http://www.freetype.org/ |
FreeType 2 | http://www.freetype.org/ | Le support a été supprimé à partir de PHP 6.0.0
T1lib | ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) | Support des polices Postscript Type 1.

Installation

Pour activer le support de GD, vous devez compiler PHP avec l'option --with-gd[=DIR], où DIR est le dossier d'installation de GD. Il est recommandé d'utiliser la version de GD qui est distribuée avec PHP, en utilisant simplement l'option --with-gd. La bibliothèque GD requiert libpng et libjpeg pour compiler.

Sous Windows, vous devez inclure la bibliothèque php_gd2.dll comme extension dans le fichier php.ini. La bibliothèque php_gd.dll a été supprimée de PHP 4.3.2. Notez aussi que les fonctions conseillées truecolor, comme imagecreatetruecolor(), requièrent GD2.

Pour désactiver le support de GD en PHP 3, ajoutez simplement l'option --without-gd dans votre ligne de configuration.

Augmentez les possibilités des GD de gérer d'autres formats d'images en spécifiant les options --with-XXXX de compilation suivantes :

Tableau 3. Formats d'image supportés

Format d'image | Option de compilation
jpeg-6b | Pour activer le support de la bibliothèque JPEG-6b, ajouter l'option --with-jpeg-dir=DIR.
png | Pour activer le support de la bibliothèque PNG, ajouter l'option --with-png-dir=DIR. Notez que libpng requiert la bibliothèque zlib et, donc, il vous faudra ajouter aussi --with-zlib-dir[=DIR] dans votre ligne de compilation.
xpm | Pour activer le support de la bibliothèque XPM, ajoutez l'option --with-xpm-dir=DIR. Si le script de compilation n'est pas capable de trouver les bibliothèques nécessaires, il vous faudra ajouter le chemin vers les bibliothèques X11.

Note : Lorsque vous compilez PHP avec libpng, vous devez utiliser la même version que celle liée à la bibliothèque GD.

Augmentez les possibilités de GD pour qu'elle manipule différents types de polices de caractères en ajoutant les options --with-XXXX de compilation suivantes :

Tableau 4. Bibliothèques des polices de caractères supportées

Bibliothèque | Option de configuration
FreeType 1.x | Pour activer le support de FreeType 1.x, ajoutez l'option --with-ttf[=DIR].
FreeType 2 | Pour activer le support de FreeType 2, ajoutez l'option --with-freetype-dir=DIR.
T1lib | Pour activer le support de T1lib (Postscript Type 1 fonts), ajoutez l'option --with-t1lib[=DIR].
Chaînes TrueType | Pour activer le support des chaînes de caractères TrueType, ajoutez l'option --enable-gd-native-ttf.

Configuration à l'exécution

Il n'y a pas de configuration spécifique pour les images mais vous êtes peut être intéressé par les directives de l'extension exif.

Types de ressources

Cette extension définit deux types de ressources : un identifiant d'image et un identifiant de police.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

IMG_GIF (entier)

IMG_JPG (entier)

IMG_JPEG (entier)

IMG_PNG (entier)

IMG_WBMP (entier)

IMG_XPM (entier)

IMG_COLOR_TILED (entier)

IMG_COLOR_STYLED (entier)

IMG_COLOR_BRUSHED (entier)

IMG_COLOR_STYLEDBRUSHED (entier)

IMG_COLOR_TRANSPARENT (entier)

IMG_ARC_ROUNDED (entier)

IMG_ARC_PIE (entier)

IMG_ARC_CHORD (entier)

IMG_ARC_NOFILL (entier)

IMG_ARC_EDGED (entier)

IMAGETYPE_GIF (entier)

IMAGETYPE_JPEG (entier)

IMAGETYPE_PNG (entier)

IMAGETYPE_SWF (entier)

IMAGETYPE_PSD (entier)

IMAGETYPE_BMP (entier)

IMAGETYPE_WBMP (entier)

IMAGETYPE_XBM (entier)

IMAGETYPE_TIFF_II (entier)

IMAGETYPE_TIFF_MM (entier)

IMAGETYPE_IFF (entier)

IMAGETYPE_JB2 (entier)

IMAGETYPE_JPC (entier)

IMAGETYPE_JP2 (entier)

IMAGETYPE_JPX (entier)

IMAGETYPE_SWC (entier)

PNG_NO_FILTER (entier)

PNG_FILTER_NONE (entier)

PNG_FILTER_SUB (entier)

PNG_FILTER_UP (entier)

PNG_FILTER_AVG (entier)

PNG_FILTER_PAETH (entier)

PNG_ALL_FILTERS (entier)

Exemples

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.

Table des matières
gd_info -- Retourne des informations à propos de la bibliothèque GD installée
getimagesize -- Retourne la taille d'une image
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 -- Crée une image WBMP
imagealphablending -- Modifie le mode de blending d'une image
imageantialias -- Utiliser ou non les fonctions d'antialias
imagearc -- Dessine une ellipse partielle
imagechar -- Dessine un caractère horizontalement
imagecharup -- Dessine un caractère verticalement
imagecolorallocate -- Alloue une couleur pour une image
imagecolorallocatealpha -- Alloue une couleur à une image
imagecolorat -- Retourne l'index de la couleur d'un pixel donné
imagecolorclosest -- Retourne l'index de la couleur la plus proche d'une couleur donnée
imagecolorclosestalpha -- Retourne la couleur la plus proche, en tenant compte du canal alpha
imagecolorclosesthwb -- Lit l'index de la couleur la plus proche d'une couleur spécifiée avec sa teinte, blanc et noir
imagecolordeallocate -- Supprime une couleur d'une image
imagecolorexact -- Retourne l'index de la couleur donnée
imagecolorexactalpha -- Retourne l'index d'une couleur avec son canal alpha
imagecolormatch -- Fait correspondre un peu plus les couleurs de la version palette d'une image aux couleurs de sa version truecolor
imagecolorresolve -- Retourne l'index de la couleur donnée, ou la plus proche possible
imagecolorresolvealpha -- Retourne un index de couleur ou son alternative la plus proche, y compris le canal alpha
imagecolorset -- Change la couleur dans une palette à l'index donné
imagecolorsforindex -- Retourne la couleur associée à un index
imagecolorstotal -- Calcule le nombre de couleurs d'une palette
imagecolortransparent -- Définit la couleur transparente
imageconvolution -- Applique une matrice de la convolution 3x3, en utilisant le coefficient et l'excentrage
imagecopy -- Copie une partie d'une image
imagecopymerge -- Copie et fusionne une partie d'une image
imagecopymergegray -- Copie et fusionne une partie d'une image en niveaux de gris
imagecopyresampled -- Copie, redimensionne, rééchantillonne une image
imagecopyresized -- Copie et redimensionne une partie d'une image
imagecreate -- Crée une nouvelle image à palette
imagecreatefromgd2 -- Crée une nouvelle image à partir d'un fichier GD2 ou d'une URL
imagecreatefromgd2part -- Crée une nouvelle image à partir d'une partie de fichier GD2 ou d'une URL
imagecreatefromgd -- Crée une nouvelle image à partir d'un fichier GD ou d'une URL
imagecreatefromgif -- Crée une nouvelle image à partir d'un fichier ou d'une URL
imagecreatefromjpeg -- Crée une nouvelle image à partir d'un fichier ou d'une URL
imagecreatefrompng -- Crée une nouvelle image à partir d'un fichier ou d'une URL
imagecreatefromstring -- Crée une image à partir d'une chaîne
imagecreatefromwbmp -- Crée une nouvelle image à partir d'un fichier ou d'une URL
imagecreatefromxbm -- Crée une nouvelle image à partir d'un fichier ou d'une URL
imagecreatefromxpm -- Crée une nouvelle image à partir d'un fichier ou d'une URL
imagecreatetruecolor -- Crée une nouvelle image en couleurs vraies
imagedashedline -- Dessine une ligne pointillée
imagedestroy -- Détruit une image
imageellipse -- Dessine une ellipse
imagefill -- Remplissage
imagefilledarc -- Dessine une ellipse partielle et la 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
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
imagegif -- Envoie une image GIF vers un navigateur ou un fichier
imageinterlace -- Active ou désactive l'entrelacement
imageistruecolor -- Détermine si une image est une image truecolor
imagejpeg -- Envoie une image JPEG vers un navigateur ou un fichier
imagelayereffect -- Active l'option d'alpha blending, pour utiliser les effets de libgd
imageline -- Dessine une ligne
imageloadfont -- Charge une nouvelle police
imagepalettecopy -- Copie la palette d'une image à l'autre
imagepng -- Envoie une image PNG vers un navigateur ou un fichier
imagepolygon -- Dessine un polygone
imagepsbbox -- Retourne le rectangle entourant un texte et dessiné avec une police PostScript Type1
imagepsencodefont -- Change le codage vectoriel d'un caractère dans une police
imagepsextendfont -- Étend ou condense une police de caractères
imagepsfreefont -- Libère la mémoire occupée par une police PostScript Type 1
imagepsloadfont -- Charge une police PostScript Type 1 depuis un fichier
imagepsslantfont -- Incline une police de caractères PostScript
imagepstext -- Dessine un texte sur une image avec une police PostScript Type1
imagerectangle -- Dessine un rectangle
imagerotate -- Fait tourner une image d'un angle
imagesavealpha -- Configure l'enregistrement des informations complètes du canal alpha lors de sauvegardes d'images PNG
imagesetbrush -- Modifie la brosse pour le dessin des lignes
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 -- Affiche une image WBMP
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

Précédent | Sommaire | Suivant
iis_stop_service | Niveau supérieur | gd_info


gd_info

(PHP 4 >= 4.3.0, PHP 5)

gd_info -- Retourne des informations à propos de la bibliothèque GD installée

Description

array gd_info ( void )

Retourne des informations à propos de la bibliothèque GD installée.

Valeurs de retour

Retourne un tableau associatif.

Tableau 1. Eléments du tableau retournés par gd_info()

Attribut | Signification
GD Version | chaîne de caractères décrivant la version de libgd qui est installée.
Freetype Support | booléen. TRUE si le support Freetype est installé.
Freetype Linkage | chaîne de caractères décrivant la façon avec laquelle Freetype a été lié. Les valeurs attendues sont : 'with freetype', 'with TTF library' et 'with unknown library'. Cet élément ne sera défini que si Freetype Support est évalué TRUE.
T1Lib Support | booléen. TRUE si le support T1Lib est inclus.
GIF Read Support | booléen. TRUE si le support pour la lecture des images GIF est inclus.
GIF Create Support | booléen. TRUE si le support pour la création des images GIF est inclus.
JPG Support | booléen. TRUE si le support de JPG 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.

Exemples

Exemple 1. Exemple avec gd_info()

<?php
var_dump(gd_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(9) {
  ["GD Version"]=>
  string(24) "bundled (2.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["T1Lib Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
}

Voir aussi

imagepng()
imagejpeg()
imagegif()
imagewbmp()
imagetypes()

Précédent | Sommaire | Suivant
Images | Niveau supérieur | getimagesize


getimagesize

(PHP 3, PHP 4, PHP 5)

getimagesize -- Retourne la taille d'une image

Description

array getimagesize ( string filename [, array &imageinfo] )

getimagesize() va déterminer la taille de l'image fournie et en retourner 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 la paramètre imageinfo.

Note : Notez que JPC et JP2 sont capables d'avoir des composants avec une profondeur de bit différente. Dans ce cas, la valeur de "bits" est la plus grande profondeur de bit rencontrée. De même, les fichiers JP2 disposent du support de multiple JPEG 2000 codestreams. Dans ce cas, getimagesize() retourne les valeurs pour le premier codestream rencontré à la racine du fichier.

Liste de paramètres

filename

imageinfo

Ce paramètre optionnel permet d'extraire des informations supplémentaires du fichier image. Actuellement, cette option va retourner différents marqueurs JPG APP dans un tableau associatif. Certains programmes utilisent ces marqueur APP pour préciser les informations dans les balises HTML. Un marqueur commun est le marqueur APP13, décrit à http://www.iptc.org/. Vous pouvez utiliser la fonction iptcparse() pour analyser ce marqueur, et obtenir des informations intelligibles.

Valeurs de retour

Retourne un tableau contenant 5 éléments.

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 parmis IMAGETYPE_XXX, 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 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 de ces valeurs 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 ou bien si filename n'est pas une image valide, getimagesize() générera une erreur de niveau E_WARNING.

Historique

Version | Description
4.3.2 | Le support de JPC, JP2, JPX, JB2, XBM, et WBMP devient disponible.
4.3.2 | Le support JPEG 2000 a été ajouté pour le paramètre imageinfo.
4.3.0 | bits et channels sont présents pour les autres types d'images.
4.3.0 | mime a été ajouté.
4.3.0 | Le support de SWC a été ajouté.
4.2.0 | Le support de TIFF a été ajouté.
4.0.5 | Le support d'URL a été ajouté.

Exemples

Exemple 2. Exemple avec getimagesize()

<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"Exemple avec getimagesize()\" />";
?>

Exemple 3. getimagesize() avec une URL

<?php
$size = getimagesize("http://www.example.com/gifs/logo.gif");

// Si le nom du fichier comporte des espaces, encodez-le !
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");

?>

Exemple 4. getimagesize() qui retourne IPTC

<?php
$size = getimagesize("testimg.jpg", $info);
if (isset($info["APP13"])) {
    $iptc = iptcparse($info["APP13"]);
    var_dump($iptc);
}
?>

Notes

Note : La fonction getimagesize() ne requiert pas la bibliothèque GD.

Voir aussi

image_type_to_mime_type()
exif_imagetype()
exif_read_data()
exif_thumbnail()

Précédent | Sommaire | Suivant
gd_info | Niveau supérieur | image_type_to_extension


image_type_to_extension

(no version information, might be only in CVS)

image_type_to_extension -- Retourne l'extension du fichier pour le type d'image

Description

string image_type_to_extension ( int imagetype [, bool include_dot] )

Retourne l'extension pour la constante IMAGETYPE_XXX fournie.

Liste de paramètres

imagetype

Une des constantes IMAGETYPE_XXX.

include_dot

Si l'on doit ajouter un point à l'extension ou non. Par défaut, vaut TRUE.

Valeurs de retour

Une chaîne de caractères avec l'extension, correspondant au type de l'image fournie.

Précédent | Sommaire | Suivant
getimagesize | Niveau supérieur | image_type_to_mime_type


image_type_to_mime_type

(PHP 4 >= 4.3.0, PHP 5)

image_type_to_mime_type -- Lit le Mime-Type d'un type d'image

Description

string image_type_to_mime_type ( int imagetype )

Détermine le type Mime (Mime-Type), à utiliser dans l'en-tête HTTP Content-type.

Liste de paramètres

imagetype

Une des constantes IMAGETYPE_XXX

Valeurs de retour

Les valeurs retournées sont les suivantes

Tableau 1. Valeurs des constantes retournées

imagetype | Valeur retournée
IMAGETYPE_GIF | image/gif
IMAGETYPE_JPEG | image/jpeg
IMAGETYPE_PNG | image/png
IMAGETYPE_SWF | application/x-shockwave-flash
IMAGETYPE_PSD | image/psd
IMAGETYPE_BMP | image/bmp
IMAGETYPE_TIFF_II (ordre intel) | image/tiff
IMAGETYPE_TIFF_MM (ordre motorola) | image/tiff
IMAGETYPE_JPC | application/octet-stream
IMAGETYPE_JP2 | image/jp2
IMAGETYPE_JPX | application/octet-stream
IMAGETYPE_JB2 | application/octet-stream
IMAGETYPE_SWC | application/x-shockwave-flash
IMAGETYPE_IFF | image/iff
IMAGETYPE_WBMP | image/vnd.wap.wbmp
IMAGETYPE_XBM | image/xbm

Exemples

Exemple 1. image_type_to_mime_type (fichier)

<?php
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
?>

Notes

Note : Cette fonction ne requiert par la bibliothèque GD.

Voir aussi

getimagesize()
exif_imagetype()
exif_read_data()
exif_thumbnail()

Précédent | Sommaire | Suivant
image_type_to_extension | Niveau supérieur | image2wbmp


image2wbmp

(PHP 4 >= 4.0.5, PHP 5)

image2wbmp -- Crée une image WBMP

Description

bool image2wbmp ( resource image [, string filename [, int threshold]] )

image2wbmp() affiche ou enregistre une version WBMP de l'image image fournie.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Chemin vers le fichier de sauvegarde. S'il n'est pas fourni, le flux de l'image sera directement affiché.

threshold

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

?>

Notes

Note : Le support WBMP n'est disponible qu'avec GD-1.8 ou plus récent.

Voir aussi

imagewbmp()

Précédent | Sommaire | Suivant
image_type_to_mime_type | Niveau supérieur | imagealphablending


imagealphablending

(PHP 4 >= 4.0.6, PHP 5)

imagealphablending -- Modifie le mode de blending d'une image

Description

bool imagealphablending ( resource image, bool blendmode )

imagealphablending() fournit deux modes de dessin des images en vraies couleurs (truecolors). En mode "blending", le canal alpha de chaque couleur est fournie à chaque fonction de dessin, tel que imagesetpixel() peut déterminer sa transparence. GD va alors automatiquement mixer la couleur à ce point, et stocker le résultat dans l'image. Le pixel résultant est alors opaque. En mode non-mixant, la couleur est copiée littéralement avec ses informations de canal alpha, et remplace le pixel de destination. Le mixage n'est pas disponible avec les images à palette.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

blendmode

Si l'on doit activer le mode blending ou non. Par défaut, FALSE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Précédent | Sommaire | Suivant
image2wbmp | Niveau supérieur | imageantialias


imageantialias

(PHP 4 >= 4.3.2, PHP 5)

imageantialias -- Utiliser ou non les fonctions d'antialias

Description

bool imageantialias ( resource image, bool on )

Active les méthodes de schéma rapide d'antialias et de polygones câblés. Il ne supporte pas les composants alpha. Il fonctionne en utilisant une opération directe de mélange. Il ne fonctionne qu'avec les images truecolor.

L'épaisseur et le style ne sont pas supporté.

L'utilisation des primitives antialias avec des arrière-plans transparents peut se terminer avec des résultats imprévus. La méthode de mélange utilise la couleur d'arrière-plan comme tout autre couleur. Les faiblesses du support du composant alpha font qu'il n'est pas autorisé de méthode d'antialias basée sur l'alpha.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

on

Si l'on doit activer l'antialias ou non.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

Voir aussi

imagecreatetruecolor()

Précédent | Sommaire | Suivant
imagealphablending | Niveau supérieur | imagearc


imagearc

(PHP 3, PHP 4, PHP 5)

imagearc -- Dessine une ellipse partielle

Description

bool imagearc ( resource image, int cx, int cy, int width, int height, int start, int end, int color )

imagearc() dessine une ellipse partielle, centrée sur les coordonnées fournies.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

cx

X : coordonnée du centre

cy

Y : coordonnée du centre

width

La largeur de l'ellipse

height

La hauteur de l'ellipse

start

L'angle de début de l'ellipse, en degrés

end

L'angle de fin de l'ellipse, en degrés. 0° correspond à la position "trois heures" et l'ellipse est dessiné dans le sens des éguilles d'une montre.

color

Un identifiant de couleur, créé par la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Dessine d'un cercle avec imagearc()

<?php

// Création d'une image 200*200
$img = imagecreatetruecolor(200, 200);

// Allocation de couleurs
$white = imagecolorallocate($img, 255, 255, 255);
$red   = imagecolorallocate($img, 255,   0,   0);
$green = imagecolorallocate($img,   0, 255,   0);
$blue  = imagecolorallocate($img,   0,   0, 255);

// Dessine la tête
imagearc($img, 100, 100, 200, 200,  0, 360, $white);
// La bouche
imagearc($img, 100, 100, 150, 150, 25, 155, $red);
// les yeux gauche et droit
imagearc($img,  60,  75,  50,  50,  0, 360, $green);
imagearc($img, 140,  75,  50,  50,  0, 360, $blue);

// Affichage au navigateur
header("Content-type: image/png");
imagepng($img);

// Libération de la mémoire
imagedestroy($img);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

imagefilledarc()
imageellipse()
imagefilledellipse()

Précédent | Sommaire | Suivant
imageantialias | Niveau supérieur | imagechar


imagechar

(PHP 3, PHP 4, PHP 5)

imagechar -- Dessine un caractère horizontalement

Description

bool imagechar ( resource image, int font, int x, int y, string c, int color )

imagechar() dessine le premier caractère de la chaîne c dans l'image image avec le coin supérieur gauche placé à la position x,y (le coin en haut à gauche est l'origine (0,0)) avec la couleur color.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

font

Peut être 1, 2, 3, 4, 5 pour les polices internes (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

x

X : coordonnée de départ

y

Y : coordonnée de départ

c

Le caractère à dessiner

color

Un identifiant de couleur créé par la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec imagechar()

<?php

$im = imagecreate(100, 100);

$string = 'PHP';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// affiche un "P" noir dans le coin gauche en haut
imagechar($im, 1, 0, 0, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

imagecharup()
imageloadfont()

Précédent | Sommaire | Suivant
imagearc | Niveau supérieur | imagecharup


imagecharup

(PHP 3, PHP 4, PHP 5)

imagecharup -- Dessine un caractère verticalement

Description

bool imagecharup ( resource image, int font, int x, int y, string c, int color )

Dessine le premier caractère de la chaîne c verticalement dans l'image image fournie.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

font

Peut être 1, 2, 3, 4, 5 pour les polices internes (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

x

X : coordonnée de départ

y

Y : coordonnée de départ

c

Le caractère à dessiner

color

Un identifiant de couleur, créé avec la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec imagecharup()

<?php

$im = imagecreate(100, 100);

$string = 'Notez que la première lettre est un N';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// affiche un "Z" noir sur un fond blanc
imagecharup($im, 3, 10, 10, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

imagechar()
imageloadfont()

Précédent | Sommaire | Suivant
imagechar | Niveau supérieur | imagecolorallocate


imagecolorallocate

(PHP 3, PHP 4, PHP 5)

imagecolorallocate -- Alloue une couleur pour une image

Description

int imagecolorallocate ( resource image, int red, int green, int blue )

Retourne un identifiant de couleur, représentant la couleur composée avec les couleurs RGB.

imagecolorallocate() doit être appelée pour créer chaque couleur qui sera représentée par image.

Note : Le premier appel à imagecolorallocate() remplit la couleur de fond avec la palette des images - images créées en utilisant imagecreate().

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur pour le composant rouge

green

Valeur pour le composant vert

blue

Valeur pour le composant bleu

Ces paramètres sont des entiers compris entre 0 et 255 ou des héxadécimaux compris entre 0x00 and 0xFF.

Valeurs de retour

Un identifiant de couleur ou FALSE si l'allocation échoue.

Historique

Version | Description
Avant la version 5.1.3 | Retourne -1 si l'allocation échoue.

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

Précédent | Sommaire | Suivant
imagecharup | Niveau supérieur | imagecolorallocatealpha


imagecolorallocatealpha

(PHP 4 >= 4.3.2, PHP 5)

imagecolorallocatealpha -- Alloue une couleur à une image

Description

int imagecolorallocatealpha ( resource image, int red, int green, int blue, int alpha )

imagecolorallocatealpha() se comporte comme imagecolorallocate() avec en plus le paramètre de transparence alpha.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

red

Valeur pour le composant rouge

green

Valeur pour le composant vert

blue

Valeur pour le 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 de couleurs 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.

Historique

Version | Description
Avant la version 5.1.3 | Retourne -1 si l'allocation échoue.

Exemples

Exemple 1. Exemple avec imagecolorallocatealpha()

<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);

// quelque chose pour obtenir un fond blanc avec une bordure noire
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);

$yellow_x = 100;
$yellow_y = 75;
$red_x    = 120;
$red_y    = 165;
$blue_x   = 187;
$blue_y   = 125;
$radius   = 150;

// alloue des couleurs avec des valeurs alpha
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red    = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);

// Dessine 3 ellipses
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);

// Ne pas oublier d'envoyer un header correct
header('Content-type: image/png');

// et finallement, afficher le résultat
imagepng($image);
imagedestroy($image);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Voir aussi

imagecolorallocate()
imagecolordeallocate()

Précédent | Sommaire | Suivant
imagecolorallocate | Niveau supérieur | imagecolorat


imagecolorat

(PHP 3, PHP 4, PHP 5)

imagecolorat -- Retourne l'index de la couleur d'un pixel donné

Description

int imagecolorat ( resource image, int x, int y )

Retourne l'index de la couleur du pixel situé aux coordonnées spécifiées, dans l'image image.

Si PHP supporte la bibliothèque GD version 2.0 ou plus récent, et que l'image est une image en TrueColor, cette fonction retourne la valeur RGB du pixel, sous forme d'un entier. Utiliser les opérateurs de bits et les masques pour distinguer le rouge, du vert et du bleu :

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x

X : coordonnée du point

y

Y : coordonnée du point

Valeurs de retour

Retourne l'index de la couleur.

Exemples

Exemple 1. Accès aux valeurs RGB

<?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(119)
int(123)
int(180)

Voir aussi

imagecolorset()
imagecolorsforindex()

Précédent | Sommaire | Suivant
imagecolorallocatealpha | Niveau supérieur | imagecolorclosest


imagecolorclosest

(PHP 3, PHP 4, PHP 5)

imagecolorclosest -- Retourne l'index de la couleur la plus proche d'une couleur donnée

Description

int imagecolorclosest ( resource image, int red, int green, int blue )

Retourne l'index de la couleur de la palette qui est la plus proche de la valeur RGB passée.

La "distance" entre la couleur souhaitée et les couleurs de la palette est calculée en considérant l'espace RGB comme un espace à 3 dimensions.

Si vous créez l'image depuis un fichier, seules les couleurs utilisées dans l'image seront résolues. Les couleurs uniquement présentes dans la palette ne seront pas résolues.

Liste de paramètres

image

Une ressource d'image, retourné 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 héxadé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.

Voir aussi

imagecolorexact()

Précédent | Sommaire | Suivant
imagecolorat | Niveau supérieur | imagecolorclosestalpha


imagecolorclosestalpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorclosestalpha -- Retourne la couleur la plus proche, en tenant compte du canal alpha

Description

int imagecolorclosestalpha ( resource image, int red, int green, int blue, int alpha )

Retourne l'index de la couleur, dans la palette de l'image image, la plus proche de la couleur spécifiée par les autres paramètres, au format RGB et de canal alpha alpha.

Liste de paramètres

image

Une ressource d'image, retourné 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 héxadécimaux compris entre 0x00 et 0xFF.

Valeurs de retour

Retourne l'index de la couleur la plus proche dans la palette.

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Voir aussi

imagecolorexactalpha()

Précédent | Sommaire | Suivant
imagecolorclosest | Niveau supérieur | imagecolorclosesthwb


imagecolorclosesthwb

(PHP 4 >= 4.0.1, PHP 5)

imagecolorclosesthwb -- Lit l'index de la couleur la plus proche d'une couleur spécifiée avec sa teinte, blanc et noir

Description

int imagecolorclosesthwb ( resource image, int red, int green, int blue )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Une ressource d'image, retourné 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

Précédent | Sommaire | Suivant
imagecolorclosestalpha | Niveau supérieur | imagecolordeallocate


imagecolordeallocate

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

imagecolordeallocate -- Supprime une couleur d'une image

Description

bool imagecolordeallocate ( resource image, int color )

Désalloue la couleur color précédemment allouée avec la fonction imagecolorallocate(), pour l'image image.

Liste de paramètres

image

Une ressource d'image, retourné 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, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec imagecolordeallocate()

<?php
$white = imagecolorallocate($im, 255, 255, 255);
imagecolordeallocate($im, $white);
?>

Voir aussi

imagecolorallocate()
imagecolorallocatealpha()

Précédent | Sommaire | Suivant
imagecolorclosesthwb | Niveau supérieur | imagecolorexact


imagecolorexact

(PHP 3, PHP 4, PHP 5)

imagecolorexact -- Retourne l'index de la couleur donnée

Description

int imagecolorexact ( resource image, int red, int green, int blue )

Retourne l'index de la couleur spécifiée dans la palette de l'image image.

Si vous créez l'image depuis un fichier, seules les couleurs utilisées dans l'image seront résolues. Les couleurs uniquement présentes dans la palette ne seront pas résolues.

Liste de paramètres

image

Une ressource d'image, retourné 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.

Voir aussi

imagecolorclosest()

Précédent | Sommaire | Suivant
imagecolordeallocate | Niveau supérieur | imagecolorexactalpha


imagecolorexactalpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorexactalpha -- Retourne l'index d'une couleur avec son canal alpha

Description

int imagecolorexactalpha ( resource image, int red, int green, int blue, int alpha )

Retourne l'index de la couleur fournie au format RGB et son canal alpha alpha, dans l'image image.

Liste de paramètres

image

Une ressource d'image, retourné 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 héxadé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.

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Voir aussi

imagecolorclosestalpha()

Précédent | Sommaire | Suivant
imagecolorexact | Niveau supérieur | imagecolormatch


imagecolormatch

(PHP 4 >= 4.3.0, PHP 5)

imagecolormatch -- Fait correspondre un peu plus les couleurs de la version palette d'une image aux couleurs de sa version truecolor

Description

bool imagecolormatch ( resource image1, resource image2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image1

Une ressource d'image truecolor

image2

Une ressource de palette d'image pointant sur une image qui a la même taille que image1

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Voir aussi

imagecreatetruecolor()

Précédent | Sommaire | Suivant
imagecolorexactalpha | Niveau supérieur | imagecolorresolve


imagecolorresolve

(PHP 3 >= 3.0.2, PHP 4, PHP 5)

imagecolorresolve -- Retourne l'index de la couleur donnée, ou la plus proche possible

Description

int imagecolorresolve ( resource image, int red, int green, int blue )

Retourne un index de couleur à tous les coups. Soit il arrive à trouver la couleur demandée dans la palette, soit il recherche 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 seront pas résolues.

Liste de paramètres

image

Une ressource d'image, retourné 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.

Voir aussi

imagecolorclosest()

Précédent | Sommaire | Suivant
imagecolormatch | Niveau supérieur | imagecolorresolvealpha


imagecolorresolvealpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorresolvealpha -- Retourne un index de couleur ou son alternative la plus proche, y compris le canal alpha

Description

int imagecolorresolvealpha ( resource image, int red, int green, int blue, int alpha )

Retourne toujours un index de couleur, disponible dans la palette de l'image image : soit c'est la couleur exacte, soit c'est la meilleure approximation.

Liste de paramètres

image

Une ressource d'image, retourné 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 héxadécimaux compris entre 0x00 et 0xFF.

Valeurs de retour

Returns a color index.

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Voir aussi

imagecolorclosestalpha()

Précédent | Sommaire | Suivant
imagecolorresolve | Niveau supérieur | imagecolorset


imagecolorset

(PHP 3, PHP 4, PHP 5)

imagecolorset -- Change la couleur dans une palette à l'index donné

Description

void imagecolorset ( resource image, int index, int red, int green, int blue )

Permet d'attribuer à un index d'une palette une couleur spécifique. C'est une fonction très pratique pour effectuer du remplissage de couleur sans le faire réellement.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

index

Un index de la palette

red

Valeur du composant rouge

green

Valeur du composant vert

blue

Valeur du composant bleu

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

imagecolorat()

Précédent | Sommaire | Suivant
imagecolorresolvealpha | Niveau supérieur | imagecolorsforindex


imagecolorsforindex

(PHP 3, PHP 4, PHP 5)

imagecolorsforindex -- Retourne la couleur associée à un index

Description

array imagecolorsforindex ( resource image, int index )

Retourne la couleur associée à un index spécifié.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

index

Valeurs de retour

Retourne un tableau associatif avec les clés "red", "green", "blue" et "alpha" qui contiennent les valeurs pour l'index de la couleur spécifiée.

Exemples

Exemple 1. Exemple avec imagecolorsforindex()

<?php

// on ouvre une image
$im = imagecreatefrompng('nexen.png');

// on obtient une couleur
$start_x = 40;
$start_y = 50;
$color_index = imagecolorat($im, $start_x, $start_y);

// on la rend lisible
$color_tran = imagecolorsforindex($im, $color_index);

// quelle est-elle ?
print_r($color_tran);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [red] => 226
   [green] => 222
   [blue] => 252
   [alpha] => 0
)

Voir aussi

imagecolorat()
imagecolorexact()

Précédent | Sommaire | Suivant
imagecolorset | Niveau supérieur | imagecolorstotal


imagecolorstotal

(PHP 3, PHP 4, PHP 5)

imagecolorstotal -- Calcule le nombre de couleurs d'une palette

Description

int imagecolorstotal ( resource image )

Retourne le nombre de couleurs de la palette de l'image.

Liste de paramètres

image

Une ressource d'image, retourné 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.

Voir aussi

imagecolorat()
imagecolorsforindex()
imageistruecolor()

Précédent | Sommaire | Suivant
imagecolorsforindex | Niveau supérieur | imagecolortransparent


imagecolortransparent

(PHP 3, PHP 4, PHP 5)

imagecolortransparent -- Définit la couleur transparente

Description

int imagecolortransparent ( resource image [, int color] )

Définit la couleur transparente pour l'image image fournie.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

color

Un identifiant de couleur créé par la fonction imagecolorallocate()

Valeurs de retour

L'identifiant de la nouvelle couleur transparente (ou l'actuelle, si aucune n'est spécifiée) est retourné.

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.

Précédent | Sommaire | Suivant
imagecolorstotal | Niveau supérieur | imageconvolution


imagecopy

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

imagecopy -- Copie une partie d'une image

Description

bool imagecopy ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h )

Copie une partie de l'image src_im sur l'image de destination dst_im, en commençant aux coordonnées src_x, src_y et sur la largeur de src_w et la hauteur de src_h. La portion ainsi définie sera copiée et placée aux coordonnées dst_x et dst_y.

Liste de paramètres

dst_im

Lien vers la ressource de l'image de destination

src_im

Lien vers la ressource de l'image source

dst_x

X : coordonnées du point de destination

dst_y

Y : coordonnées du point de destination

src_x

X : coordonnées du point source

src_y

Y : coordonnées du point source

src_w

Largeur de la source

src_h

Hauteur de la source

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imageconvolution | Niveau supérieur | imagecopymerge


imagecopymerge

(PHP 4 >= 4.0.1, PHP 5)

imagecopymerge -- Copie et fusionne une partie d'une image

Description

bool imagecopymerge ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct )

Copie une partie de l'image src_im dans l'image de destination dst_im en commençant aux coordonnées (src_x, src_y), avec la largeur src_w et la hauteur src_h. La zone de l'image ainsi définie sera copiée aux coordonnées (dst_x, dst_y), dans l'image de destination.

Liste de paramètres

dst_im

Ressource de l'image de destination

src_im

Ressource de l'image source

dst_x

X : coordonnée du point de destination

dst_y

Y : coordonnée du point de destination

src_x

X : coordonnée du point source

src_y

Y : coordonnée du point source

src_w

Largeur de la source

src_h

Hauteur de la source

pct

Les deux images seront fusionnées suivant le paramètre pct, qui peut valoir de 0 à 100. Si pct = 0, aucune action n'est faite, alors que si pct = 100, imagecopymerge() se comporte exactement comme imagecopy() pour les images de palette, 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, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagecopy | Niveau supérieur | imagecopymergegray


imagecopymergegray

(PHP 4 >= 4.0.6, PHP 5)

imagecopymergegray -- Copie et fusionne une partie d'une image en niveaux de gris

Description

bool imagecopymergegray ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct )

imagecopymergegray() copie une partie de l'image src_im dans l'image de destination dst_im commençant aux coordonnées (src_x, src_y), avec la largeur src_w et la hauteur src_h. La zone de l'image ainsi définie sera copiée aux coordonnées (dst_x, dst_y), dans l'image de destination.

imagecopymergegray() est identique à la fonction imagecopymerge(), hormis le fait que lors de la fusion, le "hue" de l'image sera conservé grâce à la conversion de la zone dans l'image de destination en gris, avant l'opération de copie.

Liste de paramètres

dst_im

Ressource de l'image de destination

src_im

Ressource de l'image source

dst_x

X : coordonnée du point de destination

dst_y

Y : coordonnée du point de destination

src_x

X : coordonnée du point source

src_y

Y : coordonnée du point source

src_w

Largeur de la source

src_h

Hauteur de la source

pct

Les deux images seront fusionnées suivant le paramètre pct, qui peut valoir de 0 à 100. Si pct = 0, aucune action n'est faite, alors que si pct = 100, imagecopymerge() se comporte exactement comme imagecopy().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagecopymerge | Niveau supérieur | imagecopyresampled


imagecopyresampled

(PHP 4 >= 4.0.6, PHP 5)

imagecopyresampled -- Copie, redimensionne, rééchantillonne une image

Description

bool imagecopyresampled ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )

imagecopyresampled() copie une zone rectangulaire de l'image src_im vers l'image dst_im. Durant la copie, la zone est rééchantillonnée de manière à conserver la clarté de l'image durant une réduction.

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_im

Lien vers la ressource de l'image de destination

src_im

Lien vers la ressource de l'image source

dst_x

X : coordonnées du point de destination

dst_y

Y : coordonnées du point de destination

src_x

X : coordonnées du point source

src_y

Y : coordonnées du point source

dst_w

Largueur de la destination

dst_h

Hauteur de la destination

src_w

Largeur de la source

src_h

Hauteur de la source

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple simple

Cet exemple redimensionne une image à la moitié de sa taille originale.

<?php
// Le fichier
$filename = 'test.jpg';
$percent = 0.5;

// Content type
header('Content-type: image/jpeg');

// Calcul des nouvelles dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Redimensionnement
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Affichage
imagejpeg($image_p, null, 100);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Exemple 2. Redimensionnement proportionnel d'une image

Cet exemple affichera une image avec une largeur ou une hauteur maximale de 200 pixels.

<?php
// Le fichier
$filename = 'test.jpg';

// Définition de la largeur et de la hauteur maximale
$width = 200;
$height = 200;

// Content type
header('Content-type: image/jpeg');

// Cacul des nouvelles dimensions
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
   $width = $height*$ratio_orig;
} else {
   $height = $width/$ratio_orig;
}

// Redimensionnement
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Affichage
imagejpeg($image_p, null, 100);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

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 celles générée par la fonction imagecreatetruecolor().

Voir aussi

imagecopyresized()

Précédent | Sommaire | Suivant
imagecopymergegray | Niveau supérieur | imagecopyresized


imagecopyresized

(PHP 3, PHP 4, PHP 5)

imagecopyresized -- Copie et redimensionne une partie d'une image

Description

bool imagecopyresized ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )

imagecopyresized() copie une partie rectangulaire d'une image dans une autre image de destination. dst_image est l'image de destination, src_image est l'image source. 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_im

Lien vers la ressource de l'image de destination

src_im

Lien vers la ressource de l'image source

dst_x

X : coordonnée du point de destination

dst_y

Y : coordonnée du point de destination

src_x

X : coordonnée du point source

src_y

Y : coordonnée du point source

dst_w

Largeur de la destination

dst_h

Hauteur de la destination

src_w

Largeur de la source

src_h

Hauteur de la source

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Redimensionnement d'une image

Cet exemple affichera l'image redimensionné à la moitié de sa taille d'origine.

<?php
// Fichier et nouvelle taille
$filename = 'test.jpg';
$percent = 0.5;

// Content type
header('Content-type: image/jpeg');

// Calcul des nouvelles dimensions
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// Chargement
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

// Redimensionnement
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// Affichage
imagejpeg($thumb);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

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

Précédent | Sommaire | Suivant
imagecopyresampled | Niveau supérieur | imagecreate


imagecreate

(PHP 3, PHP 4, PHP 5)

imagecreate -- Crée une nouvelle image à palette

Description

resource imagecreate ( int width, int height )

imagecreate() retourne un identifiant d'image représentant une image vide.

Nous recommandons l'utilisation de imagecreatetruecolor() à la place de imagecreate().

Liste de paramètres

width

La largeur de l'image

height

La hauteur de l'image

Valeurs de retour

Retourne un identifiant de ressource d'image en cas de succès, FALSE si une erreur survient.

Exemples

Exemple 1. Création d'une image GD et affichage de cette image

<?php
header("Content-type: image/png");
$im = @imagecreate(110, 20)
    or die("Impossible d'initialiser la bibliothèque GD");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

imagedestroy()
imagecreatetruecolor()

Précédent | Sommaire | Suivant
imagecopyresized | Niveau supérieur | imagecreatefromgd2


imagecreatefromgd2

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd2 -- Crée une nouvelle image à partir d'un fichier GD2 ou d'une URL

Description

resource imagecreatefromgd2 ( string filename )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Astuce : Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Annexe N pour une liste des protocoles URL supportés.

Liste de paramètres

filename

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.

Précédent | Sommaire | Suivant
imagecreate | Niveau supérieur | imagecreatefromgd2part


imagecreatefromgd2part

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd2part -- Crée une nouvelle image à partir d'une partie de fichier GD2 ou d'une URL

Description

resource imagecreatefromgd2part ( string filename, int srcX, int srcY, int width, int height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Astuce : Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Annexe N pour une liste des protocoles URL supportés.

Liste de paramètres

filename

srcX

srcY

width

height

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.

Précédent | Sommaire | Suivant
imagecreatefromgd2 | Niveau supérieur | imagecreatefromgd


imagecreatefromgd

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd -- Crée une nouvelle image à partir d'un fichier GD ou d'une URL

Description

resource imagecreatefromgd ( string filename )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Astuce : Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Annexe N pour une liste des protocoles URL supportés.

Liste de paramètres

filename

Notes

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.

Précédent | Sommaire | Suivant
imagecreatefromgd2part | Niveau supérieur | imagecreatefromgif


imagecreatefromgif

(PHP 3, PHP 4, PHP 5)

imagecreatefromgif -- Crée une nouvelle image à partir d'un fichier ou d'une URL

Description

resource imagecreatefromgif ( string filename )

imagecreatefromgif() retourne un identifiant d'image qui représente l'image obtenue à partir du fichier dont le nom est donné par filename.

Pour simplifier le débogage, utilisez le code suivant, qui retourne une erreur GIF :

Exemple 1. Exemple de gestion des erreurs durant la création d'image

<?php
function LoadGif ($imgname) {
    $im = @imagecreatefromgif ($imgname); /* Tentative d'ouverture */
    if (!$im) { /* Test d'échec */
        $im = imagecreatetruecolor (150, 30); /* Création d'une image vide */
        $bgc = imagecolorallocate ($im, 255, 255, 255);
        $tc = imagecolorallocate ($im, 0, 0, 0);
        imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
        /* Affichage d'un message d'erreur */
        imagestring ($im, 1, 5, 5, "Erreur au chargement de l'image $imgname", $tc);
    }
    return $im;
}
header("Content-Type: image/gif");
$img = LoadGif("bogus.image");
imagegif($img);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Astuce : Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Annexe N pour une liste des protocoles URL supportés.

Liste de paramètres

filename

Chemin vers l'image WBMP

Valeurs de retour

Retourne un identifiant de ressource image en cas de succès, FALSE si une erreur survient.

Notes

Note : Le support du GIF a été supprimé de la bibliothèque GD dans sa verison 1.6 et a été rajouté depuis la version 2.0.28. Cette fonction n'est donc pas disponible entre ces deux verisons.

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.

Précédent | Sommaire | Suivant
imagecreatefromgd | Niveau supérieur | imagecreatefromjpeg


imagecreatefromjpeg

(PHP 3 >= 3.0.16, PHP 4, PHP 5)

imagecreatefromjpeg -- Crée une nouvelle image à partir d'un fichier ou d'une URL

Description

resource imagecreatefromjpeg ( string filename )

imagecreatefromjpeg() retourne un identifiant d'image représentant une image obtenue à partir du fichier filename.

imagecreatefromjpeg() retourne une chaîne vide en cas d'échec. Elle affiche aussi un message d'erreur, qui est représenté comme un lien brisé dans un navigateur web. Pour faciliter le débogage, voici une erreur JPEG :

Exemple 1. Exemple de gestion d'erreur lors de la création d'image

<?php
function LoadJpeg($imgname) {
    $im = @imagecreatefromjpeg($imgname); /* Tentative d'ouverture */
    if (!$im) { /* Vérification */
        $im  = imagecreatetruecolor(150, 30); /* Création d'une image blanche */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Affichage d'un message d'erreur */
        imagestring($im, 1, 5, 5, "Erreur de chargement de l'image $imgname", $tc);
    }
    return $im;
}
header("Content-Type: image/jpeg");
$img = LoadJpeg("bogus.image");
imagejpeg($img);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Astuce : Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Annexe N pour une liste des protocoles URL supportés.

Liste de paramètres

filename

Chemin vers l'image JPEG

Valeurs de retour

Retourne un identifiant de ressource image en cas de succès, FALSE si une erreur survient.

Notes

Note : Le support JPEG n'est disponible que si PHP a été compilé avec GD-1.8 ou supérieur.

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.

Précédent | Sommaire | Suivant
imagecreatefromgif | Niveau supérieur | imagecreatefrompng


imagecreatefrompng

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

imagecreatefrompng -- Crée une nouvelle image à partir d'un fichier ou d'une URL

Description

resource imagecreatefrompng ( string filename )

imagecreatefrompng() retourne un identifiant d'image représentant une image obtenue à partir du fichier filename.

imagecreatefrompng() retourne une chaîne vide en cas d'échec. Elle affiche aussi un message d'erreur, qui s'affiche comme un lien brisé dans un navigateur web. Pour faciliter le débogage, voici une erreur PNG :

Exemple 1. Exemple de gestion d'erreur lors de la création d'image

<?php
function LoadPNG($imgname)
{
    $im = @imagecreatefrompng($imgname); /* Tentative d'ouverture */
    if (!$im) { /* Vérification */
        $im  = imagecreatetruecolor(150, 30); /* Création d'une image blanche */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Affichage d'un message d'erreur */
        imagestring($im, 1, 5, 5, "Erreur de chargement de l'image $imgname", $tc);
    }
    return $im;
}
header("Content-Type: image/png");
$img = LoadPNG("bogus.image");
imagepng($img);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Astuce : Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Annexe N pour une liste des protocoles URL supportés.

Liste de paramètres

filename

Chemin vers l'image PNG

Valeurs de retour

Retourne un identifiant de ressource image en cas de succès, FALSE si une erreur survient.

Notes

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.

Précédent | Sommaire | Suivant
imagecreatefromjpeg | Niveau supérieur | imagecreatefromstring


imagecreatefromstring

(PHP 4 >= 4.0.4, PHP 5)

imagecreatefromstring -- Crée une image à partir d'une chaîne

Description

resource imagecreatefromstring ( string data )

imagecreatefromstring() retourne un identifiant d'image représentant l'image obtenu depuis la chaîne image. Le type de l'image sera automatiquement détecté si vous avez compilé PHP avec les supports : JPEG, PNG, GIF, WBMP et GD2.

Liste de paramètres

image

Une chaîne contenant les données de l'image

Valeurs de retour

Une ressource d'image sera retourné en cas de succès. FALSE est retourné si le type de l'image n'est pas supporté, si les données ne sont pas dans un format reconnu ou si l'image est corrompue et donc ne peut être chargée.

Exemples

Exemple 1. Exemple avec imagecreatefromstring()

<?php
$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);

$im = imagecreatefromstring($data);
if ($im !== false) {
    header('Content-Type: image/png');
    imagepng($im);
}
else {
    echo 'An error occurred.';
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

imagecreatefromjpeg()
imagecreatefrompng()
imagecreatefromgif()
imagecreatetruecolor()

Précédent | Sommaire | Suivant
imagecreatefrompng | Niveau supérieur | imagecreatefromwbmp


imagecreatefromwbmp

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromwbmp -- Crée une nouvelle image à partir d'un fichier ou d'une URL

Description

resource imagecreatefromwbmp ( string filename )

imagecreatefromwbmp() retourne une ressource d'image PHP, représentant l'image filename.

imagecreatefromwbmp() retourne une chaîne vide en cas d'erreur. Il retourne aussi un message d'erreur qui s'affiche comme un lien mort dans un navigateur. Pour aider au débogage, l'exemple suivant va produire une erreur WBMP :

Exemple 1. Exemple de gestion des erreurs durant la création d'une image

<?php
function LoadWBMP($imgname) {
    $im = @imagecreatefromwbmp($imgname); /* Tentative d'ouverture */
    if (!$im) { /* Vérification que cela s'est bien passé */
        $im  = imagecreatetruecolor (20, 20); /* Crée une image blanche */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 10, 10, $bgc);
        /* Affiche le message d'erreur */
        imagestring($im, 1, 5, 5, "Erreur de chargement de $imgname", $tc);
    }
    return $im;
}
?>

Astuce : Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Annexe N pour une liste des protocoles URL supportés.

Liste de paramètres

filename

Chemin vers l'image WBMP

Valeurs de retour

Retourne un identifiant de ressource image en cas de succès, FALSE si une erreur survient.

Notes

Note : Le support WBMP n'est disponible que si PHP a été compilé avec GD-1.8 ou supérieur.

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.

Précédent | Sommaire | Suivant
imagecreatefromstring | Niveau supérieur | imagecreatefromxbm


imagecreatefromxbm

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromxbm -- Crée une nouvelle image à partir d'un fichier ou d'une URL

Description

resource imagecreatefromxbm ( string filename )

imagecreatefromxbm() retourne un identifiant d'image représentant l'image obtenue à partir du fichier filename.

Astuce : Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Annexe N pour une liste des protocoles URL supportés.

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.

Liste de paramètres

filename

Chemin vers l'image XBM

Valeurs de retour

Retourne un identifiant de ressource image en cas de succès, FALSE si une erreur survient.

Précédent | Sommaire | Suivant
imagecreatefromwbmp | Niveau supérieur | imagecreatefromxpm


imagecreatefromxpm

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromxpm -- Crée une nouvelle image à partir d'un fichier ou d'une URL

Description

resource imagecreatefromxpm ( string filename )

imagecreatefromxpm() retourne un identifiant d'image représentant l'image obtenue à partir du fichier filename.

Astuce : Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si l'option des "fopen wrappers" a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Annexe N pour une liste des protocoles URL supportés.

Liste de paramètres

filename

Chemin vers l'image XPM

Valeurs de retour

Retourne un identifiant de ressource image en cas de succès, FALSE si une erreur survient.

Valeurs de retour

Note : Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

Avertissement

Les versions Windows de PHP antérieures à la version 4.3.0 ne supportent pas l'accès aux fichiers distants avec cette fonction, même si allow_url_fopen est activé.

Précédent | Sommaire | Suivant
imagecreatefromxbm | Niveau supérieur | imagecreatetruecolor


imagecreatetruecolor

(PHP 4 >= 4.0.6, PHP 5)

imagecreatetruecolor -- Crée une nouvelle image en couleurs vraies

Description

resource imagecreatetruecolor ( int width, int height )

imagecreatetruecolor() retourne une ressource représentant une image noire.

Suivant votre version de PHP et de GD, cette fonction est définie ou non. De PHP version 4.0.6 à la version 4.1.x, cette fonction existe toujours si le module GD est chargé, mais l'appeler sans avoir GD2 d'installé fera que PHP lancera une erreur fatale et sortira. Avec PHP 4.2.x, ce comportement est différent et PHP lancera une alerte au lieu d'une erreur. Pour les autres versions de PHP, cette fonction n'est définie que si une version correcte de GD est installée.

Liste de paramètres

width

Largeur de l'image

height

Hauteur de l'image

Valeurs de retour

Retourne un identifiant de ressource image en cas de succès, FALSE si une erreur survient.

Exemples

Exemple 1. Création d'un flux d'image GD, et affichage

<?php
header ("Content-type: image/png");
$im = @imagecreatetruecolor(120, 20)
      or die("Impossible de crée un flux d'image GD");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "Une simple chaîne de texte", $text_color);
imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Note : imagecreatetruecolor() ne fonctionne pas avec le format GIF.

Voir aussi

imagedestroy()
imagecreate()

Précédent | Sommaire | Suivant
imagecreatefromxpm | Niveau supérieur | imagedashedline


imagedashedline

(PHP 3, PHP 4, PHP 5)

imagedashedline -- Dessine une ligne pointillée

Description

bool imagedashedline ( resource image, int x1, int y1, int x2, int y2, int color )

imagedashedline() est obsolète. Utilisez plutôt
une combinaison des fonctions imagesetstyle() et
imageline().

Précédent | Sommaire | Suivant
imagecreatetruecolor | Niveau supérieur | imagedestroy


imagedestroy

(PHP 3, PHP 4, PHP 5)

imagedestroy -- Détruit une image

Description

bool imagedestroy ( resource image )

imagedestroy() libère toute la mémoire associée à l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagedashedline | Niveau supérieur | imageellipse


imageellipse

(PHP 4 >= 4.0.6, PHP 5)

imageellipse -- Dessine une ellipse

Description

bool imageellipse ( resource image, int cx, int cy, int width, int height, int color )

Dessine une ellipse centrée sur le point spécifié.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

cx

X : coordonnée du centre

cy

Y : coordonnée du centre

width

La largeur de l'ellipse

height

La hauteur de l'ellipse

color

La couleur de l'ellipse. Un identifiant de couleur créé avec la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec imageellipse()

<?php

// Nouvelle image
$image = imagecreatetruecolor(400, 300);

// Remplissage du fond
$bg = imagecolorallocate($image, 0, 0, 0);

// Couleur de l'ellipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// On dessine l'ellipse
imageellipse($image, 200, 150, 300, 200, $col_ellipse);

// On affiche l'image
header("Content-type: image/png");
imagepng($image);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Notes

Note : Cette fonction nécessite GD 2.0.2 ou une version supérieure.

Voir aussi

imagefilledellipse()
imagearc()

Précédent | Sommaire | Suivant
imagedestroy | Niveau supérieur | imagefill


imagefill

(PHP 3, PHP 4, PHP 5)

imagefill -- Remplissage

Description

bool imagefill ( resource image, int x, int y, int color )

Effectue un remplissage avec la couleur color, dans l'image image, à partir du point de coordonnées (x, y) (le coin supérieur gauche est l'origine (0,0)).

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x

X : coordonnée du point de départ

y

Y : coordonnée du point de départ

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec imagefill()

<?php

$im = imagecreatetruecolor(100, 100);

// Fixe le fond rouge
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

imagecolorallocate()

Précédent | Sommaire | Suivant
imageellipse | Niveau supérieur | imagefilledarc


imagefilledarc

(PHP 4 >= 4.0.6, PHP 5)

imagefilledarc -- Dessine une ellipse partielle et la remplit

Description

bool imagefilledarc ( resource image, int cx, int cy, int width, int height, int start, int end, int color, int style )

Dessine une ellipse partielle, centrée aux coordonnées spécifiées dans l'image fournie.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

cx

X : coordonnée du centre

cy

Y : coordonnée du centre

width

La largeur de l'arc

height

La hauteur de l'arc

start

L'angle de début de l'arc, en degrés

end

L'angle de fin de l'arc, en degrés. 0° est situé à une position de 3 heures sur un cadran horaire, et l'arc est dessiné dans le sens des aiguilles d'une montre.

color

Un identifiant de couleur, créé par la fonction imagecolorallocate()

style

Un champ d'octets, combiné avec l'opérateur OR :

  1. IMG_ARC_PIE

  2. IMG_ARC_CHORD

  3. IMG_ARC_NOFILL

  4. IMG_ARC_EDGED

IMG_ARC_PIE et IMG_ARC_CHORD sont mutuellement exclusives; IMG_ARC_CHORD ne fait que connecter les angles de début et de fin avec une ligne droite, tandis que IMG_ARC_PIE produit une ligne courbe. IMG_ARC_NOFILL indique que l'arc (ou corde) doit être dessiné mais pas rempli. IMG_ARC_EDGED, utilisé conjointement avec IMG_ARC_NOFILL, indique que les angles de début et de fin doivent être connectés au centre. Cette fonction est recommandée pour faire les graphiques de type camembert.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Création d'un camembert en 3D

<?php

// Création de l'image
$image = imagecreatetruecolor(100, 100);

// Allocation de quelques couleurs
$white    = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$gray     = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy     = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red      = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$darkred  = imagecolorallocate($image, 0x90, 0x00, 0x00);

// Création de l'effet 3D
for ($i = 60; $i > 50; $i--) {
   imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy, IMG_ARC_PIE);
   imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray, IMG_ARC_PIE);
   imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred, IMG_ARC_PIE);
}

imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red, IMG_ARC_PIE);

// Affichage de l'image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Précédent | Sommaire | Suivant
imagefill | Niveau supérieur | imagefilledellipse


imagefilledellipse

(PHP 4 >= 4.0.6, PHP 5)

imagefilledellipse -- Dessine une ellipse pleine

Description

bool imagefilledellipse ( resource image, int cx, int cy, int width, int height, int color )

Dessine une ellipse centrée sur les coordonnées spécifiées sur l'image fournie.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

cx

X : coordonnée du centre

cy

Y : coordonnée du centre

width

La largeur de l'arc

height

La hauteur de l'arc

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec imagefilledellipse()

<?php

// Nouvelle image
$image = imagecreatetruecolor(400, 300);

// Couleur de fond
$bg = imagecolorallocate($image, 0, 0, 0);

// Couleur de remplissage de l'ellipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// On dessine l'ellipse blanche
imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse);

// On affiche l'image
header("Content-type: image/png");
imagepng($image);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Voir aussi

imageellipse()
imagefilledarc()

Précédent | Sommaire | Suivant
imagefilledarc | Niveau supérieur | imagefilledpolygon


imagefilledpolygon

(PHP 3, PHP 4, PHP 5)

imagefilledpolygon -- Dessine un polygone rempli

Description

bool imagefilledpolygon ( resource image, array points, int num_points, int color )

imagefilledpolygon() dessine un polygone rempli dans l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

points

Un tableau qui contient les coordonnées x et y du sommet des polygones.

num_points

Le nombre total de sommets, et doit être supérieur à 3.

color

Un identifiant de couleur, créé par la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

// Quelques couleurs
$bg   = imagecolorallocate($image, 200, 200, 200);
$blue = imagecolorallocate($image, 0, 0, 255);

// Dessine le polygone
imagefilledpolygon($image, $values, 6, $blue);

// Affichage de l'image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Précédent | Sommaire | Suivant
imagefilledellipse | Niveau supérieur | imagefilledrectangle


imagefilledrectangle

(PHP 3, PHP 4, PHP 5)

imagefilledrectangle -- Dessine un rectangle rempli

Description

bool imagefilledrectangle ( resource image, int x1, int y1, int x2, int y2, int color )

Dessine un rectangle de couleur color dans l'image image, en commençant par le sommet supérieur gauche (1) et finissant au sommet inférieur droit (2). Le coin supérieur gauche est l'origine (0, 0).

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x1

X : coordonné du point 1

y1

Y : coordonné du point 1

x2

X : coordonné du point 2

y2

Y : coordonné du point 2

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagefilledpolygon | Niveau supérieur | imagefilltoborder


imagefilltoborder

(PHP 3, PHP 4, PHP 5)

imagefilltoborder -- Remplit une région avec une couleur spécifique

Description

bool imagefilltoborder ( resource image, int x, int y, int border, int color )

imagefilltoborder() remplit avec la couleur color toute la région à l'intérieur de la région limitée par la couleur border. Le point de départ est (x, y) (le coin supérieur gauche est l'origine (0,0)) et la couleur de la région est color.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x

X : coordonné de départ

y

Y : coordonné de départ

border

La couleur de la bordure. Un identifiant de couleur créé par la fonction imagecolorallocate()

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagefilledrectangle | Niveau supérieur | imagefilter


imagefilter

(PHP 5)

imagefilter -- Applique un filtre à une image

Description

bool imagefilter ( resource image, int filtertype [, int arg1 [, int arg2 [, int arg3]]] )

imagefilter() applique le filtre filtertype à l'image en utilisant les paramètres args1, args2 et args3 lorsque cela est nécessaire.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filtertype

Le paramètre filtertype peut prendre l'une des valeurs suivantes :

  • IMG_FILTER_NEGATE : renverse toutes les couleurs de l'image.

  • IMG_FILTER_GRAYSCALE : convertit l'image en grayscale.

  • IMG_FILTER_BRIGHTNESS : modifie la luminosité de l'image. Utilisez le paramètre args1 pour définir la luminosité.

  • IMG_FILTER_CONTRAST : modifie le contraste de l'image. Utilisez le paramètre args1 pour définir le contraste.

  • IMG_FILTER_COLORIZE : Identique au paramètre IMG_FILTER_GRAYSCALE excepté que vous pouvez spécifier une couleur. Utilisez trois arguments séparés dans les paramètres args1, args2 et args3 sous la forme red, blue, green. L'intervalle pour chaque couleur est 0 - 255.

  • IMG_FILTER_EDGEDETECT : utilise la détection des bords pour les mettre en évidence dans l'image.

  • IMG_FILTER_EMBOSS : grave l'image en relief.

  • IMG_FILTER_GAUSSIAN_BLUR : brouille l'image en utilisant la méthode gaussienne.

  • IMG_FILTER_SELECTIVE_BLUR : brouille l'image.

  • IMG_FILTER_MEAN_REMOVAL : son utilisation signifie le déplacement pour réaliser un effet "peu précis".

  • IMG_FILTER_SMOOTH : rend l'image lissoir (smooth). Utilisez le paramètre args1 pour définir le degré de lissoir.

arg1

arg2

arg3

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec imagefilter()

<?php
$im = imagecreatefrompng('dave.png');
if ($im && imagefilter($im, IMG_FILTER_GRAYSCALE)) {
    echo 'Image convertie en grayscale.';
    imagepng($im, 'dave.png');
} else {
    echo 'La convertion en grayscale a échoué.';
}

imagedestroy($im);
?>

Exemple 2. Exemple avec imagefilter()

<?php
$im = imagecreatefrompng('sean.png');
if ($im && imagefilter($im, IMG_FILTER_BRIGHTNESS, 20)) {
    echo 'La luminosité de l\'image a été modifiée.';
    imagepng($im, 'sean.png');
} else {
    echo 'Echec lors de la modification de la luminosité.';
}

imagedestroy($im);
?>

Exemple 3. Exempe avec imagefilter()

<?php
$im = imagecreatefrompng('philip.png');

/* R, G, B, donc 0, 255, 0 correspond au vert */
if ($im && imagefilter($im, IMG_FILTER_COLORIZE, 0, 255, 0)) {
    echo 'L\'image a été ombragée en vert avec succès.';
    imagepng($im, 'philip.png');
} else {
    echo 'Echec lors de la modification de l\'ombrage.';
}

imagedestroy($im);
?>

Notes

Note : Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

Voir aussi

imageconvolution()

Précédent | Sommaire | Suivant
imagefilltoborder | Niveau supérieur | imagefontheight


imagefontheight

(PHP 3, PHP 4, PHP 5)

imagefontheight -- Retourne la hauteur de la police

Description

int imagefontheight ( int font )

Retourne la hauteur de la police font en pixels.

Liste de paramètres

font

Peut être 1, 2, 3, 4, 5 pour les polices internes (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

Valeurs de retour

Retourne la hauteur de la police, en pixels.

Voir aussi

imagefontwidth()
imageloadfont()

Précédent | Sommaire | Suivant
imagefilter | Niveau supérieur | imagefontwidth


imagefontwidth

(PHP 3, PHP 4, PHP 5)

imagefontwidth -- Retourne la largeur de la police

Description

int imagefontwidth ( int font )

Retourne la largeur de la police font en pixels.

Liste de paramètres

font

Peut être 1, 2, 3, 4, 5 pour les polices internes (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

Valeurs de retour

Retourne la largeur de la police.

Voir aussi

imagefontheight()
imageloadfont()

Précédent | Sommaire | Suivant
imagefontheight | Niveau supérieur | imageftbbox


imageftbbox

(PHP 4 >= 4.1.0, PHP 5)

imageftbbox -- Calcule le rectangle d'encadrement pour un texte, en utilisant la police courante et freetype2

Description

array imageftbbox ( float size, float angle, string font_file, string text [, array extrainfo] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

size

angle

font_file

text

extrainfo

Valeurs de retour

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Note : Cette fonction n'est disponible que si si PHP est compilé avec le support freetype (--with-freetype-dir=DIR)

Historique

Version | Description
4.3.5 | Le paramètre extrainfo est devenu optionnel.

Précédent | Sommaire | Suivant
imagefontwidth | Niveau supérieur | imagefttext


imagefttext

(PHP 4 >= 4.1.0, PHP 5)

imagefttext -- Écrit du texte dans une image avec la police courante FreeType 2

Description

array imagefttext ( resource image, float size, float angle, int x, int y, int col, string font_file, string text [, array extrainfo] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

size

angle

x

y

col

font_file

text

extrainfo

Valeurs de retour

Cette fonction retourne un tableau contenant les éléments suivants :

0 | x : coordonnée en bas, à gauche
1 | y : coordonnée en bas, à gauche
2 | x : coordonnée en haut, à droite
3 | y : coordonnée en haut, à droite

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Note : Cette fonction n'est disponible que si si PHP est compilé avec le support freetype (--with-freetype-dir=DIR)

Historique

Version | Description
4.3.5 | Le paramètre extrainfo est devenu optionnel.

Précédent | Sommaire | Suivant
imageftbbox | Niveau supérieur | imagegammacorrect


imagegammacorrect

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

imagegammacorrect -- Applique une correction gamma à l'image GD

Description

bool imagegammacorrect ( resource image, float inputgamma, float outputgamma )

Applique une correction gamma à l'image GD image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

inputgamma

Le facteur gamma d'entrée

outputgamma

Le facteur gamma de sortie

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagefttext | Niveau supérieur | imagegd2


imagegd2

(PHP 4 >= 4.1.0, PHP 5)

imagegd2 -- Génère une image au format GD2, vers le navigateur ou un fichier

Description

bool imagegd2 ( resource image [, string filename [, int chunk_size [, int type]]] )

Génère une image au format GD2, vers le fichier filename.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin vers le fichier sauvegardé. S'il n'est pas défini ou s'il vaut NULL, le flux brut de l'image sera affiché directement.

chunk_size

type

Soit IMG_GD2_RAW, soit IMG_GD2_COMPRESSED. Par défaut, vaut IMG_GD2_RAW.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

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.

Historique

Version | Description
4.3.2 | Les paramètres chunk_size et type ont été ajoutés.

Voir aussi

imagegd()

Précédent | Sommaire | Suivant
imagegammacorrect | Niveau supérieur | imagegd


imagegd

(PHP 4 >= 4.1.0, PHP 5)

imagegd -- Génère une image au format GD, vers le navigateur ou un fichier

Description

bool imagegd ( resource image [, string filename] )

Génère une image GD vers le fichier filename.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin vers le fichier sauvegardé. S'il n'est pas défini ou s'il vaut NULL, le flux brut de l'image sera affiché directement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Le format GD est communément utilisé pour autoriser le chargement rapide des parties d'un image. Notez que le format GD est uniquement utilisable dans les applications compatibles GD.

Voir aussi

imagegd2()

Précédent | Sommaire | Suivant
imagegd2 | Niveau supérieur | imagegif


imagegif

(PHP 3, PHP 4, PHP 5)

imagegif -- Envoie une image GIF vers un navigateur ou un fichier

Description

bool imagegif ( resource image [, string filename] )

imagegif() crée un fichier image GIF avec le nom filename d'après l'image image. L'argument image est un identifiant valide retourné par la fonction imagecreate() ou les fonctions imagecreatefrom*.

Le format de l'image sera GIF87a, à moins que l'image n'ait une couleur transparente (mise en place grâce à la fonction imagecolortransparent())), ce qui fera qu'elle sera au format GIF89a.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin vers le fichier sauvegardé. S'il n'est pas défini ou s'il vaut NULL, le flux brut de l'image sera affiché directement.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

Note : Étant donné que toutes les fonctions GIF ont été supprimées de la bibliothèque GD version 1.6, cette fonction ne sera pas accessible si vous avez cette version de la bibliothèque. Le support du format GIF sera de retour milieu 2004 dans la bibliothèque GD. Pour plus d'informations, voir le site du projet GD.

Le code suivant vous permet d'écrire des scripts PHP plus portables : le type de GD est automatiquement détecté. Il remplace la séquence Header("Content-type: image/gif"); ImageGif($im); par un code plus souple :

<?php
if (function_exists("imagegif")) {
    header("Content-type: image/gif");
    imagegif($im);
} elseif (function_exists("imagejpeg")) {
    header("Content-type: image/jpeg");
    imagejpeg($im, "", 0.5);
} elseif (function_exists("imagepng")) {
    header("Content-type: image/png");
    imagepng($im);
} elseif (function_exists("imagewbmp")) {
    header("Content-type: image/vnd.wap.wbmp");
    imagewbmp($im);
} else {
    die("Pas de support graphique avec PHP sur ce serveur");
}
?>

Note : Depuis les versions 3.0.18 et 4.0.2, 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()
imagewbmp()
imagejpeg()
imagetypes()

Précédent | Sommaire | Suivant
imagegd | Niveau supérieur | imageinterlace


imageinterlace

(PHP 3, PHP 4, PHP 5)

imageinterlace -- Active ou désactive l'entrelacement

Description

int imageinterlace ( resource image [, int interlace] )

imageinterlace() active ou désactive le bit d'entrelacement.

Si l'entrelacement est à 1 et l'image est JPEG, l'image créée sera un JPEG progressif.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

interlace

Si différent de zéro, l'image sera entrelacée, sinon, l'interlacement sera désactivé.

Valeurs de retour

Retourne 1 si l'interlacement est activé pour l'image, 0 sinon.

Précédent | Sommaire | Suivant
imagegif | Niveau supérieur | imageistruecolor


imageistruecolor

(PHP 4 >= 4.3.2, PHP 5)

imageistruecolor -- Détermine si une image est une image truecolor

Description

bool imageistruecolor ( resource image )

imageistruecolor()détermine si l'image image est une image truecolor.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne TRUE si l'image est truecolor, FALSE sinon.

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Voir aussi

imagecreatetruecolor()

Précédent | Sommaire | Suivant
imageinterlace | Niveau supérieur | imagejpeg


imagejpeg

(PHP 3 >= 3.0.16, PHP 4, PHP 5)

imagejpeg -- Envoie une image JPEG vers un navigateur ou un fichier

Description

bool imagejpeg ( resource image [, string filename [, int quality]] )

imagejpeg() crée un fichier JPEG depuis l'image fournie.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin vers le fichier sauvegardé. S'il n'est pas défini ou s'il vaut NULL, le flux brut de l'image sera affiché directement.

Pour éviter de fournir cet argument afin de fournir l'argument quality, utilisez une valeur NULL.

quality

quality est optionnel, et prend des valeurs entières de 0 (pire qualité, petit fichier) et 100 (meilleure qualité, gros fichier). Par défaut, la valeur est celle de la qualité IJG (75).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Le support JPEG n'est disponible que si PHP a été compilé avec GD-1.8 ou supérieur.

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()
imagegif()
imagewbmp()
imageinterlace()
imagetypes()

Précédent | Sommaire | Suivant
imageistruecolor | Niveau supérieur | imagelayereffect


imagelayereffect

(PHP 4 >= 4.3.0, PHP 5)

imagelayereffect -- Active l'option d'alpha blending, pour utiliser les effets de libgd

Description

bool imagelayereffect ( resource image, int effect )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

effect

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Précédent | Sommaire | Suivant
imagejpeg | Niveau supérieur | imageline


imageline

(PHP 3, PHP 4, PHP 5)

imageline -- Dessine une ligne

Description

bool imageline ( resource image, int x1, int y1, int x2, int y2, int color )

imageline() dessine une ligne entre deux points fournis.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x1

X : coordonnée du premier point

y1

Y : coordonnée du premier point

x2

X : coordonnée du second point

y2

Y : coordonnée du second point

color

La couleur de remplissage. Un identifiant de couleur créé par la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
imagelayereffect | Niveau supérieur | imageloadfont


imageloadfont

(PHP 3, PHP 4, PHP 5)

imageloadfont -- Charge une nouvelle police

Description

int imageloadfont ( string file )

imageloadfont() charge une nouvelle police utilisateur et retourne son identifiant.

Liste de paramètres

file

Le format des polices dépend actuellement du système d'exploitation. Ce qui signifie qu'il vous faut générer des fichiers de polices pour la machine qui fait tourner PHP.

Tableau 1. Format de fichier de police

Position | Type de données C | Description
Octets 0-3 | int | Nombre de caractères de la police
Octets 4-7 | int | Valeur du premier caractère de la police (souvent 32 pour espace)
Octets 8-11 | int | Largeur en pixels des caractères
Octets 12-15 | int | Hauteur en pixels des caractères
Octets 16- | char | Tableau avec les données des caractères, un octet par pixel pour chaque caractère, avec un total de (nombre de caractères * largeur * hauteur) octets.

Valeurs de retour

L'identifiant de la police qui sera toujours supérieur à 5 afin d'éviter les conflits avec les polices internes ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec imageloadfont()

<?php
header("Content-type: image/png");
$im = imagecreatetruecolor(50, 20);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 49, 19, $white);
$font = imageloadfont("04b.gdf");
imagestring($im, $font, 0, 0, "Hello", $black);
imagepng($im);
?>

Voir aussi

imagefontwidth()
imagefontheight()

Précédent | Sommaire | Suivant
imageline | Niveau supérieur | imagepalettecopy


imagepalettecopy

(PHP 4 >= 4.0.1, PHP 5)

imagepalettecopy -- Copie la palette d'une image à l'autre

Description

void imagepalettecopy ( resource destination, resource source )

imagepalettecopy() copie la palette de l'image source dans l'image destination.

Liste de paramètres

destination

La ressource de l'image de destination

source

La ressource de l'image source

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
imageloadfont | Niveau supérieur | imagepng


imagepng

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

imagepng -- Envoie une image PNG vers un navigateur ou un fichier

Description

bool imagepng ( resource image [, string filename [, int quality [, int filters]]] )

Affiche ou sauvegarde une image PNG en utilisant l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin vers le fichier sauvegardé. S'il n'est pas défini ou s'il vaut NULL, le flux brut de l'image sera affiché directement.

Note : La valeur NULL est invalide si le paramètre quality et le paramètre filters ne sont pas utilisés.

quality

Degré de compression : depuis 0 (aucune compression) à 9.

filters

Permet la réduction de la taille du fichier PNG. C'est un masque qui peut être défini par une combinaison des constantes PNG_FILTER_XXX. PNG_NO_FILTER ou PNG_ALL_FILTERS peuvent également être utilisé pour, respectivement, désactiver ou activer tous les filtres.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Historique

Version | Description
5.1.3 | Ajout du paramètre filters.
5.1.2 | Ajout du paramètre quality.

Exemples

<?php
$im = imagecreatefrompng("test.png");
imagepng($im);
?>

Voir aussi

imagegif()
imagewbmp()
imagejpeg()
imagetypes()

Précédent | Sommaire | Suivant
imagepalettecopy | Niveau supérieur | imagepolygon


imagepolygon

(PHP 3, PHP 4, PHP 5)

imagepolygon -- Dessine un polygone

Description

bool imagepolygon ( resource image, array points, int num_points, int color )

imagepolygon() dessine un polygone dans l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

points

Tableau qui contient les sommets du polygone sous la forme : points[0] = x0, points[1] = y0, points[2] = x1, points[3] = y1, etc.

num_points

Le nombre de points (sommets).

color

Un identifiant de couleur créé par la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec imagepolygon()

<?php
// Nouvelle image
$image = imagecreatetruecolor(400, 300);

// Couleur de fond
$bg = imagecolorallocate($image, 0, 0, 0);

// Couleur pour les bords du polygone
$col_poly = imagecolorallocate($image, 255, 255, 255);

// On dessine le polygone
imagepolygon($image, array (
        0,   0,
        100, 200,
        300, 200
    ),
    3,
    $col_poly);

// On affiche l'image
header("Content-type: image/png");
imagepng($image);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

imagecreate()
imagecreatetruecolor()

Précédent | Sommaire | Suivant
imagepng | Niveau supérieur | imagepsbbox


imagepsbbox

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepsbbox -- Retourne le rectangle entourant un texte et dessiné avec une police PostScript Type1

Description

array imagepsbbox ( string text, int font, int size [, int space, int tightness, float angle] )

Retourne le rectangle entourant un texte et dessiné avec une police PostScript Type1.

Le rectangle entourant est calculé en utilisant les informations disponibles sur les tailles de caractères, et, malheureusement, il a tendance à être légèrement différent du résultat réel final. Si l'angle est de 0 degré, vous pouvez-vous attendre à avoir besoin d'un rectangle d'au moins un pixel plus grand dans toutes les directions.

Liste de paramètres

text

font

Peut être 1, 2, 3, 4, 5 pour les polices internes (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

size

size est exprimé en pixels.

space

permet de changer la valeur par défaut du caractère espace. Cette valeur est ajoutée lors des dessins et, donc, peut être négative. Exprimé en unité d'espacement de caractères, avec 1 unité vaut 1/1000 d'un em carré (un em : unité de mesure représentée par un carré dont la dimension horizontale est la même que le corps du caractère).

tightness

tightness permet de contrôler la quantité d'espace entre les caractères. Cette quantité est ajoutée lors des dessins, et peut donc être négative. Exprimé en unité d'espacement de caractères, avec 1 unité vaut 1/1000 d'un em carré.

angle

angle est exprimé en pixels.

Valeurs de retour

Retourne un tableau contenant les éléments suivants :

0 | Abscisse gauche
1 | Ordonnée supérieure
2 | Abscisse droite
3 | Ordonnée inférieure

Notes

Note : Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR].

Voir aussi

imagepstext()

Précédent | Sommaire | Suivant
imagepolygon | Niveau supérieur | imagepsencodefont


imagepsencodefont

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepsencodefont -- Change le codage vectoriel d'un caractère dans une police

Description

bool imagepsencodefont ( resource font_index, string encodingfile )

Charge le codage vectoriel d'un caractère depuis un fichier et change le codage vectoriel de la police correspondante. Étant donné que les polices PostScript ne disposent pas des caractères au-delà de 127, vous aurez sûrement besoin de les changer si vous utilisez une autre langue que l'anglais.

Si vous commencez à utiliser cette fonction régulièrement, une meilleure solution est de définir un encodage, et de l'utiliser avec ps.default_encoding dans le fichier de configuration pour utiliser par défaut l'encodage correct.

Liste de paramètres

font_index

encodingfile

Le format exact de ce fichier est décrit dans la documentation T1libs. T1lib est fourni avec deux fichiers prêt à l'emploi : IsoLatin1.enc et IsoLatin2.enc.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR].

Précédent | Sommaire | Suivant
imagepsbbox | Niveau supérieur | imagepsextendfont


imagepsextendfont

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepsextendfont -- Étend ou condense une police de caractères

Description

bool imagepsextendfont ( int font_index, float extend )

imagepsextendfont() étend ou condense la police de caractères font. Si la valeur de extend est inférieure à 1, ce sera une condensation.

Liste de paramètres

font_index

extend

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR].

Précédent | Sommaire | Suivant
imagepsencodefont | Niveau supérieur | imagepsfreefont


imagepsfreefont

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepsfreefont -- Libère la mémoire occupée par une police PostScript Type 1

Description

bool imagepsfreefont ( resource fontindex )

imagepsfreefont() libère la mémoire occupée par une police PostScript Type 1.

Liste de paramètres

fontindex

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR].

Voir aussi

imagepsloadfont()

Précédent | Sommaire | Suivant
imagepsextendfont | Niveau supérieur | imagepsloadfont


imagepsloadfont

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepsloadfont -- Charge une police PostScript Type 1 depuis un fichier

Description

resource imagepsloadfont ( string filename )

Charge une police PostScript Type 1 depuis le fichier filename.

Liste de paramètres

filename

Valeurs de retour

En cas de succès, imagepsloadfont() retourne un index de police, qui pourra être utilisé pour des opérations ultérieures. Sinon, imagepsloadfont() retournera FALSE.

Exemples

Exemple 1. Exemple avec imagepsloadfont()

<?php
header("Content-type: image/png");
$im = imagecreatetruecolor(350, 45);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 349, 44, $white);
$font = imagepsloadfont("bchbi.pfb"); // ou bien situez un de vos fichiers .pfb
imagepstext($im, "Test ... Ca marche!", $font, 32, $white, $black, 32, 32);
imagepsfreefont($font);
imagepng($im);
imagedestroy($im);
?>

Notes

Note : Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR].

Voir aussi

imagepsfreefont()

Précédent | Sommaire | Suivant
imagepsfreefont | Niveau supérieur | imagepsslantfont


imagepsslantfont

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepsslantfont -- Incline une police de caractères PostScript

Description

bool imagepsslantfont ( resource font_index, float slant )

Met en italique la police de caractères font avec le coefficient slant.

Liste de paramètres

font_index

slant

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR].

Précédent | Sommaire | Suivant
imagepsloadfont | Niveau supérieur | imagepstext


imagepstext

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepstext -- Dessine un texte sur une image avec une police PostScript Type1

Description

array imagepstext ( resource image, string text, resource font, int size, int foreground, int background, int x, int y [, int space [, int tightness [, float angle [, int antialias_steps]]]] )

Dessine un texte sur une image avec une police PostScript Type1.

Reportez-vous à la documentation PostScript pour avoir des détails à propos des polices et de leurs tailles.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

text

Le texte à écrire.

font

Peut être 1, 2, 3, 4, 5 pour les polices internes (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

size

size est exprimé en pixels.

foreground

La couleur avec laquelle le texte va être dessiné.

background

La couleur d'anti aliasing. Aucun pixel avec la couleur background n'est dessiné, ce qui fait que l'arrière-plan n'a pas besoin d'être dans une couleur fixe.

x

X : coordonnée du coin en bas, à gauche du premier caractère

y

Y : coordonnée du coin en bas, à gauche du premier caractère

space

Permet de changer la taille par défaut du caractère d'espacement. Cette valeur peut être négative. Exprimé en unité d'espaces caractère, ce qui vaut 1/1000ème d'un em-carré (un em : unité de mesure représentée par un carré dont la dimension horizontale est la même que le corps du caractère).

tightness

Permet de contrôler la quantité d'espace entre deux caractères. Cette valeur peut être négative. Exprimé en unité d'espaces caractère, ce qui vaut 1/1000ème d'un em-carré.

angle

angle est en degrés.

antialias_steps

Permet de contrôler le nombre de couleurs du texte anti-aliasé. Les valeurs autorisées sont 4 et 16. 16 est recommandée pour les polices de moins de 20 pixels, car l'effet est alors visible. Avec les tailles plus grandes, utilisez de préférence 4, qui est moins gourmande en ressources.

Valeurs de retour

Cette fonction retourne un tableau contenant les éléments suivants :

0 | Abscisse inférieure gauche
1 | Ordonnée inférieure gauche
2 | Abscisse supérieure droite
3 | Ordonnée supérieure droite

Notes

Note : Cette fonction n'est disponible que si PHP est compilé en utilisant --enable-t1lib[=DIR].

Voir aussi

imagepsbbox()

Précédent | Sommaire | Suivant
imagepsslantfont | Niveau supérieur | imagerectangle


imagerectangle

(PHP 3, PHP 4, PHP 5)

imagerectangle -- Dessine un rectangle

Description

bool imagerectangle ( resource image, int x1, int y1, int x2, int y2, int color )

imagerectangle() dessine un rectangle aux coordonnées spécifiées.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x1

X : coordonnée du coin en haut, à gauche

y1

Y : coordonnée du coin en haut, à gauche. 0, 0 est le coin en haut à gauche de l'image.

x2

X : coordonnée du point en bas, à droite

y2

Y : coordonnée du point en bas, à droite

color

Un identifiant de couleur créé par la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagepstext | Niveau supérieur | imagerotate


imagerotate

(PHP 4 >= 4.3.0, PHP 5)

imagerotate -- Fait tourner une image d'un angle

Description

resource imagerotate ( resource source_image, float angle, int bgd_color [, int ignore_transparent] )

imagerotate() fait tourner l'image src_im d'un angle de angle, en degrés.

Le centre de rotation est le centre de l'image, et l'image tournée est réduite de telle sorte que les ajustements apportés à l'image tournée - les bords ne soient pas coupés.

Liste de paramètres

source_image

Le lien vers l'image source

angle

L'angle de rotation, en degrés.

bgd_color

Spécifie la couleur des zones qui seront découvertes après la rotation.

ignore_transparent

Si ce paramètre est défini et ne vaut pas zéro, les couleurs transparentes seront ignorées.

Valeurs de retour

Historique

Version | Description
5.1.0 | Le paramètre ignore_transparent a été ajouté.

Exemples

Exemple 1. Rotation d'une image de 180 degrés

Cet exemple tourne une image de 180 degrés - à l'envers.

<?php
// Fichier et degrés de rotation
$filename = 'test.jpg';
$degrees = 180;

// Content type
header('Content-type: image/jpeg');

// Chargement
$source = imagecreatefromjpeg($filename);

// Rotation
$rotate = imagerotate($source, $degrees, 0);

// Affichage
imagejpeg($rotate);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Notes

Note : Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

Précédent | Sommaire | Suivant
imagerectangle | Niveau supérieur | imagesavealpha


imagesavealpha

(PHP 4 >= 4.3.2, PHP 5)

imagesavealpha -- Configure l'enregistrement des informations complètes du canal alpha lors de sauvegardes d'images PNG

Description

bool imagesavealpha ( resource image, bool saveflag )

imagesavealpha() définit l'option pour essayer de sauvegarder toutes les informations du canal alpha (en opposition à la transparence à couleur unique) lors de la sauvegarde d'images PNG.

Vous devez désactiver le alphablending (imagealphablending()($im, FALSE)) pour l'utiliser.

Le canal alpha n'est pas supporté par tous les navigateurs ; si vous avez des problèmes avec le vôtre, essayez de charger le script avec un navigateur compatible avec les canaux alpha, c'est à dire le dernier Mozilla.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

saveflag

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Voir aussi

imagealphablending()

Précédent | Sommaire | Suivant
imagerotate | Niveau supérieur | imagesetbrush


imagesetbrush

(PHP 4 >= 4.0.6, PHP 5)

imagesetbrush -- Modifie la brosse pour le dessin des lignes

Description

bool imagesetbrush ( resource image, resource brush )

imagesetbrush() remplace la brosse courante pour le dessin des lignes par brush. Cette brosse sera alors utilisée avec des fonctions comme imageline() ou imagepolygon() et avec les couleurs spéciales IMG_COLOR_BRUSHED ou IMG_COLOR_STYLEDBRUSHED.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

brush

Une ressource d'image

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Vous n'avez rien à faire lorsque vous en avez terminé avec une brosse, mais si vous détruisez l'image de brosse, vous ne DEVEZ plus utiliser les options IMG_COLOR_BRUSHED et IMG_COLOR_STYLEDBRUSHED avant d'avoir créé une nouvelle brosse.

Précédent | Sommaire | Suivant
imagesavealpha | Niveau supérieur | imagesetpixel


imagesetpixel

(PHP 3, PHP 4, PHP 5)

imagesetpixel -- Dessine un pixel

Description

bool imagesetpixel ( resource image, int x, int y, int color )

imagesetpixel() dessine un pixel aux coordonnées spécifiées.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

x

X : coordonnée

y

Y : coordonnée

color

Un identifiant de couleur créé par la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec imagesetpixel()

Un dessin aléatoire qui se termine par une image régulière.

<?php

$x = 200;
$y = 200;

$gd = imagecreatetruecolor($x, $y);

$corners[0] = array('x' => 100, 'y' =>  10);
$corners[1] = array('x' =>   0, 'y' => 190);
$corners[2] = array('x' => 200, 'y' => 190);

$red = imagecolorallocate($gd, 255, 0, 0);

for ($i = 0; $i < 100000; $i++) {
  imagesetpixel($gd, round($x),round($y), $red);
  $a = rand(0, 2);
  $x = ($x + $corners[$a]['x']) / 2;
  $y = ($y + $corners[$a]['y']) / 2;
}

header('Content-Type: image/png');
imagepng($gd);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

imagecreatetruecolor()
imagecolorallocate()

Précédent | Sommaire | Suivant
imagesetbrush | Niveau supérieur | imagesetstyle


imagesetstyle

(PHP 4 >= 4.0.6, PHP 5)

imagesetstyle -- Configure le style pour le dessin des lignes

Description

bool imagesetstyle ( resource image, array style )

imagesetstyle() permet de choisir le style à utiliser lors du dessin des lignes (comme avec les fonctions imageline() et imagepolygon()) lors de l'utilisation de la couleur spéciale IMG_COLOR_STYLED ou bien lors du dessin de lignes avec la couleur IMG_COLOR_STYLEDBRUSHED.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

style

Un tableau de couleurs de pixels. Vous pouvez utiliser la constante IMG_COLOR_TRANSPARENT pour ajouter un pixel transparent.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

<?php
header("Content-type: image/jpeg");
$im  = imagecreatetruecolor(100, 100);
$w   = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);

/* Dessine une ligne pointillée de 5 pixels rouges, 5 pixels blancs */
$style = array($red, $red, $red, $red, $red, $w, $w, $w, $w, $w);
imagesetstyle($im, $style);
imageline($im, 0, 0, 100, 100, IMG_COLOR_STYLED);

/* Dessine une ligne avec des smileys, en utilisant imagesetbrush() et imagesetstyle */
$style = array($w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $red);
imagesetstyle($im, $style);

$brush = imagecreatefrompng("http://www.libpng.org/pub/png/images/smile.happy.png");
$w2 = imagecolorallocate($brush, 255, 255, 255);
imagecolortransparent($brush, $w2);
imagesetbrush($im, $brush);
imageline($im, 100, 0, 0, 100, IMG_COLOR_STYLEDBRUSHED);

imagejpeg($im);
imagedestroy($im);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

imagesetbrush()
imageline()

Précédent | Sommaire | Suivant
imagesetpixel | Niveau supérieur | imagesetthickness


imagesetthickness

(PHP 4 >= 4.0.6, PHP 5)

imagesetthickness -- Modifie l'épaisseur d'un trait

Description

bool imagesetthickness ( resource image, int thickness )

imagesetthickness() modifie l'épaisseur du trait des lignes de l'image image. Cette épaisseur intervient dans les dessins de polygones, ellipses, cercles, rectangles, etc. thickness est en pixels.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

thickness

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Précédent | Sommaire | Suivant
imagesetstyle | Niveau supérieur | imagesettile


imagesettile

(PHP 4 >= 4.0.6, PHP 5)

imagesettile -- Modifie l'image utilisée pour le carrelage

Description

bool imagesettile ( resource image, resource tile )

imagesettile() remplace l'image de pavement courante par l'image tile, à utiliser dans tous les remplissages (comme avec les fonctions imagefill() et imagefilledpolygon()) lors des remplissages avec l'option IMG_COLOR_TILED.

Une image de carrelage est une image utilisée pour remplir une zone, de manière répétitive. N'importe quelle image GD peut servir d'image de remplissage. L'utilisation de la couleur transparente (gérée avec la fonction imagecolortransparent()) permet à certaines zones d'apparaître à travers le carrelage.

Note : Vous n'avez rien à faire lorsque vous en avez terminé avec une brosse, mais si vous détruisez l'image de brosse, vous ne DEVEZ plus utiliser l'option IMG_COLOR_TILED des fonctions imagefill() et imagefilledpolygon(), avant d'avoir créé une nouvelle brosse.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

tile

La ressource de l'image à utiliser en tant que carrelage

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagesetthickness | Niveau supérieur | imagestring


imagestring

(PHP 3, PHP 4, PHP 5)

imagestring -- Dessine une chaîne horizontale

Description

bool imagestring ( resource image, int font, int x, int y, string string, int color )

Dessine une chaîne aux coordonnées spécifiées.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

font

Peut être 1, 2, 3, 4, 5 pour les polices internes (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

x

X : coordonnée du coin en haut, à gauche

y

Y : coordonnée du coin en haut, à gauche

string

La chaîne de caractères à écrire

color

Un identifiant de couleur créé par la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

L'exemple ci-dessus va afficher quelque chose de similaire à :

Voir aussi

imageloadfont()
imagettftext()

Précédent | Sommaire | Suivant
imagesettile | Niveau supérieur | imagestringup


imagestringup

(PHP 3, PHP 4, PHP 5)

imagestringup -- Dessine une chaîne verticale

Description

bool imagestringup ( resource image, int font, int x, int y, string string, int color )

Dessine une chaîne sur une ligne verticale dans l'image image aux coordonnées spécifiées.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

font

Peut être 1, 2, 3, 4, 5 pour les polices internes (où les plus grands nombres correspondent aux polices larges) ou n'importe quels identifiants de police de votre choix, enregistrées avec la fonction imageloadfont().

x

X : coordonnée du coin en haut, à gauche

y

Y : coordonnée du coin en haut, à gauche

sring

La chaîne de caractères à écrire

color

Un identifiant de couleur créé par la fonction imagecolorallocate()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

imageloadfont()

Précédent | Sommaire | Suivant
imagestring | Niveau supérieur | imagesx


imagesx

(PHP 3, PHP 4, PHP 5)

imagesx -- Retourne la largeur d'une image

Description

int imagesx ( resource image )

Retourne la largeur de l'image référencée par image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne la largeur de l'image image ou FALSE si une erreur survient errors.

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()
getimagesize()
imagesy()

Précédent | Sommaire | Suivant
imagestringup | Niveau supérieur | imagesy


imagesy

(PHP 3, PHP 4, PHP 5)

imagesy -- Retourne la hauteur de l'image

Description

int imagesy ( resource image )

Retourne la hauteur de l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne la hauteur de l'image image ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec imagesy()

<?php

// Création d'une image 300*200
$img = imagecreatetruecolor(300, 200);

echo imagesy($img); // 200

?>

Voir aussi

imagecreatetruecolor()
getimagesize()
imagesx()

Précédent | Sommaire | Suivant
imagesx | Niveau supérieur | imagetruecolortopalette


imagetruecolortopalette

(PHP 4 >= 4.0.6, PHP 5)

imagetruecolortopalette -- Convertit une image en couleurs vraies en image à palette

Description

bool imagetruecolortopalette ( resource image, bool dither, int ncolors )

imagetruecolortopalette() convertit l'image en vraies couleurs image en image à palette. Le code de cette fonction est directement tiré de la bibliothèque du Independent JPEG Group, qui est tout simplement génial. Le code a été modifié pour préserver l'essentiel du canal alpha dans la nouvelle palette, en plus de conserver les couleurs du mieux possible. Mais cela ne fonctionne pas toujours comme voulu. Il est alors préférable de générer un résultat en vraies couleurs, ce qui donne toujours le meilleur rendu.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

dither

Indique si l'image doit être granuleuse - si défini à TRUE, alors l'image sera un peu plus granuleuse mais l'approximation des couleurs sera meilleure.

ncolors

Le nombre maximal de couleurs dans la palette finale.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction requiert la bibliothèque GD 2.0.1 ou supérieure (2.0.28 ou supérieure est recommendée).

Précédent | Sommaire | Suivant
imagesy | Niveau supérieur | imagettfbbox


imagettfbbox

(PHP 3 >= 3.0.1, PHP 4, PHP 5)

imagettfbbox -- Retourne le rectangle entourant un texte et dessiné avec une police TrueType

Description

array imagettfbbox ( float size, float angle, string fontfile, string text )

Calcule et retourne le rectangle entourant le texte text, écrit avec une police truetype.

Liste de paramètres

size

La taille de la police, en pixels

angle

L'angle, en degrés, dans lequel le paramètre text sera mesuré

fontfile

Le nom de la police TrueType (peut être une URL). Suivant la version de la bibliothèque GD utilisée par PHP, ce paramètre peut chercher des fichiers qui ne commence pas par un slash ("/") de fin mais plutôt .ttf et cherchera tout le long des chemins de fonts définis.

text

La chaîne à mesurer

Valeurs de retour

imagettfbbox() retourne un tableau avec 8 éléments représentant les 4 sommets du rectangle ainsi défini :

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.

Voir aussi

Note : Cette fonction nécessite la bibliothèque GD et la bibliothèque FreeType.

Voir aussi

imagettftext()

Précédent | Sommaire | Suivant
imagetruecolortopalette | Niveau supérieur | imagettftext


imagettftext

(PHP 3, PHP 4, PHP 5)

imagettftext -- Dessine un texte avec une police TrueType

Description

array imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )

Dessine le texte fourni avec une police TrueType.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

size

La taille de la police. En fonction de la version de votre bibliothèque GD, elle doit être spécifiée en pixels (GD1) ou en points (GD2).

angle

L'angle, en degrés ; 0 degré correspond à la lecture du texte de gauche à droite. Les valeurs positives représentent une rotation dans le sens contraire des aiguilles d'une montre. Par exemple, une valeur de 90 correspondra à une lecture du texte de bas en haut.

x

Les coordonnées données par x et y définiront la position du premier caractère (le coin bas-gauche du caractère). Cela est différent de la fonction imagestring(), où x et y définissent le coin haut-gauche du premier caractère. Par exemple, "haut gauche" correspond à 0, 0.

y

L'ordonnée Y. Cela définit la position de la ligne de base de la police, et non pas le bas des caractères.

color

L'index de la couleur. Utiliser un index de couleur négatif désactivera l'antialiasing. Voir la fonction imagecolorallocate().

fontfile

Le chemin vers la police TrueType que vous souhaitez utiliser.

Dépendant de la version de la bibliothèque GD utilisée par PHP, lorsque fontfile ne commence pas par un caractère / alors .ttf sera ajouté au nom du fichier et la bibliothèque recherchera ce nom de fichier dans les dossiers de police, définis par la bibliothèque.

Lorsque vous utilisez une version de la bibliothèque GD inférieure à 2.0.18, un caractère espace, plutôt qu'un point-virgule, est utilisé pour définir des chemins alternatifs pour les fichiers de police. Si vous utilisez involontairement cette fonctionnalité, vous aurez ce message d'erreur : Warning: Could not find/open font. Pour ces versions affectées, la seule solution est de déplacée la police à un endroit qui ne contient pas d'espaces dans les noms de dossier.

Dans le cas fréquent où une police réside dans le même dossier que le script l'utilisant, l'astuce suivante vous épargnera tous les problèmes.

<?php
// Définission de la variable d'environnement pour GD
putenv('GDFONTPATH=' . realpath('.'));

// Nom de la police à utiliser (notez l'absence de l'extension .ttf)
$font = 'SomeFont';
?>

text

La chaîne de texte.

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 (la fonction html_entity_decode() supporte ceci depuis PHP 5.0.0.).

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.

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

Notes

Note : Cette fonction requiert la bibliothèque GD ainsi que la bibliothèque FreeType.

Voir aussi

imagettfbbox()

Précédent | Sommaire | Suivant
imagettfbbox | Niveau supérieur | imagetypes


imagetypes

(PHP 3 CVS only, PHP 4 >= 4.0.2, PHP 5)

imagetypes -- Retourne les types d'images supportés par la version courante de PHP

Description

int imagetypes ( void )

Retourne un champ d'octets correspondant aux formats d'images supportés par la version PHP utilisée.

Valeurs de retour

Retourne un champ d'octets correspondant aux formats d'images supportés par la version de GD utilisée. Les valeurs suivantes sont possibles : IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP | IMG_XPM.

Exemples

Exemple 1. Exemple avec imagetypes()

<?php
if (imagetypes() & IMG_PNG) {
    echo "Le type PNG est supporté";
}
?>

Précédent | Sommaire | Suivant
imagettftext | Niveau supérieur | imagewbmp


imagewbmp

(PHP 3 >= 3.0.15, PHP 4 >= 4.0.1, PHP 5)

imagewbmp -- Affiche une image WBMP

Description

bool imagewbmp ( resource image [, string filename [, int foreground]] )

imagewbmp() affiche ou sauvegarde une version WBMP de l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin vers le fichier de sauvegarde. S'il n'est pas défini, ou s'il vaut NULL, le flux brut de l'image sera affiché directement.

foreground

Vous pouvez choisir la couleur de fond avec ce paramètre. Utilisez l'identifiant retourné par imagecolorallocate() comme valeur de ce paramètre. La couleur de fond par défaut est noire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Le support WBMP n'est disponible que si PHP a été compilé avec GD-1.8 ou plus récent.

Voir aussi

image2wbmp()
imagepng()
imagegif()
imagejpeg()
imagetypes()

Précédent | Sommaire | Suivant
imagetypes | Niveau supérieur | imagexbm


imagexbm

(PHP 5)

imagexbm -- Génère une image au format XBM

Description

bool imagexbm ( resource image, string filename [, int foreground] )

Affiche ou sauvegarde une version XBM de l'image image.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

filename

Le chemin vers le fichier de sauvegarde. S'il n'est pas défini ou s'il vaut NULL, le flux brut de l'image sera directement affiché.

foreground

Vous pouvez définir le premier plan avec ce paramètre en définissant un identifiant obtenu depuis la fonction imagecolorallocate(). Par défaut, la couleur du premier plan est noir.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

Précédent | Sommaire | Suivant
imagewbmp | Niveau supérieur | iptcembed


iptcembed

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

iptcembed -- Intègre des données binaires IPTC dans une image JPEG

Description

mixed iptcembed ( string iptcdata, string jpeg_file_name [, int spool] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

iptcdata

jpeg_file_name

spool

Précédent | Sommaire | Suivant
imagexbm | Niveau supérieur | iptcparse


iptcparse

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

iptcparse -- Analyse un bloc binaire IPTC et recherche les balises simples

Description

array iptcparse ( string iptcblock )

Analyse un bloc binaire IPTC et recherche les balises simples.

Liste de paramètres

iptcblock

Un bloc binaire IPTC

Valeurs de retour

Retourne un tableau avec les balises comme index et les valeurs de ces balises IPTC dans les valeurs de tableau correspondantes. En cas d'erreur, ou si aucune balise IPTC n'a été trouvée, cette fonction retourne FALSE.

Voir aussi

getimagesize() for an example

Précédent | Sommaire | Suivant
iptcembed | Niveau supérieur | jpeg2wbmp


jpeg2wbmp

(PHP 4 >= 4.0.5, PHP 5)

jpeg2wbmp -- Convertit une image JPEG en image WBMP

Description

bool jpeg2wbmp ( string jpegname, string wbmpname, int dest_height, int dest_width, int threshold )

Convertit une image JPEG en image WBMP.

Liste de paramètres

jpegname

Le chemin vers le fichier JPEG

wbmpname

Chemin vers le fichier final WBMP

dest_height

Hauteur de l'image de destination

dest_width

Largeur de l'image de destination

threshold

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Le support WBMP n'est disponible que si PHP a été compilé avec GD-1.8 ou supérieur.

Note : Le support JPEG n'est disponible que si PHP a été compilé avec GD-1.8 ou supérieur.

Voir aussi

png2wbmp()

Précédent | Sommaire | Suivant
iptcparse | Niveau supérieur | png2wbmp


png2wbmp

(PHP 4 >= 4.0.5, PHP 5)

png2wbmp -- Convertit une image PNG en image WBMP

Description

bool png2wbmp ( string pngname, string wbmpname, int dest_height, int dest_width, int threshold )

Convertit une image PNG en image WBMP.

Liste de paramètres

pngname

Chemin vers le fichier PNG

wbmpname

Chemin vers le fichier fianl WBMP

dest_height

Hauteur de l'image de destination

dest_width

Largeur de l'image de destination

threshold

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Le support WBMP n'est disponible que si PHP a été compilé avec GD-1.8 ou supérieur.

Voir aussi

jpeg2wbmp()

Précédent | Sommaire | Suivant
jpeg2wbmp | Niveau supérieur | Image magick Functions


IMAP

Manuel PHP
Précédent Suivant

LXVII. IMAP

Introduction

Ces fonctions vous permettent d'utiliser le protocole IMAP, mais aussi les protocoles NNTP, POP3 et les boîtes aux lettres locales.

Cependant, soyez prudent car quelques fonctions IMAP ne fonctionnent pas correctement avec le protocole POP.

Pré-requis

Cette extension requiert la bibliothèque C cliente. Téléchargez cette dernière version à ftp://ftp.cac.washington.edu/imap/ et compilez-la.

Il est important de ne pas copier les fichiers sources IMAP directement dans le dossier d'inclusion système sous peine de conflits. À la place de cela, créez un nouveau dossier dans le dossier d'inclusion système, comme /usr/local/imap-2000b/ (le chemin et le nom dépendent de votre configuration et de votre version d'IMAP) et dans ce nouveau dossier, créez les dossiers nommés lib/ et include/. Depuis le dossier c-client des sources IMAP, copiez tous les fichiers *.h dans le dossier include/ et tous les fichiers *.c dans le dossier lib/. Additionnellement, lorsque vous compilez IMAP, un fichier nommé c-client.a est crée. Mettez le également dans le dossier lib/ mais renommez le en libc-client.a.

Note : Pour compiler la bibliothèque C cliente avec SSL et/ou avec le support Kerberos, lisez la doc fournie dans la distribution.

Note : Sur Mandrake Linux, la bibliothèque IMAP (libc-client.a) est compilée sans le support Kerberos. Une version séparée avec SSL (client-PHP4.a) est installée. La bibliothèque doit être recompilée pour ajouter le support Kerberos.

Installation

Pour avoir accès à ces fonctions, vous devez compiler PHP avec l'option --with-imap[=DIR], où DIR est le préfixe de l'installation du client C. Dans nos exemples, vous pourriez utiliser --with-imap=/usr/local/imap-2000b. Le nom du dossier d'installation dépend de l'emplacement où vous avez créé le dossier, en fonction de la description ci-dessus. Les utilisateurs Windows peuvent inclure la bibliothèque DLL php_imap.dll dans le php.ini. IMAP n'est pas supporté sur les systèmes plus anciens que Windows 2000. Cela est dû au fait que IMAP utilise les fonctions de cryptage pour activer les connexions SSL aux serveurs de mails.

Note : Suivant la configuration de la bibliothèque C cliente, vous pouvez aussi avoir besoin d'ajouter --with-imap-ssl=/path/to/openssl/ et/ou --with-kerberos=/path/to/kerberos dans la ligne de configuration PHP.

Avertissement

Les extensions IMAP, recode, YAZ et Cyrus ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

NIL (entier)

OP_DEBUG (entier)

OP_READONLY (entier)

Ouvre une boîte aux lettres en lecture seule

OP_ANONYMOUS (entier)

Ne pas utiliser, ou modifier le fichier .newsrc pour les news, (NNTP uniquement).

OP_SHORTCACHE (entier)

OP_SILENT (entier)

OP_PROTOTYPE (entier)

OP_HALFOPEN (entier)

Pour les noms IMAP et NNTP, ouvre une connexion mais n'ouvre pas une boîte aux lettres.

OP_EXPUNGE (entier)

OP_SECURE (entier)

CL_EXPUNGE (entier)

purger automatiquement la boîte aux lettres lors de l'appel de imap_close()

FT_UID (entier)

Le paramètre est un UID.

FT_PEEK (entier)

Ne pas lever le drapeau \Seen (Message lu) s'il n'est pas déjà levé.

FT_NOT (entier)

FT_INTERNAL (entier)

La chaîne renvoyée est au format interne, et ne va pas canoniser les CRLF.

FT_PREFETCHTEXT (entier)

ST_UID (entier)

la séquence contient des UID au lieu de numéros de séquence

ST_SILENT (entier)

ST_SET (entier)

CP_UID (entier)

La séquence de nombres contient des UID

CP_MOVE (entier)

Efface les messages après copie avec imap_mail_copy()

SE_UID (entier)

Retourne des UID à la place de numéros

SE_FREE (entier)

SE_NOPREFETCH (entier)

Ne pas pré-télécharger les messages trouvés

SO_FREE (entier)

SO_NOSERVER (entier)

SA_MESSAGES (entier)

SA_RECENT (entier)

SA_UNSEEN (entier)

SA_UIDNEXT (entier)

SA_UIDVALIDITY (entier)

SA_ALL (entier)

LATT_NOINFERIORS (entier)

Cette boîte aux lettres n'a pas d'"enfants" (il n'y a plus de boîtes aux lettres en dessous de celle-ci).

LATT_NOSELECT (entier)

Ceci est juste un container, pas une boîte aux lettres (vous ne pouvez pas l'ouvrir).

LATT_MARKED (entier)

Cette boîte aux lettres est marquée. Utilisé uniquement avec UW-IMAPD.

LATT_UNMARKED (entier)

Cette boîte aux lettres n'est pas marquée. Utilisé uniquement avec UW-IMAPD.

SORTDATE (entier)

Critère de tri pour imap_sort() : Date du message

SORTARRIVAL (entier)

Critère de tri pour imap_sort() : Date d'arrivée

SORTFROM (entier)

Critère de tri pour imap_sort() : Nom de la première boîte aux lettres de l'adresse d'origine (From address)

SORTSUBJECT (entier)

Critère de tri pour imap_sort() : Sujet du message

SORTTO (entier)

Critère de tri pour imap_sort() : Nom de la première boîte aux lettres de destination (To address)

SORTCC (entier)

Critère de tri pour imap_sort() : Nom de la boîte aux lettres de copie cachée (cc address)

SORTSIZE (entier)

Critère de tri pour imap_sort() : Taille du message en octets

TYPETEXT (entier)

TYPEMULTIPART (entier)

TYPEMESSAGE (entier)

TYPEAPPLICATION (entier)

TYPEAUDIO (entier)

TYPEIMAGE (entier)

TYPEVIDEO (entier)

TYPEOTHER (entier)

ENC7BIT (entier)

ENC8BIT (entier)

ENCBINARY (entier)

ENCBASE64 (entier)

ENCQUOTEDPRINTABLE (entier)

ENCOTHER (entier)

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.

Table des matières
imap_8bit -- Convertit une chaîne à 8 bits en une chaîne à guillemets
imap_alerts -- Retourne toutes les alertes
imap_append -- Ajoute une 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 le courrier de la boîte aux lettres courante
imap_clearflag_full -- Supprime un flag (drapeau) sur un message
imap_close -- Termine un flux IMAP
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 IMPA 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_fetchstructure -- Lit la structure d'un message
imap_get_quota -- Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles
imap_get_quotaroot -- Lit les quotas de chaque utilisateur
imap_getacl -- Retourne le ACL pour la boîte aux lettres
imap_getmailboxes -- Liste les boîtes aux lettres, et retourne les détails de chacune
imap_getsubscribed -- Liste toutes les boîtes aux lettres souscrites
imap_header -- Alias de imap_headerinfo()
imap_headerinfo -- Lit l'en-tête du message
imap_headers -- Retourne les en-têtes de tous les messages d'une boîte aux lettres
imap_last_error -- Retourne la dernière erreur survenue
imap_list -- Lit la liste des boîtes aux lettres
imap_listmailbox -- Alias de imap_list()
imap_listscan -- Lit la liste des boîtes aux lettres, et y recherche une chaîne
imap_listsubscribed -- Alias de imap_lsub()
imap_lsub -- Liste toutes les boîtes aux lettres enregistrées
imap_mail_compose -- Crée un message MIME
imap_mail_copy -- Copie les messages spécifiés dans une boîte aux lettres
imap_mail_move -- Déplace des messages dans une boîte aux lettres
imap_mail -- Envoie un message mail
imap_mailboxmsginfo -- Lit les informations à propos de la boîte aux lettres courante
imap_mime_header_decode -- Décode les éléments MIME d'un en-tête
imap_msgno -- Retourne le numéro de séquence du message pour un UID donné
imap_num_msg -- Retourne le nombre de messages dans la boîte aux lettres courante
imap_num_recent -- Retourne le nombre de messages récents dans la boîte aux lettres courante
imap_open -- Ouvre un flux IMAP vers une boîte aux lettres
imap_ping -- Vérifie que le flux IMAP est toujours actif
imap_qprint -- Convertit une chaîne à guillemets en une chaîne à 8 bits
imap_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_scanmailbox -- Alias de imap_listscan()
imap_search -- Retourne un tableau de messages après recherche
imap_set_quota -- Modifie le quota d'une boîte aux lettres
imap_setacl -- Modifie le ACL de la boîte aux lettres
imap_setflag_full -- Positionne un drapeau sur un message
imap_sort -- Trie des messages
imap_status -- Retourne les informations de statut sur une boîte aux lettres
imap_subscribe -- Souscrit à une boîte aux lettres
imap_thread -- Retourne l'arbre des messages organisés par thread
imap_timeout -- Configure ou retourne le timeout
imap_uid -- Retourne l'UID d'un message
imap_undelete -- Enlève la marque d'effacement d'un message
imap_unsubscribe -- Termine la souscription à une boîte aux lettres
imap_utf7_decode -- Décode une chaîne encodée en UTF-7 modifié
imap_utf7_encode -- Convertit une chaîne ISO-8859-1 en texte UTF-7 modifié
imap_utf8 -- Convertit du texte au format MIME en UTF-8

Précédent | Sommaire | Suivant
imagick_zoom | Niveau supérieur | imap_8bit


imap_8bit

(PHP 3, PHP 4, PHP 5)

imap_8bit -- Convertit une chaîne à 8 bits en une chaîne à guillemets

Description

string imap_8bit ( string string )

Convertit la chaîne à 8 bits en une chaîne à guillemets (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 à guillemets.

Voir aussi

imap_qprint()

Précédent | Sommaire | Suivant
IMAP | Niveau supérieur | imap_alerts


imap_alerts

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

imap_alerts -- Retourne toutes les alertes

Description

array imap_alerts ( void )

Retourne un tableau de tous les messages d'alerte IMAP générés depuis le dernier appel à imap_alerts() ou depuis le début de la page.

Lorsque imap_alerts() est appelée, la pile d'alertes est vidée. Les spécifications IMAP requièrent que ces messages soient passés à l'utilisateur.

Valeurs de retour

Retourne un tableau contenant tous les messages d'alerte IMAP générés ou FALSE si aucun message d'alerte n'est disponible.

Voir aussi

imap_errors()

Précédent | Sommaire | Suivant
imap_8bit | Niveau supérieur | imap_append


imap_append

(PHP 3, PHP 4, PHP 5)

imap_append -- Ajoute une message dans une boîte aux lettres

Description

bool imap_append ( resource imap_stream, string mailbox, string message [, string options] )

Ajoute un message message dans la boîte aux lettres mbox.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation sur la fonction imap_open() pour plus d'informations

message

Le message à ajouter, sous la forme d'une chaîne de caractères

Lors des échanges avec le serveur Cyrus IMAP, vous devrez utiliser "\r\n" comme terminaison de ligne, à la place de "\n" ou l'opération échouera.

options

Si fourni, le paramètre options sera également écrit dans la boîte mailbox

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec imap_append()

<?php
$stream = imap_open("{imap.example.org}INBOX.Drafts", "username", "password");

$check = imap_check($stream);
echo "Msg Count before append: ". $check->Nmsgs . "\n";

imap_append($stream, "{imap.example.org}INBOX.Drafts"
                   , "From: me@example.com\r\n"
                   . "To: you@example.com\r\n"
                   . "Subject: test\r\n"
                   . "\r\n"
                   . "Ceci est un message de test. Ignorez le.\r\n"
                   );

$check = imap_check($stream);
echo "Nombre de messages après ajout : ". $check->Nmsgs . "\n";

imap_close($stream);
?>

Précédent | Sommaire | Suivant
imap_alerts | Niveau supérieur | imap_base64


imap_base64

(PHP 3, PHP 4, PHP 5)

imap_base64 -- Décode un texte encodé en BASE64

Description

string imap_base64 ( string text )

Décode le texte text encodé en BASE64.

Liste de paramètres

text

Le texte encodé.

Valeurs de retour

Retourne le texte décodé, sous la forme d'une chaîne de caractères.

Voir aussi

imap_binary()
base64_encode()
base64_decode()
RFC2045, Section 6.8

Précédent | Sommaire | Suivant
imap_append | Niveau supérieur | imap_binary


imap_binary

(PHP 3 >= 3.0.2, PHP 4, PHP 5)

imap_binary -- Convertit une chaîne à 8 bits en une chaîne à base64

Description

string imap_binary ( string string )

Convertit la chaîne à 8 bits string en une chaîne à base64 (selon la RFC2045, Section 6.8).

Liste de paramètres

string

La chaîne 8 bits

Valeurs de retour

Retourne la chaîne encodée en base64.

Voir aussi

imap_base64()

Précédent | Sommaire | Suivant
imap_base64 | Niveau supérieur | imap_body


imap_body

(PHP 3, PHP 4, PHP 5)

imap_body -- Lit le corps d'un message

Description

string imap_body ( resource imap_stream, int msg_number [, int options] )

imap_body() retourne le corps du message numéro msg_number de la boîte aux lettres courante.

imap_body() va retourner une copie brute du corps du message. Pour extraire les sous-parties MIME du message, utilisez imap_fetchstructure() pour analyser la structure, et imap_fetchbody() pour extraire une copie d'une des sous-partie.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

options

Le paramètre options optionnel est un masque qui peut contenir les valeurs suivantes :

  • FT_UID - msg_number est un UID

  • FT_PEEK - Ne pas lever le drapeau \Seen (Message lu) s'il n'est pas déjà levé.

  • FT_INTERNAL - La chaîne renvoyée est au format interne, et ne va pas canoniser les CRLF.

Valeurs de retour

Retourne le corps du message spécifié, sous la forme d'une chaîne de caractères.

Précédent | Sommaire | Suivant
imap_binary | Niveau supérieur | imap_bodystruct


imap_bodystruct

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

imap_bodystruct -- Lit la structure d'une section du corps d'un mail

Description

object imap_bodystruct ( resource imap_stream, int msg_number, string section )

Lit la structure d'une section spécifié du corps d'un mail.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

section

La section du corps à lire

Valeurs de retour

Retourne les informations dans un objet ; pour une description détaillée de la structure de l'objet ainsi que de ses propriétés, reportez-vous à la fonction imap_fetchstructure().

Voir aussi

imap_fetchstructure()

Précédent | Sommaire | Suivant
imap_body | Niveau supérieur | imap_check


imap_check

(PHP 3, PHP 4, PHP 5)

imap_check -- Vérifie le courrier de la boîte aux lettres courante

Description

object imap_check ( resource imap_stream )

imap_check() retourne les informations à propos de la boîte aux lettres courante.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

Valeurs de retour

Retourne les informations dans un objet contenant les propriétés suivantes :

  • Date - Date de dernière modification du contenu de la boîte aux lettres en accord avec la RFC2822

  • Driver - protocole utilisé pour accéder à la boîte aux lettres: POP3, IMAP, NNTP.

  • Mailbox - nom de la boîte aux lettres

  • Nmsgs - nombre de messages de la boîte aux lettres

  • Recent - nombre de messages récents de la boîte aux lettres

Retourne FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec imap_check()

<?php

$imap_obj = imap_check($imap_stream);
var_dump($imap_obj);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

object(stdClass)(5) {
  ["Date"]=>
  string(37) "Wed, 10 Dec 2003 17:56:54 +0100 (CET)"
  ["Driver"]=>
  string(4) "imap"
  ["Mailbox"]=>
  string(54)
  "{www.example.com:143/imap/user="foo@example.com"}INBOX"
  ["Nmsgs"]=>
  int(1)
  ["Recent"]=>
  int(0)
}

Précédent | Sommaire | Suivant
imap_bodystruct | Niveau supérieur | imap_clearflag_full


imap_clearflag_full

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

imap_clearflag_full -- Supprime un flag (drapeau) sur un message

Description

bool imap_clearflag_full ( resource imap_stream, string sequence, string flag [, string options] )

imap_clearflag_full() efface le flag flag dans les messages de la séquence sequence, du flux imap stream.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

sequence

Une séquence de numéro de messages. Vous pouvez énumérer les messages désirées avec la synthaxe X,Y, ou récupérer tous les messages contenus dans un intervalle, avec la synthaxe 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 bit, qui accepte uniquement la valeur suivante :

  • ST_UID - la séquence contient des UID au lieu de numéros de séquence

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

imap_setflag_full()

Précédent | Sommaire | Suivant
imap_check | Niveau supérieur | imap_close


imap_close

(PHP 3, PHP 4, PHP 5)

imap_close -- Termine un flux IMAP

Description

bool imap_close ( resource imap_stream [, int flag] )

Termine un flux IMAP.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

flag

S'il est défini à CL_EXPUNGE, la fonction effectuera une purge automatique de la boîte aux lettres avant de la fermer, supprimant tous les messages marqués pour l'effacement. Vous pouvez effectuer la même chose avec la fonction imap_expunge()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

imap_open()

Précédent | Sommaire | Suivant
imap_clearflag_full | Niveau supérieur | imap_createmailbox


imap_createmailbox

(PHP 3, PHP 4, PHP 5)

imap_createmailbox -- Crée une nouvelle boîte aux lettres

Description

bool imap_createmailbox ( resource imap_stream, string mailbox )

Crée une nouvelle boîte aux lettres nommée mailbox.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation sur la fonction imap_open() pour plus d'informations. Les noms contenant des caractères internationaux doivent être encodés par la fonction imap_utf7_encode()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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&ouml;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()
imap_deletemailbox()

Précédent | Sommaire | Suivant
imap_close | Niveau supérieur | imap_delete


imap_delete

(PHP 3, PHP 4, PHP 5)

imap_delete -- Marque le fichier pour l'effacement, dans la boîte aux lettres courante

Description

bool imap_delete ( int imap_stream, int msg_number [, int options] )

Marque les messages msg_number pour l'effacement. L'effacement réel n'interviendra que lors de l'appel de la fonction imap_expunge() ou de imap_close() avec le paramètre optionnel CL_EXPUNGE.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

options

Vous pouvez le définir à FT_UID qui demande à la fonction de traiter l'argument msg_number comme un UID.

Valeurs de retour

Retourne TRUE.

Exemples

Exemple 1. Exemple avec imap_delete()

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
    or die("Connexion impossible : " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);
echo "Nombre de messages avant effacement : " . $check->Nmsgs . "<br />\n";

imap_delete($mbox, 1);

$check = imap_mailboxmsginfo($mbox);
echo "Nombre de messages après effacement : " . $check->Nmsgs . "<br />\n";

imap_expunge($mbox);

$check = imap_mailboxmsginfo($mbox);
echo "Nombre de messages après imap_expunge : " . $check->Nmsgs . "<br />\n";

imap_close($mbox);
?>

Notes

Note : Les boîtes aux lettres POP3 n'ont pas les flags de leurs messages de sauvegardés entre les connexions, donc, 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()
imap_expunge()
imap_close()

Précédent | Sommaire | Suivant
imap_createmailbox | Niveau supérieur | imap_deletemailbox


imap_deletemailbox

(PHP 3, PHP 4, PHP 5)

imap_deletemailbox -- Efface une boîte aux lettres

Description

bool imap_deletemailbox ( resource imap_stream, string mailbox )

Efface la boîte aux lettres spécifiée.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation sur la fonction imap_open() pour plus de détails

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

imap_createmailbox()
imap_renamemailbox()
imap_open() pour le format mbox

Précédent | Sommaire | Suivant
imap_delete | Niveau supérieur | imap_errors


imap_errors

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

imap_errors -- Retourne toutes les erreurs IMPA survenues

Description

array imap_errors ( void )

Cette fonction retourne un tableau de tous les messages d'erreurs IMAP générés depuis le dernier appel à imap_errors() ou depuis le début de la page.

Lorsque imap_errors() est appelée, la pile d'erreurs est vidée.

Valeurs de retour

Cette fonction retourne un tableau contenant tous les messages d'erreur IMAP générés depuis le dernier appel à la fonction imap_errors() ou depuis le début de la page. Retourne FALSE si aucun message d'erreur n'est disponible.

Voir aussi

imap_last_error()
imap_alerts()

Précédent | Sommaire | Suivant
imap_deletemailbox | Niveau supérieur | imap_expunge


imap_expunge

(PHP 3, PHP 4, PHP 5)

imap_expunge -- Efface tous les messages marqués pour l'effacement

Description

bool imap_expunge ( resource imap_stream )

Efface tous les messages marqués pour l'effacement par imap_delete(), imap_mail_move(), ou imap_setflag_full().

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

Valeurs de retour

Retourne TRUE.

Précédent | Sommaire | Suivant
imap_errors | Niveau supérieur | imap_fetch_overview


imap_fetch_overview

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

imap_fetch_overview -- Lit le sommaire des en-têtes de messages

Description

array imap_fetch_overview ( resource imap_stream, string sequence [, int options] )

imap_fetch_overview() lit les en-têtes des courriers électroniques de la séquence sequence et retourne un sommaire de leur contenu.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

sequence

Une description de la séquence du message. Vous pouvez énumérer les messages désirés avec la synthaxe X,Y, ou récupérer tous les messages d'un intervalle, avec la synthaxe X:Y

options

sequence va contenir une séquence d'indice de message ou d'UIDs, 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 - Expéditeur

  • to - Destinataire

  • date - Date d'expédition

  • message_id - Identification du message

  • references - est une référence sur l'id de ce message

  • in_reply_to - est une réponse à cet identifiant de message

  • size - taille en octets

  • uid - UID du message dans la boîte aux lettres

  • msgno - numéro de séquence du message dans la boîte

  • recent - Ce message est récent

  • flagged - Ce message est marqué

  • answered - Ce message a donné lieu à une réponse

  • deleted - Ce message est marqué pour l'effacement

  • seen - Ce message est déjà lu

  • draft - Ce message est un brouillon

Exemples

Exemple 1. Exemple avec imap_fetch_overview()

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password")
     or die("Connexion impossible : " . imap_last_error());

$MC = imap_check($mbox);

// Récupère le sommaire pour tous les messages contenus dans INBOX
$result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0);
foreach ($result as $overview) {
    echo "#{$overview->msgno} ({$overview->date}) - From: {$overview->from}
    {$overview->subject}\n";
}
imap_close($mbox);
?>

Voir aussi

imap_fetchheader()

Précédent | Sommaire | Suivant
imap_expunge | Niveau supérieur | imap_fetchbody


imap_fetchbody

(PHP 3, PHP 4, PHP 5)

imap_fetchbody -- Retourne une section extraite du corps d'un message

Description

string imap_fetchbody ( resource imap_stream, int msg_number, string part_number [, int options] )

Récupère une section particulière du corps des messages spécifiés. Les parties du corps ne sont pas décodées par cette fonction.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

part_number

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

options

L'option imap_fetchbody() est un masque qui peut contenir les valeurs suivantes :

  • FT_UID - msg_number est un UID

  • FT_PEEK - Ne pas lever le drapeau \Seen (Message lu) s'il n'est pas déjà levé.

  • FT_INTERNAL - La chaîne renvoyée est au format interne, et ne va pas canoniser les CRLF.

Valeurs de retour

Retourne une section particulière du corps des messages spécifiés, sous la forme d'une chaîne de caractères.

Voir aussi

imap_savebody()
imap_fetchstructure()

Précédent | Sommaire | Suivant
imap_fetch_overview | Niveau supérieur | imap_fetchheader


imap_fetchheader

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

imap_fetchheader -- Retourne l'en-tête d'un message

Description

string imap_fetchheader ( resource imap_stream, int msg_number [, int options] )

imap_fetchheader() retourne l'en-tête brut et complet RFC2822 du message msgno, sous la forme d'une chaîne.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

options

Les options possibles sont :

  • FT_UID - msgno est un UID

  • FT_INTERNAL - La chaîne renvoyée est au format "internal" , c'est-à-dire sans canonisation des CRLF

  • FT_PREFETCHTEXT - RFC822.TEXT doit être pré téléchargé en même temps que l'en-tête. Cela réduit le RTT sur une connexion IMAP, si le message complet est souhaité. (e.g. dans une opération de sauvegarde dans un fichier).

Valeurs de retour

Retourne l'en-tête du message spécifié, sous la forme d'une chaîne de caractères.

Voir aussi

imap_fetch_overview()

Précédent | Sommaire | Suivant
imap_fetchbody | Niveau supérieur | imap_fetchstructure


imap_fetchstructure

(PHP 3, PHP 4, PHP 5)

imap_fetchstructure -- Lit la structure d'un message

Description

object imap_fetchstructure ( resource imap_stream, int msg_number [, int options] )

imap_fetchstructure() lit la structure du message msg_number.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

options

Ce paramètre optionnel n'a qu'une seule option, FT_UID, qui demande à la fonction de traiter l'argument msg_number comme un UID.

Valeurs de retour

Retourne un objet avec des propriétés d'enveloppe, de date interne, de taille, de structure de flags et de corps, ainsi qu'un objet pour chaque attachement. La structure est la suivante :

Tableau 1. Objets retournés par imap_fetchstructure()

type | Type primaire de corps
encoding | Codage de transfert du corps
ifsubtype | TRUE s'il y a une chaîne de sous type
subtype | sous type MIME
ifdescription | TRUE s'il y a une chaîne de description
description | Chaîne de description du contenu
ifid | TRUE s'il y a une chaîne d'identification
id | Chaîne d'identification
lines | Nombre de lignes
bytes | Nombre d'octets
ifdisposition | TRUE s'il y a une chaîne de disposition
disposition | Chaîne de disposition
ifdparameters | TRUE s'il y a un tableau de paramètres dparameters
dparameters | tableau d'objets où chaque objet a une propriété "attribute" et une propriété "value" correspondant aux paramètres d'en-têtes Content-disposition MIME.
ifparameters | TRUE si le tableau de paramètres existe
parameters | Tableau d'objets où chacun a une propriété "attribute" et une propriété "value".
parts | Tableau d'objets décrivant chaque partie MIME du message

Tableau 2. Type primaire de corps

0 | text
1 | multipart
2 | message
3 | application
4 | audio
5 | image
6 | video
7 | other

Tableau 3. Codage de transfert

0 | 7BIT
1 | 8BIT
2 | BINARY
3 | BASE64
4 | QUOTED-PRINTABLE
5 | OTHER

Voir aussi

imap_fetchbody()
imap_bodystruct()

Précédent | Sommaire | Suivant
imap_fetchheader | Niveau supérieur | imap_get_quota


imap_get_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_get_quota -- Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles

Description

array imap_get_quota ( resource imap_stream, string quota_root )

Lit les quotas des boîtes aux lettres ainsi que des statistiques sur chacune d'elles.

Pour une version utilisateur, non administrateur, de cette fonction, reportez-vous à la fonction imap_get_quotaroot().

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

quota_root

quota_root doit être de la forme : "user.nom", où "nom" est le nom de la boîte aux lettres que vous souhaitez analyser.

Valeurs de retour

Retourne un tableau contenant les valeurs de quota et courante de la boîte aux lettres quota_root. Le quota représente la taille maximale de votre boîte aux lettres. La valeur courante est l'espace actuellement utilisé par votre boîte aux lettres. imap_get_quota() retournera FALSE en cas d'échec.

Depuis PHP 4.3, la fonction reflète plus fidèlement les fonctionnalités édictée par la RFC2087. Le tableau retourné a changé pour supporter un nombre illimité de ressources retournées (i.e. messages ou sous-dossiers) avec chaque ressource nommée qui est identifiée par une clé. Chaque clé contient alors un autre tableau avec l'utilisation et le quota. L'exemple ci-dessous montre comment l'utiliser.

Pour des raisons de compatibilité, la méthode d'accès originale est toujours disponible, mais il est recommandé de l'abandonner.

Exemples

Exemple 1. Exemple avec imap_get_quota()

<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
      or die("Impossible de se connecter : " . imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_value)) {
    echo "Niveau d'utilisation : " . $quota_value['usage'];
    echo "Quota : " . $quota_value['limit'];
}

imap_close($mbox);
?>

Exemple 2. Exemple avec imap_get_quota() 4.3 ou supérieur

<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
      or die("Impossible de se connecter : " . imap_last_error());

$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_values)) {
   $storage = $quota_values['STORAGE'];
   echo "Utilisation actuelle de la capacité de stockage : " .  $storage['usage'];
   echo "Quota actuel de stockage  : " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   echo "Niveau d'utilisation de MESSAGE  : " .  $message['usage'];
   echo "Quota de MESSAGE : " .  $message['limit'];

   /* ...  */
}

imap_close($mbox);
?>

Notes

imap_get_quota() ne fonctionne actuellement qu'avec les bibliothèques c-client2000.

imap_stream doit avoir été créé avec la fonction imap_open(). Ce flux est nécessairement ouvert en tant qu'administrateur du serveur, pour que les droits nécessaires lui soient alloués.

Voir aussi

imap_open()
imap_set_quota()
imap_get_quotaroot()

Précédent | Sommaire | Suivant
imap_fetchstructure | Niveau supérieur | imap_get_quotaroot


imap_get_quotaroot

(PHP 4 >= 4.3.0, PHP 5)

imap_get_quotaroot -- Lit les quotas de chaque utilisateur

Description

array imap_get_quotaroot ( resource imap_stream, string quota_root )

Récupère les quotas de chaque utilisateur. La valeur limite représente l'espace limite alloué pour cette utilisateur pour l'utilisation de sa boîte aux lettres. La valeur de l'utilisation représente la taille actuelle de la boîte aux lettres.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

quota_root

quota_root doit être un nom de boîte aux lettres (i.e. INBOX).

Valeurs de retour

Retourne un tableau d'entiers, contenant les quotas de la boîte aux lettres de l'utilisateur. Toutes les valeurs sont représentées par une clé basée sur le nom de la boîte, et par un tableau représentant le niveau d'utilisation et les limites.

Cette fonction retournera FALSE si une erreur est survenue, et un tableau de données si la réponse du serveur n'a pu être comprise.

Exemples

Exemple 1. Exemple avec imap_get_quotaroot()

<?php
$mbox = imap_open("{imap.example.org}", "kalowsky", "password", OP_HALFOPEN)
      or die("Connexion impossible : " . imap_last_error());

$quota = imap_get_quotaroot($mbox, "INBOX");
if (is_array($quota)) {
   $storage = $quota_values['STORAGE'];
   echo "STORAGE niveau d'utilisation : " .  $storage['usage'];
   echo "STORAGE taille limite : " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   echo "MESSAGE niveau d'utilisation : " .  $message['usage'];
   echo "MESSAGE taille limite : " .  $message['limit'];

   /* ...  */

}

imap_close($mbox);
?>

Notes

Cette fonction est uniquement accessible aux utilisateurs de la bibliothèque c-client2000 ou plus récent.

imap_stream est une ressource de connexion, obtenue grâce à imap_open(). Cette connexion doit être ouverte avec l'identité de l'utilisateur que l'on étudie.

Voir aussi

imap_open()
imap_set_quota()
imap_get_quota()

Précédent | Sommaire | Suivant
imap_get_quota | Niveau supérieur | imap_getacl


imap_getacl

(PHP 5)

imap_getacl -- Retourne le ACL pour la boîte aux lettres

Description

array imap_getacl ( resource imap_stream, string mailbox )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails.

Notes

Cette fonction n'est actuellement disponible que pour les utilisateurs de la bibliothèque c-client2000 ou supérieur.

Voir aussi

imap_setacl()

Précédent | Sommaire | Suivant
imap_get_quotaroot | Niveau supérieur | imap_getmailboxes


imap_getmailboxes

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

imap_getmailboxes -- Liste les boîtes aux lettres, et retourne les détails de chacune

Description

array imap_getmailboxes ( resource imap_stream, string ref, string pattern )

Liste les boîtes aux lettres.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'interesse 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.

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

Précédent | Sommaire | Suivant
imap_getacl | Niveau supérieur | imap_getsubscribed


imap_getsubscribed

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

imap_getsubscribed -- Liste toutes les boîtes aux lettres souscrites

Description

array imap_getsubscribed ( resource imap_stream, string ref, string pattern )

Liste toutes les boîtes aux lettres souscrites.

imap_getsubscribed() est identique à imap_getmailboxes(), mais ne retourne que les boîtes aux lettres auxquelles l'utilisateur est inscrit.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'interesse 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.

Précédent | Sommaire | Suivant
imap_getmailboxes | Niveau supérieur | imap_header


imap_header

(PHP 3, PHP 4, PHP 5)

imap_header -- Alias de imap_headerinfo()

Description

Cette fonction est un alias de : imap_headerinfo().

Précédent | Sommaire | Suivant
imap_getsubscribed | Niveau supérieur | imap_headerinfo


imap_headerinfo

(PHP 3, PHP 4, PHP 5)

imap_headerinfo -- Lit l'en-tête du message

Description

object imap_headerinfo ( resource imap_stream, int msg_number [, int fromlength [, int subjectlength [, string defaulthost]]] )

Récupère les informations sur un numéro de message donné en lisant ses en-têtes.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

fromlength

Nombre de caractères pour la propriété fetchfrom. Doit être plus grand ou égal à 0.

subjectlength

Nombre de caractères pour la propriété fetchsubject. Doit être plus grand ou égal à 0.

defaulthost

Valeurs de retour

Retourne les informations dans un objet contenant les propriétés suivantes :

  • toaddress - toute la ligne d'en-tête to: jusqu'à 1024 caractères

  • to - un tableau d'objets issus de la ligne to: avec les propriétés suivantes : personal, adl, mailbox, et host

  • fromaddress - toute la ligne d'en-tête from: jusqu'à 1024 caractères

  • from - un tableau d'objets issus de la ligne From: avec les propriétés suivantes : personal, adl, mailbox, et host

  • ccaddress - toute la ligne d'en-tête cc: jusqu'à 1024 caractères

  • cc - un tableau d'objets issus de la ligne cc: avec les propriétés suivantes : personal, adl, mailbox, et host

  • bccaddress - toute la ligne d'en-tête bcc: jusqu'à 1024 caractères

  • bcc - un tableau d'objets issus de la ligne Bcc: avec les propriétés suivantes : personal, adl, mailbox, et host

  • reply_toaddress - toute la ligne d'en-tête Reply_to: jusqu'à 1024 caractères

  • reply_to - un tableau d'objets issus de la ligne Reply_to: avec les propriétés suivantes : personal, adl, mailbox, et host

  • senderaddress - toute la ligne d'en-tête Sender: jusqu'à 1024 caractères

  • sender - un tableau d'objets issus de la ligne Sender: avec les propriétés suivantes : personal, adl, mailbox, et host

  • return_pathaddress - toute la ligne d'en-tête Return-path: jusqu'à 1024 caractères

  • return_path - un tableau d'objets issus de la ligne Return-path: avec les propriétés suivantes : personal, adl, mailbox, et host

  • remail -

  • date - La date du message, telle que trouvée dans les en-têtes

  • Date - Identique à "date"

  • subject - Le sujet du message

  • Subject - Identique à "subject"

  • in_reply_to -

  • message_id -

  • newsgroups -

  • followup_to -

  • references -

  • Recent - R si le message est récent et lu, N si le message est récent et non lu, ' ' si le message n'est pas récent.

  • Unseen - U si le message est non lu ET non récent, ' ' si le message est non lu et récent

  • Flagged - F si le message contient un drapeau, ' ' sinon

  • Answered - A si une réponse a été faite à ce message, ' ' sinon

  • Deleted - D si le message est effacé, ' ' sinon

  • Draft - X si le message est un brouillon, ' ' sinon

  • Msgno - Le numéro du message

  • MailDate -

  • Size - La taille du message

  • udate - Date de l'envoi du message, sous la forme d'une date Unix

  • fetchfrom - Ligne "from" formattée afin de tenir dans fromlength caractères

  • fetchsubject - Ligne "subject" formattée afin de tenir dans subjectlength caractères

Voir aussi

imap_fetch_overview()

Précédent | Sommaire | Suivant
imap_header | Niveau supérieur | imap_headers


imap_headers

(PHP 3, PHP 4, PHP 5)

imap_headers -- Retourne les en-têtes de tous les messages d'une boîte aux lettres

Description

array imap_headers ( resource imap_stream )

Retourne les en-têtes de tous les messages d'une boîte aux lettres.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

Valeurs de retour

Retourne un tableau de chaînes contenant les en-têtes des messages : une chaîne par message.

Précédent | Sommaire | Suivant
imap_headerinfo | Niveau supérieur | imap_last_error


imap_last_error

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

imap_last_error -- Retourne la dernière erreur survenue

Description

string imap_last_error ( void )

imap_last_error() retourne le texte complet de la dernière erreur IMAP (si elle existe) qui est survenue lors de la dernière requête. La pile d'erreur n'est pas touchée. Appeler imap_last_error() successivement, sans de nouvelles erreurs, retournera la même erreur.

Valeurs de retour

Retourne le texte complet du dernier message d'erreur IMAP survenu sur la page courante. Retourne FALSE si aucun message n'est disponible.

Voir aussi

imap_errors()

Précédent | Sommaire | Suivant
imap_headers | Niveau supérieur | imap_list


imap_list

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

imap_list -- Lit la liste des boîtes aux lettres

Description

array imap_list ( resource imap_stream, string ref, string pattern )

Lit la liste des boîtes aux lettres.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'interesse qu'au niveau courant. '%' passé à pattern ne retournera que les boîtes aux lettres de niveau supérieur; '~/mail/%'.Sous UW_IMAPD retournera toutes les boîtes aux lettres du dossier ~/mail directory, mais pas leurs enfants.

Valeurs de retour

Retourne un tableau contenant les noms des boîtes aux lettres.

Exemples

Exemple 1. Exemple avec imap_list()

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
      or die("Connexion impossible : " . imap_last_error());

$list = imap_list($mbox, "{imap.example.org}", "*");
if (is_array($list)) {
    foreach ($list as $val) {
        echo imap_utf7_decode($val) . "\n";
    }
} else {
    echo "imap_list a échoué : " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

Voir aussi

imap_getmailboxes()
imap_lsub()

Précédent | Sommaire | Suivant
imap_last_error | Niveau supérieur | imap_listmailbox


imap_listmailbox

(PHP 3, PHP 4, PHP 5)

imap_listmailbox -- Alias de imap_list()

Description

Cette fonction est un alias de : imap_list().

Précédent | Sommaire | Suivant
imap_list | Niveau supérieur | imap_listscan


imap_listscan

(no version information, might be only in CVS)

imap_listscan -- Lit la liste des boîtes aux lettres, et y recherche une chaîne

Description

array imap_listscan ( resource imap_stream, string ref, string pattern, string content )

Retourne un tableau contenant les noms des boîtes aux lettres qui contiennent la chaîne content dans leur nom.

Cette fonction est similaire à imap_listmailbox(), mais va aussi vérifier la présence de la chaîne content dans les messages de la boîte aux lettres.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'interesse qu'au niveau courant. '%' passé à pattern ne retournera que les boîtes aux lettres de niveau supérieur; '~/mail/%'.Sous UW_IMAPD retournera toutes les boîtes aux lettres du dossier ~/mail directory, mais pas leurs enfants.

content

La chaîne cherchée

Valeurs de retour

Retourne un tableau contenant les noms des boîtes aux lettres qui contiennent la chaîne content dans le nom de la boîte aux lettres.

Voir aussi

imap_listmailbox()
imap_search()

Précédent | Sommaire | Suivant
imap_listmailbox | Niveau supérieur | imap_listsubscribed


imap_listsubscribed

(PHP 3, PHP 4, PHP 5)

imap_listsubscribed -- Alias de imap_lsub()

Description

Cette fonction est un alias de : imap_lsub().

Précédent | Sommaire | Suivant
imap_listscan | Niveau supérieur | imap_lsub


imap_lsub

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

imap_lsub -- Liste toutes les boîtes aux lettres enregistrées

Description

array imap_lsub ( resource imap_stream, string ref, string pattern )

Récupère un tableau contenant toutes les boîtes aux lettres auxquelles vous avez souscrit.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

ref

ref ne devrait être que le serveur sous la forme décrite dans imap_open()

pattern

Spécifie la position dans la hiérarchie des boîtes aux lettres, où il faut commencer à chercher.

Il y a deux caractères spéciaux que vous pouvez utiliser dans pattern : '*' et '%'. '*' signifie : toutes les boîtes aux lettres. Si vous passez pattern comme '*', vous obtiendrez la liste complète des boîtes aux lettres de la hiérarchie. '%' signifie qu'on ne s'interesse qu'au niveau courant. '%' passé à pattern ne retournera que les boîtes aux lettres de niveau supérieur; '~/mail/%'.Sous UW_IMAPD retournera toutes les boîtes aux lettres du dossier ~/mail directory, mais pas leurs enfants.

Valeurs de retour

Retourne un tableau contenant toutes les boîtes aux lettres souscrites.

Voir aussi

imap_list()
imap_getmailboxes()

Précédent | Sommaire | Suivant
imap_listsubscribed | Niveau supérieur | imap_mail_compose


imap_mail_compose

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

imap_mail_compose -- Crée un message MIME

Description

string imap_mail_compose ( array envelope, array body )

Crée un message MIME basé sur l'enveloppe envelope et les sections body.

Liste de paramètres

envelope

Un tableau associatif contenant les champs des en-têtes

body

Un tableau indexé du corps

Un corps est un tableau associatif qui peut contenir les clés suivantes : "type", "encoding", "subtype", "description" et "contents.data"

Valeurs de retour

Retourne le message MIME.

Exemples

Exemple 1. Exemple avec imap_mail_compose()

<?php

$envelope["from"]= "joe@example.com";
$envelope["to"]  = "foo@example.com";
$envelope["cc"]  = "bar@example.com";

$part1["type"] = TYPEMULTIPART;
$part1["subtype"] = "mixed";

$filename = "/tmp/imap.c.gz";
$fp = fopen($filename, "r");
$contents = fread($fp, filesize($filename));
fclose($fp);

$part2["type"] = TYPEAPPLICATION;
$part2["encoding"] = ENCBINARY;
$part2["subtype"] = "octet-stream";
$part2["description"] = basename($filename);
$part2["contents.data"] = $contents;

$part3["type"] = TYPETEXT;
$part3["subtype"] = "plain";
$part3["description"] = "description3";
$part3["contents.data"] = "contents.data3\n\n\n\t";

$body[1] = $part1;
$body[2] = $part2;
$body[3] = $part3;

echo nl2br(imap_mail_compose($envelope, $body));

?>

Précédent | Sommaire | Suivant
imap_lsub | Niveau supérieur | imap_mail_copy


imap_mail_copy

(PHP 3, PHP 4, PHP 5)

imap_mail_copy -- Copie les messages spécifiés dans une boîte aux lettres

Description

bool imap_mail_copy ( resource imap_stream, string msglist, string mailbox [, int options] )

Copie les messages email spécifiés par msglist dans la boîte aux lettres nommée mbox.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msglist

msglist est un intervalle, et pas seulement une liste de numéros de message (comme décrit dans la RFC2060).

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

options

options est un masque, qui peut contenir une ou plusieurs des valeurs suivantes :

  • CP_UID - la séquence de nombre contient des UIDS

  • CP_MOVE - Efface les messages après copie

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

imap_mail_move()

Précédent | Sommaire | Suivant
imap_mail_compose | Niveau supérieur | imap_mail_move


imap_mail_move

(PHP 3, PHP 4, PHP 5)

imap_mail_move -- Déplace des messages dans une boîte aux lettres

Description

bool imap_mail_move ( resource imap_stream, string msglist, string mailbox [, int options] )

imap_mail_move() déplace les messages spécifiés par msglist dans la boîte aux lettres mbox.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msglist

msglist est un intervalle, et pas seulement une liste de messages (comme décrit dans la RFC2060).

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

options

options est un champ de bit 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, FALSE en cas d'échec.

Voir aussi

imap_mail_copy()

Précédent | Sommaire | Suivant
imap_mail_copy | Niveau supérieur | imap_mail


imap_mail

(PHP 3 >= 3.0.14, PHP 4, PHP 5)

imap_mail -- Envoie un message mail

Description

bool imap_mail ( string to, string subject, string message [, string additional_headers [, string cc [, string bcc [, string rpath]]]] )

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

additional_headers

Une chaîne de caractères contenant les en-têtes additionnels à envoyer avec le mail

cc

bcc

Les destinataires spécifiés dans le bcc recevront le mail mais sont exclus des en-têtes.

rpath

Utiliser ce paramètre pour spécifier le chemin de retour en cas d'échec de délivrance du mail. C'est utile lorsque vous utilisez PHP comme client mail pour plusieurs utilisateurs.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

mail()

Précédent | Sommaire | Suivant
imap_mail_move | Niveau supérieur | imap_mailboxmsginfo


imap_mailboxmsginfo

(PHP 3 >= 3.0.2, PHP 4, PHP 5)

imap_mailboxmsginfo -- Lit les informations à propos de la boîte aux lettres courante

Description

object imap_mailboxmsginfo ( resource imap_stream )

imap_mailboxmsginfo() vérifie le statut courant de la boîte aux lettres sur le serveur. C'est similaire à l'utilisation de la fonction imap_status(), mais fournie également la taille totale des messages de la boîte aux lettres, ce qui demande un peu plus de temps à l'exécution.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

Valeurs de retour

Retourne un objet avec les propriétés suivantes :

Tableau 1. Propriétés de boîte aux lettres

Date | Date de dernière modification du contenu de la boîte aux lettres
Driver | Pilote
Mailbox | Nom de la boîte aux lettres
Nmsgs | Nombre de messages
Recent | Nombre de messages récents
Unread | Nombre de messages non lus
Deleted | Nombre de messages effacés
Size | Taille de la boîte aux lettres

Retourne FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec imap_mailboxmsginfo()

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
      or die("Connexion impossible : " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);

if ($check) {
    echo "Date : "     . $check->Date    . "<br />\n" ;
    echo "Pilote : "   . $check->Driver  . "<br />\n" ;
    echo "Boîte aux lettres : "  . $check->Mailbox . "<br />\n" ;
    echo "Messages : " . $check->Nmsgs   . "<br />\n" ;
    echo "Récent : "   . $check->Recent  . "<br />\n" ;
    echo "Non lu : "   . $check->Unread  . "<br />\n" ;
    echo "Effacé : "  . $check->Deleted . "<br />\n" ;
    echo "Taille : "     . $check->Size    . "<br />\n" ;
} else {
    echo "imap_check() a échoué : " . imap_last_error() . "<br />\n";
}

imap_close($mbox);

?>

Précédent | Sommaire | Suivant
imap_mail | Niveau supérieur | imap_mime_header_decode


imap_mime_header_decode

(PHP 3 >= 3.0.17, PHP 4, PHP 5)

imap_mime_header_decode -- Décode les éléments MIME d'un en-tête

Description

array imap_mime_header_decode ( string text )

Décode un message MIME qui contient des données non ASCII (voir RFC2047).

Liste de paramètres

text

Le texte MIME

Valeurs de retour

Les éléments décodés sont retournés dans un tableau d'objets. Chacun de ces objets a deux propriétés : charset et text.

Si l'élément n'a pas été encodé, ou, en d'autres termes, s'il est en clair (plain US_ASCII), la propriété charset est mise à default.

Exemples

Exemple 1. Exemple avec imap_mime_header_decode()

<?php
$text = "=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@example.com>";

$elements = imap_mime_header_decode($text);
for ($i=0; $i<count($elements); $i++) {
    echo "Charset : {$elements[$i]->charset}\n";
    echo "Texte : {$elements[$i]->text}\n\n";
}
?>

L'exemple ci-dessus va afficher :

Charset: ISO-8859-1
Text: Keld Jørn Simonsen

Charset: default
Text:  <keld@example.com>

Dans l'exemple ci-dessus, on trouve deux éléments : le premier a été encodé en ISO-8859-1, et le second est en clair.

Voir aussi

imap_utf8()

Précédent | Sommaire | Suivant
imap_mailboxmsginfo | Niveau supérieur | imap_msgno


imap_msgno

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

imap_msgno -- Retourne le numéro de séquence du message pour un UID donné

Description

int imap_msgno ( resource imap_stream, int uid )

Retourne le numéro de séquence du message pour l'UID uid.

Cette fonction est l'inverse de la fonction imap_uid().

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

uid

L'UID du message

Valeurs de retour

Retourne le numéro de séquence du message pour l'UID uid.

Voir aussi

imap_uid()

Précédent | Sommaire | Suivant
imap_mime_header_decode | Niveau supérieur | imap_num_msg


imap_num_msg

(PHP 3, PHP 4, PHP 5)

imap_num_msg -- Retourne le nombre de messages dans la boîte aux lettres courante

Description

int imap_num_msg ( resource imap_stream )

Retourne le nombre de messages dans la boîte aux lettres courante.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

Valeurs de retour

Retourne le nombre de messages dans la boîte aux lettres courante, sous la forme d'un entier.

Voir aussi

imap_num_recent()
imap_status()

Précédent | Sommaire | Suivant
imap_msgno | Niveau supérieur | imap_num_recent


imap_num_recent

(PHP 3, PHP 4, PHP 5)

imap_num_recent -- Retourne le nombre de messages récents dans la boîte aux lettres courante

Description

int imap_num_recent ( resource imap_stream )

Retourne le nombre de messages récents dans la boîte aux lettres courante.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

Valeurs de retour

Retourne le nombre de messages récents dans la boîte aux lettres courante, sous la forme d'un entier.

Voir aussi

imap_num_msg()
imap_status()

Précédent | Sommaire | Suivant
imap_num_msg | Niveau supérieur | imap_open


imap_open

(PHP 3, PHP 4, PHP 5)

imap_open -- Ouvre un flux IMAP vers une boîte aux lettres

Description

resource imap_open ( string mailbox, string username, string password [, int options [, int n_retries]] )

Ouvre un flux IMAP vers la boîte aux lettres mailbox.

Cette fonction peut aussi être utilisée pour ouvrir des flots sur des serveurs POP3 et NNTP mais quelques fonctions et fonctionnalités ne sont disponibles qu'avec les serveurs IMAP.

Liste de paramètres

mailbox

Un nom de boîte aux lettres est constitué d'une adresse de serveur, et d'une adresse de boîte sur ce serveur. Le mot réservé INBOX représente la boîte aux lettres de l'utilisateur courant. Les noms de boîtes aux lettres qui contiennent des caractères spéciaux (en dehors de l'espace ASCII) doivent être encodés avec imap_utf7_encode().

L'adresse du serveur, mise entre accolades '{' et '}', est constituée du nom du serveur ou de son adresse IP, d'une spécification de protocole (commençant par '/') et d'un port optionnel (spécifié avec ':').

Cette partie est obligatoire dans les paramètres de la boîte aux lettres.

Tous les noms commençant par { sont des noms distants et sont sous la forme "{" nom_systeme_distant [":" port] [flags] "}" [nom_mailbox] où :

  • remote_system_name - Nom de domaine Internet ou une adresse IP de serveur entouré de guillemets.

  • port - numéro de port TCP (optionnel), la valeur par défaut est la valeur du port pour ce service.

  • flags - flags optionnels, voir la table suivante.

  • mailbox_name - nom de la mailbox distante, par défaut : INBOX

Tableau 1. Flags optionnels pour les noms

Flag | Description
/service=service | service pourl'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. administratur)
/anonymous | accès distant en anonyme
/debug | la télémétrie d'enregistrement du protocole dans les logs de débogage de l'application
/secure | ne transmet pas un mot de passe en clair à travers le réseau
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 | équivalent de /service=imap
/pop3 | équivalent de /service=pop3
/nntp | équivalent de /service=nntp
/norsh | ne pas utiliser rsh ou ssh pour établir une session de pré identification IMAP
/ssl | utilise Secure Socket Layer pour crypter la session
/validate-cert | valide les certificats depuis le serveur TLS/SSL (c'est le comportement par défaut)
/novalidate-cert | ne pas valider les certificats depuis le serveur TLS/SSL, nécessaire si le serveur utilise des certificats auto-signés
/tls | force l'utilisation de start-TLS pour crypter la session et rejète les connexions aux serveurs qui ne le supporte pas
/notls | n'utilise pas start-TLS pour crypter la session, y compris avec les serveurs qui le supporte
/readonly | demande un accès en lecture seule sur mailbox (IMAP uniquement ; ignoré sous NNTP, et une erreur avec SMTP et POP3)

username

Le nom d'utilisateur

password

Le mot de passe associé avec l'utilisateur username

options

options est un masque de bit, qui peut prendre une ou plusieurs des valeurs suivantes :

  • OP_READONLY - Ouvre une boîte aux lettres en lecture seule

  • OP_ANONYMOUS - Ne pas utiliser, ou modifier le fichier .newsrc pour les news (NNTP uniquement)

  • OP_HALFOPEN - Pour les noms IMAP et NNTP, ouvre une connexion mais n'ouvre pas une boîte aux lettres.

  • CL_EXPUNGE - Supprime automatiquement la boîte aux lettres de la liste, lors de la terminaison du flux (voir aussi imap_delete() and imap_expunge())

  • OP_DEBUG - négociations de dé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_EXPUNGE - Nettoye silencieusement le flux recyclé

  • OP_SECURE - Ne pas effectuer des identifications non sécuritées

n_retries

Le nombre maximal de tentatives de connexion

Valeurs de retour

Retourne un flux IMAP en cas de succès, ou FALSE si une erreur survient.

Historique

Version | Description
5.2.0 | Le paramètre n_retries a été ajouté.

Exemples

Exemple 1. Différentes utilisations de imap_open()

<?php
// Pour se connecter à un serveur IMAP fonctionnant sur le port 143 de la
// machine locale, faites ceci :
$mbox = imap_open("{localhost:143}INBOX", "user_id", "password");

// Pour se connecter à un serveur POP3 fonctionnant sur le port 110 du
// serveur local, faites ceci :
$mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password");

// Pour se connecter à un serveur SSL IMAP ou POP3, ajoutez /ssl
// après la spécification du protocole :
$mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");

// Pour se connecter à un serveur SSL IMAP ou POP3 avec un certificat auto-signé
// ajoutez /ssl/novalidate-cert après le protocole :
$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");

// Pour se connecter à un serveur NNTP qui fonctionne sur
// le port 119 de la machine locale on peut utiliser la commande:
$nntp = imap_open ("{localhost:119/nntp}comp.test", "", "");

// Pour se connecter à un serveur distant, remplacez "localhost" par
// le nom ou l'adresse IP de la machine.
?>

Exemple 2. Exemple avec imap_open()

<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password");

echo "<h1>Mailboxes</h1>\n";
$folders = imap_listmailbox($mbox, "{imap.example.org:143}", "*");

if ($folders == false) {
    echo "Appel échoué<br />\n";
} else {
    foreach ($folders as $val) {
        echo $val . "<br />\n";
    }
}

echo "<h1>en-têtes dans INBOX</h1>\n";
$headers = imap_headers($mbox);

if ($headers == false) {
    echo "Appel échoué<br />\n";
} else {
    foreach ($headers as $val) {
        echo $val . "<br />\n";
    }
}

imap_close($mbox);
?>

Voir aussi

imap_close()

Précédent | Sommaire | Suivant
imap_num_recent | Niveau supérieur | imap_ping


imap_ping

(PHP 3, PHP 4, PHP 5)

imap_ping -- Vérifie que le flux IMAP est toujours actif

Description

bool imap_ping ( resource imap_stream )

Vérifie que le flux IMAP est toujours actif, en lui envoyant un ping. Cette fonction permet de se rendre compte qu'un mail est arrivé : c'est même la méthode préconisée pour des tests périodiques de vérification du courrier. Cette fonction peut aussi servir à garder une connexion ouverte, avec les serveurs dotés d'un délai d'expiration.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

Valeurs de retour

Retourne TRUE si le flux est toujours actif, FALSE sinon.

Exemples

Exemple 1. Exemple avec imap_ping()

<?php

$imap = imap_open("{imap.example.org}", "mailadmin", "password");

// après une pause
if (!imap_ping($imap)) {
    // effectuez un traitement pour se reconnecter
}

?>

Précédent | Sommaire | Suivant
imap_open | Niveau supérieur | imap_qprint


imap_qprint

(PHP 3, PHP 4, PHP 5)

imap_qprint -- Convertit une chaîne à guillemets en une chaîne à 8 bits

Description

string imap_qprint ( string string )

Convertit la chaîne à guillemets string en une chaîne à 8 bits (selon la RFC2045, section 6.7).

Liste de paramètres

string

Une chaîne à guillemets

Valeurs de retour

Retourne une chaîne de caractères à 8 bits.

Voir aussi

imap_8bit()

Précédent | Sommaire | Suivant
imap_ping | Niveau supérieur | imap_renamemailbox


imap_renamemailbox

(PHP 3, PHP 4, PHP 5)

imap_renamemailbox -- Renomme une boîte aux lettres

Description

bool imap_renamemailbox ( resource imap_stream, string old_mbox, string new_mbox )

imap_renamemailbox() renomme la boîte aux lettres old_mbox en new_mbox (voir la fonction imap_open() our le format des noms mbox).

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

old_mbox

L'ancien nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

new_mbox

Le nouveau nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

imap_createmailbox()
imap_deletemailbox()

Précédent | Sommaire | Suivant
imap_qprint | Niveau supérieur | imap_reopen


imap_reopen

(PHP 3, PHP 4, PHP 5)

imap_reopen -- Réouvre un flux IMAP vers une nouvelle boîte aux lettres

Description

bool imap_reopen ( resource imap_stream, string mailbox [, int options [, int n_retries]] )

Réouvre la connexion spécifiée au serveur IMAP ou NNTP, avec une nouvelle boîtes aux lettres.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

options

options est un masque de bit, 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.

  • CL_EXPUNGE - Supprime automatiquement la boîte aux lettres de la liste, lors de la terminaison du flux. (voir imap_delete() et imap_expunge()).

n_retries

Le nombre maximal de tentatives de connexion

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Historique

Version | Description
5.2.0 | Le paramètre n_retries a été ajouté

Exemples

Exemple 1. Exemple avec imap_reopen()

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password") or die(implode(", ", imap_errors()));
// ...
imap_reopen($mbox, "{imap.example.org:143}INBOX.Sent") or die(implode(", ", imap_errors()));
// ..
?>

Précédent | Sommaire | Suivant
imap_renamemailbox | Niveau supérieur | imap_rfc822_parse_adrlist


imap_rfc822_parse_adrlist

(PHP 3 >= 3.0.2, PHP 4, PHP 5)

imap_rfc822_parse_adrlist -- Analyse une adresse email

Description

array imap_rfc822_parse_adrlist ( string address, string default_host )

Analyse la chaîne address, tel que définie dans la RFC2822.

Liste de paramètres

address

Une chaîne de caractères contenant les adresses

default_host

Le nom de l'hôte par défaut

Valeurs de retour

Retourne un tableau d'objets. Les propriétés des objets sont :

  • mailbox - Le nom de la boîte aux lettres (nom d'utilisateur)

  • host - Le nom de l'hôte

  • personal - Le nom personnel

  • adl - at domain source route (NDT : ???)

Exemples

Exemple 1. Exemple avec imap_rfc822_parse_adrlist()

<?php

$address_string = "Joe Doe <doe@example.com>, postmaster@example.com, root";
$address_array  = imap_rfc822_parse_adrlist($address_string, "example.com");
if (!is_array($address_array) || count($address_array) < 1) {
    die("Erreur !\n");
}

foreach ($address_array as $id => $val) {
    echo "# $id\n";
    echo "  Boîte   : " . $val->mailbox . "\n";
    echo "  Hôte    : " . $val->host . "\n";
    echo "  Nom    : " . $val->personal . "\n";
    echo "  adl      : " . $val->adl . "\n";
}
?>

L'exemple ci-dessus va afficher :

# 0
  Boîte   : doe
  Hôte    : example.com
  Nom    : Joe Doe
  adl      :
# 1
  Boîte   : postmaster
  hôte    : example.com
  Nom    :
  adl      :
# 2
  Boîte   : root
  Hôte    : example.com
  Nom    :
  adl      :

Voir aussi

imap_rfc822_parse_headers()

Précédent | Sommaire | Suivant
imap_reopen | Niveau supérieur | imap_rfc822_parse_headers


imap_rfc822_parse_headers

(PHP 4, PHP 5)

imap_rfc822_parse_headers -- Analyse un en-tête mail

Description

object imap_rfc822_parse_headers ( string headers [, string defaulthost] )

Analyse la chaîne headers et retourne un objet contenant différents éléments, similaires à la fonction imap_header().

Liste de paramètres

headers

Les données à analyser

defaulthost

Le nom de l'hôte par défaut

Valeurs de retour

Retourne un objet similaire à celui retourné par la fonction imap_header(), excepté pour les drapeaux et les autres propriétés qui proviennent du serveur IMAP.

Voir aussi

imap_rfc822_parse_adrlist()

Précédent | Sommaire | Suivant
imap_rfc822_parse_adrlist | Niveau supérieur | imap_rfc822_write_address


imap_rfc822_write_address

(PHP 3 >= 3.0.2, PHP 4, PHP 5)

imap_rfc822_write_address -- Retourne une adresse email formatée correctement

Description

string imap_rfc822_write_address ( string mailbox, string host, string personal )

Retourne une adresse email formatée correctement selon la RFC2822.

Liste de paramètres

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

host

La partie hôte de l'email

personal

Le nom du propriétaire du compte

Valeurs de retour

Retourne une adresse email, sous la forme d'une chaîne de caractères, formatée correctement selon la RFC2822.

Exemples

Exemple 1. Exemple avec imap_rfc822_write_address()

<?php
echo imap_rfc822_write_address("hartmut", "example.com", "Hartmut Holzgraefe");
?>

L'exemple ci-dessus va afficher :

Hartmut Holzgraefe <hartmut@example.com>

Précédent | Sommaire | Suivant
imap_rfc822_parse_headers | Niveau supérieur | imap_savebody


imap_scanmailbox

(PHP 3, PHP 4, PHP 5)

imap_scanmailbox -- Alias de imap_listscan()

Description

Cette fonction est un alias de : imap_listscan().

Précédent | Sommaire | Suivant
imap_savebody | Niveau supérieur | imap_search


imap_search

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

imap_search -- Retourne un tableau de messages après recherche

Description

array imap_search ( resource imap_stream, string criteria [, int options [, string charset]] )

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 inprécise. (voir aussi RFC2060, section 6.4.4).

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

criteria

Une chaîne de caractères, délimitée par des espaces, dans laquelle les mots-clés suivants sont acceptés. Tous les arguments multi-mots (e.g. FROM "joey smith") doivent être entre guillemets :

  • 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 flaggés

  • UNKEYWORD "string" - tous les messages ne contenant pas le mot-clé "string"

  • UNSEEN - tous les messages non lus

options

Les valeurs pour les flags sont SE_UID, qui fait que le tableau réponse contient les UIDs plutôt que les numéros de séquence.

charset

Valeurs de retour

Retourne un tableau de numéro de messages ou d'UIDs.

Retourne FALSE si la recherche n'est pas comprise, ou bien qu'aucun message n'a été trouvé.

Historique

Version | Description
4.3.3 | Le paramètre charset a été ajouté.

Voir aussi

imap_listscan()

Précédent | Sommaire | Suivant
imap_scanmailbox | Niveau supérieur | imap_set_quota


imap_set_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_set_quota -- Modifie le quota d'une boîte aux lettres

Description

bool imap_set_quota ( resource imap_stream, string quota_root, int quota_limit )

Modifie le quota de la boîte aux lettres quota_root.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

quota_root

La boîte aux lettres dont on doit modifier le quota. Elle doit suivre le format standart IMAP pour une boîte aux lettres : user.name.

quota_limit

La taille maximale (en Ko) pour la boîte quota_root

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec imap_set_quota()

<?php
$mbox = imap_open("{imap.example.org:143}", "mailadmin", "password");

if (!imap_set_quota($mbox, "user.kalowsky", 3000)) {
    echo "Échec lors de la définition du quota\n";
    return;
}

imap_close($mbox);
?>

Notes

imap_get_quota() ne fonctionne actuellement qu'avec les bibliothèques c-client2000.

imap_set_quota() requiert que imap_stream ait été ouvert avec un compte d'administrateur, pour avoir les droits nécessaires : elle ne fonctionnera avec aucun autre utilisateur.

Voir aussi

imap_open()
imap_get_quota()

Précédent | Sommaire | Suivant
imap_search | Niveau supérieur | imap_setacl


imap_setacl

(PHP 4 >= 4.1.0, PHP 5)

imap_setacl -- Modifie le ACL de la boîte aux lettres

Description

bool imap_setacl ( resource imap_stream, string mailbox, string id, string rights )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

id

rights

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Cette fonction n'est actuellement disponible que pour les utilisateurs de la bibliothèque c-client2000 ou supérieur.

Voir aussi

imap_getacl()

Précédent | Sommaire | Suivant
imap_set_quota | Niveau supérieur | imap_setflag_full


imap_setflag_full

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

imap_setflag_full -- Positionne un drapeau sur un message

Description

bool imap_setflag_full ( resource imap_stream, string sequence, string flag [, int options] )

imap_setflag_full() affecte le flag spécifié aux messages de la sequence donnée.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

sequence

Une séquence de numéro de messages. Vous pouvez énumérer les messages désirés avec la synthaxe X,Y, ou récupérer tous les messages d'un intervalle avec la synthaxe X:Y

flag

Les flags que vous pouvez modifier sont \\Seen, \\Answered, \\Flagged, \\Deleted, et \\Draft (comme défini dans la RFC2060).

options

options est un masque de bits, qui accepte uniquement la valeur suivante :

  • ST_UID - la séquence contient des UID au lieu de numéros de séquence.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
imap_setacl | Niveau supérieur | imap_sort


imap_sort

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

imap_sort -- Trie des messages

Description

array imap_sort ( resource imap_stream, int criteria, int reverse [, int options [, string search_criteria [, string charset]]] )

Récupère et trie les numéros de messages en fonction des paramètres donnés.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

criteria

Les critères criteria peuvent être un (et un seul) parmi les suivants :

  • SORTDATE - Date du message

  • SORTARRIVAL - Date d'arrivée

  • SORTFROM - Nom de la première boîte aux lettres de l'adresse d'origine (From address)

  • SORTSUBJECT - Sujet du message

  • SORTTO - Nom de la première boîte aux lettres de destination (To address)

  • SORTCC - Nom de la boîte aux lettres de copie cachée (cc address)

  • SORTSIZE - Taille du message en octets

reverse

vaut 1 pour signifier : tri inverse

options

Les flags options dont des masques de bits, d'un ou plusieurs des éléments suivants :

  • SE_UID - Retourne des UID à la place de numéros

  • SE_NOPREFETCH - Ne pas pré-télécharger les messages trouvés

search_criteria

charset

Valeurs de retour

Retourne un tableau de numéros de messages triés en fonction des paramètres fournis.

Historique

Version | Description
4.3.3 | Le paramètre charset a été ajouté.

Précédent | Sommaire | Suivant
imap_setflag_full | Niveau supérieur | imap_status


imap_status

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

imap_status -- Retourne les informations de statut sur une boîte aux lettres

Description

object imap_status ( resource imap_stream, string mailbox, int options )

Retourne les informations de statut sur la boîte aux lettres mailbox.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

options

Les drapeaux valides sont :

  • SA_MESSAGES - met la valeur de status->messages au nombre de messages dans la boîte aux lettres.

  • SA_RECENT - met la valeur de status->recent au nombre de messages récents dans la boîte aux lettres.

  • SA_UNSEEN - met la valeur de status->unseen au nombre de messages non lus dans la boîte aux lettres.

  • SA_UIDNEXT - met la valeur de status->uidnext à la prochaine valeur d'uid qui sera utilisée.

  • SA_UIDVALIDITY - met la valeur de status->uidvalidity à une constante, qui change lorsque l'uid de la boîte aux lettres n'est plus valide.

  • SA_ALL - fixe toutes les valeurs précédentes.

Valeurs de retour

Cette fonction retourne un objet contenant les informations sur le statut. L'objet a les propriétés suivantes : messages, recent, unseen, uidnext, et uidvalidity.

flags est également défini, qui contient un masque contenant une des constantes ci-dessus.

Exemples

Exemple 1. Exemple avec imap_status()

<?php
$mbox = imap_open("{imap.example.com}", "username", "password", OP_HALFOPEN)
      or die("Connexion impossible : " . imap_last_error());

$status = imap_status($mbox, "{imap.example.org}INBOX", SA_ALL);
if ($status) {
  echo "Messages :   " . $status->messages    . "<br />\n";
  echo "Récent :     " . $status->recent      . "<br />\n";
  echo "Non lu :     " . $status->unseen      . "<br />\n";
  echo "Prochain UID:    " . $status->uidnext     . "<br />\n";
  echo "Validité de l'UID:" . $status->uidvalidity . "<br />\n";
} else {
  echo "imap_status a échoué : " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

Précédent | Sommaire | Suivant
imap_sort | Niveau supérieur | imap_subscribe


imap_subscribe

(PHP 3, PHP 4, PHP 5)

imap_subscribe -- Souscrit à une boîte aux lettres

Description

bool imap_subscribe ( resource imap_stream, string mailbox )

Souscrit à une boîte aux lettres.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

imap_unsubscribe()

Précédent | Sommaire | Suivant
imap_status | Niveau supérieur | imap_thread


imap_thread

(PHP 4 >= 4.1.0, PHP 5)

imap_thread -- Retourne l'arbre des messages organisés par thread

Description

array imap_thread ( resource imap_stream [, int options] )

Retourne l'arbre des messages organisés par thread.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

options

Valeurs de retour

imap_thread() retourne un tableau associatif contenant un arbre de messages organisés par thread par REFERENCES ou FALSE en cas d'erreur.

Chaque message dans la boîte aux lettres courante sera représenté par des entrées sous forme d'arbre dans le tableau résultant :

  • $thread["XX.num"] - numéro du message courant

  • $thread["XX.next"]

  • $thread["XX.branch"]

Exemples

Exemple 1. Exemple avec imap_thread()

<?php

// Ici, nous affichons les threads d'un newsgroup, en HTML

$nntp = imap_open('{news.example.com:119/nntp}some.newsgroup', '', '');
$threads = imap_thread($nntp);

foreach ($threads as $key => $val) {
  $tree = explode('.', $key);
  if ($tree[1] == 'num') {
    $header = imap_headerinfo($nntp, $val);
    echo "<ul>\n\t<li>" . $header->fromaddress . "\n";
  } elseif ($tree[1] == 'branch') {
    echo "\t</li>\n</ul>\n";
  }
}

imap_close($nntp);

?>

Précédent | Sommaire | Suivant
imap_subscribe | Niveau supérieur | imap_timeout


imap_timeout

(PHP 4 >= 4.3.3, PHP 5)

imap_timeout -- Configure ou retourne le timeout

Description

mixed imap_timeout ( int timeout_type [, int timeout] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
imap_thread | Niveau supérieur | imap_uid


imap_uid

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

imap_uid -- Retourne l'UID d'un message

Description

int imap_uid ( resource imap_stream, int msg_number )

imap_uid() retourne l'UID pour le message msgno. Un UID est un identifant unique que ne change jamais, alors que le numéro du message dans la liste des messages peut changer à toute modification de la boîte aux lettres.

C'est la fonction inverse de imap_msgno().

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message.

Valeurs de retour

L'UID d'un message donné.

Notes

Note : Cette fonctionnalité n'est pas supportée par les boîtes aux lettres POP3.

Voir aussi

imap_msgno()

Précédent | Sommaire | Suivant
imap_timeout | Niveau supérieur | imap_undelete


imap_undelete

(PHP 3, PHP 4, PHP 5)

imap_undelete -- Enlève la marque d'effacement d'un message

Description

bool imap_undelete ( resource imap_stream, int msg_number [, int flags] )

Enlève la marque d'effacement du message msg_number, placée avec imap_delete() ou imap_mail_move().

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

msg_number

Le numéro du message

flags

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

imap_delete()
imap_mail_move()

Précédent | Sommaire | Suivant
imap_uid | Niveau supérieur | imap_unsubscribe


imap_unsubscribe

(PHP 3, PHP 4, PHP 5)

imap_unsubscribe -- Termine la souscription à une boîte aux lettres

Description

bool imap_unsubscribe ( string imap_stream, string mailbox )

Termine la souscription à la boîte aux lettres mailbox.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

mailbox

Le nom de la boîte aux lettres, voir la documentation de la fonction imap_open() pour plus de détails.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

imap_subscribe()

Précédent | Sommaire | Suivant
imap_undelete | Niveau supérieur | imap_utf7_decode


imap_utf7_decode

(PHP 3 >= 3.0.15, PHP 4, PHP 5)

imap_utf7_decode -- Décode une chaîne encodée en UTF-7 modifié

Description

string imap_utf7_decode ( string text )

imap_utf7_decode() décode la chaîne UTF-7 text en ISO-8859-1.

Cette fonction sert à encoder les noms de boîtes aux lettres qui contiennent des caractères internationaux hors de l'espace ASCII.

Liste de paramètres

text

L'encodage UTF-7 modifié est défini dans la RFC 2060, section 5.1.3 (l'encodage UTF-7 original est lui défini dans RFC1642).

Valeurs de retour

Retourne une chaîne de caractères encodée ISO-8859-1 et contenant la même séquence de caractères que dans le paramètre text, ou FALSE si text contient une séquence UTF-7 modifiée invalide ou si text contient un caractère qui ne fait pas partie du jeu de caractères ISO-8859-1.

Voir aussi

imap_utf7_encode()

Précédent | Sommaire | Suivant
imap_unsubscribe | Niveau supérieur | imap_utf7_encode


imap_utf7_encode

(PHP 3 >= 3.0.15, PHP 4, PHP 5)

imap_utf7_encode -- Convertit une chaîne ISO-8859-1 en texte UTF-7 modifié

Description

string imap_utf7_encode ( string data )

Convertit une chaîne data ISO-8859-1 en texte UTF-7 modifié.

Cette fonction sert à encoder les noms de boîtes aux lettres qui contiennent des caractères internationaux hors de l'espace ASCII.

Liste de paramètres

data

Une chaîne de caractères ISO-8859-1.

Valeurs de retour

Retourne les données data encodées avec l'encodage UTF-7 modifié tel que défini dans la RFC 2060, section 5.1.3 (l'encodage UTF-7 original est lui défini dans RFC1642).

Voir aussi

imap_utf7_decode()

Précédent | Sommaire | Suivant
imap_utf7_decode | Niveau supérieur | imap_utf8


imap_utf8

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

imap_utf8 -- Convertit du texte au format MIME en UTF-8

Description

string imap_utf8 ( string mime_encoded_text )

Convertit le texte mime_encoded_text en UTF-8.

Liste de paramètres

mime_encoded_text

Une chaîne de caractères encodé MIME. Les spécifications de MIME et UTF8 sont décrites dans les RFC2047 et RFC2044.

Valeurs de retour

Retourne une chaîne de caractères encodée UTF-8.

Voir aussi

imap_mime_header_decode()

Précédent | Sommaire | Suivant
imap_utf7_encode | Niveau supérieur | Informix


Options PHP et informations

Manuel PHP
Précédent Suivant

CXXIV. Options PHP et informations

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

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
assert.active | "1" | PHP_INI_ALL |
assert.bail | "0" | PHP_INI_ALL |
assert.warning | "1" | PHP_INI_ALL |
assert.callback | NULL | PHP_INI_ALL |
assert.quiet_eval | "0" | PHP_INI_ALL |
enable_dl | "1" | PHP_INI_SYSTEM |
max_execution_time | "30" | PHP_INI_ALL |
max_input_time | "-1" | PHP_INI_PERDIR | Disponible depuis PHP 4.3.0.
magic_quotes_gpc | "1" | PHP_INI_PERDIR | Disponible depuis PHP <= 4.2.3.
magic_quotes_runtime | "0" | PHP_INI_ALL |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

assert.active boolean

Active les évaluations de type assert().

assert.bail boolean

Termine le script si une assertion échoue.

assert.warning boolean

Emet une alerte PHP pour chaque assertion échouée.

assert.callback string

Fonction définie par le programmeur, à appeler pour chaque assertion échouée.

assert.quiet_eval boolean

Utilise la configuration courante de error_reporting() durant les évaluations d'assertions. Si activée, aucune erreur n'est affichée (error_reporting(0) implicite) durant l'évaluation. Si désactivée, les erreurs sont affichées en fonction de la configuration de error_reporting()

enable_dl boolean

Cette directive est réellement utile lorsque PHP est compilé comme module Apache. Vous pouvez activer le chargement dynamique d'extension avec la fonction PHP dl() au cas par cas, pour chaque serveur virtuel.

La raison principale pour désactiver ce système est la sécurité. Avec le chargement dynamique, il est possible de passer outre les configurations de safe mode et open_basedir.

Par défaut, le chargement dynamique est autorisé, sauf avec le safe mode. En safe mode, il est toujours impossible d'utiliser la fonction dl().

max_execution_time entier

Fixe le temps maximal d'exécution d'un script, en secondes. Cela permet d'éviter que des scripts en boucles infinies saturent le serveur. La configuration par défaut est de 30 secondes.

Le temps d'exécution maximum n'est pas affecté par des appels systèmes tels que sleep(). Reportez-vous à la fonction set_time_limit() pour plus de détails.

Vous ne pouvez pas modifier la valeur de cette directive avec ini_set() lorsque PHP est configuré en safe mode. Le seul moyen de le faire est de désactiver le safe mode ou de changer la valeur dans php.ini.

Votre serveur web peut avoir d'autres temps d'exécution maximum. E.g. Apache a une directive Timeout, IIS a une fonction de temps d'exécution maximum pour les CGI, les deux de 300 secondes par défaut. Lisez la documentation de votre serveur web la signification de cela.

max_input_time entier

Cette option spécifie la durée maximale pour analyser les données d'entrée, via POST, GET et téléchargement de fichier.

magic_quotes_gpc boolean

Fixe le mode magic_quotes pour les opérations GPC (Get/Post/Cookie). Lorsque magic_quotes est activé, tous les caractères ' (guillemets simples), " (guillemets doubles), \ (antislash) et NUL sont échappés avec un antislash.

Note : Si la directive magic_quotes_sybase est aussi activée, elle écrasera magic_quotes_gpc. Avec les deux directives activées, seuls les guillemets simples seront protégés avec un autre guillemet simple. Les guillemets doubles, les antislashs et les NUL ne seront pas protégés.

Voir aussi get_magic_quotes_gpc().

magic_quotes_runtime boolean

Si magic_quotes_runtime est activé, toutes les fonctions qui obtiennent des données auprès d'une source externe, y compris les bases de données et les fichiers texte, verront leur guillemets échappés avec un antislash. Si magic_quotes_sybase est aussi activé, les guillemets simples seront échappés avec un autre guillemet simple, plutôt qu'un antislash.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

Tableau 2. Constantes pré-définies de phpcredits()

Constante | Valeur | Description
CREDITS_GROUP | 1 | Une liste des développeurs principaux
CREDITS_GENERAL | 2 | Crédits généraux. Design du langage, concepts, auteurs de PHP et module SAPI.
CREDITS_SAPI | 4 | Une liste des API de serveurs, et leurs auteurs.
CREDITS_MODULES | 8 | Une liste des extensions de PHP, et leurs auteurs
CREDITS_DOCS | 16 | Les crédits de l'équipe de documentation
CREDITS_FULLPAGE | 32 | Généralement utilisé combiné avec d'autres options. Cette option indique qu'une page HTML complète doit être générée.
CREDITS_QA | 64 | Les crédits pour le groupe d'assurance qualité.
CREDITS_ALL | -1 | Tous les crédits. C'est l'équivalent de :CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_QA CREDITS_FULLPAGE. Elle génère une page HTML complète et autonome. C'est la valeur par défaut.

Tableau 3. Constantes de phpinfo()

Constante | Valeur | Description
INFO_GENERAL | 1 | La ligne de configuration, le chemin du php.ini, la date de compilation, le système et plus encore.
INFO_CREDITS | 2 | Crédits de PHP. Voir aussi phpcredits().
INFO_CONFIGURATION | 4 | Valeurs locales et serveurs des directives PHP. Voir aussi ini_get().
INFO_MODULES | 8 | Les modules chargés et leurs configurations respectives.
INFO_ENVIRONMENT | 16 | Les variables d'environnement, qui sont aussi disponibles dans $_ENV.
INFO_VARIABLES | 32 | Toutes les variables pré-définies : EGPCS (Environnement, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | La licence PHP. Voir aussi la FAQ de la licence.
INFO_ALL | -1 | Affiche toutes les valeurs citées ci-dessus. C'est la valeur par défaut.

ASSERT_ACTIVE (entier)

ASSERT_CALLBACK (entier)

ASSERT_BAIL (entier)

ASSERT_WARNING (entier)

ASSERT_QUIET_EVAL (entier)

Table des matières
assert_options -- Fixe et lit différentes options d'assertions
assert -- Vérifie si une assertion est fausse
dl -- Charge une extension PHP à la volée
extension_loaded -- Détermine si une extension est chargée ou non
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()
getenv -- Retourne la valeur d'une variable d'environnement
getlastmod -- Retourne la date de dernière modification de la page
getmygid -- Retourne le GID du propriétaire du script
getmyinode -- Retourne l'inode du script
getmypid -- Retourne le numéro de processus courant de PHP
getmyuid -- Retourne l'UID du propriétaire du script actuel
getopt -- Lit des options passées dans la ligne de commande
getrusage -- Retourne le niveau d'utilisation des ressources
ini_alter -- Alias de ini_set()
ini_get_all -- Lit toutes les valeurs de configuration
ini_get -- Lit la valeur d'une option de configuration
ini_restore -- Restaure la valeur de l'option de configuration
ini_set -- Modifie la valeur d'une option de configuration
main -- Fausse documentation pour main()
memory_get_peak_usage -- Retourne la quantité de mémoire allouée par PHP
memory_get_usage -- Indique la quantité de mémoire utilisée par PHP
php_ini_scanned_files -- Retourne la liste des fichiers .ini analysés dans les dossiers de configuration supplémentaires
php_logo_guid -- Retourne l'identifiant du logo PHP
php_sapi_name -- Retourne le type d'interface utilisée entre le serveur web et PHP
php_uname -- Retourne les informations sur le système d'exploitation
phpcredits -- Affiche les crédits de PHP
phpinfo -- Affiche de nombreuses informations sur PHP
phpversion -- Retourne le numéro de la version courante de PHP
putenv -- Fixe la valeur d'une variable d'environnement
restore_include_path -- Restaure la valeur de la directive de configuration include_path
set_include_path -- Modifie la valeur de la directive de configuration include_path
set_magic_quotes_runtime -- Active/désactive l'option magic_quotes_runtime
set_time_limit -- Fixe le temps maximum d'exécution d'un script
sys_get_temp_dir -- Retourne le chemin du répertoire utilisé pour les fichiers temporaires
version_compare -- Compare deux chaînes de versions au format des versions PHP
zend_logo_guid -- Retourne le logo de Zend
zend_version -- Lit la version courante du moteur Zend

Précédent | Sommaire | Suivant
PharFileInfo->setUncompressed | Niveau supérieur | assert_options


assert_options

(PHP 4, PHP 5)

assert_options -- Fixe et lit différentes options d'assertions

Description

mixed assert_options ( int what [, mixed value] )

Avec assert_options() vous pouvez modifier les diverses options de la fonction assert(), ou simplement connaître la configuration actuelle.

Liste de paramètres

what

Tableau 1. Options d'assert

Option | Paramètre d'ini | Valeur par défaut | Description
ASSERT_ACTIVE | assert.active | 1 | active l'évaluation de la fonction assert()
ASSERT_WARNING | assert.warning | 1 | génère une alerte PHP pour chaque assertion fausse
ASSERT_BAIL | assert.bail | 0 | termine l'exécution en cas d'assertion fausse
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | désactive le rapport d'erreur durant l'évaluation d'une assertion
ASSERT_CALLBACK | assert.callback | (NULL) | fonction utilisateur de traitement des assertions fausses

value

Une nouvelle valeur, optionnelle, pour l'option.

Valeurs de retour

Retourne la valeur originale de l'option, ou bien FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
Options PHP et informations | Niveau supérieur | assert


assert

(PHP 4, PHP 5)

assert -- Vérifie si une assertion est fausse

Description

bool assert ( mixed assertion )

assert() va vérifier l'assertion assertion et prendre la mesure appropriée si le résultat est FALSE.

Si assertion est donnée sous la forme d'une chaîne, elle sera évaluée comme un code PHP par la fonction assert(). Les avantages de ce type d'assertion sont d'être moins lourd si la vérification d'assertion est désactivée, et les messages contenant l'assertion lorsque l'assertion échoue. Cela signifie que si vous passez une condition booléenne en tant qu'assertion, cette condition ne sera pas considérée comme un paramètre par la fonction d'assertion que vous avez définie avec la fonction assert_options(), la condition est convertie en chaîne de caractères avant l'appel à ce gestionnaire de fonction, et le booléen FALSE sera converti en chaîne de caractères vide.

Il est recommandé de n'utiliser les assertions que comme outil de débogage. Vous pouvez les utiliser pour les vérifications d'usage : ces conditions doivent normalement être vraies, et indiquer une erreur de programmation si ce n'est pas le cas. Vous pouvez aussi vérifier la présence de certaines extensions ou limitations du système.

Les assertions ne doivent pas être utilisées pour faire des opérations de vérifications en production, comme des vérifications de valeur d'argument. En conditions normales, votre code doit être en état de fonctionner si la vérification d'assertion est désactivée.

Le comportement de assert() peut être configuré par assert_options() ou par les configurations .ini décrites dans la page de manuel de cette fonction.

La fonction assert_options() et la directive ASSERT_CALLBACK permettent de configurer une fonction qui sera appelée lorsque l'assertion échoue.

Les fonctions de callback pour assert() sont particuliérement utiles pour bâtir des suites de tests automatiques, car elles vous permettent de capturer facilement le code passé à l'assertion, ainsi que des informations sur le lieu et le moment de l'assertion. Même si ces informations peuvent être appelées par d'autres méthodes, les assertions sont plus rapides et plus faciles.

La fonction de callback doit accepter trois arguments. Le premier contient le nom du fichier qui a vu l'assertion échouer. Le second contient le numéro de ligne dans le fichier précédent. Le troisième argument contient l'expression qui a échoué (s'il y en a : les valeurs litérales comme 1 ou "deux" ne seront pas passées par cet argument).

Liste de paramètres

assertion

L'assertion.

Valeurs de retour

FALSE si l'assertion est fausse, TRUE sinon.

Exemples

Exemple 1. Gestion des assertions avec un gestionnaire personnalisé

<?php
// Activation des assertions et mise en mode discret
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);

// Création d'un gestionnaire d'assertions
function my_assert_handler($file, $line, $code)
{
    echo "<hr>Échec de l'assertion :
        File '$file'<br />
        Line '$line'<br />
        Code '$code'<br /><hr />";
}

// Configuration de la méthode de callback
assert_options(ASSERT_CALLBACK, 'my_assert_handler');

// Utilisation d'une assertion qui va échouer
assert('mysql_query("")');
?>

Précédent | Sommaire | Suivant
assert_options | Niveau supérieur | dl


dl

(PHP 3, PHP 4, PHP 5)

dl -- Charge une extension PHP à la volée

Description

int dl ( string library )

Charge l'extension PHP library à la volée.

Utilisez la fonction extension_loaded() pour vérifier qu'une extension est chargée ou non. Cette fonction travaille aussi bien avec les extensions natives qu'avec les extensions dynamiquement chargées (via le php.ini ou dl()).

Liste de paramètres

library

Ce paramètre est seulement le nom de fichier de l'extension, qui dépend de votre plate-forme. Par exemple l'extension sockets (si compilée comme module partagé, et non par défaut), sera appelée sockets.so sous Unix, et php_sockets.dll sous Windows.

Le dossier à partir duquel sont chargées vos extensions dépend de votre plate-forme :

Windows - S'il n'est pas explicitement indiqué dans le fichier php.ini, le dossier des extensions est c:\php4\extensions\.

Unix - S'il n'est pas explicitement indiqué dans le fichier php.ini, le dossier des extensions dépend de

  • Si PHP a été compilé avec l'option --enable-debug ou non

  • Si PHP a été compilé avec le support (expérimental) de ZTS (Zend Thread Safety) ou non

  • de la constante interne ZEND_MODULE_API_NO (version interne de module d'API Zend, qui est en réalité la date à laquelle une modification importante de l'API a été faite, par exemple 20010901)

En prenant ces paramètres en considération, le dossier des extensions vaut alors <install-dir>/lib/php/extensions/ <debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, e.g. /usr/local/php/lib/php/extensions/debug-non-zts-20010901 ou /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.. Si la fonctionnalité de chargement de module n'est pas disponible (voir Note), ou a été désactivée (soit en désactivant la directive enable_dl ou en activant le safe mode dans le php.ini) une E_ERROR sera émise et l'exécution du script sera stoppée. Si la fonction dl() échoue parce que la bibliothèque n'a pu être trouvée, dl() retournera FALSE et émettra un message d'alerte E_WARNING.

Exemples

Exemple 1. Exemples avec dl()

<?php
// Chargement pour toutes plates-formes
if (!extension_loaded('sqlite')) {
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
        dl('php_sqlite.dll');
    } else {
        dl('sqlite.so');
    }
}

// Mais la constante PHP_SHLIB_SUFFIX est disponible depuis PHP 4.3.0
if (!extension_loaded('sqlite')) {
    $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
    dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

Notes

Note : dl() n'est pas supportée sur les serveur web multi-threadés. Utilisez la directive extensions dans votre fichier php.ini lorsque vous vous trouvez dans un environnement de ce type. Cependant, les versions CGI et CLI ne sont pas affectées !

Note : Depuis PHP 5, la fonction dl() est obsolète dans tous les SAPI, excepté CLI. Utilisez les directives d'extensions de chargement à la place.

Note : Depuis PHP 6, cette fonction est désactivée dans tous les SAPIs, exceptés CLI, CGI et embarqué.

Note : dl() est sensible à la casse sur les plates-formes Unix.

Note : Cette fonction est désactivée par le safe-mode

Voir aussi

Directives de chargement d'extensions
extension_loaded()

Précédent | Sommaire | Suivant
assert | Niveau supérieur | extension_loaded


extension_loaded

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

extension_loaded -- Détermine si une extension est chargée ou non

Description

bool extension_loaded ( string name )

Détermine si une extension est chargée ou non.

Liste de paramètres

name

Le nom de l'extension.

Vous pouvez connaître le nom des différentes extensions PHP en utilisant la fonction phpinfo() ou bien si vous utilisez la version CGI ou CLI de PHP, vous pouvez utiliser l'option de ligne de commande -m pour afficher toutes les extensions disponibles :

$ php -m
[PHP Modules]
xml
tokenizer
standard
sockets
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

Valeurs de retour

Retourne TRUE si l'extension name a été chargée, FALSE sinon.

Exemples

Exemple 1. Exemple avec extension_loaded()

<?php
if (!extension_loaded('gd')) {
    if (!dl('gd.so')) {
        exit;
    }
}
?>

Notes

Note : extension_loaded() utilise le nom interne de l'extension pour vérifier si une extension est disponible ou pas. La plupart des extensions ont des noms internes écrits en minuscules, mais il peut arriver que certaines aient des noms en majuscules. Soyez donc prévenus que la comparaison effectuée par cette fonction est sensible à la casse !

Voir aussi

get_loaded_extensions()
get_extension_funcs()
phpinfo()
dl()

Précédent | Sommaire | Suivant
dl | Niveau supérieur | get_cfg_var


get_cfg_var

(PHP 3, PHP 4, PHP 5)

get_cfg_var -- Retourne la valeur d'une option de PHP

Description

string get_cfg_var ( string option )

Retourne la valeur de l'option option de configuration PHP.

get_cfg_var() ne retourne pas les options qui ont été choisies lors de la compilation de PHP, ni ne lit dans le fichier de configuration d'Apache (utilisation des directives php3_configuration_option).

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 varname ou bien FALSE si une erreur survient.

Voir aussi

ini_get()

Précédent | Sommaire | Suivant
extension_loaded | Niveau supérieur | get_current_user


get_current_user

(PHP 3, PHP 4, PHP 5)

get_current_user -- Retourne le nom du possesseur du script courant

Description

string get_current_user ( void )

Retourne le nom du possesseur du script courant.

Valeurs de retour

Retourne le nom de l'utilisateur, sous la forme d'une chaîne de caractères.

Voir aussi

getmyuid()
getmygid()
getmypid()
getmyinode()
getlastmod()

Précédent | Sommaire | Suivant
get_cfg_var | Niveau supérieur | get_defined_constants


get_defined_constants

(PHP 4 >= 4.1.0, PHP 5)

get_defined_constants -- Retourne la liste des constantes et leurs valeurs

Description

array get_defined_constants ( [mixed categorize] )

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

Peut être passé, permettant à cette fonction de retourner un tableau multi-dimensionnel avec les catégories en tant que clés de la première dimension et les constantes ainsi que leurs valeurs dans la seconde dimension.

<?php
define("MY_CONSTANT", 1);
print_r(get_defined_constants(true));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [internal] => 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
        )

)

Note : La valeur du paramètre categorize n'est pas révélatrice, seule sa présence est considérée.

Valeurs de retour

Historique

Version | Description
5.0.0 | Le paramètre categorize a été ajouté.

Exemples

Exemple 1. Exemple avec get_defined_constants()

<?php
print_r(get_defined_constants());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [E_ERROR] => 1
    [E_WARNING] => 2
    [E_PARSE] => 4
    [E_NOTICE] => 8
    [E_CORE_ERROR] => 16
    [E_CORE_WARNING] => 32
    [E_COMPILE_ERROR] => 64
    [E_COMPILE_WARNING] => 128
    [E_USER_ERROR] => 256
    [E_USER_WARNING] => 512
    [E_USER_NOTICE] => 1024
    [E_ALL] => 2047
    [TRUE] => 1
)

Voir aussi

defined()
get_loaded_extensions()
get_defined_functions()
get_defined_vars()

Précédent | Sommaire | Suivant
get_current_user | Niveau supérieur | get_extension_funcs


get_extension_funcs

(PHP 4, PHP 5)

get_extension_funcs -- Liste les fonctions d'une extension

Description

array get_extension_funcs ( string module_name )

Retourne le nom des fonctions définies dans le module module_name.

Liste de paramètres

module_name

Le nom du module.

Note : Ce paramètre doit être en minuscule.

Valeurs de retour

Retourne un tableau contenant toutes les fonctions, ou FALSE si module_name n'est pas une extension valide.

Exemples

Exemple 1. Affiche toutes les fonctions XML

<?php
print_r(get_extension_funcs("xml"));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => xml_parser_create
    [1] => xml_parser_create_ns
    [2] => xml_set_object
    [3] => xml_set_element_handler
    [4] => xml_set_character_data_handler
    [5] => xml_set_processing_instruction_handler
    [6] => xml_set_default_handler
    [7] => xml_set_unparsed_entity_decl_handler
    [8] => xml_set_notation_decl_handler
    [9] => xml_set_external_entity_ref_handler
    [10] => xml_set_start_namespace_decl_handler
    [11] => xml_set_end_namespace_decl_handler
    [12] => xml_parse
    [13] => xml_parse_into_struct
    [14] => xml_get_error_code
    [15] => xml_error_string
    [16] => xml_get_current_line_number
    [17] => xml_get_current_column_number
    [18] => xml_get_current_byte_index
    [19] => xml_parser_free
    [20] => xml_parser_set_option
    [21] => xml_parser_get_option
    [22] => utf8_encode
    [23] => utf8_decode
)

Voir aussi

get_loaded_extensions()

Précédent | Sommaire | Suivant
get_defined_constants | Niveau supérieur | get_include_path


get_include_path

(PHP 4 >= 4.3.0, PHP 5)

get_include_path -- Lit la valeur de la directive de configuration include_path

Description

string get_include_path ( void )

Lit la valeur de la directive de configuration include_path.

Valeurs de retour

Retourne le chemin, sous la forme d'une chaîne de caractères.

Exemples

Exemple 1. Exemple avec get_include_path()

<?php
// Fonctionne depuis PHP 4.3.0
echo get_include_path();

// Fonctionne sur toutes les versions
echo ini_get('include_path');
?>

Voir aussi

ini_get()
restore_include_path()
set_include_path()
include()

Précédent | Sommaire | Suivant
get_extension_funcs | Niveau supérieur | get_included_files


get_included_files

(PHP 4, PHP 5)

get_included_files -- Retourne un tableau avec les noms des fichiers qui sont inclus dans un script

Description

array get_included_files ( void )

Retourne un tableau contenant les noms de tous les fichiers qui ont été ajoutés au script avec les fonctions require_once(), include_once(), require() ou include().

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.

Les fichiers inclus ou requis plusieurs fois ne s'affichent qu'une fois dans le tableau retourné.

Historique

Version | Description
4.0.1 | En PHP 4.0.1 et inférieure, cette fonction supposait que les fichiers requis utilisait l'extension .php ; les autres extensions ne fonctionnaient pas. Par ailleurs, dans cette version, le tableau retourné par la fonction get_included_files() était un tableau associatif et ne reprenait que les fichiers ajoutés avec include() et include_once().

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 :

abc.php
test1.php
test2.php
test3.php
test4.php

Notes

Note : Les fichiers inclus en utilisant la directive de configuration auto_prepend_file ne sont pas listés.

Voir aussi

include()
include_once()
require()
require_once()
get_required_files()

Précédent | Sommaire | Suivant
get_include_path | Niveau supérieur | get_loaded_extensions


get_loaded_extensions

(PHP 4, PHP 5)

get_loaded_extensions -- Retourne la liste de tous les modules compilés et chargés

Description

array get_loaded_extensions ( void )

Retourne un tableau contenant les noms de tous les modules compilés et chargés sur l'interpreteur PHP courant.

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

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [0] => xml
   [1] => wddx
   [2] => standard
   [3] => session
   [4] => posix
   [5] => pgsql
   [6] => pcre
   [7] => gd
   [8] => ftp
   [9] => db
   [10] => calendar
   [11] => bcmath
)

Voir aussi

get_extension_funcs()
extension_loaded()
dl()
phpinfo()

Précédent | Sommaire | Suivant
get_included_files | Niveau supérieur | get_magic_quotes_gpc


get_magic_quotes_gpc

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

get_magic_quotes_gpc -- Retourne la configuration actuelle de l'option magic_quotes_gpc

Description

int get_magic_quotes_gpc ( void )

Retourne la configuration actuelle de l'option magic_quotes_gpc

Gardez en tête que la configuration de magic_quotes_gpc ne fonctionnera pas durant l'exécution du script.

Pour plus d'informations sur magic_quotes, voir la section sur les guillemets magiques.

Valeurs de retour

Retourne 0 si l'option est désactivée, 1 sinon.

Exemples

Exemple 1. Exemple avec get_magic_quotes_gpc()

<?php
echo get_magic_quotes_gpc();         // 1
echo $_POST['lastname'];             // O\'reilly
echo addslashes($_POST['lastname']); // O\\\'reilly

if (!get_magic_quotes_gpc()) {
    $lastname = addslashes($_POST['lastname']);
} else {
    $lastname = $_POST['lastname'];
}

echo $lastname; // O\'reilly
$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
?>

Notes

Note : Si la directive magic_quotes_sybase est activée, elle remplacera complètement magic_quotes_gpc. Ce qui fait que même si get_magic_quotes() retourne TRUE les guillemets doubles, les anti-slashes ou les caractères NULL ne seront pas protégés. Seul les guillemets simples le seront. Dans ce cas, ils ressembleront à ''.

Voir aussi

addslashes()
stripslashes()
get_magic_quotes_runtime()
ini_get()

Précédent | Sommaire | Suivant
get_loaded_extensions | Niveau supérieur | get_magic_quotes_runtime


get_magic_quotes_runtime

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

get_magic_quotes_runtime -- Retourne la configuration actuelle de l'option magic_quotes_runtime

Description

int get_magic_quotes_runtime ( void )

Retourne la configuration actuelle de l'option magic_quotes_runtime.

Valeurs de retour

Retourne 0 si l'option est désactivée, 1 sinon.

Voir aussi

get_magic_quotes_gpc()
set_magic_quotes_runtime()

Précédent | Sommaire | Suivant
get_magic_quotes_gpc | Niveau supérieur | get_required_files


get_required_files

(PHP 4, PHP 5)

get_required_files -- Alias de get_included_files()

Description

Cette fonction est un alias de : get_included_files().

Précédent | Sommaire | Suivant
get_magic_quotes_runtime | Niveau supérieur | getenv


getenv

(PHP 3, PHP 4, PHP 5)

getenv -- Retourne la valeur d'une variable d'environnement

Description

string getenv ( string varname )

Retourne la valeur d'une variable d'environnement.

Vous pouvez voir une liste complète des variables d'environnement en utilisant la fonction phpinfo(). Vous pouvez trouver la signification de chacune d'entre elles en consultant le site concernant CGI specification (en anglais), et particulièment la page concernant les variables d'environnement.

Liste de paramètres

varname

Le nom de la variable.

Valeurs de retour

Retourne la valeur de la variable d'environnement varname, ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec getenv()

<?php
// Exemple d'utilisation de getenv()
$ip = getenv('REMOTE_ADDR');

// Ou utilisez simplement une Superglobale ($_SERVER ou $_ENV)
$ip = $_SERVER['REMOTE_ADDR'];
?>

Voir aussi

putenv()
apache_getenv()
Superglobales

Précédent | Sommaire | Suivant
get_required_files | Niveau supérieur | getlastmod


getlastmod

(PHP 3, PHP 4, PHP 5)

getlastmod -- Retourne la date de dernière modification de la page

Description

int getlastmod ( void )

Retourne la date de dernière modification de la page.

Si vous voulez récupérer la date de la dernière modification d'un fichier différent, utilisez la fonction filemtime().

Valeurs de retour

Retourne la date de dernière modification de la page. La valeur retournée est un timestamp UNIX, utilisable comme paramètre avec la fonction date(). Retourne FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec getlastmod()

<?php
// affiche par exemple 'Dernière modification: April 20 2004 20:43:59.'
echo "Dernière modification : " . date ("F d Y H:i:s.", getlastmod());
?>

Voir aussi

date()
getmyuid()
getmygid()
get_current_user()
getmyinode()
getmypid()
filemtime()

Précédent | Sommaire | Suivant
getenv | Niveau supérieur | getmygid


getmygid

(PHP 4 >= 4.1.0, PHP 5)

getmygid -- Retourne le GID du propriétaire du script

Description

int getmygid ( void )

Retourne le GID du propriétaire du script.

Valeurs de retour

Retourne le GID du propriétaire du script courant, ou FALSE si une erreur survient.

Voir aussi

getmyuid()
getmypid()
get_current_user()
getmyinode()
getlastmod()

Précédent | Sommaire | Suivant
getlastmod | Niveau supérieur | getmyinode


getmyinode

(PHP 3, PHP 4, PHP 5)

getmyinode -- Retourne l'inode du script

Description

int getmyinode ( void )

Retourne l'inode du script courant.

Valeurs de retour

Retourne l'inode du script courant, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Notes

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi

getmygid()
getmyuid()
getmypid()
get_current_user()
getlastmod()

Précédent | Sommaire | Suivant
getmygid | Niveau supérieur | getmypid


getmypid

(PHP 3, PHP 4, PHP 5)

getmypid -- Retourne le numéro de processus courant de PHP

Description

int getmypid ( void )

Retourne le numéro de processus courant de PHP.

Valeurs de retour

Retourne le numéro de processus courant de PHP, ou FALSE si une erreur survient.

Notes

Avertissement

Les identifiants de processus ne sont pas uniques, et forment une source d'entropie faible. Nous recommandons de ne pas utiliser les pid pour assurer la sécurité d'un système.

Voir aussi

getmygid()
getmyuid()
get_current_user()
getmyinode()
getlastmod()

Précédent | Sommaire | Suivant
getmyinode | Niveau supérieur | getmyuid


getmyuid

(PHP 3, PHP 4, PHP 5)

getmyuid -- Retourne l'UID du propriétaire du script actuel

Description

int getmyuid ( void )

Retourne l'UID du propriétaire du script actuel.

Valeurs de retour

Retourne l'identifiant du propriétaire du script actuel (UID) ou FALSE en cas d'erreur.

Voir aussi

getmygid()
getmypid()
get_current_user()
getmyinode()
getlastmod()

Précédent | Sommaire | Suivant
getmypid | Niveau supérieur | getopt


getopt

(PHP 4 >= 4.3.0, PHP 5)

getopt -- Lit des options passées dans la ligne de commande

Description

array getopt ( string options )

Retourne un tableau associatif avec la liste des paires option/valeur, lues dans la ligne de commande, et basée sur le format d'option options ou bien FALSE si une erreur survient.

Liste de paramètres

options

Le paramètre options peut contenir les éléments suivants : caractères ou caractères suivis d'un signe deux-points pour indiquer un élément optionnel. Par exemple, une option appelée x correspond à une option -x, et une chaîne x: correspond à une option de type -x argument. Cela importe peut si un argument a des espaces auparavant.

Valeurs de retour

Retourne un tableau de paire option / argument. Si une option n'a pas d'argument, la valeur sera définie à FALSE.

Exemples

Exemple 1. Exemple avec getopt()

<?php
// Analyse la ligne de commande (i.e. $GLOBALS['argv'])
$options = getopt("f:hp:");
?>

Notes

Note : Cette fonction n'est pas implémentée sous Windows.

Précédent | Sommaire | Suivant
getmyuid | Niveau supérieur | getrusage


getrusage

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

getrusage -- Retourne le niveau d'utilisation des ressources

Description

array getrusage ( [int who] )

C'est une interface à la fonction system getrusage(2). Elle retourne un tableau associatif contenant les informations renvoyées par cet appel système.

Liste de paramètres

who

Si who est égal à 1, getrusage() sera appelé avec le paramètre RUSAGE_CHILDREN.

Valeurs de retour

Retourne un tableau associatif contenant les données retournées depuis l'appel système. Toutes les entrées sont accessibles en utilisant leurs noms de champs documentés.

Exemples

Exemple 1. Exemple avec getrusage()

<?php
$dat = getrusage();
echo $dat["ru_nswap"];         // Taille de la mémoire swap
echo $dat["ru_majflt"];        // Nombre de page mémoires utilisées
echo $dat["ru_utime.tv_sec"];  // Temps utilisateur (en secondes)
echo $dat["ru_utime.tv_usec"]; // Temps utilisateur (en microsecondes)
?>

Notes

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi

La page de manuel getrusage(2) de votre système

Précédent | Sommaire | Suivant
getopt | Niveau supérieur | ini_alter


ini_alter

(PHP 4, PHP 5)

ini_alter -- Alias de ini_set()

Description

Cette fonction est un alias de : ini_set().

Précédent | Sommaire | Suivant
getrusage | Niveau supérieur | ini_get_all


ini_get_all

(PHP 4 >= 4.2.0, PHP 5)

ini_get_all -- Lit toutes les valeurs de configuration

Description

array ini_get_all ( [string extension] )

Lit toutes les valeurs de configuration.

Liste de paramètres

extension

Un nom d'extension, optionnel. S'il est défini, la fonction retournera uniquement les options spécifiques à cette extension.

Valeurs de retour

Retourne un tableau associatif en utilisant les noms des directives comme index, et global_value (configuré dans php.ini), local_value (configuré via ini_set() ou .htaccess), et access (le niveau d'accès) comme valeurs. Voyez le manuel sur les changements de configuration pour plus d'informations sur les niveaux d'accès.

Note : Il est possible pour une directive d'avoir plusieurs niveaux d'accès, ce qui est indiqué dans le champ de bits access.

Exemples

Exemple 1. Exemple avec ini_get_all()

<?php
$inis = ini_get_all();

print_r($inis);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [allow_call_time_pass_reference] => Array
    (
        [global_value] => 1
        [local_value] => 1
        [access] => 6
    )
    [allow_url_fopen] => Array
    (
        [global_value] => 1
        [local_value] => 1
        [access] => 7
    )

    ...

)

Voir aussi

ini_get()
ini_restore()
ini_set()
get_loaded_extensions()
phpinfo()

Précédent | Sommaire | Suivant
ini_alter | Niveau supérieur | ini_get


ini_get

(PHP 4, PHP 5)

ini_get -- Lit la valeur d'une option de configuration

Description

string ini_get ( string varname )

Retourne la valeur de l'option de configuration varname en cas de succès.

Liste de paramètres

varname

Le nom de l'option de configuration.

Valeurs de retour

Retourne la valeur de l'option de configuration varname en cas de succès, ou une chaîne de caractères vide si une erreur survient.

Exemples

Exemple 1. Exemples avec ini_get()

<?php
/*
Notre fichier php.ini contient les directives suivantes :

display_errors = On
register_globals = Off
post_max_size = 8M
*/

echo 'display_errors = ' . ini_get('display_errors') . "\n";
echo 'register_globals = ' . ini_get('register_globals') . "\n";
echo 'post_max_size = ' . ini_get('post_max_size') . "\n";
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size'));

function return_bytes($val) {
    $val = trim($val);
    $last = strtolower($val{strlen($val)-1});
    switch($last) {
        // Le modifieur 'G' est disponible depuis PHP 5.1.0
        case 'g':
            $val *= 1024;
        case 'm':
            $val *= 1024;
        case 'k':
            $val *= 1024;
    }

    return $val;
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
post_max_size in bytes = 8388608

Notes

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

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.

Voir aussi

get_cfg_var()
ini_get_all()
ini_restore()
ini_set()

Précédent | Sommaire | Suivant
ini_get_all | Niveau supérieur | ini_restore


ini_restore

(PHP 4, PHP 5)

ini_restore -- Restaure la valeur de l'option de configuration

Description

void ini_restore ( string varname )

Restaure la valeur originale de l'option de configuration varname.

Liste de paramètres

varname

Le nom de l'option de configuration.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

ini_get()
ini_get_all()
ini_set()

Précédent | Sommaire | Suivant
ini_get | Niveau supérieur | ini_set


ini_set

(PHP 4, PHP 5)

ini_set -- Modifie la valeur d'une option de configuration

Description

string ini_set ( string varname, string newvalue )

Change la valeur de l'option de configuration varname et lui donne celle de newvalue. La valeur de l'option de configuration sera modifiée durant toute l'exécution du script et pour ce script spécifiquement. Elle reprendra sa valeur par défaut dès la fin du script.

Liste de paramètres

varname

Les options disponibles ne peuvent pas toutes être modifiées avec ini_set(). La liste de toutes les options disponibles se trouve dans l'annexe.

newvalue

La nouvelle valeur pour l'option.

Valeurs de retour

Retourne l'ancien valeur en cas de succès, FALSE si une erreur survient.

Voir aussi

get_cfg_var()
ini_get()
ini_get_all()
ini_restore()
Comment modifier la configuration

Précédent | Sommaire | Suivant
ini_restore | Niveau supérieur | main


main

(no version information, might be only in CVS)

main -- Fausse documentation pour main()

Description

Il n'y a pas de fonction appelée main(), hormis dans les sources PHP. En PHP 4.3.0, un nouveau type de gestion d'erreur a été introduit dans les sources de PHP : php_error_docref. Une des fonctionnalité était de fournir un lien vers la page de manuel de PHP lorsque les directives html_errors (par défaut) et docref_root (par défaut jusqu'en PHP 4.3.2) sont activées.

Certains messages d'erreur faisaient référence à une page de manuel pour la fonction main() alors que cette page n'existe pas. Ajoutez une note utilisateur, en anglais, où vous mentionnez la fonction PHP vous ayant conduite sur cette page. Cette erreur sera corrigée et documentée.

Tableau 1. Erreurs connues pour diriger sur la page main()

Nom de la fonction | Ne pointe plus sur cette page depuis la version
include() | 5.1.0
include_once() | 5.1.0
require() | 5.1.0
require_once() | 5.1.0

Voir aussi

html_errors
display_errors

Précédent | Sommaire | Suivant
ini_set | Niveau supérieur | memory_get_peak_usage


memory_get_usage

(PHP 4 >= 4.3.2, PHP 5)

memory_get_usage -- Indique la quantité de mémoire utilisée par PHP

Description

int memory_get_usage ( [bool real_usage] )

Retourne la quantité de mémoire allouée à PHP à cet instant.

Liste de paramètres

real_usage

Définire à 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éfinit ou vaut FALSE, seule la mémoire utilisée par emalloc() sera retournée.

Valeurs de retour

Retourne la quantité de mémoire, en octets.

Historique

Version | Description
5.2.1 | La compilation avec l'option de configuration --enable-memory-limit n'est plus nécessaire pour que cette fonction existe.
5.2.0 | Le paramètre real_usage a été ajouté.

Exemples

Exemple 1. Exemple avec memory_get_usage()

<?php
// Ceci n'est qu'un exemple. Les chiffres ci-dessous
// différeront suivant les systèmes et les configurations

echo memory_get_usage() . "\n"; // 36640

$a = str_repeat("Hello", 4242);

echo memory_get_usage() . "\n"; // 57960

unset($a);

echo memory_get_usage() . "\n"; // 36744

?>

Voir aussi

memory_get_peak_usage()
memory_limit

Précédent | Sommaire | Suivant
memory_get_peak_usage | Niveau supérieur | php_ini_scanned_files


php_ini_scanned_files

(PHP 4 >= 4.3.0, PHP 5)

php_ini_scanned_files -- Retourne la liste des fichiers .ini analysés dans les dossiers de configuration supplémentaires

Description

string php_ini_scanned_files ( void )

php_ini_scanned_files() retourne une liste de noms de fichiers de configuration analysés, en plus de php.ini. Cette liste est au format CSV. Ces fichiers sont situés dans un dossier défini par l'option --with-config-file-scan-dir, définie au moment de la compilation.

Les fichiers retournés incluent le chemin, comme déclaré dans la directive --with-config-file-scan-dir. De plus, chaque virgule est suivie d'une nouvelle ligne.

Valeurs de retour

Retourne une chaîne de caractères, où les noms de fichiers sont séparés par des virgules. Si --with-config-files-scan-dir n'était pas configuré, FALSE est retourné. Si cette option était configurée, mais que le dossier était vide, une chaîne vide est retournée. Si un fichier n'est pas lisible, le nom du fichier sera inclus dans la liste, mais une erreur sera générée. Cette erreur sera visible au moment de la compilation, et lorsque vous appelerez la fonction php_ini_scanned_files().

Exemples

Exemple 1. Un exemple de liste retournée par php_ini_scanned_files()

<?php
if ($filelist = php_ini_scanned_files()) {
    if (strlen($filelist) > 0) {
        $files = explode(',', $filelist);

        foreach ($files as $file) {
            echo "<li>" . trim($file) . "</li>\n";
        }
    }
}
?>

Voir aussi

ini_set()
phpinfo()

Précédent | Sommaire | Suivant
memory_get_usage | Niveau supérieur | php_logo_guid


php_logo_guid

(PHP 4, PHP 5)

php_logo_guid -- Retourne l'identifiant du logo PHP

Description

string php_logo_guid ( void )

Cette fonction retourne l'identifiant qui peut être utilisé pour afficher le logo PHP en utilisant une image incorporée dans les sources. Le logo est affiché uniquement si expose_php vaut On.

Valeurs de retour

Retourne PHPE9568F34-D428-11d2-A769-00AA001ACF42.

Exemples

Exemple 1. Exemple avec php_logo_guid()

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . php_logo_guid() . '" alt="Logo PHP !" />';

?>

Voir aussi

phpinfo()
phpversion()
phpcredits()
zend_logo_guid()

Précédent | Sommaire | Suivant
php_ini_scanned_files | Niveau supérieur | php_sapi_name


php_sapi_name

(PHP 4 >= 4.0.1, PHP 5)

php_sapi_name -- Retourne le type d'interface utilisée entre le serveur web et PHP

Description

string php_sapi_name ( void )

Retourne une chaîne en minuscule qui décrit le type d'interface utilisée entre le serveur web et PHP (Server API, SAPI). En CGI PHP, cette chaîne est "cgi", en mod_php pour Apache, cette chaîne est "apache", etc.

Valeurs de retour

Retourne le type de l'interface, sous la forme d'une chaîne de caractères en minuscule.

Exemples

Exemple 1. Exemple avec php_sapi_name()

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

Voir aussi

PHP_SAPI

Précédent | Sommaire | Suivant
php_logo_guid | Niveau supérieur | php_uname


php_uname

(PHP 4 >= 4.0.2, PHP 5)

php_uname -- Retourne les informations sur le système d'exploitation

Description

string php_uname ( [string mode] )

php_uname() retourne une description sur le système d'exploitation sur lequel tourne PHP. 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é.

Sous l'Unix, la fonction tente d'afficher les informations du système d'exploitation sur lequel PHP a été compilé si elle n'arrive pas à déterminer le système d'exploitation courant.

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. eg. FreeBSD.

  • 'n': Nom de l'hôte. eg. localhost.example.com.

  • 'r': Nom de la version. eg. 5.1.2-RELEASE.

  • 'v': Information sur la version. Varie énormément suivant le système d'exploitation.

  • 'm': Type de la machine. eg. 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()
php_sapi_name()
phpinfo()

Précédent | Sommaire | Suivant
php_sapi_name | Niveau supérieur | phpcredits


phpcredits

(PHP 4, PHP 5)

phpcredits -- Affiche les crédits de PHP

Description

bool phpcredits ( [int flag] )

Affiche la liste des développeurs PHP, des modules, etc. Elle génère le code HTML approprié pour insérer les informations dans une page.

Liste de paramètres

flag

Pour générer une page personnalisée sur les crédits, vous devez utiliser le paramètre flag. flag est optionnel, et vaut par défaut CREDITS_ALL.

Tableau 1. 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 4.0, 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 modules Server API pour PHP et leurs auteurs

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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>

Voir aussi

phpversion()
php_logo_guid()
phpinfo()

Précédent | Sommaire | Suivant
php_uname | Niveau supérieur | phpinfo


phpinfo

(PHP 3, PHP 4, PHP 5)

phpinfo -- Affiche de nombreuses informations sur PHP

Description

bool phpinfo ( [int what] )

Affiche de nombreuses informations sur PHP, concernant sa configuration courante : options de compilation, extensions, version, informations sur le serveur, et l'environnement (lorsqu'il est compilé comme module), environnement PHP, informations sur le système, chemins, valeurs générales et locales de configuration, en-têtes HTTP et la licence PHP.

Comme tous les systèmes sont configurés différemment, phpinfo() sert généralement à vérifier la configuration ainsi que les variables pré-définies, pour une plate-forme donnée.

phpinfo() est un bon outil de débogage, car il affiche le contenu de toutes les variables EGPCS (Environnement, GET, POST, Cookie, Serveur).

Liste de paramètres

what

L'affichage peut être personnalisé en utilisant une ou plusieurs des constantes suivantes. Elles sont combinables avec l'opérateur or, et doivent être passées dans le paramètre what. Vous pouvez aussi additionner ces constantes.

Tableau 1. 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. C'est la valeur par défaut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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 : Une partie des informations affichées sont désactivées si la directive expose_php est configurée avec la valeur off. Cela inclus 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()
phpcredits()
php_logo_guid()
ini_get()
ini_set()
get_loaded_extensions()
les variables pré-définies

Précédent | Sommaire | Suivant
phpcredits | Niveau supérieur | phpversion


phpversion

(PHP 3, PHP 4, PHP 5)

phpversion -- Retourne le numéro de la version courante de PHP

Description

string phpversion ( [string extension] )

Retourne le numéro de la version courante de PHP.

Liste de paramètres

extension

Un nom d'extension, optionnel.

Valeurs de retour

Si le paramètre optionnel extension est spécifié, la fonction phpversion() retournera la version de cette extension ou FALSE s'il n'y a aucune information sur la version d'associée ou si cette extensions n'est pas disponible.

Exemples

Exemple 1. Exemple avec phpversion()

<?php
// affiche le numéro de version courante du PHP.
echo "Version PHP courante : " . phpversion();

// affiche e.g. '2.0' ou rien du tout si cette extension n'est pas active
echo phpversion('tidy');
?>

Notes

Note : Cette information est aussi disponible via la constante prédéfinie PHP_VERSION.

Voir aussi

version_compare()
phpinfo()
phpcredits()
php_logo_guid()
zend_version()

Précédent | Sommaire | Suivant
phpinfo | Niveau supérieur | putenv


putenv

(PHP 3, PHP 4, PHP 5)

putenv -- Fixe la valeur d'une variable d'environnement

Description

bool putenv ( string setting )

Fixe la valeur d'une variable d'environnement. Cette valeur n'existera que durant la vie du script courant, et l'environnement initial sera restauré lorsque le script sera terminé.

Modifier la valeur de certaines variables système peut être un trou de sécurité considérable. La directive de configuration safe_mode_allowed_env_vars contient une liste de préfixes, séparés par des virgules. Lorsque le Safe Mode est actif, l'utilisateur ne peut que modifier les variables dont le nom commence par les préfixes fournis par cette directive. Par défaut, les utilisateurs ne peuvent modifier que les variables qui commencent par PHP_ (i.e. PHP_FOO=BAR). Note : Si cette directive est vide, PHP autorisera la modification de TOUTES les variables d'environnement !

La directive de configuration safe_mode_protected_env_vars contient une liste de variables d'environnement, séparées par des virgules. Les utilisateurs ne pourront pas modifier ces variables avec la fonction putenv(). Ces variables seront protégées même si safe_mode_allowed_env_vars permet leur modification.

Liste de paramètres

setting

La configuration, comme "FOO=BAR"

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Modification d'une variable d'environnement

<?php
putenv("UNIQID=$uniqid");
?>

Notes

Avertissement

Ces directives n'ont d'effets que lorsque le safe mode est activé !

Voir aussi

getenv()

Précédent | Sommaire | Suivant
phpversion | Niveau supérieur | restore_include_path


restore_include_path

(PHP 4 >= 4.3.0, PHP 5)

restore_include_path -- Restaure la valeur de la directive de configuration include_path

Description

void restore_include_path ( void )

Restaure la valeur de la directive de configuration include_path à sa valeur originale de début de script, telle qu'inscrite dans le php.ini.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Exemple avec restore_include_path()

<?php

echo get_include_path();  // .:/usr/local/lib/php

set_include_path('/inc');

echo get_include_path();  // /inc

// Fonctionne depuis PHP 4.3.0
restore_include_path();

// Fonctionne sur toutes les versions
ini_restore('include_path');

echo get_include_path();  // .:/usr/local/lib/php

?>

Voir aussi

ini_restore()
get_include_path()
set_include_path()
include()

Précédent | Sommaire | Suivant
putenv | Niveau supérieur | set_include_path


set_include_path

(PHP 4 >= 4.3.0, PHP 5)

set_include_path -- Modifie la valeur de la directive de configuration include_path

Description

string set_include_path ( string new_include_path )

Modifie la valeur de la directive de configuration include_path, pour la durée du script en cours.

Liste de paramètres

new_include_path

La nouvelle valeur pour la directive de configuration include_path

Valeurs de retour

Retourne l'ancienne valeur de include_path en cas de succès, et FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec set_include_path()

<?php
// Fonctionne depuis PHP 4.3.0
set_include_path('/inc');

// Fonctionne sur toutes les versions
ini_set('include_path', '/inc');
?>

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()
get_include_path()
restore_include_path()
include()

Précédent | Sommaire | Suivant
restore_include_path | Niveau supérieur | set_magic_quotes_runtime


set_magic_quotes_runtime

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

set_magic_quotes_runtime -- Active/désactive l'option magic_quotes_runtime

Description

bool set_magic_quotes_runtime ( int new_setting )

Active/désactive l'option magic_quotes_runtime.

Liste de paramètres

new_setting

0 l'option est désactivée, 1 l'option est activée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

get_magic_quotes_gpc()
get_magic_quotes_runtime()

Précédent | Sommaire | Suivant
set_include_path | Niveau supérieur | set_time_limit


set_time_limit

(PHP 3, PHP 4, PHP 5)

set_time_limit -- Fixe le temps maximum d'exécution d'un script

Description

void set_time_limit ( int seconds )

Fixe le délai d'expiration d'un script, en secondes. Si cette limite est atteinte, le script s'interrompt, et renvoie une erreur fatale. La valeur par défaut est 30 secondes ou, si c'est le cas, la valeur de la directive max_execution_time définie dans le php.ini.

Lorsqu'elle est appelée, set_time_limit() remet le compteur à zéro. En d'autres termes, si la limite par défaut est à 30 secondes, et qu'après 25 secondes d'exécution du script l'appel set_time_limit(20) est fait, alors le script tournera pendant un total de 45 secondes avant de finir.

Liste de paramètres

seconds

Le temps maximal d'exécution, en secondes. S'il vaut 0, aucune limite n'est imposée.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Avertissement

Notez que set_time_limit() n'a pas d'effet lorsque PHP fonctionne en mode safe mode. Il n'y a pas d'autre solution que de changer de mode, ou de modifier la durée maximale d'exécution dans le php.ini.

Note : La fonction set_time_limit() et la directive de configuration max_execution_time n'affectent que le temps d'exécution du script lui-même. Tout temps passé en dehors du script, comme un appel système utilisant system(), des opérations sur les flux, les requêtes sur base de données, etc. n'est pas pris en compte lors du calcul de la durée maximale d'exécution du script.

Voir aussi

max_execution_time
max_input_time

Précédent | Sommaire | Suivant
set_magic_quotes_runtime | Niveau supérieur | sys_get_temp_dir


version_compare

(PHP 4 >= 4.1.0, PHP 5)

version_compare -- Compare deux chaînes de versions au format des versions PHP

Description

mixed version_compare ( string version1, string version2 [, string operator] )

version_compare() compare les deux versions de PHP standardisées. Cette fonction est pratique pour les programmes qui doivent vérifier la version de PHP qui les fait tourner.

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'. Ensuite, elle découpe les résultats comme si vous utilisiez explode('.', $ver). Puis, elle compare les morceaux en allant de gauche à droite. Si une part contient des caractères aplhabétiques, ils sont gérés dans l'ordre suivant : dev < alpha = a < beta = b < RC < pl. De cette façon, vous pouvez comparer non seulement des versions de différents niveaux, comme '4.1' et '4.1.2', mais aussi des versions de développement à la mode de PHP, à n'importe quel stade.

Liste de paramètres

version1

Premier numéro de version.

version2

Second numéro de version.

operator

Si vous spécifiez le troisième argument optionnel operator, vous pouvez tester une relation particulière. Les opérateurs possibles sont : <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne. En utilisant cet argument, la fonction retournera TRUE si la relation est vérifiée et FALSE sinon.

Valeurs de retour

Retourne -1 si version1 est inférieure à version2, 0 si elles sont égales, et +1 dans le reste des cas.

Exemples

Exemple 1. Exemple avec version_compare()

<?php
// Affiche -1
echo version_compare("4.0.4", "4.0.6");

// Tout ce qui suit retourne 1
echo version_compare("4.0.4", "4.0.6", "<");
echo version_compare("4.0.6", "4.0.6", "eq");
?>

Notes

Note : La constante PHP_VERSION contient la version courante de PHP.

Précédent | Sommaire | Suivant
sys_get_temp_dir | Niveau supérieur | zend_logo_guid


zend_logo_guid

(PHP 4, PHP 5)

zend_logo_guid -- Retourne le logo de Zend

Description

string zend_logo_guid ( void )

zend_logo_guid() retourne l'identifiant pouvant être utilisé pour afficher le logo Zend en utilisant l'image intégrée.

Valeurs de retour

Retourne PHPE9568F35-D428-11d2-A769-00AA001ACF42.

Exemples

Exemple 1. Exemple avec zend_logo_guid()

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . zend_logo_guid() . '" alt="Zend Logo !" />';

?>

Voir aussi

php_logo_guid()

Précédent | Sommaire | Suivant
version_compare | Niveau supérieur | zend_version


zend_version

(PHP 4, PHP 5)

zend_version -- Lit la version courante du moteur Zend

Description

string zend_version ( void )

Retourne une chaîne contenant le numéro de version du moteur d'analyse Zend actuellement en cours d'utilisation.

Valeurs de retour

Retourne le numéro de la version du moteur Zend, sous la forme d'une chaîne de caractères.

Exemples

Exemple 1. Exemple avec zend_version()

<?php
echo "Version du moteur Zend : " . zend_version();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du moteur Zend : 2.2.0

Voir aussi

phpinfo()
phpcredits()
php_logo_guid()
phpversion()

Précédent | Sommaire | Suivant
zend_logo_guid | Niveau supérieur | Fonctions POSIX


Ingres II

Manuel PHP
Précédent Suivant

LXX. Ingres II

Introduction

Ces fonctions permettent l'accès à un serveur de base de données Ingres II.

Note : Si vous avez déjà utilisé des extensions PHP permettant l'accès à d'autres serveurs de bases de données, notez qu'Ingres n'accepte pas de requêtes et/ou de transactions concurrentes sur la même connexion, et donc vous ne trouverez aucun identifiant de résultat ou de transaction dans cette extension. Le résultat d'une requête doit être traité avant d'envoyer une autre requête, et une transaction doit être validée ("commit") ou annulée ("roll back") avant de pouvoir en ouvrir une nouvelle (l'ouverture de transaction est faite automatiquement à l'envoi de la première requête).

Pré-requis

Pour compiler PHP avec le support Ingres, vous aurez besoin de la bibliothèque Ingres OpenAPI et des fichiers d'en-têtes.

Installation

Cette extension PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/ingres.

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP avec le support Ingres, en utilisant l'option --with-ingres[=DIR] où DIR est le répertoire d'installation du serveur Ingres (par défaut, /II/ingres). Ceci nécessite les fichiers de bibliothèque de l'en-tête d'Open API qui sont inclus dans Ingres II. Si la variable d'environnement II_SYSTEM n'est pas correctement initialisée, vous devrez utiliser --with-ingres=DIR, pour spécifier le répertoire où a été installé Ingres.

Lorsque cette extension est utilisée avec Apache, si Apache ne démarre pas et émet l'erreur "PHP Fatal error: Unable to start ingres_ii module in Unknown on line 0", assurez-vous que la variable d'environnement II_SYSTEM est correctement initialisée. Il suffit souvent d'ajouter "export II_SYSTEM="/home/ingres/II" dans le script qui démarre Apache, juste avant le lancement de httpd.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.2.
ingres.max_persistent | "-1" | PHP_INI_SYSTEM |
ingres.max_links | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.2.
ingres.default_database | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
ingres.default_user | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
ingres.default_password | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
ingres.report_db_warnings | "1" | PHP_INI_ALL | Disponible depuis la version 1.1.0 de l'extension PECL.
ingres.cursor_mode | "0" | PHP_INI_ALL | Disponible depuis la version 1.1.0 de l'extension PECL.
ingres.blob_segment_length | "4096" | PHP_INI_ALL | Disponible depuis la version 1.2.0 de l'extension PECL.
ingres.trace_connect | "0" | PHP_INI_ALL | Disponible depuis la version 1.3.1 de l'extension PECL.
ingres.timeout | "-1" | PHP_INI_ALL | Disponible depuis la version 1.3.1 de l'extension PECL.
ingres.array_index_start | "1" | PHP_INI_ALL | Disponible depuis la version 1.3.1 de l'extension PECL.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Types de ressources

ingres_connect() et ingres_pconnect() retournent un identifiant de lien Ingres II.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

INGRES_ASSOC (entier)

Des colonnes sont retournées dans un tableau ayant comme index le nom des champs.

INGRES_NUM (entier)

Des colonnes sont retournées dans un tableau ayant un index numérique des champs. L'index commence avec 1, le premier champ dans le résultat.

INGRES_BOTH (entier)

Des colonnes sont retournées dans un tableau ayant un index numérique et un index avec le nom des champs.

INGRES_EXT_VERSION (chaîne de caractères)

Spécifie la version de l'extension Ingres. Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_API_VERSION (entier)

Spécifie la version de Ingres OpenAPI de l'extension qui a été bâtie. Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_CURSOR_READONLY (entier)

Spécifie que les curseurs Ingres doivent être ouverts en mode lecture seule ('readonly'). Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_CURSOR_UPDATE (entier)

Spécifie que les curseurs Ingres doivent être ouverts en mode pour mise à jour ('for update'). Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_DATE_MULTINATIONAL (entier)

Équivalent à la configuration II_DATE_FORMAT de MULTINATIONAL. Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_DATE_MULTINATIONAL4 (entier)

Équivalent à la configuration II_DATE_FORMAT de MULTINATIONAL4. Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_DATE_FINNISH (entier)

Équivalent à la configuration II_DATE_FORMAT de FINNISH. Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_DATE_ISO (entier)

Équivalent à la configuration II_DATE_FORMAT de ISO. Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_DATE_ISO4 (entier)

Équivalent à la configuration II_DATE_FORMAT de ISO4. Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_DATE_GERMAN (entier)

Équivalent à la configuration II_DATE_FORMAT de GERMAN. Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_DATE_MDY (entier)

Équivalent à la configuration II_DATE_FORMAT de MDY. Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_DATE_DMY (entier)

Équivalent à la configuration II_DATE_FORMAT de DMY. Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_DATE_YMD (entier)

Équivalent à la configuration II_DATE_FORMAT de YMD. Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_MONEY_LEADING (entier)

Spécifie le caractère de devise qui doit être placé au début des valeurs monétaires. Équivalent à la configuration II_MONEY_FORMAT à 'L:'. Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_MONEY_TRAILING (entier)

Spécifie le caractère de devise qui doit être placé à la fin des valeurs monétaires. Équivalent à la configuration II_MONEY_FORMAT à 'T:'. Disponible depuis la version 1.2.0 de l'extension PECL.

INGRES_STRUCTURE_BTREE (entier)

Spécifie la table par défaut ou l'index de la structure du BTREE lorsqu'il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

INGRES_STRUCTURE_CBTREE (entier)

Spécifie la table par défaut ou l'index de structure du BTREE COMPRESSED lorsque il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

INGRES_STRUCTURE_HASH (entier)

Spécifie la table par défaut ou l'index de structure du HASH lorsque il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

INGRES_STRUCTURE_CHASH (entier)

Spécifie la table par défaut ou l'index de structure du HASH COMPRESSED lorsque il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

INGRES_STRUCTURE_HEAP (entier)

Spécifie la table par défaut ou l'index de structure du HEAP lorsque il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

INGRES_STRUCTURE_CHEAP (entier)

Spécifie la table par défaut ou l'index de structure du HEAP COMPRESSED lorsque il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

INGRES_STRUCTURE_ISAM (entier)

Spécifie la table par défaut ou l'index de structure du ISAM COMPRESSED lorsque il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

INGRES_STRUCTURE_CISAM (entier)

Spécifie la table par défaut ou l'index de structure du ISAM COMPRESSED lorsque il est utilisé en combinaison avec l'option de connexion table_structure ou index_structure. Disponible depuis la version 1.4.0 de l'extension PECL.

Exemples

Ce simple exemple illustre comment se connecter, exécuter une requête, afficher les résultats et se déconnecter d'une base de données Ingres.

Exemple 1. Simple Ingres Example

<?php
// Connexion, sélection de base de données
$link = ingres_connect('database', 'user', 'password')
    or die('Connexion impossible : ' . ingres_error($link));
echo 'Connecté correctement';

// Sélectionne à partir d'une table qui existe dans toutes les bases de données Ingres
$query = 'SELECT * FROM iirelation';
$returncode = ingres_query($query,$link) or die('Échec requête : ' .
ingres_error($link));

// Affiche les résultats en HTML
// relid - table name
// relowner - table owner
echo "<table>\n";
while ($iirelation = ingres_fetch_object(INGRES_BOTH, $link)) {
    echo "\t<tr>\n";
    echo "\t\t<td>" . $iirelation->relid . "</td>\n";
    echo "\t\t<td>" . $iirelation->relowner . "</td>\n";
    echo "\t</tr>\n";
}
echo "</table>\n";

// Envoie la transaction
ingres_commit($link);
// Fermeture de la connexion
ingres_close($link);
?>

Table des matières
ingres_autocommit -- Active ou désactive le mode autocommit
ingres_close -- Ferme une connexion à un serveur Ingres
ingres_commit -- Valide une transaction
ingres_connect -- Ouvre une connexion sur un serveur Ingres
ingres_cursor -- Récupère le nom du curseur pour une ressource donnée
ingres_errno -- Récupère le dernier numéro d'erreur d'ingres généré
ingres_error -- Récupère un message d'erreur significatif pour la dernière erreur générée
ingres_errsqlstate -- Gets the last SQLSTATE error code generated
ingres_fetch_array -- Récupère une ligne de résultat Ingres dans un tableau
ingres_fetch_object -- Récupère une ligne de résultat dans un objet
ingres_fetch_row -- Récupère une ligne de résultat dans un tableau énuméré
ingres_field_length -- Retourne la taille d'un champ
ingres_field_name -- Retourne le nom d'un champ dans le résultat d'une requête
ingres_field_nullable -- Teste si un champ est annulable
ingres_field_precision -- Retourne la précision d'un champ
ingres_field_scale -- Retourne l'échelle d'un champ
ingres_field_type -- Retourne le type d'un champ dans le résultat d'une requête
ingres_num_fields -- Retourne le nombre de champs renvoyés par la dernière requête
ingres_num_rows -- Retourne le nombre de lignes affectées ou renvoyées par la dernière requête
ingres_pconnect -- Ouvre une connexion persistante à un serveur Ingres
ingres_query -- Envoie une requête SQL à un serveur Ingres II
ingres_rollback -- Annule une transaction

Précédent | Sommaire | Suivant
PDO_INFORMIX DSN | Niveau supérieur | ingres_autocommit


ingres_autocommit

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_autocommit -- Active ou désactive le mode autocommit

Description

bool ingres_autocommit ( [resource link] )

ingres_autocommit() est appelée juste avant l'ouverture d'une transaction (avant le premier appel à ingres_query() ou juste après un appel à ingres_rollback() ou ingres_commit()) pour changer l'état du mode "autocommit" (ce mode fonctionne comme une bascule). Lorsque le script débute le mode autocommit est toujours désactivé.

Lorsque le mode autocommit est activé, chaque requête est automatiquement commise (validée) par le serveur, comme si ingres_commit() était appelée après chaque appel à ingres_query().

Voir aussi
ingres_query(),
ingres_rollback() et
ingres_commit().

Précédent | Sommaire | Suivant
Ingres II | Niveau supérieur | ingres_close


ingres_close

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_close -- Ferme une connexion à un serveur Ingres

Description

bool ingres_close ( [resource link] )

ingres_close() retourne TRUE en cas de succès, et FALSE sinon.

ingres_close() ferme la connexion au serveur Ingres associée au lien spécifié. Si le paramètre link n'est pas spécifié, le dernier lien ouvert est utilisé.

Habituellement l'appel à ingres_close() n'est pas nécessaire, car il ne ferme pas les connexions persistantes, et toutes les connexions non-persistantes sont automatiquement fermées à la fin du script.

Voir aussi ingres_connect() et ingres_pconnect().

Précédent | Sommaire | Suivant
ingres_autocommit | Niveau supérieur | ingres_commit


ingres_commit

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_commit -- Valide une transaction

Description

bool ingres_commit ( [resource link] )

ingres_commit() valide la transaction ouverte, ce qui rend permanentes toutes les modifications faites sur la base de données au cours de cette transaction.

Ceci ferme la transaction. Une nouvelle transaction peut être ouverte en envoyant une requête à l'aide de ingres_query().

Vous pouvez aussi faire en sorte que le serveur valide automatiquement les changements après chaque requête en appelant ingres_autocommit() avant l'ouverture d'une transaction.

Voir aussi
ingres_query(),
ingres_rollback() et
ingres_autocommit().

Précédent | Sommaire | Suivant
ingres_close | Niveau supérieur | ingres_connect


ingres_connect

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_connect -- Ouvre une connexion sur un serveur Ingres

Description

resource ingres_connect ( [string database [, string username [, string password [, array options]]]] )

ingres_connect() retourne un lien représentant une ressource Ingres en cas de succès, et FALSE sinon.

ingres_connect() établit une connexion avec la base de données Ingres désignée par database, qui suit la syntaxe [node_id::]dbname[/svr_class].

Si certains paramétres sont manquants, ingres_connect() utilise les valeurs de ingres.default_database, ingres.default_user et ingres.default_password indiquées dans php.ini.

La connexion est fermée lorsque le script se termine ou en cas d'appel à ingres_close().

Toutes les autres fonctions Ingres utilisent le dernier lien ouvert comme lien par défaut, il n'est donc nécessaire de conserver la valeur de retour qu'en cas d'utilisation de plus d'un lien en même temps.

Options pour la fonction ingres_connect()

Nom de l'option | Description
date_century_boundary | Le seuil pour lequel une année sur 2 chiffres est déterminée pour être dans le siècle courant ou dans le siècle prochain. Identique à II_DATE_CENTURY_BOUNDARY.
group | Spécifie d'identifiant de groupe de l'utilisateur. Equivaut au drapeau '-G'
role | L'identifiant du rôle de l'application. Si un mot de passe de rôle est nécessaire, la valeur du paramètre devra être spécifiée sous la forme "rôle/mot de passe"
effective_user | Le compte utilisateur ingres à personifier. Equivalent au drapeau '-u'
dbms_password | Le mot de passe interne de la base de données pour l'utilisateur se connectant à Ingres
table_structure La structure par défaut pour les nouvelles tables. Les valeurs valides pour table_structure sont :

  • INGRES_STRUCTURE_BTREE

  • INGRES_STRUCTURE_HASH

  • INGRES_STRUCTURE_HEAP

  • INGRES_STRUCTURE_ISAM

  • INGRES_STRUCTURE_CBTREE

  • INGRES_STRUCTURE_CISAM

  • INGRES_STRUCTURE_CHASH

  • INGRES_STRUCTURE_CHEAP

index_structure La structure par défaut pour les indexes secondaires. Les valeurs valides pour index_structure sont :

  • INGRES_STRUCTURE_CBTREE

  • INGRES_STRUCTURE_CISAM

  • INGRES_STRUCTURE_CHASH

  • INGRES_STRUCTURE_BTREE

  • INGRES_STRUCTURE_HASH

  • INGRES_STRUCTURE_ISAM

login_local | Détermine la façon dont sont traités l'identifiant de l'utilisateur et le mot de passe lorsqu'un VNODE est inclu dans la chaîne cible de la base de données. Si définit à TRUE, l'identifiant de l'utilisateur et le mot de passe sont utilisés pour accéder localement au VNODE et les informations d'identification du VNODE sont utilisées pour établir la connexion DBMS. Si définit à FALSE, l'identifiant du processus utilisateur est utilisé pour accéder au VNODE et l'identifiant de l'utilisateur pour la connexion et le mot de passe sont utilisés à la place des informations d'identification VNODE pour établir la connexion DBMS. Ce paramètre est ignoré si aucun VNODE n'est inclu dans la chaîne cible de la base de données. Par défaut, ce paramètre vaut FALSE.
timezone | Contrôle le fuseau horaire de la session. Si aucun n'est défini, ce paramètre vaudra la valeur définie par la constante II_TIMEZONE_NAME. Si la constante II_TIMEZONE_NAME n'est pas définie, la valeur NA-PACIFIC (GMT-8) sera utilisée.
date_format Définit les formats d'entrée et de sortie autorisées pour les dates Ingres. Par défaut, la valeur est définie par la constante II_DATE_FORMAT. Si la constante II_DATE_FORMAT n'est pas définie, le format par défaut de la date sera US, e.g. mm/dd/yy. Les valeurs valides pour date_format sont :

  • INGRES_DATE_DMY

  • INGRES_DATE_FINISH

  • INGRES_DATE_GERMAN

  • INGRES_DATE_ISO

  • INGRES_DATE_ISO4

  • INGRES_DATE_MDY

  • INGRES_DATE_MULTINATIONAL

  • INGRES_DATE_MULTINATIONAL4

  • INGRES_DATE_YMD

  • INGRES_DATE_US

decimal_separator | Le caractère utilisé comme séparateur des décimales
money_lort Si le signe pour la monnaie doit se trouver avant ou après la valeur. Les valeurs valides pour money_lort sont :

  • INGRES_MONEY_LEADING

  • INGRES_MONEY_TRAILING

money_sign | Le symbole à utiliser avec le type de données MONEY
money_precision | La précision pour le type de données MONEY
float4_precision | La précision pour le type de données FLOAT4
float8_precision | La précision pour le type de données FLOAT8
blob_segment_length | La quantité de données à récupérer en une fois lorsque l'on récupère des données de type BLOB/CLOB. Par défaut, ce paramètre vaut 4096 octets.

Exemple 1. Exemple avec ingres_connect()

<?php
$link = ingres_connect("mydb", "user", "pass")
or die("Erreur de connexion");
print("Connexion réussie");
ingres_close($link);
?>

Exemple 2. Exemple avec ingres_connect(), en utilisant le lien par défaut

<?php
ingres_connect("madb", "user", "pass")
or die("Erreur de connexion");
echo 'Connexion réussie';
ingres_close();
?>

Voir aussi ingres_pconnect() et ingres_close().

Précédent | Sommaire | Suivant
ingres_commit | Niveau supérieur | ingres_cursor


ingres_fetch_array

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_fetch_array -- Récupère une ligne de résultat Ingres dans un tableau

Description

array ingres_fetch_array ( [int result_type [, resource link]] )

ingres_fetch_array() renvoie un tableau correspondant à la ligne récupérée, ou FALSE s'il n'y a plus de ligne à récupérer.

Cette fonction est une version améliorée de ingres_fetch_row(). En plus de stocker les données dans un tableau à indices numériques, elle peut aussi les enregistrer dans un tableau associatif, en utilisant les noms des champs comme indices.

Si plusieurs colonnes ont le même nom, la dernière colonne aura la priorité. Pour accéder aux autres colonnes du même nom, vous devez utiliser l'index numérique, ou faire un alias pour chaque colonne.

Exemple 1. Exemple avec ingres_fetch_array()

<?php

ingres_query("select t1.f1 as foo t2.f1 as bar from t1, t2");
$result = ingres_fetch_array();
$foo = $result["foo"];
$bar = $result["bar"];

?>

result_type peut valoir INGRES_NUM pour un tableau à indices numériques, INGRES_ASSOC pour un tableau associatif, ou INGRES_BOTH (défaut) pour un tableau mixte (accessible selon les deux méthodes).

Du point de vue de la rapidité, cette fonction est identique à ingres_fetch_object(), et presque aussi rapide que ingres_fetch_row() (la différence est insignifiante).

Exemple 2. Exemple pour ingres_fetch_array()

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");
while ($row = ingres_fetch_array()) {
    echo $row["user_id"]; // utilisation du tableau associatif
    echo $row["fullname"];
    echo $row[1];         // utilisation du tableau à indices numériques
    echo $row[2];
}
?>

Voir aussi
ingres_query(),
ingres_num_fields(),
ingres_field_name(),
ingres_fetch_object() et
ingres_fetch_row().

Précédent | Sommaire | Suivant
ingres_errsqlstate | Niveau supérieur | ingres_fetch_object


ingres_fetch_object

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_fetch_object -- Récupère une ligne de résultat dans un objet

Description

object ingres_fetch_object ( [int result_type [, resource link]] )

ingres_fetch_object() renvoie un objet correspondant à la ligne (tuple) récupérée, ou FALSE s'il n'y a plus de ligne à récupérer.

ingres_fetch_object() est similaire à ingres_fetch_array(), avec une différence : la valeur de retour est un objet et non un tableau. Indirectement, cela signifie qu'il n'est possible d'accéder aux données qu'avec les noms des champs, et pas avec leur numéro (les nombres ne sont pas des noms valides de propriété).

Le paramètre optionnel result_type est une constante qui peut prendre les valeurs INGRES_ASSOC, INGRES_NUM, et INGRES_BOTH (par défaut).

Du point de vue de la rapidité, cette fonction est identique à ingres_fetch_array(), et presque aussi rapide que ingres_fetch_row() (la différence est insignifiante).

Exemple 1. Exemple pour ingres_fetch_object()

<?php
ingres_connect($database, $user, $password);
ingres_query("select * from table");
while ($row = ingres_fetch_object()) {
    echo $row->user_id;
    echo $row->fullname;
}
?>

Voir aussi
ingres_query(),
ingres_num_fields(),
ingres_field_name(),
ingres_fetch_array() et
ingres_fetch_row().

Précédent | Sommaire | Suivant
ingres_fetch_array | Niveau supérieur | ingres_fetch_row


ingres_fetch_row

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_fetch_row -- Récupère une ligne de résultat dans un tableau énuméré

Description

array ingres_fetch_row ( [resource link] )

ingres_fetch_row() renvoie un tableau correspondant à la ligne récupérée, ou FALSE s'il n'y a plus de ligne à récupérer. La ligne est stockée dans un tableau à indices numériques, le premier champ étant à l'indice 1.

Les appels successifs à ingres_fetch_row() retournent les lignes suivantes du résultat, ou FALSE s'il n'y a plus de lignes.

Exemple 1. Exemple avec ingres_fetch_row()

<?php
ingres_connect($database, $user, $password);

ingres_query ("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

Voir aussi
ingres_num_fields(),
ingres_query(),
ingres_fetch_array() et
ingres_fetch_object().

Précédent | Sommaire | Suivant
ingres_fetch_object | Niveau supérieur | ingres_field_length


ingres_field_length

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_field_length -- Retourne la taille d'un champ

Description

int ingres_field_length ( int index [, resource link] )

ingres_field_length() retourne la taille d'un champ. Il s'agit du nombre d'octets utilisés par le serveur pour stocker ce champ. Pour plus d'informations, voir le Guide de l'utilisateur d'Ingres/OpenAPI - Annexe C.

index est le numéro du champ et doit être compris entre 1 et la valeur donnée par ingres_num_fields().

Voir aussi
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() et
ingres_fetch_row().

Précédent | Sommaire | Suivant
ingres_fetch_row | Niveau supérieur | ingres_field_name


ingres_field_name

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_field_name -- Retourne le nom d'un champ dans le résultat d'une requête

Description

string ingres_field_name ( int index [, resource link] )

ingres_field_name() retourne le nom d'un champ dans le résultat d'une requête, ou FALSE en cas d'échec.

index est le numéro du champ et doit être compris entre 1 et la valeur donnée par ingres_num_fields().

Voir aussi
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() et
ingres_fetch_row().

Précédent | Sommaire | Suivant
ingres_field_length | Niveau supérieur | ingres_field_nullable


ingres_field_nullable

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_field_nullable -- Teste si un champ est annulable

Description

bool ingres_field_nullable ( int index [, resource link] )

ingres_field_nullable() retourne TRUE si le champ peut recevoir la valeur NULL et FALSE dans le cas contraire.

index est le numéro du champ et doit être compris entre 1 et la valeur donnée par ingres_num_fields().

Voir aussi
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() et
ingres_fetch_row().

Précédent | Sommaire | Suivant
ingres_field_name | Niveau supérieur | ingres_field_precision


ingres_field_precision

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_field_precision -- Retourne la précision d'un champ

Description

int ingres_field_precision ( int index [, resource link] )

ingres_field_precision() retourne la précision d'un champ. Cette valeur est utilisée uniquement pour les types de données SQL décimal, float et money. Pour plus d'informations, voir le Guide de l'utilisateur d'Ingres/OpenAPI - Annexe C.

index est le numéro du champ et doit être compris entre 1 et la valeur donnée par ingres_num_fields().

Voir aussi
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() et
ingres_fetch_row().

Précédent | Sommaire | Suivant
ingres_field_nullable | Niveau supérieur | ingres_field_scale


ingres_field_scale

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_field_scale -- Retourne l'échelle d'un champ

Description

int ingres_field_scale ( int index [, resource link] )

ingres_field_scale() retourne l'échelle (scale) d'un champ. Cette valeur n'est utilisée que pour le type de données SQL décimal. Pour plus d'informations, voir le Guide de l'utilisateur d'Ingres/OpenAPI - Annexe C.

index est le numéro du champ et doit être compris entre 1 et la valeur donnée par ingres_num_fields().

Voir aussi
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() et
ingres_fetch_row().

Précédent | Sommaire | Suivant
ingres_field_precision | Niveau supérieur | ingres_field_type


ingres_field_type

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_field_type -- Retourne le type d'un champ dans le résultat d'une requête

Description

string ingres_field_type ( int index [, resource link] )

ingres_field_type() retourne le type d'un champ dans le résultat d'une requête, ou FALSE en cas d'échec. Exemples de types renvoyés par cette fonction : "IIAPI_BYTE_TYPE", "IIAPI_CHA_TYPE", "IIAPI_DTE_TYPE", "IIAPI_FLT_TYPE", "IIAPI_INT_TYPE", "IIAPI_VCH_TYPE". Certains de ces types correspondent à plus d'un type SQL, selon la taille du champ (voir ingres_field_length()). Par exemple "IIAPI_FLT_TYPE" peut être un float4 ou un float8. Pour plus d'informations, voir le Guide de l'utilisateur d'Ingres/OpenAPI - Annexe C.

index est le numéro du champ et doit être compris entre 1 et la valeur donnée par ingres_num_fields().

Voir aussi
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() et
ingres_fetch_row().

Précédent | Sommaire | Suivant
ingres_field_scale | Niveau supérieur | ingres_num_fields


ingres_num_fields

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_num_fields -- Retourne le nombre de champs renvoyés par la dernière requête

Description

int ingres_num_fields ( [resource link] )

ingres_num_fields() retourne le nombre de champs du résultat renvoyé par le serveur Ingres après un appel à ingres_query().

Voir aussi
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() et
ingres_fetch_row().

Précédent | Sommaire | Suivant
ingres_field_type | Niveau supérieur | ingres_num_rows


ingres_num_rows

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_num_rows -- Retourne le nombre de lignes affectées ou renvoyées par la dernière requête

Description

int ingres_num_rows ( [resource link] )

Pour les requêtes DELETE, INSERT, UPDATE ingres_num_rows() retourne le nombre de lignes (tuples) affectées par la requête. Pour les autres requêtes, ingres_num_rows() retourne le nombre de lignes du résultat de la requête.

Note : Cette fonction est conçue principalement pour obtenir le nombre de tuples modifiés dans la base de données. Si cette fonction est appelée avant d'utiliser ingres_fetch_array(), ingres_fetch_object() ou ingres_fetch_row(), le serveur efface les données du résultat et le script ne pourra plus les obtenir.

Il faut dans ce cas récupérer les données du résultat en utilisant une de ces 3 fonctions dans une boucle jusqu'à ce qu'elle renvoie FALSE, ce qui indique qu'il n'y a plus de résultats à récupérer.

Voir aussi
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() et
ingres_fetch_row().

Précédent | Sommaire | Suivant
ingres_num_fields | Niveau supérieur | ingres_pconnect


ingres_pconnect

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_pconnect -- Ouvre une connexion persistante à un serveur Ingres

Description

resource ingres_pconnect ( [string database [, string username [, string password]]] )

ingres_pconnect() retourne une ressource représentant un lien (link) Ingres II en cas de succès, et FALSE sinon.

Voir ingres_connect() pour le détail des paramètres et des exemples. Il n'y a que 2 différences entre ingres_pconnect() et ingres_connect() : Tout d'abord, à la connexion, la fonction cherche un lien persistant déjà ouvert avec les mêmes paramètres. Si un tel lien est trouvé, un identificateur pour ce lien est retourné au lieu d'établir une nouvelle connexion. Ensuite, la connexion vers le serveur Ingres n'est pas fermée lorsque le script se termine. En fait, le lien reste ouvert pour pouvoir être réutilisé (ingres_close() ne ferme pas les liens établis avec ingres_pconnect()). C'est pourquoi ce type de lien est dit 'persistant'.

Voir aussi ingres_connect() et ingres_close().

Précédent | Sommaire | Suivant
ingres_num_rows | Niveau supérieur | ingres_query


ingres_query

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_query -- Envoie une requête SQL à un serveur Ingres II

Description

bool ingres_query ( string query [, resource link] )

ingres_query() retourne TRUE en cas de succès, et FALSE sinon.

ingres_query() envoie la requête query au serveur Ingres. La requête doit être valide (voir le guide de référence SQL pour Ingres).

La requête s'ajoute à la transaction en cours. S'il n'y a pas de transaction ouverte, ingres_query() en ouvre une nouvelle. Pour fermer une transaction, vous pouvez soit appeler ingres_commit() pour valider les changements effectués sur la base de données ou ingres_rollback() pour les annuler. Lorsque le script se termine, toute transaction ouverte est annulée (par appel à ingres_rollback()). Vous pouvez aussi utiliser ingres_autocommit() avant d'ouvrir une transaction pour que chaque requête SQL soit validée immédiatement et automatiquement.

Certains types de requêtes SQL ne peuvent pas être envoyés par ingres_query() :

  • CLOSE (voir ingres_close()).

  • COMMIT (voir ingres_commit()).

  • CONNECT (voir ingres_connect()).

  • DISCONNECT (voir ingres_close()).

  • get dbevent

  • PREPARE TO COMMIT

  • ROLLBACK (voir ingres_rollback()).

  • savepoint

  • SET AUTOCOMMIT (voir ingres_autocommit()).

  • Les requêtes relatives aux curseurs ne sont pas supportées.

Exemple 1. Exemple avec ingres_query()

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

Voir aussi
ingres_fetch_array(),
ingres_fetch_object(),
ingres_fetch_row(),
ingres_commit(),
ingres_rollback() et
ingres_autocommit().

Précédent | Sommaire | Suivant
ingres_pconnect | Niveau supérieur | ingres_rollback


ingres_rollback

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_rollback -- Annule une transaction

Description

bool ingres_rollback ( [resource link] )

ingres_rollback() annule (roll back) la transaction ouverte, ce qui annule les modifications faites sur la base de données au cours de cette transaction.

Ceci ferme la transaction. Une nouvelle transaction peut être ouverte en envoyant une requête à l'aide de ingres_query().

Voir aussi
ingres_query(),
ingres_commit() et
ingres_autocommit().

Précédent | Sommaire | Suivant
ingres_query | Niveau supérieur | IRC


IRC

Manuel PHP
Précédent Suivant

LXXI. IRC

Introduction

Avec IRCG, vous pouvez rapidement traiter des flots de données XML pour des milliers d'utilisateurs simultanés. Vous pouvez l'utiliser pour mettre en place rapidement des plates-formes puissantes et extensibles, pour gérer des jeux en ligne ou des salons de discussions. IRCG dispose aussi d'un mode sans flux, où une application traite les données pour fournir des fichiers aux formats tels que cHTML (i-mode) ou WML (WAP). Ces fichiers statiques sont ensuite utilisés pour améliorer les performances du serveur web.

Jusqu'en v4, IRCG fonctionne sur ces systèmes d'exploitation :

  • AIX

  • FreeBSD

  • HP-UX

  • Irix

  • Linux

  • Solaris

  • Tru64

  • Windows

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Installation

Les instructions d'installation détaillées sont disponibles sur le site : http://www.schumann.cx/ircg/. Nous vous recommandons vivement d'utiliser le script d'installation fourni.

Ce n'est pas recommandé, mais vous pouvez essayer d'ajouter le support IRCG vous même. Spécifiez le chemin vers le script de configuration IRCG, --with-ircg-config=path/to/irc-config et, ajoutez également --with-ircg à votre ligne de configuration PHP.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
ircg_channel_mode -- Modifie les flags du canal
ircg_disconnect -- Ferme la connexion avec un serveur
ircg_eval_ecmascript_params -- Décode une liste de paramètres JS-encodés
ircg_fetch_error_msg -- Retourne l'erreur rencontrée par la dernière opération IRCG
ircg_get_username -- Retourne le nom d'utilisateur pour la connexion
ircg_html_encode -- Prépare des données IRC pour l'affichage HTML
ircg_ignore_add -- Ajoute un utilisateur sur la liste des utilisateurs indésirables
ircg_ignore_del -- Supprime un utilisateur de la liste des utilisateurs indésirables
ircg_invite -- Invite un utilisateur à rejoindre un canal
ircg_is_conn_alive -- Vérifie l'état de la connexion
ircg_join -- Rejoint un canal IRC
ircg_kick -- Expulse un utilisateur d'un canal
ircg_list -- Liste le sujet et le nombre d'utilisateurs d'un ou plusieurs canaux
ircg_lookup_format_messages -- Sélectionne un format d'affichage pour les messages IRC
ircg_lusers -- Statistiques réseau IRC
ircg_msg -- Envoie un message à un canal ou un utilisateur
ircg_names -- Récupère les noms d'utilisateurs visibles
ircg_nick -- Change de nom sur le serveur
ircg_nickname_escape -- Encode les caractères spéciaux dans un pseudo pour être compatible avec IRC
ircg_nickname_unescape -- Décode un pseudo encodé
ircg_notice -- Envoie une note (notice) à un utilisateur
ircg_oper -- Élève les privilèges au rang d'opérateur IRC
ircg_part -- Quitte le canal
ircg_pconnect -- Connecte à un serveur IRC
ircg_register_format_messages -- Enregistre un nouveau format d'affichage des messages IRC
ircg_set_current -- Prépare la connexion courante pour l'affichage
ircg_set_file -- Configure le journal de connexion
ircg_set_on_die -- Configure une action à exécuter lorsque la connexion IRC se termine
ircg_topic -- Modifie le sujet (topic) d'un canal
ircg_who -- Interroge le serveur sur les informations WHO
ircg_whois -- Requiert les informations sur un utilisateur

Précédent | Sommaire | Suivant
ingres_rollback | Niveau supérieur | ircg_channel_mode


ircg_channel_mode

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_channel_mode -- Modifie les flags du canal

Description

bool ircg_channel_mode ( resource connection, string channel, string mode_spec, string nick )

ircg_channel_mode() modifie les flags du canal channel, sur le serveur channel. Les nouveaux flags sont passés dans le paramètre mode_spec et sont appliqués à l'utilisateur nick.

Les flags sont activés ou désactivés en spécifiant un caractère de mode et en le préfixant par un caractère plus (+) ou un caractère moins (-). Par exemple, le mode opérateur est donné à un utilisateur avec la syntaxe '+o' et retiré au même utilisateur avec la syntaxe '-o', passé dans le paramètre mode_spec.

Précédent | Sommaire | Suivant
IRC | Niveau supérieur | ircg_disconnect


ircg_disconnect

(PHP 4 >= 4.0.4, PHP 5 <= 5.0.4)

ircg_disconnect -- Ferme la connexion avec un serveur

Description

bool ircg_disconnect ( resource connection, string reason )

ircg_disconnect() ferme la connexion ouverte précédemment avec un serveur grâce à la fonction ircg-pconnect(), et représentée par connection.

Voir aussi ircg_pconnect().

Précédent | Sommaire | Suivant
ircg_channel_mode | Niveau supérieur | ircg_eval_ecmascript_params


ircg_eval_ecmascript_params

(PHP 4 >= 4.3.0, PHP 5 <= 5.0.4)

ircg_eval_ecmascript_params -- Décode une liste de paramètres JS-encodés

Description

array ircg_eval_ecmascript_params ( string params )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Depuis le fichier source ircg_eval_ecmascript_params :
   /*
    * State 0: Looking for ' or digit
    * State 1: Assembling parameter inside '..'
    * State 2: After escape sign: Copies single char verbatim, go to 1
    * State 3: Assembling numeric para, no quotation
    * State 4: Looking for ",", skipping whitespace
    */

Voir aussi ircg_lookup_format_messages().

Précédent | Sommaire | Suivant
ircg_disconnect | Niveau supérieur | ircg_fetch_error_msg


ircg_fetch_error_msg

(PHP 4 >= 4.1.0, PHP 5 <= 5.0.4)

ircg_fetch_error_msg -- Retourne l'erreur rencontrée par la dernière opération IRCG

Description

array ircg_fetch_error_msg ( resource connection )

ircg_fetch_error_msg() retourne l'erreur rencontrée par la dernière opération sur la connexion connection.

Note : Le code d'erreur est stocké dans le premier élément du tableau et le message d'erreur dans le second. Le code d'erreur est équivalent à ceux définis par la RFC 2812.

Exemple 1. Exemple avec ircg_fetch_error_msg()

<?php
if (!ircg_join ($id, "#php")) {
    $error = ircg_fetch_error_msg($id);
    echo "Can't join channel #php. Error code:
            $error[0] Description: $error[1]";
}
?>

Précédent | Sommaire | Suivant
ircg_eval_ecmascript_params | Niveau supérieur | ircg_get_username


ircg_get_username

(PHP 4 >= 4.1.0, PHP 5 <= 5.0.4)

ircg_get_username -- Retourne le nom d'utilisateur pour la connexion

Description

string ircg_get_username ( resource connection )

ircg_get_username() retourne le nom d'utilisateur pour la connexion connection. Retourne FALSE si la connexion connection est terminée ou est invalide.

Précédent | Sommaire | Suivant
ircg_fetch_error_msg | Niveau supérieur | ircg_html_encode


ircg_html_encode

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_html_encode -- Prépare des données IRC pour l'affichage HTML

Description

string ircg_html_encode ( string html_string [, bool auto_links [, bool conv_br]] )

ircg_html_encode() encode la chaîne HTML html_string pour l'affichage. Cela impose à l'interface interne d'IRCG de reformater les données reçues du serveur IRC. Cette fonction encodera les balises de formatage comme les couleurs ou les fonts mais protégère certaines entitées.

Voir aussi

Précédent | Sommaire | Suivant
ircg_get_username | Niveau supérieur | ircg_ignore_add


ircg_ignore_add

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_ignore_add -- Ajoute un utilisateur sur la liste des utilisateurs indésirables

Description

void ircg_ignore_add ( resource connection, string nick )

ircg_ignore_add() ajoute l'utilisateur nick dans votre liste d'utilisateurs indésirables, sur le serveur connection. Tous les messages qui vous sont envoyés par cet utilisateur seront ignorés.

Voir aussi ircg_ignore_del().

Précédent | Sommaire | Suivant
ircg_html_encode | Niveau supérieur | ircg_ignore_del


ircg_ignore_del

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_ignore_del -- Supprime un utilisateur de la liste des utilisateurs indésirables

Description

bool ircg_ignore_del ( resource connection, string nick )

ircg_ignore_del() supprime l'utilisateur nick de la liste des utilisateurs indésirables, sur le serveur connection.

Voir aussi ircg_ignore_add().

Précédent | Sommaire | Suivant
ircg_ignore_add | Niveau supérieur | ircg_invite


ircg_invite

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

ircg_invite -- Invite un utilisateur à rejoindre un canal

Description

bool ircg_invite ( resource connection, string channel, string nickname )

ircg_invite() invitera l'utilisateur nickname à rejoindre le canal channel. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ircg_ignore_del | Niveau supérieur | ircg_is_conn_alive


ircg_is_conn_alive

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_is_conn_alive -- Vérifie l'état de la connexion

Description

bool ircg_is_conn_alive ( resource connection )

ircg_is_conn_alive() retourne TRUE si la connexion connection est toujours active et fonctionnelle, et FALSE si elle n'est plus disponible.

Précédent | Sommaire | Suivant
ircg_invite | Niveau supérieur | ircg_join


ircg_join

(PHP 4 >= 4.0.4, PHP 5 <= 5.0.4)

ircg_join -- Rejoint un canal IRC

Description

bool ircg_join ( resource connection, string channel [, string key] )

ircg_join() rejoint le canal channel sur le serveur représenté par connection. IRCG peut optionnellement passer la clé key du canal.

Précédent | Sommaire | Suivant
ircg_is_conn_alive | Niveau supérieur | ircg_kick


ircg_kick

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_kick -- Expulse un utilisateur d'un canal

Description

bool ircg_kick ( resource connection, string channel, string nick, string reason )

ircg_kick() expulse l'utilisateur nick du canal channel sur le serveur connection. Le paramètre reason doit contenir une brève explication de la raison de cette expulsion.

Précédent | Sommaire | Suivant
ircg_join | Niveau supérieur | ircg_list


ircg_list

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

ircg_list -- Liste le sujet et le nombre d'utilisateurs d'un ou plusieurs canaux

Description

bool ircg_list ( resource connection, string channel )

ircg_list() demandera le topic et le nombre d'utilisateurs d'un ou plusieurs canaux. La réponse est envoyée à la sortie définie par ircg_set_file() ou ircg_set_current(). Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec ircg_list()

<?php

// Connexion au serveur
$id = ircg_pconnect($nickname, $ip, $port);

// définition d'un fichier pour l'affichage
ircg_set_file($id, 'irc_output.html');

// essai de rejoindre un canal
if (!ircg_join($id, $channel)) {
    echo "Echec de /join $channel<br />";
}

// envoie une commande list
ircg_list($id, $channel);

// attente pour l'affichage
sleep(5);

// déconnexion
ircg_disconnect($id,'Au revoir le monde !');

// affichage de n'importe quoi
readfile('irc_output.html');

?>

L'exemple ci-dessus va afficher :

...
Channel #channel has n users and the topic is 'Topic'
End of LIST
...

Voir aussi
ircg_set_file(),
ircg_set_current(), et
ircg_who().

Précédent | Sommaire | Suivant
ircg_kick | Niveau supérieur | ircg_lookup_format_messages


ircg_lookup_format_messages

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_lookup_format_messages -- Sélectionne un format d'affichage pour les messages IRC

Description

bool ircg_lookup_format_messages ( string name )

ircg_lookup_format_messages() sélectionne un format d'affichage pour les messages et les événements. Les formats peuvent être prédéfinis avec la fonction ircg_register_format_messages(). Un format par défaut, appelé ircg, est toujours disponible.

Voir aussi ircg_register_format_messages().

Précédent | Sommaire | Suivant
ircg_list | Niveau supérieur | ircg_lusers


ircg_lusers

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

ircg_lusers -- Statistiques réseau IRC

Description

bool ircg_lusers ( resource connection )

ircg_lusers() soumet une requête de statistiques du nombre d'utilisateurs connectés au réseau via la connexion connection. La réponse est envoyée à la sortie définie par ircg_set_file() ou ircg_set_current(). Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi ircg_set_file() et ircg_set_current().

Précédent | Sommaire | Suivant
ircg_lookup_format_messages | Niveau supérieur | ircg_msg


ircg_msg

(PHP 4 >= 4.0.4, PHP 5 <= 5.0.4)

ircg_msg -- Envoie un message à un canal ou un utilisateur

Description

bool ircg_msg ( resource connection, string recipient, string message [, bool suppress] )

ircg_msg() envoie le message message à l'utilisateur ou au canal sur le serveur connection. Un destinataire recipient commençant par # ou & représente un canal IRC, sinon, un utilisateur.

En donnant la valeur TRUE au paramètre suppress, vous éviterez que vos propres messages soient affichés sur votre connexion connection.

Précédent | Sommaire | Suivant
ircg_lusers | Niveau supérieur | ircg_names


ircg_names

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

ircg_names -- Récupère les noms d'utilisateurs visibles

Description

bool ircg_names ( int connection, string channel [, string target] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi ircg_get_username() et ircg_lusers().

Précédent | Sommaire | Suivant
ircg_msg | Niveau supérieur | ircg_nick


ircg_nick

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_nick -- Change de nom sur le serveur

Description

bool ircg_nick ( resource connection, string nick )

ircg_nick() change le nom (nick) que vous portez sur la connexion connection, si ce nom n'est pas pris.

ircg_nick() retourne TRUE en cas de succès, et FALSE sinon.

Précédent | Sommaire | Suivant
ircg_names | Niveau supérieur | ircg_nickname_escape


ircg_nickname_escape

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

ircg_nickname_escape -- Encode les caractères spéciaux dans un pseudo pour être compatible avec IRC

Description

string ircg_nickname_escape ( string nick )

ircg_nickname_escape() retourne le pseudo nick après l'avoir encodé pour le rendre compatible avec IRC.

Voir aussi ircg_nickname_unescape().

Précédent | Sommaire | Suivant
ircg_nick | Niveau supérieur | ircg_nickname_unescape


ircg_nickname_unescape

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

ircg_nickname_unescape -- Décode un pseudo encodé

Description

string ircg_nickname_unescape ( string nick )

ircg_nickname_unescape() retourne le pseudo nick après l'avoir décodé.

Voir aussi ircg_nickname_escape().

Précédent | Sommaire | Suivant
ircg_nickname_escape | Niveau supérieur | ircg_notice


ircg_notice

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_notice -- Envoie une note (notice) à un utilisateur

Description

bool ircg_notice ( resource connection, string nick, string message )

ircg_notice() envoie le message message à l'utilisateur nick sur le serveur connection. Consultez votre documentation IRC pour connaître la différence exacte entre un message MSG et une note NOTICE.

Précédent | Sommaire | Suivant
ircg_nickname_unescape | Niveau supérieur | ircg_oper


ircg_oper

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

ircg_oper -- Élève les privilèges au rang d'opérateur IRC

Description

bool ircg_oper ( resource connection, string name, string password )

ircg_oper() identifie un utilisateur enregistré pour connection comme un opérateur IRC. Les paramètres name et password doivent correspondre à un compte d'opérateur IRC. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ircg_notice | Niveau supérieur | ircg_part


ircg_part

(PHP 4 >= 4.0.4, PHP 5 <= 5.0.4)

ircg_part -- Quitte le canal

Description

bool ircg_part ( resource connection, string channel )

ircg_part() quitte le canal channel sur le serveur représenté par connection.

Précédent | Sommaire | Suivant
ircg_oper | Niveau supérieur | ircg_pconnect


ircg_pconnect

(PHP 4 >= 4.0.4, PHP 5 <= 5.0.4)

ircg_pconnect -- Connecte à un serveur IRC

Description

resource ircg_pconnect ( string username [, string server_ip [, int server_port [, string msg_format [, array ctcp_messages [, array user_settings [, bool bailout_on_trivial]]]]]] )

ircg_pconnect() essaie d'établir une connexion avec le serveur IRC server_ip, et retourne une ressource de connexion pour utilisation ultérieure.

Le seul paramètre obligatoire est username, qui représente le nom d'utilisateur IRC initial. server_ip et server_port sont optionnels et, par défaut, valent respectivement 127.0.0.1 (hôte local) et 6667.

Note : Actuellement, le paramètre server_ip n'effectue aucune résolution de nom et n'accepte que les IP au format numérique.

Vous pouvez personnaliser l'affichage des messages IRC et les événements qui s'y rattachent avec les formats de messages générés par la fonction ircg_register_format_messages(), en spécifiant le format dans msg_format.

Si vous voulez traiter les messages CTCP comme des messages ACTION (/me), vous devez définir un type CTCP (e.g. ACTION) en une chaîne personnalisée. Faites le en passant un tableau associatif au paramètre ctcp_messages. Les clés de ce tableau sont de type CTCP et les valeurs respectives sont dans un message formaté.

Vous pouvez définir les marques "ident", "password", et "realname" qui sont envoyées au serveur IRC en les définissant dans un tableau associatif passé au paramètre user_settings.

Voir aussi
ircg_disconnect(),
ircg_is_conn_alive() et
ircg_register_format_messages().

Précédent | Sommaire | Suivant
ircg_part | Niveau supérieur | ircg_register_format_messages


ircg_register_format_messages

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_register_format_messages -- Enregistre un nouveau format d'affichage des messages IRC

Description

bool ircg_register_format_messages ( string name, array messages )

ircg_register_format_messages() vous permet de personnaliser l'affichage de vos messages IRC. Vous pouvez même enregistrer plusieurs formats et passer de l'un à l'autre à la volée avec ircg_lookup_format_messages().

  • Message public brut

  • Message privé reçu

  • Message privé envoyé

  • Un utilisateur quitte le canal

  • Un utilisateur rejoint le canal

  • Un utilisateur est expulsé du canal

  • Le sujet du canal est modifié

  • Erreur

  • Erreur fatale

  • Rejoint la fin de la liste (??? : Join list end)

  • Se quitte soi-même (??? : Self part)

  • Un utilisateur s'expulse lui-même

  • Un utilisateur quitte sa connexion

  • Début de regroupement en masse

  • Elément de regroupement en masse

  • Fin de regroupement en masse

  • Whois utilisateur

  • Whois serveur

  • Whois inactif

  • Whois canal

  • Fin de whois

  • Changement de statut Voice pour un utilisateur

  • Changement de statut d'opérateur pour un utilisateur

  • Liste d'utilisateurs indésirables

  • Fin de liste d'utilisateurs indésirables

  • %f - origine

  • %t - destination

  • %c - canal

  • %r - message brut

  • %m - message encodé

  • %j - message encodé js

  • 1 - encodage mod

  • 2 - nickname decode

Voir aussi ircg_lookup_format_messages().

Précédent | Sommaire | Suivant
ircg_pconnect | Niveau supérieur | ircg_set_current


ircg_set_current

(PHP 4 >= 4.0.4, PHP 5 <= 5.0.4)

ircg_set_current -- Prépare la connexion courante pour l'affichage

Description

bool ircg_set_current ( resource connection )

ircg_set_current() sélectionne la connexion courante pour l'affichage dans le contexte d'exécution courant. Tous les messages envoyés par le serveur représenté par connection seront recopiés et envoyés à la sortie standard, avec le format standard, ou bien la chaîne de format spécifiée par la fonction ircg_register_format_messages().

Voir aussi ircg_register_format_messages().

Précédent | Sommaire | Suivant
ircg_register_format_messages | Niveau supérieur | ircg_set_file


ircg_set_file

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

ircg_set_file -- Configure le journal de connexion

Description

bool ircg_set_file ( resource connection, string path )

ircg_set_file() spécifie un journal path dans lequel toutes les sorties de la connexion connection seront écrites. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ircg_set_current | Niveau supérieur | ircg_set_on_die


ircg_set_on_die

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

ircg_set_on_die -- Configure une action à exécuter lorsque la connexion IRC se termine

Description

bool ircg_set_on_die ( resource connection, string host, int port, string data )

Au cas où la connexion connection se termine, IRCG se connectera à host sur le port port (note : host doit être une adresse IPv4, car IRCG ne résout pas les noms d'hôtes), enverra data à la nouvelle connexion et attendra que la connexion distante soit fermée par le serveur. Cela peut être utile pour appeler un script PHP par exemple.

Cette fonctionnalité requiert IRCG 3.

Précédent | Sommaire | Suivant
ircg_set_file | Niveau supérieur | ircg_topic


ircg_topic

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_topic -- Modifie le sujet (topic) d'un canal

Description

bool ircg_topic ( resource connection, string channel, string new_topic )

ircg_topic() change le sujet du canal de channel en new_topic, sur le serveur connection.

Précédent | Sommaire | Suivant
ircg_set_on_die | Niveau supérieur | ircg_who


ircg_who

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

ircg_who -- Interroge le serveur sur les informations WHO

Description

bool ircg_who ( resource connection, string mask [, bool ops_only] )

ircg_who() demandera une liste d'utilisateurs dont le pseudo correspond au masque mask sur le réseau connection. Le paramètre optionnel ops_only réduira la liste aux seuls opérateurs du serveur.

La réponse est envoyée vers la sortie définie par ircg_set_file() ou ircg_set_current(). Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi ircg_set_file(), et ircg_set_current().

Précédent | Sommaire | Suivant
ircg_topic | Niveau supérieur | ircg_whois


ircg_whois

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_whois -- Requiert les informations sur un utilisateur

Description

bool ircg_whois ( resource connection, string nick )

ircg_whois() envoie une requête au serveur connection pour lui demander des informations sur l'utilisateur nick.

Précédent | Sommaire | Suivant
ircg_who | Niveau supérieur | Intégration de Java avec PHP


Intégration de Java avec PHP

Manuel PHP
Précédent Suivant

LXXII. Intégration de Java avec PHP

Introduction

Il y a deux moyens de connecter PHP et Java : soit en intégrant PHP dans un environnement de Servlet Java, ce qui est la solution la plus stable et la plus efficace, soit en intégrant Java directement dans PHP. La première solution est fournie par le module SAPI qui s'interface avec un serveur de Servlet, la dernière par cette extension.

L'extension Java fournit un moyen simple et efficace pour créer et invoquer des méthodes d'un objet Java depuis PHP. La JVM est créée avec JNI, et tout fonctionne en intra-processus.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Pré-requis

Vous avez besoin d'une Machine virtuelle Java installée sur votre machine pour utiliser cette extension.

Installation

Cette extension PECL n'est pas intégrée à PHP.

En PHP 4, les sources de cette extension PECL peuvent être trouvées dans le dossier ext/ avec les sources de PHP ou sur le lien PECL ci-dessous. Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support Java en utilisant l'option de configuration --with-java[=DIR] où DIR représente le dossier d'installation de base de votre JDK. Cette extension ne peut être compiler qu'en tant qu'extension partagée. Les extensions compilées aditionnellement peuvent être trouvées dans php-src/ext/java/README.

Les utilisateurs de Windows doivent activer la bibliothèque php_java.dll dans le php.ini pour pouvoir utiliser ces fonctions. En PHP 4, cette bibliothèque DLL se trouve dans le dossier extensions/ avec les binaires PHP pour Windows téléchargées. La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Note : Pour activer ce module dans un environnement Windows avec PHP <= 4.0.6, vous devez rendre la bibliothèque jvm.dll disponible pour votre PATH système. Aucune autre bibliothèque DLL n'est nécessaire pour les version de PHP > 4.0.6.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
java.class.path | NULL | PHP_INI_ALL |
java.home | NULL | PHP_INI_ALL |
java.library.path | NULL | PHP_INI_ALL |
java.library | JAVALIB | PHP_INI_ALL |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Exemples

Exemple 1. Exemple avec Java

<?php
// créer une instance de la classe Java java.lang.System dans PHP
$system = new Java('java.lang.System');

// accède aux propriétés
echo 'Java version=' . $system->getProperty('java.version') . ' <br />';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br />';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
             $system->getProperty('os.version') . ' on ' .
             $system->getProperty('os.arch') . '<br />';

// Exemple avec java.util.Date
$formater = new Java('java.text.SimpleDateFormat',
                      "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo $formater->format(new Java('java.util.Date'));
?>

Exemple 2. Exemple AWT

<?php
// Cet exemple ne fonctionne qu'en mode CGI.

$frame  = new Java('java.awt.Frame', 'PHP');
$button = new Java('java.awt.Button', 'Hello Java World!');

$frame->add('North', $button);
$frame->validate();
$frame->pack();
$frame->visible = True;

$thread = new Java('java.lang.Thread');
$thread->sleep(10000);

$frame->dispose();
?>
Notes :

  • new Java() crée une nouvelle instance d'une classe, si un constructeur valable est disponible. Si aucun paramètre n'est passé, et le constructeur par défaut est utile pour accéder à ces classes telles que "java.lang.System", qui fournissent leur fonctionnalités via des méthodes statiques.

  • Lors de l'accès aux membres d'une instance, PHP commencera par rechercher les membres Bean, puis les champs publics. En d'autres termes, "print $date.time" sera d'abord résolu par "$date.getTime()", puis par "$date.time";

  • Les membres statiques et d'instance sont accessibles avec la même syntaxe. De plus, si un objet est de type "java.lang.Class", les membres statiques de la classe (champs et méthodes) sont accessibles.

  • Les exceptions sont transformées en alertes PHP, et résultat NULL. Les alertes peuvent être supprimées en préfixant l'appel par l'opérateur >. Les fonctions suivantes peuvent être utilisées pour lire et effacer la dernière erreur remontée :

    • java_last_exception_get()

    • java_last_exception_clear()

  • Les surcharges de fonctions sont des problèmes épineux, étant données les différences de type de valeurs entre les deux /bin/bash: q: command not found mais efficace pour déterminer la meilleur fonction à utiliser.

    De plus, les noms de méthodes ne sont pas sensibles à la casse en PHP, ce qui augmente le nombre de conflits potentiels.

    Une fois qu'une méthode est sélectionnée, les paramètres sont transtypés, avec une perte d'information potentielle non négligeable (par exemple, les nombres à virgules flottante en double précisions seront convertis en booléen).

  • Traditionnellement en PHP, les tableaux et les tables de hashage peuvent être interchangées, et fonctionnent de la même façon. Notez que les tables de hashage de PHP ne peuvent être indexées qu'avec des entiers ou des chaînes, et que le type primitif de tableau de Java ne peut comporter de trous dans les index. Notez aussi que les valeurs sont passées par valeur, ce qui peut être coûteux en mémoire et en temps.

Java Servlet SAPI

L'interface PHP 4 sapi/servlet est construite sur un mécanisme défini par l'extension Java, qui permet à PHP d'être exécuté comme une servlet. L'avantage immédiat d'un point de vue PHP est que les serveurs web qui supportent les servlets gèrent rigoureusement les machines virtuelles. Les instructions d'installation du module Servlet SAPI sont disponibles dans le fichier php4/sapi/README. Notes :

  • Bien que ce code soit prévu pour fonctionner sur n'importe quel serveur à Servlet, il n'a été testé qu'avec le module Apache Jakarta/tomcat (jusqu'à aujourd'hui). Les remontées de bogues, les réussites et les patches nécessaires pour faire fonctionner ce code sur d'autres serveurs sont fortement encouragés !

  • PHP a l'habitude de changer le dossier de travail. Le serveur SAPI/Servlet le changera à nouveau, mais tant que PHP fonctionnera, le moteur de servlet ne pourra pas charger de classes dans le CLASSPATH, si le dossier est spécifié avec un chemin relatif, ou ne pourra pas trouver le dossier d'administration et de compilation des tâches JSP.

Table des matières
java_last_exception_clear -- Efface la dernière exception Java
java_last_exception_get -- Lit la dernière exception Java

Précédent | Sommaire | Suivant
ircg_whois | Niveau supérieur | java_last_exception_clear


java_last_exception_clear

(PHP 4 >= 4.0.2, PECL)

java_last_exception_clear -- Efface la dernière exception Java

Description

void java_last_exception_clear ( void )

Efface la dernière exception Java.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Voir la documentation sur la fonction java_last_exception_get() pour un exemple.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Précédent | Sommaire | Suivant
Intégration de Java avec PHP | Niveau supérieur | java_last_exception_get


java_last_exception_get

(PHP 4 >= 4.0.2, PECL)

java_last_exception_get -- Lit la dernière exception Java

Description

object java_last_exception_get ( void )

Lit la dernière exception Java.

Valeurs de retour

Retourne un objet représentant la dernière exception.

Exemples

L'exemple ci-dessous montre l'utilisation du gestionnaire d'exceptions java depuis PHP :

Exemple 1. Gestionnaire d'exceptions Java

<?php
$stack = new Java('java.util.Stack');
$stack->push(1);

// Cela doit marcher
$result = $stack->pop();
$ex = java_last_exception_get();
if (!$ex) {
  echo "$result\n";
}

// Cela doit échouer (le rapport d'erreurs est supprimé par @)
$result = @$stack->pop();
$ex = java_last_exception_get();
if ($ex) {
  echo $ex->toString();
}

// Efface la dernière exception
java_last_exception_clear();
?>

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Précédent | Sommaire | Suivant
java_last_exception_clear | Niveau supérieur | Fonctions JSON


LDAP

Manuel PHP
Précédent Suivant

LXXV. LDAP

Introduction

LDAP siginifie : 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 fichier, 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

  • OpenLDAP Project

  • LDAP World

Le SDK Netscape contient un guide du programmeur (Programmer's Guide) très utile, au format HTML (et en anglais).

Pré-requis

Vous devez télécharger et compiler les bibliothèques clientes LDAP depuis soit OpenLDAP ou Bind9.net pour assurer le support LDAP.

Installation

Le support LDAP de PHP n'est pas activé par défaut. Vous devez utiliser l'option de configuration --with-ldap[=DIR] lorsque vous compilez PHP, où DIR est le répertoire d'installation du serveur LDAP. Pour activer le support SASL, assurez-vous que l'option de configuration --with-ldap-sasl[=DIR] est utilisée et que le fichier sasl.h existe sur votre système.

Note aux utilisateurs Win32 : Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : libeay32.dll et ssleay32.dll

Note aux utilisateurs Win32 : Les versions antérieures à PHP 4.3.0 nécessitent la bibliothèque libsasl.dll.

Pour pouvoir utiliser les bibliothèques Oracle LDAP, un environnement Oracle propre doit être défini.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
ldap.max_links | "-1" | PHP_INI_SYSTEM |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Types de ressources

La plupart des fonctions LDAP opère sur des ressources retournées par les fonctions LDAP (e.g. ldap_connect() retourne un identifiant de lien LDAP positif requis par plusieurs fonctions LDAP).

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

LDAP_DEREF_NEVER (entier)

LDAP_DEREF_SEARCHING (entier)

LDAP_DEREF_FINDING (entier)

LDAP_DEREF_ALWAYS (entier)

LDAP_OPT_DEREF (entier)

LDAP_OPT_SIZELIMIT (entier)

LDAP_OPT_TIMELIMIT (entier)

LDAP_OPT_PROTOCOL_VERSION (entier)

LDAP_OPT_ERROR_NUMBER (entier)

LDAP_OPT_REFERRALS (entier)

LDAP_OPT_RESTART (entier)

LDAP_OPT_HOST_NAME (entier)

LDAP_OPT_ERROR_STRING (entier)

LDAP_OPT_MATCHED_DN (entier)

LDAP_OPT_SERVER_CONTROLS (entier)

LDAP_OPT_CLIENT_CONTROLS (entier)

LDAP_OPT_DEBUG_LEVEL (entier)

GSLC_SSL_NO_AUTH (entier)

GSLC_SSL_ONEWAY_AUTH (entier)

GSLC_SSL_TWOWAY_AUTH (entier)

Exemples

Lit les informations sur toutes les entrées dont le nom commence par "S" sur le serveur de dossier, puis affiche le nom et l'adresse email.

Exemple 1. Recherche avec LDAP

<?php
// La séquence de base avec LDAP est
// connexion, liaison, recherche, interprétation du résultat
// déconnexion

echo '<h3>requête de test de LDAP</h3>';
echo 'Connexion ...';
$ds=ldap_connect("localhost");  // doit être un serveur LDAP valide !
echo 'Le résultat de connexion est ' . $ds . '<br />';

if ($ds) {
    echo 'Liaison ...';
    $r=ldap_bind($ds);     // connexion anonyme, typique
                                     // pour un accès en lecture seule.
    echo 'Le résultat de connexion est ' . $r . '<br />';

    echo 'Recherchons (sn=S*) ...';
    // Recherche par nom
    $sr=ldap_search($ds,"o=My Company, c=US", "sn=S*");
    echo 'Le résultat de la recherche est ' . $sr . '<br />';

    echo 'Le nombre d\'entrées retournées est ' . ldap_count_entries($ds,$sr)
         . '<br />';

    echo 'Lecture des entrées ...<br />';
    $info = ldap_get_entries($ds, $sr);
    echo 'Données pour ' . $info["count"] . ' entrées:<br />';

    for ($i=0; $i<$info["count"]; $i++) {
        echo 'dn est : ' . $info[$i]["dn"] . '<br />';
        echo 'premiere entree cn : ' . $info[$i]["cn"][0] . '<br />';
        echo 'premier email : ' . $info[$i]["mail"][0] . '<br />';
    }

    echo 'Fermeture de la connexion';
    ldap_close($ds);

} else {
    echo '<h4>Impossible de se connecter au serveur LDAP.</h4>';
}
?>

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

Table des matières
ldap_8859_to_t61 -- Convertit les caractères 8859 en caractères t61
ldap_add -- Ajoute une entrée dans un dossier LDAP
ldap_bind -- Authentification au serveur LDAP
ldap_close -- Alias de ldap_unbind()
ldap_compare -- Compare une entrée avec des valeurs d'attributs
ldap_connect -- Connection à un serveur LDAP
ldap_count_entries -- Compte le nombre d'entrées après une recherche
ldap_delete -- Efface une entrée dans un dossier
ldap_dn2ufn -- Convertit un DN en format UFN (User Friendly Naming)
ldap_err2str -- Convertit un numéro d'erreur LDAP en message d'erreur
ldap_errno -- Retourne le numéro d'erreur LDAP de la dernière commande exécutée
ldap_error -- Retourne le message LDAP de la dernière commande LDAP
ldap_explode_dn -- Sépare les différents composants d'un DN
ldap_first_attribute -- Retourne le premier attribut
ldap_first_entry -- Retourne la première entrée
ldap_first_reference -- Retourne la première référence
ldap_free_result -- Libère la mémoire du résultat
ldap_get_attributes -- Lit les attributs d'une entrée
ldap_get_dn -- Lit le DN d'une entrée
ldap_get_entries -- Lit toutes les entrées du résultat
ldap_get_option -- Lit/écrit la valeur courante d'une option
ldap_get_values_len -- Lit toutes les valeurs binaires d'une entrée
ldap_get_values -- Lit toutes les valeurs d'une entrée LDAP
ldap_list -- Recherche dans un niveau
ldap_mod_add -- Ajoute un attribut à l'entrée courante
ldap_mod_del -- Efface un attribut à l'entrée courante
ldap_mod_replace -- Remplace un attribut dans l'entrée courante
ldap_modify -- Modifie une entrée LDAP
ldap_next_attribute -- Lit l'attribut suivant
ldap_next_entry -- Lit la prochaine entrée
ldap_next_reference -- Lit la référence suivante
ldap_parse_reference -- Extrait les informations d'une référence d'entrée
ldap_parse_result -- Extrait des informations d'un résultat
ldap_read -- Lit une entrée
ldap_rename -- Modifie le nom d'une entrée
ldap_sasl_bind -- Authentification au serveur LDAP en utilisant SASL
ldap_search -- Recherche sur le serveur LDAP
ldap_set_option -- Modifie la valeur d'une option LDAP
ldap_set_rebind_proc -- Configure une fonction de callback pour refaire des liaisons lors de recherche de référants
ldap_sort -- Trie les entrées d'un résultat LDAP
ldap_start_tls -- Démarre TLS
ldap_t61_to_8859 -- Convertit les caractères t6 en caractères 8859
ldap_unbind -- Déconnecte d'un serveur LDAP

Précédent | Sommaire | Suivant
kadm5_modify_principal | Niveau supérieur | ldap_8859_to_t61


ldap_8859_to_t61

(PHP 4 >= 4.0.2, PHP 5)

ldap_8859_to_t61 -- Convertit les caractères 8859 en caractères t61

Description

string ldap_8859_to_t61 ( string value )

Convertit les caractères ISO-8859 en caractères t61.

Cette fonction est utile si vous devez utiliser un serveur LDAPv2.

Liste de paramètres

value

Le texte à convertir.

Valeurs de retour

Retourne la convertion en t61 du texte value.

Voir aussi

ldap_t61_to_8859()

Précédent | Sommaire | Suivant
LDAP | Niveau supérieur | ldap_add


ldap_add

(PHP 3, PHP 4, PHP 5)

ldap_add -- Ajoute une entrée dans un dossier LDAP

Description

bool ldap_add ( resource link_identifier, string dn, array entry )

Ajoute une entrée dans un dossier LDAP.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Un tableau avec les informations sur la nouvelle entrée. Ces valeurs sont indexées individuellement. En cas de valeurs multiples pour un attribut, elle sont indexées numériquement, à partir de 0.

<?php
$entree["attribut1"] = "value";
$entree["attribut2"][0] = "value1";
$entree["attribut2"][1] = "value2";
?>

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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["mail"] = "jonj@example.com";
    $info["objectclass"] = "person";

    // Ajoute les données au dossier
    $r = ldap_add($ds, "cn=John Jones, o=My Company, c=US", $info);

    ldap_close($ds);
} else {
    echo "Impossible de se connecter au serveur LDAP";
}
?>

Notes

Note : Cette fonction gère les chaînes binaires.

Voir aussi

ldap_delete()

Précédent | Sommaire | Suivant
ldap_8859_to_t61 | Niveau supérieur | ldap_bind


ldap_bind

(PHP 3, PHP 4, PHP 5)

ldap_bind -- Authentification au serveur LDAP

Description

bool ldap_bind ( resource link_identifier [, string bind_rdn [, string bind_password]] )

Authentification au serveur LDAP avec le RDN et le mot de passe spécifiés.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

bind_rdn

bind_password

Si bind_rdn et bind_password ne sont pas spécifiés, un authentification anonyme est essayé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Authentification avec LDAP

<?php

// Eléments d'authentification LDAP
$ldaprdn  = 'uname';     // DN ou RDN LDAP
$ldappass = 'password';  // Mot de passe associé

// Connexion au serveur LDAP
$ldapconn = ldap_connect("ldap.example.com")
    or die("Impossible de se connecter au serveur LDAP.");

if ($ldapconn) {

    // Connexion au serveur LDAP
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

    // Vérification de l'authentification
    if ($ldapbind) {
        echo "Connexion LDAP réussie...";
    } else {
        echo "Connexion LDAP échouée...";
    }

}

?>

Exemple 2. Connexion anonyme à un serveur LDAP

<?php

// Connexion anonyme à un serveur LDAP

// Connexion au serveur LDAP
$ldapconn = ldap_connect("ldap.example.com")
    or die("Impossible de se connecter au serveur LDAP.");

if ($ldapconn) {

    // Authentification anonyme
    $ldapbind = ldap_bind($ldapconn);

    if ($ldapbind) {
        echo "Connexion LDAP anonmye réussie...";
    } else {
        echo "Connexion LDAP anonmye échouée...";
    }

}

?>

Voir aussi

ldap_unbind()

Précédent | Sommaire | Suivant
ldap_add | Niveau supérieur | ldap_close


ldap_close

(PHP 3, PHP 4, PHP 5)

ldap_close -- Alias de ldap_unbind()

Description

Cette fonction est un alias de : ldap_unbind().

Précédent | Sommaire | Suivant
ldap_bind | Niveau supérieur | ldap_compare


ldap_compare

(PHP 4 >= 4.0.2, PHP 5)

ldap_compare -- Compare une entrée avec des valeurs d'attributs

Description

mixed ldap_compare ( resource link_identifier, string dn, string attribute, string value )

Sert à comparer la valeur value de l'attribut attribute à la valeur du même attribut de l'entrée dn.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le DN de l'entrée LDAP.

attribute

Le nom de l'attribut.

value

La valeur comparée.

Valeurs de retour

Retourne TRUE si la valeur value correspond, sinon, retourne FALSE. Retourne -1 si une erreur survient.

Exemples

L'exemple suivant montre comment vérifier que deux mots de passe correspondent, dont l'un est celui d'une entrée du serveur LDAP.

Exemple 1. Exemple complet de vérification de mot de passe avec lDAP

<?php

$ds=ldap_connect("localhost");  // doit être un serveur LDAP valide!

if ($ds) {

    // Authentification
    if (ldap_bind($ds)) {

        // Préparation des données
        $dn = "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
        $value = "secretpassword";
        $attr = "password";

        // Comparaison des valeurs
        $r=ldap_compare($ds, $dn, $attr, $value);

        if ($r === -1) {
            echo "Error: " . ldap_error($ds);
        } elseif ($r === true) {
            echo "Password correct.";
        } elseif ($r === false) {
            echo "Mal choisi ! Mot de passe incorrect !";
        }

    } else {
        echo "Impossible de se connecter au serveur LDAP.";
    }

    ldap_close($ds);

} else {
    echo "Impossible de se connecter au serveur LDAP.";
}
?>

Notes

Avertissement

ldap_compare() ne peut PAS être utilisé pour comparer des valeurs binaires !

Précédent | Sommaire | Suivant
ldap_close | Niveau supérieur | ldap_connect


ldap_connect

(PHP 3, PHP 4, PHP 5)

ldap_connect -- Connection à un serveur LDAP

Description

resource ldap_connect ( [string hostname [, int port]] )

Établit une connexion avec un serveur LDAP situé sur l'hôte hostname et port.

Liste de paramètres

hostname

Si vous utilisez OpenLDAP 2.x.x, vous pouvez spécifier une URL au lieu d'un nom d'hôte. Pour utiliser LDAP avec SSL, compilez OpenLDAP 2.x.x avec le support SSL, configurez PHP avec SSL, et utilisez ldaps://hostname/ comme nom d'hôte.

port

Le port utilisé pour la connexion. Inutile lors de l'utilisation d'URLs. Par défaut, 389.

Valeurs de retour

Retourne un identifiant positif de serveur LDAP en cas de succès, ou bien FALSE en cas d'erreur. Lorsque OpenLDAP 2.x.x est utilisé, ldap_connect() retournera toujours une ressource car il ne se connectera pas mais initialisera uniquement les paramètres de connexion. Actuellement, la connexion intervient avec le prochain appel aux fonctions ldap_*, habituellement avec la fonction ldap_bind().

Sans argument, l'identifiant de la dernière connexion ouverte sera retourné.

Historique

Version | Description
4.0.4 | Les supports URL et SSL ont été ajoutés.

Exemples

Exemple 1. Exemple de connexion à un serveur LDAP

<?php

// LDAP variables
$ldaphost = "ldap.example.com";  // votre serveur LDAP
$ldapport = 389;                 // votre port de serveur LDAP

// Connexion LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
          or die("Impossible de se connecter au serveur LDAP $ldaphost");

?>

Exemple 2. Exemple de connexion à un serveur LDAP SSL

<?php

// Assurez-vous que l'hôte est correct
// et que vous avez un certificat valide
$ldaphost = "ldaps://ldap.example.com/";

// Connexion LDAP
$ldapconn = ldap_connect($ldaphost)
          or die("Impossible de se connecter au serveur LDAP {$ldaphost}");

?>

Voir aussi

ldap_bind()

Précédent | Sommaire | Suivant
ldap_compare | Niveau supérieur | ldap_count_entries


ldap_count_entries

(PHP 3, PHP 4, PHP 5)

ldap_count_entries -- Compte le nombre d'entrées après une recherche

Description

int ldap_count_entries ( resource link_identifier, resource result_identifier )

Retourne le nombre d'entrées trouvées dans le résultat result_identifier, sur la connexion link_identifier.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_identifier

Le résultat interne LDAP.

Valeurs de retour

Retourne le nombre d'entrées dans le résultat, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
ldap_connect | Niveau supérieur | ldap_delete


ldap_delete

(PHP 3, PHP 4, PHP 5)

ldap_delete -- Efface une entrée dans un dossier

Description

bool ldap_delete ( resource link_identifier, string dn )

Efface une entrée spécifique d'un dossier LDAP.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ldap_add()

Précédent | Sommaire | Suivant
ldap_count_entries | Niveau supérieur | ldap_dn2ufn


ldap_dn2ufn

(PHP 3, PHP 4, PHP 5)

ldap_dn2ufn -- Convertit un DN en format UFN (User Friendly Naming)

Description

string ldap_dn2ufn ( string dn )

Convertit le DN dn dans un format plus lisible humainement, en supprimant les types des noms.

Liste de paramètres

dn

Le DN de l'entrée LDAP.

Valeurs de retour

Retourne l'UFN.

Précédent | Sommaire | Suivant
ldap_delete | Niveau supérieur | ldap_err2str


ldap_err2str

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ldap_err2str -- Convertit un numéro d'erreur LDAP en message d'erreur

Description

string ldap_err2str ( int errno )

Retourne le message lisible expliquant l'erreur dont le numéro est errno. Bien que les numéros d'erreur LDAP soient standardisés, différentes bibliothèques retournent des messages différents ou même des textes d'erreur localisés. N'utilisez jamais les messages d'erreur pour identifier une erreur, mais bien les numéros.

Liste de paramètres

errno

Le numéro de l'erreur.

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères.

Exemples

Exemple 1. Énumérer tous les messages d'erreur LDAP

<?php
  for ($i=0; $i<100; $i++) {
    printf("Erreur numéro $i: %s<br />\n", ldap_err2str($i));
  }
?>

Voir aussi

ldap_errno()
ldap_error()

Précédent | Sommaire | Suivant
ldap_dn2ufn | Niveau supérieur | ldap_errno


ldap_errno

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

ldap_errno -- Retourne le numéro d'erreur LDAP de la dernière commande exécutée

Description

int ldap_errno ( resource link_identifier )

Retourne le numéro d'erreur standard, généré par la dernière commande LDAP, pour la connexion link_identifier. Ce numéro peut être converti en message textuel avec ldap_err2str().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

Valeurs de retour

Retourne le numéro d'erreur LDAP généré par la dernière commande.

Exemples

À moins que vous n'abaissiez suffisamment le niveau d'erreur dans php.ini, ou que vous ne préfixiez vos commandes LDAP avec @ (at) 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()
ldap_error()

Précédent | Sommaire | Suivant
ldap_err2str | Niveau supérieur | ldap_error


ldap_error

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

ldap_error -- Retourne le message LDAP de la dernière commande LDAP

Description

string ldap_error ( resource link_identifier )

retourne le message d'erreur lié à la connexion link_identifier. Même si les numéros d'erreur LDAP sont standardisés, différentes bibliothèques retournent différents messages, ou parfois, des messages en langue locale. Ne vous fiez pas au message d'erreur, mais bien au numéro d'erreur.

À moins que vous n'abaissiez suffisamment le niveau d'erreur dans php.ini, ou que vous ne préfixiez vos commandes LDAP avec @ pour supprimer les affichages, les erreurs LDAP s'afficheront aussi dans la sortie HTML.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

Valeurs de retour

Retourne un message d'erreur LDAP.

Voir aussi

ldap_err2str()
ldap_errno()

Précédent | Sommaire | Suivant
ldap_errno | Niveau supérieur | ldap_explode_dn


ldap_explode_dn

(PHP 3, PHP 4, PHP 5)

ldap_explode_dn -- Sépare les différents composants d'un DN

Description

array ldap_explode_dn ( string dn, int with_attrib )

Sert à extraire les différents composants du DN dn. Chaque composant s'appelle un Nom Distingué Relatif (Relative Distinguished Name ou encore RDN).

Liste de paramètres

dn

Le nom DN de l'entrée LDAP.

with_attrib

Sert à préciser si les RDN sont retournés seuls, ou bien avec leurs attributs. Pour obtenir les attributs en même temps que les RDN (au format attribut=valeur), donnez à with_attrib la valeur de 0 et, sinon, donnez lui la valeur de 1.

Valeurs de retour

Retourne un tableau de tous les composants DN.

Précédent | Sommaire | Suivant
ldap_error | Niveau supérieur | ldap_first_attribute


ldap_first_attribute

(PHP 3, PHP 4, PHP 5)

ldap_first_attribute -- Retourne le premier attribut

Description

string ldap_first_attribute ( resource link_identifier, resource result_entry_identifier, int &ber_identifier )

Retourne le premier attribut de l'entrée fournie. Les autres attributs sont lus grâce à la fonction ldap_next_attribute(), appelée aussi souvent que nécessaire.

Similairement à la lecture des entrées, les attributs sont lus les uns après les autres, pour une entrée.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

ber_identifier

Le paramètre ber_identifier est l'identifiant de pointeur en mémoire locale. Il est passé par référence. Le même paramètre ber_identifier est passé à la fonction ldap_next_attribute(), qui modifiera ce pointeur.

Valeurs de retour

Retourne le premier attribut de l'entrée en cas de succès, et FALSE si une erreur survient.

Voir aussi

ldap_next_attribute()
ldap_get_attributes()

Précédent | Sommaire | Suivant
ldap_explode_dn | Niveau supérieur | ldap_first_entry


ldap_first_entry

(PHP 3, PHP 4, PHP 5)

ldap_first_entry -- Retourne la première entrée

Description

resource ldap_first_entry ( resource link_identifier, resource result_identifier )

Retourne la première entrée du résultat. Celles qui suivent seront lues grâce à la fonction lap_next_entry(), en l'appelant aussi souvent que nécessaire.

Les entrées d'un résultat LDAP sont lues séquentiellement avec les fonctions ldap_first_entry() et ldap_next_entry().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_identifier

Valeurs de retour

Retourne la première entrée en cas de succès, FALSE si une erreur survient.

Voir aussi

ldap_get_entries()

Précédent | Sommaire | Suivant
ldap_first_attribute | Niveau supérieur | ldap_first_reference


ldap_first_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_first_reference -- Retourne la première référence

Description

resource ldap_first_reference ( resource link, resource result )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ldap_first_entry | Niveau supérieur | ldap_free_result


ldap_free_result

(PHP 3, PHP 4, PHP 5)

ldap_free_result -- Libère la mémoire du résultat

Description

bool ldap_free_result ( resource result_identifier )

Libère toute la mémoire allouée en interne pour stocker le résultat result_identifier. Si l'appel de cette fonction est omis, toute la mémoire sera libérée automatiquement à la fin du script.

Typiquement, toute la mémoire allouée pour le résultat LDAP est libérée à la fin du script. Si le script effectue des recherches intensives, qui retournent des résultats de grandes taille, ldap_free_result() peut être utilisée pour réduire la consommation de mémoire.

Liste de paramètres

result_identifier

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ldap_first_reference | Niveau supérieur | ldap_get_attributes


ldap_get_attributes

(PHP 3, PHP 4, PHP 5)

ldap_get_attributes -- Lit les attributs d'une entrée

Description

array ldap_get_attributes ( resource link_identifier, resource result_entry_identifier )

Lit les attributs et les valeurs pour une entrée d'un résultat de recherche.

Une fois que vous avez repéré une entrée dans un dossier, vous pouvez obtenir plus d'informations sur elle avec cette fonction. Elle pourrait être utilisée dans le cadre d'une application qui cartographie les dossiers et les entrées. Dans de nombreuses applications, vous recherchez des entrées ayant un attribut précis, sans vous soucier des autres attributs.

return_value["count"] = nombre d'attributs dans l'entrée
return_value[0] = premier attribut
return_value[n] = n-ième attribut

return_value["attribute"]["count"] = nombre de valeurs de l'attribut
return_value["attribute"][0] = première valeur de l'attribut
return_value["attribute"][i] = (i+1)-ème valeur de l'attribut

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

Valeurs de retour

Retourne le détail des informations d'une entrée sous la forme d'un tableau multidimensionnel ou FALSE en cas d'erreur.

Exemples

Exemple 1. Affiche la liste des attributs d'une entrée

<?php
// $ds est une ressource de connexion valide

// $sr est une recherche valide, issue d'une opération
// précédente

$entry = ldap_first_entry($ds, $sr);

$attrs = ldap_get_attributes($ds, $entry);

echo $attrs["count"] . " attributs dans cette entrée :<p>";

for ($i=0; $i < $attrs["count"]; $i++) {
    echo $attrs[$i] . "<br />";
}
?>

Voir aussi

ldap_first_attribute()
ldap_next_attribute()

Précédent | Sommaire | Suivant
ldap_free_result | Niveau supérieur | ldap_get_dn


ldap_get_dn

(PHP 3, PHP 4, PHP 5)

ldap_get_dn -- Lit le DN d'une entrée

Description

string ldap_get_dn ( resource link_identifier, resource result_entry_identifier )

Lit le DN d'une entrée d'un résultat.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

Valeurs de retour

Retourne le DN de l'entrée du résultat, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
ldap_get_attributes | Niveau supérieur | ldap_get_entries


ldap_get_entries

(PHP 3, PHP 4, PHP 5)

ldap_get_entries -- Lit toutes les entrées du résultat

Description

array ldap_get_entries ( resource link_identifier, resource result_identifier )

Lit toutes les entrées du résultat fourni, ainsi que les attributs et les valeurs multiples.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_identifier

Valeurs de retour

Retourne toutes les entrées du résulat sous la forme d'un tableau multi-dimensionnel, ou FALSE en cas d'erreur.

La structure du tableau est la suivante. L'index d'attribut est converti en minuscules (les attributs sont sensibles à la casse pour les serveurs de dossiers, mais ne le sont pas lorsqu'ils sont utilisés comme index de tableaux).

return_value["count"] = nombre d'entrées dans le résultat
return_value[0] : se réfère aux détails de la première entrée

return_value[i]["dn"] =  DN de la n-ième entrée du résultat

return_value[i]["count"] = nombre d'attributs de la n-ième entrée
return_value[i][j] = j-ième attribut de la i-ème entrée

return_value[i]["attribute"]["count"] = nombre de valeur des attributs de la i-ième entrée
return_value[i]["attribute"][j] = j-ième valeur de la n-ième entrée

Voir aussi

ldap_first_entry()
ldap_next_entry()

Précédent | Sommaire | Suivant
ldap_get_dn | Niveau supérieur | ldap_get_option


ldap_get_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_get_option -- Lit/écrit la valeur courante d'une option

Description

bool ldap_get_option ( resource link_identifier, int option, mixed &retval )

Définit la valeur retval à l'option spécifié.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

option

Le paramètre option peut prendre l'une des valeurs suivantes :

Option | Type
LDAP_OPT_DEREF | entier
LDAP_OPT_SIZELIMIT | entier
LDAP_OPT_TIMELIMIT | entier
LDAP_OPT_PROTOCOL_VERSION | entier
LDAP_OPT_ERROR_NUMBER | entier
LDAP_OPT_REFERRALS ???
LDAP_OPT_RESTART ???
LDAP_OPT_HOST_NAME | chaîne de caractères
LDAP_OPT_ERROR_STRING | chaîne de caractères
LDAP_OPT_MATCHED_DN | chaîne de caractères
LDAP_OPT_SERVER_CONTROLS | tableau
LDAP_OPT_CLIENT_CONTROLS | tableau

retval

Valeur à définir pour l'option.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Vérification de la version du protocole

<?php
// $ds doit être une ressource de connexion valide
if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version)) {
    echo "Nous utilisons le protocole version $version\n";
} else {
    echo "Impossible de déterminer la version du protocole.\n";
}
?>

Notes

Note : Cette fonction n'est disponible qu'avec OpenLDAP 2.x.x OU Netscape Directory SDK x.x, et a été ajoutée en PHP 4.0.4.

Voir aussi

ldap_set_option()

Précédent | Sommaire | Suivant
ldap_get_entries | Niveau supérieur | ldap_get_values_len


ldap_get_values_len

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ldap_get_values_len -- Lit toutes les valeurs binaires d'une entrée

Description

array ldap_get_values_len ( resource link_identifier, resource result_entry_identifier, string attribute )

Lit toutes les valeurs binaires d'une entrée d'un résultat.

Cette fonction s'utilise exactement comme la fonction ldap_get_values(), hormis le fait qu'elle gère les données binaires, et non les chaînes de caractères.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

attribute

Valeurs de retour

Retourne un tableau de valeurs pour l'attribut en cas de succès, et FALSE en cas d'erreur. Les valeurs sont accessibles individuellement, avec les index numériques du tableau. L'indexation commence à 0. Le nombre de valeurs retournées est disponible à l'index 'count' du tableau retourné.

Voir aussi

ldap_get_values()

Précédent | Sommaire | Suivant
ldap_get_option | Niveau supérieur | ldap_get_values


ldap_get_values

(PHP 3, PHP 4, PHP 5)

ldap_get_values -- Lit toutes les valeurs d'une entrée LDAP

Description

array ldap_get_values ( resource link_identifier, resource result_entry_identifier, string attribute )

Lit toutes les valeurs de l'attribut d'une entrée dans un résultat.

L'utilisation de la fonction result_entry_identifier requiert un résultat de recherche, et doit donc être précédée d'une recherche LDAP, et de l'une des fonctions permettant d'accéder à une entrée.

Votre application doit contenir des informations permettant de lire certains attributs (comme "nom" ou "mail"), ou bien vous devrez utiliser la fonction ldap_get_attributes() pour savoir quels sont les attributs qui existent pour une entrée donnée.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

attribute

Valeurs de retour

Retourne un tableau de valeurs pour l'attribut, ou FALSE en cas d'erreur. Le nombre de valeurs retournées est disponible à l'index 'count' du tableau retourné. Les valeurs sont accessibles individuellement, avec les index numériques du tableau. L'indexation commence à 0.

LDAP permet plus d'une entrée par attribut, ce qui permet de stocker plusieurs addresse emails par personne, tout en n'utilisant qu'une étiquette "mail" :

return_value["count"] = nombre de valeurs de l'attribut
return_value[0] = première valeur de l'attribut
return_value[i] = i-ième valeur de l'attribut

Exemples

Exemple 1. Liste toutes les valeurs de l'attribut "mail" d'une entrée

<?php
// $ds doit être une ressource de connexion valide

// $sr doit être une ressource de résultat valide, obtenue avec une des fonctions de
//     recherche LDAP.

// $entry est une entrée LDAP valide, obtenue avec une des fonctions
//        LDAP qui retourne une entrée

$values = ldap_get_values($ds, $entry,"mail");

echo $values["count"] . " adresses email pour cette entrée.<br />";

for ($i=0; $i < $values["count"]; $i++) {
    echo $values[$i] . "<br />";
}
?>

Voir aussi

ldap_get_values_len()

Précédent | Sommaire | Suivant
ldap_get_values_len | Niveau supérieur | ldap_list


ldap_list

(PHP 3, PHP 4, PHP 5)

ldap_list -- Recherche dans un niveau

Description

resource ldap_list ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]] )

Effectue une recherche avec le filtre filter dans le dossier base_dn avec l'option LDAP_SCOPE_ONELEVEL.

LDAP_SCOPE_ONELEVEL signifie que la recherche ne peut retourner des entrées que dans le niveau qui est immédiatement sous le niveau base_dn (c'est l'équivalent de la commande "ls", pour obtenir la liste des fichiers et dossiers du dossier courant).

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

base_dn

La base DN du dossier.

filter

attributes

Un tableau d'attributs requis, e.g. array("mail", "sn", "cn"). Notez que le "dn" est toujours retourné, quelque soit le type de l'attribut demandé.

L'utilisation de ce paramètre est plus efficace que l'action par défaut (qui est de retourner tous les attributs ainsi que leurs valeurs associées). L'utilisation de ce paramètre doit toutefois être concidéré comme une bonne pratique.

attrsonly

Doit être défini à 1 si seuls les types des attributs sont demandés. S'il est défini à 0, les types et les valeurs des attributs sont récupérés, ce qui correspond au comportement par défaut.

sizelimit

Vous permet de limiter le nombre d'entrées à récupérer. Le fait de définir ce paramètre à 0 signifie qu'il n'y aura aucune limite.

Note : Ce paramètre ne peut pas écraser la configuration côté serveur. Vous pouvez cependant positionner une valeur inférieure.

Quelques dossiers serveurs peuvent être configurés afin de ne retourner qu'un nombre d'entrées données. Si ce comportement survient, le serveur indique qu'il n'a retourné qu'un jeu de résultats partiel. Ce comportement intervient également si vous utilisez ce paramètre pour limiter le nombre d'entrées récupérées.

timelimit

Définit le nombre maximal de secondes permis pour la recherche. Le fait de définir ce paramètre à 0 signifie qu'il n'y a pas de limite.

Note : Ce pareamè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 parmis les suivants :

  • LDAP_DEREF_NEVER - (défaut) les alias ne sont jamais déréférencés.

  • LDAP_DEREF_SEARCHING - les aliases 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 aliases 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 aliases doivent toujours être déréférencés.

Valeurs de retour

Returne un identifiant de résultats pour la recherche, ou FALSE si une erreur survient.

Historique

Version | Description
4.0.5 | Les recherches parallèles ont été ajoutées. Voir la fonction ldap_search() pour plus de détails.
4.0.2 | Les paramètres attrsonly, sizelimit, timelimit et deref ont été ajoutés.

Exemples

Exemple 1. Produit une liste de tous les services d'une société

// $ds doit être une ressource de connexion valide

$basedn = "o=My Company, c=US";
$justthese = array("ou");

$sr=ldap_list($ds, $basedn, "ou=*", $justthese);

$info = ldap_get_entries($ds, $sr);

for ($i=0; $i<$info["count"]; $i++) {
    echo $info[$i]["ou"][0] ;
}

Voir aussi

ldap_search()

Précédent | Sommaire | Suivant
ldap_get_values | Niveau supérieur | ldap_mod_add


ldap_mod_add

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ldap_mod_add -- Ajoute un attribut à l'entrée courante

Description

bool ldap_mod_add ( resource link_identifier, string dn, array entry )

Ajoute l'attribut entry à l'entrée dn. Elle effectue la modification au niveau attribut, par opposition au niveau objet. Les additions au niveau objet sont réalisées par ldap_add().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction gère les chaînes binaires.

Voir aussi

ldap_mod_del()
ldap_mod_replace()

Précédent | Sommaire | Suivant
ldap_list | Niveau supérieur | ldap_mod_del


ldap_mod_del

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ldap_mod_del -- Efface un attribut à l'entrée courante

Description

bool ldap_mod_del ( resource link_identifier, string dn, array entry )

Efface l'attribut entry de l'entrée dn. Elle effectue la modification au niveau attribut, par opposition au niveau objet. Les additions au niveau objet sont réalisées par ldap_delete().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ldap_mod_add()
ldap_mod_replace()

Précédent | Sommaire | Suivant
ldap_mod_add | Niveau supérieur | ldap_mod_replace


ldap_mod_replace

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ldap_mod_replace -- Remplace un attribut dans l'entrée courante

Description

bool ldap_mod_replace ( resource link_identifier, string dn, array entry )

Remplace l'attribut entry de l'entrée dn. Elle effectue le remplacement au niveau attribut, par opposition au niveau objet. Les additions au niveau objet sont réalisées par ldap_modify().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction gère les chaînes binaires.

Voir aussi

ldap_mod_del()
ldap_mod_add()

Précédent | Sommaire | Suivant
ldap_mod_del | Niveau supérieur | ldap_modify


ldap_modify

(PHP 3, PHP 4, PHP 5)

ldap_modify -- Modifie une entrée LDAP

Description

bool ldap_modify ( resource link_identifier, string dn, array entry )

Modifie l'entrée identifiée par dn, avec les valeurs fournies dans entry. La structure de entry est la même que détaillée dans ldap_add().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

entry

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction gère les chaînes binaires.

Voir aussi

ldap_rename()

Précédent | Sommaire | Suivant
ldap_mod_replace | Niveau supérieur | ldap_next_attribute


ldap_next_attribute

(PHP 3, PHP 4, PHP 5)

ldap_next_attribute -- Lit l'attribut suivant

Description

string ldap_next_attribute ( resource link_identifier, resource result_entry_identifier, resource &ber_identifier )

Lit l'attribut suivant d'une entrée. Le premier appel à ldap_next_attribute() est fait avec le result_entry_identifier retourné par ldap_first_attribute().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

ber_identifier

Le statut interne du pointeur est maintenu par ce paramètre.

Valeurs de retour

Retourne le prochain attribut de l'entrée en cas de succès, et FALSE si une erreur survient.

Voir aussi

ldap_get_attributes()

Précédent | Sommaire | Suivant
ldap_modify | Niveau supérieur | ldap_next_entry


ldap_next_entry

(PHP 3, PHP 4, PHP 5)

ldap_next_entry -- Lit la prochaine entrée

Description

resource ldap_next_entry ( resource link_identifier, resource result_entry_identifier )

Lit la prochaine entrée du résultat. Des appels répétés à ldap_next_entry() retourneront toutes les entrées jusqu'à ce qu'il n'y en ait plus. Le premier appel doit être fait avec la fonction ldap_first_entry(). Le paramètre result_entry_identifier est celui qui a été retourné par la fonction ldap_first_entry().

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

result_entry_identifier

Valeurs de retour

Retourne l'identifiant de la prochaine entrée du résultat, où la première entrée a été lue par la fonction ldap_first_entry(). S'il n'y a plus d'entrées dans le résultat, FALSE est retourné.

Voir aussi

ldap_get_entries()

Précédent | Sommaire | Suivant
ldap_next_attribute | Niveau supérieur | ldap_next_reference


ldap_next_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_next_reference -- Lit la référence suivante

Description

resource ldap_next_reference ( resource link, resource entry )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ldap_next_entry | Niveau supérieur | ldap_parse_reference


ldap_parse_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_parse_reference -- Extrait les informations d'une référence d'entrée

Description

bool ldap_parse_reference ( resource link, resource entry, array &referrals )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ldap_next_reference | Niveau supérieur | ldap_parse_result


ldap_parse_result

(PHP 4 >= 4.0.5, PHP 5)

ldap_parse_result -- Extrait des informations d'un résultat

Description

bool ldap_parse_result ( resource link, resource result, int &errcode [, string &matcheddn [, string &errmsg [, array &referrals]]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ldap_parse_reference | Niveau supérieur | ldap_read


ldap_read

(PHP 3, PHP 4, PHP 5)

ldap_read -- Lit une entrée

Description

resource ldap_read ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]] )

Effectue une recherche avec le filtre filter dans le dossier base_dn avec la configuration LDAP_SCOPE_BASE. C'est équivalent à lire une entrée dans un dossier.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

base_dn

La base DN du dossier.

filter

Un filtre ne peut être vide. Si vous voulez lire toutes les informations d'une entrée, utilisez le filtre "objectClass=*". Si vous savez quels sont les types qui sont utilisés dans le serveur de dossiers, vous pouvez aussi utiliser un filtre approprié, comme "objectClass=inetOrgPerson".

attributes

Un tableau d'attributs requis, e.g. array("mail", "sn", "cn"). Notez que le "dn" est toujours retourné, quelque soit le type de l'attribut demandé.

L'utilisation de ce paramètre est plus efficace que l'action par défaut (qui est de retourner tous les attributs ainsi que leurs valeurs associées). L'utilisation de ce paramètre doit toutefois être concidéré comme une bonne pratique.

attrsonly

Doit être défini à 1 si seuls les types des attributs sont demandés. S'il est défini à 0, les types et les valeurs des attributs sont récupérés, ce qui correspond au comportement par défaut.

sizelimit

Vous permet de limiter le nombre d'entrées à récupérer. Le fait de définir ce paramètre à 0 signifie qu'il n'y aura aucune limite.

Note : Ce paramètre ne peut pas écraser la configuration côté serveur. Vous pouvez cependant positionner une valeur inférieure.

Quelques dossiers serveurs peuvent être configurés afin de ne retourner qu'un nombre d'entrées données. Si ce comportement survient, le serveur indique qu'il n'a retourné qu'un jeu de résultats partiel. Ce comportement intervient également si vous utilisez ce paramètre pour limiter le nombre d'entrées récupérées.

timelimit

Définit le nombre maximal de secondes permis pour la recherche. Le fait de définir ce paramètre à 0 signifie qu'il n'y a pas de limite.

Note : Ce pareamè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 parmis les suivants :

  • LDAP_DEREF_NEVER - (défaut) les alias ne sont jamais déréférencés.

  • LDAP_DEREF_SEARCHING - les aliases 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 aliases 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 aliases doivent toujours être déréférencés.

Valeurs de retour

Retourne un identifiant de résultat de recherche, ou FALSE si une erreur survient.

Historique

Version | Description
4.0.5 | Les recherches parallèles ont été ajoutées. Voir la fonction ldap_search() pour plus de détails.
4.0.2 | Les paramètres attrsonly, sizelimit, timelimit et deref ont été ajoutés.

Précédent | Sommaire | Suivant
ldap_parse_result | Niveau supérieur | ldap_rename


ldap_rename

(PHP 4 >= 4.0.5, PHP 5)

ldap_rename -- Modifie le nom d'une entrée

Description

bool ldap_rename ( resource link_identifier, string dn, string newrdn, string newparent, bool deleteoldrdn )

Modifie l'entrée dn, autant pour son nom que pour sa localisation.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

dn

Le nom DN de l'entrée LDAP.

newrdn

Le nouveau RDN.

newparent

La nouvelle entrée parent/supérieure.

deleteoldrdn

Si ce paramètre vaut TRUE, l'ancienne valeur RDN est supprimée. Sinon elle est conservée comme une valeur non distinguée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : ldap_rename() ne fonctionne actuellement qu'avec LDAPv3. Vous pouvez être obligé d'utiliser ldap_set_option() avant de vous lier pour pouvoir utiliser LDAPv3. Cette fonction est uniquement disponible lorsque vous utilisez OpenLDAP 2.x.x OU Netscape Directory SDK x.x.

Voir aussi

ldap_modify()

Précédent | Sommaire | Suivant
ldap_read | Niveau supérieur | ldap_sasl_bind


ldap_sasl_bind

(PHP 5)

ldap_sasl_bind -- Authentification au serveur LDAP en utilisant SASL

Description

bool ldap_sasl_bind ( resource link [, string binddn [, string password [, string sasl_mech [, string sasl_realm [, string sasl_authz_id [, string props]]]]]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

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.

Précédent | Sommaire | Suivant
ldap_rename | Niveau supérieur | ldap_search


ldap_search

(PHP 3, PHP 4, PHP 5)

ldap_search -- Recherche sur le serveur LDAP

Description

resource ldap_search ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]] )

Effectue une recherche avec le filtre filter dans le dossier base_dn avec le paramétrage LDAP_SCOPE_SUBTREE. C'est l'équivalent d'une recherche dans le dossier. base_dn spécifie le DN de base du dossier.

Depuis PHP 4.0.5, il est possible de faire des recherches parallèles. Pour cela, vous devez utiliser un tableau de ressources de connexion comme premier argument, au lieu d'une ressource simple. Si vous ne voulez pas utiliser le même dossier de base DN et le même filtre pour toutes les recherches, vous pouvez aussi utiliser un tableau de DN et de filtres. Ces tableaux doivent alors être de la même taille que le tableau de ressources de connexion : la première entrée du tableau de ressources sera utilisée avec le premier DN et le premier filtre, etc. Lorsque vous faites une recherche parallèle, un tableau de résultats est retourné, sauf en cas d'erreur, auquel cas l'entrée contiendra FALSE. C'est très proche du comportement habituel, hormis le fait qu'un résultat est toujours retourné lorsqu'une recherche est faite. Il y a de rares cas où une recherche renvoie FALSE, alors qu'une autre en parallèle retourne un identifiant.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

base_dn

La base DN pour le dossier.

filter

Le filtre de recherche peut être simple ou avancé, et utiliser ces opérateurs booléen au format décrit dans la documentation LDAP (reportez-vous à Netscape Directory SDK 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é, 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 toutefois être concidéré comme une bonne pratique.

attrsonly

Doit être défini à 1 si seuls les types des attributs sont demandés. S'il est défini à 0, les types et les valeurs des attributs sont récupérés, ce qui correspond au comportement par défaut.

sizelimit

Vous permet de limiter le nombre d'entrées à récupérer. Le fait de définir ce paramètre à 0 signifie qu'il n'y aura aucune limite.

Note : Ce paramètre ne peut pas écraser la configuration côté serveur. Vous pouvez cependant positionner une valeur inférieure.

Quelques dossiers serveurs peuvent être configurés afin de ne retourner qu'un nombre d'entrées données. Si ce comportement survient, le serveur indique qu'il n'a retourné qu'un jeu de résultats partiel. Ce comportement intervient également si vous utilisez ce paramètre pour limiter le nombre d'entrées récupérées.

timelimit

Définit le nombre maximal de secondes permis pour la recherche. Le fait de définir ce paramètre à 0 signifie qu'il n'y a pas de limite.

Note : Ce pareamè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 parmis les suivants :

  • LDAP_DEREF_NEVER - (défaut) les alias ne sont jamais déréférencés. dereferenced.

  • LDAP_DEREF_SEARCHING - les aliases 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 aliases 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 aliases doivent toujours être déréférencés.

Valeurs de retour

Retourne un identifiant de recherche ou FALSE si une erreur survient.

Historique

Version | Description
4.0.5 | Les recherches parallèles ont été ajoutées. Voir la fonction ldap_search() pour plus de détails.
4.0.2 | Les paramètres attrsonly, sizelimit, timelimit et deref on été ajoutés.

Exemples

L'exemple ci-dessous lit le nom du service, le nom, le prénom et l'email des employés de la société "Ma Compagnie", dont le nom ou le prénom contient la sous-chaîne : $person. Cet exemple illustre l'utilisation de filtres pour indiquer au serveur de faire une recherche sur deux attributs.

Exemple 1. Recherche LDAP

<?php
// $ds doit être une ressource de connexion valide

// $person est un nom ou une partie de nom (par exemple, "Jean")

$dn = "o=My Company, c=US";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("ou", "sn", "givenname", "mail");

$sr=ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

echo $info["count"]." entries returned\n";
?>

Précédent | Sommaire | Suivant
ldap_sasl_bind | Niveau supérieur | ldap_set_option


ldap_set_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_set_option -- Modifie la valeur d'une option LDAP

Description

bool ldap_set_option ( resource link_identifier, int option, mixed newval )

Modifie la valeur de l'option option en remplaçant la valeur courante par newval.

Liste de paramètres

link_identifier

Un identifiant de lien LDAP, retourné par la fonction ldap_connect().

option

Le paramètre option peut prendre l'une des valeurs suivantes :

Option | Type
LDAP_OPT_DEREF | entier
LDAP_OPT_SIZELIMIT | entier
LDAP_OPT_TIMELIMIT | entier
LDAP_OPT_PROTOCOL_VERSION | entier
LDAP_OPT_ERROR_NUMBER | entier
LDAP_OPT_REFERRALS ???
LDAP_OPT_RESTART ???
LDAP_OPT_HOST_NAME | chaîne de caractères
LDAP_OPT_ERROR_STRING | chaîne de caractères
LDAP_OPT_MATCHED_DN | chaîne de caractères
LDAP_OPT_SERVER_CONTROLS | tableau
LDAP_OPT_CLIENT_CONTROLS | tableau

Les options LDAP_OPT_SERVER_CONTROLS et LDAP_OPT_CLIENT_CONTROLS requièrent une liste de contrôles, ce qui signifie que la valeur doit être un tableau de contrôles. Un contrôle est constitué d'un oid l'identifiant, une valeur optionnelle value, et un flag optionnel de "criticalité" (criticality). En PHP, un contrôle est défini sous la forme d'un tableau, donc les clés sont oid avec une chaîne comme valeur, et deux clés optionnelles. Ces clés sont value avec une chaîne comme valeur, et iscritical avec une valeur booléenne. Par défaut, iscritical vaut FALSE. Voir le fichier draft-ietf-ldapext-ldap-c-api-xx.txt pour plus de détails. Reportez-vous au second exemple pour une illustration.

newval

La nouvelle valeur pour l'option option spécifiée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Modification de la version du protocole

<?php
// $ds doit être une ressource de connexion valide
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
    echo "Version LDAPv3";
} else {
    echo "Impossible de modifier la version du protocole à 3";
}
?>

Exemple 2. Modification des contrôles du serveur

<?php
// $ds doit être une ressource de connexion valide de
// contrôle sans valeur
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => true);
// iscritical vaut par défaut FALSE
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
// tente d'utiliser les deux contrôles
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1, $ctrl2))) {
    echo "Impossible de modifier les contrôles du serveur";
}
?>

Notes

Note : Cette fonction n'est disponible que lorsque vous utilisez OpenLDAP 2.x.x ou Netscape Directory SDK x.x.

Voir aussi

ldap_get_option()

Précédent | Sommaire | Suivant
ldap_search | Niveau supérieur | ldap_set_rebind_proc


ldap_set_rebind_proc

(PHP 4 >= 4.2.0, PHP 5)

ldap_set_rebind_proc -- Configure une fonction de callback pour refaire des liaisons lors de recherche de référants

Description

bool ldap_set_rebind_proc ( resource link, callback callback )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ldap_set_option | Niveau supérieur | ldap_sort


ldap_sort

(PHP 4 >= 4.2.0, PHP 5)

ldap_sort -- Trie les entrées d'un résultat LDAP

Description

bool ldap_sort ( resource link, resource result, string sortfilter )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ldap_set_rebind_proc | Niveau supérieur | ldap_start_tls


ldap_start_tls

(PHP 4 >= 4.2.0, PHP 5)

ldap_start_tls -- Démarre TLS

Description

bool ldap_start_tls ( resource link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ldap_sort | Niveau supérieur | ldap_t61_to_8859


ldap_t61_to_8859

(PHP 4 >= 4.0.2, PHP 5)

ldap_t61_to_8859 -- Convertit les caractères t6 en caractères 8859

Description

string ldap_t61_to_8859 ( string value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ldap_start_tls | Niveau supérieur | ldap_unbind


ldap_unbind

(PHP 3, PHP 4, PHP 5)

ldap_unbind -- Déconnecte d'un serveur LDAP

Description

bool ldap_unbind ( resource link_identifier )

Déconnecte d'un serveur LDAP.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ldap_bind()

Précédent | Sommaire | Suivant
ldap_t61_to_8859 | Niveau supérieur | libxml


libxml

Manuel PHP
Précédent Suivant

LXXVI. libxml

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, SimpleXML et XSLT.

Pré-requis

Cette extension requiert libxml >= 2.6.0.

Classes pré-définies

LibXMLError

Propriétés

  • code - le code erreur

  • column - la colonne où l'erreur est survenue. Notez que cette propriété n'est pas entièrement implémentée dans libxml et donc, 0 est toujours retourné.

  • file - le nom du fichier, ou vide si le XML a été chargé depuis une chaîne.

  • level - le degré de l'erreur (une des constantes suivantes : LIBXML_ERR_WARNING, LIBXML_ERR_ERROR ou LIBXML_ERR_FATAL)

  • line - la ligne où l'erreur est survenue.

  • message - le message de l'erreur

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

LIBXML_COMPACT (integer)

Active l'optimisation de l'allocation de petits noeuds. Ceci pourrait augmenter la rapidité de votre application sans avoir besoin de changer votre code.

Note : Seulement disponible dans Libxml >= 2.6.21

LIBXML_DTDATTR (integer)

Attribut de DTD par défaut

LIBXML_DTDLOAD (integer)

Charge le sous-ensemble externe

LIBXML_DTDVALID (integer)

Valide avec la DTD

LIBXML_NOBLANKS (integer)

Suppression des noeuds vides

LIBXML_NOCDATA (integer)

Fusion des CDATA en noeuds de texte

LIBXML_NOEMPTYTAG (integer)

Agrandi les tags vides (par exemple, <br/> en <br></br>)

Note : Cette option est actuellement disponible que dans les fonctions DOMDocument->save() et DOMDocument->saveXML().

LIBXML_NOENT (integer)

Substitution des entitées

LIBXML_NOERROR (integer)

Suppression du rapport d'erreur

LIBXML_NONET (integer)

Désactivation du réseau lors du chargement de document

LIBXML_NOWARNING (integer)

Suppression des rapports d'alerte

LIBXML_NOXMLDECL (integer)

Annule la déclaration XML lors de la sauvegarde du document

Note : Seulement disponible dans Libxml >= 2.6.21

LIBXML_NSCLEAN (integer)

Suppression des espaces de noms redondants

LIBXML_XINCLUDE (integer)

Implementation de la substitution XInclude

LIBXML_ERR_ERROR (integer)

Erreur non-fatale

LIBXML_ERR_FATAL (integer)

Erreur fatale

LIBXML_ERR_NONE (integer)

Aucune erreur

LIBXML_ERR_WARNING (integer)

Une alerte simple

LIBXML_VERSION (integer)

libxml version sous la forme 20605 ou 20617

LIBXML_DOTTED_VERSION (string)

libxml version sous la forme 2.6.5 ou 2.6.17

Table des matières
libxml_clear_errors -- Vide le buffer d'erreur libxml
libxml_get_errors -- Lit le tableau d'erreurs
libxml_get_last_error -- Lit la dernière erreur libxml
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

Précédent | Sommaire | Suivant
ldap_unbind | Niveau supérieur | libxml_clear_errors


libxml_clear_errors

(PHP 5 >= 5.1.0RC1)

libxml_clear_errors -- Vide le buffer d'erreur libxml

Description

void libxml_clear_errors ( void )

libxml_clear_errors() vide le buffer d'erreur libxml.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

libxml_get_errors()
libxml_get_last_error()

Précédent | Sommaire | Suivant
libxml | Niveau supérieur | libxml_get_errors


libxml_get_errors

(PHP 5 >= 5.1.0RC1)

libxml_get_errors -- Lit le tableau d'erreurs

Description

array libxml_get_errors ( void )

Retrieve array of errors.

Valeurs de retour

libxml_get_errors() retourne un tableau avec les objets LibXMLError qui représentent les erreurs, ou bien un tableau vide s'il n'y a pas d'erreurs.

Exemples

Exemple 1. Exemple avec libxml_get_errors()

Cet exemple montre comment créer un gestionnaire d'erreurs libxml simple.

<?php

libxml_use_internal_errors(true);

$xmlstr = <<< XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <titles>PHP: Behind the Parser</title>
 </movie>
</movies>
XML;

$doc = simplexml_load_string($xmlstr);
$xml = explode("\n", $xmlstr);

if (!$doc) {
    $errors = libxml_get_errors();

    foreach ($errors as $error) {
        echo display_xml_error($error, $xml);
    }

    libxml_clear_errors();
}

function display_xml_error($error, $xml)
{
    $return  = $xml[$error->line - 1] . "\n";
    $return .= str_repeat('-', $error->column) . "^\n";

    switch ($error->level) {
        case LIBXML_ERR_WARNING:
            $return .= "Warning $error->code: ";
            break;
         case LIBXML_ERR_ERROR:
            $return .= "Error $error->code: ";
            break;
        case LIBXML_ERR_FATAL:
            $return .= "Fatal Error $error->code: ";
            break;
    }

    $return .= trim($error->message) .
               "\n  Line: $error->line" .
               "\n  Column: $error->column";

    if ($error->file) {
        $return .= "\n  File: $error->file";
    }

    return "$return\n\n--------------------------------------------\n\n";
}

?>

L'exemple ci-dessus va afficher :

<titles>PHP: Behind the Parser</title>
^
Fatal Error 76: Opening and ending tag mismatch: titles line 4 and title
  Line: 4
  Column: 0

--------------------------------------------

Voir aussi

libxml_get_last_error()
libxml_clear_errors()

Précédent | Sommaire | Suivant
libxml_clear_errors | Niveau supérieur | libxml_get_last_error


libxml_get_last_error

(PHP 5 >= 5.1.0RC1)

libxml_get_last_error -- Lit la dernière erreur libxml

Description

LibXMLError libxml_get_last_error ( void )

libxml_get_last_error() lit la dernière erreur libxml.

Valeurs de retour

libxml_get_last_error() retourn un objet LibXMLError s'il y a une erreur, et FALSE sinon.

Voir aussi

libxml_get_errors()
libxml_clear_errors()

Précédent | Sommaire | Suivant
libxml_get_errors | Niveau supérieur | libxml_set_streams_context


libxml_set_streams_context

(PHP 5)

libxml_set_streams_context -- Configure le contexte de flux pour la prochaine opération libxml

Description

void libxml_set_streams_context ( resource streams_context )

libxml_set_streams_context() configure le contexte de flux pour la prochaine opération libxml.

Liste de paramètres

streams_context

La ressource de contexte de flux, créé avec la fonction stream_context_create().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Exemple avec libxml_set_streams_context()

<?php

$opts = array(
    'http' => array(
        'user_agent' => 'PHP libxml agent',
    )
);

$context = stream_context_create($opts);
libxml_set_streams_context($context);

// lit un fichier via HTTP
$doc = DOMDocument::load('http://www.example.com/file.xml');

?>

Voir aussi

stream_context_create()

Précédent | Sommaire | Suivant
libxml_get_last_error | Niveau supérieur | libxml_use_internal_errors


libxml_use_internal_errors

(PHP 5 >= 5.1.0RC1)

libxml_use_internal_errors -- Désactive le rapport d'erreur libxml et les stocke pour lecture ultérieure

Description

bool libxml_use_internal_errors ( [bool use_errors] )

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 ou désactive le rapport d'erreur. Par défaut, FALSE.

Valeurs de retour

libxml_use_internal_errors() retourne la valeur précédemment configurée pour use_errors.

Exemples

Exemple 1. Exemple avec libxml_use_internal_errors()

Cet exemple montre l'utilisation de base des erreurs libxml, et la valeur retournée par cette fonction.

<?php

// active la gestion d'erreur personnalisée
var_dump(libxml_use_internal_errors(true));

$doc = DOMDocument::load('file.xml');

if (!$doc) {
    $errors = libxml_get_errors();
    foreach ($errors as $error) {
        // gère les erreurs ici
    }

    libxml_clear_errors();
}

?>

L'exemple ci-dessus va afficher :

bool(false)

Voir aussi

libxml_clear_errors()
libxml_get_errors()

Précédent | Sommaire | Suivant
libxml_set_streams_context | Niveau supérieur | Lotus Notes


Fonctions LZF

Manuel PHP
Précédent Suivant

LXXVIII. Fonctions 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.

Installation

Cette extension PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/lzf.

Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support lzf en utilisant l'option de configuration --with-lzf[=DIR]. Vous pouvez également passer l'option --enable-lzf-better-compression pour optimiser LZF d'un point de vue d'espace au détriment de la vitesse.

Les utilisateurs de Windows doivent activer la bibliothèque php_lzf.dll dans le php.ini pour pouvoir utiliser ces fonctions. La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Table des matières
lzf_compress -- Compression LZF
lzf_decompress -- Décompression LZF
lzf_optimized_for -- Détermine le mode d'optimisation de l'extension LZF

Précédent | Sommaire | Suivant
notes_version | Niveau supérieur | lzf_compress


lzf_compress

(PECL)

lzf_compress -- Compression LZF

Description

string lzf_compress ( string data )

lzf_compress() compresse les données se trouvant dans le paramètre arg.

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

Précédent | Sommaire | Suivant
Fonctions LZF | Niveau supérieur | lzf_decompress


lzf_decompress

(PECL)

lzf_decompress -- Décompression LZF

Description

string lzf_decompress ( string data )

lzf_compress() décompresse les données contenues dans le paramètre arg.

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

Précédent | Sommaire | Suivant
lzf_compress | Niveau supérieur | lzf_optimized_for


lzf_optimized_for

(PECL)

lzf_optimized_for -- Détermine le mode d'optimisation de l'extension LZF

Description

int lzf_optimized_for ( void )

lzf_optimized_for() détermine le mode d'optimisation de l'extension LZF.

Valeurs de retour

Retourne 1 si LZF a été optimisé pour la vitesse, 0 pour la compression.

Précédent | Sommaire | Suivant
lzf_decompress | Niveau supérieur | Mail


Mail

Manuel PHP
Précédent Suivant

LXXIX. Mail

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.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | NULL | PHP_INI_SYSTEM |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

smtp string

Sous Windows seulement : nom de l'hôte ou adresse IP du SMTP que PHP doit utiliser pour envoyer un mail avec la fonction mail().

smtp_port int

Sous Windows seulement : numéro de port à utiliser pour se connecter au serveur SMTP lors de l'envoi de mail avec la fonction mail(); par défaut, c'est 25. Uniquement disponible depuis PHP 4.3.0.

sendmail_from string

Sous Windows seulement : valeur du champ "From:" qui doit être utilisée lors de l'envoi de mail. Cette directive définira également l'en-tête "Return-Path:".

sendmail_path string

Localisation du programme sendmail : habituellement /usr/sbin/sendmail ou /usr/lib/sendmail. configure essaye de repérer la présence de sendmail par lui-même, et affecte ce résultat par défaut. En cas de problème de localisation, vous pouvez établir une nouvelle valeur par défaut ici.

Tout système n'utilisant pas sendmail doit établir cette directive à la valeur chemin du programme de substitution qui remplace le serveur de mail, si celui-ci existe, par exemple, Qmail. Dans ce cas-là, vous devez mettre : /var/qmail/bin/sendmail.

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

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
ezmlm_hash -- Calcule le hachage demandé par EZMLM
mail -- Envoi un mail

Précédent | Sommaire | Suivant
lzf_optimized_for | Niveau supérieur | ezmlm_hash


ezmlm_hash

(PHP 3 >= 3.0.17, PHP 4 >= 4.0.2, PHP 5)

ezmlm_hash -- Calcule le hachage demandé par EZMLM

Description

int ezmlm_hash ( string addr )

ezmlm_hash() calcule le hachage nécessaire lors de la gestion de listes de diffusion EZMLM avec une base de données MySQL.

Liste de paramètres

addr

L'adresse E-Mail qui doit être hachée.

Valeurs de retour

La valeur du hachage de addr.

Exemples

Exemple 1. Calcul du hachage et enregistrement d'un utilisateur de liste de diffusion

<?php

     $user = "joecool@example.com";
     $hash = ezmlm_hash($user);
     $query = sprintf("INSERT INTO sample VALUES (%s, '%s')", $hash, $user);
     $db->query($query); // utilisation de l'interface PHPLIB

?>

Précédent | Sommaire | Suivant
Mail | Niveau supérieur | mail


mail

(PHP 3, PHP 4, PHP 5)

mail -- Envoi un mail

Description

bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] )

Envoi un mail.

Liste de paramètres

to

Le ou les destinataires du mail.

Le formattage de cette chaîne doit correspondre avec la RFC 2822. Voici quelques exemples :

utilisateur@example.com
utilisateur.com, autre_utilisateur@example.com
Utilisateur <utilisateur@example.com>
Utilisateur <utilisateur@example.com>, Another User <anotheruser@example.com>

subject

Sujet du mail à envoyer.

Attention

Il ne doit comporter aucun caractère de nouvelle ligne sinon, le mail risque de ne pas être envoyé correctement.

message

Message à envoyer.

Chaque ligne doit être séparée par un caractère LF (\n). Les lignes ne doit 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 occurences par un double point.

<?php
     $text = str_replace("\n.", "\n..", $text);
?>

additional_headers (optionnel)

CHaîne à insérer à la fin des en-têtes du mail.

Ce paramètre est typiquement utilisé pour ajouter des en-têtes supplémentaires (From, Cc et Bcc). Les en-têtes supplémentaires doivent être séparés par un caractère CRLF (\r\n).

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 sous Windows.

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 de mauvaise qualité remplacent le caractère LF par le caractère CRLF automatiquement (ce qui revient à doubler le caractère CR si le caractère CRLF est utilisé). Ceci doit être un dernier recours car cela ne correspond pas à la RFC 2822.

additional_parameters (optionnel)

Le paramètre additional_parameters peut être utilisé pour passer des paramètres additionnels au programme configuré à être utilisé pour envoyer les mails en utilisant le paramètre de configuration sendmail_path. Par exemple, ceci peut être utilisé pour définir l'enveloppe de l'adresse de l'expéditeur lors de l'utilisation de sendmail avec l'option -f.

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'enveloppe de l'expéditeur (-f) est défini en utilisant cette méthode. Pour les utilisateurs de sendmail, ce fichier est /etc/mail/trusted-users.

Valeurs de retour

Retourne TRUE si le mail a été accepté pour livraison, FALSE sinon.

Il est important de noter que ce n'est pas parce que le mail a été accepté pour livraison qu'il arrivera à destination.

Historique

Version | Description
4.3.0 (Windows uniquement) | Tous les en-têtes personnalisés (comme From, Cc, Bcc et Date) sont supportés et ne sont pas sensibles à la casse. (Parce que les en-têtes personnalisés ne sont pas interprétés par le MTA dans un premir temps mais analysés par PHP, PHP 4.3 supporte uniquement l'en-tête Cc et est sensible à la casse).
4.2.3 | Le paramètre additional_parameters est désactivé dans le safe_mode et la fonction mail() affichera un message d'alerte et retournera FALSE lors de son utilisation.
4.0.5 | Le paramètre additional_parameters a été ajouté.

Exemples

Exemple 1. Envoi d'un mail.

Utilisation de la fonction mail() pour envoyer un mail simple :

<?php
     // Le message
     $message = "Line 1\nLine 2\nLine 3";

     // Dans le cas où nos lignes comportent plus de 70 caractères, nous les coupons en utilisant wordwrap()
     $message = wordwrap($message, 70);

     // Envoi du mail
     mail('caffinated@example.com', 'Mon Sujet', $message);
?>

Exemple 2. Envoi d'un mail avec des en-têtes supplémentaires.

L'ajout d'en-têtes simples, spécifiant au MUA les adresses From et Reply-To :

<?php
     $to      = 'personne@example.com';
     $subject = 'le sujet';
     $message = 'Bonjour !';
     $headers = 'From: webmaster@example.com' . "\r\n" .
     'Reply-To: webmaster@example.com' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();

     mail($to, $subject, $message, $headers);
 ?>

Exemple 3. Envoi d'un mail avec un paramètre de ligne de commande additionnel.

Le paramètre additional_parameters peut être utilisé pour passer un paramètre additionnel au programme configuré à être utilisé pour envoyer les mails en utilisant sendmail_path.

<?php
     mail('personne@example.com', 'le sujet', 'le message', null,
     '-fwebmaster@example.com');
?>

Exemple 4. Envoi de mail HTML

Il est également possible d'envoyer des mails HTML avec la fonction mail().

<?php
     // Plusieurs destinataires
     $to  = 'aidan@example.com' . ', '; // notez la virgule
     $to .= 'wez@example.com';

     // Sujet
     $subject = 'Calendrier des anniversaires pour Août';

     // message
     $message = '
     <html>
      <head>
       <title>Calendrier des anniversaires pour Août</title>
      </head>
      <body>
       <p>Voici les anniversaires à venir au mois d\'Août !</p>
       <table>
        <tr>
         <th>Personne</th><th>Jour</th><th>Mois</th><th>Année</th>
        </tr>
        <tr>
         <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
        </tr>
        <tr>
         <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
        </tr>
       </table>
      </body>
     </html>
     ';

     // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
     $headers  = 'MIME-Version: 1.0' . "\r\n";
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

     // En-têtes additionnels
     $headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
     $headers .= 'From: Anniversaire <anniversaire@example.com>' . "\r\n";
     $headers .= 'Cc: anniversaire_archive@example.com' . "\r\n";
     $headers .= 'Bcc: anniversaire_verif@example.com' . "\r\n";

     // Envoi
     mail($to, $subject, $message, $headers);
?>

Note : Si vous prévoyez d'envoyer des mails HTML ou autrement plus complexes, il est recommandé d'utiliser le paquet PEAR PEAR::Mail.

Notes

Note : L'implémentation de la fonction mail() sous Windows diffère de manière significative avec l'implémentation Unix. Tout d'abord, il n'utilise pas un binaire 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 : Les mails avec des pièces jointes et des types spéciaux de contenus (e.g. HTML) peuvent être envoyés en utilisant cette fonction. Ceci est accompli via MIME-encoding - pour plus d'informations, lisez cet article de Zend ou les classes PEAR Mime.

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 RFCs suivantes peuvent être utiles : RFC 1896, RFC 2045, RFC 2046, RFC 2047, RFC 2048, RFC 2049 et RFC 2822.

Voir aussi

imap_mail()
PEAR::Mail
PEAR::Mail_Mime

Précédent | Sommaire | Suivant
ezmlm_hash | Niveau supérieur | Traitement d'Email


Traitement d'Email

Manuel PHP
Précédent Suivant

LXXX. Traitement d'Email

Introduction

Mailparse est une extension pour analyser et travailler avec les messages électroniques. Il peut gérer les messages répondant aux RFC 822 et RFC 2045 (MIME).

Mailparse est basé sur les flux, ce qui signifie qu'il ne conserve pas en mémoire les copies des fichiers dont il s'occupe - ainsi, il est peut couteux en ressource lorsqu'il traite de gros messages.

Note : Mailparse nécessite l'extension mbstring.

Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 4.2.0.

Installation

Cette extension PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/mailparse.

Si vous voulez utiliser ces fonctions, vous devez compiler PHP avec le support mailparse en utilisant l'option de configuration --enable-mailparse.

Les utilisateurs de Windows doivent activer la bibliothèque php_mailparse.dll dans le php.ini pour pouvoir utiliser ces fonctions. La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Mailparse configuration options

Name | Default | Changeable | Changelog
mailparse.def_charset | "us-ascii" | PHP_INI_ALL |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MAILPARSE_EXTRACT_OUTPUT (integer)

MAILPARSE_EXTRACT_STREAM (integer)

MAILPARSE_EXTRACT_RETURN (integer)

Table des matières
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 -- Extracts a message section including headers without decoding the transfer encoding
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

Précédent | Sommaire | Suivant
mail | Niveau supérieur | mailparse_determine_best_xfer_encoding


mailparse_determine_best_xfer_encoding

(4.1.0 - 4.1.2 only, PECL)

mailparse_determine_best_xfer_encoding -- Détermine le meilleur encodage pour un fichier

Description

string mailparse_determine_best_xfer_encoding ( resource fp )

Détermine le meilleur encodage pour le contenu du fichier fourni.

Liste de paramètres

fp

Un pointeur de fichier valide, qui peut être lu.

Valeurs de retour

Retourne un encodage de caractères supporté par le module mbstring.

Exemples

Exemple 1. Exemple avec mailparse_determine_best_xfer_encoding()

<?php

$fp = fopen('somemail.eml', 'r');
echo 'Meilleur encodage : ' . mailparse_determine_best_xfer_encoding($fp);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Meilleur encodage : 7bit

Précédent | Sommaire | Suivant
Traitement d'Email | Niveau supérieur | mailparse_msg_create


mailparse_msg_create

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_create -- Crée une ressource email mime

Description

resource mailparse_msg_create ( void )

Crée une ressource email MIME.

Valeurs de retour

Retourne un gestionnaire qui pourra être utilisé pour analyser un message.

Voir aussi

mailparse_msg_free()
mailparse_msg_parse_file()

Précédent | Sommaire | Suivant
mailparse_determine_best_xfer_encoding | Niveau supérieur | mailparse_msg_extract_part_file


mailparse_msg_extract_part_file

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_extract_part_file -- Extrait et décode une section de message

Description

string mailparse_msg_extract_part_file ( resource mimemail, mixed filename [, callback callbackfunc] )

Extrait et décode une section de message depuis le fichier fourni.

Le contenu de la section sera encodé suivant son encodage - base64, quoted-printable et texte uuencoded sont supportés.

Liste de paramètres

mimemail

Une ressource valide MIME, créée avec la fonction mailparse_msg_create().

filename

Peut être un nom de fichier ou un flux valide.

callbackfunc

Si défini, ce peut être soit un callback valide qui sera passé à la section extraire, 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()
mailparse_msg_extract_whole_part_file()

Précédent | Sommaire | Suivant
mailparse_msg_create | Niveau supérieur | mailparse_msg_extract_part


mailparse_msg_extract_part

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_extract_part -- Extrait et décode une section de message

Description

void mailparse_msg_extract_part ( resource mimemail, string msgbody [, callback callbackfunc] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

Une ressource MIME valide.

msgbody

callbackfunc

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

mailparse_msg_extract_part_file()
mailparse_msg_extract_whole_part_file()

Précédent | Sommaire | Suivant
mailparse_msg_extract_part_file | Niveau supérieur | mailparse_msg_extract_whole_part_file


mailparse_msg_free

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_free -- Libère une ressource MIME

Description

bool mailparse_msg_free ( resource mimemail )

Libère une ressource MIME.

Liste de paramètres

mimemail

Une ressource MIME allouée par la fonction mailparse_msg_create() ou la fonction mailparse_msg_parse_file().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

mailparse_msg_create()
mailparse_msg_parse_file()

Précédent | Sommaire | Suivant
mailparse_msg_extract_whole_part_file | Niveau supérieur | mailparse_msg_get_part_data


mailparse_msg_get_part_data

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_get_part_data -- Retourne un tableau associatif avec des informations sur le message

Description

array mailparse_msg_get_part_data ( resource mimemail )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

Une ressource MIME valide.

Précédent | Sommaire | Suivant
mailparse_msg_free | Niveau supérieur | mailparse_msg_get_part


mailparse_msg_get_part

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_get_part -- Retourne une ressource sur une section d'un message MIME

Description

resource mailparse_msg_get_part ( resource mimemail, string mimesection )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

Une ressource MIME valide.

mimesection

Précédent | Sommaire | Suivant
mailparse_msg_get_part_data | Niveau supérieur | mailparse_msg_get_structure


mailparse_msg_get_structure

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_get_structure -- Retourne un tableau avec les différentes sections MIME du message

Description

array mailparse_msg_get_structure ( resource mimemail )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

Une ressource MIME valide.

Précédent | Sommaire | Suivant
mailparse_msg_get_part | Niveau supérieur | mailparse_msg_parse_file


mailparse_msg_parse_file

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_parse_file -- Analyse un fichier

Description

resource mailparse_msg_parse_file ( string filename )

Analyse un fichier. C'est la façon optimale d'analyser un email que vous avez sur votre disque.

Liste de paramètres

filename

Chemin vers le fichier contenant le message. Le fichier sera ouvert et envoyé sous forme de flux à l'analyseur.

Valeurs de retour

Retourne une ressource MIME représentant la structure, ou FALSE si une erreur survient.

Voir aussi

mailparse_msg_free()
mailparse_msg_create()

Précédent | Sommaire | Suivant
mailparse_msg_get_structure | Niveau supérieur | mailparse_msg_parse


mailparse_msg_parse

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_parse -- Analyse incrémentalement des données dans un buffer

Description

bool mailparse_msg_parse ( resource mimemail, string data )

Analyse incrémentalement des données dans une ressource mime fournie.

Cette fonction vous permet d'envoyer sous forme de flux des portions d'un fichier à la fois, plutôt que de tout lire et de tout analyser en une seule fois.

Liste de paramètres

mimemail

Une ressource MIME valide.

data

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
mailparse_msg_parse_file | Niveau supérieur | mailparse_rfc822_parse_addresses


mailparse_rfc822_parse_addresses

(4.1.0 - 4.1.2 only, PECL)

mailparse_rfc822_parse_addresses -- Analyse des adresses

Description

array mailparse_rfc822_parse_addresses ( string addresses )

Analyse une liste d'adresses valides eu égard à la RFC 822, comme celles trouvées dans l'en-tête To:.

Liste de paramètres

addresses

Une chaîne de caractères contenant les adresses, comme : Wez Furlong <wez@example.com>, doe@example.com

Note : Cette chaîne de caractères ne doit pas contenir le nom de l'en-tête.

Valeurs de retour

Retourne un tableau de tableaux associatifs contenant les clés suivantes pour chaque adresses :

display | Le nom de l'adresse, aux fins d'affichage. Si cette partie n'est pas définie pour une adresse, il contiendra la même valeur que la clé address.
address | L'adresse email
is_group | TRUE si l'adresse est un newsgroup, FALSE sinon.

Exemples

Exemple 1. Exemple avec mailparse_rfc822_parse_addresses()

<?php

$to = 'Wez Furlong <wez@example.com>, doe@example.com';
var_dump(mailparse_rfc822_parse_addresses($to));

?>

L'exemple ci-dessus va afficher :

array(2) {
  [0]=>
  array(3) {
    ["display"]=>
    string(11) "Wez Furlong"
    ["address"]=>
    string(15) "wez@example.com"
    ["is_group"]=>
    bool(false)
  }
  [1]=>
  array(3) {
    ["display"]=>
    string(15) "doe@example.com"
    ["address"]=>
    string(15) "doe@example.com"
    ["is_group"]=>
    bool(false)
  }
}

Précédent | Sommaire | Suivant
mailparse_msg_parse | Niveau supérieur | mailparse_stream_encode


mailparse_stream_encode

(4.1.0 - 4.1.2 only, PECL)

mailparse_stream_encode -- Lit les données dans un fichier, applique l'encodage et envoie le résultat à destfp

Description

bool mailparse_stream_encode ( resource sourcefp, resource destfp, string encoding )

Lit les données dans un fichier, applique l'encodage encoding et envoie le résultat à destfp.

Liste de paramètres

sourcefp

Un gestionnaire de fichier valide. Le fichier sera envoyé à l'analyseur sous forme de flux.

destfp

Le gestionnaire de fichier destinataire, dans lequel les données encodées seront écrites.

encoding

Un des encodages de caractères supportés par le module mbstring.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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.

Précédent | Sommaire | Suivant
mailparse_rfc822_parse_addresses | Niveau supérieur | mailparse_uudecode_all


mailparse_uudecode_all

(PECL)

mailparse_uudecode_all -- Scanne les données du fichier et extrait tous les fichiers encodés qui s'y trouvent

Description

array mailparse_uudecode_all ( resource fp )

Scanne les données du fichier fourni et extrait, dans un fichier temporaire, tous les fichiers encodés qui s'y trouvent.

Liste de paramètres

fp

Un pointeur de fichier valide.

Valeurs de retour

Retourne un tableau de tableaux associatifs listant les informations sur les noms de fichiers.

filename | Chemin vers le fichier temporaire à créer
origfilename | Le nom de fichier original, pour les sections uuencoded uniquement

La première entrée du fichier est le corps du message. Les entrées suivantes sont les fichiers décodés uuencoded.

Exemples

Exemple 1. Exemple avec mailparse_uudecode_all()

<?php

$text = <<<EOD
To: fred@example.com

hello, this is some text hello.
blah blah blah.

begin 644 test.txt
/=&AI<R!I<R!A('1E<W0*
`
end

EOD;

$fp = tmpfile();
fwrite($fp, $text);

$data = mailparse_uudecode_all($fp);

echo "BODY\n";
readfile($data[0]["filename"]);
echo "UUE ({$data[1]['origfilename']})\n";
readfile($data[1]["filename"]);

// Nettoyage
unlink($data[0]["filename"]);
unlink($data[1]["filename"]);

?>

L'exemple ci-dessus va afficher :

BODY
To: fred@example.com

hello, this is some text hello.
blah blah blah.

UUE (test.txt)
this is a test

Précédent | Sommaire | Suivant
mailparse_stream_encode | Niveau supérieur | Mathématiques


Mathématiques

Manuel PHP
Précédent Suivant

LXXXI. Mathématiques

Introduction

Ces fonctions ne sont capables de manipuler que des entiers entier, ou nombres à virgule flottante (float). Si vous avez besoin de manipuler des nombres plus grands, reportez-vous aux fonctions mathématiques sur des nombres de grande taille.

Voir aussi la page du manuel sur les opérateurs arithmétiques.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

Tableau 1. Constantes mathématiques

Constante | Valeur | Description
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) [5.2.0]
M_2_SQRTPI | 1.12837916709551257390 | 2/sqrt(pi)
M_SQRT2 | 1.41421356237309504880 | sqrt(2)
M_SQRT3 | 1.73205080756887729352 | sqrt(3) [5.2.0]
M_SQRT1_2 | 0.70710678118654752440 | 1/sqrt(2)
M_LNPI | 1.14472988584940017414 | log_e(pi) [5.2.0]
M_EULER | 0.57721566490153286061 | Euler constant [4.0.2]
Seule M_PI est disponible dans les verisons de PHP jusqu'à 4.0.0. Toutes les autres constantes on été ajoutées à partir de PHP 4.0.0, et les autres ont été indiquées avec [5.2.0].

Table des matières
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 tangent
atanh -- Arc tangeant 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 hyperbolic
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
expm1 -- Retourne le résultat de exp(number) - 1, calculé de manière précise, même si val est proche de 0
floor -- Arrondit à l'entier inférieur
fmod -- Retourne le reste de la division
getrandmax -- Plus grande valeur aléatoire possible
hexdec -- Convertit de hexadécimal en décimal
hypot -- Calcul la longueur de l'hypoténuse d'un triangle à angle droit
is_finite -- Indique si un nombre est fini
is_infinite --
is_nan -- Indique si une valeur est un nombre
lcg_value -- Générateur de congruence combinée linéaire
log10 -- logarithme en base 10
log1p -- Retourne le résultat de log(1 + number), calculé de manière précise, même si val est proche de zéro
log -- Logarithme naturel (népérien)
max -- La plus grande valeur
min -- La plus petite valeur
mt_getrandmax -- La plus grand valeur aléatoire possible
mt_rand -- Génère une valeur aléatoire (meilleure méthode)
mt_srand -- Initialise une valeur aléatoire (meilleure méthode)
octdec -- Conversion d'octal en décimal
pi -- Retourne la valeur de pi
pow -- Expression exponentielle
rad2deg -- Conversion de radians en degrés
rand -- Génère une valeur aléatoire
round -- Arrondi
sin -- Sinus
sinh -- Sinyus hyperbolique
sqrt -- Racine carrée
srand -- Initialise le générateur de nombres aléatoires
tan -- Tangente
tanh -- Tangente hyperbolique

Précédent | Sommaire | Suivant
mailparse_uudecode_all | Niveau supérieur | abs


abs

(PHP 3, PHP 4, PHP 5)

abs -- Valeur absolue

Description

number abs ( mixed number )

abs() retourne la valeur absolue du nombre number. Si le nombre est un nombre à virgule flottante (float), le type retourné est aussi un nombre à virgule flottante (float), sinon, c'est un entier (entier).

Exemple 1. Exemple avec abs()

<?php
$abs = abs(-4.2); // $abs = 4.2; (double/float)
$abs2 = abs(5);   // $abs2 = 5; (integer)
$abs3 = abs(-5);  // $abs3 = 5; (integer)
?>

Précédent | Sommaire | Suivant
Mathématiques | Niveau supérieur | acos


acos

(PHP 3, PHP 4, PHP 5)

acos -- arc cosinus

Description

float acos ( float arg )

acos() retourne l'arc cosinus de arg (arg en radians). acos() est la fonction inverse de cos(), ce qui signifie que a==cos(acos(a)) pour toute valeur qui soit dans l'intervalle de validité de acos().

Voir aussi
acosh(),
asin() et
atan().

Précédent | Sommaire | Suivant
abs | Niveau supérieur | acosh


acosh

(PHP 4 >= 4.1.0, PHP 5)

acosh -- Arc cosinus hyperbolique

Description

float acosh ( float arg )

acosh() retourne l'arc cosinus hyperbolique de arg, c'est à dire la valeur dont le cosinus hyperbolique est arg.

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi
acos(),
asinh() et
atanh().

Précédent | Sommaire | Suivant
acos | Niveau supérieur | asin


asin

(PHP 3, PHP 4, PHP 5)

asin -- arc sinus

Description

float asin ( float arg )

asin() retourne l'arc sinus de arg (arg en radians). asin() est la fonction inverse de sin(), ce qui signifie que a==sin(asin(a)) pour toute valeur qui soit dans l'intervalle de validité de asin().

Voir aussi
asinh(),
acos() et
atan().

Précédent | Sommaire | Suivant
acosh | Niveau supérieur | asinh


asinh

(PHP 4 >= 4.1.0, PHP 5)

asinh -- Arc sinus hyperbolique

Description

float asinh ( float arg )

asinh() retourne l'arc sinus hyperbolique de arg, c'est à dire la valeur dont le sinus hyperbolique est arg.

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi
asin(),
acosh() et
atanh().

Précédent | Sommaire | Suivant
asin | Niveau supérieur | atan2


atan2

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

atan2 -- Arc tangent de deux variables

Description

float atan2 ( float y, float x )

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

atan2() retourne un résultat en radians, entre -PI et PI (inclus).

Voir aussi acos() et atan().

Précédent | Sommaire | Suivant
asinh | Niveau supérieur | atan


atan

(PHP 3, PHP 4, PHP 5)

atan -- arc tangent

Description

float atan ( float arg )

atan() retourne l'arc tangent de arg (arg en radians). atan() est la fonction inverse de tan(), ce qui signifie que a==tan(atan(a)) pour toute valeur qui soit dans l'intervalle de validité de atan().

Voir aussi
atanh(),
asin() et
acos().

Précédent | Sommaire | Suivant
atan2 | Niveau supérieur | atanh


atanh

(PHP 4 >= 4.1.0, PHP 5)

atanh -- Arc tangeant hyperbolique

Description

float atanh ( float arg )

atanh() retourne l'arc tangente hyperbolique de arg, c'est à dire la valeur dont la tangente hyperbolique est arg.

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi
atan(),
asinh() et
acosh().

Précédent | Sommaire | Suivant
atan | Niveau supérieur | base_convert


base_convert

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

base_convert -- Convertit un nombre entre des bases arbitraires

Description

string base_convert ( string number, int frombase, int tobase )

base_convert() retourne une chaîne contenant l'argument number représenté dans la base tobase. La base de représentation de number est donnée par frombase. frombase et tobase doivent être compris entre 2 et 36 inclus. Les chiffres supérieurs à 10 des bases supérieures à 10 seront représentés par les lettres de A à Z, avec A = 10 et Z = 36.

Exemple 1. Exemple avec base_convert()

<?php
$hexadecimal = 'A37334';
echo base_convert($hexadecimal, 16, 2);
?>

L'exemple ci-dessus va afficher :

101000110111001100110100

Avertissement

base_convert() perdra la précision sur les grands nombres dû à la propriété interne des types "double" et "float". Merci de regarder la section sur les nombres à virgule flottante dans ce manuel pour plus d'informations.

Voyez aussi : intval().

Précédent | Sommaire | Suivant
atanh | Niveau supérieur | bindec


bindec

(PHP 3, PHP 4, PHP 5)

bindec -- Convertit de binaire en décimal

Description

number bindec ( string binary_string )

bindec() retourne la conversion d'un nombre binaire représenté par la chaîne binary_string en décimal.

bindec() convertit un nombre binaire en décimal. Le plus grand nombre convertible a 31 bits à 1, soit 2147483647 en décimal. Depuis PHP 4.1.0, cette fonction peut également convertir de très grands nombres. Elle retourne un nombre de type float dans ce cas.

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

Voir aussi
decbin(),
octdec(),
hexdec() et
base_convert().

Précédent | Sommaire | Suivant
base_convert | Niveau supérieur | ceil


ceil

(PHP 3, PHP 4, PHP 5)

ceil -- Arrondit au nombre supérieur

Description

float ceil ( float value )

ceil() retourne l'entier supérieur du nombre value. Utiliser ceil() sur un entier ne sert à rien. La valeur retournée est un nombre à virgule flottante (float), car ces nombres peuvent être plus grands que les entiers.

Exemple 1. Exemple avec ceil()

<?php
echo ceil(4.3);    // 5
echo ceil(9.999);  // 10
echo ceil(-3.14);  // -3
?>

Voir aussi floor() et round().

Précédent | Sommaire | Suivant
bindec | Niveau supérieur | cos


cos

(PHP 3, PHP 4, PHP 5)

cos -- cosinus

Description

float cos ( float arg )

cos() retourne le cosinus de arg (arg en radians).

Exemple 1. Exemple avec cos()

<?php

echo cos(M_PI); // -1

?>

Voir aussi
acos(),
sin()
tan() et
deg2rad().

Précédent | Sommaire | Suivant
ceil | Niveau supérieur | cosh


cosh

(PHP 4 >= 4.1.0, PHP 5)

cosh -- Cosinus hyperbolic

Description

float cosh ( float arg )

cosh() retourne le cosinus hyperbolique de arg, définit comme (exp(arg) + exp(-arg))/2.

Voir aussi
cos(),
acosh(),
sin() et
tan().

Précédent | Sommaire | Suivant
cos | Niveau supérieur | decbin


decbin

(PHP 3, PHP 4, PHP 5)

decbin -- Convertit de décimal en binaire

Description

string decbin ( int number )

decbin() retourne une chaîne contenant la représentation binaire de l'entier donné en argument. Le plus grand nombre pouvant être converti est 2147483647 en décimal, ce qui donne une série de 31 uns (1).

Exemple 1. Exemple avec decbin()

<?php
echo decbin(12) . "\n";
echo decbin(26);
?>

L'exemple ci-dessus va afficher :

1100
11010

Voir aussi
bindec(),
decoct(),
dechex() et
base_convert().

Précédent | Sommaire | Suivant
cosh | Niveau supérieur | dechex


dechex

(PHP 3, PHP 4, PHP 5)

dechex -- Convertit de décimal en hexadécimal

Description

string dechex ( int number )

dechex() retourne une chaîne contenant la représentation hexadécimale du nombre number. Le nombre le plus grand qui puisse être converti est 4294967295 en décimal, ce qui donnera "ffffffff".

Exemple 1. Exemple avec dechex()

<?php
echo dechex(10) . "\n";
echo dechex(47);
?>

L'exemple ci-dessus va afficher :

a
2f

Voir aussi
hexdec(),
decbin(),
decoct() et
base_convert().

Précédent | Sommaire | Suivant
decbin | Niveau supérieur | decoct


decoct

(PHP 3, PHP 4, PHP 5)

decoct -- Convertit de décimal en octal

Description

string decoct ( int number )

decoct() retourne une chaîne contenant la représentation octale du nombre donné number. Le nombre le plus grand qui puisse être converti est 4294967295 en décimal, ce qui donnera "37777777777".

Exemple 1. Exemple avec decoct()

<?php
echo decoct(15) . "\n";
echo decoct(264);
?>

L'exemple ci-dessus va afficher :

17
410

Voir aussi
octdec(),
decbin(),
dechex() et
base_convert().

Précédent | Sommaire | Suivant
dechex | Niveau supérieur | deg2rad


deg2rad

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

deg2rad -- Convertit un nombre de degrés en radians

Description

float deg2rad ( float number )

deg2rad() convertit number de degrés en radians.

Exemple 1. Exemple avec deg2rad()

<?php

echo deg2rad(45); // 0.785398163397
var_dump(deg2rad(45) === M_PI_4); // bool(true)

?>

Voir aussi rad2deg().

Précédent | Sommaire | Suivant
decoct | Niveau supérieur | exp


exp

(PHP 3, PHP 4, PHP 5)

exp -- Calcul l'exponentielle

Description

float exp ( float arg )

exp() retourne l'exponentielle de arg, c'est-à-dire e élevé à la puissance arg.

Note : 'e' est le logarithme naturel, ou approximativement 2.718282.

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 pow() et log().

Précédent | Sommaire | Suivant
deg2rad | Niveau supérieur | expm1


expm1

(PHP 4 >= 4.1.0, PHP 5)

expm1 -- Retourne le résultat de exp(number) - 1, calculé de manière précise, même si val est proche de 0

Description

float expm1 ( float number )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

expm1() retourne l'équivalent de 'exp(number) - 1' calculé de tel sorte qu'il sera précis, même si la valeur de l'argument number est proche de 0, un cas où l'expression 'exp (number) - 1' n'est pas précis, du fait de la soustraction de deux nombres quasi-égaux.

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi log1p() et exp().

Précédent | Sommaire | Suivant
exp | Niveau supérieur | floor


floor

(PHP 3, PHP 4, PHP 5)

floor -- Arrondit à l'entier inférieur

Description

float floor ( float value )

floor() retourne l'entier inférieur du nombre value. La valeur retournée est un nombre à virgule flottante, (float) car ces nombres peuvent être plus grands que les entiers.

Exemple 1. Exemple avec floor()

<?php
echo floor(4.3);   // 4
echo floor(9.999); // 9
echo floor(-3.14); // -4
?>

Voir aussi ceil() et round().

Précédent | Sommaire | Suivant
expm1 | Niveau supérieur | fmod


fmod

(PHP 4 >= 4.2.0, PHP 5)

fmod -- Retourne le reste de la division

Description

float fmod ( float x, float y )

fmod retourne le reste de la division de (x) par (y). Ce reste est un nombre à virgule flottante. Le reste est défini par : x = i * y + r, pour un entier i. Si y n'est pas nul, r a le même signe que x est une taille inférieure à y.

Exemple 1. Exemple avec fmod()

<?php
$x = 5.7;
$y = 1.3;
$r = fmod($x, $y);
// $r égale 0.5, car 4 * 1.3 + 0.5 = 5.7
?>

Précédent | Sommaire | Suivant
floor | Niveau supérieur | getrandmax


getrandmax

(PHP 3, PHP 4, PHP 5)

getrandmax -- Plus grande valeur aléatoire possible

Description

int getrandmax ( void )

getrandmax() retourne la plus grande valeur aléatoire possible retournée par rand().

Voir aussi
rand(),
srand() et
mt_getrandmax().

Précédent | Sommaire | Suivant
fmod | Niveau supérieur | hexdec


hexdec

(PHP 3, PHP 4, PHP 5)

hexdec -- Convertit de hexadécimal en décimal

Description

number hexdec ( string hex_string )

hexdec() retourne une chaîne contenant la représentation décimale du nombre hex_string. Le nombre le plus grand qui puisse être converti est 7fffffff en décimal, ce qui donne "2147483647". Depuis PHP 4.1.0, cette fonction peut également convertir de très grands nombres. Elle retourne un nombre de type float dans ce cas.

hexdec() remplace tous les caractères non-hexadécimaux par des 0. Et si les zéros de gauche sont ignorés, ceux de droite prennent le propre valeur.

Exemple 1. Exemple avec hexdec()

<?php
var_dump(hexdec("Hop comme ceci"));
var_dump(hexdec("0000c000e0cec0"));
var_dump(hexdec("c000e0cec0"));
// les deux affichent "int(14732992)"

var_dump(hexdec("aussi"));
var_dump(hexdec("a0000"));
// les deux affichent "int(655360)"
?>

Voir aussi
dechex(),
bindec(),
octdec() et
base_convert().

Précédent | Sommaire | Suivant
getrandmax | Niveau supérieur | hypot


hypot

(PHP 4 >= 4.1.0, PHP 5)

hypot -- Calcul la longueur de l'hypoténuse d'un triangle à angle droit

Description

float hypot ( float x, float y )

hypot() retourne la longueur de l'hypoténuse d'un triangle à angle droit qui a des cotés d'une longueur x et y ou bien la distance du point (x, y) depuis l'origine. Ceci est l'équivalent de sqrt(x*x + y*y).

Précédent | Sommaire | Suivant
hexdec | Niveau supérieur | is_finite


is_finite

(PHP 4 >= 4.2.0, PHP 5)

is_finite -- Indique si un nombre est fini

Description

bool is_finite ( float val )

is_finite() retourne TRUE si val est une valeur finie, c'est à dire une valeur qui peut être représentée par un nombre à virgule flottante sur cette plate-forme.

Voir aussi is_infinite() et is_nan().

Précédent | Sommaire | Suivant
hypot | Niveau supérieur | is_infinite


is_infinite

(PHP 4 >= 4.2.0, PHP 5)

is_infinite --

Description

bool is_infinite ( float val )

is_infinite retourne TRUE si val est infini (positif ou négatif), comme le résultat de log(0) ou une valeur qui est trop grande pour être représenté par un nombre à virgule flottante sur cette plate-forme.

Voir aussi is_finite() et is_nan().

Précédent | Sommaire | Suivant
is_finite | Niveau supérieur | is_nan


is_nan

(PHP 4 >= 4.2.0, PHP 5)

is_nan -- Indique si une valeur est un nombre

Description

bool is_nan ( float val )

is_nan() retourne TRUE si val n'est pas un nombre, comme le résultat de acos(1.01).

Voir aussi is_finite() et is_infinite().

Précédent | Sommaire | Suivant
is_infinite | Niveau supérieur | lcg_value


lcg_value

(PHP 4, PHP 5)

lcg_value -- Générateur de congruence combinée linéaire

Description

float lcg_value ( void )

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

Précédent | Sommaire | Suivant
is_nan | Niveau supérieur | log10


log10

(PHP 3, PHP 4, PHP 5)

log10 -- logarithme en base 10

Description

float log10 ( float arg )

log10() retourne le logarithme en base 10 de arg.

Voir aussi log()

Précédent | Sommaire | Suivant
lcg_value | Niveau supérieur | log1p


log1p

(PHP 4 >= 4.1.0, PHP 5)

log1p -- Retourne le résultat de log(1 + number), calculé de manière précise, même si val est proche de zéro

Description

float log1p ( float number )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

log1p() retourne log(1 + number) caculé de tel sorte qu'il sera précis même si la valeur de number est proche de 0.

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi expm1() et log().

Précédent | Sommaire | Suivant
log10 | Niveau supérieur | log


log

(PHP 3, PHP 4, PHP 5)

log -- Logarithme naturel (népérien)

Description

float log ( float arg [, float base] )

log() retourne le logarithme naturel (ou népérien) de arg. Si le paramètre optionnel base est spécifié, log() retourn alors le logarithme en base base.

Note : Le paramètre base a été ajouté en PHP version 4.3.0.

Vous pouvez toujours calculer le logarithme en base b d'un nombre n, en utilisant la formule ; logb(n) = log(n)/log(b), où log est le logarithme naturel ou népérien.

Voir aussi exp().

Précédent | Sommaire | Suivant
log1p | Niveau supérieur | max


max

(PHP 3, PHP 4, PHP 5)

max -- La plus grande valeur

Description

mixed max ( number arg1, number arg2 [, number ...] )

mixed max ( array numbers )

max() retourne la plus grande valeur numérique parmi les valeurs passées en paramètre.

Si le premier paramètre est un tableau, max() retourne la plus grande valeur de ce tableau. Si le premier paramètre est un entier, une chaîne ou un nombre à virgule flottante (float), max() requiert au moins deux paramètres, et retournera alors le plus grand d'entre eux. Le nombre d'arguments est alors illimité.

Note : PHP évaluera une chaîne de caractères non-numérique en tant que 0, mais continuera de retourner une chaîne de caractères s'il s'aperçoit qu'elle a une valeur numérique supérieure. Si de multiples arguments sont évalués à 0, max() retournera un 0 numérique s'il est fourni, sinon, la chaîne de caractères alphabétiquement supérieure sera retournée.

Exemple 1. Exemple d'utilisation de max()

<?php
echo max(1, 3, 5, 6, 7);  // 7
echo max(array(2, 4, 5)); // 5

echo max(0, 'bonjour');     // 0
echo max('bonjour', 0);     // bonjour
echo max(-1, 'bonjour');    // bonjour

// Avec plusieurs tableaux, min() fait les comparaisons de gauche à droite
// dans notre exemple : 2 == 2, mais 4 < 5
$val = max(array(2, 4, 8), array(2, 5, 7)); // array(2, 5, 7)

// Si un mélange de tableau et de scalaires sont fournis,
// le tableau est toujours retourné, car il est considéré comme le plus grand
$val = max('string', array(2, 5, 7), 42);   // array(2, 5, 7)
?>

Voir aussi min() et count().

Précédent | Sommaire | Suivant
log | Niveau supérieur | min


min

(PHP 3, PHP 4, PHP 5)

min -- La plus petite valeur

Description

mixed min ( number arg1, number arg2 [, number ...] )

mixed min ( array numbers )

min() retourne la plus petite valeur numérique parmi les valeurs passées en paramètres.

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. Vous pouvez comparer un nombre illimité de valeurs.

Note : PHP évaluera une chaîne de caractères non-numérique en tant que 0, mais continuera de retourner une chaîne de caractères s'il s'aperçoit qu'elle a une valeur numérique supérieure. Si de multiples arguments sont évalués à 0, max() retournera un 0 numérique s'il est fourni, sinon, la chaîne de caractères alphabétiquement supérieure sera retournée.

Exemple 1. Exemples avec min()

<?php
echo min(2, 3, 1, 6, 7);  // 1
echo min(array(2, 4, 5)); // 2

echo min(0, 'bonjour');     // 0
echo min('bonjour', 0);     // bonjour
echo min('bonjour', -1);    // -1

// Avec plusieurs tableaux, min() fait les comparaisons de gauche à droite
// dans notre exemple : 2 == 2, mais 4 < 5
$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)

// Si un mélange de tableau et de scalaires sont fournis,
// le tableau n'est jamais retourné, car il est considéré comme le plus grand
$val = min('chaîne', array(2, 5, 7), 42);   // chaîne
?>

Voir aussi max() et count().

Précédent | Sommaire | Suivant
max | Niveau supérieur | mt_getrandmax


mt_getrandmax

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

mt_getrandmax -- La plus grand valeur aléatoire possible

Description

int mt_getrandmax ( void )

mt_getrandmax() retourne la plus grand valeur aléatoire possible que peut retourner mt_rand().

Voir aussi
mt_rand(),
mt_srand() et
getrandmax().

Précédent | Sommaire | Suivant
min | Niveau supérieur | mt_rand


mt_rand

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

mt_rand -- Génère une valeur aléatoire (meilleure méthode)

Description

int mt_rand ( [int min, int max] )

De nombreux générateurs de nombres aléatoires provenant de vieilles bibliothèques libcs ont des comportements douteux et sont très lents. Par défaut, PHP utilise le générateur de nombres aléatoires de libc avec la fonction rand(). mt_rand() est une fonction de remplacement, pour cette dernière. Elle utilise un générateur de nombres aléatoire de caractéristique connue, le " Mersenne Twister " qui est 4 fois plus rapide que la fonction standard libc. La "Homepage of the Mersenne Twister " est http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html.

Appelée sans les arguments optionnels min et max, mt_rand() retourne un nombre pseudo-aléatoire, entre 0 et RAND_MAX. Pour obtenir un nombre entre 5 et 15 inclus, il faut utiliser mt_rand(5,15).

Exemple 1. Exemple avec mt_rand()

<?php
echo mt_rand() . "\n";
echo mt_rand() . "\n";

echo mt_rand(5, 15);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1604716014
1478613278
6

Note : Depuis PHP 4.2.0, vous n'avez plus besoin d'initialiser le générateur de nombres aléatoires avec srand() ou mt_srand() car c'est fait automatiquement.

Note : Dans les versions antérieures à la 3.0.7, la signification du paramètre max était "longueur". Pour avoir le même résultat, il faut utiliser mt_rand (5, 11) pour obtenir un nombre aléatoire entre 5 et 15.

Voir aussi
mt_srand(),
mt_getrandmax() et
rand().

Précédent | Sommaire | Suivant
mt_getrandmax | Niveau supérieur | mt_srand


mt_srand

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

mt_srand -- Initialise une valeur aléatoire (meilleure méthode)

Description

void mt_srand ( [int seed] )

mt_srand() initialise une meilleure valeur aléatoire avec seed. Depuis PHP 4.2.0, le paramètre seed est devenu optionnel et est généré par PHP s'il n'est pas renseigné.

Exemple 1. Exemple avec mt_srand()

<?php

// initialisation avec des microsecondes
function make_seed()
{
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
}
mt_srand(make_seed());
$randval = mt_rand();

?>

Note : Depuis PHP 4.2.0, vous n'avez plus besoin d'initialiser le générateur de nombres aléatoires avec srand() ou mt_srand() car c'est fait automatiquement.

Voir aussi
mt_rand(),
mt_getrandmax() et
srand().

Précédent | Sommaire | Suivant
mt_rand | Niveau supérieur | octdec


octdec

(PHP 3, PHP 4, PHP 5)

octdec -- Conversion d'octal en décimal

Description

number octdec ( string octal_string )

octdec() retourne une chaîne contenant la représentation décimale du nombre octal_tring. Le nombre le plus grand qui puisse être converti est 17777777777 en décimal, ce qui donnera "2147483647". Depuis PHP 4.1.0, cette fonction peut également convertir de très grands nombres. Elle retourne un nombre de type float dans ce cas.

Exemple 1. Exemple avec octdec()

<?php
echo octdec('77') . "\n";
echo octdec(decoct(45));
?>

L'exemple ci-dessus va afficher :

63
45

Voir aussi
decoct(),
bindec(),
hexdec() et
base_convert().

Précédent | Sommaire | Suivant
mt_srand | Niveau supérieur | pi


pi

(PHP 3, PHP 4, PHP 5)

pi -- Retourne la valeur de pi

Description

float pi ( void )

pi() retourne la valeur de pi. La valeur retournée est de type float, et est à la précision indiquée par la directive precision, indiquée dans le fichier php.ini, qui vaut par défaut 14. De plus, vous pouvez utiliser la constante M_PI, qui retourne un résultat identique à la fonction pi().

Exemple 1. Exemple avec pi()

<?php
echo pi(); // 3.1415926535898
echo M_PI; // 3.1415926535898
?>

Précédent | Sommaire | Suivant
octdec | Niveau supérieur | pow


pow

(PHP 3, PHP 4, PHP 5)

pow -- Expression exponentielle

Description

number pow ( number base, number exp )

pow() retourne base élevé à la puissance exp. Si possible, pow() retourne un entier.

Si le calcul ne peut être fait, une alerte sera affichée et pow() retournera FALSE. Depuis PHP 4.2.0, pow() n'affiche plus aucun warning.

Note : PHP ne peut pas gérer une valeur négative de exp.

Exemple 1. Quelques exemples avec pow()

<?php

var_dump(pow(2, 8) ); // int(256)
echo pow(-1, 20); // 1
echo pow(0, 0); // 1

echo pow(-1, 5.5); // error

?>

Avertissement

En PHP 4.0.6 plus ancien, pow() retournait toujours un nombre à virgule flottante (float), et n'affichait pas d'alerte. Si le calcul est impossible (racine d'un nombre négatif, par exemple), pow() retournait NAN.

Voir aussi
exp(),
sqrt(),
bcpow() et
gmp_pow().

Précédent | Sommaire | Suivant
pi | Niveau supérieur | rad2deg


rad2deg

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

rad2deg -- Conversion de radians en degrés

Description

float rad2deg ( float number )

rad2deg() convertit number (supposé en radians) en degrés.

Exemple 1. Exemple avec rad2deg()

<?php

echo rad2deg(M_PI_4); // 45

?>

Voir aussi deg2rad().

Précédent | Sommaire | Suivant
pow | Niveau supérieur | rand


rand

(PHP 3, PHP 4, PHP 5)

rand -- Génère une valeur aléatoire

Description

int rand ( [int min, int max] )

Appelée sans les options min et max, rand() retourne un nombre pseudo-aléatoire entre 0 et RAND_MAX. Si vous voulez un nombre aléatoire entre 5 et 15 (inclus), par exemple, utilisez rand (5, 15).

Exemple 1. Exemple avec rand()

<?php
echo rand() . "\n";
echo rand() . "\n";

echo rand(5, 15);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

7771
22264
11

Note : Sur quelques plate-formes (comme Windows par exemple), RAND_MAX est limité à 32768. Si vous désirez une limite supérieure à 32768, en spécifiant min et max, vous serez autorisés à utiliser un intervalle plus grand que RAD_MAX, ou bien, utilisez la fonction mt_rand() à la place.

Note : Depuis PHP 4.2.0, vous n'avez plus besoin d'initialiser le générateur de nombres aléatoires avec srand() ou mt_srand() car c'est fait automatiquement.

Note : Dans les versions antérieures à la 3.0.7 la signification du paramètre max était longueur. Pour avoir le même résultat, il faut utiliser mt_rand (5, 11) pour obtenir un nombre aléatoire entre 5 et 15.

Voir aussi
srand(),
mt_rand() et
getrandmax().

Précédent | Sommaire | Suivant
rad2deg | Niveau supérieur | round


round

(PHP 3, PHP 4, PHP 5)

round -- Arrondi

Description

float round ( float val [, int precision] )

round() retourne la valeur arrondie de val à la précision precision (nombre de chiffres après la virgule). Le paramètre precision peut être négatif ou NULL : c'est sa valeur par défaut.

Exemple 1. Exemple avec round()

<?php
echo round(3.4);         // 3
echo round(3.5);         // 4
echo round(3.6);         // 4
echo round(3.6, 0);      // 4
echo round(1.95583, 2);  // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2);    // 5.05
echo round(5.055, 2);    // 5.06
?>

Note : PHP ne gère pas correctement les chaînes telles que "12 300,2", par défaut. Reportez-vous à la conversion de chaînes.

Note : Le paramètre precision a été introduit depuis PHP 4.

Voir aussi
ceil(),
floor() et
number_format().

Précédent | Sommaire | Suivant
rand | Niveau supérieur | sin


sin

(PHP 3, PHP 4, PHP 5)

sin -- Sinus

Description

float sin ( float arg )

sin() retourne le sinus de arg (arg in radians).

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(),
cos(),
tan() et
deg2rad().

Précédent | Sommaire | Suivant
round | Niveau supérieur | sinh


sinh

(PHP 4 >= 4.1.0, PHP 5)

sinh -- Sinyus hyperbolique

Description

float sinh ( float arg )

sinh() retourne le sinus hyperbolique de arg, défini comme (exp(arg) - exp(-arg))/2.

Voir aussi
sin(),
asinh(),
cos() et
tan().

Précédent | Sommaire | Suivant
sin | Niveau supérieur | sqrt


sqrt

(PHP 3, PHP 4, PHP 5)

sqrt -- Racine carrée

Description

float sqrt ( float arg )

sqrt() retourne la racine carrée de arg.

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

Précédent | Sommaire | Suivant
sinh | Niveau supérieur | srand


srand

(PHP 3, PHP 4, PHP 5)

srand -- Initialise le générateur de nombres aléatoires

Description

void srand ( [int seed] )

srand() initialise le générateur de nombres aléatoires avec seed. Depuis PHP 4.2.0, le paramètre seed est devenu optionnel et est généré par PHP s'il n'est pas renseigné.

Exemple 1. Exemple avec srand()

<?php
// initialise avec les microsecondes
function make_seed()
{
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
}
srand(make_seed());
$randval = rand();
?>

Note : Depuis PHP 4.2.0, vous n'avez plus besoin d'initialiser le générateur de nombres aléatoires avec srand() ou mt_srand() car c'est fait automatiquement.

Voir aussi
rand(),
getrandmax() et
mt_srand().

Précédent | Sommaire | Suivant
sqrt | Niveau supérieur | tan


tan

(PHP 3, PHP 4, PHP 5)

tan -- Tangente

Description

float tan ( float arg )

tan() retourne la tangente de arg (arg en radians).

Exemple 1. Exemple avec tan()

<?php

echo tan(M_PI_4); // 1

?>

Voir aussi
atan(),
sin(),
cos() et
deg2rad().

Précédent | Sommaire | Suivant
srand | Niveau supérieur | tanh


tanh

(PHP 4 >= 4.1.0, PHP 5)

tanh -- Tangente hyperbolique

Description

float tanh ( float arg )

tanh() retourne la tangeante hyperbolique de arg, définie comme sinh(arg)/cosh(arg).

Voir aussi
tan(),
atanh(),
sin() et
cos().

Précédent | Sommaire | Suivant
tan | Niveau supérieur | MaxDB PHP Extension


MaxDB PHP Extension

Manuel PHP
Précédent Suivant

LXXXII. MaxDB PHP Extension

Introduction

L'extension MaxDB de PHP vous permet d'accéder aux fonctionnalités fournies par MaxDB 7.5.0 et suivant. Plus d'informations sur le serveur de base de données MaxDB peuvent être trouvées sur http://www.mysql.com/products/maxdb/.

L'extension MaxDB est compatible avec l'extension mysqli de MySQL. Il y a simplement des différences mineurs dans le comportement de certaines fonctions, liées au comportement des bibliothèques sous- jacentes.

Les différences notables sont :

maxdb_character_set_name() : retourn uniquement de l'ASCII ou unicode
maxdb_disable_reads_from_master() : fonction expérimentale
maxdb_disable_rpl_parse() : fonction expérimentale
maxdb_dump_debug_info() : fonction expérimentale
maxdb_embedded_connect() : fonction expérimentale
maxdb_enable_reads_from_master() : fonction expérimentale
maxdb_enable_rpl_parse() : fonction expérimentale
maxdb_get_client_info() : version différente
maxdb_get_client_version() : version différente
maxdb_get_host_info() : retourne localhost ou le nom d'hôte
maxdb_get_server_info() : version différente
maxdb_get_server_version() : version différente
maxdb_kill() : déconnecte la session
maxdb_master_query() : fonction expérimentale
maxdb_more_results() : la fonction retourne toujours FALSE
maxdb_multi_query() : ne peut pas gérer des commandes SQL multiples
maxdb_next_result() : la fonction retourne toujours FALSE
maxdb_options() : les optoins sont différentes
maxdb_report() : les modes de rapports sont différents
maxdb_rpl_parse_enabled() : fonction expérimentale
maxdb_rpl_probe() : fonction expérimentale
maxdb_rpl_query_type() : fonction expérimentale
maxdb_send_query() : fonction expérimentale
maxdb_server_end() : fonction expérimentale
maxdb_server_init() : fonction expérimentale
maxdb_ssl_set() : fonction expérimentale
maxdb_stat() : système de status différent
maxdb_stmt_store_result() : sans effet
maxdb_store_result() : sans effet

La documentation sur MaxDB est disponible sur http://dev.mysql.com/doc/maxdb/.

Pré-requis

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP avec le support MaxDB. Additionnellement, vous devez avoir de disponible la bibliothèque MaxDB SQLDBC pour accéder au serveur MaxDB.

La documentation sur MaxDB SQLDBC peut être trouvée sur http://dev.mysql.com/doc/maxdb/.

Téléchargez le paquet MaxDB SQLDBC sur http://dev.mysql.com/downloads/maxdb/clients.html.

Installation

En utilisant l'option de configuration --with-maxdb[=DIR], vous permettez à PHP d'accéder à une base de données MaxDB. [DIR] pointe vers le dossier contenant le paquet d'installation MaxDB SQLDBC.

Les utilisateurs de Windows doivent activer la bibliothèque php_maxdb.dll dans le php.ini.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
maxdb.default_host | NULL | PHP_INI_ALL |
maxdb.default_db | NULL | PHP_INI_ALL |
maxdb.default_user | NULL | PHP_INI_ALL |
maxdb.default_pw | NULL | PHP_INI_ALL |
maxdb.long_readlen | "200" | PHP_INI_ALL |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

maxdb.default_host string

L'hôte par défaut à utiliser lors de la connexion au serveur de base de données si aucun hôte n'est spécifié.

maxdb.default_db string

La base de donées par défaut à utiliser lors de la connexion si aucun autre base de donées n'est spécifié.

maxdb.default_user string

Le nom d'utilisateur par défaut à utiliser lors de la connexion au serveur de base de données si aucun autre nom n'est spécifié.

maxdb.default_pw string

Le mot de passe par défaut à utiliser lorsqu'un utilisateur se connecte à un serveur sans spécifier de mot de passe.

maxdb.long_readlen integer

La longueur maximale d'octets par défaut qui sont transférés au client si un gros volume de données est récupéré depuis un serveur de base de données MaxDB.

Classes pré-définies

maxdb

Représente une connexion entre PHP et une base MaxDB.

Constructeur

  • maxdb : constructeur

Méthodes

  • autocommit : active ou pas l'auto-archivage

  • change_user : change l'utilisateur de la base de données

  • character_set_name : retourne le jeu de caractèrs par défaut de la connexion

  • close : ferme une connexion ouverte

  • commit : valide la transaction courante

  • connect : ouvre une nouvelle connexion

  • debug : effectue des opérations de déboguage

  • dump_debug_info : affiche des informations de déboguage

  • get_client_info : retourne la version du client

  • get_host_info : retourne le type de connexion

  • get_server_info : retourne les informations sur le serveur maxDB

  • get_server_version : retourne la version du serveur

  • init : initialise un objet maxdb

  • info : lit les informations sur la dernière requête exécutée

  • kill : tente de terminer un thread MaxDB

  • multi_query : effectue une commande multiple

  • more_results : vérifie si d'autres résultats existent dans la commande multiple courante

  • next_result : lit le prochain résultat de la commande multiple courante

  • options : configure les options

  • ping : pingue le serveur et se reconnecte si besoin

  • prepare : prépare une requête SQL

  • query : exécute une requête

  • real_connect : ouvre une connexion au serveur MaxDB

  • escape_string : protège les caractères spéciaux dans une chaîne pour l'utiliser dans une requête, en tenant compte du jeu de caractères courant

  • rollback : annule la transaction courante

  • select_db : sélectionne la base de données par défaut

  • ssl_set : configure les praamètres ssl

  • stat : lit le statut courant du système

  • stmt_init : initialise une commande à utiliser avec maxdb_stmt_prepare

  • store_result : transfert un résultat de la dernière requête

  • use_result : transfert un résultat non bufferisé de la dernière requête

  • thread-safe : indique si la sécurité thread est active ou pas

Propriétés

  • affected_rows : lit le nombre de lignes affectées par la dernière opération MaxDB

  • client_info : retourne la version du client MaxDB sous forme de chaîne

  • client_version : retourne la version du client MaxDB sous forme d'entier

  • errno : retourne le code d'erreur du dernier appel de fonction

  • error : retourne le message d'erreur de la plus récente fonction

  • field_count : return le nombre de colonne de la dernière requête

  • host_info : return une chaîne représentant le type de connexion

  • info : lit les informations sur la dernière requête exécutée

  • insert-id : retourne l'identifiant auto-généré par la dernière requête

  • protocol_version : retourne la version du protocole MaxDB utilisé

  • sqlstate : retourne une chaîne représentant le code d'erreur SQLSTATE

  • thread_id : retourne l'identifiant du thread de la connexion courante

  • warning-count : retourne le nombre d'alertes générées durant la dernière commande SQL

maxdb_stmt

Représente une commande préparée.

Méthodes

  • bind_param : lie les variables à la commande préparée

  • bind_result : lie les variables à la commande préaprée, pour stockage des résultats

  • close : détruit la commande préparée

  • data-seek : place le pointeur à une position arbitraire du résultat

  • execute : exécute une commande préparée

  • fetch : lit les résultats de la commande préparée dans les variables liées

  • free_result : libère les ressources de la mémoire

  • result_metadata : lit les méta-données d'un résultat de commande préparée

  • prepare : prépare une commande préparée

  • send_long_data : envoie les données par paquet

  • close_long_data : termine l'envoi de grandes données

  • reset : remet à zéro une commande préparée

  • store_result : stocke tout le résultat d'une commande préparée

Propriétés

  • affected_rows : retourne le nombre de lignes affectées par la dernière commande préparée

  • errno : retourne le code d'erreur de la dernière commande préparée

  • errno : retourne le message d'erreur de la dernière commande préparée

  • param_count : retourne le nombre de paramètres pour une commande préparée

  • sqlstate : retourne une chaîne contenant le code d'erreur SQLSTATE

maxdb_result

Représente le jeu de résultat obtenu après exécution d'une requête.

Méthodes

  • close : détruit le jeu de résultat

  • data_seek : déplace le pointeur de ligne

  • fetch_field : lit les informations de colonnes d'un résultat

  • fetch_fields : lit les informations de toutes les colonnes d'un résultat

  • fetch_field_direct : lit les informations sur une colonne spécifique

  • fetch_array : lit la ligne de résultat sous forme de tableau associatif, numérique ou les deux.

  • fetch_assoc : lit une ligne sous forme de tableau associatif

  • fetch_object : lit un résultat sous forme d'objet

  • fetch_row : lit un résultat sous forme de tableau énuméré

  • close : libère les ressources

  • field_seek : place le pointeur à une position donnée

Propriétés

  • current_field : retourne le pointeur courant

  • field_count : retourne le nombre de champs dans le résultat

  • lengths : retourne un tableau avec les tailles des colonnes

  • num_rows : retourne le nombre de ligne du résultat

Types de ressources

Cette extension définit des ressources.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les constantes suivantes à utiliser avec maxdb_options() sont définies. Pour plus de descritions sur ces constantes, lisez http://dev.mysql.com/doc/maxdb/.

Tableau 2. Constantes clientes PHP MaxDB

Constante | Description
MAXDB_COMPNAME | Le nom du composant utilisé pour initialiser l'environnement d'exécution SQLDBC.
MAXDB_APPLICATION | L'application à connecter à la base de données.
MAXDB_APPVERSION | La version de l'application.
MAXDB_SQLMODE | Le mode SQL.
MAXDB_UNICODE | TRUE, si la connexion est un client unicode (UCS2) ou FALSE sinon.
MAXDB_TIMEOUT | Le délai maximal d'inactivité après lequel la connexion à la base de données est close par le système.
MAXDB_ISOLATIONLEVEL | Spécifie si oui ou non et comment les verrous partagés ainsi que les verrous exclusifs sont implicitement demandés ou libérés.
MAXDB_PACKETCOUNT | Le nombre de paquets de requêtes différents utilisé pour la connexion.
MAXDB_STATEMENTCACHESIZE | Le nombre de requêtes préparées à être mises en cache pour la connexion pour être réutilisées.
MAXDB_CURSORPREFIX | Le préfixe à utiliser pour la table de résultats qui sont automatiquement nommées.

La fonction maxdb_fetch_array() utilise une constante pour les différents types de tableaux de résultats. Les constantes suivantes sont définies :

Tableau 3. MaxDB fetch constants

Constante | Description
MAXDB_ASSOC | Les colonnes sont retournées dans un tableau ayant comme index les noms des champs.
MAXDB_ASSOC_UPPER | Les colonnes sont retournées dans un tableau ayant comme index les noms des champs en majuscule.
MAXDB_ASSOC_LOWER | Les colonnes sont retournées dans un tableau ayant comme index les noms des champs en minuscule.
MAXDB_BOTH | Les colonnes sont retournées dans un tableau ayant des index numériques ainsi que les noms des champs en tant qu'index.
MAXDB_NUM | Les colonnes sont retournées dans un tableau ayant un index numérique correspondant à un champs. Cet index commence à 0, le premier champs du jeu de résultats.

Exemples

Tous les exemples dans la documentation PHP de MaxDB utilise la base de données de démonstration HETOLDB depuis MaxDB. Plus d'informations concernant cette base de données peuvent être trouvées sur http://dev.mysql.com/doc/maxdb/en/98/11b83fa6b33c17e10000000a114084/frameset.htm.

Cet exemple simple montre comment se connecter, exécuter une requête, afficher les lignes résultants et se déconnecter de la base de données MaxDB.

Exemple 1. Exemple global de l'extension MaxDB

<?php
/* Connexion et sélection de la base de données */
$link = maxdb_connect("maxdb_host", "maxdb_user", "maxdb_password")
or die("Connexion impossible : " . maxdb_connect_error());
echo "Connexion avec succès";
maxdb_select_db("my_database") or die("Impossible de sélectionner la base de données");

/* Exécution d'une requête SQL */
$query = "SELECT * FROM my_table";
$result = maxdb_query($link, $query) or die("Query failed : " . maxdb_error());

/* Affichage des résultats en HTML */
echo "<table>\n";
while ($line = maxdb_fetch_array($result, MAXDB_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 ressources */
maxdb_free_result($result);

/* Fermeture de la connexion */
maxdb_close($link);
?>

Table des matières
maxdb_affected_rows -- Récupère le nombre de lignes affectées par la dernière opération MaxDB
maxdb_autocommit -- Active ou désactive l'auto-commit des modifications de la base de données
maxdb_bind_param -- Alias de maxdb_stmt_bind_param()
maxdb_bind_result -- Alias de maxdb_stmt_bind_result()
maxdb_change_user -- Modifie l'utilisateur de la connexion à la base de données spécifiée
maxdb_character_set_name -- Retourne le jeu de caractères par défaut pour la connexion à la base de données
maxdb_client_encoding -- Alias de maxdb_character_set_name()
maxdb_close_long_data -- Alias de maxdb_stmt_close_long_data()
maxdb_close -- Ferme une connexion à une base de données
maxdb_commit -- Valide la transaction courante
maxdb_connect_errno -- Retourne le code erreur du dernier appel à la connexion
maxdb_connect_error -- Retourne une chaîne descriptive de la dernière erreur
maxdb_connect -- Oubre une nouvelle connexion sur un serveur MaxDB
maxdb_data_seek -- Ajuste le pointeur de résultat sur une ligne arbitraire dans le résultat
maxdb_debug -- Effectue des opérations de déboguage
maxdb_disable_reads_from_master -- Désactive la lecture depuis le maître
maxdb_disable_rpl_parse -- Désactive l'analyseur RPL
maxdb_dump_debug_info -- Sauvegarde les informations de débogage dans un log
maxdb_embedded_connect -- Ouvre une connexion sur un serveur MaxDB embarqué
maxdb_enable_reads_from_master -- Active la lecture depuis le maître
maxdb_enable_rpl_parse -- Active l'analyseur RPL
maxdb_errno -- Retourne le code erreur pour le dernier appel à une fonction
maxdb_error -- Retourne une chaîne représentant la dernière erreur
maxdb_escape_string -- Alias de maxdb_real_escape_string()
maxdb_execute -- Alias de maxdb_stmt_execute()
maxdb_fetch_array -- Récupère une ligne de résultat dans un tableau numérique, associatif ou les deux
maxdb_fetch_assoc -- Récupère une ligne de résultat dans un tableau associatif
maxdb_fetch_field_direct -- Récupère les méta-données pour un seul champ
maxdb_fetch_field -- Retourne le prochain champs d'un jeu de résultats
maxdb_fetch_fields -- Retourne un tableau de ressource représentant les champs dans un jeu de résultats
maxdb_fetch_lengths -- Retourne la longueur des colonnes de la ligne courante dans un jeu de résultats
maxdb_fetch_object -- Retourne la ligne courante d'un jeu de résultats dans un objet
maxdb_fetch_row -- Récupère une ligne de résultat en tant que tableau énuméré
maxdb_fetch -- Alias de maxdb_stmt_fetch()
maxdb_field_count -- Retourne le nombre de colonnes pour la dernière requête
maxdb_field_seek -- Définit le pointeur de résultat à une position donnée
maxdb_field_tell -- Récupère la position du champs courant pour un pointeur de résultat
maxdb_free_result -- Libère la mémoire associée à un résultat
maxdb_get_client_info -- Retourne la version du client MaxDB sous la forme d'une chaîne
maxdb_get_client_version -- Récupère des informations sur le client MaxDB
maxdb_get_host_info -- Retourne une chaîne représentant le typde de connexion utilisé
maxdb_get_metadata -- Alias de maxdb_stmt_result_metadata()
maxdb_get_proto_info -- Retourne la version du protocole MaxDB utilisé
maxdb_get_server_info -- Retourne la version du serveur MaxDB
maxdb_get_server_version -- Retourne la version du serveur MaxDB sous la forme d'un entier
maxdb_info -- Récupère des informations sur le dernière requête exécutée
maxdb_init -- Initialise MaxDB et retourne une ressource pour l'utiliser avec maxdb_real_connect
maxdb_insert_id -- Retourne le dernier identifiant généré automatiquement par la dernière requête
maxdb_kill -- Déconnecte un serveur MaxDB
maxdb_master_query -- Force l'exécution d'une requête sur le maître dans une configuration maître/esclave
maxdb_more_results -- Vérifie s'il y a encore des résultats de disponibles depuis de multiples requêtes
maxdb_multi_query -- Exécute une requête sur une base de données
maxdb_next_result -- Préapre le prochain résultat depuis multi_query
maxdb_num_fields -- Récupère le nombre de champs dans un résultat
maxdb_num_rows -- Récupère le nombre de lignes dans un résultat
maxdb_options -- Définie des options
maxdb_param_count -- Alias de maxdb_stmt_param_count()
maxdb_ping -- Test une connexion à un serveur ou tente de se reconnecter si la connexion a été interrompue
maxdb_prepare -- Prépare une requête SQL pour exécution
maxdb_query -- Exécute une requête sur une base de données
maxdb_real_connect -- Ouvre une connexion sur un serveur MaxDB
maxdb_real_escape_string -- Echappe les caractères spéciaux d'une chaîne afin de l'utiliser dans une requpête SQL, en tenant compte du jeu de caractères courant de la connexion
maxdb_real_query -- Exécute une requête SQL
maxdb_report -- Active ou désactive le rapport interne des fonctions
maxdb_rollback -- Annule la transaction courante
maxdb_rpl_parse_enabled -- Vérifie si l'analyseur RPL est activé
maxdb_rpl_probe -- Test RPL
maxdb_rpl_query_type -- Retourne une requête de type RPL
maxdb_select_db -- Sélectionne une base de données pour les requêtes
maxdb_send_long_data -- Alias de maxdb_stmt_send_long_data()
maxdb_send_query -- Envoie une requête et retourne
maxdb_server_end -- Eteint un serveur embarqué
maxdb_server_init -- Initialise un serveur embarqué
maxdb_set_opt -- Alias de maxdb_options()
maxdb_sqlstate -- Retourne l'erreur SQLSTATE depuis la dernière opération MaxDB
maxdb_ssl_set -- Utilisé pour établir une connexion sécurisée utilisant SSL
maxdb_stat -- Récupère le statut courant du système
maxdb_stmt_affected_rows -- Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête
maxdb_stmt_bind_param -- Lie les variables à une requête préparée en tant que paramètres
maxdb_stmt_bind_result -- Lie les variables à une requête préparée pour stockage du résultat
maxdb_stmt_close_long_data -- Termine une séquence maxdb_stmt_send_long_data()
maxdb_stmt_close -- Ferme une requête préparée
maxdb_stmt_data_seek -- Se positionne sur une ligne arbitraire dans le jeu de résultats
maxdb_stmt_errno -- Retourne le code erreur pour le dernier appel à une fonction de requête
maxdb_stmt_error -- Retourne une description de la dernière erreur
maxdb_stmt_execute -- Exécute une requête préparée
maxdb_stmt_fetch -- Récupère les résultats depuis la requête préparée dans les variables liées
maxdb_stmt_free_result -- Libère la mémoire des résultats sotckés pour un gestionnaire de requête donné
maxdb_stmt_init -- Initialise une requête et retourne une ressource à utiliser avec maxdb_stmt_prepare
maxdb_stmt_num_rows -- Retourne le nombre de lignes dans le jeu de résultats
maxdb_stmt_param_count -- Retourne le nombre de marqueurs pour une requête donnée
maxdb_stmt_prepare -- Prépare une requête SQL pour exécution
maxdb_stmt_reset -- Réinitialise une requête préparée
maxdb_stmt_result_metadata -- Retourneles méta-données du jeu de résultats pour une requête préparée
maxdb_stmt_send_long_data -- Envoie des données dans un block
maxdb_stmt_sqlstate -- Retourne une erreur SQLSTATE depuis la requête précédante
maxdb_stmt_store_result -- Transfert un jeu de résultats depuis une requête préparée
maxdb_store_result -- Transfert un jeu de résultats depuis la dernière requête
maxdb_thread_id -- Retourne l'identifiant du thread pour la connexion courante
maxdb_thread_safe -- Indique si le thread safety est donné ou non
maxdb_use_result -- Initialise un jeu de résultats
maxdb_warning_count -- Retourne le nombre d'avertissements depuis la dernière requête pour un lien donné

Précédent | Sommaire | Suivant
tanh | Niveau supérieur | maxdb_affected_rows


maxdb_affected_rows

(PECL)

maxdb_affected_rows

(no version information, might be only in CVS)

maxdb->affected_rows -- Récupère le nombre de lignes affectées par la dernière opération MaxDB

Description

Style procédural

int maxdb_affected_rows ( resource link )

Style orienté objet (méthode)

class maxdb {

int affected_rows

}

maxdb_affected_rows() retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE associée avec le paramètre link fourni. Si ce nombre ne peut pas être déterminé, cette fonction retournera -1.

Note : Pour les requêtes SELECT, maxdb_affected_rows() fonctionne comme la fonction maxdb_num_rows().

La fonction maxdb_affected_rows() ne fonctionne qu'avec les requêtes qui modifient une table. Pour récupérer le nombre de lignes depuis une requête SELECT, utilisez plutôt la fonction maxdb_num_rows().

Valeurs de retour

Un entier plus grand que 0 indique le nombre de lignes affectées ou récupérées. Zéro indique qu'aucune ligne n'a été mise à jour pour une requête de type SELECT, qu'aucun ligne ne correspond à une clause WHERE dans une requête ou bien qu'aucune requête n'a été exécutée. -1 indique que le nombre de lignes affectées n'a pû être déterminé.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

/* Insertion de lignes */
$maxdb->query("CREATE TABLE mycustomer AS SELECT * from hotel.customer");
printf("Affected rows (INSERT): %d\n", $maxdb->affected_rows);

$maxdb->query("ALTER TABLE mycustomer ADD Status int default 0");

/* Mise à jour de lignes */
$maxdb->query("UPDATE mycustomer SET Status=1 WHERE cno > 50");
printf("Affected rows (UPDATE): %d\n", $maxdb->affected_rows);

/* Effacement de lignes */
$maxdb->query("DELETE FROM mycustomer WHERE cno < 50");
printf("Affected rows (DELETE): %d\n", $maxdb->affected_rows);

/* Sélection de toutes les lignes */
$result = $maxdb->query("SELECT title FROM mycustomer");
printf("Affected rows (SELECT): %d\n", $maxdb->affected_rows);

$result->close();

/* Effacement de la table Language */
$maxdb->query("DROP TABLE mycustomer");

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

if (!$link) {
    printf("Impossible de se connecter à localhost. Erreur : %s\n", maxdb_connect_error());
    exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

/* Insertion de lignes */
maxdb_query($link, "CREATE TABLE mycustomer AS SELECT * from hotel.customer");
printf("Nombres de lignes affectées (INSERT): %d\n", maxdb_affected_rows($link));

maxdb_query($link, "ALTER TABLE mycustomer ADD Status int default 0");

/* Mise à jour de lignes */
maxdb_query($link, "UPDATE mycustomer SET Status=1 WHERE cno > 50");
printf("Nombres de lignes affectées (UPDATE): %d\n", maxdb_affected_rows($link));

/* Effacement de lignes */
maxdb_query($link, "DELETE FROM mycustomer WHERE cno < 50");
printf("Nombres de lignes affectées (DELETE): %d\n", maxdb_affected_rows($link));

/* Sélectionne toutes les lignes */
$result = maxdb_query($link, "SELECT title FROM mycustomer");
printf("Nombres de lignes affectées (SELECT): %d\n", maxdb_affected_rows($link));

maxdb_free_result($result);

/* Effacement d'une table */
maxdb_query($link, "DROP TABLE mycustomer");

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Nombres de lignes affectées (INSERT): 15
Nombres de lignes affectées (UPDATE): 15
Nombres de lignes affectées (DELETE): 0
Nombres de lignes affectées (SELECT): 15

Voir aussi

maxdb_num_rows() et maxdb_info().

Précédent | Sommaire | Suivant
MaxDB PHP Extension | Niveau supérieur | maxdb_autocommit


maxdb_autocommit

(PECL)

maxdb_autocommit

(no version information, might be only in CVS)

maxdb->auto_commit -- Active ou désactive l'auto-commit des modifications de la base de données

Description

Style procédural

bool maxdb_autocommit ( resource link, bool mode )

Style orienté objet (méthode)

class maxdb {

bool auto_commit ( bool mode )

}

maxdb_autocommit() est utilisé pour activer ou désactiver le mode auto-commit sur les requêtes pour la connexion à la base de données représentée par la ressource link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Activation de l'auto-commit */
$maxdb->autocommit(TRUE);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

if (!$link) {
    printf("Impossible de se connecter à localhost. Erreur : %s\n", maxdb_connect_error());
    exit();
}

/* Active l'auto-commit */
maxdb_autocommit($link, TRUE);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus ne produit aucun affichage.

Voir aussi

maxdb_commit() et maxdb_rollback().

Précédent | Sommaire | Suivant
maxdb_affected_rows | Niveau supérieur | maxdb_bind_param


maxdb_bind_param

(PECL)

maxdb_bind_param -- Alias de maxdb_stmt_bind_param()

Description

Cette fonction est un alias de : maxdb_stmt_bind_param()

Cet alias est déprécié et n'existe que pour des raisons de compatiblité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.

Précédent | Sommaire | Suivant
maxdb_autocommit | Niveau supérieur | maxdb_bind_result


maxdb_bind_result

(PECL)

maxdb_bind_result -- Alias de maxdb_stmt_bind_result()

Description

Cette fonction est un alias de : maxdb_stmt_bind_result().

Cet alias est déprécié et n'existe que pour des raisons de compatiblité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.

Précédent | Sommaire | Suivant
maxdb_bind_param | Niveau supérieur | maxdb_change_user


maxdb_change_user

(PECL)

maxdb_change_user

(no version information, might be only in CVS)

maxdb->change_user -- Modifie l'utilisateur de la connexion à la base de données spécifiée

Description

Style procédural

bool maxdb_change_user ( resource link, string user, string password, string database )

Style orienté objet (méthode)

class maxdb {

bool change_user ( string user, string password, string database )

}

maxdb_change_user() est utilisé pour modifier l'utilisateur de la connexion à la base de données spécifiée par le paramètre link et pour définir la base de données courant à celle spécifiée par le paramètre database.

Pour modifier avec succès un utilisateur, les paramètres username et password doivent être fournis et cet utilisateur doit avoir des permissions suffisantes pour accéder à la base de données désirées. Si pour une raison quelconque l'identification échoue, l'utilisateur courant sera conservé.

Note : L'utilisation de cette commande fera que la connexion courante à la base de données sera renouvellée, comme si l'on avait fait une nouvelle connexion, indépendamment du succès de l'opération. Cette réinitialisation effectue un rollback sur toutes les transactions actives, ferme toutes les tables temporaires et déverrouille toutes les tables verrouillées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php

/* Connexion à la base de données */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($result = $maxdb->query("SELECT * FROM dual")) {
    $row = $result->fetch_row();
    printf("Result: %s\n", $row[0]);
    $result->free();
}

/* Réinitialisation et sélection d'une nouvelle base de données */
if (!$maxdb->change_user("DBADMIN", "SECRET", "DEMODB")) {
    printf("La base de données ne fonctionne pas.\n");
} else {
    printf("La base de données fonctionne.\n");
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($result = maxdb_query($link, "SELECT * FROM dual")) {
    $row = maxdb_fetch_row($result);
    printf("Result: %s\n", $row[0]);
    maxdb_free_result($result);
}

/* réinitialisation de tout et sélection d'une nouvelle base de données */
if (!maxdb_change_user($link, "DBADMIN", "SECRET", "DEMODB")) {
    printf("La base de données ne fonctionne pas.\n");
} else {
    printf("La base de données fonctionne.\n");
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Result: a
La base de données fonctionne.

Voir aussi

maxdb_connect() et maxdb_select_db().

Précédent | Sommaire | Suivant
maxdb_bind_result | Niveau supérieur | maxdb_character_set_name


maxdb_character_set_name

(PECL)

maxdb_character_set_name

(no version information, might be only in CVS)

maxdb->character_set_name -- Retourne le jeu de caractères par défaut pour la connexion à la base de données

Description

Style procédural

string maxdb_character_set_name ( resource link )

Style orienté objet (méthode)

class maxdb {

string character_set_name ( void )

}

Retourne le jeu de caractères courant défini pour la connexion à la base de données spécifiée par le paramètre link.

Valeurs de retour

Le jeu de caractères par défaut défini pour la connexion courante, soit ascii, soit unicode.

Exemples

Exemple 1. Style orienté objet

<?php
/* Ouverture d'une connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affichage du jeu de caractères courant */
$charset = $maxdb->character_set_name();
printf ("Le jeu de caractères courant est %s\n", $charset);

$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche le jeu de caractères courant */
$charset = maxdb_character_set_name($link);
printf ("Le jeu de caractères courant est %s\n",$charset);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Le jeu de caractères courant est ascii

Voir aussi

maxdb_client_encoding(). maxdb_real_escape_string().

Précédent | Sommaire | Suivant
maxdb_change_user | Niveau supérieur | maxdb_client_encoding


maxdb_client_encoding

(PECL)

maxdb_client_encoding -- Alias de maxdb_character_set_name()

Description

Cette fonction est un alias de : maxdb_character_set_name().

Cet alias est déprécié et n'existe que pour des raisons de compatiblité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.

Précédent | Sommaire | Suivant
maxdb_character_set_name | Niveau supérieur | maxdb_close_long_data


maxdb_close_long_data

(PECL)

maxdb_close_long_data

(no version information, might be only in CVS)

maxdb->close_long_data -- Alias de maxdb_stmt_close_long_data()

Description

Cette fonction est un alias de : maxdb_stmt_close_long_data().

Cet alias est déprécié et n'existe que pour des raisons de compatiblité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.

Précédent | Sommaire | Suivant
maxdb_client_encoding | Niveau supérieur | maxdb_close


maxdb_close

(PECL)

maxdb_close

(no version information, might be only in CVS)

maxdb->close -- Ferme une connexion à une base de données

Description

Style procédural

bool maxdb_close ( resource link )

Style orienté objet (méthode)

class maxdb {

bool close ( void )

}

maxdb_close() ferme une connexion à une base de données spécifiée par le paramètre link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

maxdb_connect(),
maxdb_init() et
maxdb_real_connect().

Précédent | Sommaire | Suivant
maxdb_close_long_data | Niveau supérieur | maxdb_commit


maxdb_commit

(PECL)

maxdb_commit

(no version information, might be only in CVS)

maxdb->commit -- Valide la transaction courante

Description

Style procédural

bool maxdb_commit ( resource link )

Style orienté objet (méthode)

class maxdb {

bool commit ( void )

}

maxdb_commit() valide la transaction courante pour la connexion à la base de données spécifiée par le paramètre link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Désactivation de l'auto-commit */
$maxdb->autocommit(FALSE);

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query("CREATE TABLE mycustomer LIKE hotel.customer");

/* Insertion de quelques valeurs */
$maxdb->query("INSERT INTO mycustomer VALUES (3000,'Mrs','Jenny','Porter','10580','1340 N.Ash Street, #3')");
$maxdb->query("INSERT INTO mycustomer VALUES (3100,'Mr','Peter','Brown','48226','1001 34th Str., APT.3')");

/* Valide la transaction */
$maxdb->commit();

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Connect failed: %s\n", maxdb_connect_error());
    exit();
}

/* Désactive l'auto-commit */
maxdb_autocommit($link, FALSE);

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE mycustomer LIKE hotel.customer");

/* Insertion de quelques lignes */
maxdb_query($link, "INSERT INTO mycustomer VALUES (3000,'Mrs','Jenny','Porter','10580','1340 N.Ash Street, #3')");
maxdb_query($link, "INSERT INTO mycustomer VALUES (3100,'Mr','Peter','Brown','48226','1001 34th Str., APT.3')");

/* Valide la transaction */
maxdb_commit($link);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus ne produit aucun affichage.

Voir aussi

maxdb_autocommit(), maxdb_rollback().

Précédent | Sommaire | Suivant
maxdb_close | Niveau supérieur | maxdb_connect_errno


maxdb_connect_errno

(PECL)

maxdb_connect_errno -- Retourne le code erreur du dernier appel à la connexion

Description

int maxdb_connect_errno ( void )

maxdb_connect_errno() retourne le dernier code erreur du dernier appel à maxdb_connect(). Si aucune erreur n'est survenue, cette fonction retournera zéro.

Valeurs de retour

Un code erreur pour le dernier appel à maxdb_connect(), si elle a échouée. Zéro signifie qu'aucune erreur n'est survenue.

Exemples

Exemple 1. Exemple avec maxdb_connect_errno()

<?php
$link = maxdb_connect("localhost", "XXXXXXXX", "YYYYYYYYY");

if (!$link) {
    printf("Impossible de se connecter à locahost. Code erreur : %d\n", maxdb_connect_errno());
}
?>

L'exemple ci-dessus va afficher :

PHP Warning:  maxdb_connect(): -4008 POS(1) Unknown user name/password combination [08004] <...>
Impossible de se connecter à locahost. Code erreur : -4008

Voir aussi

maxdb_connect(),
maxdb_connect_error(),
maxdb_errno(),
maxdb_error() et
maxdb_sqlstate().

Précédent | Sommaire | Suivant
maxdb_commit | Niveau supérieur | maxdb_connect_error


maxdb_connect_error

(PECL)

maxdb_connect_error -- Retourne une chaîne descriptive de la dernière erreur

Description

string maxdb_connect_error ( void )

maxdb_connect_error() est identique à la fonction maxdb_connect_errno(), excepté qu'au lieu de retourner un code erreur, maxdb_connect_error() retourne une chaîne représentative de la dernière erreur survenue lors du dernier appel à maxdb_connect(). Si aucune erreur n'est survenue, cette fonction retournera une chaîne vide.

Valeurs de retour

Une chaîne décrivant l'erreur. Une chaîne vide si aucune erreur n'est survenue.

Exemples

Exemple 1. Exemple avec maxdb_connect_error()

<?php

$link = maxdb_connect("localhost", "nonexisting_user", "");

if (!$link) {
    printf("Impossible de se connecter à localhost. Erreur : %s\n", maxdb_connect_error());
}
?>

L'exemple ci-dessus va afficher :

PHP Warning:  maxdb_connect(): -4008 POS(1) Unknown user name/password combination <...>
 Impossible de se connecter à localhost. Erreur : POS(1) Unknown user name/password combination

Voir aussi

maxdb_connect(),
maxdb_connect_errno(),
maxdb_errno(),
maxdb_error() et
maxdb_sqlstate().

Précédent | Sommaire | Suivant
maxdb_connect_errno | Niveau supérieur | maxdb_connect


maxdb_connect

(PECL)

maxdb_connect

(no version information, might be only in CVS)

maxdb() -- Oubre une nouvelle connexion sur un serveur MaxDB

Description

Style procédural

resource maxdb_connect ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] )

Style orienté objet (méthode)

class maxdb {

__construct ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] )

}

maxdb_connect() tente d'ouvrir une connexion sur un serveur MaxDB fonctionnant sur l'hôte host qui peut être soit un nom d'hôte, soit une adresse IP. Passer la chaîne "localhost" à ce paramètre, l'hôte local sera assumé. En cas de succès, maxdb_connect() retournera une ressource représentant la connexion à la base de données, ou FALSE si une erreur survient.

Les paramètres username et password spécifient le nom de l'utilisateur ainsi que le mot de passe utilisés pour la connexion au serveur MaxDB. Si le mot de passe n'est pas fourni (la valeur NULL est passée), le serveur MaxDB tentera d'identifier l'utilisateur encore une fois en utilisant la valeur de l'option de configuration maxdb.default_pw du php.ini.

Le paramètre dbname, si fourni, spécifie la base de données par défaut à utiliser lors de l'exécution de requêtes. S'il n'est pas fourni, l'option de configuration maxdb.default_db du php.ini est utilisée.

Les paramètres port et socket sont ignorés par le serveur MaxDB.

Valeurs de retour

Retourne une ressource représentant la connexion au serveur MaxDB ou FALSE si la connexion échoue.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérfication de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

printf("Informations sur l'hôte : %s\n", $maxdb->host_info);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED");

/* Vérifie la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

printf("Informations sur l'hôte : %s\n", maxdb_get_host_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Informations sur l'hôte : localhost

Précédent | Sommaire | Suivant
maxdb_connect_error | Niveau supérieur | maxdb_data_seek


maxdb_data_seek

(PECL)

maxdb_data_seek

(no version information, might be only in CVS)

result->data_seek -- Ajuste le pointeur de résultat sur une ligne arbitraire dans le résultat

Description

Style procédural

bool maxdb_data_seek ( resource result, int offset )

Style orienté objet (méthode)

class result {

bool data_seek ( int offset )

}

maxdb_data_seek() se déplace sur un pointeur de résultat arbitraire spécifié par offset dans le jeu de résultats représenté par result. Le paramètre offset doit être compris entre zéro le nombre total de lignes moins un (0..maxdb_num_rows() - 1).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Object oriented style

<?php
/* Ouverture de la connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Connect failed: %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER BY name";
if ($result = $maxdb->query( $query)) {

    /* Déplacement sur la ligne no. 10 */
    $result->data_seek(10);

    /* Récupération de la ligne */
    $row = $result->fetch_row();

    printf ("Ville : %s  Pays : %s\n", $row[0], $row[1]);

    /* Libération du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER BY name";

if ($result = maxdb_query($link, $query)) {

    /* Déplacement sur la ligne no. 400 */
    maxdb_data_seek($result, 10);

    /* Récupération de la ligne */
    $row = maxdb_fetch_row($result);

    printf ("Ville : %s  Pays : %s\n", $row[0], $row[1]);

    /* Libération du jeu de résultats*/
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Ville : Irvine  Pays : CA

Voir aussi

maxdb_store_result(),
maxdb_fetch_row() et
maxdb_num_rows().

Précédent | Sommaire | Suivant
maxdb_connect | Niveau supérieur | maxdb_debug


maxdb_dump_debug_info

(PECL)

maxdb_dump_debug_info -- Sauvegarde les informations de débogage dans un log

Description

bool maxdb_dump_debug_info ( resource link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_disable_rpl_parse | Niveau supérieur | maxdb_embedded_connect


maxdb_debug

(PECL)

maxdb_debug -- Effectue des opérations de déboguage

Description

void maxdb_debug ( string debug )

maxdb_debug() peut être utilisé pour tracer la connexion SQLDBC. Les chaînes suivantes peuvent être utilisées en tant que paramètre de la fonction maxdb_debug() :

TRACE SHORT ON|OFF - Active/Désactive l'appel à la méthode de traçage.
TRACE LONG ON|OFF - Active/Désactive l'argument de la méthode et les détails de la trace de débogage.
TRACE PACKET ON|OFF|<size> - Active/Désactive le paquet de trace, limitant la taille de l'objet de traçage au nombre d'octets spécifiés, ou 1000 si aucune taille n'est spécifiée.
TRACE SQL ON|OFF - Active/Désactive la trace de haut niveau de l'API.
TRACE TIMESTAMP ON|OFF - Active/Désactive un préfixe timestamp sur chaque ligne tracée.
TRACE SIZE <size> - Limite la taille du fichier de trace à <size> octets, 8192 octets sont au moins nécessaire.

Valeurs de retour

maxdb_debug() ne retourne aucune valeur.

Exemples

Exemple 1. Style procédural

<?php

maxdb_debug("trace packet 200");

$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus ne produit aucun affichage.

Précédent | Sommaire | Suivant
maxdb_data_seek | Niveau supérieur | maxdb_disable_reads_from_master


maxdb_disable_reads_from_master

(PECL)

maxdb_disable_reads_from_master

(no version information, might be only in CVS)

maxdb->disable_reads_from_master -- Désactive la lecture depuis le maître

Description

Style procédural

bool maxdb_disable_reads_from_master ( resource link )

Style orienté objet (méthode)

class maxdb {

void disable_reads_from_master ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_debug | Niveau supérieur | maxdb_disable_rpl_parse


maxdb_disable_rpl_parse

(PECL)

maxdb_disable_rpl_parse -- Désactive l'analyseur RPL

Description

bool maxdb_disable_rpl_parse ( resource link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_disable_reads_from_master | Niveau supérieur | maxdb_dump_debug_info


maxdb_embedded_connect

(PECL)

maxdb_embedded_connect -- Ouvre une connexion sur un serveur MaxDB embarqué

Description

resource maxdb_embedded_connect ( [string dbname] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_dump_debug_info | Niveau supérieur | maxdb_enable_reads_from_master


maxdb_enable_reads_from_master

(PECL)

maxdb_enable_reads_from_master -- Active la lecture depuis le maître

Description

bool maxdb_enable_reads_from_master ( resource link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_embedded_connect | Niveau supérieur | maxdb_enable_rpl_parse


maxdb_enable_rpl_parse

(PECL)

maxdb_enable_rpl_parse -- Active l'analyseur RPL

Description

bool maxdb_enable_rpl_parse ( resource link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_enable_reads_from_master | Niveau supérieur | maxdb_errno


maxdb_errno

(PECL)

maxdb_errno

(no version information, might be only in CVS)

maxdb->errno -- Retourne le code erreur pour le dernier appel à une fonction

Description

Style procédural

int maxdb_errno ( resource link )

Style orienté objet (méthode)

class maxdb {

int errno

}

maxdb_errno() retourne le dernier code erreur pour le dernier appel à une fonction MaxDB, qu'elle ait réussie ou échouée, sur la connexion à la base de données représentée par le paramètre link. Si aucune erreur n'est survenue, cette fonction retournera zéro.

Valeurs de retour

Une valeur de code erreur pour le dernier appel, s'il a échoué. Zéro signifie qu'aucune erreur n'est survenue.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if (!$maxdb->query("SELECT xxx FROM hotel.city")) {
    printf("Code erreur : %d\n", $maxdb->errno);
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if (!maxdb_query($link, "SELECT xxx FROM hotel.city")) {
    printf("Code erreur : %d\n", maxdb_errno($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

PHP Warning:  maxdb_query(): -4005 POS(8) Unknown column name:XXX [42000] <...>
Code erreur : -4005

Voir aussi

maxdb_connect_errno(),
maxdb_connect_error(),
maxdb_error() et
maxdb_sqlstate().

Précédent | Sommaire | Suivant
maxdb_enable_rpl_parse | Niveau supérieur | maxdb_error


maxdb_error

(PECL)

maxdb_error -- Retourne une chaîne représentant la dernière erreur

Description

Style procédural

string maxdb_error ( resource link )

Style orienté objet (méthode)

class maxdb {

string error

}

maxdb_error() est identique à la fonction maxdb_errno() dans tous les sens, exceptée qu'au lieu de retourner une erreur sous forme d'entier, maxdb_error() retourne une chaîne représentant la dernière erreur survenue pour la connexion à la base de données représentée par le paramètre link. Si aucune erreur n'est survenue, cette fonction retournera une chaîne vide.

Valeurs de retour

Une chaîne décrivant l'erreur. Une chaîne vide si aucune erreur n'est survenue.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la conneixon */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion: %s\n", maxdb_connect_error());
    exit();
}

if (!$maxdb->query("SELECT xxx FROM hotel.city")) {
    printf("Message d'erreur : %s\n", $maxdb->error);
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if (!maxdb_query($link, "SELECT xxx FROM hotel.city")) {
    printf("Message d'erreur : %s\n", maxdb_error($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

PHP Warning:  maxdb_query(): -4005 POS(8) Unknown column name:XXX [42000]
Message d'erreur : POS(8) Unknown column name:XXX

Voir aussi

maxdb_connect_errno(),
maxdb_connect_error(),
maxdb_errno() et
maxdb_sqlstate().

Précédent | Sommaire | Suivant
maxdb_errno | Niveau supérieur | maxdb_escape_string


maxdb_escape_string

(PECL)

maxdb_escape_string -- Alias de maxdb_real_escape_string()

Description

Cette fonction est un alias de : maxdb_real_escape_string().

Précédent | Sommaire | Suivant
maxdb_error | Niveau supérieur | maxdb_execute


maxdb_execute

(PECL)

maxdb_execute -- Alias de maxdb_stmt_execute()

Description

Cette fonction est un alias de : maxdb_stmt_execute().

Cet alias est déprécié et n'existe que pour des raisons de compatiblité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.

Précédent | Sommaire | Suivant
maxdb_escape_string | Niveau supérieur | maxdb_fetch_array


maxdb_fetch_array

(PECL)

maxdb_fetch_array

(no version information, might be only in CVS)

result->fetch_array -- Récupère une ligne de résultat dans un tableau numérique, associatif ou les deux

Description

Style procédural

mixed maxdb_fetch_array ( resource result [, int resulttype] )

Style orienté objet (méthode)

class result {

mixed fetch_array ( [int resulttype] )

}

Retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes pour le jeu de résultats représenté par le paramètre result.

maxdb_fetch_array() est une version étendue de la fonction maxdb_fetch_row(). En plus de stocker les données dans un tableau de résultats aux indices numériques , la fonction maxdb_fetch_array() peut également stocker les données dans des indices associatifs, en utilisant les noms de champs du résultat en tant que clés.

Note : Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Si deux colonnes ou plus du résultats ont les mêmes noms de champs, la dernière colonne aura la priorité et effacera les donées précédentes. Pour accéder aux autres colonnes du même nom, la version indexée numériquement de la ligne doit être utilisée.

Le second argument optionnel resulttype est une constante indiquant quel type de tableau doit être produit pour les données de la ligne courante. Les valeurs possibles pour ce paramètre sont les constantes MAXDB_ASSOC, MAXDB_ASSOC_UPPER, MAXDB_ASSOC_LOWER, MAXDB_NUM, ou MAXDB_BOTH. Par défaut, la fonction maxdb_fetch_array() prendra la valeur MAXDB_BOTH, qui est une combinaison de MAXDB_NUM et de MAXDB_ASSOC, pour ce paramètre.

En utilisant la constante MAXDB_ASSOC, cette fonction fonctionne de la même manière que la fonction maxdb_fetch_assoc(), tandis que MAXDB_NUM fonctionne de la même manière que la fonction maxdb_fetch_row(). L'option MAXDB_BOTH créera un seul tableau contenant les deux sortes d'attributs.

En utilisant la constante MAXDB_ASSOC_UPPER, le comportement de cette fonction est identique à l'utilisation de MAXDB_ASSOC à la seule différence que l'index de la colonne du tableau est le nom du champs en majuscule.

En utilisant la constante MAXDB_ASSOC_LOWER, le comportement de cette fonction est identique à l'utilisation de MAXDB_ASSOC à la seule différence que l'index de la colonne du tableau est le nom du champs en minuscule.

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes de disponibles dans le jeu de résultats.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Connect failed: %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";
$result = $maxdb->query($query);

/* Tableau numérique */
$row = $result->fetch_array(MAXDB_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* Tableau associatif */
$row = $result->fetch_array(MAXDB_ASSOC);
printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);

/* Tableau associatif et numérique */
$row = $result->fetch_array(MAXDB_BOTH);
printf ("%s (%s)\n", $row[0], $row["STATE"]);

/* Libération du jeu de résultats */
$result->close();

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";
$result = maxdb_query($link, $query);

/* Tableau numérique */
$row = maxdb_fetch_array($result, MAXDB_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* Tableau associatif */
$row = maxdb_fetch_array($result, MAXDB_ASSOC);
printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);

/* Tableau associatif et numérique */
$row = maxdb_fetch_array($result, MAXDB_BOTH);
printf ("%s (%s)\n", $row[0], $row["STATE"]);

/* Libération du jeu de résultats */
maxdb_free_result($result);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

New York (NY)
New York (NY)
Long Island (NY)

Voir aussi

maxdb_fetch_assoc(),
maxdb_fetch_row() et
maxdb_fetch_resource().

Précédent | Sommaire | Suivant
maxdb_execute | Niveau supérieur | maxdb_fetch_assoc


maxdb_fetch_assoc

(PECL)

maxdb_fetch_assoc

(no version information, might be only in CVS)

maxdb->fetch_assoc -- Récupère une ligne de résultat dans un tableau associatif

Description

Style procédural

array maxdb_fetch_assoc ( resource result )

Style orienté objet (méthode)

class result {

array fetch_assoc ( void )

}

Retourne un tableau associatif qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes de disponibles.

maxdb_fetch_assoc() est utilisé pour retourner un tableau associatif représentant la prochaine ligne dans le jeu de résultats pour le résultat représenté par le paramètre result, où chaque clé du tableau représente le nom d'une des colonnes du jeu de résultats.

Si deux colonnes ou plus du résultats ont les mêmes noms de champs, la dernière colonne aura la priorité. Pour accéder aux autres colonnes du même nom, vous devez soit accéder au résultat avec des indices numériques en utilisant la fonction maxdb_fetch_row(), soit ajouter des alias aux noms.

Note : Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Valeurs de retour

Retourne un tableau représentant la ligne récupérée ou NULL s'il n'y a plus de lignes de disponibles.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Connect failed: %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

    /* Récupération du tableau associatif */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);
    }

    /* Libération du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

    /* Récupération du tableau associatif */
    while ($row = maxdb_fetch_assoc($result)) {
        printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);
    }

    /* Libération du jeu de résultats */
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Voir aussi

maxdb_fetch_array(),
maxdb_fetch_row() et
maxdb_fetch_resource().

Précédent | Sommaire | Suivant
maxdb_fetch_array | Niveau supérieur | maxdb_fetch_field_direct


maxdb_fetch_field_direct

(PECL)

maxdb_fetch_field_direct

(no version information, might be only in CVS)

result->fetch_field_direct -- Récupère les méta-données pour un seul champ

Description

Style procédural

mixed maxdb_fetch_field_direct ( resource result, int fieldnr )

Style orienté objet (méthode)

class result {

mixed fetch_field_direct ( int fieldnr )

}

maxdb_fetch_field_direct() retourne une ressource qui contient les informations de définission des champs pour un jeu de résultat spécifique. La valeur du champ doit être dans l'intervalle 0 à number of fields - 1.

Valeurs de retour

Retourne une ressource qui contient les informations de définission des champs ou FALSE s'il n'y a plus d'informations pour le champ fieldnr.

Tableau 1. Attributs de l'objet

Attribut | Description
name | Le nom de la colonne
max_length | La largeur maximale du champ pour le jeu de résultats
type | Le type de données utilisé pour ce champ
decimals | Le nombre de décimal utilisé (pour les champs entiers)

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY name";

if ($result = $maxdb->query($query)) {

    /* Récupère les informations pour la colonne 'SurfaceArea' */
    $finfo = $result->fetch_field_direct(1);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n", $finfo->type);

    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY name";

if ($result = maxdb_query($link, $query)) {

    /* Récupère les informations pour la colonne 'cno' */
    $finfo = maxdb_fetch_field_direct($result, 1);

    printf("Nom :     %s\n", $finfo->name);
    printf("Table :    %s\n", $finfo->table);
    printf("Longueur max. : %d\n", $finfo->max_length);
    printf("Flags :    %d\n", $finfo->flags);
    printf("Type :     %d\n", $finfo->type);

    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Nom :     CNO
Table :
Longueur max.: 4
Flags :    -1
Type :     0

Voir aussi

maxdb_num_fields(),
maxdb_fetch_field() et
maxdb_fetch_fields().

Précédent | Sommaire | Suivant
maxdb_fetch_assoc | Niveau supérieur | maxdb_fetch_field


maxdb_fetch_field

(PECL)

maxdb_fetch_field

(no version information, might be only in CVS)

result->fetch_field -- Retourne le prochain champs d'un jeu de résultats

Description

Style procédural

mixed maxdb_fetch_field ( resource result )

Style orienté objet (méthode)

class result {

mixed fetch_field ( void )

}

maxdb_fetch_field() retourne la définition d'une colonne d'un jeu de résultats en tant que ressource. Appelez cette fonction répétitivement pour récupérer toutes les informations sur les colonnes dans le jeu de résultats. maxdb_fetch_field() retourne FALSE lorsqu'il n'y a plus de champs disponibles.

Valeurs de retour

Retourne une ressource contenant toutes les informations de définitions des champs ou FALSE s'il n'y a plus d'informations de champs disponibles.

Tableau 1. Propriétés de l'objet

Propriété | Description
name | Le nom de la colonne
max_length | La largeur maximale d'un champ dans le jeu de résultats
type | Le type de données utilisé pour ce champ
decimals | Le nombre de décimal utilisé (pour les champs entiers)

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

    /* Récupération de l'information pour tous les champs */
    while ($finfo = $result->fetch_field()) {

        printf("Nom :     %s\n", $finfo->name);
        printf("Table :    %s\n", $finfo->table);
        printf("Longueur max. : %d\n", $finfo->max_length);
        printf("Flags :    %d\n", $finfo->flags);
        printf("Type :     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

    /* Récupération de l'information pour tous les champs */
    while ($finfo = maxdb_fetch_field($result)) {

        printf("Nom :     %s\n", $finfo->name);
        printf("Table :    %s\n", $finfo->table);
        printf("Longueur max.: %d\n", $finfo->max_length);
        printf("Flags :    %d\n", $finfo->flags);
        printf("Type :     %d\n\n", $finfo->type);
    }
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Nom :     NAME
Table :
Longueur max. : 10
Flags :    -1
Type :     2

Nom :     CNO
Table :
Longueur max. : 4
Flags :    -1
Type :     0

Voir aussi

maxdb_num_fields(),
maxdb_fetch_field_direct(),
maxdb_fetch_fields() et
maxdb_field_seek().

Précédent | Sommaire | Suivant
maxdb_fetch_field_direct | Niveau supérieur | maxdb_fetch_fields


maxdb_fetch_fields

(PECL)

maxdb_fetch_fields

(no version information, might be only in CVS)

result->fetch_fields -- Retourne un tableau de ressource représentant les champs dans un jeu de résultats

Description

Style procédural

mixed maxdb_fetch_fields ( resource result )

Style orienté objet (méthode)

class result {

mixed fetch_fields ( void )

}

Cette fonction est identique à la fonction maxdb_fetch_field() avec la seule différence qu'au lieu de retourner une ressource à la fois pour chaque champ, les colonnes sont retournées en tant que tableau de ressources.

Valeurs de retour

Retourne un tableau de ressources qui contient les informations de définitions des champs ou FALSE s'il n'y a plus d'informations de champs de disponibles.

Tableau 1. Propriétés de l'objet

Propriété | Description
name | Le nom de la colonne
max_length | La largeur maximale d'un champ dans le jeu de résultats
type | Le type de données utilisé pour ce champ
decimals | Le nombre de décimal utilisé (pour les champs entiers)

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

    /* Récupération des informations pour toutes les colonnes */
    $finfo = $result->fetch_fields();

    foreach ($finfo as $val) {
        printf("Nom :     %s\n", $finfo[$i]->name);
        printf("Table :    %s\n", $finfo[$i]->table);
        printf("Longueur max. : %d\n", $finfo[$i]->max_length);
        printf("Flags :    %d\n", $finfo[$i]->flags);
        printf("Type :     %d\n\n", $finfo[$i]->type);
    }
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

    /* Récupération des informations pour toutes les colonnes */
    $finfo = maxdb_fetch_fields($result);

    foreach ($finfo as $val) {
        printf("Nom :     %s\n", $finfo[$i]->name);
        printf("Table :    %s\n", $finfo[$i]->table);
        printf("Longueur max. : %d\n", $finfo[$i]->max_length);
        printf("Flags :    %d\n", $finfo[$i]->flags);
        printf("Type :     %d\n\n", $finfo[$i]->type);
    }
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Nom :     NAME
Table :
Longueur max. : 10
Flags :    -1
Type :     2

Nom :     CNO
Table :
Longueur max. : 4
Flags :    -1
Type :     0

Voir aussi

maxdb_num_fields(),
maxdb_fetch_field() et
maxdb_fetch_field_direct().

Précédent | Sommaire | Suivant
maxdb_fetch_field | Niveau supérieur | maxdb_fetch_lengths


maxdb_fetch_lengths

(PECL)

maxdb_fetch_lengths

(no version information, might be only in CVS)

result->lengths -- Retourne la longueur des colonnes de la ligne courante dans un jeu de résultats

Description

Style procédural

array maxdb_fetch_lengths ( resource result )

Style orienté objet (méthode)

class result {

array lengths

}

maxdb_fetch_lengths() retourne un tableau contenant la longueur de chaque colonne de la ligne courante du jeu de résultats représenté par le paramètre result. Si cela réussit, un tableau indexé numériquement représentant la longueur de chaque colonne est retourné, ou FALSE si une erreur survient.

Valeurs de retour

Un tableau d'entiers représentant la taille de chaque colonne (n'inclut aucun caractères nul de fin). FALSE si une erreur survient.

maxdb_fetch_lengths() est valide uniquement pour la ligne courante du jeu de résultats. Il retourne FALSE si vous l'appelez avant d'appeler les fonctions maxdb_fetch_row/array/resource ou après avoir récupéré toutes les lignes du jeu de résultats.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT * from hotel.customer WHERE cno = 3000";

if ($result = $maxdb->query($query)) {

    $row = $result->fetch_row();

    /* Affiche la longueur des colonnes */
    foreach ($result->lengths as $i => $val) {
        printf("Le champs %2d a une longueur de %2d\n", $i+1, $result->lengths[$i]);
    }
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT * from hotel.customer WHERE cno = 3000";

if ($result = maxdb_query($link, $query)) {

    $row = maxdb_fetch_row($result);

    /* Affiche la longueur des colonnes */
    foreach (maxdb_fetch_lengths($result) as $i => $val) {
        printf("Le champs %2d a une longueur de %2d\n", $i+1, $lengths[$i]);
    }
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Le champs 1 a une longueur de 4
Le champs 2 a une longueur de 3
Le champs 3 a une longueur de 5
Le champs 4 a une longueur de 6
Le champs 5 a une longueur de 5
Le champs 6 a une longueur de 21

Précédent | Sommaire | Suivant
maxdb_fetch_fields | Niveau supérieur | maxdb_fetch_object


maxdb_fetch_object

(PECL)

maxdb_fetch_object

(no version information, might be only in CVS)

result->fetch_object -- Retourne la ligne courante d'un jeu de résultats dans un objet

Description

Style procédural

object maxdb_fetch_object ( object result )

Style orienté objet (méthode)

class result {

object fetch_object ( void )

}

maxdb_fetch_resource() retourne la ligne courante du jeu de résultats result dans un objet dont les attributs sont les noms des champs trouvés dans le jeu de résultats. S'il n'y a plus de lignes dans le jeu de résultats courant, NULL est retourné.

Valeurs de retour

Retourne une ressource qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes disponibles dans le jeu de résultats.

Note : Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Exemples

Exemple 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
printf("Connexion échouée : %s\n", maxdb_connect_error());
exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

    /* Lecture d'un objet */
    while ($obj = $result->fetch_object()) {
        printf ("%s (%s)\n", $obj->NAME, $obj->STATE);
    }

    /* Libération des ressources */
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

    /* Récupération de l'objet */
    while ($obj = maxdb_fetch_object($result)) {
        printf ("%s (%s)\n", $obj->NAME, $obj->STATE);
    }

    /* Libération du résultat */
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Voir aussi

maxdb_fetch_array(),
maxdb_fetch_assoc() et
maxdb_fetch_row().

Précédent | Sommaire | Suivant
maxdb_fetch_lengths | Niveau supérieur | maxdb_fetch_row


maxdb_fetch_row

(PECL)

maxdb_fetch_row

(no version information, might be only in CVS)

result->fetch_row -- Récupère une ligne de résultat en tant que tableau énuméré

Description

Style procédural

mixed maxdb_fetch_row ( resource result )

Style orienté objet (méthode)

class result {

mixed fetch_row ( void )

}

Retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de résultat.

maxdb_fetch_row() récupère une ligne de données depuis le jeu de résultats représenté par result et la retourne dans un tableau énuméré, où chaque colonne est stocké dans une entrée du tableau, en commençant à 0 (zéro). Chaque sous-séquence d'appel à la fonction maxdb_fetch_row() retourne la ligne suivante du jeu de résultats ou FALSE s'il n'y a plus de lignes de disponibles.

Valeurs de retour

maxdb_fetch_row() retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de lignes disponibles dans le jeu de résultats.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Connect failed: %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

    /* Récupération du tableau énumératif */
    while ($row = $result->fetch_row()) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* Libération du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED");

/* Vérification de la connexion  */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

    /* Récupération du tableau énumératif */
    while ($row = maxdb_fetch_row($result)) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* Libération du jeu de résultats */
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Voir aussi

maxdb_fetch_array(),
maxdb_fetch_assoc() et
maxdb_fetch_resource().

Précédent | Sommaire | Suivant
maxdb_fetch_object | Niveau supérieur | maxdb_fetch


maxdb_fetch

(PECL)

maxdb_fetch -- Alias de maxdb_stmt_fetch()

Description

Cette fonction est un alias de : maxdb_stmt_fetch().

Cet alias est déprécié et n'existe que pour des raisons de compatiblité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.

Précédent | Sommaire | Suivant
maxdb_fetch_row | Niveau supérieur | maxdb_field_count


maxdb_field_count

(PECL)

maxdb_field_count

(no version information, might be only in CVS)

maxdb->field_count -- Retourne le nombre de colonnes pour la dernière requête

Description

Style procédural

int maxdb_field_count ( resource link )

Style orienté objet (méthode)

class maxdb {

int field_count ( void )

}

Retourne le nombre de colonnes pour la dernière requête sur la connexion représentée par le paramètre link. Cette fonction est utile lors de l'utilisation de la fonction maxdb_store_result() pour déterminer si la requête a produit un jeu de résultats non-vide ou non, sans connaître la nature de la requête.

Valeurs de retour

Un entier représentant le nombre de champs dans un jeu de résultats.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE friends");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query( "CREATE TABLE friends (id int, name varchar(20))");

$maxdb->query( "INSERT INTO friends VALUES (1,'Hartmut')");
$maxdb->query( "INSERT INTO friends VALUES (2, 'Ulf')");

if ($maxdb->field_count()) {
    /* Ceci est une requête select/show ou describe */
    $result = $maxdb->store_result();

    /* Récupération du jeu de résultats */
    $row = $result->fetch_row();

    /* Libération du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE friends");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE friends (id int, name varchar(20))");

maxdb_query($link, "INSERT INTO friends VALUES (1,'Hartmut')");
maxdb_query($link, "INSERT INTO friends VALUES (2, 'Ulf')");

if (maxdb_field_count($link)) {
    /* Ceci est une requête select/show ou describe */
    $result = maxdb_store_result($link);

    /* Récupération du jeu de résultats */
    $row = maxdb_fetch_row($result);

    /* Libération du jeu de résultats */
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

Précédent | Sommaire | Suivant
maxdb_fetch | Niveau supérieur | maxdb_field_seek


maxdb_field_seek

(PECL)

maxdb_field_seek

(no version information, might be only in CVS)

result->field_seek -- Définit le pointeur de résultat à une position donnée

Description

Style procédural

bool maxdb_field_seek ( resource result, int fieldnr )

Style orienté objet (méthode)

class result {

bool field_seek ( int fieldnr )

}

Définit le curseur de champ à une position donnée. Le prochian appel à la fonction maxdb_fetch_field() récupèrera la définition de champ de la colonne associée avec cette position.

Note : Pour placer le cursuer au début d'une ligne, passez zéro comme valeur.

Valeurs de retour

maxdb_field_seek() retourne la valeur précédante du curseur de champ.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

    /* Récupération des informations de champ pour la deuxième colonne */
    $result->field_seek(1);
    $finfo = $result->fetch_field();

    printf("Nom :     %s\n", $finfo->name);
    printf("Table :    %s\n", $finfo->table);
    printf("Longueur max. : %d\n", $finfo->max_length);
    printf("Flags :    %d\n", $finfo->flags);
    printf("Type :     %d\n\n", $finfo->type);

    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

    /* Récupération des informations de champ pour la deuxième colonne */
    maxdb_field_seek($result, 1);
    $finfo = maxdb_fetch_field($result);

    printf("Nom :     %s\n", $finfo->name);
    printf("Table :    %s\n", $finfo->table);
    printf("Longueur max. : %d\n", $finfo->max_length);
    printf("Flags :    %d\n", $finfo->flags);
    printf("Type :     %d\n\n", $finfo->type);

    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Nom :     NAME
Table :
Longueur max. : 10
Flags :    -1
Type :     2

Voir aussi

maxdb_fetch_field().

Précédent | Sommaire | Suivant
maxdb_field_count | Niveau supérieur | maxdb_field_tell


maxdb_field_tell

(PECL)

maxdb_field_tell

(no version information, might be only in CVS)

result->current_field -- Récupère la position du champs courant pour un pointeur de résultat

Description

Style procédural

int maxdb_field_tell ( resource result )

Style orienté objet (méthode)

class result {

int current_field

}

Retourne la position du curseur de champs utilisé par le dernier appel à maxdb_fetch_field(). Cette valeur peut être utilisée en tant qu'argument à la fonction maxdb_field_seek().

Valeurs de retour

Retourne le position courant du curseur de champs.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

    /* Récupère les informations pour tous les champs */
    while ($finfo = $result->fetch_field()) {

        /* Récupère le position du curseur de champs */
        $currentfield = $result->current_field;

        printf("Colonne    %d:\n", $currentfield);
        printf("Nom:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("Longueur max. : %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

    /* Récupère les informations pour tous les champs */
    while ($finfo = maxdb_fetch_field($result)) {

        /* Récupère le position du curseur de champs */
        $currentfield = maxdb_field_tell($result);

        printf("Colonne    %d:\n", $currentfield);
        printf("Nom :     %s\n", $finfo->name);
        printf("Table :    %s\n", $finfo->table);
        printf("Longueur max. : %d\n", $finfo->max_length);
        printf("Flags :    %d\n", $finfo->flags);
        printf("Type :     %d\n\n", $finfo->type);
    }
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Colonne    1:
Nom :     NAME
Table :
Longueur max. : 10
Flags :    -1
Type :     2

Colonne    2:
Nom :     CNO
Table :
Longueur max. : 4
Flags :    -1
Type :     0

Voir aussi

maxdb_fetch_field() et maxdb_field_seek().

Précédent | Sommaire | Suivant
maxdb_field_seek | Niveau supérieur | maxdb_free_result


maxdb_free_result

(PECL)

maxdb_free_result

(no version information, might be only in CVS)

result->free -- Libère la mémoire associée à un résultat

Description

Style procédural

void maxdb_free_result ( resource result )

Style orienté objet (méthode)

class result {

void free ( void )

}

maxdb_free_result() libère la mémoire associée avec le résultat représenté par le paramètre result, qui a été allouée par maxdb_query(), maxdb_store_result() ou maxdb_use_result().

Note : Vous devriez toujours libérer votre résultat avec la fonction maxdb_free_result(), lorsque votre ressource de résultat n'est plus utile.

Valeurs de retour

Cette fonction ne retourne aucune valeur.

Voir aussi

maxdb_query(),
maxdb_stmt_store_result(),
maxdb_store_result() et
maxdb_use_result().

Précédent | Sommaire | Suivant
maxdb_field_tell | Niveau supérieur | maxdb_get_client_info


maxdb_get_client_info

(PECL)

maxdb_get_client_info -- Retourne la version du client MaxDB sous la forme d'une chaîne

Description

string maxdb_get_client_info ( void )

maxdb_get_client_info() est utilisé pour retourner une chaîne représentant la version cliente utilisée dans l'extension MaxDB.

Valeurs de retour

Une chaîne représentant la version de la bibliothèque cliente MaxDB.

Exemples

Exemple 1. Exemple avec maxdb_get_client_info()

<?php

/* Nous n'avons pas besoin d'une connexion
pour déterminer la version de la bibliothèque MaxDB */

printf("Version de la bibliothèque cliente : %s\n", maxdb_get_client_info());
?>

L'exemple ci-dessus va afficher :

Version de la bibliothèque cliente : libSQLDBC <...>

Voir aussi

maxdb_get_client_version(),
maxdb_get_server_info() et
maxdb_get_server_version().

Précédent | Sommaire | Suivant
maxdb_free_result | Niveau supérieur | maxdb_get_client_version


maxdb_get_client_version

(PECL)

maxdb_get_client_version -- Récupère des informations sur le client MaxDB

Description

int maxdb_get_client_version ( void )

Retourne le numéro de version du client en tant qu'entier.

Valeurs de retour

Un nombre représentant la version de la bibliothèque cliente MaxDB dans le format : main_version*10000 + minor_version *100 + sub_version. Par exemple, 7.5.0 est retourné comme ceci : 70500.

Ceci est utile pour déterminer rapidement la version de la bibliothèque cliente pour savoir si certaines fonctionnalités existent.

Exemples

Exemple 1. Exemple avec maxdb_get_client_version()

<?php

/* Nous n'avons pas besoin d'une connexion
pour déterminer la version de la bibliothèque MaxDB */

printf("Version de la bibliothèque cliente : %d\n", maxdb_get_client_version());
?>

L'exemple ci-dessus va afficher :

Version de la bibliothèque cliente : 7.<...>

Voir aussi

maxdb_get_client_info(),
maxdb_get_server_info() et
maxdb_get_server_version().

Précédent | Sommaire | Suivant
maxdb_get_client_info | Niveau supérieur | maxdb_get_host_info


maxdb_get_host_info

(PECL)

maxdb_get_host_info

(no version information, might be only in CVS)

maxdb->get_host_info -- Retourne une chaîne représentant le typde de connexion utilisé

Description

Style procédural

string maxdb_get_host_info ( resource link )

Style orienté objet (méthode)

class maxdb {

string host_info

}

maxdb_get_host_info() retourne une chaîne décrivant la connexion représentée par le paramètre link.

Valeurs de retour

Une chaîne représentant l'hôte du serveur ainsi que le type de connexion.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche les informations de l'hôte */
printf("Informations sur l'hôte : %s\n", $maxdb->host_info);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche les informations de l'hôte */
printf("Informations sur l'hôte : %s\n", maxdb_get_host_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Informations sur l'hôte : localhost

Voir aussi

maxdb_get_proto_info().

Précédent | Sommaire | Suivant
maxdb_get_client_version | Niveau supérieur | maxdb_get_metadata


maxdb_get_metadata

(PECL)

maxdb_get_metadata -- Alias de maxdb_stmt_result_metadata()

Description

Cette fonction est un alias de : maxdb_stmt_result_metadata().

Cet alias est déprécié et n'existe que pour des raisons de compatiblité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.

Précédent | Sommaire | Suivant
maxdb_get_host_info | Niveau supérieur | maxdb_get_proto_info


maxdb_get_proto_info

(PECL)

maxdb_get_proto_info

(no version information, might be only in CVS)

maxdb->protocol_version -- Retourne la version du protocole MaxDB utilisé

Description

Style procédural

int maxdb_get_proto_info ( resource link )

Style orienté objet (méthode)

class maxdb {

string protocol_version

}

Retourne un entier représentant la version du protocole MaxDB utilisé par la connexion représentée par le paramètre link.

Valeurs de retour

Retourne un entier représentant la version du protocole (constante 10).

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche la version du protocole */
printf("Version du protocole : %d\n", $maxdb->protocol_version);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche la version du protocole */
printf("Version du protocole : %d\n", maxdb_get_proto_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Version du protocole : 10

Voir aussi

maxdb_get_host_info().

Précédent | Sommaire | Suivant
maxdb_get_metadata | Niveau supérieur | maxdb_get_server_info


maxdb_get_server_info

(PECL)

maxdb_get_server_info

(no version information, might be only in CVS)

maxdb->server_info -- Retourne la version du serveur MaxDB

Description

Style procédural

string maxdb_get_server_info ( resource link )

Style orienté objet (méthode)

class maxdb {

string server_info

}

Retourne une chaîne représentant la version du serveur MaxDB sur lequel l'extension MaxDB est connecté (représenté par le paramètre link).

Valeurs de retour

Une chaîne représentant la version du serveur.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche la version du serveur */
printf("Version du serveur : %s\n", $maxdb->server_info);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche la version du serveur */
printf("Version du serveur : %s\n", maxdb_get_server_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Version du serveur : Kernel    7<...>

Voir aussi

maxdb_get_client_info(),
maxdb_get_client_version() et
maxdb_get_server_version().

Précédent | Sommaire | Suivant
maxdb_get_proto_info | Niveau supérieur | maxdb_get_server_version


maxdb_get_server_version

(PECL)

maxdb_get_server_version -- Retourne la version du serveur MaxDB sous la forme d'un entier

Description

Style procédural

int maxdb_get_server_version ( resource link )

Style orienté objet (méthode)

class maxdb {

int server_version

}

maxdb_get_server_version() retourne la version du serveur connecté (représenté par le paramètre link) en tant qu'entier.

La forme de ce numéro de version est main_version * 10000 + minor_version * 100 + sub_version (i.e. version 7.5.0 est 70500).

Valeurs de retour

Un entier représentant la version du serveur.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche la version du serveur */
printf("Version du serveur : %d\n", $maxdb->server_version);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Affiche la version du serveur */
printf("Version du serveur : %d\n", maxdb_get_server_version($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Version du serveur : 7<...>

Exemples

maxdb_get_client_info(),
maxdb_get_client_version() et
maxdb_get_server_info().

Précédent | Sommaire | Suivant
maxdb_get_server_info | Niveau supérieur | maxdb_info


maxdb_info

(PECL)

maxdb_info

(no version information, might be only in CVS)

maxdb->info -- Récupère des informations sur le dernière requête exécutée

Description

Style procédural

string maxdb_info ( resource link )

Style orienté objet (méthode)

class maxdb {

string info

}

maxdb_info() retourne une chaîne contenant des informations sur la dernière requête exécutée. La nature de cette chaîne est définie ci-dessous :

Tableau 1. Valeurs de retour possibles pour maxdb_info

Type de requête | Exemple de chaîne résultante
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Note : Les requêtes qui ne correspondent pas à une des catégories ci-dessus ne sont pas supportées. Dans ce cas, maxdb_info() retourne une chaîne vide.

Valeurs de retour

Une chaîne représentant des informations addtionnelles sur la dernière requête exécutées.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.t1 LIKE hotel.city");

/* INSERT INTO .. SELECT */
$maxdb->query("INSERT INTO temp.t1 SELECT * FROM hotel.city");
printf("%s\n", $maxdb->info);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query($link, "CREATE TABLE temp.t1 LIKE hotel.city");

/* INSERT INTO .. SELECT */
maxdb_query($link, "INSERT INTO temp.t1 SELECT * FROM hotel.city");
printf("%s\n", maxdb_info($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Records: 25 Duplicates: 0 Warnings: 0

Voir aussi

maxdb_affected_rows(),
maxdb_warning_count() et
maxdb_num_rows().

Précédent | Sommaire | Suivant
maxdb_get_server_version | Niveau supérieur | maxdb_init


maxdb_init

(PECL)

maxdb_init -- Initialise MaxDB et retourne une ressource pour l'utiliser avec maxdb_real_connect

Description

resource maxdb_init ( void )

Alloue ou initialise une ressource MaxDB utilisable pour avec les fonctions maxdb_options() et maxdb_real_connect().

Note : Tous les appels de sous-séquence à n'importe quel fonction maxdb (sauf maxdb_options()) échoueront tant que la fonction maxdb_real_connect() ne sera pas appelée.

Valeurs de retour

Retourne une ressource.

Voir aussi

maxdb_options(),
maxdb_close(),
maxdb_real_connect() et
maxdb_connect().

Précédent | Sommaire | Suivant
maxdb_info | Niveau supérieur | maxdb_insert_id


maxdb_insert_id

(PECL)

maxdb_insert_id

(no version information, might be only in CVS)

maxdb->insert_id -- Retourne le dernier identifiant généré automatiquement par la dernière requête

Description

Style procédural

mixed maxdb_insert_id ( resource link )

Style orienté objet (méthode)

class maxdb {

mixed insert_id

}

maxdb_insert_id() retourne le denier identifiant généré par une requête sur une table qui a une colonne possédant l'attribut DEFAULT SERIAL. Si la dernière requête n'était pas une requête de type INSERT ou UPDATE ou si la table modifiée n'a pas de colonne possédant un attribut DEFAULT SERIAL, cette fonction retournera zéro.

Valeurs de retour

La valeur du champs DEFAULT SERIAL qui a été mis à jour par la dernière requête. Retourne zéro s'il n'y a aucune requête précédente sur la connexion ou si la requête n'a pas mis à jour la valeur DEFAULT_SERIAL.

Note : Si le nombre généré est plus grand que la valeur maximale pour un entier, maxdb_insert_id() retournera une chaîne de caractères.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
printf("Echec de la connexion : %s\n", maxdb_connect_error());
exit();
}

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycity");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query("CREATE TABLE mycity LIKE hotel.city");
$maxdb->query("ALTER TABLE mycity ADD id FIXED(11) DEFAULT SERIAL");

$query = "INSERT INTO mycity (zip,name,state) VALUES ('12203','Albany' ,'NY')";
$maxdb->query($query);

printf ("Le nouvel enregistrement a comme identifiant %d.\n", $maxdb->insert_id);

/* Effacement de la table */
$maxdb->query("DROP TABLE mycity");

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
   printf("Echec de la connexion : %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycity");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE mycity LIKE hotel.city");
maxdb_query($link, "ALTER TABLE mycity ADD id FIXED(11) DEFAULT SERIAL");

$query = "INSERT INTO mycity (zip,name,state) VALUES ('12203','Albany' ,'NY')";
maxdb_query($link, $query);

printf ("Le nouvel enregistrement a comme identifiant %d.\n", maxdb_insert_id($link));

/* Effacement de la table */
maxdb_query($link, "DROP TABLE mycity");

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Le nouvel enregistrement a comme identifiant 1.

Précédent | Sommaire | Suivant
maxdb_init | Niveau supérieur | maxdb_kill


maxdb_kill

(PECL)

maxdb_kill

(no version information, might be only in CVS)

maxdb->kill -- Déconnecte un serveur MaxDB

Description

Style procédural

bool maxdb_kill ( resource link, int processid )

Style orienté objet (méthode)

class maxdb {

bool kill ( int processid )

}

Cette fonction est utilisée pour se déconnecter d'un serveur MaxDB spécifié par le paramètre processid.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Détermine l'identifiant du thread */
$thread_id = $maxdb->thread_id;

/* Tue la connexion */
$maxdb->kill($thread_id);

/* Ceci doit produire une erreur */
if (!$maxdb->query("CREATE TABLE myCity LIKE City")) {
    printf("Erreur : %s\n", $maxdb->error);
    exit;
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Détermine l'identifiant du thread */
$thread_id = maxdb_thread_id($link);

/* Tue la connexion */
maxdb_kill($link, $thread_id);

/* Ceci doit produire une erreur */
if (!maxdb_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Erreur : %s\n", maxdb_error($link));
    exit;
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Erreur : Session not connected

Voir aussi

maxdb_thread_id().

Précédent | Sommaire | Suivant
maxdb_insert_id | Niveau supérieur | maxdb_master_query


maxdb_master_query

(PECL)

maxdb_master_query -- Force l'exécution d'une requête sur le maître dans une configuration maître/esclave

Description

bool maxdb_master_query ( resource link, string query )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_kill | Niveau supérieur | maxdb_more_results


maxdb_more_results

(PECL)

maxdb_more_results

(no version information, might be only in CVS)

maxdb->more_results -- Vérifie s'il y a encore des résultats de disponibles depuis de multiples requêtes

Description

bool maxdb_more_results ( resource link )

maxdb_more_results() indique si un ou plusieurs jeux de résultats sont disponibles depuis le dernier appel à la fonction maxdb_multi_query().

Valeurs de retour

Toujours FALSE.

Exemples

Voir maxdb_multi_query().

Voir aussi

maxdb_multi_query(),
maxdb_next_result(),
maxdb_store_result() et
maxdb_use_result().

Précédent | Sommaire | Suivant
maxdb_master_query | Niveau supérieur | maxdb_multi_query


maxdb_multi_query

(PECL)

maxdb_multi_query

(no version information, might be only in CVS)

maxdb->multi_query -- Exécute une requête sur une base de données

Description

Style procédural

bool maxdb_multi_query ( resource link, string query )

Style orienté objet (méthode)

class maxdb {

bool multi_query ( string query )

}

maxdb_multi_query() fonctionne de la même manière que la fonction maxdb_query(). Les requêtes multiples ne sont pas encore supportées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query  = "SELECT * FROM dual";

/* Exécute de multiples requêtes */
if ($maxdb->multi_query($query)) {
    do {
        /* Stock le premier jeu de résultats */
        if ($result = $maxdb->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* Affiche une séparation */
        if ($maxdb->more_results()) {
            printf("-----------------\n");
        }
    } while ($maxdb->next_result());
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT * FROM dual";

/* Exécute de multiples requêtes */
if (maxdb_multi_query($link, $query)) {
    do {
        /* Stock le premier jeu de résultats */
        if ($result = maxdb_store_result($link)) {
            while ($row = maxdb_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            maxdb_free_result($result);
        }
        /* Affiche une séparation */
        if (maxdb_more_results($link)) {
        printf("-----------------\n");
        }
    } while (maxdb_next_result($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Warning: maxdb_multi_query(): -3008 POS(31) Invalid keyword or missing delimiter <...>

Voir aussi

maxdb_use_result(),
maxdb_store_result(),
maxdb_next_result() et
maxdb_more_results().

Précédent | Sommaire | Suivant
maxdb_more_results | Niveau supérieur | maxdb_next_result


maxdb_next_result

(PECL)

maxdb_next_result

(no version information, might be only in CVS)

maxdb->next_result -- Préapre le prochain résultat depuis multi_query

Description

bool maxdb_next_result ( resource link )

Vu que les requêtes multiples ne sont pas encore implémentées, maxdb_next_result() retourne toujours FALSE.

Valeurs de retour

FALSE

Voir aussi

maxdb_multi_query(),
maxdb_more_results(),
maxdb_store_result() et
maxdb_use_result().

Précédent | Sommaire | Suivant
maxdb_multi_query | Niveau supérieur | maxdb_num_fields


maxdb_num_fields

(PECL)

maxdb_num_fields

(no version information, might be only in CVS)

result->field_count -- Récupère le nombre de champs dans un résultat

Description

Style procédural

int maxdb_num_fields ( resource result )

Style orienté objet (méthode)

class result {

int field_count

}

maxdb_num_fields() retourne le nombre de champs pour un jeu de résultats spécifique.

Valeurs de retour

Le nombre de champs dans un jeu de résultats

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($result = $maxdb->query("SELECT * FROM hotel.city ORDER BY zip")) {

    /* Détermine le nombre de champs dans le jeu de résultats */
    $field_cnt = $result->field_count;

    printf("Le résultat contient %d champs.\n", $field_cnt);

    /* Fermeture du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($result = maxdb_query($link, "SELECT * FROM hotel.city ORDER BY zip")) {

    /* Détermine le nombre de champs dans le jeu de résultats */
    $field_cnt = maxdb_num_fields($result);

    printf("Le résultat contient %d champs.\n", $field_cnt);

    /* Fermeture du jeu de résultats */
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Le résultat contient 3 champs.

Voir aussi

maxdb_fetch_field().

Précédent | Sommaire | Suivant
maxdb_next_result | Niveau supérieur | maxdb_num_rows


maxdb_num_rows

(PECL)

maxdb_num_rows -- Récupère le nombre de lignes dans un résultat

Description

Style procédural

int maxdb_num_rows ( resource result )

Style orienté objet (méthode)

class maxdb {

int num_rows

}

Retourne le nombre de lignes dans un jeu de résultats.

L'utilisation de la fonction maxdb_num_rows() dépend si vous utilisez des jeux de résultats bufferisés ou non. Dans le cas où vous utilisez des jeux de résultats non bufferisés, maxdb_num_rows() ne retournera pas un nombre de lignes correct tant que toutes les lignes du jeu de résultats n'auront pas été récupérées.

Valeurs de retour

Retourne le nombre de lignes dans le jeu de résultats.

Note : Si le nombre de lignes est plus grand que la valeur maximale pour un entier, le nombre sera retourné en tant que chaîne de caractères.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($result = $maxdb->query("SELECT cno, name FROM hotel.customer ORDER BY name")) {

    /* Détermine le nombre de lignes dans le jeu de résultats */
    $row_cnt = $result->num_rows;

    printf("Le résultat contient %d lignes.\n", $row_cnt);

    /* Fermeture du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($result = maxdb_query($link, "SELECT cno, name FROM hotel.customer ORDER BY name")) {

    /* Détermine le nombre de lignes dans le jeu de résultats */
    $row_cnt = maxdb_num_rows($result);

    printf("Le résultat contient %d lignes.\n", $row_cnt);

    /* Fermeture du jeu de résultats */
    maxdb_free_result($result);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Le résultat contient 15 lignes.

Voir aussi

maxdb_affected_rows(),
maxdb_store_result(),
maxdb_use_result() et
maxdb_query().

Précédent | Sommaire | Suivant
maxdb_num_fields | Niveau supérieur | maxdb_options


maxdb_options

(PECL)

maxdb_options

(no version information, might be only in CVS)

maxdb->options -- Définie des options

Description

Style procédural

bool maxdb_options ( resource link, int option, mixed value )

Style orienté objet (méthode)

class maxdb {

bool options ( int option, mixed value )

}

maxdb_options() peut être utilisé pour définir des options de connexion supplémentaire et affecte le comportement de cette connexion.

Cette fonction peut être appelée plusieurs fois pour définir différentes options.

maxdb_options() doit être appelé après
maxdb_init() et avant
maxdb_real_connect().

Le paramètre option est l'option que vous voulez définir, le paramètre value est la valeur de cette option. Pour plus de descriptions sur ces options, lisez http://dev.mysql.com/doc/maxdb/. Le paramètre option peut être une des valeurs suivantes :

Tableau 1. Options valides

Nom | Description
MAXDB_COMPNAME | Le composant "name" utilisé pour initialiser l'environnement d'exécution SQLDBC.
MAXDB_APPLICATION | L'application à connecter à la base de données.
MAXDB_APPVERSION | La version de l'application.
MAXDB_SQLMODE | Le mode SQL.
MAXDB_UNICODE | TRUE si la connexion est un client unicode(UCS2), FALSE sinon.
MAXDB_TIMEOUT | Le délai maximal d'inactivité autorisé après lequel la connexion à la base de données sera fermée par le système.
MAXDB_ISOLATIONLEVEL | Spécifie si oui ou non et combien de verrous partagés et de verrous exclusifs sont demandés ou libérés implicitement.
MAXDB_PACKETCOUNT | Le nombre de paquets différents utilisés pour la connexion.
MAXDB_STATEMENTCACHESIZE | Le nombre de requêtes préparées à être mises en cache pour la connexion pour être réutilisées.
MAXDB_CURSORPREFIX | Le préfixe à utiliser pour les tables résultantes qui sont automatiquement nommées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Voir maxdb_real_connect().

Voir aussi

maxdb_init() et maxdb_real_connect().

Précédent | Sommaire | Suivant
maxdb_num_rows | Niveau supérieur | maxdb_param_count


maxdb_param_count

(PECL)

maxdb_param_count -- Alias de maxdb_stmt_param_count()

Description

Cette fonction est un alias de : maxdb_stmt_param_count().

Cet alias est déprécié et n'existe que pour des raisons de compatiblité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.

Précédent | Sommaire | Suivant
maxdb_options | Niveau supérieur | maxdb_ping


maxdb_ping

(PECL)

maxdb_ping

(no version information, might be only in CVS)

maxdb->ping -- Test une connexion à un serveur ou tente de se reconnecter si la connexion a été interrompue

Description

Style procédural

bool maxdb_ping ( resource link )

Style orienté objet (méthode)

class maxdb {

bool ping ( void )

}

Vérifie si la connexion au serveur est active. Si elle a été interrompue et que l'option globale maxdb.reconnect est active, une reconnexion automatique est tentée.

Cette fonction peut être utilisée par les clients qui restent en attente durant de grande période, pour vérifier si la connexion a été interrompue par le serveur et pour se reconnecter si nécessaire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Vérifie si la connexion est active */
if ($maxdb->ping()) {
    printf ("Notre connexion est Ok !\n");
} else {
    printf ("Erreur : %s\n", $maxdb->error);
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Vérifie si la connexion est active */
if (maxdb_ping($link)) {
    printf ("Notre connexion est Ok !\n");
} else {
    printf ("Erreur : %s\n", maxdb_error($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Notre connexion est Ok !

Précédent | Sommaire | Suivant
maxdb_param_count | Niveau supérieur | maxdb_prepare


maxdb_prepare

(PECL)

maxdb_prepare

(no version information, might be only in CVS)

maxdb->prepare -- Prépare une requête SQL pour exécution

Description

Style procédural

resource maxdb_prepare ( resource link, string query )

Style orienté objet (méthode)

class stmt {

resource prepare ( string query )

}

maxdb_prepare() prépare la requête SQL pointée par la chaîne de requête et retourne un gestionnaire de requête à utiliser pour les opérations futures sur la requête. La requête doit être composée d'une seule requête SQL.

Note : Vous ne devez pas ajouter de point-virgule ou de \g à la fin de la requête.

Le paramètre query peut inclure un ou plusieurs marqueurs dans la requête SQL en y intégrant des point d'interrogations (?) aux positions voulues.

Note : Les marqueurs sont autorisés uniquement à des positions précises dans les requêtes SQL. Par exemple, ils sont autorisés dans la liste VALUE() d'une requête INSERT (pour spécifier une valeur de colonne pour une ligne), ou dans une comparaison avec une colonne dans une clause WHERE pour spécifier une valeur de comparaison.

Cependant, ils ne sont pas autorisés pour les identifiants (comme les noms de tables ou de colonnes), dans la liste SELECT qui nomme les colonnes à être retournées par les requêtes SELECT), ou pour spécifier les opérants d'un opérateur binaire comme le signe égal (=). La dernière restriction est nécessaire car il est impossible de déterminer le type du paramètre. En général, les paramètres sont légaux uniquement dans les requêtes Data Manipulation Languange (DML) et non dans les requêtes Data Defination Language (DDL).

Les marqueurs doit être liés aux variables en utilisant les fonctions maxdb_stmt_bind_param() et/ou maxdb_stmt_bind_result() avant d'exécuter la requête ou de récupérer les lignes.

Valeurs de retour

maxdb_prepare() retourne une ressource de requête ou FALSE si une erreur survient.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec dela connexion : %s\n", maxdb_connect_error());
    exit();
}

$city = "Rosemont";

/* Création d'une requête préparée */
if ($stmt = $maxdb->prepare("SELECT state FROM hotel.city WHERE name=?")) {

    /* Lie les paramètres aux marqueurs */
    $stmt->bind_param("s", $city);

    /* Exécute la requête */
    $stmt->execute();

    /* Lie les variables de résultats */
    $stmt->bind_result($district);

    /* Récupération des valeurs */
    $stmt->fetch();

    printf("%s est dans %s\n", $city, $district);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec dela connexion : %s\n", maxdb_connect_error());
    exit();
}

$city = "Rosemont";

/* Création d'une requête préparée */
if ($stmt = maxdb_prepare($link, "SELECT state FROM hotel.city WHERE name=?")) {

     /* Lie les paramètres aux marqueurs */
     maxdb_stmt_bind_param($stmt, "s", $city);

     /* Exécute la requête */
     maxdb_stmt_execute($stmt);

     /* Lie les variables de résultats */
     maxdb_stmt_bind_result($stmt, $district);

     /* Récupération des valeurs */
     maxdb_stmt_fetch($stmt);

     printf("%s est dans %s\n", $city, $district);

     /* Fermeture de la requête */
     maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Rosemont est dans IL

Voir aussi

maxdb_stmt_execute(),
maxdb_stmt_fetch(),
maxdb_stmt_bind_param(),
maxdb_stmt_bind_result() et
maxdb_stmt_close().

Précédent | Sommaire | Suivant
maxdb_ping | Niveau supérieur | maxdb_query


maxdb_query

(PECL)

maxdb_query

(no version information, might be only in CVS)

maxdb->query -- Exécute une requête sur une base de données

Description

Style procédural

mixed maxdb_query ( resource link, string query [, int resultmode] )

Style orienté objet (méthode)

class maxdb {

mixed query ( string query )

}

maxdb_query() est utilisé pour simplifier l'exécution d'une requête sur une base de données représentée par le paramètre link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Pour les requêtes SELECT, SHOW, DESCRIBE ou EXPLAIN, maxdb_query() retourne une ressource de résultats.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* La création d'une table ne retourne pas de jeu de résultats*/
if ($maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city") === TRUE) {
    printf("La table mycity a été créée avec succès.\n");
}

/* Les requêtes SELECT retournent un jeu de résultats */
if ($result = $maxdb->query("SELECT name FROM hotel.city")) {
    printf("SELECT a retourné %d lignes.\n", $result->num_rows);

    /* Libération des résultats */
    $result->close();
}

/* Si nous devons récupérer une grosse quantité de données, nous utilisons MAXDB_USE_RESULT */
if ($result = $maxdb->query("SELECT * FROM hotel.city", MAXDB_USE_RESULT)) {
    $result->close();
}

$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* La création d'une table ne retourne pas de jeu de résultats */
if (maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city") === TRUE) {
    printf("La table mycity a été créée avec succès.\n");
}

/* Les requêtes SELECT retournent un jeu de résultats */
if ($result = maxdb_query($link, "SELECT name FROM hotel.city")) {
    printf("SELECT a retourné %d lignes.\n", maxdb_num_rows($result));

    /* Libération des résultats */
    maxdb_free_result($result);
}

/* Si nous devons récupérer une grosse quantité de données, nous utilisons MAXDB_USE_RESULT */
if ($result = maxdb_query($link, "SELECT * FROM hotel.city", MAXDB_USE_RESULT)) {
    maxdb_free_result($result);
}

maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

La table mycity a été créée avec succès.
SELECT a retourné 25 lignes.

Voir aussi

maxdb_real_query(),
maxdb_multi_query() et
maxdb_free_result().

Précédent | Sommaire | Suivant
maxdb_prepare | Niveau supérieur | maxdb_real_connect


maxdb_real_connect

(PECL)

maxdb_real_connect

(no version information, might be only in CVS)

maxdb->real_connect -- Ouvre une connexion sur un serveur MaxDB

Description

Style procédural

bool maxdb_real_connect ( resource link [, string hostname [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] )

Style orienté objet (méthode)

class maxdb {

bool real_connect ( [string hostname [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] )

}

maxdb_real_connect() tente d'ouvrir une connexion sur un serveur MaxDB fonctionnant sur l'hôte hostname.

Cette fonction diffère de maxdb_connect() :

  • maxdb_real_connect() nécessite une ressource valide créée par la fonction maxdb_init().

  • Avec la fonction maxdb_options(), vous pouvez définir plusieurs options pour la connexion.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php

/* Création d'un objet de connexion qui n'est pas connecté */
$maxdb = maxdb_init();

/* Définission des options de connexion */
$maxdb->options(MAXDB_UNICODE, "FALSE");
$maxdb->options(MAXDB_TIMEOUT, 5);

/* Connexion au serveur */
$maxdb->real_connect('localhost', 'MONA', 'RED', 'DEMODB');

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

printf ("Connexion : %s\n.", $maxdb->host_info);

$maxdb->close();
?>

Exemple 2. Style procédural

<?php

/* Création d'un objet de connexion qui n'est pas connecté */
$link = maxdb_init();

/* Définission des options de connexion */
maxdb_options($link, MAXDB_UNICODE, "FALSE");
maxdb_options($link, MAXDB_TIMEOUT, 5);

/* Connexion au serveur */
maxdb_real_connect($link, 'localhost', 'MONA', 'RED', 'DEMODB');

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

printf ("Connexion : %s\n.", maxdb_get_host_info($link));

maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Connexion: localhost <...>

Voir aussi

maxdb_connect(),
maxdb_init(),
maxdb_options(),
maxdb_ssl_set() et
maxdb_close().

Précédent | Sommaire | Suivant
maxdb_query | Niveau supérieur | maxdb_real_escape_string


maxdb_real_escape_string

(PECL)

maxdb_real_escape_string

(no version information, might be only in CVS)

maxdb->real_escape_string -- Echappe les caractères spéciaux d'une chaîne afin de l'utiliser dans une requpête SQL, en tenant compte du jeu de caractères courant de la connexion

Description

Style procédural

string maxdb_real_escape_string ( resource link, string escapestr )

Style orienté objet (méthode)

class maxdb {

string real_escape_sring ( string escapestr )

}

Cette fonction est utilisée pour créer une chaîne SQL légale que vous pouvez utiliser dans une requête SQL. La chaîne escapestr est encodée en une chaîne échappée SQL, en tenant compte du jeu de caractères courant de la connexion.

Les caractères encodés sont ', ".

Valeurs de retour

Retourne une chaîne échappée.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

$city = "'s Hertogenbosch";

/* Cette requête échouera, car nous n'avons pas échappé $city */
if (!$maxdb->query("INSERT into temp.mycity VALUES ('11111','$city','NY')")) {
    printf("Erreur : %s\n", $maxdb->sqlstate);
}

$city = $maxdb->real_escape_string($city);

/* Cette requête, avec $city échappé, fonctionnera */
if ($maxdb->query("INSERT into temp.mycity VALUES ('22222','$city','NY')")) {
    printf("%d ligne insérée.\n", $maxdb->affected_rows);
}

$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

$city = "'s Hertogenbosch";

/* Cette requête échouera, car nous n'avons pas échappé $city */
if (!maxdb_query($link, "INSERT into temp.mycity VALUES ('11111','$city','NY')")) {
    printf("Erreur : %s\n", maxdb_sqlstate($link));
}

$city = maxdb_real_escape_string($link, $city);

/* Cette requête, avec $city échappé, fonctionnera */
if (maxdb_query($link, "INSERT into temp.mycity VALUES ('22222','$city','NY')")) {
    printf("%d ligne insérée.\n", maxdb_affected_rows($link));
}

maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Warning: maxdb_query(): -5016 POS(43) Missing delimiter: ) <...>
Erreur : 42000
1 ligne insérée.

Voir aussi

maxdb_character_set_name().

Précédent | Sommaire | Suivant
maxdb_real_connect | Niveau supérieur | maxdb_real_query


maxdb_real_query

(PECL)

maxdb_real_query

(no version information, might be only in CVS)

maxdb->real_query -- Exécute une requête SQL

Description

Style procédural

bool maxdb_real_query ( resource link, string query )

Style orienté objet (méthode)

class maxdb {

bool real_query ( string query )

}

maxdb_real_query() est identique au niveau fonctionnalité que la fonction maxdb_query().

Note : Pour déterminer si une requête donnée doit retourner un jeu de résultats ou non, référez-vous à la fonction maxdb_field_count().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

maxdb_query(),
maxdb_store_result() et
maxdb_use_result().

Précédent | Sommaire | Suivant
maxdb_real_escape_string | Niveau supérieur | maxdb_report


maxdb_report

(PECL)

maxdb_report -- Active ou désactive le rapport interne des fonctions

Description

bool maxdb_report ( int flags )

Exemples

Exemple 1. Style procédural

<?php
/* Active les rapports */
maxdb_report(MAXDB_REPORT_ERROR);

$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Cette requête doit rapporter une erreur */
$result = maxdb_query($link,"SELECT Name FROM Nonexistingtable WHERE population > 50000");

maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Warning: maxdb_query(): -4004 POS(18) Unknown table name:NONEXISTINGTABLE <...>

Précédent | Sommaire | Suivant
maxdb_real_query | Niveau supérieur | maxdb_rollback


maxdb_rollback

(PECL)

maxdb_rollback

(no version information, might be only in CVS)

maxdb->rollback -- Annule la transaction courante

Description

Style procédural

bool maxdb_rollback ( resource link )

Style orienté objet (méthode)

class maxdb {

bool rollback ( void )

}

Annule la transaction courante pour la base de données spécifiée par le paramètre link.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Désactive l'auto-commit */
$maxdb->autocommit(FALSE);

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

/* Exécution */
$maxdb->commit();

/* Efface toutes les lignes */
$maxdb->query("DELETE FROM temp.mycity");

if ($result = $maxdb->query("SELECT COUNT(*) FROM temp.mycity")) {
    $row = $result->fetch_row();
    printf("%d rows in table mycity.\n", $row[0]);
    /* Free result */
    $result->close();
}

/* Rollback */
$maxdb->rollback();

if ($result = $maxdb->query("SELECT COUNT(*) FROM temp.mycity")) {
    $row = $result->fetch_row();
    printf("%d ligne dans la table mycity (après annulation).\n", $row[0]);
    /* Libération du résultat */
    $result->close();
}

/* Effacement de la table myCity */
$maxdb->query("DROP TABLE temp.mycity");

$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Désactive l'auto-commit */
maxdb_autocommit($link, FALSE);

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

/* Exécution */
maxdb_commit($link);

/* Efface toutes les lignes */
maxdb_query($link, "DELETE FROM temp.mycity");

if ($result = maxdb_query($link, "SELECT COUNT(*) FROM temp.mycity")) {
    $row = maxdb_fetch_row($result);
    printf("%d ligne dans la table mycity.\n", $row[0]);
    /* Libération du résultats */
    maxdb_free_result($result);
}

/* Annulation */
maxdb_rollback($link);

if ($result = maxdb_query($link, "SELECT COUNT(*) FROM temp.mycity")) {
    $row = maxdb_fetch_row($result);
    printf("%d lignes dans la table mycity (après annulation).\n", $row[0]);
    /* Libération du résultat */
    maxdb_free_result($result);
}

/* Effacement de la table myCity */
maxdb_query($link, "DROP TABLE temp.mycity");

maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

0 ligne dans la table mycity.
25 lignes dans la table mycity (après annulation).

Voir aussi

maxdb_commit() et maxdb_autocommit().

Précédent | Sommaire | Suivant
maxdb_report | Niveau supérieur | maxdb_rpl_parse_enabled


maxdb_rpl_parse_enabled

(PECL)

maxdb_rpl_parse_enabled -- Vérifie si l'analyseur RPL est activé

Description

int maxdb_rpl_parse_enabled ( resource link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_rollback | Niveau supérieur | maxdb_rpl_probe


maxdb_rpl_probe

(PECL)

maxdb_rpl_probe -- Test RPL

Description

bool maxdb_rpl_probe ( resource link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_rpl_parse_enabled | Niveau supérieur | maxdb_rpl_query_type


maxdb_rpl_query_type

(PECL)

maxdb_rpl_query_type

(no version information, might be only in CVS)

maxdb->rpl_query_type -- Retourne une requête de type RPL

Description

Style procédural

int maxdb_rpl_query_type ( resource link )

Style orienté objet (méthode)

class maxdb {

int rpl_query_type ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_rpl_probe | Niveau supérieur | maxdb_select_db


maxdb_select_db

(PECL)

maxdb_select_db

(no version information, might be only in CVS)

maxdb->select_db -- Sélectionne une base de données pour les requêtes

Description

bool maxdb_select_db ( resource link, string dbname )

maxdb_select_db() sélectionne la base de données (spécifiée par le paramètre dbname) a être utilisée lors de l'exécution de requête sur la connexion représentée par le paramètre link.

Note : Cette fonction ne doit être utilisée que pour changer de base de données pour une connexion donnée. Vous pouvez sélectionner une base de données par défaut en utilisant le quatrième paramètres dans la fonction maxdb_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Retourne le nom de la base de données courante */
if ($result = $maxdb->query("SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
    $row = $result->fetch_row();
    printf("La base de données par défaut est %s.\n", $row[0]);
    $result->close();
}

/* Changement de base de données en une base inexistante */
$maxdb->select_db("XXXXXXXX");

/* Retourne le nom de la base de données courante */
if ($result = $maxdb->query("SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
    $row = $result->fetch_row();
    printf("La base de données courante est %s.\n", $row[0]);
    $result->close();
}

$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Retourne le nom de la base de données courante */
if ($result = maxdb_query($link, "SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
    $row = maxdb_fetch_row($result);
    printf("La base de données par défaut est %s.\n", $row[0]);
    maxdb_free_result($result);
}

/* Changement de base de données en une base inexistante */
maxdb_select_db($link, "XXXXXXXX");

/* Retourne le nom de la base de données courante */
if ($result = maxdb_query($link, "SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
    $row = maxdb_fetch_row($result);
    printf("La base de données courante est %s.\n", $row[0]);
    maxdb_free_result($result);
}

maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

La base de données courante est DB76.

Warning: maxdb_select_db(): -10709 Connection failed (RTE:database not running) <...>

Warning: maxdb_query(): -10821 Session not connected [] <...>

Warning: maxdb_close(): -10821 Session not connected [] <...>

Voir aussi

maxdb_connect() et maxdb_real_connect().

Précédent | Sommaire | Suivant
maxdb_rpl_query_type | Niveau supérieur | maxdb_send_long_data


maxdb_send_long_data

(PECL)

maxdb_send_long_data -- Alias de maxdb_stmt_send_long_data()

Description

Cette fonction est un alias de : maxdb_stmt_send_long_data().

Cet alias est déprécié et n'existe que pour des raisons de compatiblité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.

Précédent | Sommaire | Suivant
maxdb_select_db | Niveau supérieur | maxdb_send_query


maxdb_send_query

(PECL)

maxdb_send_query

(no version information, might be only in CVS)

maxdb->send_query -- Envoie une requête et retourne

Description

Style procédural

bool maxdb_send_query ( resource link, string query )

Style orienté objet (méthode)

class maxdb {

bool send_query ( string query )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_send_long_data | Niveau supérieur | maxdb_server_end


maxdb_server_end

(PECL)

maxdb_server_end -- Eteint un serveur embarqué

Description

void maxdb_server_end ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_send_query | Niveau supérieur | maxdb_server_init


maxdb_server_init

(PECL)

maxdb_server_init -- Initialise un serveur embarqué

Description

bool maxdb_server_init ( [array server [, array groups]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_server_end | Niveau supérieur | maxdb_set_opt


maxdb_set_opt

(PECL)

maxdb_set_opt -- Alias de maxdb_options()

Description

Cette fonction est un alias de : maxdb_options().

Précédent | Sommaire | Suivant
maxdb_server_init | Niveau supérieur | maxdb_sqlstate


maxdb_sqlstate

(PECL)

maxdb_sqlstate

(no version information, might be only in CVS)

maxdb->sqlstate -- Retourne l'erreur SQLSTATE depuis la dernière opération MaxDB

Description

Style procédural

string maxdb_sqlstate ( resource link )

Style orienté objet (méthode)

class maxdb {

string sqlstate

}

Retourne une chaîne contenant le code erreur SQLSTATE pour la dernière erreur. Le code erreur est composé de cinq caractères. '00000' signifie aucune erreur. Les valeurs sont spécifiées par ANSI SQL et ODBC.

Note : Notez que toutes les erreurs MaxDB ne sont pas encore implémentées dans SQLSTATE. La valeur HY000 (erreur générale) est utilisée pour les erreurs non implémentées.

Valeurs de retour

Retourne une chaîne contenant le code erreur SQLSTATE pour la dernière erreur. Le code erreur est composé de cinq caractères. '00000' signifie aucune erreur.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* La table City existe déjà, donc nous devrions avoir une erreur */
if (!$maxdb->query("CREATE TABLE hotel.city (ID INT, Name VARCHAR(30))")) {
    printf("Erreur - SQLSTATE %s.\n", $maxdb->sqlstate);
}

$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* La table City existe déjà, donc nous devrions avoir une erreur */
if (!maxdb_query($link, "CREATE TABLE hotel.city (ID INT, Name VARCHAR(30))")) {
    printf("Erreur - SQLSTATE %s.\n", maxdb_sqlstate($link));
}

maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Warning: maxdb_query(): -6000 POS(20) Duplicate table name:CITY [I6000] <...>
Erreur - SQLSTATE I6000.

Voir aussi

maxdb_errno() et maxdb_error().

Précédent | Sommaire | Suivant
maxdb_set_opt | Niveau supérieur | maxdb_ssl_set


maxdb_ssl_set

(PECL)

maxdb_ssl_set

(no version information, might be only in CVS)

maxdb->ssl_set -- Utilisé pour établir une connexion sécurisée utilisant SSL

Description

Style procédural

bool maxdb_ssl_set ( resource link, string key, string cert, string ca, string capath, string cipher )

Style orienté objet (méthode)

class maxdb {

bool ssl_set ( string key, string cert, string ca, string capath, string cipher )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_sqlstate | Niveau supérieur | maxdb_stat


maxdb_stat

(PECL)

maxdb_stat

(no version information, might be only in CVS)

maxdb->stat -- Récupère le statut courant du système

Description

Style procédural

string maxdb_stat ( resource link )

Style orienté objet (méthode)

class maxdb {

string maxdb->stat ( void )

}

maxdb_stat() retourne une chaîne contenant plusieurs informations concernant le serveur MaxDB.

Valeurs de retour

Une chaîne décrivant le statut du serveur ou FALSE si une erreur survient.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

printf ("Statut du système : %s\n", $maxdb->stat());

$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

printf("Statut du système : %s\n", maxdb_stat($link));

maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Statut du système : Kernel    7<...>

Voir aussi

maxdb_get_server_info().

Précédent | Sommaire | Suivant
maxdb_ssl_set | Niveau supérieur | maxdb_stmt_affected_rows


maxdb_stmt_affected_rows

(PECL)

maxdb_stmt_affected_rows

(no version information, might be only in CVS)

maxdb_stmt->affected_rows -- Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête

Description

Style procédural

int maxdb_stmt_affected_rows ( resource stmt )

Style orienté objet (méthode)

class stmt {

int affected_rows

}

maxdb_stmt_affected_rows() retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE. Si la dernière requête est invalide ou si le nombre de lignes ne peut être déterminé, cette fonction retournera -1.

Valeurs de retour

Un entier plus grand que zéro indique le nombre de lignes affectées ou récupérées. Zéro indique qu'aucun enregistrement n'a été mis à jour pour une requête UPDATE/DELETE; aucune ligne ne correspond à la clause WHERE d'une requête ou bien qu'aucun requête n'a été exécutée pour le moment. -1 indique que la requête a retournée une erreur ou bien que le nombre de lignes n'a pu être déterminé.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Création d'une table temporaire */
$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

$query = "INSERT INTO temp.mycity SELECT * FROM hotel.city WHERE state LIKE ?";

/* Prépare une requête */
if ($stmt = $maxdb->prepare($query)) {

    /* Lie les variables à un endroit */
    $code = 'N%';
    $stmt->bind_param("s", $code);

    /* Exécute la requête */
    $stmt->execute();

    printf("Lignes insérées : %d\n", $stmt->affected_rows);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Création d'une table temporaire */
maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

$query = "INSERT INTO temp.mycity SELECT * FROM hotel.city WHERE state LIKE ?";

/* Prépare une requête */
if ($stmt = maxdb_prepare($link, $query)) {

    /* Lie les variables à un endroit */
    $code = 'N%';
    maxdb_stmt_bind_param($stmt, "s", $code);

    /* Exécute la requête */
    maxdb_stmt_execute($stmt);

    printf("Lignes insérées : %d\n", maxdb_stmt_affected_rows($stmt));

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Lignes insérées : 4

Voir aussi

maxdb_stmt_num_rows() et maxdb_prepare().

Précédent | Sommaire | Suivant
maxdb_stat | Niveau supérieur | maxdb_stmt_bind_param


maxdb_stmt_bind_param

(PECL)

maxdb_stmt_bind_param

(no version information, might be only in CVS)

stmt->bind_param -- Lie les variables à une requête préparée en tant que paramètres

Description

Style procédural

bool maxdb_stmt_bind_param ( resource stmt, string types, mixed &var1 [, mixed &...] )

Style orienté objet (méthode)

class stmt {

bool bind_param ( string types, mixed &var1 [, mixed &...] )

}

Style procédural (syntaxe étendue) :

bool maxdb_stmt_bind_param ( resource stmt, string types, array &var )

Style orienté objet (méthode) (syntaxe étendue):

class stmt {

bool bind_param ( string types, array &var )

}

maxdb_stmt_bind_param() est utilisé pour lier les variables pour les marqueurs dans la requête SQL qui a été passée à maxdb_prepare(). La chaîne types contient un ou plusieurs caractères qui spécifient le(s) type(s) correspondant aux variables liées.

La syntaxe étendue de maxdb_stmt_bind_param() permet de passer les paramètres en tant que tableaux plutôt qu'en tant que listes de variables PHP à la fonction. Si le tableau de variables n'a pas été utilisé avant l'appel à la fonction maxdb_stmt_bind_param(), il doit être initialisé en tant que tableau vide. Voir les exemples sur l'utilisation de la fonction maxdb_stmt_bind_param() avec la syntaxe étendue.

Les variables pour les requêtes SELECT INTO SQL peuvent également être liées en utilisant la fonction maxdb_stmt_bind_param(). Les paramètres pour les procédures de base de données peuvent être liés en utilisant la fonction maxdb_stmt_bind_param(). Voir les exemples sur l'utilisation de la fonction maxdb_stmt_bind_param() dans ce cas.

Si une variable liée comme variable INTO à une requête SQL a été utilisée avant, le contenu de cette variable sera écrasé par les données de la requête SELECT INTO. Une référence sur cette variable sera invalide après un appel à la fonction maxdb_stmt_bind_param().

Pour les paramètres INOUT des procédures de base de données, le contenu de la variable liée INOUT sera écrasé par la valeur de sortie de la procédure de la base de données. Une référence sur cette variable sera invalide après un appel à la fonction maxdb_stmt_bind_param().

Tableau 1. Caractères spécifiant les types

Caractères | Description
i | correspond à une variable de type entier
d | correspond à une variable de type ???
s | correspond à une variable de type chaîne de caractères
b | correspond à une variable de type blob et sera envoyée dans le paquet

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb('localhost', 'MONA', 'RED', 'DEMODB');

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");
$stmt->bind_param('sss', $zip, $name, $state);

$zip = '11111';
$name = 'Georgetown';
$state = 'NY';

/* Exécution de la requête préparée */
$stmt->execute();

printf("%d ligne insérée.\n", $stmt->affected_rows);

/* Fermeture de la requête */
$stmt->close();

/* Nettoyage de la table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d ligne effacée.\n", $maxdb->affected_rows);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query ($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query ($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = maxdb_prepare($link, "INSERT INTO temp.mycity VALUES (?, ?, ?)");
maxdb_stmt_bind_param($stmt, 'sss', $zip, $name, $state);

$zip = '11111';
$name = 'Georgetown';
$state = 'NY';

/* Exécution de la requête préparée */
maxdb_stmt_execute($stmt);

printf("%d ligne insérée.\n", maxdb_stmt_affected_rows($stmt));

/* Fermeture de la requête */
maxdb_stmt_close($stmt);

/* Nettoyage de la table CountryLanguage */
maxdb_query($link, "DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d ligne effacée.\n", maxdb_affected_rows($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

1 ligne insérée.
1 ligne effacée.

Exemple 3. Style procédural (SELECT INTO)

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Exécution d'une requête SQL */
$stmt = maxdb_prepare ($link, "SELECT price INTO ? FROM hotel.room where hno = ? and type = ?");
if (!$stmt) {
    printf ("Echec de la préparation : %s\n", maxdb_error($link));
}

$hno = "50";
$rtype = "suite";

maxdb_stmt_bind_param($stmt, 'dss', $price, $hno, $rtype);
maxdb_stmt_execute($stmt);

printf ("%f\n", $price);

maxdb_stmt_close ($stmt);
?>

L'exemple ci-dessus va afficher :

21.600000

Exemple 4. Style procédural (DB procedure)

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP DBPROC test_proc");
maxdb_report (MAXDB_REPORT_ERROR);

$query = "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";

maxdb_query($link, $query);

/* Exécution d'une requête SQL */
$stmt = maxdb_prepare ($link, "CALL test_proc (?)");
if (!$stmt) {
    printf ("Echec de la préparation : %s\n", maxdb_error($link));
}

maxdb_stmt_bind_param($stmt, 's', $result);
maxdb_stmt_execute($stmt);

printf ("%s\n", $result);

maxdb_stmt_close ($stmt);
?>

L'exemple ci-dessus va afficher :

a

Exemple 5. Style orienté objet (syntaxe étendue)

<?php
$maxdb = new maxdb('localhost', 'MONA', 'RED', 'DEMODB');

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Connect failed: %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");

$arr = array();

$stmt->bind_param('iss', $arr);

$arr[0] = 11111;
$arr[1] = 'Georgetown';
$arr[2] = 'NY';

/* Exécution de la requête préparée */
$stmt->execute();

printf("%d ligne insérée.\n", maxdb_stmt_affected_rows($stmt));

$arr[0] = 22222;
$arr[1] = 'New Orleans';
$arr[2] = 'LA';

/* Exécution de la requête préparée */
$stmt->execute();

printf("%d ligne insérée.\n", $stmt->affected_rows);

/* Fermeture de la requête et de la connexion */
$stmt->close();

$result = $maxdb->query("SELECT * from temp.mycity WHERE zip = '11111' OR zip = '22222'");
if ($result) {
    while ($row = $result->fetch_row()) {
        printf ("%s %s %s\n", $row[0], $row[1], $row[2]);
    }
}

/* Nettoyage de la table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
$maxdb->query("DELETE FROM temp.mycity WHERE name='New Orleans'");
printf("%d lignes effacées.\n", $maxdb->affected_rows);

/* Fermeture de la connexion */
$maxdb->close();
?>

L'exemple ci-dessus va afficher :

1 ligne insérée.
1 ligne insérée.
11111 Georgetown NY
22222 New Orleans LA
2 lignes effacées.

Voir aussi

maxdb_stmt_bind_result(),
maxdb_stmt_execute(),
maxdb_stmt_fetch(),
maxdb_prepare(),
maxdb_stmt_send_long_data(),
maxdb_stmt_errno() et
maxdb_stmt_error().

Précédent | Sommaire | Suivant
maxdb_stmt_affected_rows | Niveau supérieur | maxdb_stmt_bind_result


maxdb_stmt_bind_result

(PECL)

maxdb_stmt_bind_result

(no version information, might be only in CVS)

stmt->bind_result -- Lie les variables à une requête préparée pour stockage du résultat

Description

Style procédural

bool maxdb_stmt_bind_result ( resource stmt, mixed &var1 [, mixed &...] )

Style orienté objet (méthode)

class stmt {

bool bind_result ( mixed &var1 [, mixed &...] )

}

maxdb_stmt_bind_result() est utilisé pour associer (lier) les colonnes du jeu de résultats à des variables. Lorsque maxdb_stmt_fetch() est appelé pour récupérer les données, Le protocole client/serveur MaxDB place les données pour les colonnes liées dans les variables spécifiées var1, ....

Note : Notez que toutes les colonnes doivent être liées avant l'appel à maxdb_stmt_fetch(). Les variables liées peuvent être modifiées en leur type PHP correspondant suivant le type des colonnes.

Une colonne peut être liée ou reliée à n'importe quel moment, y compris après la récupération d'une partie du jeu de résultats. La nouvelle association prend effet au prochain appel à maxdb_stmt_fetch().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Préparation de la requête */
if ($stmt = $maxdb->prepare("SELECT zip, name FROM hotel.city ORDER BY name")) {
    $stmt->execute();

    /* Lie les variables à la requête préparée */
    $stmt->bind_result($col1, $col2);

    /* Récupération des valeurs */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

    /* Fermeture de la requête */
    $stmt->close();
}
/* Fermeture de la connexion */
$maxdb->close();

?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (!$link) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Préparation de la requête */
if ($stmt = maxdb_prepare($link, "SELECT zip, name FROM hotel.city ORDER BY name")) {
    maxdb_stmt_execute($stmt);

    /* Lie les variables à la requête préparée */
    maxdb_stmt_bind_result($stmt, $col1, $col2);

    /* Récupération des valeurs */
    while (maxdb_stmt_fetch($stmt)) {
        printf("%s %s\n", $col1, $col2);
    }

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

12203 Albany
60601 Chicago
60615 Chicago
45211 Cincinnati
33575 Clearwater
75243 Dallas
32018 Daytona Beach
33441 Deerfield Beach
48226 Detroit
90029 Hollywood
92714 Irvine
90804 Long Beach
11788 Long Island
90018 Los Angeles
70112 New Orleans
10019 New York
10580 New York
92262 Palm Springs
97213 Portland
60018 Rosemont
95054 Santa Clara
20903 Silver Spring
20005 Washington
20019 Washington
20037 Washington

Voir aussi

maxdb_stmt_bind_param(),
maxdb_stmt_execute(),
maxdb_stmt_fetch(),
maxdb_prepare(),
maxdb_stmt_prepare(),
maxdb_stmt_init(),
maxdb_stmt_errno() et
maxdb_stmt_error().

Précédent | Sommaire | Suivant
maxdb_stmt_bind_param | Niveau supérieur | maxdb_stmt_close_long_data


maxdb_stmt_close_long_data

(PECL)

maxdb_stmt_close_long_data

(no version information, might be only in CVS)

stmt->close_long_data -- Termine une séquence maxdb_stmt_send_long_data()

Description

Style procédural

bool maxdb_stmt_close_long_data ( resource stmt, int param_nr )

Style orienté objet (méthode)

class maxdb_stmt {

bool maxdb_stmt->close_long_data ( void )

}

Cette fonction doit être appelée après une séquence de maxdb_stmt_send_long_data(), qui a été commencée après maxdb_execute().

param_nr indique quel paramètre à associer avec la fin des données. Les paramètres sont numérotés en commençant à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

maxdb_prepare() et maxdb_stmt_bind_param().

Précédent | Sommaire | Suivant
maxdb_stmt_bind_result | Niveau supérieur | maxdb_stmt_close


maxdb_stmt_close

(PECL)

maxdb_stmt_close

(no version information, might be only in CVS)

maxdb_stmt->close -- Ferme une requête préparée

Description

Style procédural

bool maxdb_stmt_close ( resource stmt )

Style orienté objet (méthode)

class maxdb_stmt {

bool maxdb_stmt->close ( void )

}

Ferme une requête préparée. maxdb_stmt_close() désalloue également le gestionnaire de requête représenté par stmt. Si la requête courante est en attente ou à des résultats non lus, cette fonction s'interrompt et ainsi, la prochaine requête peut être exécutée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

maxdb_prepare().

Précédent | Sommaire | Suivant
maxdb_stmt_close_long_data | Niveau supérieur | maxdb_stmt_data_seek


maxdb_stmt_data_seek

(PECL)

maxdb_stmt_data_seek

(no version information, might be only in CVS)

stmt->data_seek -- Se positionne sur une ligne arbitraire dans le jeu de résultats

Description

Style procédural

bool maxdb_stmt_data_seek ( resource statement, int offset )

Style orienté objet (méthode)

class stmt {

bool data_seek ( int offset )

}

maxdb_stmt_data_seek() déplace le pointeur sur une ligne arbitraire offset du jeu de résultat statement. Le paramètre offset doit être compris entre zéro et le nombre total de lignes moins un (0..maxdb_stmt_num_rows() - 1).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

    /* Exécute une requête */
    $stmt->execute();

    /* Lie les variables de résultats */
    $stmt->bind_result($name, $code);

    /* Stock le résultat */
    $stmt->store_result();

    /* Se place sur la ligne no. 5 */
    $stmt->data_seek(5);

    /* Récupère les valeurs */
    $stmt->fetch();

    printf ("Ville : %s  Code postal : %s\n", $name, $code);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
/* Ouvre une connexion */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

    /* Exécute une requête */
    maxdb_stmt_execute($stmt);

    /* Lie les variables de résultats */
    maxdb_stmt_bind_result($stmt, $name, $code);

    /* Stock le résultat */
    maxdb_stmt_store_result($stmt);

    /* Se place sur la ligne no. 5 */
    maxdb_stmt_data_seek($stmt, 5);

    /* Récupère les valeurs */
    maxdb_stmt_fetch($stmt);

    printf ("Ville : %s  Code postal : %s\n", $name, $code);

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Ville : Dallas  Code postal : 75243

Voir aussi

maxdb_prepare().

Précédent | Sommaire | Suivant
maxdb_stmt_close | Niveau supérieur | maxdb_stmt_errno


maxdb_stmt_errno

(PECL)

maxdb_stmt_errno

(no version information, might be only in CVS)

maxdb_stmt->errno -- Retourne le code erreur pour le dernier appel à une fonction de requête

Description

Style procédural

int maxdb_stmt_errno ( resource stmt )

Style orienté objet (méthode)

class stmt {

int errno

}

Pour la requête spécifiée par le paramètre stmt, maxdb_stmt_errno() retourne le code erreur pour l'appel le plus récent à une fonction de requête, qu'elle ait réussie ou échouée.

Note : Pour une liste des codes erreurs possibles, lisez la documentation SQLDBC: http://dev.mysql.com/doc/maxdb/.

Valeurs de retour

Un code erreur. Zéro signifie qu'aucune erreur n'est survenue.

Exemples

Exemple 1. Style orienté objet

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

    /* Efface une table */
    $maxdb->query("DROP TABLE temp.mycity");

    /* Exécute une requête */
    $stmt->execute();

    printf("Erreur : %d.\n", $stmt->errno);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
/* Ouvre une connexion */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

    /* Efface une table */
    maxdb_query($link, "DROP TABLE temp.mycity");

    /* Exécute une requête */
    maxdb_stmt_execute($stmt);

    printf("Erreur : %d.\n", maxdb_stmt_errno($stmt));

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Erreur : -4004.

Voir aussi

maxdb_stmt_error() et maxdb_stmt_sqlstate().

Précédent | Sommaire | Suivant
maxdb_stmt_data_seek | Niveau supérieur | maxdb_stmt_error


maxdb_stmt_error

(PECL)

maxdb_stmt_error

(no version information, might be only in CVS)

maxdb_stmt->error -- Retourne une description de la dernière erreur

Description

Style procédural

string maxdb_stmt_error ( resource stmt )

Style orienté objet (méthode)

class stmt {

string error

}

Pour la requête spécifiée par le paramètre stmt, maxdb_stmt_error() retourne un message d'erreur correspondant à la fonction de requête la plus récente, qu'elle ait échouée ou réussie.

Valeurs de retour

Une chaîne décrivant l'erreur. Une chaîne vide s'il n'y a aucune erreur.

Exemples

Exemple 1. Style orienté objet

<?php
/* Ouverture d'une connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

    /* Effacement de la table */
    $maxdb->query("DROP TABLE temp.mycity");

    /* Exécute une requête */
    $stmt->execute();

    printf("Erreur : %s.\n", $stmt->error);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
/* Ouverture d'une connexion */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

    /* Effacement de la table */
    maxdb_query($link, "DROP TABLE temp.mycity");

    /* Exécute une requête */
    maxdb_stmt_execute($stmt);

    printf("Erreur : %s.\n", maxdb_stmt_error($stmt));

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Erreur : POS(23) Unknown table name:MYCITY.

Voir aussi

maxdb_stmt_errno() et maxdb_stmt_sqlstate().

Précédent | Sommaire | Suivant
maxdb_stmt_errno | Niveau supérieur | maxdb_stmt_execute


maxdb_stmt_execute

(PECL)

maxdb_stmt_execute

(no version information, might be only in CVS)

stmt->execute -- Exécute une requête préparée

Description

Style procédural

bool maxdb_stmt_execute ( resource stmt )

Style orienté objet (méthode)

class stmt {

bool execute ( void )

}

maxdb_stmt_execute() exécute une requête qui a été préparée auparavant en utilisant la fonction maxdb_prepare() représenté par la ressource stmt. Lors de l'exécution, tous les marqueurs existants seront automatiquement remplacés par les données appropriées.

Si la requête est du type UPDATE, DELETE ou INSERT, le nombre total de lignes affectées peut être déterminé en utilisant la fonction maxdb_stmt_affected_rows(). De même, si la requête rapporte un jeu de résultats, la fonction maxdb_fetch() est utilisée.

Note : Lors de l'utilisation de la fonction maxdb_stmt_execute(), la fonction maxdb_fetch() doit être utilisée pour récupérer les données avant d'effectuer toute autre requête additionnelle.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

/* Prépare une requête d'insertion */
$query = "INSERT INTO temp.mycity (zip, name, state) VALUES (?,?,?)";
$stmt = $maxdb->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = '11111';
$val2 = 'Georgetown';
$val3 = 'NY';

/* Exécute la requête */
$stmt->execute();

$val1 = '22222';
$val2 = 'Hubbatown';
$val3 = 'CA';

/* Exécute la requête */
$stmt->execute();

/* Fermeture de la requête */
$stmt->close();

/* Récupère toutes les lignes depuis myCity */
$query = "SELECT zip, name, state FROM temp.mycity";
if ($result = $maxdb->query($query)) {
    while ($row = $result->fetch_row()) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* Libération du jeu de résultats */
    $result->close();
}

/* Effacement de la table */
$maxdb->query("DROP TABLE temp.mycity");

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

/* Prépare une requête d'insertion */
$query = "INSERT INTO temp.mycity (zip, name, state) VALUES (?,?,?)";
$stmt = maxdb_prepare($link, $query);

maxdb_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = '11111';
$val2 = 'Georgetown';
$val3 = 'NY';

/* Exécute la requête */
maxdb_stmt_execute($stmt);

$val1 = '22222';
$val2 = 'Hubbatown';
$val3 = 'CA';

/* Exécute la requête */
maxdb_stmt_execute($stmt);

/* Fermeture de la requête */
maxdb_stmt_close($stmt);

/* Récupère toutes les lignes depuis myCity */
$query = "SELECT zip, name, state FROM temp.mycity";
if ($result = maxdb_query($link, $query)) {
    while ($row = maxdb_fetch_row($result)) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* Libération du jeu de résultats */
    maxdb_free_result($result);
}

/* Effacement de la table */
maxdb_query($link, "DROP TABLE temp.mycity");

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

11111 (Georgetown,NY)
22222 (Hubbatown,CA)

Voir aussi

maxdb_prepare() et maxdb_stmt_bind_param().

Précédent | Sommaire | Suivant
maxdb_stmt_error | Niveau supérieur | maxdb_stmt_fetch


maxdb_stmt_fetch

(PECL)

maxdb_stmt_fetch

(no version information, might be only in CVS)

stmt->fetch -- Récupère les résultats depuis la requête préparée dans les variables liées

Description

Style procédural

bool maxdb_stmt_fetch ( resource stmt )

Style orienté objet (méthode)

class stmt {

bool fetch ( void )

}

maxdb_stmt_fetch() retourne les données de lignes en utilisant les variables liées par la fonction maxdb_stmt_bind_result().

Note : Notez que toutes les colonnes doivent être liées par l'application avant l'appel à la fonction maxdb_stmt_fetch().

Valeurs de retour

Tableau 1. Valeurs retournées

Valeur | Description
TRUE | Succès. Les données ont été récupérées
FALSE | Une erreur est survenue
NULL | Il n'y a plus de lignes/données disponibles

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER by name";

if ($stmt = $maxdb->prepare($query)) {

    /* Exécution de la requête */
    $stmt->execute();

    /* Lie les variables de résultats */
    $stmt->bind_result($name, $code);

    /* Récupération des valeurs */
    while ($stmt->fetch()) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER by name";

if ($stmt = maxdb_prepare($link, $query)) {

    /* Exécution de la requête */
    maxdb_stmt_execute($stmt);

    /* Lie les variables de résultats */
    maxdb_stmt_bind_result($stmt, $name, $code);

    /* Récupération des valeurs */
    while (maxdb_stmt_fetch($stmt)) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

12203 (Albany)
60601 (Chicago)
60615 (Chicago)
45211 (Cincinnati)
33575 (Clearwater)
75243 (Dallas)
32018 (Daytona Beach)
33441 (Deerfield Beach)
48226 (Detroit)
90029 (Hollywood)
92714 (Irvine)
90804 (Long Beach)
11788 (Long Island)
90018 (Los Angeles)
70112 (New Orleans)
10019 (New York)
10580 (New York)
92262 (Palm Springs)
97213 (Portland)
60018 (Rosemont)
95054 (Santa Clara)
20903 (Silver Spring)
20005 (Washington)
20019 (Washington)
20037 (Washington)

Voir aussi

maxdb_prepare(),
maxdb_stmt_errno(),
maxdb_stmt_error() et
maxdb_stmt_bind_result().

Précédent | Sommaire | Suivant
maxdb_stmt_execute | Niveau supérieur | maxdb_stmt_free_result


maxdb_stmt_free_result

(PECL)

maxdb_stmt_free_result

(no version information, might be only in CVS)

stmt->free_result -- Libère la mémoire des résultats sotckés pour un gestionnaire de requête donné

Description

Style procédural

void maxdb_stmt_free_result ( resource stmt )

Style orienté objet (méthode)

class stmt {

void free_result ( void )

}

maxdb_stmt_free_result() libère la mémoire des résultats associés avec la requête représentée par le paramètre stmt, qui a été alloué avec la fonction maxdb_stmt_store_result().

Valeurs de retour

Cette fonction ne retourne aucune valeur.

Voir aussi

maxdb_stmt_store_result().

Précédent | Sommaire | Suivant
maxdb_stmt_fetch | Niveau supérieur | maxdb_stmt_init


maxdb_stmt_init

(PECL)

maxdb_stmt_init

(no version information, might be only in CVS)

maxdb->stmt_init -- Initialise une requête et retourne une ressource à utiliser avec maxdb_stmt_prepare

Description

Style procédural

resource maxdb_stmt_init ( resource link )

Style orienté objet (méthode)

class maxdb {

object stmt_init ( void )

}

Alloue et initialise une ressource de requête utilisable pour la fonction maxdb_stmt_prepare().

Note : Tous les appels de sous-séquence à n'importe quel fonction maxdb_stmt échoueront tant que la fonction maxdb_stmt_prepare() ne sera pas appelée.

Valeurs de retour

Retourne une ressource.

Voir aussi

maxdb_stmt_prepare().

Précédent | Sommaire | Suivant
maxdb_stmt_free_result | Niveau supérieur | maxdb_stmt_num_rows


maxdb_stmt_num_rows

(PECL)

maxdb_stmt_num_rows

(no version information, might be only in CVS)

stmt->num_rows -- Retourne le nombre de lignes dans le jeu de résultats

Description

Style procédural

int maxdb_stmt_num_rows ( resource stmt )

Style orienté objet (méthode)

class stmt {

int num_rows

}

Retourne le nombre de lignes dans le jeu de résultats.

Valeurs de retour

Un entier représentant le nombre de lignes dans le jeu de résultats.

Exemples

Exemple 1. Style orienté objet

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

    /* Exécute une requête */
    $stmt->execute();

    /* Stock le résultat */
    $stmt->store_result();

    printf("Nombre de lignes : %d.\n", $stmt->num_rows);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
/* Ouvre une connexion */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

    /* Exécute une requête */
    maxdb_stmt_execute($stmt);

    /* Stock le résultat */
    maxdb_stmt_store_result($stmt);

    printf("Nombre de lignes : %d.\n", maxdb_stmt_num_rows($stmt));

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Nombre de lignes : 25.

Voir aussi

maxdb_stmt_affected_rows(),
maxdb_prepare() et
maxdb_stmt_store_result().

Précédent | Sommaire | Suivant
maxdb_stmt_init | Niveau supérieur | maxdb_stmt_param_count


maxdb_stmt_param_count

(PECL)

maxdb_stmt_param_count

(no version information, might be only in CVS)

stmt->param_count -- Retourne le nombre de marqueurs pour une requête donnée

Description

Style procédural

int maxdb_stmt_param_count ( resource stmt )

Style orienté objet (méthode)

class stmt {

int param_count

}

maxdb_stmt_param_count() retourne le nombre de marqueurs présent dans une requête préparée.

Valeurs de retour

Retourne un entier représentant le nombre de marqueurs.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($stmt = $maxdb->prepare("SELECT name FROM hotel.city WHERE name=? OR state=?")) {

    $marker = $stmt->param_count;
    printf("Statement has %d markers.\n", $marker);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

if ($stmt = maxdb_prepare($link, "SELECT name FROM hotel.city WHERE name=? OR state=?")) {

    $marker = maxdb_stmt_param_count($stmt);
    printf("La requête contient %d marqueurs.\n", $marker);

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

La requête contient 2 marqueurs.

Voir aussi

maxdb_prepare().

Précédent | Sommaire | Suivant
maxdb_stmt_num_rows | Niveau supérieur | maxdb_stmt_prepare


maxdb_stmt_prepare

(PECL)

maxdb_stmt_prepare

(no version information, might be only in CVS)

stmt->prepare -- Prépare une requête SQL pour exécution

Description

Style procédural

bool maxdb_stmt_prepare ( resource stmt, string query )

Style orienté objet (méthode)

class stmt {

mixed prepare ( string query )

}

maxdb_stmt_prepare() prépare une requête SQL pointée par une chaîne. La ressource de requête doit avoir été allouée par la fonction maxdb_stmt_init(). La requête doit être constituée d'une simple requête SQL.

Note : Vous ne devez pas ajouter de point-virgule final ou \g à la requête.

Le paramètre query peut inclure un ou plusieurs marqueurs de paramètres dans la requête SQL en y intégrant des points d'exclamations (?) à une position appropriée.

Note : Les marqueurs sont autorisés uniquement à des positions précises dans les requêtes SQL. Par exemple, ils sont autorisés dans la liste VALUE() d'une requête INSERT (pour spécifier une valeur de colonne pour une ligne), ou dans une comparaison avec une colonne dans une clause WHERE pour spécifier une valeur de comparaison.

Cependant, ils ne sont pas autorisés pour les identifiants (comme les noms de tables ou de colonnes), dans la liste SELECT qui nomme les colonnes à être retournées par les requêtes SELECT), ou pour spécifier les opérants d'un opérateur binaire comme le signe égal (=). La dernière restriction est nécessaire car il est impossible de déterminer le type du paramètre. En général, les paramètres sont légaux uniquement dans les requêtes Data Manipulation Languange (DML) et non dans les requêtes Data Defination Language (DDL).

Les marqueurs doit être liés aux variables en utilisant les fonctions maxdb_stmt_bind_param() et/ou maxdb_stmt_bind_result() avant d'exécuter la requête ou de récupérer les lignes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$city = "Portland";

/* Création d'une requête préparée */
$stmt =  $maxdb->stmt_init();
if ($stmt->prepare("SELECT state FROM hotel.city WHERE name=?")) {

    /* Lie les paramètres aux marqueurs */
    $stmt->bind_param("s", $city);

    /* Exécute la requête */
    $stmt->execute();

    /* Lie les variables de résultats */
    $stmt->bind_result($district);

    /* Récupère la valeur */
    $stmt->fetch();

    printf("%s est dans %s\n", $city, $district);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$city = "Portland";

/* Création d'une requête préparée */
$stmt = maxdb_stmt_init($link);
if (maxdb_stmt_prepare($stmt, "SELECT state FROM hotel.city WHERE name=?")) {

    /* Lie les paramètres aux marqueurs */
    maxdb_stmt_bind_param($stmt, "s", $city);

    /* Exécute la requête */
    maxdb_stmt_execute($stmt);

    /* Lie les variables de résultats */
    maxdb_stmt_bind_result($stmt, $district);

    /* Récupère la valeur */
    maxdb_stmt_fetch($stmt);

    printf("%s est dans %s\n", $city, $district);

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Portland est dans OR

Voir aussi

maxdb_stmt_init(),
maxdb_stmt_execute(),
maxdb_stmt_fetch(),
maxdb_stmt_bind_param(),
maxdb_stmt_bind_result() et
maxdb_stmt_close().

Précédent | Sommaire | Suivant
maxdb_stmt_param_count | Niveau supérieur | maxdb_stmt_reset


maxdb_stmt_reset

(PECL)

maxdb_stmt_reset

(no version information, might be only in CVS)

stmt->reset -- Réinitialise une requête préparée

Description

Style procédural

bool maxdb_stmt_reset ( resource stmt )

Style orienté objet (méthode)

class stmt {

bool reset ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
maxdb_stmt_prepare | Niveau supérieur | maxdb_stmt_result_metadata


maxdb_stmt_result_metadata

(PECL)

maxdb_stmt_result_metadata -- Retourneles méta-données du jeu de résultats pour une requête préparée

Description

Style procédural

resource maxdb_stmt_result_metadata ( resource stmt )

Style orienté objet (méthode)

class stmt {

resource result_metadata ( void )

}

Si la requête passée à maxdb_prepare() est une de celle pruisant un jeu de résultats, maxdb_stmt_result_metadata() retourne la ressource de résultats qui peut être utilisée pour récupérer les méta-données comme, le nombre total de champs et les informations individuelles d'un champs.

Note : Ce pointeur de résultats peut être passé comme argument à n'importe quelle fonction basé sur les champs qui traite les méta-données, comme :

  • maxdb_num_fields()

  • maxdb_fetch_field()

  • maxdb_fetch_field_direct()

  • maxdb_fetch_fields()

  • maxdb_field_count()

  • maxdb_field_seek()

  • maxdb_field_tell()

  • maxdb_free_result()

La structure du jeu de résultats doit être libérée lorsque vous en avez terminé avec, ce qui est obtenu en la passant à la fonction maxdb_free_result().

Note : Le jeu de résultat retourné par maxdb_stmt_result_metadata() contient uniquement des méta-données. Il ne contient aucune ligne de résultats. Les lignes sont obtenues en utilisant le gestionnaire de requête avec la fonction maxdb_fetch().

Valeurs de retour

maxdb_stmt_result_metadata() retourne une ressource de résultats ou FALSE si une erreur survient.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

$maxdb->query("CREATE TABLE temp.friends (id int, name varchar(20))");

$maxdb->query("INSERT INTO temp.friends VALUES (1,'Hartmut')");
$maxdb->query("INSERT INTO temp.friends VALUES (2, 'Ulf')");

$stmt = $maxdb->prepare("SELECT id, name FROM temp.friends");
$stmt->execute();

/* Récupération du jeu de résultats pour les méta-données */
$result = $stmt->result_metadata();

/* Récupère les informations d'un champs pour les méta-données du jeu de résultats */
$field = $result->fetch_field();

printf("Nom du champs : %s\n", $field->name);

/* Fermeture du jeu de résultats */
$result->close();

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

maxdb_query($link, "CREATE TABLE temp.friends (id int, name varchar(20))");

maxdb_query($link, "INSERT INTO temp.friends VALUES (1,'Hartmut')");
maxdb_query($link, "INSERT INTO temp.friends VALUES (2, 'Ulf')");

$stmt = maxdb_prepare($link, "SELECT id, name FROM temp.friends");
maxdb_stmt_execute($stmt);

/* Récupération du jeu de résultats pour les méta-données */
$result = maxdb_stmt_result_metadata($stmt);

/* Récupère les informations d'un champs pour les méta-données du jeu de résultats */
$field = maxdb_fetch_field($result);

printf("Nom du champs : %s\n", $field->name);

/* Fermeture du jeu de résultats */
maxdb_free_result($result);

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Nom du champs : ID

Voir aussi

maxdb_prepare() et maxdb_free_result().

Précédent | Sommaire | Suivant
maxdb_stmt_reset | Niveau supérieur | maxdb_stmt_send_long_data


maxdb_stmt_send_long_data

(PECL)

maxdb_stmt_send_long_data

(no version information, might be only in CVS)

stmt->send_long_data -- Envoie des données dans un block

Description

Style procédural

bool maxdb_stmt_send_long_data ( resource stmt, int param_nr, string data )

Style orienté objet (méthode)

class stmt {

bool stmt_send_long_data ( int param_nr, string data )

}

Permet d'envoyer des données au serveur sous forme de morceaux (ou gros morceaux). Cette fonction peut être appelée plusieurs fois pour envoyer les parties des caractères ou des valeurs de données binaires pour une colonne, qui peut être du type TEXT ou BLOB.

param_nr indique quel paramètre à associer avec les données. Les paramètres sont nummérotés en commençant à 0. data est une chaîne contenant les données à envoyer.

Note : Pour des raisons d'efficacité, cette fonction doit être utilisée après l'appel à la fonction maxdb_execute(). Dans ce cas, les données ne sont pas stockées côté client. La fin de la séquence doit finir avec un appel à la fonction maxdb_stmt_close_long_data().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

maxdb_prepare() et maxdb_stmt_bind_param().

Précédent | Sommaire | Suivant
maxdb_stmt_result_metadata | Niveau supérieur | maxdb_stmt_sqlstate


maxdb_stmt_sqlstate

(PECL)

maxdb_stmt_sqlstate -- Retourne une erreur SQLSTATE depuis la requête précédante

Description

string maxdb_stmt_sqlstate ( resource stmt )

Retourne une chaîne contenant un code erreur SQLSTATE depuis la fonction de requête préparée la plus récente qu'elle ait réussie ou échouée. Le code erreur est composé de cinq caractères. '00000' signifie aucune erreur. La valeur est spécifiée par ANSI SQL et ODBC.

Note : Notez que toutes les erreurs MaxDB ne sont pas encore liées à SQLSTATE. La valeur HY000 (erreur général) est utilisée pour les erreurs non liées.

Valeurs de retour

Retourne une chaîne contenant le code erreur SQLSTATE pour la dernière erreur. Le code erreur est composé de cinq caractères. '00000' signifie aucune erreur.

Exemples

Exemple 1. Object oriented style

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

    /* Efface la table */
    $maxdb->query("DROP TABLE temp.mycity");

    /* Exécute une requête */
    $stmt->execute();

    printf("Erreur : %s.\n", $stmt->sqlstate);

    /* Ferme la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
/* Ouvre une connexion */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

    /* Efface la table */
    maxdb_query($link, "DROP TABLE temp.mycity");

    /* Exécute une requête */
    maxdb_stmt_execute($stmt);

    printf("Erreur : %s.\n", maxdb_stmt_sqlstate($stmt));

    /* Ferme la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Erreur : 42000.

Voir aussi

maxdb_stmt_errno() et maxdb_stmt_error().

Précédent | Sommaire | Suivant
maxdb_stmt_send_long_data | Niveau supérieur | maxdb_stmt_store_result


maxdb_stmt_store_result

(PECL)

maxdb_stmt_store_result

(no version information, might be only in CVS)

maxdb->store_result -- Transfert un jeu de résultats depuis une requête préparée

Description

Style procédural

bool maxdb_stmt_store_result ( resource stmt )

Style orienté objet (méthode)

class maxdb {

object store_result ( void )

}

maxdb_stmt_store_result() n'a pas de fonctionnalité et ne devrait pas être utilisé pour récupérer les données depuis un serveur MaxDB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php
/* Ouvre une connexion */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

    /* Exécute une requête */
    $stmt->execute();

    /* Stock le résultat */
    $stmt->store_result();

    printf("Nombre de lignes : %d.\n", $stmt->num_rows);

    /* Libération du résultat */
    $stmt->free_result();

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
/* Ouvre une connexion */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

    /* Exécute une requête */
    maxdb_stmt_execute($stmt);

    /* Stock le résultat */
    maxdb_stmt_store_result($stmt);

    printf("Nombre de lignes : %d.\n", maxdb_stmt_num_rows($stmt));

    /* Libération du résultat */
    maxdb_stmt_free_result($stmt);

    /* Fermeture de la requête */
    maxdb_stmt_close($stmt);
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Nombre de lignes : 25.

Voir aussi

maxdb_prepare(),
maxdb_stmt_result_metadata() et
maxdb_fetch().

Précédent | Sommaire | Suivant
maxdb_stmt_sqlstate | Niveau supérieur | maxdb_store_result


maxdb_store_result

(PECL)

maxdb_store_result

(no version information, might be only in CVS)

maxdb->store_result -- Transfert un jeu de résultats depuis la dernière requête

Description

Style procédural

resource maxdb_store_result ( resource link )

Style orienté objet (méthode)

class maxdb {

object store_result ( void )

}

Cette fonction n'a aucune fonctionnalité.

Valeurs de retour

Retourne une ressource de résultats ou FALSE si une erreur survient.

Exemples

Voir la fonction maxdb_multi_query().

Voir aussi

maxdb_real_query() et maxdb_use_result().

Précédent | Sommaire | Suivant
maxdb_stmt_store_result | Niveau supérieur | maxdb_thread_id


maxdb_thread_id

(PECL)

maxdb_thread_id

(no version information, might be only in CVS)

maxdb->thread_id -- Retourne l'identifiant du thread pour la connexion courante

Description

Style procédural

int maxdb_thread_id ( resource link )

maxdb_thread_id() retourne l'identifiant du thread pour la connexion courante que l'on peut ensuite tuer en utilisant la fonction maxdb_kill(). Si la connexion est perdue et que vous vous reconnectez avec la fonction maxdb_ping(), l'identifiant du thread changera. De ce fait, vous ne devez récupérer l'identifiant du thread que lorsque vous en avez besoin.

Note : L'identifiant du thread est assigné sur une base "connexion-par-connexion". De ce fait, si la connexion est interrompue puis réétablie, un nouvel identifiant du thread sera assigné.

Valeurs de retour

maxdb_thread_id() retourne l'identifiant du thread pour la connexion courante.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Détermine notre identifiant de thread */
$thread_id = $maxdb->thread_id;

/* Tue la connexion */
$maxdb->kill($thread_id);

/* This should produce an error */
if (!$maxdb->query("CREATE TABLE mycity LIKE hotel.city")) {
    printf("Erreur : %s\n", $maxdb->error);
    exit;
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

/* Détermine notre identifiant de thread */
$thread_id = maxdb_thread_id($link);

/* Tue la connexion */
maxdb_kill($link, $thread_id);

/* Ceci devrait produire une erreur */
if (!maxdb_query($link, "CREATE TABLE mycity LIKE hotel.city")) {
    printf("Erreur : %s\n", maxdb_error($link));
    exit;
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Warning: maxdb_query(): -10821 Session not connected <...>
Erreur : Session not connected

Voir aussi

maxdb_kill().

Précédent | Sommaire | Suivant
maxdb_store_result | Niveau supérieur | maxdb_thread_safe


maxdb_thread_safe

(no version information, might be only in CVS)

maxdb_thread_safe -- Indique si le thread safety est donné ou non

Description

Style procédural

bool maxdb_thread_safe ( void )

maxdb_thread_safe() indique si la bibliothèque cliente a été compilé en tant que thread safety.

Valeurs de retour

TRUE si la bibliothèque cliente est thread safety, FALSE sinon.

Précédent | Sommaire | Suivant
maxdb_thread_id | Niveau supérieur | maxdb_use_result


maxdb_use_result

(PECL)

maxdb_use_result

(no version information, might be only in CVS)

maxdb->use_result -- Initialise un jeu de résultats

Description

Style procédural

resource maxdb_use_result ( resource link )

Style orienté objet (méthode)

class maxdb {

resource use_result ( void )

}

maxdb_use_result() n'a aucun effet.

Valeurs de retour

Retourne le résultat ou FALSE si une erreur survient.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query  = "SELECT * FROM DUAL";

/* Exécute une requête multiple */
if ($maxdb->multi_query($query)) {
    do {
        /* Stock le premier jeu de résultat */
        if ($result = $maxdb->use_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* Affiche un séparateur */
        if ($maxdb->more_results()) {
            printf("-----------------\n");
        }
    } while ($maxdb->next_result());
}

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$query  = "SELECT * FROM DUAL;";

/* Exécute une requête multiple */
if (maxdb_multi_query($link, $query)) {
    do {
        /* Stock le premier jeu de résultat */
        if ($result = maxdb_use_result($link)) {
            while ($row = maxdb_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            maxdb_free_result($result);
        }
        /* Affiche un séparateur */
        if (maxdb_more_results($link)) {
            printf("-----------------\n");
        }
    } while (maxdb_next_result($link));
}

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

a

Voir aussi

maxdb_real_query() et maxdb_store_result().

Précédent | Sommaire | Suivant
maxdb_thread_safe | Niveau supérieur | maxdb_warning_count


maxdb_warning_count

(PECL)

maxdb_warning_count

(no version information, might be only in CVS)

maxdb->warning_count -- Retourne le nombre d'avertissements depuis la dernière requête pour un lien donné

Description

Style procédural

int maxdb_warning_count ( resource link )

Style orienté objet (méthode)

class maxdb {

int warning_count

}

maxdb_warning_count() retourne le nombre d'avertissements depuis la dernière requête dans la connexion représentée par le paramètre link.

Valeurs de retour

Nombre d'avertissements ou zéro s'il n'y en a aucun.

Exemples

Exemple 1. Style orienté objet

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

/* un nom de ville remarquablement long dans Wales */
$query = "INSERT INTO temp.mycity (zip, name) VALUES('11111',
'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

$maxdb->query($query);

printf ("Nombre d'avertissements : %d\n", $maxdb->warning_count);

/* Fermeture de la connexion */
$maxdb->close();
?>

Exemple 2. Style procédural

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* Vérification de la connexion */
if (maxdb_connect_errno()) {
    printf("Echec de la connexion : %s\n", maxdb_connect_error());
    exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

/* un nom de ville remarquablement long dans Wales */
$query = "INSERT INTO temp.mycity (zip, name) VALUES('11111',
'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

maxdb_query($link, $query);

printf ("Nombre d'avertissements : %d\n", maxdb_warning_count($link));

/* Fermeture de la connexion */
maxdb_close($link);
?>

L'exemple ci-dessus va afficher :

Warning: maxdb_query(): -8004 POS(62) Constant must be compatible with column type and length <...>
 Nombre d'avertissements : 0

Voir aussi

maxdb_errno(),
maxdb_error() et
maxdb_sqlstate().

Précédent | Sommaire | Suivant
maxdb_use_result | Niveau supérieur | MCAL


Chaînes de caractères multi-octets

Manuel PHP
Précédent Suivant

XCVI. Chaînes de caractères multi-octets

Introduction

Même si la plupart des langues peuvent être représentées grâce à un jeu de 128 caractères, il y a d'autres langues qui requièrent des jeux de caractères bien plus grands. Des méthodes de caractères multi-octets ont été développées pour résoudre ce type de problème.

Lorsque vous manipulez des chaînes de caractères multi-octets, pour couper, rechercher ou nettoyer une chaîne, vous devez utiliser deux octets consécutifs, qui représentent un seul caractère. Si vous n'y prenez pas garde, vous allez obtenir une chaîne corrompue et invalide, avec une représentation totalement incompréhensible.

mbstring fournit les fonctions spécifiques de manipulations de chaînes qui vous permet de travailler avec les encodages multi-octets en PHP. En plus de cela, mbstring gère la traduction entre les jeux de caractères disponibles. mbstring est également connu pour gérer l'Unicode, comme UTF-8 et UCS-2 ainsi que de nombreux autres jeux mono-octets.

Pré-requis de l'encodage en PHP

Les jeux de caractères suivants sont bien supportés par PHP.

  • Jeux de caractères mono-octets :

    • qui sont compatibles avec la norme ASCII (compatible ISO646) pour les caractères de l'intervalle 00h à 7fh.

  • Jeux de caractères multi-octets :

    • qui sont compatibles avec la norme ASCII (compatible ISO646) pour les caractères de l'intervalle 00h à 7fh.

    • qui n'utilisent pas les séquences de type ISO2022.

    • qui n'utilisent pas de valeur dans l'intervalle 00h à 7fh dans les séquences composées, qui représentent un caractère unique.

Les jeux de caractères suivants risquent de ne pas fonctionner en PHP.

Exemple 1. Jeux de caractères qui 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, le scanneur 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.

Installation

mbstring est un module PHP. Vous devez activer le module avec le script de configuration configure. Reportez-vous à la section installation pour plus de détails.

Les options de configurations suivantes sont liées au module mbstring.

  • --enable-mbstring : Active les fonctions mbstring. Cette option est nécessaire pour utiliser les fonctions mbstring.

    libmbfl est nécessaire pour mbstring. libmbfl est inclus avec mbstring. Si libmbfl est déjà installé sur le système, --with-libmbfl[=DIR] peut être spécifié pour utiliser la bibliothèque istallée.

    À partir de PHP 4.3.0, l'extension mbstring fournit le support pour le chinois simplifié, le chinois traditionnel, le coréen et le russe en plus du japonais.

    Pour PHP 4.3.3 ou inférieur, pour activer cette fonctionnalité, vous devez fournir une des options
suivantes dans le paramètres LANG de
--with-mbstring=LANG :
--with-mbstring=cn pour le support du chinois simplifié,
--with-mbstring=tw pour le support du chinois traditionnel,
--with-mbstring=kr pour le support du coréen,
--with-mbstring=ru pour le support du russe et
--enable-mbstring=ja pour le support du japonais (par défaut).
Pour activer le support de tous ces encodages, utilisez --enable-mbstring=all.

    Note : Depuis PHP 4.3.4, tous les encodages supportés par libmbfl sont activables avec l'option --enable-mbstring.

  • --enable-mbstr-enc-trans : Active la conversion automatique des données par HTTP, avec le moteur de conversion de mbstring. Si cette option est activée, les données venant du web via HTTP seront converties dans le jeu de caractères mbstring.internal_encoding, automatiquement.

    Note : Depuis PHP 4.3.0, l'option --enable-mbstr-enc-trans sera éliminée, et remplacée par mbstring.encoding_translation. La conversion de jeu de caractères d'entrée HTTP sera activée lorsque cette option sera à On (par défaut, cette option vautOff).

  • --disable-mbregex : Désactive les fonctions d'expressions rationnelles, compatibles avec les caractères multi-octets.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
mbstring.language | "neutral" | PHP_INI_PERDIR | Disponible depuis PHP 4.3.0
mbstring.detect_order | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6
mbstring.http_input | "pass" | PHP_INI_ALL | Disponible depuis PHP 4.0.6
mbstring.http_output | "pass" | PHP_INI_ALL | Disponible depuis PHP 4.0.6
mbstring.internal_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6
mbstring.script_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 4.3.0
mbstring.substitute_character | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6
mbstring.func_overload | "0" | PHP_INI_PERDIR | PHP_INI_SYSTEM en PHP <= 4.2.3. Disponible depuis PHP 4.2.0
mbstring.encoding_translation | "0" | PHP_INI_PERDIR | Disponible depuis PHP 4.3.0
mbstring.strict_detection | "0" | PHP_INI_ALL | Disponible depuis PHP 5.1.2.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

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 boolean

Active la détection et la traduction des données d'entrées HTTP vers le codage interne mbstring.

mbstring.internal_encoding string

Définit l'encodage interne par défaut.

mbstring.http_input string

Définit l'encodage de réception HTTP par défaut.

mbstring.http_output string

Définit l'encodage d'affichage HTTP par défaut.

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.

mbstring.func_overload string

Remplace les fonctions de traitement des chaînes par les fonctions mbstring. Voir les fonctions de remplacement pour plus d'informations.

mbstring.strict_detection booléen

Active la détection stricte de l'encodage.

En accord avec HTML 4.01 specification, les navigateurs sont supposés utiliser le même jeu de caractères lorsqu'ils soumettent un formulaire. Mais, tous les navigateurs ne le font pas. Reportez-vous à la fonction mb_http_input() pour détecter les jeux de caractères utilisés par les navigateurs.

En général, les navigateurs sont suffisamment intelligents pour détecter les jeux de caractères dans le HTML. Si charset est activé dans les en-têtes, cela donnera de meilleurs résultats. Changez la valeur de default_charset avec la valeur appropriée dans le fichier ini.

Exemple 2. 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é par "ASCII,JIS,UTF-8,EUC-JP,SJIS"
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 3. 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 4. 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

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.

MB_OVERLOAD_MAIL (entier)

MB_OVERLOAD_STRING (entier)

MB_OVERLOAD_REGEX (entier)

Entrées/Sorties HTTP

La conversion automatique des entrées/sorties HTTP peut aussi convertir des données binaires. Les utilisateurs doivent contrôler les conversions, si des données binaires doivent être utilisées via HTTP.

Note : Depuis la version 4.3.2 de PHP, il y a une limitation dans l'utilisation des fonctionnalités mbstring : l'encodage ne sera pas effectué dans les données transmises en méthode POST si l'attribut enctype de la balise form vaut multipart/form-data. Donc, vous devrez convertir les données entrantes vous-même dans ce cas, si nécessaire.

Depuis la version 4.3.3 de PHP, si l'attribut enctype de la balise form vaut multipart/form-data et que la directive du php.ini est positionnée à On, les variables et les noms de fichiers téléchargés en méthode POST seront convertis avec l'encodage interne. Sinon, la conversion ne sera pas faite.

  • Entrée HTTP

    Il n'y a pas de moyens de contrôler la conversion des caractères HTTP en entrée, depuis un script PHP. Pour désactiver cette conversion, il faut le faire dès le fichier php.ini.

    Exemple 5. Désactive la conversion HTTP dans le php.ini

    ;; Désactive la conversion HTTP
    mbstring.http_input = pass
    ;; Désactive la conversion HTTP (PHP 4.3.0 ou plus récent)
    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 call-back.

    Note : Pour les utilisateurs PHP3-i18n, le système de conversion de mbstring diffère de celui de PHP3-i18n. Le jeu de caractère est converti avec un buffer de sortie.

Exemple 6. Exemple de configuration de mbstring dans php.ini

;; Active la conversion de sortie pour toutes les pages PHP

;; Active la bufferisation de sortie
output_buffering    = On

;; Choisi mb_output_handler pour effectuer la conversion de sortie
output_handler      = mb_output_handler

Exemple 7. Exemple de script avec mbstring

<?php

// Active la conversion de caractère uniquement pour cette page

// Choisi le jeu de caractères SJIS
mb_http_output('SJIS');

// Commence la bufferisation et spécifie "mb_output_handler"
// comme fonction de callback
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

  • JIS

  • ISO-8859-1

  • ISO-8859-2

  • ISO-8859-3

  • ISO-8859-4

  • ISO-8859-5

  • ISO-8859-6

  • ISO-8859-7

  • ISO-8859-8

  • ISO-8859-9

  • ISO-8859-10

  • ISO-8859-13

  • ISO-8859-14

  • ISO-8859-15

  • byte2be

  • byte2le

  • byte4be

  • byte4le

  • BASE64

  • HTML-ENTITIES

  • 7bit

  • 8bit

  • EUC-CN

  • CP936

  • HZ

  • EUC-TW

  • CP950

  • BIG-5

  • EUC-KR

  • UHC (CP949)

  • ISO-2022-KR

  • Windows-1251 (CP1251)

  • Windows-1252 (CP1252)

  • CP866 (IBM866)

  • KOI8-R

Toutes les entrées du php.ini qui acceptent un nom d'encodage peuvent également utiliser les valeurs "auto" et "pass". Les fonctions mbstring, qui acceptent des noms de jeux de caractères, peuvent également utiliser la valeur "auto".

Si "pass" est utilisée, aucune conversion n'est effectuée.

Si "auto" est défini, la liste sera étendue à la liste des encodages définis par NLS. Par exemple, si NLS vaut Japanese, les valeurs seront "ASCII,JIS,UTF-8,EUC-JP,SJIS".

Voir aussi mb_detect_order().

Exploitation des chaînes multi-octets en PHP

Vous pourriez trouver difficile de faire fonctionner une application PHP existante dans un environnement multi-octets. Ceci est dû au fait que la plupart des applications PHP sont écrites avec des fonctions de chaînes de caractères standards comme la fonction substr(), qui est connue pour ne pas gérer proprement les chaînes multi-octets.

Mbstring supporte aussi la surcharge de fonctions, pour permettre le support des chaînes multi-octets sans modifier les scripts PHP. En utilisant ce système de surcharge de fonctions, certaines fonctions PHP seront remplacées par leur équivalent de mbstring. Par exemple mb_substr() remplacera substr(). Ce système de remplacement transparent, permet un portage simple et efficace des applications.

Pour utiliser la surcharge de fonctions, définissez mbstring.func_overload, dans le php.ini, à une valeur positive qui représente une combinaison de masques d'octets spécifiant les catégories de fonctions à surcharger. Il doit être définit à 1 pour surcharger la fonction mail(), 2 pour les fonction de chaînes, 4 pour les fonctions d'expression rationnelles. Par exemple, avec la valeur 7, toutes les fonctions précédentes seront surchargées. Voici la liste complète des fonctions surchargées, avec leur fonction de remplacement.

Tableau 2. 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 | substr_count() | mb_substr_count()
4 | ereg() | mb_ereg()
4 | eregi() | mb_eregi()
4 | ereg_replace() | mb_ereg_replace()
4 | eregi_replace() | mb_eregi_replace()
4 | split() | mb_split()

Note : Il n'est pas recommandé d'utiliser les options des fonctions d'overloading 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 à un résultat incohérent.

Cas des caractères japonais

Les caractères japonais ne peuvent être représentés qu'avec des encodages multi-octets et les standards d'encodage multiple sont utilisés suivant la plateforme et le texte de référence. Pour facilité les choses, ces standards d'encodages diffèrent légèrement les uns des autres. Pour développer des applications Web en environnement japonais, le développeur devra garder à l'esprit ces complexités afin de s'assurer que l'encodage de caractères correct est utilisé.

  • La taille nécessaire à un caractère peut aller jusqu'à 4 octets.

  • Un caractère japonais multi-octets occupe généralement deux octets, à comparer avec les caractères simple-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 to 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, Vodafone live!, ou EZweb sont supposées utiliser l'encodage Shift_JIS.

Références

Les jeux de caractères multi-octets et leurs techniques sont très complexes et ne peuvent être traités totalement dans cette documentation. Reportez-vous aux URL suivantes pour d'autres ressources complémentaires :

  • Unicode/UTF/UCS/etc

    http://www.unicode.org/

  • Japonais/coréen/Chinois

    http://examples.oreilly.com/cjkvinfo/doc/cjk.inf

Jeux de caractères supportés

Jeux de caractères supportés

Nom dans le registre IANA: ISO-10646-UCS-4

Jeux de caractères: ISO 10646

Description: 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.

Notes: 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.

Nom dans le registre IANA: ISO-10646-UCS-4

Jeux de caractères: UCS-4

Description: Voir ci-dessus.

Notes: Contrairement à UCS-4, les chaînes sont supposées être au format big endian.

Nom dans le registre IANA: ISO-10646-UCS-4

Jeux de caractères: UCS-4

Description: Voir ci-dessus.

Notes: Contrairement à UCS-2, les chaînes sont supposées être au format little endian.

Nom dans le registre IANA: ISO-10646-UCS-2

Jeux de caractères: UCS-2

Description: 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.

Notes: 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.

Nom dans le registre IANA: ISO-10646-UCS-2

Jeux de caractères: UCS-2

Description: Voir ci-dessus.

Notes: Contrairement à UCS-4, les chaînes sont supposées être au format big endian.

Nom dans le registre IANA: UTF-32

Jeux de caractères: Unicode

Description: 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.

Notes: 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.

Nom dans le registre IANA: UTF-32BE

Jeux de caractères: Unicode

Description: Voir ci-dessus.

Notes: Contrairement à UTF-32, les chaînes sont supposées être au format big endian.

Nom dans le registre IANA: UTF-32LE

Jeux de caractères: Unicode

Description: Voir ci-dessus.

Notes: Contrairement à UTF-32, les chaînes sont supposées être au format little endian.

Nom dans le registre IANA: UTF-16

Jeux de caractères: Unicode

Description: 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.

Notes: 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.

Nom dans le registre IANA: UTF-16BE

Jeux de caractères: Unicode

Description: Voir ci-dessus.

Notes: Contrairement à UTF-16, les chaînes sont supposées être au format little endian.

Nom dans le registre IANA: UTF-16LE

Jeux de caractères: Unicode

Description: Voir ci-dessus.

Notes: Contrairement à UTF-16, les chaînes sont supposées être au format big endian.

Nom dans le registre IANA: UTF-8

Jeux de caractères: Unicode / UCS

Description: Format de transformation Unicode de 8 bits.

Notes: none

Nom dans le registre IANA: UTF-7

Jeux de caractères: Unicode

Description: Un format compatible avec le courrier électronique d'Unicode, spécifié dans RFC2152.

Notes: none

Nom dans le registre IANA: aucun

Jeux de caractères: Unicode

Description: Une variante d'UTF-7 qui est spécialement utilisée dans le protocole IMAP.

Notes: none

Nom dans le registre IANA: US-ASCII (recommandé) / iso-ir-6 / ANSI_X3.4-1986 / ISO_646.irv:1991 / ASCII / ISO646-US / us / IBM367 / CP367 / csASCII

Jeux de caractères: ASCII / ISO 646

Description: ASCII, American Standard Code for Information Interchange est un format classique de 7 bits. Il est aussi normalisé internationalement, sous le nom ISO 646.

Notes: (none)

Nom dans le registre IANA: EUC-JP (recommandé) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese

Jeux de caractères: Composé de US-ASCII / JIS X0201:1997 (hankaku kana) / JIS X0208:1990 / JIS X0212:1990

Description: 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.

Notes: 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.

Nom dans le registre IANA: Shift_JIS (recommandé) / MS_Kanji / csShift_JIS

Jeux de caractères: Composé de JIS X0201:1997 / JIS X0208:1997

Description: 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.

Notes: Pour CP932, utilisez SJIS-WIN.

Nom dans le registre IANA: (none)

Jeux de caractères: Composé de JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions

Description: 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.

Notes: none

Nom dans le registre IANA: Windows-31J / csWindows31J

Jeux de caractères: Composé de JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions

Description: 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.

Notes: (none)

Nom dans le registre IANA: ISO-2022-JP (recommandé) / csISO2022JP

Jeux de caractères: US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983

Description: RFC1468

Notes: aucun

Nom dans le registre IANA: JIS

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-1

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-2

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-3

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-4

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-5

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-6

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-7

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-8

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-9

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-10

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-13

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-14

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-15

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: byte2be

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: byte2le

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: byte4be

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: byte4le

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: BASE64

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: HTML-ENTITIES

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: 7bit

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: 8bit

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: EUC-CN

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: CP936

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: HZ

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: EUC-TW

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: CP950

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: BIG-5

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: EUC-KR

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: UHC (CP949)

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-2022-KR

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: Windows-1251 (CP1251)

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: Windows-1252 (CP1252)

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: CP866 (IBM866)

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: KOI8-R

Jeux de caractères:

Description:

Notes:

Table des matières
mb_check_encoding -- Vérifie si une chaîne est valide pour un encodage spécifique
mb_convert_case -- Modifie la casse d'une chaîne
mb_convert_encoding -- Conversion d'encodage
mb_convert_kana -- Convertit entre les différents "kana"
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 des entités HTML
mb_ereg_match -- Expression rationnelle POSIX pour les chaînes multi-octets
mb_ereg_replace -- Remplace des segments de chaînes, avec le support des expressions rationnelles mutli-octets
mb_ereg_search_getpos -- Retourne l'offset du début du prochain segment repéré par une expression rationnelle
mb_ereg_search_getregs -- Lit le dernier segment de chaîne multi-octets qui correspond au masque
mb_ereg_search_init -- Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets
mb_ereg_search_pos -- Retourne la position et la longueur du segment de chaîne qui vérifie le masque de l'expression rationnelle
mb_ereg_search_regs -- Retourne le segment de chaîne trouvé par une expression rationnelle multi-octets
mb_ereg_search_setpos -- Choisit le point de départ de la recherche par expression rationnelle
mb_ereg_search -- Recherche par expression rationnelle multi-octets
mb_ereg -- Recherche par expression rationnelle avec support des caractères multi-octets
mb_eregi_replace -- Expression rationnelle avec support des caractères multi-octets, sans tenir compte de la casse
mb_eregi -- Expression rationnelle insensible à la casse avec le support des caractères multi-octets
mb_get_info -- Lit la configuration interne de l'extension mbstring
mb_http_input -- Détecte le type d'encodage d'un caractère HTTP
mb_http_output -- Lit/modifie l'encodage d'affichage
mb_internal_encoding -- Lit/modifie l'encodage interne
mb_language -- Lit/modifie le langage courant
mb_list_encodings_alias_names -- Returns an array of all supported alias encodings
mb_list_encodings -- Retourne un tableau contenant tous les encodages supportés
mb_list_mime_names -- Returns an array or string of all supported mime names
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 -- Retourne le jeu de caractères courant pour les expressions rationnelles
mb_regex_set_options -- Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multi-octets
mb_send_mail -- Envoie un mail encodé
mb_split -- Scinde une chaîne en tableau avec une expression rationnelle multi-octets
mb_strcut -- Coupe une partie de chaîne
mb_strimwidth -- Tronque une chaîne
mb_stripos -- Trouve la première occurence d'une chaîne dans une autre, sans tenir compte de la casse
mb_stristr -- Trouve la première occurece 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 occurence d'un caractère d'une chaîne dans une autre
mb_strrichr -- Trouve la dernière occurence d'un caractère d'une chaîne dans une autre, insensible à la casse
mb_strripos -- Trouve la position de la dernière occurence d'une chaîne dans une autre, en tenant 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 occurence 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 largeur d'une chaîne
mb_substitute_character -- Lit/modifie les caractères de substitution
mb_substr_count -- Compte le nombre d'occurrences d'une sous-chaîne
mb_substr -- Lit une sous-chaîne

Précédent | Sommaire | Suivant
msql | Niveau supérieur | mb_check_encoding


mb_convert_case

(PHP 4 >= 4.3.0, PHP 5)

mb_convert_case -- Modifie la casse d'une chaîne

Description

string mb_convert_case ( string str, int mode [, string encoding] )

mb_convert_case() retourne la chaîne string après avoir modifié sa casse, suivant le mode mode.

mode peut prendre l'une des valeurs suivantes : MB_CASE_UPPER, MB_CASE_LOWER ou MB_CASE_TITLE.

encoding spécifie le jeu de caractère de la chaîne str ; s'il est omis, le jeu de caractères interne sera utilisé.

La valeur retournée est la chaîne str dont la casse a été modifiée.

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 quelle caractère qui a des propriétés alphabétiques, comme le i-tréma (Ï/ï).

Pour plus d'informations sur les propriétés de l'Unicode, visitez le site de http://www.unicode.org/unicode/reports/tr21/.

Exemple 1. Exempe avec mb_convert_case()

<?php
$str = "Marie a un petit agneau et l'aime très fort";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
print $str;
// Affiche : MARIE A UN PETIT AGNEAU ET L'AIME TRÈS FORT
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
print $str;
// Affiche : Marie A Un Petit Agneau Et L'Aime Très Fort
?>

Voir aussi
mb_strtolower(),
mb_strtoupper(),
strtolower(),
strtoupper(),
ucfirst() et
ucwords().

Précédent | Sommaire | Suivant
mb_check_encoding | Niveau supérieur | mb_convert_encoding


mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_encoding -- Conversion d'encodage

Description

string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )

mb_convert_encoding() convertit la chaîne str depuis l'encodage from_encoding vers l'encodage to_encoding.

str : chaîne de caractères à convertir.

from_encoding est l'encodage de la chaîne str à l'origine. Il sera détecté parmi plusieurs encodages fournis sous forme d'un tableau, ou d'une liste d'encodages séparés par des virgules.

Exemple 1. Exemple avec mb_convert_encoding()

<?php
/* Convertit l'encodage interne vers SJIS */
$str = mb_convert_encoding($str, "SJIS");
/* Convertit EUC-JP en UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");
/* Détecte automatiquement un encodage entre JIS, eucjp-win ou sjis-win,
   Puis convertit en UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");
/* "auto" signifie "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>

Voir aussi mb_detect_order().

Précédent | Sommaire | Suivant
mb_convert_case | Niveau supérieur | mb_convert_kana


mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_kana -- Convertit entre les différents "kana"

Description

string mb_convert_kana ( string str [, string option [, string encoding]] )

mb_convert_kana() effectue une conversion "han-kaku" - "zen-kaku" sur la chaîne str. Elle retourne la chaîne convertie. Cette fonction n'est utile que pour le japonais.

option est l'option de conversion. La valeur par défaut est "KV".

encoding est un nom d'encodage de caractères. S'il n'est pas spécifié, l'encodage interne est utilisé.

Spécifiez les conversions en combinant les valeurs suivantes. La valeur par défaut est KV.

Tableau 1. Options de conversions disponibles

Option | Valeur
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".

Exemple 1. Exemple avec mb_convert_kana()

<?php
/* Convertit tous les "kana" en "zen-kaku" "kata-kana" */
$str = mb_convert_kana($str, "KVC");
/* Convertit "han-kaku" "kata-kana" en "zen-kaku" "kata-kana"
   et "zen-kaku" alpha-numeric en "han-kaku" */
$str = mb_convert_kana($str, "KVa");
?>

Précédent | Sommaire | Suivant
mb_convert_encoding | Niveau supérieur | mb_convert_variables


mb_convert_variables

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_variables -- Convertit l'encodage de variables

Description

string mb_convert_variables ( string to_encoding, mixed from_encoding, mixed &vars [, mixed &...] )

mb_convert_variables() convertit l'encodage des variables vars depuis l'encodage from_encoding vers l'encodage to_encoding, puis retourne le nom de l'encodage détecté, en cas de succès, ou FALSE en cas d'échec.

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

from-encoding est une liste d'encodages possibles pour les variables vars, fourni sous forme d'un tableau ou d'une liste d'encodages, séparés par des virgules. Si from_encoding est omis, les encodages fournis dans mb_detect_order() sont utilisés.

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

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

Précédent | Sommaire | Suivant
mb_convert_kana | Niveau supérieur | mb_decode_mimeheader


mb_decode_mimeheader

(PHP 4 >= 4.0.6, PHP 5)

mb_decode_mimeheader -- Décode un en-tête MIME

Description

string mb_decode_mimeheader ( string str )

mb_decode_mimeheader() décode la chaîne encodée str dans l'en-tête MIME.

mb_decode_mimeheader() retourne la chaîne décodée, encodée au format interne.

Voir aussi mb_encode_mimeheader().

Précédent | Sommaire | Suivant
mb_convert_variables | Niveau supérieur | mb_decode_numericentity


mb_decode_numericentity

(PHP 4 >= 4.0.6, PHP 5)

mb_decode_numericentity -- Décode les entités HTML en caractères

Description

string mb_decode_numericentity ( string str, array convmap [, string encoding] )

mb_decode_numericentity() la chaîne d'entités HTML str en chaîne, et retourne cette chaîne.

convmap est un tableau qui spécifie les codes à convertir.

encoding est un nom d'encodage de caractères. S'il n'est pas spécifié, l'encodage interne est utilisé.

Exemple 1. Exemple avec le paramètre convmap

<?php
$convmap = array (
   int start_code1, int end_code1, int offset1, int mask1,
   int start_code2, int end_code2, int offset2, int mask2,
   ........
   int start_codeN, int end_codeN, int offsetN, int maskN );
// Spécifie les valeurs Unicode de début (start_codeN) et fin (end_codeN)
// Ajoutez offsetN à la valeur, et faites un ET bit-à-bit avec maskN, puis
// il convertit la valeur obtenue en entité numérique
?>

Voir aussi mb_encode_numericentity().

Précédent | Sommaire | Suivant
mb_decode_mimeheader | Niveau supérieur | mb_detect_encoding


mb_detect_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_detect_encoding -- Détecte un encodage

Description

string mb_detect_encoding ( string str [, mixed encoding_list [, bool strict]] )

mb_detect_encoding() détecte l'encodage utilisé par la chaîne str. mb_detect_encoding() retourne le nom de l'encodage détecté.

encoding_list est une liste d'encodages, sous forme de tableau, ou bien de chaîne, les valeurs étant séparées par des virgules.

Si encoding_list est omis, l'ordre spécifié par mb_detect_order() est utilisé.

strict spécifie si l'on doit utiliser une détection de l'encodage strict ou non. Par défaut, vaut FALSE.

Exemple 1. Exemple avec mb_detect_encoding()

<?php
/* Détecte l'encodage avec les valeurs par défaut */
echo mb_detect_encoding($str);

/* "auto" signifie "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
echo mb_detect_encoding($str, "auto");

/* Spécifie une liste d'encodages possibles avec une liste à virgules */
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");

/* Spécifie une liste d'encodages possibles avec un tableau  */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
echo mb_detect_encoding($str, $ary);
?>

Voir aussi mb_detect_order().

Précédent | Sommaire | Suivant
mb_decode_numericentity | Niveau supérieur | mb_detect_order


mb_detect_order

(PHP 4 >= 4.0.6, PHP 5)

mb_detect_order -- Lit/modifie l'ordre de détection des encodages

Description

mixed mb_detect_order ( [mixed encoding_list] )

mb_detect_order() remplace l'ordre de détection des encodages courant par encoding_list. mb_detect_order() retourne TRUE en cas de succès, et FALSE en cas d'erreur.

encoding_list est un tableau, ou une liste d'encodages séparés par une virgule. La valeur "auto" est automatiquement remplacée par "ASCII, JIS, UTF-8, EUC-JP, SJIS".

Si encoding_list est omis, mb_detect_order() retourne l'ordre de détection courant des encodages.

Ce paramétrage affecte les fonctions mb_detect_encoding() et mb_send_mail().

Note : 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.

Note : UTF-8, UTF-7, ASCII, EUC-JP, SJIS, eucJP-win, SJIS-win, JIS et 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.

Exemple 1. Exemple d'ordre de détection inutile

; Always detect as ISO-8859-1
detect_order = ISO-8859-1, UTF-8

; Always detect as UTF-8, since ASCII/UTF-7 values are
; valid for UTF-8
detect_order = UTF-8, ASCII, UTF-7

Exemple 2. 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());
?>

Voir aussi
mb_internal_encoding(),
mb_http_input(),
mb_http_output() et
mb_send_mail()

Précédent | Sommaire | Suivant
mb_detect_encoding | Niveau supérieur | mb_encode_mimeheader


mb_encode_mimeheader

(PHP 4 >= 4.0.6, PHP 5)

mb_encode_mimeheader -- Encode une chaîne pour un en-tête MIME

Description

string mb_encode_mimeheader ( string str [, string charset [, string transfer_encoding [, string linefeed [, string indent]]]] )

mb_encode_mimeheader() encode la chaîne str en un en-tête MIME, et retourne la chaîne convertie représentée en ASCII.

charset est le nom de l'encodage utilisé par la chaîne str. La valeur par défaut est déterminée par les paramètres courants du NLS (mbstring.language).

transfer_encoding est l'encodage de transfert. Il peut être "B" (Base64) ou "Q" (Quoted-Printable). Par défaut, c'est "B".

linefeed spécifie les fins de lignes (EOF : end-of-line) utilisé par mb_encode_mimeheader() pour formater la chaîne (une RFCdé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).

Exemple 1. Exemple avec mb_convert_kana()

<?php
$name = ""; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = mb_encode_mimeheader($name, "UTF-7", "Q") . "<" . $mbox . "@" . $doma . ">";
 echo $addr;
 ?>

Note : Cette fonction n'est pas faite pour couper les lignes en milieu de mots. Ce comportement peut ajouter des espaces non désirées dans un mot de la chaîne originale.

Le paramètre indent a été ajouté depuis PHP 5.

Voir aussi mb_decode_mimeheader().

Précédent | Sommaire | Suivant
mb_detect_order | Niveau supérieur | mb_encode_numericentity


mb_encode_numericentity

(PHP 4 >= 4.0.6, PHP 5)

mb_encode_numericentity -- Encode des entités HTML

Description

string mb_encode_numericentity ( string str, array convmap [, string encoding] )

mb_encode_numericentity() convertit la chaîne str depuis l'encodage interne en codes numériques HTML, puis retourne cette chaîne.

convmap est un tableau qui spécifie les codes à convertir.

encoding est un nom d'encodage de caractères. S'il n'est pas spécifié, l'encodage interne est utilisé.

Exemple 1. Exemple de paramètre convmap

<?php
$convmap = array (
 int start_code1, int end_code1, int offset1, int mask1,
 int start_code2, int end_code2, int offset2, int mask2,
 ........
 int start_codeN, int end_codeN, int offsetN, int maskN );
// Spécifie les valeurs Unicode de début (start_codeN) et fin (end_codeN)
// Ajoutez offsetN à la valeur, et faites un ET bit-à-bit avec maskN, puis
// il convertit la valeur obtenue en entité numérique
?>

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

Précédent | Sommaire | Suivant
mb_encode_mimeheader | Niveau supérieur | mb_ereg_match


mb_ereg_match

(PHP 4 >= 4.2.0)

mb_ereg_match -- Expression rationnelle POSIX pour les chaînes multi-octets

Description

bool mb_ereg_match ( string pattern, string string [, string option] )

mb_ereg_match() retourne TRUE si string vérifie l'expression rationnelle pattern, FALSE sinon.

Le jeu de caractère interne ou bien le jeu spécifié par la fonction mb_regex_encoding() sera utilisé comme jeu de caractères.

Voir aussi mb_regex_encoding() et mb_ereg().

Précédent | Sommaire | Suivant
mb_encode_numericentity | Niveau supérieur | mb_ereg_replace


mb_ereg_replace

(PHP 4 >= 4.2.0)

mb_ereg_replace -- Remplace des segments de chaînes, avec le support des expressions rationnelles mutli-octets

Description

string mb_ereg_replace ( string pattern, string replacement, string string [, string option] )

mb_ereg_replace() analyse la chaîne string pour trouver des segments de chaînes correspondant au masque pattern, puis, elle les remplace avec le texte de remplacement replacement et retourne le résultat ou bien FALSE en cas d'erreur. Des caractères multi-octets peuvent être utilisés dans le masque pattern.

Des options de recherches peuvent être configurées avec le paramètre option. Si i est spécifié, la casse sera ignorée. Si x est spécifié, les espaces blancs seront ignorés. Si m est spécifié, la recherche se fera en mode multi-ligne, et les nouvelles lignes seront incluses dans le joker .. Si p est spécifié, la recherche se fera en mode POSIX, les nouvelles lignes seront considérées comme des caractères normaux. Si e est spécifiée, replacement sera évaluée comme une expression PHP.

Le jeu de caractères interne, ou le jeu de caractères est spécifié par mb_regex_encoding().

Voir aussi mb_regex_encoding() et mb_eregi_replace().

Précédent | Sommaire | Suivant
mb_ereg_match | Niveau supérieur | mb_ereg_search_getpos


mb_ereg_search_getpos

(PHP 4 >= 4.2.0)

mb_ereg_search_getpos -- Retourne l'offset du début du prochain segment repéré par une expression rationnelle

Description

int mb_ereg_search_getpos ( void )

mb_ereg_search_getpos() retourne l'offset du
prochain segment de code qui correspond au masque utilisé dans
mb_ereg_search(),
mb_ereg_search_pos() et
mb_ereg_search_regs(). L'offset est le nombre
de caractères depuis le début de la chaîne.

Le jeu de caractères interne, ou le jeu de caractères est spécifié par mb_regex_encoding().

Voir aussi mb_regex_encoding() et mb_ereg_search_setpos().

Précédent | Sommaire | Suivant
mb_ereg_replace | Niveau supérieur | mb_ereg_search_getregs


mb_ereg_search_getregs

(PHP 4 >= 4.2.0)

mb_ereg_search_getregs -- Lit le dernier segment de chaîne multi-octets qui correspond au masque

Description

array mb_ereg_search_getregs ( void )

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

Le jeu de caractères interne, ou le jeu de caractères est spécifié par mb_regex_encoding().

Voir aussi mb_regex_encoding() et mb_ereg_search_init().

Précédent | Sommaire | Suivant
mb_ereg_search_getpos | Niveau supérieur | mb_ereg_search_init


mb_ereg_search_init

(PHP 4 >= 4.2.0)

mb_ereg_search_init -- Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets

Description

bool mb_ereg_search_init ( string string [, string pattern [, string option]] )

mb_ereg_search_init() configure string et pattern pour suporter les expressions rationnelles multi-octets. Ces valeurs sont utilisées par mb_ereg_search(), mb_ereg_search_pos() et mb_ereg_search_regs(). Cette fonction retourne TRUE en cas de succès, et FALSE en cas d'erreur.

Le jeu de caractères interne, ou le jeu de caractères est spécifié par mb_regex_encoding().

Voir aussi mb_regex_encoding() et mb_ereg_search_regs().

Précédent | Sommaire | Suivant
mb_ereg_search_getregs | Niveau supérieur | mb_ereg_search_pos


mb_ereg_search_pos

(PHP 4 >= 4.2.0)

mb_ereg_search_pos -- Retourne la position et la longueur du segment de chaîne qui vérifie le masque de l'expression rationnelle

Description

array mb_ereg_search_pos ( [string pattern [, string option]] )

mb_ereg_search_pos() retourne un tableau contenant la position et la taille du segment repéré grâce à l'expression rationnelle. Le premier élément du tableau retourné doit être le début du segment, et le second est la taille du segment, exprimée en octets. Cette fonction retourne FALSE en cas d'erreur.

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.

Le jeu de caractères interne, ou le jeu de caractères spécifié par mb_regex_encoding() sera utilisé.

Voir aussi mb_regex_encoding() et mb_ereg_search_init().

Précédent | Sommaire | Suivant
mb_ereg_search_init | Niveau supérieur | mb_ereg_search_regs


mb_ereg_search_regs

(PHP 4 >= 4.2.0)

mb_ereg_search_regs -- Retourne le segment de chaîne trouvé par une expression rationnelle multi-octets

Description

array mb_ereg_search_regs ( [string pattern [, string option]] )

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 troisème le contenu de la seconde paranthèse capturante, etc. La fonction retourne FALSE en cas d'erreur.

Le jeu de caractères interne ou bien le jeu de caractères spécifié par mb_regex_encoding() sera utilisé.

Voir aussi mb_regex_encoding() et mb_ereg_search_init().

Précédent | Sommaire | Suivant
mb_ereg_search_pos | Niveau supérieur | mb_ereg_search_setpos


mb_ereg_search_setpos

(PHP 4 >= 4.2.0)

mb_ereg_search_setpos -- Choisit le point de départ de la recherche par expression rationnelle

Description

bool mb_ereg_search_setpos ( int position )

mb_ereg_search_setpos() choisit le point de départ de la recherche que va effectuer la fonction mb_ereg_search().

Le jeu de caractères internet ou bien le jeu de caractères spécifié par mb_regex_encoding() sera utilisé.

Voir aussi mb_regex_encoding() et mb_ereg_search_init().

Précédent | Sommaire | Suivant
mb_ereg_search_regs | Niveau supérieur | mb_ereg_search


mb_ereg_search

(PHP 4 >= 4.2.0)

mb_ereg_search -- Recherche par expression rationnelle multi-octets

Description

bool mb_ereg_search ( [string pattern [, string option]] )

mb_ereg_search() retourne TRUE si la chaîne multi-octets correspond au masque d'expression rationnelle, ou bien FALSE sinon. La chaîne à étudier a été configurée avec la fonction mb_ereg_search_init(). Si le masque pattern n'est pas spécifié, le précédent sera utilisé.

Le jeu de caractères interne, ou le jeu de caractères est spécifié par mb_regex_encoding().

Voir aussi mb_regex_encoding() et mb_ereg_search_init().

Précédent | Sommaire | Suivant
mb_ereg_search_setpos | Niveau supérieur | mb_ereg


mb_ereg

(PHP 4 >= 4.2.0)

mb_ereg -- Recherche par expression rationnelle avec support des caractères multi-octets

Description

int mb_ereg ( string pattern, string string [, array regs] )

mb_ereg() utilise l'expression rationnelle pattern avec le support des caractères multi-octets sur la chaîne string. mb_ereg() retourne 1 si des segments de chaîne qui vérifient le masque ont été trouvés. Le troisième paramètre est optionnel. S'il est fourni, mb_ereg() retournera la taille du segment de chaîne identifié, regs contient les sous-chaînes. Si rien n'est trouvé, la fonction retourne FALSE.

Le jeu de caractères interne, ou le jeu de caractères spécifié par mb_regex_encoding() sera utilisé.

Voir aussi mb_regex_encoding() et mb_eregi().

Précédent | Sommaire | Suivant
mb_ereg_search | Niveau supérieur | mb_eregi_replace


mb_eregi_replace

(PHP 4 >= 4.2.0)

mb_eregi_replace -- Expression rationnelle avec support des caractères multi-octets, sans tenir compte de la casse

Description

string mb_eregi_replace ( string pattern, string replace, string string [, string option] )

mb_ereg_replace() analyse la chaîne string avec le masque d'expression rationnelle pattern, puis remplace le texte trouvé par replacement. Enfin, mb_ereg_replace() retourne la nouvelle chaîne ainsi bâtie, ou FALSE en cas d'erreur. Les caractères multi-octets peuvent être utilisés dans la chaîne pattern. La casse sera ignorée. Le paramètre option a la même signification que pour la fonction mb_ereg_replace().

Le jeu de caractères interne, ou le jeu de caractères est spécifié par mb_regex_encoding().

Voir aussi mb_regex_encoding() et mb_ereg_replace().

Précédent | Sommaire | Suivant
mb_ereg | Niveau supérieur | mb_eregi


mb_eregi

(PHP 4 >= 4.2.0)

mb_eregi -- Expression rationnelle insensible à la casse avec le support des caractères multi-octets

Description

int mb_eregi ( string pattern, string string [, array regs] )

mb_eregi() utilise l'expression rationnelle pattern avec le support des caractères multi-octets sur la chaîne string. mb_eregi() ignore la casse dans ses recherches. mb_ereg() retourne 1 si des segments de chaîne qui vérifient le masque ont été trouvé. Le troisième paramètre est optionnel. S'il est fournit, mb_ereg() retournera la taille du segment de chaîne identifié, regs contient les sous-chaînes. Si rien n'est trouvé, la fonction retourne FALSE.

Le jeu de caractères interne, ou le jeu de caractères est spécifié par mb_regex_encoding().

Voir aussi mb_regex_encoding() et mb_ereg().

Précédent | Sommaire | Suivant
mb_eregi_replace | Niveau supérieur | mb_get_info


mb_get_info

(PHP 4 >= 4.2.0, PHP 5)

mb_get_info -- Lit la configuration interne de l'extension mbstring

Description

mixed mb_get_info ( [string type] )

mb_get_info() lit la configuration interne de l'extension mbstring internal setting.

Si type n'est pas spécifié, ou s'il vaut "all", un tableau contenant les éléments "internal_encoding", "http_output", "http_input" et "func_overload", "mail_charset", "mail_header_encoding", "mail_body_encoding" sera retourné. Les trois derniers éléments sont disponibles depuis PHP 5.1.3.

Si type est spécifié, et s'il vaut "http_output", "http_input", "internal_encoding" ou "func_overload", la paramètre spécifié sera retourné.

Voir aussi mb_internal_encoding() et mb_http_output().

Précédent | Sommaire | Suivant
mb_eregi | Niveau supérieur | mb_http_input


mb_http_input

(PHP 4 >= 4.0.6, PHP 5)

mb_http_input -- Détecte le type d'encodage d'un caractère HTTP

Description

mixed mb_http_input ( [string type] )

mb_http_input() retourne le type d'encodage utilisé par une requête HTTP.

Le paramètre type spécifie le type d'entrée HTTP. Il peut prendre l'une des valeurs suivantes : "G" pour GET, "P" pour POST, "C" pour COOKIE, "S" pour chaîne de caractères, "L" pour la liste, "l" pour la liste complète (retournera un tableau). Si type est omis, il prend la valeur du dernier type utilisé.

Valeur retournée : nom de l'encodage utilisé. Si mb_http_input() ne peut traiter ce type d'encodage, elle retourne FALSE.

Voir aussi
mb_internal_encoding(),
mb_http_output() et
mb_detect_order()

Précédent | Sommaire | Suivant
mb_get_info | Niveau supérieur | mb_http_output


mb_http_output

(PHP 4 >= 4.0.6, PHP 5)

mb_http_output -- Lit/modifie l'encodage d'affichage

Description

mixed mb_http_output ( [string 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. mb_http_output() retourne TRUE en cas de succès, et FALSE en cas d'échec.

Si encoding est omis, mb_http_output() retourne l'encodage d'affichage courant.

Voir aussi
mb_internal_encoding(),
mb_http_input() et
mb_detect_order()

Précédent | Sommaire | Suivant
mb_http_input | Niveau supérieur | mb_internal_encoding


mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_internal_encoding -- Lit/modifie l'encodage interne

Description

mixed mb_internal_encoding ( [string encoding] )

mb_internal_encoding() modifie l'encodage interne courant en le remplacant par encoding. Si ce paramètre est omis, l'encodage interne courant est retourné.

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.

encoding: Nom d'encodage.

Valeur retournée : si encoding est fourni, mb_internal_encoding() retourne TRUE en cas de succès, et FALSE sinon. Si encoding est omis, mb_internal_encoding() retourne le nom de l'encodage courant.

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(),
mb_http_output() et
mb_detect_order()

Précédent | Sommaire | Suivant
mb_http_output | Niveau supérieur | mb_language


mb_language

(PHP 4 >= 4.0.6, PHP 5)

mb_language -- Lit/modifie le langage courant

Description

mixed mb_language ( [string language] )

mb_language() remplace le langage courant par language. Si language est omis, mb_language() retourne le langage courant.

Le paramètre language sert à encoder les messages électroniques. Les langages valides sont : "Japanese" (japonais), "ja" (japonais), "English" (anglais), "en" (anglais) et "uni" (UTF-8). mb_send_mail() utilise cette option pour encoder les emails.

Le langage et sa configuration valent ISO-2022-JP/Base64 pour le japonais, UTF-8/Base64 pour l'UTF-8 et ISO-8859-1/quoted printable pour l'anglais.

Si language est fourni et est valide, mb_language() retourne TRUE. Sinon, elle retourne FALSE. Lorsque le paramètre language est omis, mb_language() retourne le nom du langage courant, sous forme de chaîne. Si aucun langage n'a été configuré, mb_language() retourne FALSE.

Voir aussi mb_send_mail().

Précédent | Sommaire | Suivant
mb_internal_encoding | Niveau supérieur | mb_list_encodings_alias_names


mb_list_encodings

(PHP 5)

mb_list_encodings -- Retourne un tableau contenant tous les encodages supportés

Description

array mb_list_encodings ( void )

mb_list_encodings() retourne un tableau contenant tous les encodages supportés.

Exemple 1. Exemple avec mb_list_encodings()

<?php

print_r(mb_list_encodings());

?>

L'exemple ci-dessus va afficher :

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
)

Précédent | Sommaire | Suivant
mb_list_encodings_alias_names | Niveau supérieur | mb_list_mime_names


mb_output_handler

(PHP 4 >= 4.0.6, PHP 5)

mb_output_handler -- Fonction de traitement des affichages

Description

string mb_output_handler ( string contents, int status )

mb_output_handler() est la fonction à fournir à ob_start(). mb_output_handler() convertit les caractères envoyés au client dans l'encodage paramétré avec mb_http_output().

Dans les versions 4.1.0 de PHP ou supérieures, cette fonction ajoute un en-tête HTTP de jeu de caractères, en suivant ces conditions :

  • Content-Type n'a pas été défini par la fonction header()

  • Le type MIME par défaut commence alors par text/

  • La configuration http_output est différente de pass

contents : le contenu à traiter

status : l'état du contenu

mb_output_handler() retourne la chaîne convertie.

Exemple 1. Exemple avec mb_output_handler()

<?php
  mb_http_output("UTF-8");
  ob_start("mb_output_handler");
?>

Note : Si vous souhaitez envoyer des données binaires telles des images issues d'un script PHP 4.3.0 ou suivante, Content-Type: header doit être envoyé 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é en utilisant la fonction header(), les données envoyées seront considérées comme du texte, et la convertion sera effectuée en utilisant le jeu de caractères associé.

Si vous souhaitez envoyer des données binaires telles des images issues d'un script PHP, vous devez spécifier l'encodage spécial "pass", avec la fonction mb_http_output().

Voir aussi ob_start().

Précédent | Sommaire | Suivant
mb_list_mime_names | Niveau supérieur | mb_parse_str


mb_parse_str

(PHP 4 >= 4.0.6, PHP 5)

mb_parse_str -- Analyse les données HTTP GET/POST/COOKIE et assigne les variables globales

Description

bool mb_parse_str ( string encoded_string [, array &result] )

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

encoded_string: Les données encodées de l'URL.

result: un tableau contenant les valeurs décodées, et les noms des jeux de caractères.

mb_parse_str() retourne TRUE en cas de succès, et FALSE sinon.

Voir aussi mb_detect_order() et mb_internal_encoding().

Précédent | Sommaire | Suivant
mb_output_handler | Niveau supérieur | mb_preferred_mime_name


mb_preferred_mime_name

(PHP 4 >= 4.0.6, PHP 5)

mb_preferred_mime_name -- Détecte l'encodage MIME

Description

string mb_preferred_mime_name ( string encoding )

mb_preferred_mime_name() retourne le type d'encodage MIME utilisé dans le mail encoding. Le nom de l'encodage est retourné sous forme de chaîne.

Exemple 1. Exemple avec mb_preferred_mime_string()

<?php
  $outputenc = "sjis-win";
  mb_http_output($outputenc);
  ob_start("mb_output_handler");
  header("Content-Type: text/html; charset=" . mb_preferred_mime_name($outputenc));
?>

Précédent | Sommaire | Suivant
mb_parse_str | Niveau supérieur | mb_regex_encoding


mb_regex_encoding

(PHP 4 >= 4.2.0)

mb_regex_encoding -- Retourne le jeu de caractères courant pour les expressions rationnelles

Description

mixed mb_regex_encoding ( [string encoding] )

mb_regex_encoding() retourne le jeu de caractères courant pour les expressions rationnelles, sous forme de chaîne.

Si le troisième argument optionnel encoding est fourni, il prendra la valeur du jeu de caractères par défaut pour les expressions rationnelles. Par défaut, cette option est identique au jeu de caractères interne.

Voir aussi mb_internal_encoding() et mb_ereg().

Précédent | Sommaire | Suivant
mb_preferred_mime_name | Niveau supérieur | mb_regex_set_options


mb_regex_set_options

(PHP 4 >= 4.3.0)

mb_regex_set_options -- Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multi-octets

Description

string mb_regex_set_options ( [string options] )

mb_regex_set_options() configure les options par défaut avec les nouvelles valeurs contenues dans options, pour les fonctions d'expression rationnelle à support de caractères multi-octets.

mb_regex_set_options() retourne la configuration précédente. Si options est omise, la fonction retourne la chaîne qui décrit les options courantes.

Voir aussi
mb_split(),
mb_ereg() et
mb_eregi().

Précédent | Sommaire | Suivant
mb_regex_encoding | Niveau supérieur | mb_send_mail


mb_send_mail

(PHP 4 >= 4.0.6, PHP 5)

mb_send_mail -- Envoie un mail encodé

Description

bool mb_send_mail ( string to, string subject, string message [, string additional_headers [, string additional_parameter]] )

mb_send_mail() envoie un courrier électronique. Les en-têtes et le corps du mesage 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.

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 est le sujet du mail.

message est le message du mail.

La chaîne additional_headers est insérée à la fin de l'en-tête mail. Elle sert à ajouter d'autres en-têtes email. N'oubliez pas de les séparer par des nouvelles lignes (\n).

Note : Les en-têtes Content-Type et Content-Transfer-Encoding peuvent être redéfinis depuis PHP 5.0.0. En PHP 4, les valeurs définies par la fonction mb_language() sont toujours utilisées.

additional_parameter est une ligne de paramètres MTA. Il est pratique lorsque vous voulez définir un Return-Path correct lorsque vous utilisez sendmail.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi
mail(),
mb_encode_mimeheader() et
mb_language().

Précédent | Sommaire | Suivant
mb_regex_set_options | Niveau supérieur | mb_split


mb_split

(PHP 4 >= 4.2.0)

mb_split -- Scinde une chaîne en tableau avec une expression rationnelle multi-octets

Description

array mb_split ( string pattern, string string [, int limit] )

mb_split() scinde la chaîne mutli-octets string en utilisant l'expression rationnelle pattern puis en retournant le résultat sous forme de tableau.

Si le paramètre optionnel limit est spécifié, la chaîne sera scindée en limit éléments au plus.

Le jeu de caractères interne, ou le jeu de caractères est spécifié par mb_regex_encoding().

Voir aussi mb_regex_encoding() et mb_ereg().

Précédent | Sommaire | Suivant
mb_send_mail | Niveau supérieur | mb_strcut


mb_strcut

(PHP 4 >= 4.0.6, PHP 5)

mb_strcut -- Coupe une partie de chaîne

Description

string mb_strcut ( string str, int start [, int length [, string encoding]] )

mb_strcut() retourne la portion de la chaîne str qui commence au caractère start et a la longueur de length caractères.

mb_strcut() effectue une opération équivalente à mb_substr() avec des méthodes différentes. Si la position start est un caractère multi-octets ou plus, il débutera à partir du premier octet ou du premier caractère multi-octets.

Il soustrait la chaîne str qui est plus courte que length ET caractères qui ne font pas partis d'une chaîne multi-octets et qui ne commence pas au milieu de la séquence.

encoding est un nom d'encodage de caractères. S'il n'est pas spécifié, l'encodage interne est utilisé.

Voir aussi mb_substr() et mb_internal_encoding().

Précédent | Sommaire | Suivant
mb_split | Niveau supérieur | mb_strimwidth


mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strimwidth -- Tronque une chaîne

Description

string mb_strimwidth ( string str, int start, int width [, string trimmarker [, string encoding]] )

mb_strimwidth() tronque la chaîne str à la longueur width. Elle retourne la chaîne tronquée.

Si trimmarker est fourni, trimmarker est ajoutée à la fin de la chaîne retournée.

start est l'offet de départ, en nombre de caractères depuis le début de la chaîne (cela commence à 0).

trimmarker est la chaîne ajoutée à la fin de la chaîne tronquée.

encoding est un nom d'encodage de caractères. S'il n'est pas spécifié, l'encodage interne est utilisé.

Exemple 1. Exemple avec mb_strimwidth()

<?php
$str = mb_strimwidth($str, 0, 40, "..>");
?>

Voir aussi mb_strwidth() et mb_internal_encoding().

Précédent | Sommaire | Suivant
mb_strcut | Niveau supérieur | mb_stripos


mb_strlen

(PHP 4 >= 4.0.6, PHP 5)

mb_strlen -- Retourne la taille d'une chaîne

Description

int mb_strlen ( string str [, string encoding] )

mb_strlen() retourne le nombre de caractères dans la chaîne str, avec l'encodage encoding. Un caractère multi-octets est alors compté pour 1.

encoding est l'encodage de str. Si encoding est omis, l'encodage interne sera utilisé.

Voir aussi mb_internal_encoding(), strlen().

Précédent | Sommaire | Suivant
mb_stristr | Niveau supérieur | mb_strpos


mb_strpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strpos -- Repère la première occurrence d'un caractère dans une chaîne

Description

int mb_strpos ( string haystack, string needle [, int offset [, string encoding]] )

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

mb_strpos() effectue une recherche de type strpos(), en tenant compte des caractères multi-octets. La position de needle est comptée à partir du début de la chaîne haystack : les positions commencent à 0.

Si encoding est omis, l'encodage interne par défaut est utilisé.

offset est l'offset de début de recherche. S'il est omis, zéro sera utilisé (début de la chaîne).

encoding est un nom d'encodage de caractères. S'il n'est pas spécifié, l'encodage interne est utilisé.

Voir aussi
mb_strrpos(),
mb_internal_encoding() et
strpos().

Précédent | Sommaire | Suivant
mb_strlen | Niveau supérieur | mb_strrchr


mb_strrpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strrpos -- Repère la dernière occurrence d'un caractère dans une chaîne

Description

int mb_strrpos ( string haystack, string needle [, int offset [, string encoding]] )

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

mb_strrpos() effectue une recherche de type strpos(), en tenant compte des caractères multi-octets. La position de needle est comptée à partir du début de la chaîne haystack : les positions commencent à 0.

Si encoding est omis, l'encodage interne par défaut est utilisé.

encoding est un nom d'encodage de caractères. S'il n'est pas spécifié, l'encodage interne est utilisé.

Note : Depuis PHP 5.2.0, le paramètre 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.

Note : Le paramètre encoding a été déplacé de la troisième position à la quatrième position depuis PHP 5.2.0. Pour des raisons de compatibilité ascendante, encoding peut être spécifié en tant que troisième paramètre, mais ce comportement est obsolète et peut être supprimé prochainement.

Historique

Version | Description
5.2.0 | Ajout du paramètre optionnel offset.

Voir aussi

mb_strpos()
mb_internal_encoding()
strrpos()

Précédent | Sommaire | Suivant
mb_strripos | Niveau supérieur | mb_strstr


mb_strtolower

(PHP 4 >= 4.3.0, PHP 5)

mb_strtolower -- Met tous les caractères en minuscules

Description

string mb_strtolower ( string str [, string encoding] )

mb_strtolower() retourne la chaîne str après avoir converti tous les caractères alphabétiques en minuscules.

encoding spécifie le jeu de caractères de la chaîne str ; s'il est omis, le jeu de caractères interne sera utilisé.

Pour plus d'informations sur les propriétés de l'Unicode, voyez http://www.unicode.org/unicode/reports/tr21/.

Contrairement à strtolower(), le concept de caractère 'alphabétique' est déterminé par les propriétés Unicode. De ce fait, le comportement de cette fonction n'est pas modifié par les configurations locales, et elle peut convertir tout les caractères qui sont considérés comme alphabétiques comme le c cédille (Ç).

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

?>

Voir aussi
strtolower(),
mb_strtoupper() et
mb_convert_case().

Précédent | Sommaire | Suivant
mb_strstr | Niveau supérieur | mb_strtoupper


mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5)

mb_strtoupper -- Met tous les caractères en majuscules

Description

string mb_strtoupper ( string str [, string encoding] )

mb_strtoupper() retourne la chaîne str après avoir converti tous les caractères alphabétiques en majuscules.

encoding spécifie le jeu de caractères de la chaîne str ; s'il est omis, le jeu de caractères interne sera utilisé.

Pour plus d'informations sur les propriétés de l'Unicode, voyez http://www.unicode.org/unicode/reports/tr21/.

Contrairement à strtoupper(), le concept de caractère 'alphabétique' est déterminé par les propriétés Unicode. De ce fait, le comportement de cette fonction n'est pas modifié par les configurations locales, et elle peut convertir tout les caractères qui sont considérés comme alphabétiques comme le c cédille (ç).

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.

?>

Voir aussi
strtoupper(),
mb_strtolower() et
mb_convert_case().

Précédent | Sommaire | Suivant
mb_strtolower | Niveau supérieur | mb_strwidth


mb_strwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strwidth -- Retourne la largeur d'une chaîne

Description

int mb_strwidth ( string str [, string encoding] )

mb_strwidth() retourne la largeur de la chaîne str.

Les chaînes à encodage multi-octets sont généralement deux fois plus grandes que les chaînes à simple-octet.

Tableau 1. Largeur des caractères

Caractères | Taille
U+0000 - U+0019 | 0
U+0020 - U+1FFF | 1
U+2000 - U+FF60 | 2
U+FF61 - U+FF9F | 1
U+FFA0 - | 2

encoding est un nom d'encodage de caractères. S'il n'est pas spécifié, l'encodage interne est utilisé.

Voir aussi mb_strimwidth() et mb_internal_encoding().

Précédent | Sommaire | Suivant
mb_strtoupper | Niveau supérieur | mb_substitute_character


mb_substitute_character

(PHP 4 >= 4.0.6, PHP 5)

mb_substitute_character -- Lit/modifie les caractères de substitution

Description

mixed mb_substitute_character ( [mixed substrchar] )

mb_substitute_character() spécifie le caractère de substitution des caractères invalides, ou des encodages invalides. Les caractères invalides peuvent être remplacés par NULL (pas d'affichage, ils sont supprimés), une chaîne ou un code hexadécimal.

Ce paramétrage affecte mb_convert_encoding(),
 mb_convert_variables(),
 mb_output_handler(),
 et mb_send_mail().

substchar spécifie une valeur Unicode sous la forme d'un entier, ou bien une chaîne sous ces formes :

  • "none" : pas d'affichage

  • "long" : affiche la valeur hexadécimale (par exemple : U+3000,JIS+7E7E)

Si substchar est fourni, mb_substitute_character() retourne TRUE en cas de succès, et FALSE en cas d'erreur. Si substchar est omis, mb_substitute_character() retourne une valeur Unicode, ou bien "none"/"long".

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

Précédent | Sommaire | Suivant
mb_strwidth | Niveau supérieur | mb_substr_count


mb_substr_count

(PHP 4 >= 4.3.0, PHP 5)

mb_substr_count -- Compte le nombre d'occurrences d'une sous-chaîne

Description

int mb_substr_count ( string haystack, string needle [, string encoding] )

mb_substr_count() retourne le nombre d'occurrences de la chaîne needle dans la chaîne haystack string.

encoding spécifie le jeu de caractères utilisé pour needle et haystack. Si omis, le jeu de caractères interne est utilisé.

Exemple 1. Exemple avec mb_substr_count()

<?php
echo mb_substr_count("Ceci est un test", "es"); // affiche 2
?>

Voir aussi
substr_count(),
mb_strpos() et
mb_substr().

Précédent | Sommaire | Suivant
mb_substitute_character | Niveau supérieur | mb_substr


mb_substr

(PHP 4 >= 4.0.6, PHP 5)

mb_substr -- Lit une sous-chaîne

Description

string mb_substr ( string str, int start [, int length [, string encoding]] )

mb_substr() retourne la portion de la chaîne str qui commence au caractère start et a la longueur de length caractères.

mb_substr() effectue une recherche de type strpos(), en tenant compte des caractères multi-octets. La position de needle est comptée à partir du début de la chaîne haystack : les positions commencent à 0.

Si encoding est omis, l'encodage interne est utilisé.

encoding est un nom d'encodage de caractères. S'il n'est pas spécifié, l'encodage interne est utilisé.

Voir aussi mb_strcut() et mb_internal_encoding().

Précédent | Sommaire | Suivant
mb_substr_count | Niveau supérieur | Fonctions muscat


MCAL

Manuel PHP
Précédent Suivant

LXXXIII. MCAL

Introduction

MCAL est le sigle de Modular Calendar Access Library (bibliothèque calendaire modulaire).

Libmcal est une bibliothèque C de calendriers. Elle est écrite pour être très modulaire, et dispose de nombreux modules. MCAL est l'équivalent de IMAP pour les calendriers.

Avec mcal, un calendrier peut être ouvert comme une boîte aux lettres. Les calendriers peuvent être des fichiers locaux, ou bien être sur des serveurs ICAP distants, ou encore tout autre format supporté par la bibliothèque.

Les événements peuvent être lus, sélectionnés et enregistrés. Il y a aussi la possibilité d'ajouter des alarmes, et de placer des événements récurrents.

Avec libmcal, les serveurs centralisés peuvent être accédés et utilisés, et remplacent avantageusement tout développement spécifique de base de données.

La plupart des fonctions utilisent une structure d'événement interne, qui est unique pour chaque connexion. Cela évite d'avoir à passer des objets de grande taille entre les fonctions. Il existe des fonctions bien pratiques pour créer, initialiser et lire des objets événements.

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.

Note : PHP disposait d'une extension ICAP, mais la bibliothèque originale et l'extension PHP ne sont plus supportées. La solution de remplacement est MCAL.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Pré-requis

Pour faire fonctionner cette bibliothèque, vous devez compiler PHP avec l'option --with-mcal. Il vous faudra alors avoir installé la bibliothèque mcal. Téléchargez la dernière version à http://mcal.chek.com/ et compilez-la, puis installez-la.

Installation

Après avoir installé la bibliothèque mcal, vous devez compiler PHP avec l'option --with-mcal[=DIR].

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

MCAL_SUNDAY (entier)

MCAL_MONDAY (entier)

MCAL_TUESDAY (entier)

MCAL_WEDNESDAY (entier)

MCAL_THURSDAY (entier)

MCAL_FRIDAY (entier)

MCAL_SATURDAY (entier)

MCAL_JANUARY (entier)

MCAL_FEBRUARY (entier)

MCAL_MARCH (entier)

MCAL_APRIL (entier)

MCAL_MAY (entier)

MCAL_JUNE (entier)

MCAL_JULY (entier)

MCAL_AUGUST (entier)

MCAL_SEPTEMBER (entier)

MCAL_OCTOBER (entier)

MCAL_NOVEMBER (entier)

MCAL_DECEMBER (entier)

MCAL_RECUR_NONE (entier)

MCAL_RECUR_DAILY (entier)

MCAL_RECUR_WEEKLY (entier)

MCAL_RECUR_MONTHLY_MDAY (entier)

MCAL_RECUR_MONTHLY_WDAY (entier)

MCAL_RECUR_YEARLY (entier)

MCAL_M_SUNDAY (entier)

MCAL_M_MONDAY (entier)

MCAL_M_TUESDAY (entier)

MCAL_M_WEDNESDAY (entier)

MCAL_M_THURSDAY (entier)

MCAL_M_FRIDAY (entier)

MCAL_M_SATURDAY (entier)

MCAL_M_WEEKDAYS (entier)

MCAL_M_WEEKEND (entier)

MCAL_M_ALLDAYS (entier)

Table des matières
mcal_append_event -- Enregistre un nouvel événement dans un calendrier MCAL
mcal_close -- Ferme une connexion MCAL
mcal_create_calendar -- Crée un nouveau calendrier
mcal_date_compare -- Compare deux dates
mcal_date_valid -- Valide une date
mcal_day_of_week -- Le jour de la semaine
mcal_day_of_year -- Le jour de l'année
mcal_days_in_month -- Retourne le nombre de jours dans un mois
mcal_delete_calendar -- Efface un calendrier
mcal_delete_event -- Efface un événement dans un calendrier MCAL
mcal_event_add_attribute -- Ajoute un attribut et une valeur à la structure globale
mcal_event_init -- Initialise la structure globale d'un flux MCAL
mcal_event_set_alarm -- Fixe l'alarme de la structure globale
mcal_event_set_category -- Fixe la catégorie de la structure globale
mcal_event_set_class -- Fixe la classe de la structure globale
mcal_event_set_description -- Fixe la description de la structure globale
mcal_event_set_end -- Fixe la date de fin de la structure globale
mcal_event_set_recur_daily -- Fixe la récurrence quotidienne
mcal_event_set_recur_monthly_mday -- Fixe la récurrence
mcal_event_set_recur_monthly_wday -- Fixe la récurrence mensuelle
mcal_event_set_recur_none -- Supprime la récurrence de la structure globale
mcal_event_set_recur_weekly -- Fixe la récurrence hebdomadaire
mcal_event_set_recur_yearly -- Fixe la récurrence annuelle
mcal_event_set_start -- Fixe la date de début de la structure globale
mcal_event_set_title -- Fixe le titre de la structure globale
mcal_expunge -- Supprime tous les événements marqués pour l'effacement
mcal_fetch_current_stream_event -- Retourne un objet contenant la structure de date
mcal_fetch_event -- Recherche un événement dans le calendrier
mcal_is_leap_year -- Vérifie que l'année est bissextile
mcal_list_alarms -- Retourne une liste d'événements qui ont une alarme prévue à une date
mcal_list_events -- Retourne une liste d'événements pour une date ou entre deux dates
mcal_next_recurrence -- Retourne la prochaine occurrence d'un événement
mcal_open -- Ouvre une connexion MCAL
mcal_popen -- Ouvre une connexion persistante MCAL
mcal_rename_calendar -- Renomme un calendrier
mcal_reopen -- Rouvre une connexion MCAL
mcal_snooze -- Eteind l'alarme d'un événement
mcal_store_event -- Modifie un événement dans un calendrier MCAL
mcal_time_valid -- Valide une heure
mcal_week_of_year -- Retourne le numéro de semaine dans l'année pour une date donnée

Précédent | Sommaire | Suivant
maxdb_warning_count | Niveau supérieur | mcal_append_event


mcal_append_event

(PHP 4, PECL)

mcal_append_event -- Enregistre un nouvel événement dans un calendrier MCAL

Description

int mcal_append_event ( int mcal_stream )

mcal_append_event() enregistre l'événement global dans le calendrier MCAL mcal_stream.

mcal_append_event() retourne l'id de l'enregistrement ainsi inséré.

Précédent | Sommaire | Suivant
MCAL | Niveau supérieur | mcal_close


mcal_close

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_close -- Ferme une connexion MCAL

Description

bool mcal_close ( int mcal_stream [, int flags] )

mcal_close() ferme la connexion mcal_stream.

Précédent | Sommaire | Suivant
mcal_append_event | Niveau supérieur | mcal_create_calendar


mcal_create_calendar

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_create_calendar -- Crée un nouveau calendrier

Description

bool mcal_create_calendar ( int stream, string calendar )

mcal_create_calendar() crée un nouveau calendrier nommé calendar, sur le serveur MCAL stream.

Précédent | Sommaire | Suivant
mcal_close | Niveau supérieur | mcal_date_compare


mcal_date_compare

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_date_compare -- Compare deux dates

Description

int mcal_date_compare ( int a_year, int a_month, int a_day, int b_year, int b_month, int b_day )

mcal_date_compare() compare les deux dates données, et retourne <0, 0, > 0 si a<b, a==b, a>b respectivement.

Précédent | Sommaire | Suivant
mcal_create_calendar | Niveau supérieur | mcal_date_valid


mcal_date_valid

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_date_valid -- Valide une date

Description

bool mcal_date_valid ( int year, int month, int day )

mcal_date_valid() retourne TRUE si la date (constituée par l'année year, le mois month et le jour day) est valide, et FALSE sinon.

Précédent | Sommaire | Suivant
mcal_date_compare | Niveau supérieur | mcal_day_of_week


mcal_day_of_week

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_day_of_week -- Le jour de la semaine

Description

int mcal_day_of_week ( int year, int month, int day )

mcal_day_of_week() retourne le jour de la semaine, pour la date constituée par l'année year, le mois month et le jour day. Les valeurs retournées seront dans l'intervalle 0-6, avec 0 correspondant à Dimanche et 6 à Samedi.

Précédent | Sommaire | Suivant
mcal_date_valid | Niveau supérieur | mcal_day_of_year


mcal_day_of_year

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_day_of_year -- Le jour de l'année

Description

int mcal_day_of_year ( int year, int month, int day )

mcal_day_of_year() retourne le numéro de jour dans l'année pour la date constituée par l'année year, le mois month et le jour day.

Précédent | Sommaire | Suivant
mcal_day_of_week | Niveau supérieur | mcal_days_in_month


mcal_days_in_month

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_days_in_month -- Retourne le nombre de jours dans un mois

Description

int mcal_days_in_month ( int month, int leap_year )

mcal_days_in_month() retourne le nombre de jours du mois month, et prend en compte le fait que l'année est bissextile avec le paramètre leap_year.

Précédent | Sommaire | Suivant
mcal_day_of_year | Niveau supérieur | mcal_delete_calendar


mcal_delete_calendar

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_delete_calendar -- Efface un calendrier

Description

bool mcal_delete_calendar ( int stream, string calendar )

mcal_delete_calendar() efface le calendrier calendar sur le serveur stream.

Précédent | Sommaire | Suivant
mcal_days_in_month | Niveau supérieur | mcal_delete_event


mcal_delete_event

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_delete_event -- Efface un événement dans un calendrier MCAL

Description

bool mcal_delete_event ( int mcal_stream, int event_id )

mcal_delete_event() efface l'événement dont l'identifiant est uid.

mcal_delete_event() retourne TRUE.

Précédent | Sommaire | Suivant
mcal_delete_calendar | Niveau supérieur | mcal_event_add_attribute


mcal_event_add_attribute

(PHP 3 >= 3.0.15, PHP 4, PECL)

mcal_event_add_attribute -- Ajoute un attribut et une valeur à la structure globale

Description

bool mcal_event_add_attribute ( int stream, string attribute, string value )

mcal_event_add_attribute() ajoute l'attribut attribute à la structure globale, avec la valeur value.

Précédent | Sommaire | Suivant
mcal_delete_event | Niveau supérieur | mcal_event_init


mcal_event_init

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_init -- Initialise la structure globale d'un flux MCAL

Description

void mcal_event_init ( int stream )

mcal_event_init() initialise la structure globale d'un flux mcal. Cela remet tous les éléments de la structure à 0, ou à leur valeur par défaut.

Précédent | Sommaire | Suivant
mcal_event_add_attribute | Niveau supérieur | mcal_event_set_alarm


mcal_event_set_alarm

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_alarm -- Fixe l'alarme de la structure globale

Description

void mcal_event_set_alarm ( int stream, int alarm )

mcal_event_set_alarm() fixe l'alarme de la structure globale à un nombre de minutes avant déclenchement.

Précédent | Sommaire | Suivant
mcal_event_init | Niveau supérieur | mcal_event_set_category


mcal_event_set_category

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_category -- Fixe la catégorie de la structure globale

Description

void mcal_event_set_category ( int stream, string category )

mcal_event_set_category() fixe la catégorie de la structure globale à la valeur de category.

Précédent | Sommaire | Suivant
mcal_event_set_alarm | Niveau supérieur | mcal_event_set_class


mcal_event_set_class

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_class -- Fixe la classe de la structure globale

Description

void mcal_event_set_class ( int stream, int class )

mcal_event_set_class() fixe la classe de la structure globale. La classe vaut 1 si elle est publique, et 0 si elle est privée.

Précédent | Sommaire | Suivant
mcal_event_set_category | Niveau supérieur | mcal_event_set_description


mcal_event_set_description

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_description -- Fixe la description de la structure globale

Description

void mcal_event_set_description ( int stream, string description )

mcal_event_set_description() fixe la catégorie de la structure globale à la valeur de description.

Précédent | Sommaire | Suivant
mcal_event_set_class | Niveau supérieur | mcal_event_set_end


mcal_event_set_end

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_end -- Fixe la date de fin de la structure globale

Description

void mcal_event_set_end ( int stream, int year, int month, int day [, int hour [, int min [, int sec]]] )

mcal_event_set_end() fixe la date de fin de la structure globale.

Précédent | Sommaire | Suivant
mcal_event_set_description | Niveau supérieur | mcal_event_set_recur_daily


mcal_event_set_recur_daily

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_recur_daily -- Fixe la récurrence quotidienne

Description

void mcal_event_set_recur_daily ( int stream, int year, int month, int day, int interval )

mcal_event_set_recur_daily() fixe la récurrence quotidienne de la structure globale, jusqu'à la date passée en paramètre (la date de début est celle de la structure).

Précédent | Sommaire | Suivant
mcal_event_set_end | Niveau supérieur | mcal_event_set_recur_monthly_mday


mcal_event_set_recur_monthly_mday

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_recur_monthly_mday -- Fixe la récurrence

Description

void mcal_event_set_recur_monthly_mday ( int stream, int year, int month, int day, int interval )

mcal_event_set_recur_monthly_mday() fixe la récurrence de la structure globale, jusqu'à la date passée en paramètre (la date de début est celle de la structure).

Précédent | Sommaire | Suivant
mcal_event_set_recur_daily | Niveau supérieur | mcal_event_set_recur_monthly_wday


mcal_event_set_recur_monthly_wday

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_recur_monthly_wday -- Fixe la récurrence mensuelle

Description

void mcal_event_set_recur_monthly_wday ( int stream, int year, int month, int day, int interval )

mcal_event_set_recur_monthly_wday() fixe la récurrence mensuelle de la structure globale, jusqu'à la date passée en paramètre. (La date de début est celle de la structure).

Précédent | Sommaire | Suivant
mcal_event_set_recur_monthly_mday | Niveau supérieur | mcal_event_set_recur_none


mcal_event_set_recur_none

(PHP 3 >= 3.0.15, PHP 4, PECL)

mcal_event_set_recur_none -- Supprime la récurrence de la structure globale

Description

void mcal_event_set_recur_none ( int stream )

mcal_event_set_recur_none() supprime la récurrence de la structure globale (event->recur_type est mis à MCAL_RECUR_NONE).

Précédent | Sommaire | Suivant
mcal_event_set_recur_monthly_wday | Niveau supérieur | mcal_event_set_recur_weekly


mcal_event_set_recur_weekly

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_recur_weekly -- Fixe la récurrence hebdomadaire

Description

void mcal_event_set_recur_weekly ( int stream, int year, int month, int day, int interval, int weekdays )

mcal_event_set_recur_weekly() fixe la récurrence hebdomadaire de la structure globale, jusqu'à la date passée en paramètre. (la date de début est celle de la structure).

Précédent | Sommaire | Suivant
mcal_event_set_recur_none | Niveau supérieur | mcal_event_set_recur_yearly


mcal_event_set_recur_yearly

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_recur_yearly -- Fixe la récurrence annuelle

Description

void mcal_event_set_recur_yearly ( int stream, int year, int month, int day, int interval )

mcal_event_set_recur_yearly() fixe la récurrence annuelle de la structure globale, jusqu'à la date passée en paramètre (la date de début est celle de la structure).

Précédent | Sommaire | Suivant
mcal_event_set_recur_weekly | Niveau supérieur | mcal_event_set_start


mcal_event_set_start

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_start -- Fixe la date de début de la structure globale

Description

void mcal_event_set_start ( int stream, int year, int month, int day [, int hour [, int min [, int sec]]] )

mcal_event_set_start() fixe la date de début de la structure globale.

Précédent | Sommaire | Suivant
mcal_event_set_recur_yearly | Niveau supérieur | mcal_event_set_title


mcal_event_set_title

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_title -- Fixe le titre de la structure globale

Description

void mcal_event_set_title ( int stream, string title )

mcal_event_set_title() fixe le titre de la structure globale à la valeur de title.

Précédent | Sommaire | Suivant
mcal_event_set_start | Niveau supérieur | mcal_expunge


mcal_expunge

(no version information, might be only in CVS)

mcal_expunge -- Supprime tous les événements marqués pour l'effacement

Description

bool mcal_expunge ( int stream )

mcal_expunge() supprime tous les événements marqués pour l'effacement sur la connexion stream.

Précédent | Sommaire | Suivant
mcal_event_set_title | Niveau supérieur | mcal_fetch_current_stream_event


mcal_fetch_current_stream_event

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_fetch_current_stream_event -- Retourne un objet contenant la structure de date

Description

object mcal_fetch_current_stream_event ( int stream )

mcal_fetch_current_stream_event() retourne la structure de la date du flux courant sous la forme d'un objet, qui contient :

  • int id - ID de l'événement.

  • int public - TRUE si l'événement est public, FALSE s'il est privé.

  • string category - Catégorie de l'événement.

  • string title - Titre de l'événement.

  • string description - Description de l'événement.

  • int alarm - Nombre de minutes avant d'envoyer une alerte pour cet événement.

  • object start - Objet contenant une date et une heure.

  • object end - Objet contenant une date et une heure.

  • int recur_type - type de récurrence

  • int recur_interval - intervalle de récurrence

  • datetime recur_endate - date de fin de récurrence

  • int recur_data - données de récurrence

Tous les objets de date et heure sont construits comme suit :

  • int year - année

  • int month - mois

  • int mday - jour du mois

  • int hour - heure

  • int min - minutes

  • int sec - secondes

  • int alarm - nombre de minutes avant de déclencher l'alarme

Précédent | Sommaire | Suivant
mcal_expunge | Niveau supérieur | mcal_fetch_event


mcal_fetch_event

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_fetch_event -- Recherche un événement dans le calendrier

Description

object mcal_fetch_event ( int mcal_stream, int event_id [, int options] )

mcal_fetch_event() recherche un événement dans le calendrier spécifié par id.

mcal_fetch_event() retourne un objet événement dont les attributs sont :

  • int id - ID de l'événement.

  • int public - TRUE si l'événement est public, FALSE s'il est privé.

  • string category - Catégorie de l'événement.

  • string title - Titre de l'événement.

  • string description - Description de l'événement.

  • int alarm - Nombre de minutes avant d'envoyer une alerte pour cet événement.

  • object start - Objet contenant une date et une heure.

  • object end - Objet contenant une date et une heure.

  • int recur_type - type de récurrence

  • int recur_interval - intervalle de récurrence

  • datetime recur_endate - date de fin de récurrence

  • int recur_data - données de récurrence

Tous les objets de date et heure sont construits comme suit :

  • int year - année

  • int month - mois

  • int mday - jour du mois

  • int hour - heure

  • int min - minutes

  • int sec - secondes

  • int alarm - nombre de minutes avant de déclencher l'alarme

Les valeurs possibles de recur_type sont :

  • 0 - Indique que l'événement ne se répète jamais

  • 1 - Indique que l'événement se répète tous les jours

  • 2 - Indique que l'événement se répète toutes les semaines

  • 3 - Indique que l'événement se répète tous les mois, à la même date (le 10 du mois)

  • 4 - Indique que l'événement se répète tous les mois, un certain jour (i.e., le troisième samedi du mois)

  • 5 - Indique que l'événement se répète tous les ans

Précédent | Sommaire | Suivant
mcal_fetch_current_stream_event | Niveau supérieur | mcal_is_leap_year


mcal_is_leap_year

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_is_leap_year -- Vérifie que l'année est bissextile

Description

bool mcal_is_leap_year ( int year )

mcal_is_leap_year() retourne 1 si l'année year est bissextile, et 0 sinon.

Précédent | Sommaire | Suivant
mcal_fetch_event | Niveau supérieur | mcal_list_alarms


mcal_list_alarms

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_list_alarms -- Retourne une liste d'événements qui ont une alarme prévue à une date

Description

array mcal_list_alarms ( int mcal_stream [, int begin_year, int begin_month, int begin_day, int end_year, int end_month, int end_day] )

mcal_list_events() retourne un tableau d'identifiants d'événements, qui ont une alarme de prévue à la date alarm_date. Si seul le flux MCAL est donné, la date de début et de fin de la structure globale sera utilisée.

mcal_list_events() prend une date, et retourne un tableau d'identifiants.

Précédent | Sommaire | Suivant
mcal_is_leap_year | Niveau supérieur | mcal_list_events


mcal_list_events

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_list_events -- Retourne une liste d'événements pour une date ou entre deux dates

Description

array mcal_list_events ( int mcal_stream [, int begin_year, int begin_month, int begin_day, int end_year, int end_month, int end_day] )

mcal_list_events() retourne un tableau d'identifiants d'événements, compris entre deux dates ou pour une date précise.

mcal_list_events() prend une date de début et une date de fin. Un tableau d'identifiants est retourné.

Précédent | Sommaire | Suivant
mcal_list_alarms | Niveau supérieur | mcal_next_recurrence


mcal_next_recurrence

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_next_recurrence -- Retourne la prochaine occurrence d'un événement

Description

object mcal_next_recurrence ( int stream, int weekstart, array next )

mcal_next_recurrence() retourne un objet contenant la prochaine date de l'événement, ou la date de l'événement suivant la date. mcal_next_recurrence() retourne un objet date vide si l'événement n'a pas de prochaine occurrence, ou si quelque chose est invalide. Utilisez weekstart pour déterminer le premier jour.

Précédent | Sommaire | Suivant
mcal_list_events | Niveau supérieur | mcal_open


mcal_open

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_open -- Ouvre une connexion MCAL

Description

int mcal_open ( string calendar, string username, string password [, int options] )

mcal_open() retourne un flux MCAL en cas de succès, et FALSE en cas d'erreur.

mcal_open() ouvre une connexion MCAL au serveur calendar. Si options est spécifié, passe aussi options à la boîte aux lettres (???). La structure interne du flux MCAL est initialisée à la connexion.

Précédent | Sommaire | Suivant
mcal_next_recurrence | Niveau supérieur | mcal_popen


mcal_popen

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_popen -- Ouvre une connexion persistante MCAL

Description

int mcal_popen ( string calendar, string username, string password [, int options] )

mcal_popen() retourne un flux MCAL en cas de succès, et FALSE sinon.

mcal_popen() ouvre une connexion MCAL au serveur de calendrier calendar. Si les options options sont spécifiées, elles sont aussi passées à cette boîte aux lettres (???). La structure interne du flux est aussi initialisée.

Précédent | Sommaire | Suivant
mcal_open | Niveau supérieur | mcal_rename_calendar


mcal_rename_calendar

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_rename_calendar -- Renomme un calendrier

Description

bool mcal_rename_calendar ( int stream, string old_name, string new_name )

mcal_rename_calendar() renomme le calendrier old_name en new_name.

Précédent | Sommaire | Suivant
mcal_popen | Niveau supérieur | mcal_reopen


mcal_reopen

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_reopen -- Rouvre une connexion MCAL

Description

bool mcal_reopen ( int mcal_stream, string calendar [, int options] )

mcal_reopen() rouvre une connexion MCAL.

mcal_reopen() rouvre une connexion MCAL avec le serveur calendar. Si les options options sont spécifiées, elles sont aussi passées à cette boîte aux lettres.

Précédent | Sommaire | Suivant
mcal_rename_calendar | Niveau supérieur | mcal_snooze


mcal_snooze

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_snooze -- Eteind l'alarme d'un événement

Description

bool mcal_snooze ( int stream_id, int event_id )

mcal_snooze() éteint l'alarme de l'événement identifié par stream_id et event_id.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
mcal_reopen | Niveau supérieur | mcal_store_event


mcal_store_event

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_store_event -- Modifie un événement dans un calendrier MCAL

Description

int mcal_store_event ( int mcal_stream )

mcal_store_event() enregistre l'événement global dans le calendrier MCAL mcal_stream.

mcal_store_event() retourne l'identifiant de l'événement modifié en cas de succès, et FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
mcal_snooze | Niveau supérieur | mcal_time_valid


mcal_time_valid

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_time_valid -- Valide une heure

Description

bool mcal_time_valid ( int hour, int minutes, int seconds )

mcal_time_valid() retourne TRUE si l'heure (constituée par l'heure hour, les minutes minutes et les secondes seconds) est une heure valide, et FALSE sinon.

Précédent | Sommaire | Suivant
mcal_store_event | Niveau supérieur | mcal_week_of_year


mcal_week_of_year

(PHP 4, PECL)

mcal_week_of_year -- Retourne le numéro de semaine dans l'année pour une date donnée

Description

int mcal_week_of_year ( int day, int month, int year )

mcal_week_of_year() retourne le numéro de la semaine pour la date donnée par l'année year, le mois month et le jour day.

Précédent | Sommaire | Suivant
mcal_time_valid | Niveau supérieur | chiffrement mcrypt


chiffrement mcrypt

Manuel PHP
Précédent Suivant

LXXXIV. chiffrement mcrypt

Introduction

Ces fonctions permettent d'accéder à la bibliothèque mcrypt, qui dispose d'une grande variété d'algorithmes de chiffrement, tels DES, TripleDES, Blowfish (par défaut), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 et GOST en modes CBC, OFB, CFB et ECB. De plus, elles acceptent aussi RC6 et IDEA qui sont considérés comme "non-libres".

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. Les utilisateurs Windows trouveront toutes les bibliothèques nécessaires sur http://ftp.emini.dk/pub/php/win32/mcrypt/.

Depuis PHP 5.0.0, vous avez besoin de la version 2.5.6 ou suivant de la bibliothèque libmcrypt.

Si vous compilez PHP avec la bibliothèque libmcrypt 2.4.x, les algorithmes suivants sont supportés : CAST, LOKI97, RIJNDAEL, SAFERPLUS, SERPENT ainsi que les chiffrements suivants : ENIGMA (chiffrement), PANAMA, RC4 et WAKE. Avec libmcrypt 2.4.x un autre mode de chiffrement est disponible : nOFB.

Installation

Vous devez compiler PHP avec l'option --with-mcrypt=[DIR] pour activer cette extension. DIR est le dossier d'installation de mcrypt. Assurez-vous de compiler libmcrypt avec l'option --disable-posix-threads.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
mcrypt.algorithms_dir | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
mcrypt.modes_dir | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

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.

Mcrypt peut opérer en 4 modes de chiffrement (CBC, OFB, CFB, et ECB). Si vous utilisez libmcrypt-2.4.x ou plus récent, les fonctions peuvent aussi opérer en mode nOFB et en mode STREAM. Nous allons présenter la technique d'utilisation de ces modes. Pour plus de références et de détails, reportez-vous au livre suivant : Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • MCRYPT_MODE_ECB (electronic codebook) est prévu pour des données aléatoires, telles que des clés. Comme les données sont peu nombreuses et aléatoires, les inconvénients de l'ECB ont ici un effet négatif favorable.

  • MCRYPT_MODE_CBC (cipher block chaining) est spécialement pratique avec les fichiers dont la sécurité ECB n'est pas suffisante.

  • MCRYPT_MODE_CFB (cipher feedback) est la meilleure méthode pour chiffrer des flots d'octets, quand les octets doivent être cryptés un par un.

  • MCRYPT_MODE_OFB (output feedback, in 8bit) est comparable à CFB, mais peut être utilisé lorsque des erreurs ne doivent pas être propagées.

  • MCRYPT_MODE_NOFB (output feedback, in nbit) est comparable à OFB, mais plus sûr, car il opère avec la taille de blocs de l'algorithme.

  • MCRYPT_MODE_STREAM est un mode supplémentaire, pour permettre l'utilisation d' algorithmes tels WAKE ou RC4.

Voici quelques autres modes et méthodes de compression :

MCRYPT_ENCRYPT (entier)

MCRYPT_DECRYPT (entier)

MCRYPT_DEV_RANDOM (entier)

MCRYPT_DEV_URANDOM (entier)

MCRYPT_RAND (entier)

Mcrypt ciphers

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

  • MCRYPT_ARCFOUR (libmcrypt > 2.4.x seulement)

  • MCRYPT_BLOWFISH

  • MCRYPT_CAST_128

  • MCRYPT_CAST_256

  • MCRYPT_CRYPT

  • MCRYPT_DES

  • MCRYPT_DES_COMPAT (libmcrypt 2.2.x seulement)

  • MCRYPT_ENIGMA (libmcrypt > 2.4.x seulement, alias de MCRYPT_CRYPT)

  • MCRYPT_GOST

  • MCRYPT_IDEA (non-free)

  • MCRYPT_LOKI97 (libmcrypt > 2.4.x seulement)

  • MCRYPT_MARS (libmcrypt > 2.4.x seulement, non-libre)

  • MCRYPT_PANAMA (libmcrypt > 2.4.x seulement)

  • MCRYPT_RIJNDAEL_128 (libmcrypt > 2.4.x seulement)

  • MCRYPT_RIJNDAEL_192 (libmcrypt > 2.4.x seulement)

  • MCRYPT_RIJNDAEL_256 (libmcrypt > 2.4.x seulement)

  • MCRYPT_RC2

  • MCRYPT_RC4 (libmcrypt 2.2.x seulement)

  • MCRYPT_RC6 (libmcrypt > 2.4.x seulement)

  • MCRYPT_RC6_128 (libmcrypt 2.2.x seulement)

  • MCRYPT_RC6_192 (libmcrypt 2.2.x seulement)

  • MCRYPT_RC6_256 (libmcrypt 2.2.x seulement)

  • MCRYPT_SAFER64

  • MCRYPT_SAFER128

  • MCRYPT_SAFERPLUS (libmcrypt > 2.4.x seulement)

  • MCRYPT_SERPENT(libmcrypt > 2.4.x seulement)

  • MCRYPT_SERPENT_128 (libmcrypt 2.2.x seulement)

  • MCRYPT_SERPENT_192 (libmcrypt 2.2.x seulement)

  • MCRYPT_SERPENT_256 (libmcrypt 2.2.x seulement)

  • MCRYPT_SKIPJACK (libmcrypt > 2.4.x seulement)

  • MCRYPT_TEAN (libmcrypt 2.2.x seulement)

  • MCRYPT_THREEWAY

  • MCRYPT_TRIPLEDES (libmcrypt > 2.4.x seulement)

  • MCRYPT_TWOFISH (pour les vieilles versions mcrypt 2.x, ou mcrypt > 2.4.x )

  • MCRYPT_TWOFISH128 (les TWOFISHxxx sont disponibles dans les nouvelles versions 2.x, mais pas dans les versions 2.4.x)

  • MCRYPT_TWOFISH192

  • MCRYPT_TWOFISH256

  • MCRYPT_WAKE (libmcrypt > 2.4.x seulement)

  • MCRYPT_XTEA (libmcrypt > 2.4.x seulement)

Vous devez (mode OFB et OFB) ou pouvez (mode CBC) fournir un vecteur d'initialisation (IV) pour ces modes de chiffrement. IV doit être unique, et avoir la même valeur au chiffrement et au déchiffrement. Pour des données qui seront enregistrées après chiffrement, vous pouvez prendre le résultat d'une fonction telle que MD5, appliquée sur le nom du fichier. Sinon, vous pouvez envoyer IV avec les données chiffrées, (reportez-vous au chapitre 9.3 de Applied Cryptography by Schneier (ISBN 0-471-11709-9) de Schneier (ISBN 0-471-11709-9) pour plus de détails sur le sujet).

Exemples

Mcrypt permet de chiffrer et de déchiffrer en utilisant les méthodes mentionnées ci-dessus. Les 4 commandes importantes mcrypt_cfb(), mcrypt_cbc(), mcrypt_ecb() et mcrypt_ofb()) peuvent toutes opérer en mode MCRYPT_ENCRYPT et MCRYPT_DECRYPT.

Exemple 1. Chiffre une valeur avec un TripleDES, en mode ECB.

<?php
$key = "Cette clé est ultra-secrète";
$input = "Rencontrons-nous dans notre place secrète à 9 h 00.";
$encrypted_data = mcrypt_ecb(MCRYPT_TripleDES, $key, $input, MCRYPT_ENCRYPT);
?>
Cet exemple va retourner les données cryptées dans la variable $encrypted_data.

Si vous avez compilé PHP avec libmcrypt 2.4.x, ces fonctions sont toujours disponibles, mais il est vivement conseillé d'utiliser les nouvelles fonctions avancées.

Exemple 2. Cryptage d'une valeur avec TripleDES sous 2.4.x en mode ECB

<?php

$key = "Ceci est une vraie clé secrète";
$input = "Rendez-vous à 9 heures, dans notre planque.";

$td = mcrypt_module_open(MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);

mcrypt_generic_init($td, $key, $iv);
$encrypted_data = mcrypt_generic($td, $input);
mcrypt_generic_end($td);

?>
Cet exemple va retourner les données cryptées dans la variable $encrypted_data. Pour un exemple complet, voyez mcrypt_module_open().

Table des matières
mcrypt_cbc -- Chiffre/déchiffre des données en mode CBC
mcrypt_cfb -- Chiffre/déchiffre des données en mode CFB
mcrypt_create_iv -- Crée un vecteur d'initialisation à partir d'une source aléatoire
mcrypt_decrypt -- Déchiffre un texte avec les paramètres donnés
mcrypt_ecb -- Obsolète : Chiffre/déchiffre des données en mode ECB
mcrypt_enc_get_algorithms_name -- Retourne le nom de l'algorithme
mcrypt_enc_get_block_size -- Retourne la taille de blocs d'un algorithme
mcrypt_enc_get_iv_size -- Retourne la taille du VI d'un algorithme
mcrypt_enc_get_key_size -- Retourne la taille maximale de la clé pour un mode
mcrypt_enc_get_modes_name -- Retourne le nom du mode
mcrypt_enc_get_supported_key_sizes -- Retourne un tableau contenant les tailles de clés acceptées par un algorithme
mcrypt_enc_is_block_algorithm_mode -- Teste le chiffrement par blocs d'un mode
mcrypt_enc_is_block_algorithm -- Teste le chiffrement par blocs d'un algorithme
mcrypt_enc_is_block_mode -- Teste si le mode retourne les données par blocs
mcrypt_enc_self_test -- Teste un module ouvert
mcrypt_encrypt -- Chiffre un texte
mcrypt_generic_deinit -- Prépare le module pour le déchargement
mcrypt_generic_end -- Termine un chiffrement
mcrypt_generic_init -- Initialise tous les buffers nécessaires
mcrypt_generic -- Chiffre les données
mcrypt_get_block_size -- Retourne la taille de blocs d'un chiffrement
mcrypt_get_cipher_name -- Lit le nom du chiffrement utilisé
mcrypt_get_iv_size -- Retourne la taille du VI utilisé par un couple chiffrement/mode
mcrypt_get_key_size -- Retourne la taille de la clé d'un 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 un algorithme de chiffrement
mcrypt_module_is_block_algorithm_mode -- Indique si un mode fonctionne par blocs
mcrypt_module_is_block_algorithm -- Indique si un algorithme fonctionne par blocs
mcrypt_module_is_block_mode -- Indique si un mode travaille par blocs
mcrypt_module_open -- Ouvre le module de l'algorithme et du mode à utiliser
mcrypt_module_self_test -- Teste un mode
mcrypt_ofb -- Chiffre/déchiffre des données en mode OFB
mdecrypt_generic -- Déchiffre

Précédent | Sommaire | Suivant
mcal_week_of_year | Niveau supérieur | mcrypt_cbc


mcrypt_cbc

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_cbc -- Chiffre/déchiffre des données en mode CBC

Description

string mcrypt_cbc ( int cipher, string key, string data, int mode [, string iv] )

string mcrypt_cbc ( string cipher, string key, string data, int mode [, string iv] )

La première syntaxe utilise libmcrypt 2.2.x, et la seconde libmcrypt 2.4.x. Le paramètre mode doit être MCRYPT_ENCRYPT ou MCRYPT_DECRYPT.

mcrypt_cbc() ne doit plus être utilisée. Vous pouvez la remplacer par mcrypt_generic() et mdecrypt_generic().

Précédent | Sommaire | Suivant
chiffrement mcrypt | Niveau supérieur | mcrypt_cfb


mcrypt_cfb

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_cfb -- Chiffre/déchiffre des données en mode CFB

Description

string mcrypt_cfb ( int cipher, string key, string data, int mode, string iv )

string mcrypt_cfb ( string cipher, string key, string data, int mode [, string iv] )

La première syntaxe utilise libmcrypt 2.2.x, et la seconde libmcrypt 2.4.x. Le paramètre mode doit être MCRYPT_ENCRYPT ou MCRYPT_DECRYPT.

mcrypt_cfb() ne doit plus être utilisée. Vous pouvez la remplacer par mcrypt_generic() et mdecrypt_generic().

Précédent | Sommaire | Suivant
mcrypt_cbc | Niveau supérieur | mcrypt_create_iv


mcrypt_create_iv

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_create_iv -- Crée un vecteur d'initialisation à partir d'une source aléatoire

Description

string mcrypt_create_iv ( int size [, int source] )

mcrypt_create_iv() sert à créer un IV (vecteur d'initialisation).

Le paramètre size détermine la taille de IV, le paramètre source (par défaut, un nombre aléatoire) spécifie la source de IV.

La source peut être MCRYPT_RAND (générateur de nombres aléatoires système), MCRYPT_DEV_RANDOM (lecture des données depuis le fichier /dev/random) et MCRYPT_DEV_URANDOM (lecture des données depuis le fichier /dev/urandom). MCRYPT_RAND est la seule à être supportée sous Windows car Windows (bien sûr) n'a pas de fichier du type /dev/random ou du type /dev/urandom.

Note : Lorsque vous utilisez MCRYPT_RAND, rappelez-vous d'appeler la fonction srand() avant la fonction mcrypt_create_iv() pour initialiser le générateur de nombres aléatoires ; ce n'est pas effectué automatiquement comme c'est le cas pour la fonction rand().

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

Le VI est uniquement une solution alternative pour initialiser les routines de chiffrement. Le VI n'a pas besoin d'être spécifiquement secret, même si c'est mieux. Vous pouvez même l'envoyer avec vos données chiffrées sans perdre de sécurité.

Plus d'informations sont disponibles sur les sites de http://www.ciphersbyritter.com/GLOSSARY.HTM#IV, http://fn2.freenet.edmonton.ab.ca/~jsavard/crypto/co0409.htm et dans le chapitre 9.3 du livre "Applied Cryptography" de Schneier (ISBN 0-471-11709-9).

Précédent | Sommaire | Suivant
mcrypt_cfb | Niveau supérieur | mcrypt_decrypt


mcrypt_decrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_decrypt -- Déchiffre un texte avec les paramètres donnés

Description

string mcrypt_decrypt ( string cipher, string key, string data, string mode [, string iv] )

mcrypt_decrypt() déchiffre les données data et les retourne.

cipher est une constante MCRYPT_ciphername qui indique le nom de l'algorithme sous forme de chaîne.

key est la clé utilisée pour chiffrer les données. Si elle est plus petite que nécessaire, elle sera complétée avec des '\0'.

data sont les données qui doivent être déchiffrées. Si la taille des données n'est pas de la forme n * taille_de_bloc, elles seront complétées avec des '\0'. La valeur retournée peut être plus grande que la valeur d'origine.

mode est une constante MCRYPT_MODE_modename qui peut valoir : "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

iv (Vecteur d'Initialisation) est utilisé pour les modes CBC, CFB, OFB, et dans certains algorithmes de mode STREAM. Si vous ne fournissez pas le VI, alors qu'il est nécessaire, la fonction affichera une alerte, et utilisera un VI composé de caractères '\0'.

Précédent | Sommaire | Suivant
mcrypt_create_iv | Niveau supérieur | mcrypt_ecb


mcrypt_ecb

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_ecb -- Obsolète : Chiffre/déchiffre des données en mode ECB

Description

string mcrypt_ecb ( int cipher, string key, string data, int mode )

string mcrypt_ecb ( string cipher, string key, string data, int mode [, string iv] )

La première syntaxe utilise libmcrypt 2.2.x, et la seconde libmcrypt 2.4.x. Le paramètre mode doit être MCRYPT_ENCRYPT ou MCRYPT_DECRYPT.

mcrypt_ecb() ne doit plus être utilisée. Vous pouvez la remplacer par mcrypt_generic() et mdecrypt_generic().

Précédent | Sommaire | Suivant
mcrypt_decrypt | Niveau supérieur | mcrypt_enc_get_algorithms_name


mcrypt_enc_get_algorithms_name

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_algorithms_name -- Retourne le nom de l'algorithme

Description

string mcrypt_enc_get_algorithms_name ( resource td )

mcrypt_enc_get_algorithms_name() retourne le nom de l'algorithme désigné par td.

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

Précédent | Sommaire | Suivant
mcrypt_ecb | Niveau supérieur | mcrypt_enc_get_block_size


mcrypt_enc_get_block_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_block_size -- Retourne la taille de blocs d'un algorithme

Description

int mcrypt_enc_get_block_size ( resource td )

mcrypt_enc_get_block_size() retourne la taille de blocs d'un algorithme, en octets.

Précédent | Sommaire | Suivant
mcrypt_enc_get_algorithms_name | Niveau supérieur | mcrypt_enc_get_iv_size


mcrypt_enc_get_iv_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_iv_size -- Retourne la taille du VI d'un algorithme

Description

int mcrypt_enc_get_iv_size ( resource td )

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

Précédent | Sommaire | Suivant
mcrypt_enc_get_block_size | Niveau supérieur | mcrypt_enc_get_key_size


mcrypt_enc_get_key_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_key_size -- Retourne la taille maximale de la clé pour un mode

Description

int mcrypt_enc_get_key_size ( resource td )

mcrypt_enc_get_key_size() retourne la taille maximale de clé acceptée par le mode désigné par td, en octets.

Précédent | Sommaire | Suivant
mcrypt_enc_get_iv_size | Niveau supérieur | mcrypt_enc_get_modes_name


mcrypt_enc_get_modes_name

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_modes_name -- Retourne le nom du mode

Description

string mcrypt_enc_get_modes_name ( resource td )

mcrypt_enc_get_modes_name() retourne le nom du mode désigné par td.

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

Précédent | Sommaire | Suivant
mcrypt_enc_get_key_size | Niveau supérieur | mcrypt_enc_get_supported_key_sizes


mcrypt_enc_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_supported_key_sizes -- Retourne un tableau contenant les tailles de clés acceptées par un algorithme

Description

array mcrypt_enc_get_supported_key_sizes ( resource td )

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

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

Précédent | Sommaire | Suivant
mcrypt_enc_get_modes_name | Niveau supérieur | mcrypt_enc_is_block_algorithm_mode


mcrypt_enc_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_algorithm_mode -- Teste le chiffrement par blocs d'un mode

Description

bool mcrypt_enc_is_block_algorithm_mode ( resource td )

mcrypt_enc_is_block_algorithm_mode() retourne TRUE si ce mode utilise des algorithmes par blocs, et FALSE sinon. (i.e. FALSE pour stream, et TRUE pour cbc, cfb, ofb).

Précédent | Sommaire | Suivant
mcrypt_enc_get_supported_key_sizes | Niveau supérieur | mcrypt_enc_is_block_algorithm


mcrypt_enc_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_algorithm -- Teste le chiffrement par blocs d'un algorithme

Description

bool mcrypt_enc_is_block_algorithm ( resource td )

mcrypt_enc_is_block_algorithm() retourne TRUE si l'algorithme utilisé est un algorithme par blocs, et FALSE si c'est un algorithme par flux.

Précédent | Sommaire | Suivant
mcrypt_enc_is_block_algorithm_mode | Niveau supérieur | mcrypt_enc_is_block_mode


mcrypt_enc_is_block_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_mode -- Teste si le mode retourne les données par blocs

Description

bool mcrypt_enc_is_block_mode ( resource td )

mcrypt_enc_is_block_mode() retourne TRUE si le mode retourne des blocs d'octets, ou bien FALSE s'il retourne des octets (par flux). (i.e. TRUE pour cbc et ecb, et FALSE pour cfb et stream).

Précédent | Sommaire | Suivant
mcrypt_enc_is_block_algorithm | Niveau supérieur | mcrypt_enc_self_test


mcrypt_enc_self_test

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_self_test -- Teste un module ouvert

Description

int mcrypt_enc_self_test ( resource td )

mcrypt_enc_self_test() effectue un test du module ouvert et désigné par td. Si le test est concluant, elle retourne FALSE, sinon TRUE.

Précédent | Sommaire | Suivant
mcrypt_enc_is_block_mode | Niveau supérieur | mcrypt_encrypt


mcrypt_encrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_encrypt -- Chiffre un texte

Description

string mcrypt_encrypt ( string cipher, string key, string data, string mode [, string iv] )

mcrypt_encrypt() chiffre les données, et retourne les données cryptées.

cipher est une constante MCRYPT_ciphername qui indique le nom de l'algorithme sous forme de chaîne.

key est la clé utilisée pour chiffrer les données. Si elle est plus petite que nécessaire, elle sera complétée avec des '\0'.

data sont les données qui doivent être encryptées. Si la taille des données n'est pas de la forme n * taille_de_bloc, elles seront complétées avec des '\0'. La valeur retournée peut être plus grande que la valeur d'origine.

mode est une constante MCRYPT_MODE_modename qui peut valoir : "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

iv (Vecteur d'Initialisation) est utilisé pour les modes CBC, CFB, OFB, et dans certains algorithmes de mode STREAM. Si vous ne fournissez pas le VI, alors qu'il est nécessaire, la fonction affichera une alerte, et utilisera un vecteur d'initialisation composé de caractères '\0'.

Exemple 1. Exemple avec mcrypt_encrypt()

<?php
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
$key = 'Ceci est une clé secrète';

$text = 'Rencontrons-nous à 11 heures, derrière le monument';
echo strlen($text) . "\n";

$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
echo strlen($crypttext) . "\n";
?>

L'exemple ci-dessus va afficher :

42
64

Voir aussi mcrypt_module_open() pour une meilleure API et un exemple.

Précédent | Sommaire | Suivant
mcrypt_enc_self_test | Niveau supérieur | mcrypt_generic_deinit


mcrypt_generic_deinit

(PHP 4 >= 4.1.1, PHP 5)

mcrypt_generic_deinit -- Prépare le module pour le déchargement

Description

bool mcrypt_generic_deinit ( resource td )

mcrypt_generic_deinit() 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). Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Pour un exemple, voir mcrypt_module_open() et l'entrée sur mcrypt_generic_init().

Précédent | Sommaire | Suivant
mcrypt_encrypt | Niveau supérieur | mcrypt_generic_end


mcrypt_generic_end

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_end -- Termine un chiffrement

Description

bool mcrypt_generic_end ( resource td )

Avertissement

Cette fonction est obsolète, utilisez mcrypt_generic_deinit() à la place. Elle peut causer des crashes lorsqu'elle est utilisée avec mcrypt_module_close() à cause d'une multitude de tampons libres.

mcrypt_generic_end() termine le chiffrement désigné par le pointeur td. En fait, elle supprime tous les buffers, et ferme les modules utilisés. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
mcrypt_generic_deinit | Niveau supérieur | mcrypt_generic_init


mcrypt_generic_init

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_init -- Initialise tous les buffers nécessaires

Description

int mcrypt_generic_init ( resource td, string key, string iv )

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

La fonction 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, un warning est affiché. FALSE est retourné si des paramètres incorrects sont passés à la fonction.

Vous devez appeler mcrypt_generic_init()
avant chaque appel à mcrypt_generic() ou
mdecrypt_generic().

Pour un exemple, voir mcrypt_module_open().

Précédent | Sommaire | Suivant
mcrypt_generic_end | Niveau supérieur | mcrypt_generic


mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic -- Chiffre les données

Description

string mcrypt_generic ( resource td, string data )

mcrypt_generic() chiffre les données data. Les données sont complétées par des "\0" pour obtenir une taille multiple de la taille d'un bloc. Elle retourne les données chiffrées. Notez que la longueur de la chaîne retournée peut être plus longue que celle passée en argument, à cause du complément.

Si vous voulez enregistrer les données chiffrées dans une base de données assurez-vous d'enregistrer la chaîne entière retournée par cette fonction, sinon la chaîne ne sera pas décryptée correctement. Si votre chaîne d'origine comporte 10 caractères et que la taille d'un bloc est de 8 (utilisez mcrypt_enc_get_block_size() pour déterminer cette taille), vous aurez besoin d'au moins 16 caractères dans le champ de votre base de données. Notez que la chaîne retournée par mdecrypt_generic() aura 16 caractères de long... utilisez rtrim($str, "\0") pour supprimer le complément.

Par exemple, si vous enregistrez les données dans une base de données MySQL, souvenez-vous que les champs de type varchar suppriment automatiquement les espaces en trop durant l'insertion. Comme les données encryptées peuvent se terminer avec un espace (ASCII 32), les données seront endomagées par cette suppression. Stockez les données dans un champ tinyblob/tinytext (ou plus grand) pour que tout fonctionne normalement.

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.

Voir aussi
mdecrypt_generic(),
mcrypt_generic_init() et
mcrypt_generic_deinit().

Précédent | Sommaire | Suivant
mcrypt_generic_init | Niveau supérieur | mcrypt_get_block_size


mcrypt_get_block_size

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_get_block_size -- Retourne la taille de blocs d'un chiffrement

Description

int mcrypt_get_block_size ( int cipher )

int mcrypt_get_block_size ( string cipher, string module )

mcrypt_get_block_size() sert à lire la taille de blocs du chiffrement cipher (en combinaison avec un mode de chiffrement).

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.

Il est mieux de se servir de la fonction mcrypt_enc_get_block_size() comme elle utilise la ressource retournée par mcrypt_module_open().

Cet exemple montre comment utiliser cette fonction lorsque PHP est compilé avec libmcrypt 2.4.x et 2.5.x.

Exemple 1. Exemple avec mcrypt_get_block_size()

<?php
echo mcrypt_get_block_size ('tripledes', 'ecb'); // 8
?>

Voir aussi mcrypt_get_key_size() et mcrypt_encrypt().

Précédent | Sommaire | Suivant
mcrypt_generic | Niveau supérieur | mcrypt_get_cipher_name


mcrypt_get_cipher_name

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_get_cipher_name -- Lit le nom du chiffrement utilisé

Description

string mcrypt_get_cipher_name ( int cipher )

string mcrypt_get_cipher_name ( string cipher )

mcrypt_get_cipher_name() retourne le nom du chiffrement utilisé.

mcrypt_get_cipher_name() prend le numéro de chiffrement (avec libmcrypt 2.2.x) ou prend le nom du chiffrement (avec libmcrypt 2.4.x) comme paramètre, et retourne le nom du chiffrement, ou FALSE, s'il n'existe pas.

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

Précédent | Sommaire | Suivant
mcrypt_get_block_size | Niveau supérieur | mcrypt_get_iv_size


mcrypt_get_iv_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_get_iv_size -- Retourne la taille du VI utilisé par un couple chiffrement/mode

Description

int mcrypt_get_iv_size ( string cipher, string mode )

mcrypt_get_iv_size() retourne la taille du Vecteur d'initialisation (VI). En cas d'erreur, la fonction retourne FALSE. Si le VI est ignoré dans le couple chiffrement/mode demandé, zéro est retourné.

cipher est une constante MCRYPT_ciphername qui indique le nom de l'algorithme sous forme de chaîne.

mode est une constante MCRYPT_MODE_modename qui peut valoir : "ecb", "cbc", "cfb", "ofb", "nofb" ou "stream".

It est plus facile de servir de la fonction mcrypt_enc_get_iv_size() car elle utilise la ressource retournée par mcrypt_module_open().

Exemple 1. Exemple avec mcrypt_get_block_size()

<?php

$size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB);
$size = mcrypt_get_iv_size('des', 'ecb');

?>

Voir aussi
mcrypt_get_block_size(),
mcrypt_enc_get_iv_size() et
mcrypt_create_iv().

Précédent | Sommaire | Suivant
mcrypt_get_cipher_name | Niveau supérieur | mcrypt_get_key_size


mcrypt_get_key_size

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_get_key_size -- Retourne la taille de la clé d'un chiffrement

Description

int mcrypt_get_key_size ( int cipher )

int mcrypt_get_key_size ( string cipher, string module )

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.

mcrypt_get_block_size() prend comme argument le chiffrement cipher et retourne une taille en octets.

Cet exemple illustre comment utiliser cette fonction avec les deux bibliothèques libmcrypt 2.4.x et 2.5.x. Il est plus facile de se servir de la fonction mcrypt_enc_get_key_size() comme elle utilise la ressource retournée par mcrypt_module_open().

Exemple 1. Exemple avec mcrypt_get_block_size()

<?php
echo mcrypt_get_key_size ('tripledes', 'ecb'); // 24
?>

Voir aussi
mcrypt_get_block_size(),
mcrypt_end_get_key_size() et
mcrypt_encrypt().

Précédent | Sommaire | Suivant
mcrypt_get_iv_size | Niveau supérieur | mcrypt_list_algorithms


mcrypt_list_algorithms

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_list_algorithms -- Liste tous les algorithmes de chiffrement supportés

Description

array mcrypt_list_algorithms ( [string lib_dir] )

mcrypt_list_algorithms() sert à lister tous les algorithmes de chiffrement de lib_dir.

mcrypt_list_algorithms() prend un argument optionnel, qui spécifie le dossier qui contient tous les algorithmes. S'il est omis, la valeur de mcrypt.algorithms_dir dans php.ini est utilisée.

Exemple 1. Exemple avec mcrypt_list_algorithms()

<?php
$algorithms = mcrypt_list_algorithms("/usr/local/lib/libmcrypt");
foreach ($algorithms as $cipher) {
   echo $cipher."\n";
}
?>

L'exemple ci-dessus va afficher tous les algorithmes supportés dans le dossier "/usr/local/lib/libmcrypt".

Précédent | Sommaire | Suivant
mcrypt_get_key_size | Niveau supérieur | mcrypt_list_modes


mcrypt_list_modes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_list_modes -- Liste tous les modes de chiffrement supportés

Description

array mcrypt_list_modes ( [string lib_dir] )

mcrypt_list_algorithms() sert à lister tous les modes de chiffrement de lib_dir.

mcrypt_list_algorithms() prend un argument optionnel, qui spécifie le dossier qui contient tous les algorithmes. S'il est omis, la valeur de mcrypt.algorithms_dir dans php.ini est utilisée.

Exemple 1. Exemple avec mcrypt_list_modes()

<?php
$modes = mcrypt_list_modes();
foreach ($modes as $mode) {
  echo $mode . "<br />";
}
?>

L'exemple ci-dessus va afficher tous les modes supportés dans le dossier par défaut. Si la directive mcrypt.modes_dir n'est pas définie, le dossier par défaut de mcrypt est utilisé "/usr/local/lib/libmcrypt".

Précédent | Sommaire | Suivant
mcrypt_list_algorithms | Niveau supérieur | mcrypt_module_close


mcrypt_module_close

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_close -- Décharge le module de chiffrement

Description

bool mcrypt_module_close ( resource td )

mcrypt_module_close() décharge le module td.

Voir mcrypt_module_open().

Précédent | Sommaire | Suivant
mcrypt_list_modes | Niveau supérieur | mcrypt_module_get_algo_block_size


mcrypt_module_get_algo_block_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_algo_block_size -- Retourne la taille de blocs d'un algorithme

Description

int mcrypt_module_get_algo_block_size ( string algorithm [, string lib_dir] )

mcrypt_module_get_algo_block_size() retourne la taille de blocs d'un algorithme, en octets. Le paramètre optionnel lib_dir contient le chemin jusqu'au module de l'algorithme sur le système.

Précédent | Sommaire | Suivant
mcrypt_module_close | Niveau supérieur | mcrypt_module_get_algo_key_size


mcrypt_module_get_algo_key_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_algo_key_size -- Retourne la taille maximale de clé

Description

int mcrypt_module_get_algo_key_size ( string algorithm [, string lib_dir] )

mcrypt_module_get_algo_key_size() retourne la taille maximale de la clé supportée par l'algorithme algorithm. Le paramètre optionnel lib_dir contient le chemin jusqu'au module de l'algorithme sur le système.

Précédent | Sommaire | Suivant
mcrypt_module_get_algo_block_size | Niveau supérieur | mcrypt_module_get_supported_key_sizes


mcrypt_module_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_supported_key_sizes -- Retourne un tableau contenant les tailles de clés supportées par un algorithme de chiffrement

Description

array mcrypt_module_get_supported_key_sizes ( string algorithm [, string lib_dir] )

mcrypt_module_get_supported_key_sizes() 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. Le paramètre optionnel lib_dir peut contenir le chemin du dossier d'installation du module, sur le système.

Voir aussi mcrypt_enc_get_supported_key_sizes() qui est utilisée pour ouvrir les modules de chiffrement.

Précédent | Sommaire | Suivant
mcrypt_module_get_algo_key_size | Niveau supérieur | mcrypt_module_is_block_algorithm_mode


mcrypt_module_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_algorithm_mode -- Indique si un mode fonctionne par blocs

Description

bool mcrypt_module_is_block_algorithm_mode ( string mode [, string lib_dir] )

mcrypt_module_is_block_algorithm_mode() retourne TRUE si le mode doit être utilisé avec un algorithme par bloc, sinon retourne 0 (i.e. 0 pour stream, et 1 pour cbc, cfb, ofb). Le paramètre optionnel lib_dir contient le chemin jusqu'au module de l'algorithme sur le système.

Précédent | Sommaire | Suivant
mcrypt_module_get_supported_key_sizes | Niveau supérieur | mcrypt_module_is_block_algorithm


mcrypt_module_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_algorithm -- Indique si un algorithme fonctionne par blocs

Description

bool mcrypt_module_is_block_algorithm ( string algorithm [, string lib_dir] )

mcrypt_module_is_block_algorithm() retourne TRUE si algorithm est un algorithme par blocs, sinon retourne 0. Le paramètre optionnel lib_dir contient le chemin jusqu'au module de l'algorithme sur le système.

Précédent | Sommaire | Suivant
mcrypt_module_is_block_algorithm_mode | Niveau supérieur | mcrypt_module_is_block_mode


mcrypt_module_is_block_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_mode -- Indique si un mode travaille par blocs

Description

bool mcrypt_module_is_block_mode ( string mode [, string lib_dir] )

mcrypt_module_is_block_mode() retourne TRUE si ce mode fournit des blocs d'octets ou un flux d'octets. (i.e. 1 pour cbc et ecb, et 0 pour cfb et stream). Le paramètre optionnel lib_dir contient le chemin jusqu'au module de l'algorithme sur le système.

Précédent | Sommaire | Suivant
mcrypt_module_is_block_algorithm | Niveau supérieur | mcrypt_module_open


mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_open -- Ouvre le module de l'algorithme et du mode à utiliser

Description

resource mcrypt_module_open ( string algorithm, string algorithm_directory, string mode, string mode_directory )

mcrypt_module_open() ouvre le module de l'algorithme et du mode à utiliser. Le nom de l'algorithme est spécifié par le paramètre algorithm (par exemple : "twofish"), ou bien une des constantes MCRYPT_ciphername. La bibliothèque est refermée en appelant mcrypt_module_close, mais il n'est pas nécessaire d'appeler cette fonction si mcrypt_generic_end() est utilisé. Normalement, mcrypt_module_open() retourne un pointeur de cryptage, ou bien FALSE en cas d'erreur.

algorithm_directory et mode_directory servent à repérer les modules de cryptage. Si vous fournissez un nom de dossier, il sera utilisé. Si vous passez une chaîne vide (""), la valeur utilisé par mcrypt.algorithms_dir ou mcrypt.modes_dir sera celle indiquée dans les directives de configuration. Lorsque ces paramètres ne sont pas fournis les valeurs par défaut, compilées avec la bibliothèque, sont utilisées. (Généralement /usr/local/lib/libmcrypt.)

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', '');
?>
L'exemple ci-dessus va essayer d'ouvrir le module de chiffrement par DES, dans le dossier par défaut, et le mode EBC dans le dossier /usr/lib/mcrypt-modes.

Exemple 2. Utilisation de mcrypt_module_open() pour encrypter

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

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

Voir aussi
mcrypt_module_close(),
mcrypt_generic(),
mdecrypt_generic(),
mcrypt_generic_init() et
mcrypt_generic_deinit().

Précédent | Sommaire | Suivant
mcrypt_module_is_block_mode | Niveau supérieur | mcrypt_module_self_test


mcrypt_module_self_test

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_self_test -- Teste un mode

Description

bool mcrypt_module_self_test ( string algorithm [, string lib_dir] )

mcrypt_module_self_test() effectue un test sur l'algorithme spécifié. Le paramètre optionnel lib_dir contient le chemin jusqu'au module de l'algorithme sur le système.

mcrypt_module_self_test() retourne TRUE si le test fonctionne, et FALSE sinon.

Exemple 1. Exemple avec mcrypt_module_self_test()

<?php
var_dump(mcrypt_module_self_test(MCRYPT_RIJNDAEL_128));
var_dump(mcrypt_module_self_test(MCRYPT_BOGUS_CYPHER));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Précédent | Sommaire | Suivant
mcrypt_module_open | Niveau supérieur | mcrypt_ofb


mcrypt_ofb

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_ofb -- Chiffre/déchiffre des données en mode OFB

Description

string mcrypt_ofb ( int cipher, string key, string data, int mode, string iv )

string mcrypt_ofb ( string cipher, string key, string data, int mode [, string iv] )

La première syntaxe utilise libmcrypt 2.2.x, et la seconde libmcrypt 2.4.x. Le paramètre mode doit être MCRYPT_ENCRYPT ou MCRYPT_DECRYPT.

mcrypt_ofb() ne doit plus être utilisée. Vous pouvez la remplacer par mcrypt_generic() et mdecrypt_generic().

Précédent | Sommaire | Suivant
mcrypt_module_self_test | Niveau supérieur | mdecrypt_generic


mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mdecrypt_generic -- Déchiffre

Description

string mdecrypt_generic ( resource td, string data )

mdecrypt_generic() 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 "\0".

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(),
mcrypt_generic_init() et
mcrypt_generic_deinit().

Précédent | Sommaire | Suivant
mcrypt_ofb | Niveau supérieur | Fonctions de paiement MCVE (Monetra)


Fonctions de paiement MCVE (Monetra)

Manuel PHP
Précédent Suivant

LXXXV. Fonctions de paiement MCVE (Monetra)

Introduction

Ces fonctions font l'interface avec l'API (libmonetra, anciennement connue sous le nom de libmcve) MCVE (Monetra), et permettent l'accès direct aux fonctions MCVE/Monetra depuis les scripts PHP. MCVE/Monetra est la solution de paiement en ligne de Main Street Softworks pour Linux/Unix/MacOSX/Windows (http://www.mainstreetsoftworks.com/) qui permet de traiter des cartes de crédits, de débit et cartes cadeaux. Il vous permet d'utiliser directement le numéro de carte de crédit, et de l'envoyer à la maison de paiement via votre serveur Unix, avec connexion modem ou internet : il permet de vous passer de services comme Authorize.Net ou Pay Flow Pro). En utilisant le module MCVE/Monetra de PHP, vous pouvez traiter des cartes de crédit directement depuis vos scripts PHP. La référence suivante va vous décrire le processus.

Note : MCVE/Monetra est la solution de remplacement pour le module de RedHat CCVS. Ils ont conclu un accord avec RedHat à la fin de l'année 2001 pour migrer tous leurs clients vers la plateforme MCVE.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Installation

Pour activer le support MCVE (Monetra) de PHP commencez par vérifier si la bibliothèque LibMontera (anciennement libmcve) est installée. Si vous compilez le support MCVE/Monetra directement dans PHP, vous devrez configurer PHP avec l'option --with-mcve. Si vous utilisez cette option sans spécifiez le chemin d'accès de votre installation de libmonetra, PHP tentera de rechercher dans l'emplacement par défaut de l'installation de LibMonetra (/usr/local). Si Monetra (MCVE) est dans un emplacement non standard, exécutez la configuration avec : --with-mcve=$mcve_path, où $mcve_path est le chemin menant à votre installation de MCVE/Monetra. Veuillez noter que le support MCVE/Monetra requiert que $mcve_path/lib et $mcve_path/include existent et incluent mcve.h ou monetra.h dans le répertoire include et libmcve.so et/ou libmcve.a et/ou libmonetra.a dans le répertoire lib.

Si vous voulez installer le support MCVE/Monetra en tant que module, vous pouvez le faire en utilisant les bibliothèques PECL et taper la commande 'pecl install mcve' si vous utilisez une version de PEAR au moins de 1.4.0.

Comme MCVE/Monetra vient avec une véritable séparation client/serveur, il n'y a pas de pré-requis supplémentaires pour compiler PHP avec le support MCVE. Pour tester votre extension MCVE/Monetra avec PHP, connectez-vous au site testbox.monetra.com sur le port 8333 pour le mode IP, ou le port 8444 pour le mode SSL en utilisant l'API PHP MCVE/Monetra. Utilisez 'vitale' comme nom d'utilisateur et 'test' comme mot de passe. Plus de détails sur ce système de test sont disponibles sur http://www.mainstreetsoftworks.com/.

Voir aussi

Plus de documentation sur l'API PHP de MCVE/Monetra est disponible à http://www.mainstreetsoftworks.com/documentation.html. La documentation éditée par Main Street est complète et est la source primaire d'informations.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

M_PENDING (entier)

M_DONE (entier)

M_ERROR (entier)

M_FAIL (entier)

M_SUCCESS (entier)

Table des matières
m_checkstatus -- Vérifie si la transaction a été complétée
m_completeauthorizations -- Nombre d'autorisations complètes en attente, retourne un tableau de leur identifiant
m_connect -- Établit une connexion à MCVE
m_connectionerror -- Obtient une représentation textuelle de la cause de l'échec de connexion
m_deletetrans -- Supprime une transaction spécifiée de la structure MCVE_CONN
m_destroyconn -- Détruit la connexion et la structure MCVE_CONN
m_destroyengine -- Libère la mémoire associée avec la connectivité IP/SSL
m_getcell -- Récupère une cellule spécifique d'une réponse délimitée par virgule avec le nom de colonne
m_getcellbynum -- Récupère une cellule spécifique d'une réponse délimitée par virgule avec le numéro de colonne
m_getcommadelimited -- Récupère les données brutes délimitées par virgule retournées par MCVE
m_getheader -- Récupère le nom de la colonne dans la réponse délimitée par virgule
m_initconn -- Crée et initialise une structure MCVE_CONN
m_initengine -- Apprête le client pour Communication IP/SSL
m_iscommadelimited -- Vérifie si la réponse est délimitée par virgule
m_maxconntimeout -- Le temps maximal que l'API tentera une connexion à MCVE
m_monitor -- Effectue une communication avec MCVE (envoi/réception de données) en mode non-bloquant
m_numcolumns -- Nombre de colonnes retournées dans une réponse délimitée par virgule
m_numrows -- Nombre de lignes retournés dans une réponse délimitée par virgule
m_parsecommadelimited -- Analyse la réponse délimitée par virgule alors m_getcell, etc. fonctionnera
m_responsekeys -- Retourne un tableau de chaînes de caractères qui représente les clés qui peuvent être utilisées en tant que paramètres de réponse sur cette transaction
m_responseparam -- Récupère un paramètre spécial de réponse
m_returnstatus -- Vérifie si la transaction fut complétée correctement
m_setblocking -- Fixe le mode bloquant/non-bloquant pour une connexion
m_setdropfile -- Fixe la méthode de connexion à Drop-File
m_setip -- Fixe la méthode de connexion à IP
m_setssl_cafile -- Fixe le fichier SSL CA (Certificate Authority) pour vérification du certificat du serveur
m_setssl_files -- Fixe les fichiers de clé de certificat et certifie si le serveur requiert la vérification du client par certificat
m_setssl -- Fixe la méthode de connexion à SSL
m_settimeout -- Fixe le temps maximal d'une transaction (par transaction)
m_sslcert_gen_hash -- Génère une clé de hachage pour les vérifications de certificat de client SSL
m_transactionssent -- Vérifie si le tampon de sortie est vide
m_transinqueue -- Nombre de transactions dans la file de client
m_transkeyval -- Ajoute une paire clé/valeur d'une transaction. Replace transparam() dépréciée
m_transnew -- Démarre une nouvelle transaction
m_transsend -- Finalise et envoie la transaction
m_uwait -- Attend x micro secondes
m_validateidentifier -- Valide ou non l'identifiant passé sur n'importe quelle transaction qu'il est passé
m_verifyconnection -- Ping ou non sur la connexion pour la vérifier
m_verifysslcert -- Vérifie ou non le certificat du serveur SSL

Précédent | Sommaire | Suivant
mdecrypt_generic | Niveau supérieur | m_checkstatus


Fonctions Memcache

Manuel PHP
Précédent Suivant

LXXXVI. Fonctions Memcache

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.

Plus d'informations concernant Memcache peuvent être consultées sur http://www.danga.com/memcached/.

Pré-requis

Ce module utilise les fonctions de la bibliothèque zlib pour supporter la compression des données à la volée. Zlib est donc requis pour installer ce module.

PHP 4.3.3 ou supérieur est requis pour utiliser l'extension Memcache.

Installation

Cette extension PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/memcache.

Pour utiliser ces fonctions, vous devez compiler PHP avec le support MemCache en utilisant l'option de configuration --enable-memcache[=DIR].

Les utilisateurs de Windows doivent activer la bibliothèque php_memcache.dll dans le php.ini pour pouvoir utiliser ces fonctions. La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration Memcache

Nom | Défaut | Modifiable | Changelog
memcache.allow_failover | "1" | PHP_INI_ALL | Disponible depuis Memcache 2.0.2
memcache.max_failover_attempts | "20" | PHP_INI_ALL | Disponible depuis Memcache 2.1.0
memcache.chunk_size | "8192" | PHP_INI_ALL | Disponible depuis Memcache 2.0.2
memcache.default_port | "11211" | PHP_INI_ALL | Disponible depuis Memcache 2.0.2
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

memcache.allow_failover booléen

Si l'on doit basculer sur d'autres serveurs en cas d'erreur.

memcache.max_failover_attempts entier

Définit combien de serveurs à essayer lorsque l'on fixe ou récupère des données. Utilisez seulement en conjonction avec memcache.allow_failover.

memcache.chunk_size entier

Les données doivent être transférées en morceaux de cette taille ; Configurer cette valeur à une petite valeur provoque plus d'écritures sur le réseau. Essayez d'augmenter cette valeur à 32768 si vous rencontrez des ralentissements inexplicables.

memcache.default_port chaîne de caractères

Le numéro du port TCP par défaut à utiliser lors de la connexion au serveur memcache si aucun autre port n'est spécifié.

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

Tableau 2. Constantes MemCache

Nom | Description
MEMCACHE_COMPRESSED (entier) | Utilisée pour activer à la volée la compression des données avec les fonctions Memcache::set(), Memcache::add() et Memcache::replace().

Exemples

Exemple 1. Exemple avec l'extension Memcache

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

?>

Dans l'exemple ci-dessus, un objet est sauvegardé dans le cache et ensuite, affiché. Les objets ainsi que les autres types non-scalaires sont linéarisés avant d'être sauvegardé ; il est donc impossible d'y stocker des ressources (i.e. identifiant de connexion et autres) dans le cache.

Table des matières
Memcache::add -- Ajout d'un élément au serveur
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_debug -- Active ou non l'affichage des informations de débogage
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

Précédent | Sommaire | Suivant
m_verifysslcert | Niveau supérieur | Memcache::add


Memcache::add

(no version information, might be only in CVS)

Memcache::add -- Ajout d'un élément au serveur

Description

bool Memcache::add ( string key, mixed var [, int flag [, int expire]] )

Memcache::add() enregistre la variable var avec la clé key seulement si cette clé n'existe pas encore sur le serveur. Vous pouvez également utiliser la fonction Memcache_add().

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, FALSE en cas d'échec. Retourne FALSE si cette clé existe déjà. Pour le reste, la fonction Memcache::add() se comporte de façon similaire à la fonction Memcache::set().

Exemples

Exemple 1. Exemple avec Memcache::add()

<?php

$memcache_obj = memcache_connect("localhost", 11211);

/* API procédurale */
memcache_add($memcache_obj, 'var_key', 'test variable', false, 30);

/* API orientée objet */
$memcache_obj->add('var_key', 'test variable', false, 30);

?>

Voir aussi

Memcache::set()
Memcache::replace()

Précédent | Sommaire | Suivant
Fonctions Memcache | Niveau supérieur | Memcache::addServer


Memcache::close

(no version information, might be only in CVS)

Memcache::close -- Ferme la connexion avec le serveur Memcache

Description

bool Memcache::close ( void )

Memcache::close() ferme la connexion au serveur Memcache. Cette fonction ne ferme pas les connexions persistantes qui seront fermées uniquement lors du redémarrage du serveur web. Vous pouvez également utiliser la fonction memcache_close().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
Memcache::pconnect()

Précédent | Sommaire | Suivant
Memcache::addServer | Niveau supérieur | Memcache::connect


Memcache::connect

(no version information, might be only in CVS)

Memcache::connect -- Ouvre une connexion avec le serveur Memcache

Description

bool Memcache::connect ( string host [, int port [, int timeout]] )

Memcache::connect() établie une connexion avec le serveur de cache Memcache. La connexion, qui a été ouverte en utilisant la fonction Memcache::connect() sera automatiquement fermée à la fin de votre script. Vous pouvez néanmoins la refermer en utilisant la fonction Memcache::close(). Vous pouvez également utiliser la fonction memcache_connect().

Liste de paramètres

host

Pointe à l'hôte où memcache écoute pour des connexions.

port

Pointe au port où memcache écoute pour des connexions.

timeout

Valeur en seconde qui sera utilisée pour se connecter au daemon. 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, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec Memcache::connect()

<?php

/* API procédurale */

$memcache_obj = memcache_connect('memcache_host', 11211);

/* API orientée objet */

$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);

?>

Voir aussi

Memcache::pconnect()
Memcache::close()

Précédent | Sommaire | Suivant
Memcache::close | Niveau supérieur | memcache_debug


memcache_debug

(PECL)

memcache_debug -- Active ou non l'affichage des informations de débogage

Description

bool memcache_debug ( bool on_off )

memcache_debug() active l'affichage des informations de débogage 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.

Précédent | Sommaire | Suivant
Memcache::connect | Niveau supérieur | Memcache::decrement


Memcache::decrement

(no version information, might be only in CVS)

Memcache::decrement -- Décrémente la valeur d'un élément

Description

int Memcache::decrement ( string key [, int value] )

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.

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. Optionnel et vaut par défaut 1.

Valeurs de retour

Retourne la valeur du nouvel élément en cas de succès ou FALSE en cas d'échec.

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()
Memcache::replace()

Précédent | Sommaire | Suivant
memcache_debug | Niveau supérieur | Memcache::delete


Memcache::delete

(no version information, might be only in CVS)

Memcache::delete -- Efface un élément du serveur de cache

Description

bool Memcache::delete ( string key [, int timeout] )

Memcache::delete() efface l'élément identifié par la clé key. Si le paramètre timeout est spécifié, l'élément expirera après timeout secondes. Vous pouvez également utiliser la fonction memcache_delete().

Liste de paramètres

key

timeout

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec Memcache::delete()

<?php

/* API procédurale */
$memcache_obj = memcache_connect('memcache_host', 11211);

/* après 10 secondes, l'élément sera effacé par la serveur de cache */
memcache_delete($memcache_obj, 'key_to_delete', 10);

/* API orientée objet */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->delete('key_to_delete', 10);

?>

Voir aussi

Memcache::set()
Memcache::replace()

Précédent | Sommaire | Suivant
Memcache::decrement | Niveau supérieur | Memcache::flush


Memcache::flush

(no version information, might be only in CVS)

Memcache::flush -- Efface tous les éléments existant sur le serveur de cache

Description

bool Memcache::flush ( void )

Memcache::flush() invalide immédiatement tous les éléments existant sur le serveur de cache. Memcache::flush() ne libère aucune ressource actuellement, il marque uniquement tous les éléments comme ayant expirés, donc la mémoire occupée sera réutilisée avec de nouveaux éléments. Vous pouvez également utiliser la fonction memcache_flush().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

?>

Précédent | Sommaire | Suivant
Memcache::delete | Niveau supérieur | Memcache::get


Memcache::get

(no version information, might be only in CVS)

Memcache::get -- Récupère un élément du serveur de cache

Description

string Memcache::get ( string key )

array Memcache::get ( array keys )

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

Valeurs de retour

Retourne une chaîne de caractères associée avec le paramètre key ou FALSE en cas d'échec ou si key n'a pas été trouvé.

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

?>

Précédent | Sommaire | Suivant
Memcache::flush | Niveau supérieur | Memcache::getExtendedStats


Memcache::getStats

(no version information, might be only in CVS)

Memcache::getStats -- Lit les statistiques du serveur

Description

array Memcache::getStats ( [string type [, int slabid [, int limit]]] )

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ébogage.

limit

Utilisé avec le paramètre type définit à cachedump pour limiter le nombre d'entrées à récupérer. La valeur par défaut vaut 100.

Valeurs de retour

Retourne un tableau associatif des statistiques d'un serveur ou FALSE en cas d'erreur.

Voir aussi

Memcache::getVersion()
Memcache::getExtendedStats()

Précédent | Sommaire | Suivant
Memcache::getServerStatus | Niveau supérieur | Memcache::getVersion


Memcache::getVersion

(no version information, might be only in CVS)

Memcache::getVersion -- Retourne le numéro de version du serveur

Description

string Memcache::getVersion ( void )

Memcache::getVersion() retourne une chaîne avec le numéro de version du serveur. Vous pouvez aussi utiliser la fonction memcache_get_version().

Valeurs de retour

Retourne une chaîne de caractères du numéro de version de serveur ou FALSE en cas d'erreur.

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()
Memcache::getStats()

Précédent | Sommaire | Suivant
Memcache::getStats | Niveau supérieur | Memcache::increment


Memcache::increment

(no version information, might be only in CVS)

Memcache::increment -- Incrément la valeur d'un élément

Description

int Memcache::increment ( string key [, int value] )

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. Optionnel et vaut par défaut 1.

Valeurs de retour

Retourne la valeur du nouvel élément en cas de succès ou FALSE en cas d'échec.

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()
Memcache::replace()

Précédent | Sommaire | Suivant
Memcache::getVersion | Niveau supérieur | Memcache::pconnect


Memcache::pconnect

(no version information, might be only in CVS)

Memcache::pconnect -- Ouvre un connexion persistante à un serveur de cache

Description

bool Memcache::pconnect ( string host [, int port [, int timeout]] )

Memcache::pconnect() est similaire à la fonction Memcache::connect() avec la différence que la connexion sera persistante. Ce type de connexion n'est pas fermé à la fin du script et par la fonction Memcache::close(). Vous pouvez également utiliser la fonction memcache_pconnect().

Liste de paramètres

host

Pointe à l'hôte où memcache écoute pour des connexions.

port

Pointe au port où memcache écoute pour des connexions.

timeout

Valeur en seconde qui sera utilisée pour se connecter au daemon. 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, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
Memcache::increment | Niveau supérieur | Memcache::replace


Memcache::replace

(no version information, might be only in CVS)

Memcache::replace -- Remplace une valeur d'un élément existant

Description

bool Memcache::replace ( string key, mixed var [, int flag [, int expire]] )

Memcache::replace() est utilisé pour remplacer la valeur d'un élément identifié par la clé key. Dans le cas où l'élément identifié par la clé key n'existe pas, la fonction Memcache::replace() retournera FALSE. Pour le reste, la fonction Memcache::replace() fonctionne de la même façon que la fonction Memcache::set(). Vous pouvez également utiliser la fonction memcache_replace().

Liste de paramètres

key

La clé qui sera associée avec l'élément.

var

La variable à enregistrer. Les chaînes de caractères et les entiers sont enregistrer comme tels, les autres types sont enregistrés de manière sérialisée.

flag

Utilisez MEMCACHE_COMPRESSED pour enregistrer l'élément compressé (utilise zlib).

expire

Temps d'expiration pour l'élément. S'il égal 0, l'élément n'expirera jamais. Vous pouvez aussi utiliser un timestamp Unix ou un nombre de seconde en commençant par la date d'aujourd'hui, mais dans le dernier cas, le nombre de secondes ne doit pas excéder 2592000 (30 jours).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
Memcache::add()

Précédent | Sommaire | Suivant
Memcache::pconnect | Niveau supérieur | Memcache::set


Memcache::set

(no version information, might be only in CVS)

Memcache::set -- Stocke des données dans le serveur de cache

Description

bool Memcache::set ( string key, mixed var [, int flag [, int expire]] )

Memcache::set() stocke l'élément var avec la clé key sur le serveur de cache. Le paramètre expire représente le délai en secondes d'expiration de l'élément. S'il vaut 0, l'élément n'expirera jamais (mais le serveur de cache ne garantie pas que cet élément sera toujours stocké, il peut être effacé du cache pour faire de la place à d'autres éléments). Vous pouvez utiliser la constante MEMCACHE_COMPRESSED comme valeur du paramètre flag si vous voulez utiliser la compression à la volée (utilisation de la bibliothèque zlib).

Note : Souvenez-vous que les ressources (i.e. identifiant de fichiers ou de connexion) ne peuvent pas être stockées dans le cache, car elles ne peuvent pas être représentées linéairement.

Vous pouvez également utiliser la fonction memcache_set().

Liste de paramètres

key

La clé qui sera associée avec l'élément.

var

La variable à enregistrer. Les chaînes de caractères et les entiers sont enregistrés comme tels, les autres types sont enregistrés de manière sérialisée.

flag

Utilisez MEMCACHE_COMPRESSED pour enregistrer l'élément compressé (utilise zlib).

expire

Temps d'expiration pour l'élément. S'il égal 0, l'élément n'expirera jamais. Vous pouvez aussi utiliser un timestamp Unix ou un nombre de seconde en commençant par la date d'aujourd'hui, mais dans le dernier cas, le nombre de secondes ne doit pas excéder 2592000 (30 jours).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
Memcache::replace()

Précédent | Sommaire | Suivant
Memcache::replace | Niveau supérieur | Memcache::setCompressThreshold


Hash

Manuel PHP
Précédent Suivant

LXXXVII. 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 documentation de mhash. La règle générale est que vous pouvez accéder à un algorithme depuis PHP avec la constante MHASH_NOMDUHASH. Par exemple, pour accéder à l'algorithme TIGER, vous pouvez utiliser la constante MHASH_TIGER.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.3.0.

Pré-requis

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

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

Voici une liste des modes qui sont supportés par mhash. Toutes les constantes ne sont pas ici, et vous pouvez supposer que cette documentation n'est plus à jour.

  • MHASH_ADLER32

  • MHASH_CRC32

  • MHASH_CRC32B

  • MHASH_GOST

  • MHASH_HAVAL128

  • MHASH_HAVAL160

  • MHASH_HAVAL192

  • MHASH_HAVAL256

  • MHASH_MD4

  • MHASH_MD5

  • MHASH_RIPEMD160

  • MHASH_SHA1

  • MHASH_SHA256

  • MHASH_TIGER

  • MHASH_TIGER128

  • MHASH_TIGER160

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 hmac vaut d03cb659cbf9192dcd066272249f8412
Le hmac vaut 750c783e6ab0b503eaa86e310a5db738

Table des matières
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

Précédent | Sommaire | Suivant
Memcache::setServerParams | Niveau supérieur | mhash_count


mhash_count

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

mhash_count -- Récupère l'identifiant maximal de hash

Description

int mhash_count ( void )

Récupère l'identifiant maximal de hash.

Valeurs de retour

Retourne l'identifiant de hash maximal. Les hashs sont numérotés de 0 jusqu'à cet identifiant.

Exemples

Exemple 1. Parcourir la liste des hash

<?php

$nr = mhash_count();

for ($i = 0; $i <= $nr; $i++) {
    echo sprintf("La taille de bloc de %s est %d\n",
        mhash_get_hash_name($i),
        mhash_get_block_size($i));
}
?>

Précédent | Sommaire | Suivant
Hash | Niveau supérieur | mhash_get_block_size


mhash_get_block_size

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

mhash_get_block_size -- Retourne la taille de bloc du hash

Description

int mhash_get_block_size ( int hash )

Retourne la taille de bloc du hash spécifié.

Liste de paramètres

hash

L'identifiant du hash. Une des constantes MHASH_XXX.

Valeurs de retour

Retourne la taille, en octets, ou FALSE si le hash n'existe pas.

Exemples

Exemple 1. Exemple avec mhash_get_block_size()

<?php

echo mhash_get_block_size(MHASH_MD5); // 16

?>

Précédent | Sommaire | Suivant
mhash_count | Niveau supérieur | mhash_get_hash_name


mhash_get_hash_name

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

mhash_get_hash_name -- Retourne le nom du hash

Description

string mhash_get_hash_name ( int hash )

Retourne le nom du hash spécifié.

Liste de paramètres

hash

L'identifiant du hash. Une des constantes MHASH_XXX.

Valeurs de retour

Retourne le nom du hash ou FALSE si le hash n'existe pas.

Exemples

Exemple 1. Exemple avec mhash_get_hash_name()

<?php

echo mhash_get_hash_name(MHASH_MD5); // MD5

?>

Précédent | Sommaire | Suivant
mhash_get_block_size | Niveau supérieur | mhash_keygen_s2k


mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5)

mhash_keygen_s2k -- Génère une clé

Description

string mhash_keygen_s2k ( int hash, string password, string salt, int bytes )

Génère une clé de bytes octets de long, à partir d'un mot de passe.

Cette fonction utilise l'algorithme Salted S2K, spécifié dans OpenPGP (RFC 2440).

N'oubliez pas que les mots de passe fournis par les utilisateurs ne sont pas conseillés pour faire des clés cryptographiques, étant donné que les utilisateurs normaux retiennent des mots de passe qu'ils peuvent saisir au clavier. Ces mots de passe utilisent uniquement 6 à 7 des 8 bits d'un caractère (voire moins). Il est vivement recommandé d'appliquer une fonction de transformation (comme celle-ci), à un mot de passe utilisateur.

Liste de paramètres

hash

L'identifiant du hash utilisé pour créer la clé. Une parmis les constantes MHASH_XXX.

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 d'en créer des différentes. Ce grain de sel ("salt") reservira lorsque vous vérifierez les clés : c'est alors une bonne idée que de l'ajouter à la fin de la clé générée. salt doit avoir la longueur de 8 octets, et sera complété par des 0 si vous ne fournissez par suffisamment de données.

bytes

La longueur de la clé, en octets.

Valeurs de retour

Retourne la clé générée, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
mhash_get_hash_name | Niveau supérieur | mhash


mhash

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

mhash -- Calcule un hash

Description

string mhash ( int hash, string data [, string key] )

mhash() applique la fonction de hash hash aux données data.

Liste de paramètres

hash

L'identifiant du hash. Une parmis les constantes MHASH_XXX.

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.

Précédent | Sommaire | Suivant
mhash_keygen_s2k | Niveau supérieur | Fonctions Mimetype


Fonctions Mimetype

Manuel PHP
Précédent Suivant

LXXXVIII. Fonctions Mimetype

Introduction

Avertissement

Cette extension est à présent déconseillée étant donné que l'extension PECL fileinfo fournit les mêmes fonctionnalités (et même plus) de façon plus propre.

Ces fonctions essaient de définir le type de contenu et l'encodage d'un fichier en recherchant certaines séquences magiques, à certaines positions dans le fichier. Même si ce n'est pas une approche imparable, les heuristiques réalisent un bon travail.

Cette extension est dérivée du module Apache mod_mime_magic, qui est lui-même basé sur la commande file, entretenue par Ian F. Darwin. Voyez le code source pour plus de détails sur les heuristiques et les informations de copyright.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Vous devez compiler PHP avec l'option --enable-mime-magic pour obtenir le support des fonctions mime-type. L'extension nécessite une copie simplifiée de magic qui est distribuée avec le serveur httpd Apache.

Note : L'option de configuration a été changée de --enable-mime-magic en --with-mime-magic depuis PHP 4.3.2

Note : Cette extension n'est pas capable d'utiliser le fichier magic complet, qui est généralement livré avec les distributions Linux, et il est supposé fonctionner avec les plus récentes versions de la commande file.

Note aux utilisateurs Windows : Afin de pouvoir utiliser ce module en environnement Windows, vous devez activer le chemin jusqu'au fichier magic.mime de votre php.ini.

Exemple 1. Configuration Windows de magic.mime

mime_magic.magicfile ="$PHP_INSTALL_DIR\magic.mime"

N'oubliez pas de remplacer la valeur de $PHP_INSTALL_DIR par votre chemin jusqu'à l'exécutable PHP, dans l'exemple ci-desssus. Par exemple, c:\php.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
mime_magic.debug | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
mime_magic.magicfile | "/path/to/php/magic.mime" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mime_magic.debug ???

Active / Désactive le débogage.

mime_magic.magicfile chaîne de caractères

Le chemin vers le fichier magic.mime.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
mime_content_type -- Détecte le type MIME d'un fichier (obsolète)

Précédent | Sommaire | Suivant
mhash | Niveau supérieur | mime_content_type


mime_content_type

(PHP 4 >= 4.3.0, PHP 5)

mime_content_type -- Détecte le type MIME d'un fichier (obsolète)

Description

string mime_content_type ( string filename )

Retourne le type MIME du fichier filename en se basant sur les informations présentes dans le fichier magic.mime.

Liste de paramètres

filename

Chemin vers le fichier testé.

Valeurs de retour

Retourn le type de contenu MIME, comme text/plain ou encore application/octet-stream.

Notes

Avertissement

Cette fonction est devenue obsolète car l'extension PECL Fileinfo fournit la même fonctionnalité (et bien plus) d'une façon plus propre.

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

Fileinfo pour un remplacement

Précédent | Sommaire | Suivant
Fonctions Mimetype | Niveau supérieur | Ming pour Flash


Ming pour Flash

Manuel PHP
Précédent Suivant

LXXXIX. Ming pour Flash

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Introduction

Avant tout, sachez que Ming n'est pas un acronyme. Ming est une bibliothèque open-source (LGPL) qui vous permet de créer des animations au format Flash. Ming supporte toutes les fonctionnalités de Flash 4 : les formes (shapes), les gradients, les images bitmaps (JPEG et PNG), les morphing (transformations d'une forme en une autre), les textes, actions, sprites (mini animations), le streaming MP3 et les transformations de couleurs. Le seul ajout futur est celui des événements sons.

Notez que toutes les distances spécifiées (longueurs, distances, tailles...) sont en "twips", c'est-à-dire 20 unités par pixels. C'est plus ou moins arbitraire, car le lecteur Flash fait une mise à l'échelle avec les valeurs qui lui sont fournies dans la balise embed, ou la frame courante si la balise embed n'est pas utilisée.

Ming propose de nombreux avantages par rapport à l'extension swf. Vous pouvez utiliser Ming sur tous les OS où vous pouvez compiler le code, tandis que swf est limité à Windows. Ming vous évite la déconcertante complexité du format SWF, en transformant les éléments des animations en objets PHP. Enfin, Ming est toujours en cours de développement et surveillé par son auteur : si vous souhaitez une nouvelle fonctionnalité, dites-le nous : http://ming.sourceforge.net/

Ming et tous les objets cités ont été ajoutés en PHP 4.0.5.

Pré-requis

Pour utiliser Ming avec PHP, vous devez d'abord installer la librairy Ming. Le code source et les instructions d'installation sont disponibles sur la page d'accueil de Ming : http://ming.sourceforge.net/, avec des exemples un tutorial et l'actualité Ming.

Téléchargez l'archive Ming. Décompressez-la et allez dans le dossier Ming. Faites "make", puis "make install".

Cela va compiler le fichier libming.so et l'installer dans /usr/lib/, et copier ming.h into /usr/include/. Éditez la ligne PREFIX= dans le fichier Makefile pour indiquer votre dossier d'installation.

Installation

Exemple 1. Compilation CGI avec PHP (Unix)

mkdir <phpdir>/ext/ming
cp php_ext/* <phpdir>/ext/ming
cd <phpdir>
./buildconf
./configure --with-ming <other config options>

Compilez et installez PHP comme d'habitude. Redémarrez votre serveur web si nécessaire.

Maintenant, soit vous ajoutez simplement extension=php_ming.so dans votre fichier php.ini, soit vous ajoutez la ligne dl('php_ming.so'); au début de tous vos scripts qui utilisent Ming.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

MING_NEW (entier)

MING_ZLIB (entier)

SWFBUTTON_HIT (entier)

SWFBUTTON_DOWN (entier)

SWFBUTTON_OVER (entier)

SWFBUTTON_UP (entier)

SWFBUTTON_MOUSEUPOUTSIDE (entier)

SWFBUTTON_DRAGOVER (entier)

SWFBUTTON_DRAGOUT (entier)

SWFBUTTON_MOUSEUP (entier)

SWFBUTTON_MOUSEDOWN (entier)

SWFBUTTON_MOUSEOUT (entier)

SWFBUTTON_MOUSEOVER (entier)

SWFFILL_RADIAL_GRADIENT (entier)

SWFFILL_LINEAR_GRADIENT (entier)

SWFFILL_TILED_BITMAP (entier)

SWFFILL_CLIPPED_BITMAP (entier)

SWFTEXTFIELD_HASLENGTH (entier)

SWFTEXTFIELD_NOEDIT (entier)

SWFTEXTFIELD_PASSWORD (entier)

SWFTEXTFIELD_MULTILINE (entier)

SWFTEXTFIELD_WORDWRAP (entier)

SWFTEXTFIELD_DRAWBOX (entier)

SWFTEXTFIELD_NOSELECT (entier)

SWFTEXTFIELD_HTML (entier)

SWFTEXTFIELD_ALIGN_LEFT (entier)

SWFTEXTFIELD_ALIGN_RIGHT (entier)

SWFTEXTFIELD_ALIGN_CENTER (entier)

SWFTEXTFIELD_ALIGN_JUSTIFY (entier)

SWFACTION_ONLOAD (entier)

SWFACTION_ENTERFRAME (entier)

SWFACTION_UNLOAD (entier)

SWFACTION_MOUSEMOVE (entier)

SWFACTION_MOUSEDOWN (entier)

SWFACTION_MOUSEUP (entier)

SWFACTION_KEYDOWN (entier)

SWFACTION_KEYUP (entier)

SWFACTION_DATA (entier)

Classes pré-définies

Ces classes sont définies par cette extension, et elles ne seront disponibles que si cette extension a été compilée avec PHP, ou bien chargée dynamiquement.

Classes

SWFAction
SWFBitmap
SWFButton
SWFDisplayItem
SWFFill
SWFFont
SWFFontChar
SWFGradient
SWFMorph
SWFMovie
SWFPrebuiltClip
SWFShape
SWFSound
SWFSoundInstance
SWFSprite
SWFText
SWFTextField
SWFVideoStream

Table des matières
SWFAction -- SWFAction Class
SWFAction->__construct() -- Creates a new SWFAction
SWFBitmap -- SWFBitmap Class
SWFBitmap->__construct() -- Loads Bitmap object
SWFBitmap->getHeight() -- Returns the bitmap's height
SWFBitmap->getWidth() -- Returns the bitmap's width
SWFButton -- SWFButton Class
SWFButton->__construct() -- Creates a new Button
SWFButton->addAction() -- Adds an action
SWFButton->addASound() -- Associates a sound with a button transition
SWFButton->addShape() -- Adds a shape to a button
SWFButton->setAction() -- Sets the action
SWFButton->setDown() -- Alias for addShape(shape, SWFBUTTON_DOWN)
SWFButton->setHit() -- Alias for addShape(shape, SWFBUTTON_HIT)
SWFButton->setMenu() -- enable track as menu button behaviour
SWFButton->setOver() -- Alias for addShape(shape, SWFBUTTON_OVER)
SWFButton->setUp() -- Alias for addShape(shape, SWFBUTTON_UP)
SWFDisplayItem -- SWFDisplayItem Class
SWFDisplayItem->addAction() -- Adds this SWFAction to the given SWFSprite instance
SWFDisplayItem->addColor() -- Adds the given color to this item's color transform
SWFDisplayItem->endMask() -- Another way of defining a MASK layer
SWFDisplayItem->getRot() --
SWFDisplayItem->getX() --
SWFDisplayItem->getXScale() --
SWFDisplayItem->getXSkew() --
SWFDisplayItem->getY() --
SWFDisplayItem->getYScale() --
SWFDisplayItem->getYSkew() --
SWFDisplayItem->move() -- Moves object in relative coordinates
SWFDisplayItem->moveTo() -- Moves object in global coordinates
SWFDisplayItem->multColor() -- Multiplies the item's color transform
SWFDisplayItem->remove() -- Removes the object from the movie
SWFDisplayItem->rotate() -- Rotates in relative coordinates
SWFDisplayItem->rotateTo() -- Rotates the object in global coordinates
SWFDisplayItem->scale() -- Scales the object in relative coordinates
SWFDisplayItem->scaleTo() -- Scales the object in global coordinates
SWFDisplayItem->setDepth() -- Sets z-order
SWFDisplayItem->setMaskLevel() -- Defines a MASK layer at level
SWFDisplayItem->setMatrix() -- Sets the item's transform matrix
SWFDisplayItem->setName() -- Sets the object's name
SWFDisplayItem->setRatio() -- Sets the object's ratio
SWFDisplayItem->skewX() -- Sets the X-skew
SWFDisplayItem->skewXTo() -- Sets the X-skew
SWFDisplayItem->skewY() -- Sets the Y-skew
SWFDisplayItem->skewYTo() -- Sets the Y-skew
SWFFill -- SWFFill Class
SWFFill->moveTo() -- Moves fill origin
SWFFill->rotateTo() -- Sets fill's rotation
SWFFill->scaleTo() -- Sets fill's scale
SWFFill->skewXTo() -- Sets fill x-skew
SWFFill->skewYTo() -- Sets fill y-skew
SWFFont -- SWFFont Class
SWFFont->__construct() -- Loads a font definition
SWFFont->getAscent() -- Returns the ascent of the font, or 0 if not available
SWFFont->getDescent() -- Returns the descent of the font, or 0 if not available
SWFFont->getLeading() -- Returns the leading of the font, or 0 if not available
SWFFont->getShape() -- Returns the glyph shape of a char as a text string
SWFFont->getUTF8Width() -- Calculates the width of the given string in this font at full height
SWFFont->getWidth() -- Returns the string's width
SWFFontChar -- SWFFontChar Class
SWFFontChar->addChars() -- Adds characters to a font for exporting font
SWFFontChar->addUTF8Chars() -- Adds characters to a font for exporting font
SWFGradient -- SWFGradient Class
SWFGradient->__construct() -- Creates a gradient object
SWFGradient->addEntry() -- Adds an entry to the gradient list
SWFMorph -- SWFMorph Class
SWFMorph->__construct() -- Creates a new SWFMorph object
SWFMorph->getShape1() -- Gets a handle to the starting shape
SWFMorph->getShape2() -- Gets a handle to the ending shape
SWFMovie -- SWFMovie Class
SWFMovie->__construct() -- Creates a new movie object, representing an SWF version 4 movie
SWFMovie->add() -- Adds any type of data to a movie
SWFMovie->addExport() --
SWFMovie->addFont() --
SWFMovie->importChar() --
SWFMovie->importFont() --
SWFMovie->labelFrame() -- Labels a frame
SWFMovie->nextFrame() -- Moves to the next frame of the animation
SWFMovie->output() -- Dumps your lovingly prepared movie out
SWFMovie->remove() -- Removes the object instance from the display list
SWFMovie->save() -- Saves the SWF movie in a file
SWFMovie->saveToFile() --
SWFMovie->setbackground() -- Sets the background color
SWFMovie->setDimension() -- Sets the movie's width and height
SWFMovie->setFrames() -- Sets the total number of frames in the animation
SWFMovie->setRate() -- Sets the animation's frame rate
SWFMovie->startSound() --
SWFMovie->stopSound() --
SWFMovie->streamMP3() -- Streams a MP3 file
SWFMovie->writeExports() --
SWFPrebuiltClip -- SWFPrebuiltClip Class
SWFPrebuiltClip->__construct() -- Returns a SWFPrebuiltClip object
SWFShape -- SWFShape Class
SWFShape->__construct() -- Creates a new shape object
SWFShape->addFill() -- Adds a solid fill to the shape
SWFShape->drawArc() -- Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock
SWFShape->drawCircle() -- Draws a circle of radius r centered at the current location, in a counter-clockwise fashion
SWFShape->drawCubic() -- Draws a cubic bezier curve using the current position and the three given points as control points
SWFShape->drawCubicTo() -- Draws a cubic bezier curve using the current position and the three given points as control points
SWFShape->drawCurve() -- Draws a curve (relative)
SWFShape->drawCurveTo() -- Draws a curve
SWFShape->drawGlyph() -- Draws the first character in the given string into the shape using the glyph definition from the given font
SWFShape->drawLine() -- Draws a line (relative)
SWFShape->drawLineTo() -- Draws a line
SWFShape->movePen() -- Moves the shape's pen (relative)
SWFShape->movePenTo() -- Moves the shape's pen
SWFShape->setLeftFill() -- Sets left rasterizing color
SWFShape->setLine() -- Sets the shape's line style
SWFShape->setRightFill() -- Sets right rasterizing color
SWFSound -- SWFSound Class
SWFSound -- Returns a new SWFSound object from given file
SWFSoundInstance -- SWFSoundInstance Class
SWFSoundInstance->loopCount() --
SWFSoundInstance->loopInPoint() --
SWFSoundInstance->loopOutPoint() --
SWFSoundInstance->noMultiple() --
SWFSprite -- SWFSprite Class
SWFSprite->__construct() -- Creates a movie clip (a sprite)
SWFSprite->add() -- Adds an object to a sprite
SWFSprite->labelFrame() -- Labels frame
SWFSprite->nextFrame() -- Moves to the next frame of the animation
SWFSprite->remove() -- Removes an object to a sprite
SWFSprite->setFrames() -- Sets the total number of frames in the animation
SWFSprite->startSound() --
SWFSprite->stopSound() --
SWFText -- SWFText Class
SWFText->__construct() -- Creates a new SWFText object
SWFText->addString() -- Draws a string
SWFText->addUTF8String() -- Writes the given text into this SWFText object at the current pen position, using the current font, height, spacing, and color
SWFText->getAscent() -- Returns the ascent of the current font at its current size, or 0 if not available
SWFText->getDescent() -- Returns the descent of the current font at its current size, or 0 if not available
SWFText->getLeading() -- Returns the leading of the current font at its current size, or 0 if not available
SWFText->getUTF8Width() -- calculates the width of the given string in this text objects current font and size
SWFText->getWidth() -- Computes string's width
SWFText->moveTo() -- Moves the pen
SWFText->setColor() -- Sets the current text color
SWFText->setFont() -- Sets the current font
SWFText->setHeight() -- Sets the current font height
SWFText->setSpacing() -- Sets the current font spacing
SWFTextField -- SWFTextField Class
SWFTextField->__construct() -- Creates a text field object
SWFTextField->addChars() -- adds characters to a font that will be available within a textfield
SWFTextField->addString() -- Concatenates the given string to the text field
SWFTextField->align() -- Sets the text field alignment
SWFTextField->setBounds() -- Sets the text field width and height
SWFTextField->setColor() -- Sets the color of the text field
SWFTextField->setFont() -- Sets the text field font
SWFTextField->setHeight() -- Sets the font height of this text field font
SWFTextField->setIndentation() -- Sets the indentation of the first line
SWFTextField->setLeftMargin() -- Sets the left margin width of the text field
SWFTextField->setLineSpacing() -- Sets the line spacing of the text field
SWFTextField->setMargins() -- Sets the margins width of the text field
SWFTextField->setName() -- Sets the variable name
SWFTextField->setPadding() -- Sets the padding of this textfield
SWFTextField->setRightMargin() -- Sets the right margin width of the text field
SWFVideoStream -- SWFVideoStream Class
SWFVideoStream->__construct() -- Returns a SWFVideoStream object
SWFVideoStream->getNumFrames() --
SWFVideoStream->setDimension() --
ming_keypress -- Retourne le drapeau d'action pour keyPress(char)
ming_setcubicthreshold -- Fixe le niveau de seuil cubique
ming_setscale -- Définit l'échelle
ming_setswfcompression -- Sets the SWF output compression
ming_useconstants -- Use constant pool
ming_useswfversion -- Définit la version SWF

Précédent | Sommaire | Suivant
mime_content_type | Niveau supérieur | SWFAction


ming_setcubicthreshold

(PHP 4 >= 4.0.5, PHP 5)

ming_setcubicthreshold -- Fixe le niveau de seuil cubique

Description

void ming_setcubicthreshold ( int threshold )

Fixe le niveau de seuil cubique pour dessiner des cubes bézier.

Liste de paramètres

threshold

Le niveau du seuil. Un seuil bas est plus significatif, mais génère un fichier de grande taille.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
ming_keypress | Niveau supérieur | ming_setscale


ming_setscale

(PHP 4 >= 4.0.5, PHP 5)

ming_setscale -- Définit l'échelle

Description

void ming_setscale ( int scale )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
ming_setcubicthreshold | Niveau supérieur | ming_setswfcompression


ming_useswfversion

(PHP 4 >= 4.2.0, PHP 5)

ming_useswfversion -- Définit la version SWF

Description

void ming_useswfversion ( int version )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
ming_useconstants | Niveau supérieur | Fonctions diverses


SWFBitmap->getHeight()

(no version information, might be only in CVS)

SWFBitmap->getHeight() -- Returns the bitmap's height

Description

class SWFBitmap {

float getHeight ( void )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Returns the bitmap's height.

Valeurs de retour

Returns the bitmap height in pixels.

Voir aussi

SWFBitmap->getWidth()

Précédent | Sommaire | Suivant
SWFBitmap->__construct() | Niveau supérieur | SWFBitmap->getWidth()


SWFBitmap->getWidth()

(no version information, might be only in CVS)

SWFBitmap->getWidth() -- Returns the bitmap's width

Description

class SWFBitmap {

float getWidth ( void )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Returns the bitmap's width.

Valeurs de retour

Returns the bitmap width in pixels.

Voir aussi

SWFBitmap->getHeight()

Précédent | Sommaire | Suivant
SWFBitmap->getHeight() | Niveau supérieur | SWFButton


SWFButton->addAction()

(no version information, might be only in CVS)

SWFButton->addAction() -- Adds an action

Description

class SWFButton {

void addAction ( SWFAction action, int flags )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Adds the given action to the button for the given conditions.

Liste de paramètres

action

An SWFAction, returned by SWFAction->__construct().

flags

The following flags are valid: SWFBUTTON_MOUSEOVER, SWFBUTTON_MOUSEOUT, SWFBUTTON_MOUSEUP, SWFBUTTON_MOUSEUPOUTSIDE, SWFBUTTON_MOUSEDOWN, SWFBUTTON_DRAGOUT and SWFBUTTON_DRAGOVER.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFButton->addShape()
SWFAction

Précédent | Sommaire | Suivant
SWFButton->__construct() | Niveau supérieur | SWFButton->addASound()


SWFButton->addShape()

(no version information, might be only in CVS)

SWFButton->addShape() -- Adds a shape to a button

Description

class SWFButton {

void addShape ( SWFShape shape, int flags )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Adds the given shape to the button.

Liste de paramètres

shape

An SWFShape instance

flags

The following flags are valid: SWFBUTTON_UP, SWFBUTTON_OVER, SWFBUTTON_DOWN and SWFBUTTON_HIT.

SWFBUTTON_HIT isn't ever displayed, it defines the hit region for the button. That is, everywhere the hit shape would be drawn is considered a "touchable" part of the button.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFButton->addASound() | Niveau supérieur | SWFButton->setAction()


SWFButton->setAction()

(no version information, might be only in CVS)

SWFButton->setAction() -- Sets the action

Description

class SWFButton {

void setAction ( SWFAction action )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sets the action to be performed when the button is clicked.

This is a shortcut for SWFButton->addAction() called with the SWFBUTTON_MOUSEUP flag.

Liste de paramètres

action

An SWFAction, returned by SWFAction->__construct().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFButton->addAction()
SWFAction

Précédent | Sommaire | Suivant
SWFButton->addShape() | Niveau supérieur | SWFButton->setDown()


SWFButton->setDown()

(no version information, might be only in CVS)

SWFButton->setDown() -- Alias for addShape(shape, SWFBUTTON_DOWN)

Description

class SWFButton {

void setDown ( SWFShape shape )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfbutton->setdown() alias for addShape(shape, SWFBUTTON_DOWN).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFButton->addShape()
SWFAction

Précédent | Sommaire | Suivant
SWFButton->setAction() | Niveau supérieur | SWFButton->setHit()


SWFButton->setHit()

(no version information, might be only in CVS)

SWFButton->setHit() -- Alias for addShape(shape, SWFBUTTON_HIT)

Description

class SWFButton {

void setHit ( SWFShape shape )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfbutton->sethit() alias for addShape(shape, SWFBUTTON_HIT).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFButton->addShape()
SWFAction

Précédent | Sommaire | Suivant
SWFButton->setDown() | Niveau supérieur | SWFButton->setMenu()


SWFButton->setOver()

(no version information, might be only in CVS)

SWFButton->setOver() -- Alias for addShape(shape, SWFBUTTON_OVER)

Description

class SWFButton {

void setOver ( SWFShape shape )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfbutton->setover() alias for addShape(shape, SWFBUTTON_OVER).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFButton->addShape()
SWFAction

Précédent | Sommaire | Suivant
SWFButton->setMenu() | Niveau supérieur | SWFButton->setUp()


SWFButton->setUp()

(no version information, might be only in CVS)

SWFButton->setUp() -- Alias for addShape(shape, SWFBUTTON_UP)

Description

class SWFButton {

void setUp ( SWFShape shape )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfbutton->setup() alias for addShape(shape, SWFBUTTON_UP).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFButton->addShape()
SWFAction

Précédent | Sommaire | Suivant
SWFButton->setOver() | Niveau supérieur | SWFDisplayItem


SWFDisplayItem->addColor()

(no version information, might be only in CVS)

SWFDisplayItem->addColor() -- Adds the given color to this item's color transform

Description

class SWFDisplayItem {

void addColor ( int red, int green, int blue [, int a] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->addcolor() adds the color to this item's color transform. The color is given in its RGB form.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFDisplayItem->addAction() | Niveau supérieur | SWFDisplayItem->endMask()


SWFDisplayItem->move()

(no version information, might be only in CVS)

SWFDisplayItem->move() -- Moves object in relative coordinates

Description

class SWFDisplayItem {

void move ( int dx, int dy )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->move() moves the current object by (dx,dy) from its current position.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFDisplayItem->moveTo()

Précédent | Sommaire | Suivant
SWFDisplayItem->getYSkew() | Niveau supérieur | SWFDisplayItem->moveTo()


SWFDisplayItem->moveTo()

(no version information, might be only in CVS)

SWFDisplayItem->moveTo() -- Moves object in global coordinates

Description

class SWFDisplayItem {

void moveTo ( int x, int y )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->moveto() moves the current object to (x,y) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFDisplayItem->move()

Précédent | Sommaire | Suivant
SWFDisplayItem->move() | Niveau supérieur | SWFDisplayItem->multColor()


SWFDisplayItem->multColor()

(no version information, might be only in CVS)

SWFDisplayItem->multColor() -- Multiplies the item's color transform

Description

class SWFDisplayItem {

void multColor ( int red, int green, int blue [, int a] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->multcolor() multiplies the item's color transform by the given values.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Liste de paramètres

These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF:

red

Value of red component

green

Value of green component

blue

Value of blue component

a

Value of alpha component

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

This simple example will modify your picture's atmosphere to Halloween (use a landscape or bright picture).

Exemple 1. swfdisplayitem->multcolor() example

<?php

$b = new SWFBitmap(file_get_contents("backyard.jpg"));
// note use your own picture :-)
$s = new SWFShape();
$s->setRightFill($s->addFill($b));
$s->drawLine($b->getWidth(), 0);
$s->drawLine(0, $b->getHeight());
$s->drawLine(-$b->getWidth(), 0);
$s->drawLine(0, -$b->getHeight());

$m = new SWFMovie();
$m->setDimension($b->getWidth(), $b->getHeight());

$i = $m->add($s);

for ($n=0; $n<=20; ++$n) {
  $i->multColor(1.0-$n/10, 1.0, 1.0);
  $i->addColor(0xff*$n/20, 0, 0);
  $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Précédent | Sommaire | Suivant
SWFDisplayItem->moveTo() | Niveau supérieur | SWFDisplayItem->remove()


SWFDisplayItem->remove()

(no version information, might be only in CVS)

SWFDisplayItem->remove() -- Removes the object from the movie

Description

class SWFDisplayItem {

void remove ( void )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->remove() removes this object from the movie's display list.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFMovie->add()

Précédent | Sommaire | Suivant
SWFDisplayItem->multColor() | Niveau supérieur | SWFDisplayItem->rotate()


SWFDisplayItem->rotate()

(no version information, might be only in CVS)

SWFDisplayItem->rotate() -- Rotates in relative coordinates

Description

class SWFDisplayItem {

void rotate ( float angle )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->rotate() rotates the current object by angle degrees from its current rotation.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFDisplayItem->rotateTo()

Précédent | Sommaire | Suivant
SWFDisplayItem->remove() | Niveau supérieur | SWFDisplayItem->rotateTo()


SWFDisplayItem->rotateTo()

(no version information, might be only in CVS)

SWFDisplayItem->rotateTo() -- Rotates the object in global coordinates

Description

class SWFDisplayItem {

void rotateTo ( float angle )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->rotateto() set the current object rotation to angle degrees in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

This example bring three rotating string from the background to the foreground. Pretty nice.

Exemple 1. swfdisplayitem->rotateto() example

<?php
$thetext =  "ming!";

$f = new SWFFont("Bauhaus 93.fdb");

$m = new SWFMovie();
$m->setRate(24.0);
$m->setDimension(2400, 1600);
$m->setBackground(0xff, 0xff, 0xff);

// functions with huge numbers of arbitrary
// arguments are always a good idea!  Really!

function text($r, $g, $b, $a, $rot, $x, $y, $scale, $string)
{
  global $f, $m;

  $t = new SWFText();
  $t->setFont($f);
  $t->setColor($r, $g, $b, $a);
  $t->setHeight(960);
  $t->moveTo(-($f->getWidth($string))/2, $f->getAscent()/2);
  $t->addString($string);

  // we can add properties just like a normal PHP var,
  // as long as the names aren't already used.
  // e.g., we can't set $i->scale, because that's a function

  $i = $m->add($t);
  $i->x = $x;
  $i->y = $y;
  $i->rot = $rot;
  $i->s = $scale;
  $i->rotateTo($rot);
  $i->scale($scale, $scale);

  // but the changes are local to the function, so we have to
  // return the changed object.  kinda weird..

  return $i;
}

function step($i)
{
  $oldrot = $i->rot;
  $i->rot = 19*$i->rot/20;
  $i->x = (19*$i->x + 1200)/20;
  $i->y = (19*$i->y + 800)/20;
  $i->s = (19*$i->s + 1.0)/20;

  $i->rotateTo($i->rot);
  $i->scaleTo($i->s, $i->s);
  $i->moveTo($i->x, $i->y);

  return $i;
}

// see?  it sure paid off in legibility:

$i1 = text(0xff, 0x33, 0x33, 0xff, 900, 1200, 800, 0.03, $thetext);
$i2 = text(0x00, 0x33, 0xff, 0x7f, -560, 1200, 800, 0.04, $thetext);
$i3 = text(0xff, 0xff, 0xff, 0x9f, 180, 1200, 800, 0.001, $thetext);

for ($i=1; $i<=100; ++$i) {
  $i1 = step($i1);
  $i2 = step($i2);
  $i3 = step($i3);

  $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Voir aussi

SWFDisplayItem->rotate()

Précédent | Sommaire | Suivant
SWFDisplayItem->rotate() | Niveau supérieur | SWFDisplayItem->scale()


SWFDisplayItem->scale()

(no version information, might be only in CVS)

SWFDisplayItem->scale() -- Scales the object in relative coordinates

Description

class SWFDisplayItem {

void scale ( int dx, int dy )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->scale() scales the current object by (dx,dy) from its current size.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFDisplayItem->scaleTo()

Précédent | Sommaire | Suivant
SWFDisplayItem->rotateTo() | Niveau supérieur | SWFDisplayItem->scaleTo()


SWFDisplayItem->scaleTo()

(no version information, might be only in CVS)

SWFDisplayItem->scaleTo() -- Scales the object in global coordinates

Description

class SWFDisplayItem {

void scaleTo ( int x [, int y] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->scaleto() scales the current object to (x,y) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFDisplayItem->scale()

Précédent | Sommaire | Suivant
SWFDisplayItem->scale() | Niveau supérieur | SWFDisplayItem->setDepth()


SWFDisplayItem->setDepth()

(no version information, might be only in CVS)

SWFDisplayItem->setDepth() -- Sets z-order

Description

class SWFDisplayItem {

void setDepth ( float depth )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->setdepth() sets the object's z-order to depth. Depth defaults to the order in which instances are created (by adding a shape/text to a movie)- newer ones are on top of older ones. If two objects are given the same depth, only the later-defined one can be moved.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFDisplayItem->scaleTo() | Niveau supérieur | SWFDisplayItem->setMaskLevel()


SWFDisplayItem->setName()

(no version information, might be only in CVS)

SWFDisplayItem->setName() -- Sets the object's name

Description

class SWFDisplayItem {

void setName ( string name )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->setname() sets the object's name to name, for targetting with action script. Only useful on sprites.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFDisplayItem->setMatrix() | Niveau supérieur | SWFDisplayItem->setRatio()


SWFDisplayItem->setRatio()

(no version information, might be only in CVS)

SWFDisplayItem->setRatio() -- Sets the object's ratio

Description

class SWFDisplayItem {

void setRatio ( float ratio )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->setratio() sets the object's ratio to ratio. Obviously only useful for morphs.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

This simple example will morph nicely three concentric circles.

Exemple 1. swfdisplayitem->setname() example

<?php

$p = new SWFMorph();

$g = new SWFGradient();
$g->addEntry(0.0, 0, 0, 0);
$g->addEntry(0.16, 0xff, 0xff, 0xff);
$g->addEntry(0.32, 0, 0, 0);
$g->addEntry(0.48, 0xff, 0xff, 0xff);
$g->addEntry(0.64, 0, 0, 0);
$g->addEntry(0.80, 0xff, 0xff, 0xff);
$g->addEntry(1.00, 0, 0, 0);

$s = $p->getShape1();
$f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
$f->scaleTo(0.05);
$s->setLeftFill($f);
$s->movePenTo(-160, -120);
$s->drawLine(320, 0);
$s->drawLine(0, 240);
$s->drawLine(-320, 0);
$s->drawLine(0, -240);

$g = new SWFGradient();
$g->addEntry(0.0, 0, 0, 0);
$g->addEntry(0.16, 0xff, 0, 0);
$g->addEntry(0.32, 0, 0, 0);
$g->addEntry(0.48, 0, 0xff, 0);
$g->addEntry(0.64, 0, 0, 0);
$g->addEntry(0.80, 0, 0, 0xff);
$g->addEntry(1.00, 0, 0, 0);

$s = $p->getShape2();
$f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
$f->scaleTo(0.05);
$f->skewXTo(1.0);
$s->setLeftFill($f);
$s->movePenTo(-160, -120);
$s->drawLine(320, 0);
$s->drawLine(0, 240);
$s->drawLine(-320, 0);
$s->drawLine(0, -240);

$m = new SWFMovie();
$m->setDimension(320, 240);
$i = $m->add($p);
$i->moveTo(160, 120);

for ($n=0; $n<=1.001; $n+=0.01) {
    $i->setRatio($n);
    $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Précédent | Sommaire | Suivant
SWFDisplayItem->setName() | Niveau supérieur | SWFDisplayItem->skewX()


SWFDisplayItem->skewX()

(no version information, might be only in CVS)

SWFDisplayItem->skewX() -- Sets the X-skew

Description

class SWFDisplayItem {

void skewX ( float ddegrees )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->skewx() adds ddegrees to current x-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFDisplayItem->skewXTo()
SWFDisplayItem->skewY()
SWFDisplayItem->skewYTo()

Précédent | Sommaire | Suivant
SWFDisplayItem->setRatio() | Niveau supérieur | SWFDisplayItem->skewXTo()


SWFDisplayItem->skewXTo()

(no version information, might be only in CVS)

SWFDisplayItem->skewXTo() -- Sets the X-skew

Description

class SWFDisplayItem {

void skewXTo ( float degrees )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->skewxto() sets the x-skew to degrees. For degrees is 1.0, it means a 45-degree forward slant. More is more forward, less is more backward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFDisplayItem->skewX()
SWFDisplayItem->skewY()
SWFDisplayItem->skewYTo()

Précédent | Sommaire | Suivant
SWFDisplayItem->skewX() | Niveau supérieur | SWFDisplayItem->skewY()


SWFDisplayItem->skewY()

(no version information, might be only in CVS)

SWFDisplayItem->skewY() -- Sets the Y-skew

Description

class SWFDisplayItem {

void skewY ( float ddegrees )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->skewy() adds ddegrees to current y-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFDisplayItem->skewYTo()
SWFDisplayItem->skewX()
SWFDisplayItem->skewXTo()

Précédent | Sommaire | Suivant
SWFDisplayItem->skewXTo() | Niveau supérieur | SWFDisplayItem->skewYTo()


SWFDisplayItem->skewYTo()

(no version information, might be only in CVS)

SWFDisplayItem->skewYTo() -- Sets the Y-skew

Description

class SWFDisplayItem {

void skewYTo ( float degrees )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfdisplayitem->skewyto() sets the y-skew to degrees. For degrees is 1.0, it means a 45-degree forward slant. More is more upward, less is more downward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFDisplayItem->skewY()
SWFDisplayItem->skewX()
SWFDisplayItem->skewXTo()

Précédent | Sommaire | Suivant
SWFDisplayItem->skewY() | Niveau supérieur | SWFFill


SWFFill->moveTo()

(no version information, might be only in CVS)

SWFFill->moveTo() -- Moves fill origin

Description

class SWFFill {

void moveTo ( int x, int y )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Moves the fill origin to the given global coordinates.

Liste de paramètres

x

X-coordinate

y

Y-coordinate

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFFill | Niveau supérieur | SWFFill->rotateTo()


SWFFill->rotateTo()

(no version information, might be only in CVS)

SWFFill->rotateTo() -- Sets fill's rotation

Description

class SWFFill {

void rotateTo ( float angle )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sets the fill rotation to the given angle.

Liste de paramètres

angle

The rotation angle, in degreess.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFFill->moveTo() | Niveau supérieur | SWFFill->scaleTo()


SWFFill->scaleTo()

(no version information, might be only in CVS)

SWFFill->scaleTo() -- Sets fill's scale

Description

class SWFFill {

void scaleTo ( int x [, int y] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sets the fill scale to the given coordinates.

Liste de paramètres

x

X-coordinate

y

Y-coordinate

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFFill->rotateTo() | Niveau supérieur | SWFFill->skewXTo()


SWFFill->skewXTo()

(no version information, might be only in CVS)

SWFFill->skewXTo() -- Sets fill x-skew

Description

class SWFFill {

void skewXTo ( float x )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sets the fill x-skew to x.

Liste de paramètres

x

When x is 1.0, it is a 45-degree forward slant. More is more forward, less is more backward.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFFill->skewYTo()

Précédent | Sommaire | Suivant
SWFFill->scaleTo() | Niveau supérieur | SWFFill->skewYTo()


SWFFill->skewYTo()

(no version information, might be only in CVS)

SWFFill->skewYTo() -- Sets fill y-skew

Description

class SWFFill {

void skewYTo ( float y )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sets the fill y-skew to y.

Liste de paramètres

y

When y is 1.0, it is a 45-degree upward slant. More is more upward, less is more downward.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFFill->skewXTo()

Précédent | Sommaire | Suivant
SWFFill->skewXTo() | Niveau supérieur | SWFFont


SWFFont->getWidth()

(no version information, might be only in CVS)

SWFFont->getWidth() -- Returns the string's width

Description

class SWFFont {

float getWidth ( string string )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swffont->getwidth() returns the string string's width, using font's default scaling. You'll probably want to use the swftext() version of this method which uses the text object's scale.

Voir aussi

SWFFont->getUTF8Width()

Précédent | Sommaire | Suivant
SWFFont->getUTF8Width() | Niveau supérieur | SWFFontChar


SWFGradient->addEntry()

(no version information, might be only in CVS)

SWFGradient->addEntry() -- Adds an entry to the gradient list

Description

class SWFGradient {

void addEntry ( float ratio, int red, int green, int blue [, int a] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfgradient->addentry() adds an entry to the gradient list. ratio is a number between 0 and 1 indicating where in the gradient this color appears. Thou shalt add entries in order of increasing ratio.

red, green, blue is a color (RGB mode). Last parameter a is optional.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFGradient->__construct() | Niveau supérieur | SWFMorph


SWFMorph->getShape1()

(no version information, might be only in CVS)

SWFMorph->getShape1() -- Gets a handle to the starting shape

Description

class SWFMorph {

SWFShape getShape1 ( void )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Gets the morph's starting shape.

Valeurs de retour

Returns a SWFShape object.

Voir aussi

SWFMorph->getShape2()

Précédent | Sommaire | Suivant
SWFMorph->__construct() | Niveau supérieur | SWFMorph->getShape2()


SWFMorph->getShape2()

(no version information, might be only in CVS)

SWFMorph->getShape2() -- Gets a handle to the ending shape

Description

class SWFMorph {

SWFShape getShape2 ( void )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Gets the morph's ending shape.

Valeurs de retour

Returns a SWFShape object.

Voir aussi

SWFMorph->getShape1()

Précédent | Sommaire | Suivant
SWFMorph->getShape1() | Niveau supérieur | SWFMovie


SWFMovie->add()

(no version information, might be only in CVS)

SWFMovie->add() -- Adds any type of data to a movie

Description

class SWFMovie {

mixed add ( object instance )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Adds an SWF object instance to the current movie.

Liste de paramètres

instance

Any type of object instance, like SWFShape, SWFText, SWFFont.

Valeurs de retour

For displayable types (shape, text, button, sprite), this returns an SWFDisplayItem, a handle to the object in a display list. Thus, you can add the same shape to a movie multiple times and get separate handles back for each separate instance.

Voir aussi

SWFMovie->remove()

Précédent | Sommaire | Suivant
SWFMovie->__construct() | Niveau supérieur | SWFMovie->addExport()


SWFMovie->nextFrame()

(no version information, might be only in CVS)

SWFMovie->nextFrame() -- Moves to the next frame of the animation

Description

class SWFMovie {

void nextFrame ( void )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Moves to the next frame of the animation.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFMovie->labelFrame() | Niveau supérieur | SWFMovie->output()


SWFMovie->output()

(no version information, might be only in CVS)

SWFMovie->output() -- Dumps your lovingly prepared movie out

Description

class SWFMovie {

int output ( [int compression] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Dumps the SWFMovie.

Don't forget to send the Content-Type HTTP header file before using this function, in order to display the movie in a browser.

Liste de paramètres

compression

The compression level can be a value between 0 and 9, defining the SWF compression similar to gzip compression.

This parameter is only available as of Flash MX (6).

Valeurs de retour

Return the number of bytes written or FALSE on error.

Exemples

Exemple 1. Displaying your $movie in a browser

<?php
header('Content-type: application/x-shockwave-flash');
$movie->output();
?>

Voir aussi

SWFMovie->save()
SWFMovie->saveToFile()

Précédent | Sommaire | Suivant
SWFMovie->nextFrame() | Niveau supérieur | SWFMovie->remove()


SWFMovie->remove()

(no version information, might be only in CVS)

SWFMovie->remove() -- Removes the object instance from the display list

Description

class SWFMovie {

void remove ( object instance )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Removes the given object instance from the display list.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFMovie->add()

Précédent | Sommaire | Suivant
SWFMovie->output() | Niveau supérieur | SWFMovie->save()


SWFMovie->save()

(no version information, might be only in CVS)

SWFMovie->save() -- Saves the SWF movie in a file

Description

class SWFMovie {

int save ( string filename [, int compression] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Saves the SWF movie to the specified filename.

Liste de paramètres

filename

The path to the saved SWF document.

compression

The compression level can be a value between 0 and 9, defining the SWF compression similar to gzip compression.

This parameter is only available as of Flash MX (6).

Valeurs de retour

Return the number of bytes written or FALSE on error.

Voir aussi

SWFMovie->output()
SWFMovie->saveToFile()

Précédent | Sommaire | Suivant
SWFMovie->remove() | Niveau supérieur | SWFMovie->saveToFile()


SWFMovie->setbackground()

(no version information, might be only in CVS)

SWFMovie->setbackground() -- Sets the background color

Description

class SWFMovie {

void setbackground ( int red, int green, int blue )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sets the background color.

Why is there no rgba version? Think about it, you might want to let the HTML background show through. There's a way to do that, but it only works on IE4. Search the http://www.macromedia.com/ site for details.

Liste de paramètres

These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF:

red

Value of red component

green

Value of green component

blue

Value of blue component

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFMovie->saveToFile() | Niveau supérieur | SWFMovie->setDimension()


SWFMovie->setDimension()

(no version information, might be only in CVS)

SWFMovie->setDimension() -- Sets the movie's width and height

Description

class SWFMovie {

void setDimension ( int width, int height )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sets the movie's dimension to the specified width and height.

Liste de paramètres

width

The movie width.

height

The movie height.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFMovie->setbackground() | Niveau supérieur | SWFMovie->setFrames()


SWFMovie->setFrames()

(no version information, might be only in CVS)

SWFMovie->setFrames() -- Sets the total number of frames in the animation

Description

class SWFMovie {

void setFrames ( int number )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sets the total number of frames in the animation to the given number.

Liste de paramètres

number

The number of frames.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFMovie->setDimension() | Niveau supérieur | SWFMovie->setRate()


SWFMovie->setRate()

(no version information, might be only in CVS)

SWFMovie->setRate() -- Sets the animation's frame rate

Description

class SWFMovie {

void setRate ( int rate )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sets the frame rate to the specified rate.

Animation will slow down if the player can't render frames fast enough- unless there's a streaming sound, in which case display frames are sacrificed to keep sound from skipping.

Liste de paramètres

rate

The frame rate, in frame per seconds.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFMovie->setFrames() | Niveau supérieur | SWFMovie->startSound()


SWFMovie->streamMP3()

(no version information, might be only in CVS)

SWFMovie->streamMP3() -- Streams a MP3 file

Description

class SWFMovie {

void streamMP3 ( mixed mp3file [, float skip] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Streams the given MP3 file mp3file.

This method is not very robust in dealing with oddities (can skip over an initial ID3 tag, but that's about it).

Note that the movie isn't smart enough to put enough frames in to contain the entire mp3 stream- you'll have to add (length of song * frames per second) frames to get the entire stream in.

Liste de paramètres

mp3file

Can be a file pointer returned by fopen() or the MP3 data, as a binary string.

skip

Number of seconds to skip.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
5.2.0 | skip added

Exemples

Exemple 1. Streaming example

<?php
$m = new SWFMovie();
$m->setRate(12.0);
$m->streamMp3(file_get_contents("distortobass.mp3"));
// use your own MP3

// The file is 11.85 seconds at 12.0 fps = 142 frames
$m->setFrames(142);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Précédent | Sommaire | Suivant
SWFMovie->stopSound() | Niveau supérieur | SWFMovie->writeExports()


SWFShape->addFill()

(no version information, might be only in CVS)

SWFShape->addFill() -- Adds a solid fill to the shape

Description

class SWFShape {

SWFFill addFill ( int red, int green, int blue [, int a] )

SWFFill addFill ( SWFBitmap bitmap [, int flags] )

SWFFill addFill ( SWFGradient gradient [, int flags] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

SWFShape->addFill() adds a solid fill to the shape's list of fill styles. SWFShape->addFill() accepts three different types of arguments.

red, green, blue is a color (RGB mode). Last parameter a is optional.

The bitmap argument is an SWFBitmap() object. The flags argument can be one of the following values: SWFFILL_CLIPPED_BITMAP, SWFFILL_TILED_BITMAP, SWFFILL_LINEAR_GRADIENT or SWFFILL_RADIAL_GRADIENT. Default is SWFFILL_TILED_BITMAP for SWFBitmap and SWFFILL_LINEAR_GRADIENT for SWFGradient.

The gradient argument is an SWFGradient() object. The flags argument can be one of the following values : SWFFILL_RADIAL_GRADIENT or SWFFILL_LINEAR_GRADIENT. Default is SWFFILL_LINEAR_GRADIENT. I'm sure about this one. Really.

SWFShape->addFill() returns an SWFFill()
object for use with the SWFShape->setLeftFill()
and SWFShape->setRightFill() functions
described below.

Exemples

This simple example will draw a frame on a bitmap. Ah, here's another buglet in the flash player- it doesn't seem to care about the second shape's bitmap's transformation in a morph. According to spec, the bitmap should stretch along with the shape in this example..

Exemple 1. SWFShape->addFill() example

<?php

$p = new SWFMorph();

$b = new SWFBitmap(file_get_contents("alphafill.jpg"));
// use your own bitmap
$width = $b->getWidth();
$height = $b->getHeight();

$s = $p->getShape1();
$f = $s->addFill($b, SWFFILL_TILED_BITMAP);
$f->moveTo(-$width/2, -$height/4);
$f->scaleTo(1.0, 0.5);
$s->setLeftFill($f);
$s->movePenTo(-$width/2, -$height/4);
$s->drawLine($width, 0);
$s->drawLine(0, $height/2);
$s->drawLine(-$width, 0);
$s->drawLine(0, -$height/2);

$s = $p->getShape2();
$f = $s->addFill($b, SWFFILL_TILED_BITMAP);

// these two have no effect!
$f->moveTo(-$width/4, -$height/2);
$f->scaleTo(0.5, 1.0);

$s->setLeftFill($f);
$s->movePenTo(-$width/4, -$height/2);
$s->drawLine($width/2, 0);
$s->drawLine(0, $height);
$s->drawLine(-$width/2, 0);
$s->drawLine(0, -$height);

$m = new SWFMovie();
$m->setDimension($width, $height);
$i = $m->add($p);
$i->moveTo($width/2, $height/2);

for ($n=0; $n<1.001; $n+=0.03) {
    $i->setRatio($n);
    $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Voir aussi

SWFShape->setLeftFill()
SWFShape->setRightFill()

Précédent | Sommaire | Suivant
SWFShape->__construct() | Niveau supérieur | SWFShape->drawArc()


SWFShape->drawCurve()

(no version information, might be only in CVS)

SWFShape->drawCurve() -- Draws a curve (relative)

Description

class SWFShape {

int drawCurve ( int controldx, int controldy, int anchordx, int anchordy [, int targetdx, int targetdy] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape->drawcurve() draws a quadratic curve (using the current line style,set by swfshape->setline()) from the current pen position to the relative position (anchorx,anchory) using relative control point (controlx,controly). That is, head towards the control point, then smoothly turn to the anchor point.

With 6 parameters, it draws a cubic bezier to point (x+targetdx, x+targetdy) with control points (x+controldx, y+controldy) and (x+anchordx, y+anchordy).

Voir aussi

SWFShape->drawCurve()

Précédent | Sommaire | Suivant
SWFShape->drawCubicTo() | Niveau supérieur | SWFShape->drawCurveTo()


SWFShape->drawCurveTo()

(no version information, might be only in CVS)

SWFShape->drawCurveTo() -- Draws a curve

Description

class SWFShape {

int drawCurveTo ( int controlx, int controly, int anchorx, int anchory [, int targetx, int targety] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape->drawcurveto() draws a quadratic curve (using the current line style, set by swfshape->setline()) from the current pen position to (anchorx,anchory) using (controlx,controly) as a control point. That is, head towards the control point, then smoothly turn to the anchor point.

With 6 parameters, it draws a cubic bezier to point (targetx, targety) with control points (controlx, controly) and (anchorx, anchory).

Voir aussi

SWFShape->drawCurveTo()

Précédent | Sommaire | Suivant
SWFShape->drawCurve() | Niveau supérieur | SWFShape->drawGlyph()


SWFShape->drawLine()

(no version information, might be only in CVS)

SWFShape->drawLine() -- Draws a line (relative)

Description

class SWFShape {

void drawLine ( int dx, int dy )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape->drawline() draws a line (using the current line style set by swfshape->setline()) from the current pen position to displacement (dx,dy).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFShape->drawLineTo()

Précédent | Sommaire | Suivant
SWFShape->drawGlyph() | Niveau supérieur | SWFShape->drawLineTo()


SWFShape->drawLineTo()

(no version information, might be only in CVS)

SWFShape->drawLineTo() -- Draws a line

Description

class SWFShape {

void drawLineTo ( int x, int y )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape->setrightfill() draws a line (using the current line style, set by swfshape->setline()) from the current pen position to point (x,y) in the shape's coordinate space.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFShape->drawLine()

Précédent | Sommaire | Suivant
SWFShape->drawLine() | Niveau supérieur | SWFShape->movePen()


SWFShape->movePen()

(no version information, might be only in CVS)

SWFShape->movePen() -- Moves the shape's pen (relative)

Description

class SWFShape {

void movePen ( int dx, int dy )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape->setrightfill() move the shape's pen from coordinates (current x,current y) to (current x + dx, current y + dy) in the shape's coordinate space.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFShape->movePenTo()

Précédent | Sommaire | Suivant
SWFShape->drawLineTo() | Niveau supérieur | SWFShape->movePenTo()


SWFShape->movePenTo()

(no version information, might be only in CVS)

SWFShape->movePenTo() -- Moves the shape's pen

Description

class SWFShape {

void movePenTo ( int x, int y )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape->setrightfill() move the shape's pen to (x,y) in the shape's coordinate space.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFShape->movePen()

Précédent | Sommaire | Suivant
SWFShape->movePen() | Niveau supérieur | SWFShape->setLeftFill()


SWFShape->setLeftFill()

(no version information, might be only in CVS)

SWFShape->setLeftFill() -- Sets left rasterizing color

Description

class SWFShape {

void setLeftFill ( SWFGradient fill )

void setLeftFill ( int red, int green, int blue [, int a] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

What this nonsense is about is, every edge segment borders at most two fills. When rasterizing the object, it's pretty handy to know what those fills are ahead of time, so the swf format requires these to be specified.

swfshape->setleftfill() sets the fill on the left side of the edge- that is, on the interior if you're defining the outline of the shape in a counter-clockwise fashion. The fill object is an SWFFill object returned from one of the addFill functions above.

This seems to be reversed when you're defining a shape in a morph, though. If your browser crashes, just try setting the fill on the other side.

Shortcut for swfshape->setleftfill($s->addfill($r, $g, $b [, $a]));.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFShape->setRightFill()

Précédent | Sommaire | Suivant
SWFShape->movePenTo() | Niveau supérieur | SWFShape->setLine()


SWFShape->setLine()

(no version information, might be only in CVS)

SWFShape->setLine() -- Sets the shape's line style

Description

class SWFShape {

void setLine ( SWFShape shape )

void setLine ( int width, int red, int green, int blue [, int a] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfshape->setline() sets the shape's line style. width is the line's width. If width is 0, the line's style is removed (then, all other arguments are ignored). If width > 0, then line's color is set to red, green, blue. Last parameter a is optional.

You must declare all line styles before you use them (see example).

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

This simple example will draw a big "!#%*@", in funny colors and gracious style.

Exemple 1. swfshape->setline() example

<?php
$s = new SWFShape();
$f1 = $s->addFill(0xff, 0, 0);
$f2 = $s->addFill(0xff, 0x7f, 0);
$f3 = $s->addFill(0xff, 0xff, 0);
$f4 = $s->addFill(0, 0xff, 0);
$f5 = $s->addFill(0, 0, 0xff);

// bug: have to declare all line styles before you use them
$s->setLine(40, 0x7f, 0, 0);
$s->setLine(40, 0x7f, 0x3f, 0);
$s->setLine(40, 0x7f, 0x7f, 0);
$s->setLine(40, 0, 0x7f, 0);
$s->setLine(40, 0, 0, 0x7f);

$f = new SWFFont('Techno.fdb');

$s->setRightFill($f1);
$s->setLine(40, 0x7f, 0, 0);
$s->drawGlyph($f, '!');
$s->movePen($f->getWidth('!'), 0);

$s->setRightFill($f2);
$s->setLine(40, 0x7f, 0x3f, 0);
$s->drawGlyph($f, '#');
$s->movePen($f->getWidth('#'), 0);

$s->setRightFill($f3);
$s->setLine(40, 0x7f, 0x7f, 0);
$s->drawGlyph($f, '%');
$s->movePen($f->getWidth('%'), 0);

$s->setRightFill($f4);
$s->setLine(40, 0, 0x7f, 0);
$s->drawGlyph($f, '*');
$s->movePen($f->getWidth('*'), 0);

$s->setRightFill($f5);
$s->setLine(40, 0, 0, 0x7f);
$s->drawGlyph($f, '@');

$m = new SWFMovie();
$m->setDimension(3000,2000);
$m->setRate(12.0);
$i = $m->add($s);
$i->moveTo(1500-$f->getWidth("!#%*@")/2, 1000+$f->getAscent()/2);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFShape->setLeftFill() | Niveau supérieur | SWFShape->setRightFill()


SWFShape->setRightFill()

(no version information, might be only in CVS)

SWFShape->setRightFill() -- Sets right rasterizing color

Description

class SWFShape {

void setRightFill ( SWFGradient fill )

void setRightFill ( int red, int green, int blue [, int a] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Shortcut for swfshape->setrightfill($s->addfill($r, $g, $b [, $a]));.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFShape->setLeftFill()

Précédent | Sommaire | Suivant
SWFShape->setLine() | Niveau supérieur | SWFSound


SWFSprite->add()

(no version information, might be only in CVS)

SWFSprite->add() -- Adds an object to a sprite

Description

class SWFSprite {

void add ( object object )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfsprite->add() adds a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object.

For displayable types (swfshape(),
swfbutton(), swftext(),
swfaction() or swfsprite()),
this returns a handle  to the object in a display list.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFSprite->__construct() | Niveau supérieur | SWFSprite->labelFrame()


SWFSprite->nextFrame()

(no version information, might be only in CVS)

SWFSprite->nextFrame() -- Moves to the next frame of the animation

Description

class SWFSprite {

void nextFrame ( void )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfsprite->setframes() moves to the next frame of the animation.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFSprite->labelFrame() | Niveau supérieur | SWFSprite->remove()


SWFSprite->remove()

(no version information, might be only in CVS)

SWFSprite->remove() -- Removes an object to a sprite

Description

class SWFSprite {

void remove ( object object )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfsprite->remove() remove a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object
from the sprite.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFSprite->nextFrame() | Niveau supérieur | SWFSprite->setFrames()


SWFSprite->setFrames()

(no version information, might be only in CVS)

SWFSprite->setFrames() -- Sets the total number of frames in the animation

Description

class SWFSprite {

void setFrames ( int number )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfsprite->setframes() sets the total number of frames in the animation to numberofframes.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFSprite->remove() | Niveau supérieur | SWFSprite->startSound()


SWFText->addString()

(no version information, might be only in CVS)

SWFText->addString() -- Draws a string

Description

class SWFText {

void addString ( string string )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext->addstring() draws the string string at the current pen (cursor) location. Pen is at the baseline of the text; i.e., ascending text is in the -y direction.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFText->addUTF8String()

Précédent | Sommaire | Suivant
SWFText->__construct() | Niveau supérieur | SWFText->addUTF8String()


SWFText->getWidth()

(no version information, might be only in CVS)

SWFText->getWidth() -- Computes string's width

Description

class SWFText {

float getWidth ( string string )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Returns the rendered width of the string at the text object's current font, scale, and spacing settings.

Voir aussi

SWFText->getUTF8Width()

Précédent | Sommaire | Suivant
SWFText->getUTF8Width() | Niveau supérieur | SWFText->moveTo()


SWFText->moveTo()

(no version information, might be only in CVS)

SWFText->moveTo() -- Moves the pen

Description

class SWFText {

void moveTo ( int x, int y )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext->moveto() moves the pen (or cursor, if that makes more sense) to (x,y) in text object's coordinate space. If either is zero, though, value in that dimension stays the same. Annoying, should be fixed.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFText->getWidth() | Niveau supérieur | SWFText->setColor()


SWFText->setColor()

(no version information, might be only in CVS)

SWFText->setColor() -- Sets the current text color

Description

class SWFText {

void setColor ( int red, int green, int blue [, int a] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Changes the current text color.

Liste de paramètres

These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF:

red

Value of red component

green

Value of green component

blue

Value of blue component

a

Value of alpha component

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFText->moveTo() | Niveau supérieur | SWFText->setFont()


SWFText->setFont()

(no version information, might be only in CVS)

SWFText->setFont() -- Sets the current font

Description

class SWFText {

void setFont ( string font )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext->setfont() sets the current font to font.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFText->setColor() | Niveau supérieur | SWFText->setHeight()


SWFText->setHeight()

(no version information, might be only in CVS)

SWFText->setHeight() -- Sets the current font height

Description

class SWFText {

void setHeight ( int height )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext->setheight() sets the current font height to height. Default is 240.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFText->setFont() | Niveau supérieur | SWFText->setSpacing()


SWFText->setSpacing()

(no version information, might be only in CVS)

SWFText->setSpacing() -- Sets the current font spacing

Description

class SWFText {

void setSpacing ( float spacing )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftext->setspacing() sets the current font spacing to spacingspacing. Default is 1.0. 0 is all of the letters written at the same point. This doesn't really work that well because it inflates the advance across the letter, doesn't add the same amount of spacing between the letters. I should try and explain that better, prolly. Or just fix the damn thing to do constant spacing. This was really just a way to figure out how letter advances work, anyway.. So nyah.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFText->setHeight() | Niveau supérieur | SWFTextField


SWFTextField->addString()

(no version information, might be only in CVS)

SWFTextField->addString() -- Concatenates the given string to the text field

Description

class SWFTextField {

void addString ( string string )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setname() concatenates the string string to the text field.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFTextField->addChars() | Niveau supérieur | SWFTextField->align()


SWFTextField->align()

(no version information, might be only in CVS)

SWFTextField->align() -- Sets the text field alignment

Description

class SWFTextField {

void align ( int alignement )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->align() sets the text field alignment to alignement. Valid values for alignement are : SWFTEXTFIELD_ALIGN_LEFT, SWFTEXTFIELD_ALIGN_RIGHT, SWFTEXTFIELD_ALIGN_CENTER and SWFTEXTFIELD_ALIGN_JUSTIFY.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFTextField->addString() | Niveau supérieur | SWFTextField->setBounds()


SWFTextField->setBounds()

(no version information, might be only in CVS)

SWFTextField->setBounds() -- Sets the text field width and height

Description

class SWFTextField {

void setBounds ( int width, int height )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setbounds() sets the text field width to width and height to height. If you don't set the bounds yourself, Ming makes a poor guess at what the bounds are.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFTextField->align() | Niveau supérieur | SWFTextField->setColor()


SWFTextField->setColor()

(no version information, might be only in CVS)

SWFTextField->setColor() -- Sets the color of the text field

Description

class SWFTextField {

void setColor ( int red, int green, int blue [, int a] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setcolor() sets the color of the text field. Default is fully opaque black. Color is represented using RGB system.

Liste de paramètres

These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF:

red

Value of red component

green

Value of green component

blue

Value of blue component

a

Value of alpha component

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFTextField->setBounds() | Niveau supérieur | SWFTextField->setFont()


SWFTextField->setFont()

(no version information, might be only in CVS)

SWFTextField->setFont() -- Sets the text field font

Description

class SWFTextField {

void setFont ( string font )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setfont() sets the text field font to the [browser-defined?] font font.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFTextField->setColor() | Niveau supérieur | SWFTextField->setHeight()


SWFTextField->setHeight()

(no version information, might be only in CVS)

SWFTextField->setHeight() -- Sets the font height of this text field font

Description

class SWFTextField {

void setHeight ( int height )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setheight() sets the font height of this text field font to the given height height. Default is 240.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFTextField->setFont() | Niveau supérieur | SWFTextField->setIndentation()


SWFTextField->setIndentation()

(no version information, might be only in CVS)

SWFTextField->setIndentation() -- Sets the indentation of the first line

Description

class SWFTextField {

void setIndentation ( int width )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setindentation() sets the indentation of the first line in the text field, to width.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFTextField->setHeight() | Niveau supérieur | SWFTextField->setLeftMargin()


SWFTextField->setLeftMargin()

(no version information, might be only in CVS)

SWFTextField->setLeftMargin() -- Sets the left margin width of the text field

Description

class SWFTextField {

void setLeftMargin ( int width )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setleftmargin() sets the left margin width of the text field to width. Default is 0.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFTextField->setIndentation() | Niveau supérieur | SWFTextField->setLineSpacing()


SWFTextField->setLineSpacing()

(no version information, might be only in CVS)

SWFTextField->setLineSpacing() -- Sets the line spacing of the text field

Description

class SWFTextField {

void setLineSpacing ( int height )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setlinespacing() sets the line spacing of the text field to the height of height. Default is 40.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFTextField->setLeftMargin() | Niveau supérieur | SWFTextField->setMargins()


SWFTextField->setMargins()

(no version information, might be only in CVS)

SWFTextField->setMargins() -- Sets the margins width of the text field

Description

class SWFTextField {

void setMargins ( int left, int right )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setmargins() set both margins at once, for the man on the go.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFTextField->setLineSpacing() | Niveau supérieur | SWFTextField->setName()


SWFTextField->setName()

(no version information, might be only in CVS)

SWFTextField->setName() -- Sets the variable name

Description

class SWFTextField {

void setName ( string name )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setname() sets the variable name of this text field to name, for form posting and action scripting purposes.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFTextField->setMargins() | Niveau supérieur | SWFTextField->setPadding()


SWFTextField->setRightMargin()

(no version information, might be only in CVS)

SWFTextField->setRightMargin() -- Sets the right margin width of the text field

Description

class SWFTextField {

void setRightMargin ( int width )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield->setrightmargin() sets the right margin width of the text field to width. Default is 0.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFTextField->setPadding() | Niveau supérieur | SWFVideoStream


Fonctions diverses

Manuel PHP
Précédent Suivant

XC. Fonctions diverses

Introduction

Ces fonctions ont été placées là, car elles ne rentraient dans aucune catégorie adéquate.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
ignore_user_abort | "0" | PHP_INI_ALL |
highlight.string | "#DD0000" | PHP_INI_ALL |
highlight.comment | "#FF8000" | PHP_INI_ALL |
highlight.keyword | "#007700" | PHP_INI_ALL |
highlight.bg | "#FFFFFF" | PHP_INI_ALL |
highlight.default | "#0000BB" | PHP_INI_ALL |
highlight.html | "#000000" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

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

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.

CONNECTION_ABORTED (entier)

CONNECTION_NORMAL (entier)

CONNECTION_TIMEOUT (entier)

__COMPILER_HALT_OFFSET__ (entier)

Ajouté en PHP 5.1.

Table des matières
connection_aborted -- Indique si l'internaute a abandonné la connexion HTTP
connection_status -- Retourne les bits de statut de la connexion HTTP
connection_timeout -- Indique si le script a expiré
constant -- Retourne la valeur d'une constante
define -- Définit une constante
defined -- Vérifie l'existence d'une constante
die -- Alias de la fonction exit()
eval -- Exécute une chaîne comme un script PHP
exit -- Termine le script courant
get_browser -- Indique de quoi est capable le navigateur client
__halt_compiler -- Stoppe l'exécution du compilateur
highlight_file -- Colorisation syntaxique d'un fichier
highlight_string -- Applique la syntaxe colorisée à du code PHP
ignore_user_abort -- Active l'interruption de script sur déconnexion du visiteur
pack -- Compacte des données dans une chaîne binaire
php_check_syntax -- Vérifie la syntaxe PHP (et exécute) d'un fichier spécifique
php_strip_whitespace -- Retourne la source sans commentaires ni espaces blancs
show_source -- Alias de highlight_file()
sleep -- Arrête l'exécution durant quelques secondes
sys_getloadavg -- Récupère la charge moyenne du système
time_nanosleep -- Attendre pendant un nombre de secondes et de nanosecondes
time_sleep_until -- Stoppe 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 -- Retarde l'exécution en micro-secondes

Précédent | Sommaire | Suivant
ming_useswfversion | Niveau supérieur | connection_aborted


connection_aborted

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

connection_aborted -- Indique si l'internaute a abandonné la connexion HTTP

Description

int connection_aborted ( void )

connection_aborted() retourne TRUE si le client a abandonné la connexion. Reportez-vous à Gestion des connexions du chapitre Caractéristiques.

Voir aussi connection_status() et ignore_user_abort().

Précédent | Sommaire | Suivant
Fonctions diverses | Niveau supérieur | connection_status


connection_status

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

connection_status -- Retourne les bits de statut de la connexion HTTP

Description

int connection_status ( void )

connection_status() retourne les bits de statut de la connexion. Reportez-vous à la section gestion des connexions pour plus de détails.

Voir aussi connection_aborted() et ignore_user_abort().

Précédent | Sommaire | Suivant
connection_aborted | Niveau supérieur | connection_timeout


connection_timeout

(PHP 3 >= 3.0.7, PHP 4 <= 4.0.4)

connection_timeout -- Indique si le script a expiré

Description

bool connection_timeout ( void )

connection_timeout() retourne TRUE si le script a expiré. Reportez-vous à la section gestion des connexions pour plus de détails.

Déprécié

Cette fonction est dépréciée et n'existe plus depuis PHP 4.0.5.

Voyez la section sur la Gestion de la connexion dans la section Caractéristiques pour plus de détails.

Voir aussi connection_status().

Précédent | Sommaire | Suivant
connection_status | Niveau supérieur | constant


constant

(PHP 4 >= 4.0.4, PHP 5)

constant -- Retourne la valeur d'une constante

Description

mixed constant ( string name )

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

Exemple 1. Exemple avec constant()

<?php
  define ("MAXSIZE", 100);
  echo MAXSIZE;
  echo constant("MAXSIZE");   // identique a la ligne precedente
?>

Voir aussi define(), defined() et la section sur les constantes.

Précédent | Sommaire | Suivant
connection_timeout | Niveau supérieur | define


define

(PHP 3, PHP 4, PHP 5)

define -- Définit une constante

Description

bool define ( string name, mixed value [, bool case_insensitive] )

Définit une constante de nom name et de valeurvalue pendant l'exécution. Voyez la section sur les constantes pour plus de détails sur les constantes.

Le nom de la constante est donné par le paramètre name ; sa valeur est donnée par value.

Le troisième paramètre optionnel case_insensitive est une valeur booléenne. S'il vaut TRUE, le nom de la constante sera insensible à la casse : CONSTANT et Constant représentent des valeurs identiques. Par défaut, ces constantes représenteront des valeurs différentes.

Exemple 1. Définition d'une constante

<?php
define ("CONSTANT", "Bonjour à tous.");
echo CONSTANT; // affiche "Bonjour à tous."
echo Constant; // affiche "Constant" et une alerte

define ("BONJOUR", "Salut toi.",TRUE);
echo BONJOUR; // affiche "Salut toi."
echo Bonjour; // affiche "Salut toi."

?>

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi defined(), constant() et la section sur les constantes.

Précédent | Sommaire | Suivant
constant | Niveau supérieur | defined


defined

(PHP 3, PHP 4, PHP 5)

defined -- Vérifie l'existence d'une constante

Description

bool defined ( string name )

defined() retourne TRUE si la constante nommée name a été définie, et FALSE sinon. Pour tester l'existence d'une fonction utilisez function_exists().

Exemple 1. Vérifier la présence de constantes avec defined()

<?php
if (defined("CONSTANT")){
// Notez que le nom de la constante est entre guillemets
    echo CONSTANT;
    }
?>

Note : Si vous voulez vérifier si une variable existe, utilisez isset() car defined() ne s'applique qu'aux constants. Si vous voulez voir si une fonction existe, utilisez function_exists().

Voir aussi define(), constant(), get_defined_constants(), la section sur les constantes et function_exists().

Précédent | Sommaire | Suivant
define | Niveau supérieur | die


die

(PHP 3, PHP 4, PHP 5)

die -- Alias de la fonction exit()

Description

die() est un alias de la fonction exit().

Précédent | Sommaire | Suivant
defined | Niveau supérieur | eval


eval

(PHP 3, PHP 4, PHP 5)

eval -- Exécute une chaîne comme un script PHP

Description

mixed eval ( string code_str )

eval() évalue la chaîne code_str comme un script PHP. Parmi les utilisations possibles, cette fonction permet de stocker du code dans une base de données, pour utilisation ultérieure. code_str ne doit pas nécessairement contenir des balises d'ouvertures de PHP.

Il faut bien garder en tête que le code passé à eval() doit être valide, y compris les points virgules de fin de lignes et les séquences d'échappement, sinon l'exécution se terminera. Pour mélanger des sorties HTML et du code PHP, vous pouvez utiliser une balise de fermeture de PHP pour quitter le mode PHP.

N'oubliez pas que les variables utilisées dans la fonction eval() resteront accessibles dans le script principal.

Une commande return terminera l'évaluation de la chaîne immédiatement. Depuis PHP 4, eval() retourne NULL sauf si return est appelée dans le code évalué, auquel cas la valeur passée à return est retournée. Dans le cas d'une erreur de syntaxe dans le code évalué, eval() retourne FALSE. Dans le cas d'une erreur fatale dans le code évalué, l'ensemble du script se terminera. En PHP 3, eval() ne retourne pas de valeur.

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.

Astuce : Comme pour toutes les fonctions qui affichent directement des résultats au navigateur, vous pouvez utiliser les fonctions de gestion des sorties pour capturer le contenu de cette fonction et le sauver, par exemple, dans une chaîne.

Voir aussi call_user_func().

Précédent | Sommaire | Suivant
die | Niveau supérieur | exit


exit

(PHP 3, PHP 4, PHP 5)

exit -- Termine le script courant

Description

void exit ( [string status] )

void exit ( int status )

Note : exit() n'est pas une véritable fonction, mais un élément de langage.

Note : PHP >= 4.2.0 n'affiche pas le message status si ce n'est pas un entier entier.

exit() termine l'exécution du script courant. Elle n'a pas de valeur de retour (et pour cause !), mais elle utilisera le message status comme message de fin d'exécution.

Si le paramètre status est un entier, cette valeur pourra être utilisée comme statut de sortie. 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.

Exemple 1. Exemple avec exit()

<?php
$filename = '/chemin/jusqua/fichier';
$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

?>

Note : Cette construction de langage est équivalente à die().

Voir aussi register_shutdown_function().

Précédent | Sommaire | Suivant
eval | Niveau supérieur | get_browser


get_browser

(PHP 3, PHP 4, PHP 5)

get_browser -- Indique de quoi est capable le navigateur client

Description

mixed get_browser ( [string user_agent [, bool return_array]] )

get_browser() essaie de déterminer les capacités du navigateur client. Cela se fait en lisant les informations dans le fichier browscap.ini.

Par défaut, la valeur de HTTP User-Agent est utilisée. Cependant, vous pouvez passer n'importe quelle valeur avec le paramètre optionnel user_agent à get_browser(). Vous pouvez omettre user_agent en passant la valeur NULL.

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.

Depuis PHP 4.3.2, si le paramètre optionnel return_array vaut TRUE, cette fonction retournera un tableau au lieu d'un objet.

Même si browscap.ini contient des informations sur de nombreux clients, il compte sur les utilisateurs pour être mis à jour. Le format du fichier est facilement compréhensible.

L'exemple suivant montre comment on peut lister les informations disponibles :

Exemple 1. Exemple avec get_browser() : liste des capacités du navigateur du client

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser = get_browser(null, true);
print_r($browser);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [css] => 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] =>
)

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.

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 up-to-date 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.

Précédent | Sommaire | Suivant
exit | Niveau supérieur | __halt_compiler


highlight_file

(PHP 4, PHP 5)

highlight_file -- Colorisation syntaxique d'un fichier

Description

mixed highlight_file ( string filename [, bool return] )

highlight_file() affiche la syntaxe colorisée du fichier filename, en utilisant les couleurs définies dans le moteur interne de PHP.

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.

Note : Cette fonction utilise en interne le buffer de sortie avec ce paramètre, il ne peut donc pas être utilisé dans la fonction de callback ob_start().

Note : Le paramètre return a été ajouté en PHP 4.2.0. Avant cela, la fonction se comportait comme si ce paramètre avait sa valeur par défaut à FALSE.

Note : Depuis PHP 4.2.1, cette fonction est aussi affectée par safe_mode et open_basedir.

Attention

Beaucoup de soin doit être apporté lors de l'utilisation de show_source() et 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'information.

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

Voir aussi highlight_string().

Précédent | Sommaire | Suivant
__halt_compiler | Niveau supérieur | highlight_string


highlight_string

(PHP 4, PHP 5)

highlight_string -- Applique la syntaxe colorisée à du code PHP

Description

mixed highlight_string ( string str [, bool return] )

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

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.

Note : Cette fonction utilise en interne le buffer de sortie avec ce paramètre, il ne peut donc pas être utilisé dans la fonction de callback ob_start().

Exemple 1. Exemple avec highlight_string()

<?php
highlight_string('<?php phpinfo(); ?>');
?>

Cet exemple affichera (en PHP 4):

<code><font color="#000000">
<font color="#0000BB">&lt;?php phpinfo</font><font color="#007700">(); </font><font color="#0000BB">?&gt;</font>
</font>
</code>

Cet exemple affichera (en PHP 5):

<code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php phpinfo</span><span style="color: #007700">(); </span><span style="color: #0000BB">?&gt;</span>
</span>
</code>

Note : Le paramètre return est disponible depuis PHP 4.2.0. Auparavant, il prenait la valeur par défaut de FALSE

Voir aussi highlight_file() et show_source().

Précédent | Sommaire | Suivant
highlight_file | Niveau supérieur | ignore_user_abort


ignore_user_abort

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ignore_user_abort -- Active l'interruption de script sur déconnexion du visiteur

Description

int ignore_user_abort ( [bool setting] )

ignore_user_abort() active l'option décidant si, lors de la déconnexion du client, le script doit poursuivre son exécution ou non. La fonction renvoie le paramétrage précédent et elle peut être appelée sans argument pour ne pas changer le paramétrage courant. setting est un booléen, qui active ou désactive l'interruption. Voir le paragraphe sur la gestion des connexions dans le chapitre fonctionnalités pour une description plus complète des manipulations de connexion avec PHP.

Voir aussi connection_aborted() et connection_status().

Précédent | Sommaire | Suivant
highlight_string | Niveau supérieur | pack


pack

(PHP 3, PHP 4, PHP 5)

pack -- Compacte des données dans une chaîne binaire

Description

string pack ( string format [, mixed args [, mixed ...]] )

pack() compacte les arguments args dans une chaîne binaire, suivant le format format. pack() retourne la chaîne binaire.

L'idée vient du Perl et tout le formatage fonctionne de la même façon qu'en Perl, mais quelques formats manquent encore (comme "u"). La chaîne de format est composée d'une série de codes de formats, suivis par un quantificateur optionnel. Le quantificateur peut être un entier ou * pour la répétition indéfinie. Pour les formats a, A, h et H, le quantificateur spécifie combien de caractères d'un argument sont pris; pour @, c'est la position absolue où placer les données, et pour le reste, c'est le nombre de répétitions. Actuellement, les formats suivants sont implémentés.

Tableau 1. Caractères de formatage pour pack()

Code | Description
a | Une chaîne complétée avec NULL
A | Une chaîne complétée avec espace (SPACE)
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 bits dépendant de la machine).
S | entier court non signé (toujours 16 bits, ordre des bits dépendant de la machine).
n | entier cours non signé (toujours 16 bits, ordre des bits big endian)
v | entier cours non signé (toujours 16 bits, ordre des bits little endian)
i | entier signé (taille et ordre des bits dépendants de la machine)
I | entier non signé (taille et ordre des bits dépendants de la machine)
l | entier long signé (toujours 32 bits, ordre des bits dépendant de la machine)
L | entier long non signé (toujours 32 bits, ordre des bits dépendant de la machine)
N | entier long non signé (toujours 32 bits, ordre des bits big endian)
V | entier long non signé (toujours 32 bits, ordre des bits little endian)
f | nombre à virgule flottante (taille et représentation dépendantes de la machine)
d | nombre à virgule flottante double (taille et représentation dépendantes de la machine)
x | caractère NUL
X | Recule d'un caractère
@ | Remplit avec des NUL jusqu'à la position absolue

Exemple 1. Compactage d'une chaîne

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

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.

De plus, notez que PHP enregistre de manière interne et intégrale les valeurs : cette représentation dépend de la machine. Si vous essayez d'enregistrer une valeur trop grande, elle risque d'être convertie et de donner lieu à des effets de bords vicieux.

Voir aussi unpack().

Précédent | Sommaire | Suivant
ignore_user_abort | Niveau supérieur | php_check_syntax


php_check_syntax

(PHP 5 <= 5.0.4)

php_check_syntax -- Vérifie la syntaxe PHP (et exécute) d'un fichier spécifique

Description

bool php_check_syntax ( string file_name [, string &error_message] )

Pour des raisons techniques, cette fonction est dépréciée et supprimée de PHP. Utilisez à la place php -l somefile.php depuis la ligne de commande.

php_check_syntax() effectue une vérification de la syntaxe du fichier filename pour y trouver des erreurs de script. Ceci est similaire à utiliser la commande php -l depuis la ligne de commande mise à part que php_check_syntax() exécutera (mais n'affichera rien) le fichier file_name vérifié. Par exemple, si une fonction est définie dans file_name, cette fonction sera disponible pour le fichier qui exécute php_check_syntax(), mais l'affichage depuis file_name sera supprimée.

Liste de paramètres

file_name

Le nom du fichier à vérifier.

error_message

Si le paramètre error_message est utilisé, il contiendra le message d'erreur généré par la vérification de la syntaxe. error_message est passé par référence.

Valeurs de retour

Retourne TRUE si la vérification a réussie, et FALSE si la vérification échoue ou si le fichier file_name n'a pu être ouvert.

Historique

Version | Description
5.0.5 | Cette fonction a été supprimée de PHP.
5.0.3 | Appel à exit() après php_check_syntax() cause un Segfault.
5.0.1 | error_message est passé par référence.

Exemples

php -l somefile.php

L'exemple ci-dessus va afficher quelque chose de similaire à :

PHP Parse error: unexpected T_STRING in /tmp/somefile.php on line 81

Voir aussi

include()
is_readable()

Précédent | Sommaire | Suivant
pack | Niveau supérieur | php_strip_whitespace


php_strip_whitespace

(PHP 5)

php_strip_whitespace -- Retourne la source sans commentaires ni espaces blancs

Description

string php_strip_whitespace ( string filename )

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

Note : Cette fonction fonctionne comme décrite depuis PHP 5.0.1. Avant, elle ne retournait qu'une chaîne vide. Pour plus de détails concernant ce bogue ainsi que son comportement précédent, lisez le rapport de bogue #29606.

Valeurs de retour

Le code source nettoyé sera retourné en cas de succès ou une chaîne vide en cas d'échec.

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.

Précédent | Sommaire | Suivant
php_check_syntax | Niveau supérieur | show_source


show_source

(PHP 4, PHP 5)

show_source -- Alias de highlight_file()

Description

Cette fonction est un alias de : highlight_file().

Précédent | Sommaire | Suivant
php_strip_whitespace | Niveau supérieur | sleep


sleep

(PHP 3, PHP 4, PHP 5)

sleep -- Arrête l'exécution durant quelques secondes

Description

int sleep ( int seconds )

sleep() retarde l'exécution du programme pendant seconds secondes.

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

?>

L'exemple ci-dessus va afficher :

05:31:23
05:31:33

Voir aussi usleep() et set_time_limit()

Précédent | Sommaire | Suivant
show_source | Niveau supérieur | sys_getloadavg


time_nanosleep

(PHP 5)

time_nanosleep -- Attendre pendant un nombre de secondes et de nanosecondes

Description

mixed time_nanosleep ( int seconds, int nanoseconds )

time_nanosleep() permet d'imposer un délai d'exécution à un programme pendant un nombre de secondes seconds et un nombre de nanosecondes nanoseconds.

seconds doit être un entier positif et nanoseconds doit être un entier positif plus petit que 1 billion.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Voir aussi

sleep(),
usleep() et
set_time_limit().

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 millisecondes.\n";
} else if ($nano === false) {
    echo "Le délai a échoué.\n";
} else if (is_array($nano)) {
    $seconds = $nano['seconds'];
    $nanoseconds = $nano['nanoseconds'];
    echo "Interrompu par un signal.\n";
    echo "Temps restant : $seconds secondes, $nanoseconds nanosecondes.";
}
?>

Note : Cette fonction n'est pas implémentée sous Windows.

Précédent | Sommaire | Suivant
sys_getloadavg | Niveau supérieur | time_sleep_until


uniqid

(PHP 3, PHP 4, PHP 5)

uniqid -- Génère un identifiant unique

Description

string uniqid ( [string prefix [, bool more_entropy]] )

uniqid() retourne un identifiant préfixé unique, basé sur l'heure courante, en micro-secondes. Le paramètre prefix est devenu optionnel en PHP 5, mais peut être utile pour identifier facilement différents hôtes, si vous générez simultanément des fichiers depuis plusieurs hôtes, à la même micro-seconde. Depuis PHP 4.3.1, prefix peut prendre jusqu'à 114 caractères.

Si le paramètre optionnel more_entropy est TRUE, uniqid() ajoutera une entropie "combined LCG" à la fin de la valeur retournée, ce qui renforcera encore l'unicité de l'identifiant.

Sans prefix (préfixe vide), la chaîne retournée fera 13 caractères. Si more_entropy est à TRUE, elle fera 23 caractères.

Note : Le paramètre prefix est obligatoire avant PHP 5.

Si vous voulez utiliser un identifiant unique, ou bien gérer des cookies, il est recommandé d'utiliser un code tel que celui-ci :

Exemple 1. Exemple avec uniqid()

<?php
// Aucun préfixe
// fonctionne uniquement avec PHP 5 et suivants
$token = md5 (uniqid ());

// meilleur, difficile à deviner
$better_token = md5(uniqid(rand(), true));
?>

Ceci va créer un identifiant de 32 caractères (un nombre hexadécimal de 128) qui sera très difficile à prédire.

Précédent | Sommaire | Suivant
time_sleep_until | Niveau supérieur | unpack


unpack

(PHP 3, PHP 4, PHP 5)

unpack -- Déconditionne des données depuis une chaîne binaire

Description

array unpack ( string format, string data )

unpack() déconditionne les données data depuis une chaîne binaire avec le format format. unpack() retourne un tableau contenant les éléments déconditionnés.

unpack() se comporte légèrement différemment de la version Perl car 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 (/).

Exemple 1. Exemple avec unpack()

<?php
  $array = unpack ("c2chars/nint", $binarydata);
?>

Le tableau résultant contiendra les entrées suivantes : "chars1", "chars2" et "int".

Pour plus de détails, reportez-vous à : pack()

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é ".

Voir aussi pack() pour des informations sur les formats disponibles.

Précédent | Sommaire | Suivant
uniqid | Niveau supérieur | usleep


usleep

(PHP 3, PHP 4, PHP 5)

usleep -- Retarde l'exécution en micro-secondes

Description

void usleep ( int micro_seconds )

Retarde l'exécution d'un programme.

Liste de paramètres

micro_seconds

Durée de l'arrêt, en micro-secondes. Une micro-seconde est un millionnième de seconde.

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
5.0.0 | Cette fonction ne fonctionne pas sur les systèmes Windows.

Exemples

Exemple 1. Exemple avec usleep()

<?php

// Heure courante
echo date('h:i:s') . "\n";

// Stoppe pour 2 secondes
usleep(2000000);

// Retour !
echo date('h:i:s') . "\n";

?>

L'exemple ci-dessus va afficher :

11:13:28
11:13:30

Voir aussi

sleep()
set_time_limit()

Précédent | Sommaire | Suivant
unpack | Niveau supérieur | mnoGoSearch


mnoGoSearch

Manuel PHP
Précédent Suivant

XCI. mnoGoSearch

Introduction

Ces fonctions donnent l'accès à mnoGoSearch (anciennement UdmSearch), moteur de recherche du monde libre. mnoGoSearch est un moteur de recherche complet, destiné aux intranets et serveurs web, distribué sous licence GNU. MnoGoSearch offre des fonctionnalités unique, qui en font un excellent outil pour un grand nombre d'applications de recherche dans votre site : recherche de recettes de cuisines ou dans les journaux, recherche dans un site FTP, dans les groupes de news, etc. Il offre un système d'indexation de textes pour les fichiers HTML, PDF et documents textes. MnoGoSearch est constitué de deux parties : l'indexeur, qui effectue les recherches et le moteur de recherche. L'indexeur passe en revue récursivement les sites HTTP, FTP, NEWS ou encore les fichiers locaux, et enregistre des méta-données dans les bases MySQL, pour optimiser les recherches ultérieures. Une fois que tous les documents ont été référencés, ils sont accessibles au moteur de recherche. Celui-ci est utilisable par interface web. Les langages C CGI, Perl et PHP sont supportés pour effectuer les recherches.

Plus de détails sur le site officiel de mnoGoSearch : http://www.mnogosearch.org/.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Pré-requis

Téléchargez mnoGosearch sur le site http://www.mnogosearch.org/ et installez-le sur votre système. Vous aurez besoin de la version 3.1.10 ou plus récente de mnoGoSearch, pour pouvoir utiliser ces fonctions.

Installation

Pour pouvoir les utiliser, vous devez inclure le support en ajoutant l'option --with-mnogosearch. Si vous utilisez cette option sans indiquer le chemin jusqu'à mnogosearch, PHP essaiera de le trouver dans le dossier /usr/local/mnogosearch. Si vous avez installé mnogosearch dans un autre endroit, vous devez l'indiquer comme ceci : --with-mnogosearch=DIR.

Note : PHP supporte naturellement MySQL. Il faut savoir que mnoGoSearch n'est pas compatible avec la bibliothèque interne de PHP, et ne peut fonctionner qu'avec les bibliothèques génériques MySQL. Par conséquent, si vous utilisez mnoGoSearch avec MySQL, indiquez le dossier d'installation de MySQL durant la configuration avec l'option : --with-mnogosearch --with-mysql=/usr.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

UDM_FIELD_URLID (entier)

UDM_FIELD_URL (entier)

UDM_FIELD_CONTENT (entier)

UDM_FIELD_TITLE (entier)

UDM_FIELD_KEYWORDS (entier)

UDM_FIELD_DESC (entier)

UDM_FIELD_DESCRIPTION (entier)

UDM_FIELD_TEXT (entier)

UDM_FIELD_SIZE (entier)

UDM_FIELD_RATING (entier)

UDM_FIELD_SCORE (entier)

UDM_FIELD_MODIFIED (entier)

UDM_FIELD_ORDER (entier)

UDM_FIELD_CRC (entier)

UDM_FIELD_CATEGORY (entier)

UDM_FIELD_LANG (entier)

UDM_FIELD_CHARSET (entier)

UDM_PARAM_PAGE_SIZE (entier)

UDM_PARAM_PAGE_NUM (entier)

UDM_PARAM_SEARCH_MODE (entier)

UDM_PARAM_CACHE_MODE (entier)

UDM_PARAM_TRACK_MODE (entier)

UDM_PARAM_PHRASE_MODE (entier)

UDM_PARAM_CHARSET (entier)

UDM_PARAM_LOCAL_CHARSET (entier)

UDM_PARAM_BROWSER_CHARSET (entier)

UDM_PARAM_STOPTABLE (entier)

UDM_PARAM_STOP_TABLE (entier)

UDM_PARAM_STOPFILE (entier)

UDM_PARAM_STOP_FILE (entier)

UDM_PARAM_WEIGHT_FACTOR (entier)

UDM_PARAM_WORD_MATCH (entier)

UDM_PARAM_MAX_WORD_LEN (entier)

UDM_PARAM_MAX_WORDLEN (entier)

UDM_PARAM_MIN_WORD_LEN (entier)

UDM_PARAM_MIN_WORDLEN (entier)

UDM_PARAM_ISPELL_PREFIXES (entier)

UDM_PARAM_ISPELL_PREFIX (entier)

UDM_PARAM_PREFIXES (entier)

UDM_PARAM_PREFIX (entier)

UDM_PARAM_CROSS_WORDS (entier)

UDM_PARAM_CROSSWORDS (entier)

UDM_PARAM_VARDIR (entier)

UDM_PARAM_DATADIR (entier)

UDM_PARAM_HLBEG (entier)

UDM_PARAM_HLEND (entier)

UDM_PARAM_SYNONYM (entier)

UDM_PARAM_SEARCHD (entier)

UDM_PARAM_QSTRING (entier)

UDM_PARAM_REMOTE_ADDR (entier)

UDM_LIMIT_CAT (entier)

UDM_LIMIT_URL (entier)

UDM_LIMIT_TAG (entier)

UDM_LIMIT_LANG (entier)

UDM_LIMIT_DATE (entier)

UDM_PARAM_FOUND (entier)

UDM_PARAM_NUM_ROWS (entier)

UDM_PARAM_WORDINFO (entier)

UDM_PARAM_WORD_INFO (entier)

UDM_PARAM_SEARCHTIME (entier)

UDM_PARAM_SEARCH_TIME (entier)

UDM_PARAM_FIRST_DOC (entier)

UDM_PARAM_LAST_DOC (entier)

UDM_MODE_ALL (entier)

UDM_MODE_ANY (entier)

UDM_MODE_BOOL (entier)

UDM_MODE_PHRASE (entier)

UDM_CACHE_ENABLED (entier)

UDM_CACHE_DISABLED (entier)

UDM_TRACK_ENABLED (entier)

UDM_TRACK_DISABLED (entier)

UDM_PHRASE_ENABLED (entier)

UDM_PHRASE_DISABLED (entier)

UDM_CROSS_WORDS_ENABLED (entier)

UDM_CROSSWORDS_ENABLED (entier)

UDM_CROSS_WORDS_DISABLED (entier)

UDM_CROSSWORDS_DISABLED (entier)

UDM_PREFIXES_ENABLED (entier)

UDM_PREFIX_ENABLED (entier)

UDM_ISPELL_PREFIXES_ENABLED (entier)

UDM_ISPELL_PREFIX_ENABLED (entier)

UDM_PREFIXES_DISABLED (entier)

UDM_PREFIX_DISABLED (entier)

UDM_ISPELL_PREFIXES_DISABLED (entier)

UDM_ISPELL_PREFIX_DISABLED (entier)

UDM_ISPELL_TYPE_AFFIX (entier)

UDM_ISPELL_TYPE_SPELL (entier)

UDM_ISPELL_TYPE_DB (entier)

UDM_ISPELL_TYPE_SERVER (entier)

UDM_MATCH_WORD (entier)

UDM_MATCH_BEGIN (entier)

UDM_MATCH_SUBSTR (entier)

UDM_MATCH_END (entier)

Table des matières
udm_add_search_limit -- Ajoute différentes limitations de recherche
udm_alloc_agent_array -- Alloue une session mnoGoSearch
udm_alloc_agent -- Alloue une session mnoGoSearch
udm_api_version -- Lit la version de l'API mnoGoSearch
udm_cat_list -- Liste toutes les catégories soeurs d'une catégorie
udm_cat_path -- Lit le chemin de la catégorie courante
udm_check_charset -- Vérifie si un jeu de caractères est supporté par mnogosearch
udm_check_stored -- Vérifie la connexion MnoGoSearch avec le document stocké
udm_clear_search_limits -- Annule toutes les limitations de recherche MnoGoSearch
udm_close_stored -- Ferme la connexion MnoGoSearch avec le document enregistré
udm_crc32 -- Retourne la somme de contrôle CRC32 d'une chaîne
udm_errno -- Numéro d'erreur mnoGoSearch
udm_error -- Message d'erreur mnoGoSearch
udm_find -- Effectue une recherche
udm_free_agent -- Détruit une session mnoGoSearch
udm_free_ispell_data -- Libère la mémoire allouée pour ispell par MnoGoSearch
udm_free_res -- Libère un résultat mnoGoSearch
udm_get_doc_count -- Lit le nombre total de documents dans les bases MnoGoSearch
udm_get_res_field -- Lit un champ de résultat mnoGoSearch
udm_get_res_param -- Lit les paramètres de résultats mnoGoSearch
udm_hash32 -- Retourne une somme de contrôle Hash32
udm_load_ispell_data -- Charge les données ispell
udm_open_stored -- Ouvre une connexion MnoGoSearch avec un document stocké
udm_set_agent_param -- Modifie les paramètres de l'agent MnoGoSearch

Précédent | Sommaire | Suivant
usleep | Niveau supérieur | udm_add_search_limit


udm_add_search_limit

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_add_search_limit -- Ajoute différentes limitations de recherche

Description

bool udm_add_search_limit ( resource agent, int var, string val )

udm_add_search_limit() ajoute différentes limitations de recherche. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

agent - un identifiant d'Agent, obtenu après un appel à udm_alloc_agent().

var - nom du paramètre de limitation.

val - Valeur du paramètre suscité.

var peut prendre les valeurs suivantes :

  • UDM_LIMIT_URL - Définit les limitations sur les URL, pour limiter les recherches à une partie de la base. Ce paramètre supporte les jokers SQL '%' et '_' : '%' remplace n'importe quel nombre de caractères, même zéro caractères, et '_' remplace exactement un caractère. Par exemple, 'http://my.domain.__/catalog' peut remplacer http://my.domain.ru/catalog ou http://my.domain.ua/catalog.

  • UDM_LIMIT_TAG - Définit les limitations par étiquettes. Lors de l'indexation, vous pouvez assigner des étiquettes sur différentes parties d'un site. Les étiquettes de mnoGoSearch 3.1.x sont des lignes, qui peuvent contenir les jokers '%' et '_' : '%' remplace n'importe quel nombre de caractères, même zéro caractères, et '_' remplace exactement un caractère. Par exemple, si vous avez les étiquettes ABCD et ABCE, la limitation de recherche ABC_ limitera la recherche à ces deux étiquettes;

  • UDM_LIMIT_LANG - Définit les limitations par langue.

  • UDM_LIMIT_CAT - Définit les limitations par catégorie. Les catégories sont similaires aux étiquettes, mais elles peuvent être imbriquées. Vous pouvez donc placer des catégories dans d'autres catégories. Vous devez utiliser deux caractères pour chaque niveau. Vous pouvez utiliser des nombres hexadécimaux allant de 0 à F ou bien sûr une base de 36, allant de 0 à Z. Par exemple la catégorie supérieure 'Auto' vaut 01. Si elle a une sous catégorie 'Renault', cette dernière sera repérée par 01 (catégorie mère) suivie de 01 (dans sa catégorie), ce qui donne "0101". Si 'Auto' a une autre sous-catégorie 'Peugeot', cette dernière aura le numéro 02, et sera identifiée par 0102. Si 'Peugeot' a elle-même une autre sous-catégorie, 'Moteur', elle sera numéroté 01, et identifiée uniquement par 010201. Si vous voulez restreindre les recherches à cette catégorie uniquement, passez cat=010201.

  • UDM_LIMIT_DATE - Définit les limitations par date de modification du document.

    Format de la valeur : une chaîne de caractères, dont le premier caractère est < ou >, puis une date au format unixtimestamp. Par exemple :

    Exemple 1.

    <?php
    Udm_Add_Search_Limit    ($udm, UDM_LIMIT_DATE, "&lt;908012006");
    ?>

    Si > est utilisé, la recherche sera limitée aux documents dont la date de modification est plus grande que celle qui a été entrée. Avec <, c'est le contraire.

Précédent | Sommaire | Suivant
mnoGoSearch | Niveau supérieur | udm_alloc_agent_array


udm_alloc_agent_array

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

udm_alloc_agent_array -- Alloue une session mnoGoSearch

Description

resource udm_alloc_agent_array ( array databases )

udm_alloc_agent_array() sert à créer un agent avec des connexions à de multiples bases de données. Le paramètre databases est un tableau qui contient une URL par élément, de manière analogue au premier paramètre de udm_alloc_agent().

Voir aussi udm_alloc_agent().

Précédent | Sommaire | Suivant
udm_add_search_limit | Niveau supérieur | udm_alloc_agent


udm_alloc_agent

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_alloc_agent -- Alloue une session mnoGoSearch

Description

resource udm_alloc_agent ( string dbaddr [, string dbmode] )

udm_alloc_agent() retourne un agent mnogosearch en cas de succès, FALSE en cas d'erreur. udm_alloc_agent() crée une session avec les paramètres de base de données.

dbaddr est une description de base de données formatée comme une URL. Les options (type, hôte, nom de base de données, port, utilisateur ou mot de passe) servent à se connecter à la base de données SQL. Ne passez aucune valeur si vous souhaitez utiliser le support des fichiers texte intégré. Sinon, utilisez le format : DBAddr DBType:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/. Actuellement, les valeurs de DBType possibles sont : mysql, pgsql, msql, solid, mssql, oracle, ibase. En fait, si vous avez ajouté un support natif, cette option est inutile. Mais les utilisateurs ODBC doivent spécifier une des valeurs supportées. Si votre type de base de données n'est pas supporté, utilisez le terme "unknown".

dbmode - Vous pouvez sélectionner le mode de stockage des mots dans la base de données. Si vous indiquez "single", tous les mots seront sotckés dans la même table. Si vous indiquez "multi", ils seront situés dans différentes tables, suivant leur taille. Le mode "multi" est généralement plus rapide, mais requiert plus de tables. Si le mode "crc" est sélectionné, mnoGoSearch enregistrera un entier de 32 bits, calculé avec l'algorithme CRC32, plutôt que des mots. Ce mode requiert moins d'espace disque, et il est beaucoup plus rapide que les modes "single" et "multi". "crc-multi" utilise la même technique de stockage que le mode "crc", mais il stocke aussi les mots dans différentes tables suivant leur taille. Format: DBMode single/multi/crc/crc-multi.

Note : dbaddr et dbmode doit correspondre à ceux qui sont utilisés lors de l'indexation.

Note : En réalité, udm_alloc_agent() n'ouvre pas de connexion, et donc, ne vérifie ni le nom d'utilisateur, ni le mot de passe. La connexion à une base de données et les vérifications des login / mot de passe sont réalisées à l'appel de la fonction udm_find().

Précédent | Sommaire | Suivant
udm_alloc_agent_array | Niveau supérieur | udm_api_version


udm_api_version

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_api_version -- Lit la version de l'API mnoGoSearch

Description

int udm_api_version ( void )

udm_api_version() retourne le numéro de version de l'API mnoGoSearch. Par exemple, si mnoGosearch 3.1.10 est utilisé, udm_api_version() retournera 30110.

udm_api_version() permet aux utilisateurs d'identifier quelles sont les API disponibles. Par exemple, udm_get_doc_count() n'est disponible qu'à partir de mnoGoSearch 3.1.11.

Exemple 1. Exemple avec udm_api_version()

<?php
if (udm_api_version() >= 30111) {
    echo  "Nombre total d'URL dans la base : " . udm_get_doc_count($udm) . "<br />\n";
}
?>

Précédent | Sommaire | Suivant
udm_alloc_agent | Niveau supérieur | udm_cat_list


udm_cat_list

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

udm_cat_list -- Liste toutes les catégories soeurs d'une catégorie

Description

array udm_cat_list ( resource agent, string category )

udm_cat_list() retourne un tableau contenant la liste de toutes les catégories de même niveau que la catégorie category courante. agent est l'identifiant de l'agent retourné par un appel à la fonction udm_alloc_agent().

Cette fonction est pratique pour réaliser des arbres à partir des catégories.

udm_cat_list() retourne un tableau avec le format suivant :

Le tableau est constitué de paires. Les index pairs contiennent les chemins de catégories, les index impairs les noms des catégories correspondantes.

$array[0] contiendra '020300'
  $array[1] contiendra 'Marseille'
  $array[2] contiendra '020301'
  $array[3] contiendra 'Lille'
  $array[4] contiendra '020302'
  $array[5] contiendra 'Lyon'
  ...
 etc.

L'exemple ci-dessus va afficher :

Marseille
  Lille
  Lyon
  ...

Exemple 1. Exemple avec udm_cat_list()

<?php
$cat_list_arr = udm_cat_list($udm_agent,$cat);
$cat_list = '';
for ($i=0; $i<count($cat_list_arr); $i+=2) {
    $path = $cat_list_arr[$i];
    $name = $cat_list_arr[$i+1];
    $cat_list .= '<a href="' . $_SERVER[PHP_SELF] . '?cat=' . $path . '">' . $name . '</a><br />';
}
?>

Voir aussi udm_cat_path().

Précédent | Sommaire | Suivant
udm_api_version | Niveau supérieur | udm_cat_path


udm_cat_path

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

udm_cat_path -- Lit le chemin de la catégorie courante

Description

array udm_cat_path ( resource agent, string category )

udm_cat_path() retourne un tableau listant les catégories depuis la racine jusqu'à la catégorie courante. Le paramètre agent est un identifiant de résultat, obtenu après un appel à udm_alloc_agent.

category - La catégorie courante : celle dont on veut le chemin.

udm_cat_path() retourne un tableau avec le format suivant :

Le tableau est constitué de paires. Les index pairs contiennent les chemins de catégories, les index impairs les noms des catégories correspondantes.

Par exemple, l'appel $array=udm_cat_path($agent, '02031D'); peut retourner le tableau suivant :

$array[0] contiendra ''
 $array[1] contiendra 'Root'
 $array[2] contiendra '02'
 $array[3] contiendra 'Sport'
 $array[4] contiendra '0203'
 $array[5] contiendra 'Foot'
 $array[4] contiendra '02031D'
 $array[5] contiendra 'PSG'

Exemple 1. Spécifier une catégorie avec un format hiérachisé

<?php
//Spécifier le chemin de la catégorie courante avec le format suivant
// '> Root > Sport > Foot > PSG'
  $cat_path_arr = udm_cat_path($udm_agent, $cat);
  $cat_path = '';
  for ($i=0; $i<count($cat_path_arr); $i+=2) {
    $path = $cat_path_arr[$i];
    $name = $cat_path_arr[$i+1];
    $cat_path .= " > <a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a> ";
  }
?>

Voir aussi udm_cat_list().

Précédent | Sommaire | Suivant
udm_cat_list | Niveau supérieur | udm_check_charset


udm_check_charset

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

udm_check_charset -- Vérifie si un jeu de caractères est supporté par mnogosearch

Description

bool udm_check_charset ( resource agent, string charset )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
udm_cat_path | Niveau supérieur | udm_check_stored


udm_check_stored

(PHP 4 >= 4.2.0)

udm_check_stored -- Vérifie la connexion MnoGoSearch avec le document stocké

Description

int udm_check_stored ( resource agent, int link, string doc_id )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
udm_check_charset | Niveau supérieur | udm_clear_search_limits


udm_clear_search_limits

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_clear_search_limits -- Annule toutes les limitations de recherche MnoGoSearch

Description

bool udm_clear_search_limits ( resource agent )

udm_clear_search_limits() annule toutes les limitations de recherche imposées, et retourne TRUE.

Voir aussi udm_add_search_limit().

Précédent | Sommaire | Suivant
udm_check_stored | Niveau supérieur | udm_close_stored


udm_close_stored

(PHP 4 >= 4.2.0)

udm_close_stored -- Ferme la connexion MnoGoSearch avec le document enregistré

Description

int udm_close_stored ( resource agent, int link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
udm_clear_search_limits | Niveau supérieur | udm_crc32


udm_crc32

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

udm_crc32 -- Retourne la somme de contrôle CRC32 d'une chaîne

Description

int udm_crc32 ( resource agent, string str )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
udm_close_stored | Niveau supérieur | udm_errno


udm_errno

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_errno -- Numéro d'erreur mnoGoSearch

Description

int udm_errno ( resource agent )

udm_errno() retourne le numéro d'erreur mnoGoSearch, ou bien 0 s'il n'y en a aucune.

Le paramètre agent est un identifiant de résultat, obtenu après un appel à udm_alloc_agent.

udm_errno() retourne le numéro de l'erreur généré par l'agent agent.

Précédent | Sommaire | Suivant
udm_crc32 | Niveau supérieur | udm_error


udm_error

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_error -- Message d'erreur mnoGoSearch

Description

string udm_error ( resource agent )

udm_errno() retourne le message d'erreur mnoGoSearch, ou une chaîne vide s'il n'y en a pas.

Le paramètre agent est un identifiant de résultat, obtenu après un appel à udm_alloc_agent.

udm_error() retourne le numéro de l'erreur généré par l'agent agent.

Précédent | Sommaire | Suivant
udm_errno | Niveau supérieur | udm_find


udm_find

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_find -- Effectue une recherche

Description

resource udm_find ( resource agent, string query )

udm_add_search_limit() retourne une ressource de résultats en cas de succès, et FALSE en cas d'erreur.

La recherche en elle-même. Le premier argument agent est la session, le second est la requête (query). Pour rechercher, entrez les mots avec lesquels vous voulez faire une recherche, puis cliquez sur le bouton d'envoi. Par exemple, "mysql odbc". Vous ne devez pas utiliser de guillemets doubles ", car ils sont utilisés par mnoGoSearch pour séparer une requête en mots. Avec l'exemple ci-dessus, mnoGoSearch va rechercher les pages contenant "mysql" et/ou "odbc". Les meilleures réponses seront classées en premier, et affichées en tête de liste. Si vous sélectionnez le mode de recherche "tous" ("ALL"), la recherche va retourner les documents qui contiennent l'un ou l'autre des mots que vous avez entré. Dans le cas où vous utilisez le mode "ANY", la recheche retourne la liste des documents qui contiennent l'un ou l'autre des mots. Si vous voulez accéder aux fonctions avancées de recherche, vous pouvez utiliser le mode "BOOL", qui vous permet d'entrer directement des requêtes.

mnoGoSearch utilise les opérateurs booléean suivants :

& - AND, ET logique. Par exemple, "mysql & odbc". mnoGoSearch recherche toutes les URL qui contiennent à la fois les mots "mysql" et "odbc".

| - OR, OU logique. Par exemple, "mysql | odbc". mnoGoSearch recherche toutes les URL qui contiennent soit "mysql", soit "odbc".

~ - NOT, NON logique. Par exemple, "mysql & ~odbc". mnoGoSearch recherche toutes les URL qui contiennent le mot "mysql" mais ne contiennent pas le mot "odbc". Attention : la requête "~odbc" ne trouvera rien !

() - Groupement de commandes pour les requêtes complexes : par exemple, "(mysql | msql) & ~postgres". Le mode par requête est simple et puissant à la fois. Vous pouvez utiliser les commandes booléennes habituelles avec ce mode.

Précédent | Sommaire | Suivant
udm_error | Niveau supérieur | udm_free_agent


udm_free_agent

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_free_agent -- Détruit une session mnoGoSearch

Description

int udm_free_agent ( resource agent )

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Le paramètre agent est l'identifiant agent, obtenu après un appel à udm_alloc_agent().

udm_free_agent() détruit l'agent de recherche créé par udm_alloc_agent().

Précédent | Sommaire | Suivant
udm_find | Niveau supérieur | udm_free_ispell_data


udm_free_ispell_data

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_free_ispell_data -- Libère la mémoire allouée pour ispell par MnoGoSearch

Description

bool udm_free_ispell_data ( int agent )

udm_free_ispell_data() retourne toujours TRUE.

agent - Agent mnoGoSearch obtenu après un appel à udm_alloc_agent().

Note : udm_free_ispell_data() est supportée à partir de la version 3.1.12 de mnoGoSearch et elle ne fait strictement rien avec les versions précédentes.

Précédent | Sommaire | Suivant
udm_free_agent | Niveau supérieur | udm_free_res


udm_free_res

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_free_res -- Libère un résultat mnoGoSearch

Description

bool udm_free_res ( resource res )

udm_free_res() libère la mémoire de tous les résultats générés.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Le paramètre res est un identifiant de résultat, obtenu après un appel à udm_find().

Précédent | Sommaire | Suivant
udm_free_ispell_data | Niveau supérieur | udm_get_doc_count


udm_get_doc_count

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_get_doc_count -- Lit le nombre total de documents dans les bases MnoGoSearch

Description

int udm_get_doc_count ( resource agent )

udm_get_doc_count() retourne le nombre de documents dans les bases de données.

agent - Agent mnoGoSearch obtenu après un appel à udm_alloc_agent().

Note : udm_get_doc_count() est supportée à partir de la version mnoGoSearch 3.1.11 ou plus récent.

Précédent | Sommaire | Suivant
udm_free_res | Niveau supérieur | udm_get_res_field


udm_get_res_field

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_get_res_field -- Lit un champ de résultat mnoGoSearch

Description

string udm_get_res_field ( resource res, int row, int field )

udm_alloc_agent() retourne la valeur du champ field dans la ligne row, du résultat res, et FALSE sinon.

Le paramètre res est un identifiant de résultat, obtenu après un appel à udm-find.

Le paramètre row est le numéro du lien dans la page courante. Il peut valoir de 0 jusqu'à UDM_PARAM_NUM_ROWS-1.

Le paramètre field est l'identifiant de champ, et peut prendre l'une des valeurs suivantes :

  • UDM_FIELD_URL : Champ URL

  • UDM_FIELD_CONTENT : Champ "Content-type" (par exemple, "text/html").

  • UDM_FIELD_CATEGORY - Champ catégorie du document. Utilisez udm_cat_path() pour récupérer le chemin complet de la catégorie courante depuis le dossier racine. (Ce paramètre est valable uniquement depuis la version 4.0.6 de PHP et suivantes.)

  • UDM_FIELD_TITLE : Titre du document.

  • UDM_FIELD_KEYWORDS : Mots-clés du document (balise META KEYWORDS).

  • UDM_FIELD_DESC : Description du document (balise META DESCRIPTION).

  • UDM_FIELD_TEXT : Corps du document (balise body, les premières lignes pour donner une idée du document).

  • UDM_FIELD_SIZE : Taille du document.

  • UDM_FIELD_URLID : Identifiant unique de l'URL.

  • UDM_FIELD_RATING : Score de la page (calculé par mnoGoSearch).

  • UDM_FIELD_MODIFIED : Date de modification au format unixtimestamp.

  • UDM_FIELD_ORDER : Le nombre de documents trouvés.

  • UDM_FIELD_CRC : La valeur CRC du document.

Précédent | Sommaire | Suivant
udm_get_doc_count | Niveau supérieur | udm_get_res_param


udm_get_res_param

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_get_res_param -- Lit les paramètres de résultats mnoGoSearch

Description

string udm_get_res_param ( resource res, int param )

udm_get_res_param() retourne les paramètres de résultats en cas de succès, FALSE en cas d'erreur.

Le paramètre res est un identifiant de résultat, obtenu après un appel à udm_find().

Le paramètre param peut prendre les valeurs suivantes :

  • UDM_PARAM_NUM_ROWS - Nombre de liens trouvés dans le groupe de résultat courant. C'est la valeur de UDM_PARAM_PAGE_SIZE pour tous les groupes, sauf le dernier.

  • UDM_PARAM_FOUND - Nombre total de résultats trouvés.

  • UDM_PARAM_WORDINFO - Informations sur les mots trouvés, c'est-à-dire que la recherche "un bon livre" retournera "un: stopword, bon:5637, livre: 120"

  • UDM_PARAM_SEARCHTIME - Temps de recherche en secondes

  • UDM_PARAM_FIRST_DOC - Le numéro du premier document affiché dans le groupe.

  • UDM_PARAM_LAST_DOC - Le numéro du dernier document affiché dans le groupe.

Précédent | Sommaire | Suivant
udm_get_res_field | Niveau supérieur | udm_hash32


udm_hash32

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

udm_hash32 -- Retourne une somme de contrôle Hash32

Description

int udm_hash32 ( resource agent, string str )

udm_hash32() prend la chaîne str et retourne un nombre presque unique. Cette fonction requiert un agent mnoGoSearch dans le paramètre agent.

Voir aussi udm_alloc_agent().

Précédent | Sommaire | Suivant
udm_get_res_param | Niveau supérieur | udm_load_ispell_data


udm_load_ispell_data

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_load_ispell_data -- Charge les données ispell

Description

bool udm_load_ispell_data ( resource agent, int var, string val1, string val2, int flag )

udm_load_ispell_data() charge des données ispell. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

agent - Agent mnoGoSearch obtenu après un appel à udm_alloc_agent().

var - Paramètre indiquant la source des données ispell.

Après avoir utilisé cette fonction, pensez à libérer les données de la mémoire avec udm_free_ispell_data(), même si vous utilisez le mode UDM_ISPELL_TYPE_SERVER.

Le mode le plus rapide est UDM_ISPELL_TYPE_SERVER. UDM_ISPELL_TYPE_TEXT est plus lent, et UDM_ISPELL_TYPE_DB est le plus lent. Ce classement est vrai pour mnoGoSearch 3.1.10 - 3.1.11. Il est prévu d'accélérer le mode DB dans les versions futures, et cela sera plus rapide que le mode TEXT.

  • UDM_ISPELL_TYPE_DB indique que les données ispell doivent être chargées depuis la base SQL. Dans ce cas, les paramètres val1 et val2 sont ignorés et doivent être laissés vides. flag doit valoir 1.

    Note : flag indique qu'après le chargement des données ispell à partir de la source, elles doivent être triées (c'est nécessaire au bon fonctionnement d'ispell). Dans le cas où vous chargez les données depuis un fichier, il peut y avoir plusieurs appels à udm_load_ispell_data(), et il ne vaut pas la peine de trier les valeurs après chaque appel, mais uniquement à la fin. Étant donné qu'en mode DB, toutes les données sont chargées en une seule fois, ce paramètre doit avoir la valeur de 1. Dans ce mode, en cas d'erreur, par exemple si la table ispell est absente, la fonction retournera FALSE et le code d'erreur, avec son message, seront accessibles avec udm_error() et udm_errno().

    Exemple 1. Exemple avec udm_load_ispell_data()

    <?php
    if (! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_DB,'','',1)) {
          printf("Erreur #%d: '%s'\n", udm_errno($udm), udm_error($udm));
      exit;
    }
    ?>

  • UDM_ISPELL_TYPE_AFFIX indique que les données ispell doivent être chargées depuis un fichier et initie le chargement. Dans ce cas, val1 définit le code de langue en deux lettres, et val2 est le chemin jusqu'aux fichiers. Notez que si vous utilisez un chemin relatif, le module recherche les fichiers non pas dans UDM_CONF_DIR, mais directement avec le chemin courant, où le script est exécuté. En cas d'erreur avec ce mode, si le fichier est absent, la fonction retourne FALSE, et un message d'erreur sera affiché. Les messages d'erreur ne sont pas accessibles avec udm_error() et udm_errno(), puisque ces fonctions ne traitent que les messages SQL. Reportez-vous à la description du paramètre flag.

    Exemple 2. Exemple avec udm_load_ispell_data() et UDM_ISPELL_TYPE_AFFIX

    <?php
    if ((! udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,'en','/opt/ispell/en.aff',0)) ||
         (!     udm_load_ispell_data($udm,UDM_ISPELL_TYPE_AFFIX,'ru','/opt/ispell/ru.aff',0)) ||
         (!     udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,'en','/opt/ispell/en.dict',0)) ||
         (!     udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SPELL,'ru','/opt/ispell/ru.dict',1))) {
         exit;
    }
    ?>

    Note : flag prend la valeur 1 si c'est le dernier appel à cette fonction.

  • UDM_ISPELL_TYPE_SPELL indique que les données ispell doivent être chargées depuis un fichier, et initie le chargement du dictionnaire. Dans ce cas, val1 définit le code langue sur deux lettres, et val2 le chemin du fichier. Notez que si vous utilisez un chemin relatif, le module recherche les fichiers non pas dans UDM_CONF_DIR, mais directement avec le chemin courant, où le script est exécuté. En cas d'erreur avec ce mode, si le fichier est absent, la fonction retourne FALSE, et un message d'erreur sera affiché. Les messages d'erreur ne sont pas accessibles avec udm_error() et udm_errno(), puisque ces fonctions ne traitent que les messages SQL. Reportez-vous à la description du paramètre flag dans UDM_ISPELL_TYPE_DB.

    Exemple 3. Exemple avec udm_load_ispell_data() et UDM_ISPELL_TYPE_SPELL

    <?php
    if ((! Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_AFFIX,'en','/opt/ispell/en.aff',0)) ||
       (!     Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_AFFIX,'ru','/opt/ispell/ru.aff',0)) ||
       (!     Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_SPELL,'en','/opt/ispell/en.dict',0)) ||
       (!     Udm_Load_Ispell_Data($udm,UDM_ISPELL_TYPE_SPELL,'ru','/opt/ispell/ru.dict',1))) {
     exit;
    }
    ?>

    Note : flag prend la valeur 1 si c'est le dernier appel à cette fonction.

  • UDM_ISPELL_TYPE_SERVER active le support des serveurs ispell. val1 indique alors l'adresse de l'hôte qui supporte le serveur ispall. val2 n'est pas encore utilisé, mais dans les cas futurs, il indiquera le numéro de port utilisé par le serveur ispell. flag n'est pas utile, car les données sont déjà triées.

    Les serveurs Spelld lisent les données d'orthographe dans une configuration séparée (par défaut /usr/local/mnogosearch/etc/spelld.conf), les trie et les stocke en mémoire. Avec les clients, le serveur communique de deux façons : vers les indexeurs, tout le contenu de la mémoire est transféré pour que l'indexeur travaille plus vite ; vers le moteur de recherche, il reçoit les mots à normaliser et les rend au client corrigés. Cela permet une plus grande rapidité d'exécution, en comparaison des modes db et text (notamment, les tris et les chargements sont beaucoup plus rapides).

    udm_load_ispell_data() en mode UDM_ISPELL_TYPE_SERVER ne charge pas vraiment les données ispell, mais définit simplement l'adresse du serveur. En fait, le serveur sera automatiquement utilisé par udm_find() lors des recherches. En cas d'erreur, (par exemple si le serveur ispell ne fonctionne pas ou que l'hôte indiqué est invalide), la conversion sera annulée, mais aucun message d'erreur ne sera affiché.

    Note : Cette fonction est disponible à partir de mnoGoSearch 3.1.12.

    Exemple 4. Exemple avec udm_load_ispell_data() et UDM_ISPELL_TYPE_SERVER

    <?php
    if (!udm_load_ispell_data($udm,UDM_ISPELL_TYPE_SERVER,'','',1)) {
        echo     "Erreur au chargement de la bibliothèque ispell sur le serveur<br />\n";
        exit;
    }
    ?>

Précédent | Sommaire | Suivant
udm_hash32 | Niveau supérieur | udm_open_stored


udm_open_stored

(PHP 4 >= 4.2.0)

udm_open_stored -- Ouvre une connexion MnoGoSearch avec un document stocké

Description

int udm_open_stored ( resource agent, string storedaddr )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
udm_load_ispell_data | Niveau supérieur | udm_set_agent_param


udm_set_agent_param

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_set_agent_param -- Modifie les paramètres de l'agent MnoGoSearch

Description

bool udm_set_agent_param ( resource agent, int var, string val )

udm_set_agent_param() définit les paramètres de l'agent mnoGoSearch. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Les paramètres suivants et leurs valeurs sont disponibles :

  • UDM_PARAM_PAGE_NUM - Utilisé pour choisir le numéro de groupe de résultat (les résultats sont retournés par groupe, commençant à 0, avec UDM_PARAM_PAGE_SIZE résultats par page).

  • UDM_PARAM_PAGE_SIZE - Nombre de résultats affichés par page.

  • UDM_PARAM_SEARCH_MODE - Mode de recherche. Les valeurs suivantes sont disponibles : UDM_MODE_ALL - recherche tous les mots ; UDM_MODE_ANY - recherche l'un des mots ; UDM_MODE_PHRASE - recherche une phrase; UDM_MODE_BOOL - recherche booléenne. Voir udm_find() pour plus de détails sur les recherches booléennes.

  • UDM_PARAM_CACHE_MODE - Active/désactive le cache. Lorsque le cache est activé, le moteur de recherche va stocker les résultats sur le disque. Lorsque deux requêtes seront similaires, il pourra retourner les résultats plus rapidement, sans recherche. Valeurs disponibles : UDM_CACHE_ENABLED, UDM_CACHE_DISABLED.

  • UDM_PARAM_TRACK_MODE - Active le mode de suivi de requête. Depuis la version 3.1.2, mnoGoSearch dispose d'un suivi de requête. Notez que ce suivi n'est implémenté qu'avec les versions SQL et n'est pas disponible avec les bases de données intégrées. Pour utiliser ce suivi, vous devez créer des tables de suivi. Pour mysql, utilisez le script create/mysql/track.txt. Lorsque vous effectuez une recherche avec l'interface, ces tables stockeront les mots recherchés ainsi que le nombre de mots trouvés, et la date. Valeurs disponibles : UDM_TRACK_ENABLED, UDM_TRACK_DISABLED.

  • UDM_PARAM_PHRASE_MODE - indique si les index des bases de données utilisent des phrases (paramètre "phrase" dans indexer.conf). Valeurs disponibles : UDM_PHRASE_ENABLED et UDM_PHRASE_DISABLED. Notez bien que si la recherche par phrase est activée (UDM_PHRASE_ENABLED), il est toujours possible de faire des recherches dans d'autres modes, (ANY, ALL, BOOL ou PHRASE). En version 3.1.10 de mnoGoSearch, la recherche par phrase n'est supportée que pour les modes SQL et intégré, tandis qu'en 3.1.11, la recherche par phrase est supportée par le mode cache.

    Exemple de recherche par phrase :

    "Arizona desert" - Cette requête retourne tous les documents qui contiennent les mots "Arizona desert" comme une phrase. Notez que vous devez mettre des guillemets doubles autour des phrases.

  • UDM_PARAM_CHARSET - Définit le jeu de caractères local. Valeurs disponibles : tous les jeux supportés par mnoGoSearch. koi8-r, cp1251, ...

  • UDM_PARAM_STOPFILE - Définit le nom et le chemin du fichier de mots ignorés. Il y a une petite différence avec mnoGoSearch : avec mnoGoSearch, si le chemin est NULL ou relatif, il est utilisé à partir de UDM_CONF_DIR, alors qu'en PHP, le module va rechercher à partir du chemin courant, c'est-à-dire celui du script courant.

  • UDM_PARAM_STOPTABLE - Charge la liste des mots ignorés depuis une table SQL. Vous pouvez utiliser plusieurs tables SQL. Cette commande n'a aucun effet si mnoGoSearch n'a pas été compilé avec le support de base de données.

  • UDM_PARAM_WEIGHT_FACTOR - Représente le poids relatif des différentes parties d'un document. Actuellement, le corps, titre, mots-clés, descriptions et url sont supportés. Pour activer cette fonctionnalité, utilisez le degré 2 de *Weight commands, dans le fichier indexer.conf. Imaginons que vous avez choisi les poids suivants :

    URLWeight 1
    BodyWeight 2
    TitleWeight 4
    KeywordWeight 8
    DescWeight 16

    Comme l'indexeur utilise l'opérateur de bits OR pour mesurer le poids des mots, il est possible que le même mot soit trouvé plusieurs fois dans le même document lors des recherches. Un mot qui n'apparaît qu'une fois dans le corps sera défini par 00000010 (notation binaire). Un mot qui apparaîtra dans plusieurs parties pourra avoir la notation 00011111.

    La valeur de ce paramètre est une chaîne de chiffres hexadécimaux, sous la forme ABCDE. Chaque chiffre est un facteur correspondant à un poids affecté à une partie du document. Por la situation décrite ci-dessus,

    E est le facteur de poids 1 (URL Weight bit)
    D est le facteur de poids 2 (BodyWeight bit)
    C est le facteur de poids 4 (TitleWeight bit)
    B est le facteur de poids 8 (KeywordWeight bit)
    A est le facteur de poids 16 (DescWeight bit)

    Exemples :

    UDM_PARAM_WEIGHT_FACTOR=00001 ne recherche que dans les URL.

    UDM_PARAM_WEIGHT_FACTOR=00100 ne recherche que dans les Titres.

    UDM_PARAM_WEIGHT_FACTOR=11100 recherche dans les Titres, Mots-clés, Description mais pas dans le Corps ou les URL.

    UDM_PARAM_WEIGHT_FACTOR=F9421 recherche dans :

    Description avec un poids de 15 (F hex)
    Mots-clés avec un poids de 9
    Titre avec un poids de 4
    Corps avec un poids de 2
    URL avec un poids de 1

    Si UDM_PARAM_WEIGHT_FACTOR est omis, la valeur par défaut est utilisée.

  • UDM_PARAM_WORD_MATCH - Recherche des mots. Vous pouvez utiliser ce paramètre pour choisir le type de recherche de mots. Cette fonctionnalité n'est valable qu'en mode "single" et "multi", avec les bases SQL ou intégrée. Elle ne fonctionne pas en mode intégré, ni avec d'autres modes, car les CRC ne supportent pas les recherches de sous-chaînes. Les valeurs disponibles sont :

    UDM_MATCH_BEGIN - début de mot;

    UDM_MATCH_END - fin de mot;

    UDM_MATCH_WORD - tout le mot;

    UDM_MATCH_SUBSTR - une sous-partie de mot.

  • UDM_PARAM_MIN_WORD_LEN - définit les tailles extrêmes de mots. Tout mot plus court que la limite inférieure est ignoré. Notez que ce paramètre est inclusif, c'est-à-dire que si UDM_PARAM_MIN_WORD_LEN=3, un mot de 3 caractères ne sera pas ignoré, alors qu'un mot de 2 caractères le sera. Par défaut, la valeur est de 1.

  • UDM_PARAM_ISPELL_PREFIXES - Valeurs possibles : UDM_PREFIXES_ENABLED et UDM_PREFIXES_DISABLED. Ces valeurs activent et désactivent le support des préfixes. Par exemple, si le mot "testé" est placé dans la requête de recherche, les mots tels "test", "tester", etc. seront aussi recherchés. Les suffixes sont supportés par défaut. Les préfixes modifient généralement le sens des mots. Par exemple, si vous cherchez "testé", vous ne souhaitez pas trouver "protesté" ou "contesté". Le support des préfixes peut cependant être utilisé pour des raisons d'orthographe. Pour activer ispell, vous devez charger les données ispell avec la fonction udm_load_ispell_data().

  • UDM_PARAM_CROSS_WORDS - Active ou désactive le support "CROSS_WORDS". Valeurs possibles : UDM_CROSS_WORDS_ENABLED et UDM_CROSS_WORDS_DISABLED.

    La fonctionnalité "CROSS_WORDS" vous permet d'effectuer des recherches dans les balises (entre <a href="xxx"> </a>), pour utiliser le nom du lien. Ce mode fonctionne avec les bases de données SQL et n'est pas supporté par les modes intégrés ou le cache.

    Note : CROSS_WORDS est supporté à partir de mnoGoSearch 3.1.11.

  • UDM_PARAM_VARDIR - spécifie un chemin précis sur le disque où l'indexeur enregistre les données lorsqu'il utilise le cache et les bases de données internes. Par défaut, le dossier /var de l'installation de mnoGoSearch est utilisé. Ce paramètre est disponible en PHP 4.1.0 et plus récent.

Précédent | Sommaire | Suivant
udm_open_stored | Niveau supérieur | Microsoft SQL Server


Sessions Mohawk

Manuel PHP
Précédent Suivant

XCIV. Sessions Mohawk

Introduction

msession est une interface avec un démon de sessions rapides, qui permet de gérer les sessions localement ou à distance. Il est conçu pour fournir une gestion de sessions cohérente pour une ferme de serveurs PHP. Plus d'informations sur les msession et le démon sont disponibles sur le site http://www.mohawksoft.org/?q=node/8.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.3.

Pré-requis

Installation

Pour activer le support de l'extension msession, vous devez compiler PHP avec l'option --with-msession[=DIR], où DIR est le dossier d'installation de msession.

Configuration à l'exécution

Types de ressources

Constantes pré-définies

Table des matières
msession_connect -- Ouvre la connexion au serveur msession
msession_count -- Compte le nombre de sessions
msession_create -- Crée une session
msession_destroy -- Détruit une session
msession_disconnect -- Ferme la connexion au serveur msession
msession_find -- Trouve toutes les sessions avec un nom et une valeur
msession_get_array -- Lit un tableau de variables msession
msession_get_data -- Lit les données de la session
msession_get -- Lit une valeur dans une session
msession_inc -- Incrémente une valeur dans une session
msession_list -- Liste toutes les sessions
msession_listvar -- Liste les sessions contenant une variable
msession_lock -- Verrouille une session
msession_plugin -- Appel une fonction d'échappement dans les plugins de personnalité msession
msession_randstr -- Lit une chaîne aléatoire
msession_set_array -- Définit les variables msession depuis un tableau
msession_set_data -- Définit les données de session
msession_set -- Modifie une valeur dans la session
msession_timeout -- Lit et/ou modifie la durée de vie d'une session
msession_uniq -- Récupère un identifiant unique
msession_unlock -- Déverrouille une session

Précédent | Sommaire | Suivant
PDO_DBLIB DSN | Niveau supérieur | msession_connect


msession_connect

(PHP 4 >= 4.2.0, PHP 5)

msession_connect -- Ouvre la connexion au serveur msession

Description

bool msession_connect ( string host, string port )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
Sessions Mohawk | Niveau supérieur | msession_count


msession_count

(PHP 4 >= 4.2.0, PHP 5)

msession_count -- Compte le nombre de sessions

Description

int msession_count ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_connect | Niveau supérieur | msession_create


msession_create

(PHP 4 >= 4.2.0, PHP 5)

msession_create -- Crée une session

Description

bool msession_create ( string session )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_count | Niveau supérieur | msession_destroy


msession_destroy

(PHP 4 >= 4.2.0, PHP 5)

msession_destroy -- Détruit une session

Description

bool msession_destroy ( string name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_create | Niveau supérieur | msession_disconnect


msession_disconnect

(PHP 4 >= 4.2.0, PHP 5)

msession_disconnect -- Ferme la connexion au serveur msession

Description

void msession_disconnect ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_destroy | Niveau supérieur | msession_find


msession_find

(PHP 4 >= 4.2.0, PHP 5)

msession_find -- Trouve toutes les sessions avec un nom et une valeur

Description

array msession_find ( string name, string value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_disconnect | Niveau supérieur | msession_get_array


msession_get_array

(PHP 4 >= 4.2.0, PHP 5)

msession_get_array -- Lit un tableau de variables msession

Description

array msession_get_array ( string session )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_find | Niveau supérieur | msession_get_data


msession_get_data

(PHP 4 >= 4.2.0, PHP 5)

msession_get_data -- Lit les données de la session

Description

string msession_get_data ( string session )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_get_array | Niveau supérieur | msession_get


msession_get

(PHP 4 >= 4.2.0, PHP 5)

msession_get -- Lit une valeur dans une session

Description

string msession_get ( string session, string name, string value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_get_data | Niveau supérieur | msession_inc


msession_inc

(PHP 4 >= 4.2.0, PHP 5)

msession_inc -- Incrémente une valeur dans une session

Description

string msession_inc ( string session, string name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_get | Niveau supérieur | msession_list


msession_list

(PHP 4 >= 4.2.0, PHP 5)

msession_list -- Liste toutes les sessions

Description

array msession_list ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_inc | Niveau supérieur | msession_listvar


msession_listvar

(PHP 4 >= 4.2.0, PHP 5)

msession_listvar -- Liste les sessions contenant une variable

Description

array msession_listvar ( string name )

Utilisée pour rechercher les sessions ayant des attributs communs.

Valeurs de retour

Retourne un tableau associatif des valeurs que prend la variable de session name dans les différentes sessions en cours.

Précédent | Sommaire | Suivant
msession_list | Niveau supérieur | msession_lock


msession_lock

(PHP 4 >= 4.2.0, PHP 5)

msession_lock -- Verrouille une session

Description

int msession_lock ( string name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_listvar | Niveau supérieur | msession_plugin


msession_plugin

(PHP 4 >= 4.2.0, PHP 5)

msession_plugin -- Appel une fonction d'échappement dans les plugins de personnalité msession

Description

string msession_plugin ( string session, string val [, string param] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_lock | Niveau supérieur | msession_randstr


msession_randstr

(PHP 4 >= 4.2.0, PHP 5)

msession_randstr -- Lit une chaîne aléatoire

Description

string msession_randstr ( int param )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_plugin | Niveau supérieur | msession_set_array


msession_set_array

(PHP 4 >= 4.2.0, PHP 5)

msession_set_array -- Définit les variables msession depuis un tableau

Description

void msession_set_array ( string session, array tuples )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_randstr | Niveau supérieur | msession_set_data


msession_set_data

(PHP 4 >= 4.2.0, PHP 5)

msession_set_data -- Définit les données de session

Description

bool msession_set_data ( string session, string value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_set_array | Niveau supérieur | msession_set


msession_set

(PHP 4 >= 4.2.0, PHP 5)

msession_set -- Modifie une valeur dans la session

Description

bool msession_set ( string session, string name, string value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_set_data | Niveau supérieur | msession_timeout


msession_timeout

(PHP 4 >= 4.2.0, PHP 5)

msession_timeout -- Lit et/ou modifie la durée de vie d'une session

Description

int msession_timeout ( string session [, int param] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_set | Niveau supérieur | msession_uniq


msession_uniq

(PHP 4 >= 4.2.0, PHP 5)

msession_uniq -- Récupère un identifiant unique

Description

string msession_uniq ( int param )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_timeout | Niveau supérieur | msession_unlock


msession_unlock

(PHP 4 >= 4.2.0, PHP 5)

msession_unlock -- Déverrouille une session

Description

int msession_unlock ( string session, int key )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
msession_uniq | Niveau supérieur | mSQL


mSQL

Manuel PHP
Précédent Suivant

XCV. mSQL

Introduction

Ces fonctions vous permettent d'accéder aux bases de données mSQL. Plus d'informations sur mSQL à http://www.hughes.com.au/.

Installation

Pour cela, vous devez compiler PHP avec le support msql, en utilisant l'option de configuration --with-msql[=DIR]. Par défaut, le chemin DIR est /usr/local/msql3.

Note aux utilisateurs Win32 : Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : msql.dll

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
msql.allow_persistent | "1" | PHP_INI_ALL |
msql.max_persistent | "-1" | PHP_INI_ALL |
msql.max_links | "-1" | PHP_INI_ALL |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

msql.allow_persistent bool

Activation ou non des connexions mSQL persistantes.

msql.max_persistent entier

Le nombre maximum de connexions mSQL persistantes par processus.

msql.max_links entier

Le nombre maximum de connexions mSQL par processus, y compris les connexions persistantes.

Types de ressources

Il y a deux types de ressources utilisées dans le module mSQL. Le premier est le lien identifiant la connexion de la base de données, le second, représente le résultat d'une requête.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MSQL_ASSOC (entier)

MSQL_NUM (entier)

MSQL_BOTH (entier)

Exemples

Cet exemple simple vous présente comment vous connecter à une base mSQL pour y lire quelques lignes.

Exemple 1. Exemple d'utilisation avec mSQL

<?php
/* Connexion à la base, sélection de la base de données */
$link = msql_connect('localhost', 'username', 'password')
    or die('Could not connect : ' . msql_error($link));

msql_select_db('database', $link)
    or die('Could not select database');

/* Soumission de la requête */
$query = 'SELECT * FROM my_table';
$result = msql_query($query, $link) or die('Query failed : ' . msql_error($link));

/* Affichage des résultats */
echo "<table>\n";
while ($row = msql_fetch_array($result, MSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($row as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

/* Libération des résultats */
msql_free_result($result);

/* Déconnexion */
msql_close($link);
?>

Table des matières
msql_affected_rows -- Retourne le nombre de lignes affectées
msql_close -- Ferme une connexion mSQL
msql_connect -- Ouvre une connexion mSQL
msql_create_db -- Crée une base de données mSQL
msql_createdb -- Alias de msql_create_db()
msql_data_seek -- Déplace le pointeur interne mSQL
msql_db_query -- Soumet une requête mSQL
msql_dbname -- Alias de msql_result()
msql_drop_db -- Efface une base de données mSQL
msql_error -- Retourne le message d'erreur mSQL
msql_fetch_array -- Lit une ligne sous la forme d'un tableau
msql_fetch_field -- Lit la valeur d'un champ mSQL
msql_fetch_object -- Lit une ligne sous la forme d'un objet
msql_fetch_row -- Retourne une ligne sous la forme d'un tableau
msql_field_flags -- Lit les options de champ msql
msql_field_len -- Lit la taille du champ mSQL
msql_field_name -- Lit le nom du champ msql
msql_field_seek -- Fixe l'offset d'un champ mSQL
msql_field_table -- Lit le nom de la table du champ msql
msql_field_type -- Lit le type de champ mSQL
msql_fieldflags -- Alias de msql_field_flags()
msql_fieldlen -- Alias de msql_field_len()
msql_fieldname -- Alias de msql_field_name()
msql_fieldtable -- Alias de msql_field_table()
msql_fieldtype -- Alias de msql_field_type()
msql_free_result -- Libère le résultat de la mémoire
msql_list_dbs -- Liste les bases de données mSQL sur un serveur
msql_list_fields -- Liste les champs d'une table
msql_list_tables -- Liste les tables mSQL sur une base de données
msql_num_fields -- Retourne le nombre de champs dans un résultat
msql_num_rows -- Retourne le nombre de lignes dans un résultat
msql_numfields -- Alias de msql_num_fields()
msql_numrows -- Alias de msql_num_rows()
msql_pconnect -- Ouvre une connexion persistante à un serveur mSQL
msql_query -- Envoie une requête mSQL
msql_regcase -- Alias de sql_regcase()
msql_result -- Retourne les données de résultat
msql_select_db -- Sélectionne une base de données mSQL
msql_tablename -- Alias de msql_result()
msql -- Alias de msql_db_query()

Précédent | Sommaire | Suivant
msession_unlock | Niveau supérieur | msql_affected_rows


msql_affected_rows

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

msql_affected_rows -- Retourne le nombre de lignes affectées

Description

int msql_affected_rows ( resource result )

msql_affected_rows() retourne le nombre de lignes affectées par la dernière commande INSERT, UPDATE ou DELETE associé au paramètre result.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne le nombre de lignes affectées ou FALSE si une erreur survient.

Voir aussi

msql_query()

Précédent | Sommaire | Suivant
mSQL | Niveau supérieur | msql_close


msql_close

(PHP 3, PHP 4, PHP 5)

msql_close -- Ferme une connexion mSQL

Description

bool msql_close ( [resource link_identifier] )

msql_close() ferme la connexion non persistante au serveur de base de données mSQL associée au paramètre link_identifier.

Notez bien qu'il n'est pas toujours nécessaire d'appeler cette fonction, car les connexions non persistantes seront automatiquement fermées à la fin du script. Voir aussi la libération des ressources.

Liste de paramètres

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

msql_connect()
msql_pconnect()

Précédent | Sommaire | Suivant
msql_affected_rows | Niveau supérieur | msql_connect


msql_connect

(PHP 3, PHP 4, PHP 5)

msql_connect -- Ouvre une connexion mSQL

Description

resource msql_connect ( [string hostname] )

msql_connect() établit une connexion à un serveur mSQL.

Si un deuxième appel est fait à msql_connect(), avec les mêmes arguments, ce ne sera pas une nouvelle connexion qui va être ouverte, mais l'ancienne connexion qui sera utilisée, et son identifiant sera retourné.

Le lien au serveur sera fermé dès la fin du script, ou bien, manuellement, lors de l'appel de msql_close().

Liste de paramètres

hostname

Le nom d'hôte peut aussi inclure un numéro de port, e.g. hostname,port.

Si ce paramètre n'est pas spécifié, la connexion est établie sous la forme d'un socket de domaine Unix, bien plus efficace qu'un socket TCP localhost.

Note : Bien que cette fonction accepte un deux-points (:) en tant que séparateur hôte/port, l'utilisation d'une virgule (,) est préférée.

Valeurs de retour

Retourne un identifiant de connexion positif mSQL en cas de succès, FALSE sinon.

Voir aussi

msql_pconnect()
msql_close()

Précédent | Sommaire | Suivant
msql_close | Niveau supérieur | msql_create_db


msql_create_db

(PHP 3, PHP 4, PHP 5)

msql_create_db -- Crée une base de données mSQL

Description

bool msql_create_db ( string database_name [, resource link_identifier] )

msql_create_db() essaie de créer une nouvelle base de données nommée database_name sur le serveur référencé par l'identifiant link_identifier.

Liste de paramètres

database_name

Le nom de la base de données mSQL.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

msql_drop_db()

Précédent | Sommaire | Suivant
msql_connect | Niveau supérieur | msql_createdb


msql_createdb

(PHP 3, PHP 4, PHP 5)

msql_createdb -- Alias de msql_create_db()

Description

Cette fonction est un alias de : msql_create_db().

Précédent | Sommaire | Suivant
msql_create_db | Niveau supérieur | msql_data_seek


msql_data_seek

(PHP 3, PHP 4, PHP 5)

msql_data_seek -- Déplace le pointeur interne mSQL

Description

bool msql_data_seek ( resource result, int row_number )

msql_data_seek() déplace le pointeur interne de résultat mSQL, et le place à l'offset donné. Le prochain appel à la fonction msql_fetch_row() retournera cette ligne.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

row_number

Le numéro de ligne désiré.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

msql_fetch_array()
msql_fetch_object()
msql_fetch_row()
msql_result()

Précédent | Sommaire | Suivant
msql_createdb | Niveau supérieur | msql_db_query


msql_db_query

(PHP 3, PHP 4, PHP 5)

msql_db_query -- Soumet une requête mSQL

Description

resource msql_db_query ( string database, string query [, resource link_identifier] )

msql_db_query() sélectionne une base de données, et exécute une requête.

Liste de paramètres

database

Le nom de la base de données mSQL.

query

La requête SQL.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un identifiant de requête mSQL positif au résultat de la requête ou FALSE si une erreur survient.

Voir aussi

msql_query()

Précédent | Sommaire | Suivant
msql_data_seek | Niveau supérieur | msql_dbname


msql_dbname

(PHP 3, PHP 4, PHP 5)

msql_dbname -- Alias de msql_result()

Description

Cette fonction est un alias de : msql_result().

Précédent | Sommaire | Suivant
msql_db_query | Niveau supérieur | msql_drop_db


msql_drop_db

(PHP 3, PHP 4, PHP 5)

msql_drop_db -- Efface une base de données mSQL

Description

bool msql_drop_db ( string database_name [, resource link_identifier] )

msql_drop_db() essaie d'effacer une base de données entière sur le serveur référencé par l'identifiant link_identifier.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

msql_create_db()

Précédent | Sommaire | Suivant
msql_dbname | Niveau supérieur | msql_error


msql_error

(PHP 3, PHP 4, PHP 5)

msql_error -- Retourne le message d'erreur mSQL

Description

string msql_error ( void )

msql_error() retourne la dernière erreur retournée par le serveur mSQL. Notez que seul le dernier message est retourné par la fonction msql_error().

Valeurs de retour

Le dernier message d'erreur ou une chaîne vide s'il n'y en a aucune.

Précédent | Sommaire | Suivant
msql_drop_db | Niveau supérieur | msql_fetch_array


msql_fetch_array

(PHP 3, PHP 4, PHP 5)

msql_fetch_array -- Lit une ligne sous la forme d'un tableau

Description

array msql_fetch_array ( resource result [, int result_type] )

msql_fetch_array() est une version évoluée de msql_fetch_row(). En plus d'enregistrer les données dans un tableau à indice numérique, il enregistre aussi les données dans un tableau associatif, en utilisant les noms des champs comme clés.

Il est important de noter que msql_fetch_array() n'est PAS significativement plus lent que msql_fetch_row(), alors qu'elle apporte un confort d'utilisation appréciable.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

result_type

Une constante qui peut prendre les valeurs suivantes : MSQL_ASSOC, MSQL_NUM, et MSQL_BOTH où MSQL_BOTH est la valeur par défaut.

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

Exemples

Exemple 1. Exemple avec msql_fetch_array()

<?php
$con = msql_connect();
if (!$con) {
  die('Problème de connexion avec le serveur : ' . msql_error());
}

if (!msql_select_db('test', $con)) {
  die('Problème de connexion avec la base de données : ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
  die('Problème d\'exécution de la requête : ' . msql_error());
}

while ($row = msql_fetch_array($result, MSQL_ASSOC)) {
  echo $row['id'] . ': ' . $row['name'] . "\n";
}

msql_free_result($result);
?>

Historique

Version | Description
4.3.11 et 5.0.4 | Un bogue a été résolu lors de la récupération des données depuis des colonnes contenant les valeurs NULL. De telles colonnes n'étaient pas placées dans le tableau résultant.

Voir aussi

msql_fetch_row()
msql_fetch_object()
msql_data_seek()
msql_result()

Précédent | Sommaire | Suivant
msql_error | Niveau supérieur | msql_fetch_field


msql_fetch_field

(PHP 3, PHP 4, PHP 5)

msql_fetch_field -- Lit la valeur d'un champ mSQL

Description

object msql_fetch_field ( resource result [, int field_offset] )

msql_fetch_field() sert à lire les informations sur les champs dans certaines requêtes.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position du champs. Si non spécifié, le prochain champs qui n'a pas encore été récupéré par la fonction msql_fetch_field() sera récupéré.

Valeurs de retour

Retourne un objet contenant les informations du champs. Les propriétés de l'objet sont :

  • name - Le nom de la colonne

  • table - Le nom de la table à laquelle les colonnes appartiennent

  • not_null - 1 si la colonne ne peut valoir NULL

  • unique - 1 si la colonne est une clé unique

  • type - Le type de la colonne

Voir aussi

msql_field_seek()

Précédent | Sommaire | Suivant
msql_fetch_array | Niveau supérieur | msql_fetch_object


msql_fetch_object

(PHP 3, PHP 4, PHP 5)

msql_fetch_object -- Lit une ligne sous la forme d'un objet

Description

object msql_fetch_object ( resource result )

msql_fetch_object() est identique à msql_fetch_array(), avec une différence : c'est un objet qui est retourné, à la place d'un tableau. Par conséquent, cela signifie que vous ne pouvez accéder aux valeurs que par les noms des champs, et non plus avec leur offset. (Les nombres sont interdits dans les noms de propriétés).

msql_fetch_object() est aussi rapide que
msql_fetch_array(), et marginalement plus
lente que msql_fetch_row()
(la différence n'est pas significative).

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne un objet dont les propriétés correspondent à la ligne récupérée, ou FALSE si'il n'y a plus de lignes.

Exemples

Exemple 1. Exemple avec msql_fetch_object()

<?php
$con = msql_connect();
if (!$con) {
die('Problème de connexion au serveur : ' . msql_error());
}

if (!msql_select_db('test', $con)) {
die('Problème de connexion à la base de données : ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
die('Problème lors de l\'exécution de la requête : ' . msql_error());
}

while ($row = msql_fetch_object($result, MSQL_ASSOC)) {
echo $row->id . ': ' . $row->name . "\n";
}

msql_free_result($result);
?>

Historique

Version | Description
4.3.11 et 5.0.4 | Un bogue a été résolu lors de la récupération des données depuis des colonnes contenant les valeurs NULL. De telles colonnes n'étaient pas placées dans le tableau résultant.

Voir aussi

msql_fetch_array()
msql_fetch_row()
msql_data_seek()
msql_result()

Précédent | Sommaire | Suivant
msql_fetch_field | Niveau supérieur | msql_fetch_row


msql_fetch_row

(PHP 3, PHP 4, PHP 5)

msql_fetch_row -- Retourne une ligne sous la forme d'un tableau

Description

array msql_fetch_row ( resource result )

msql_fetch_row() récpère une ligne de données depuis le résultat associé avec l'identifiant de requête spécifié. La ligne est retourné sous la forme d'un tableau. Chaque colonne du résultat est stockée dans une ligne du tableau, en commençant à la position 0.

Les appels suivants à la fonction msql_fetch_row() retourneront les prochaines lignes du jeu de résultat, ou FALSE s'il n'y a plus de lignes de disponible.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne un tableau qui correspond à la ligne lue, ou FALSE s'il n'y a plus de lignes de disponible.

Exemples

Exemple 1. Exemple avec msql_fetch_row()

<?php
$con = msql_connect();
if (!$con) {
  die('Problème de connexion au serveur : ' . msql_error());
}

if (!msql_select_db('test', $con)) {
  die('Problème de connexion à la base de données : ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
  die('Problème lors de l\'exécution de la requête : ' . msql_error());
}

while ($row = msql_fetch_row($result)) {
  echo $row[0] . ': ' . $row[1] . "\n";
}

msql_free_result($result);
?>

Historique

Version | Description
4.3.11 et 5.0.4 | Un bogue a été résolu lors de la récupération des données depuis des colonnes contenant les valeurs NULL. De telles colonnes n'étaient pas placées dans le tableau résultant.

Voir aussi

msql_fetch_array()
msql_fetch_object()
msql_data_seek()
msql_result()

Précédent | Sommaire | Suivant
msql_fetch_object | Niveau supérieur | msql_field_flags


msql_field_flags

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

msql_field_flags -- Lit les options de champ msql

Description

string msql_field_flags ( resource result, int field_offset )

msql_field_flags() retourne les options du champ field_offset.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Retourne une chaîne contenant les options du champ correspondant à la clé spécifiée. Cela peut être : primary key not null, not null, primary key, unique not null ou unique.

Précédent | Sommaire | Suivant
msql_fetch_row | Niveau supérieur | msql_field_len


msql_field_len

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

msql_field_len -- Lit la taille du champ mSQL

Description

int msql_field_len ( resource result, int field_offset )

msql_field_len() retourne la taille du champ spécifié.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Retourne la taille du champ spécifié ou FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
msql_field_flags | Niveau supérieur | msql_field_name


msql_field_name

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

msql_field_name -- Lit le nom du champ msql

Description

string msql_field_name ( resource result, int field_offset )

msql_field_name() retourne le nom du champ de l'index spécifié.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Le nom du champ ou FALSE si une erreur survient.

Voir aussi

msql_field_len()

Précédent | Sommaire | Suivant
msql_field_len | Niveau supérieur | msql_field_seek


msql_field_seek

(PHP 3, PHP 4, PHP 5)

msql_field_seek -- Fixe l'offset d'un champ mSQL

Description

bool msql_field_seek ( resource result, int field_offset )

msql_field_seek() recherche l'offset du champ field_offset. Le prochain appel à msql_fetch_field() sans l'argument field_offset, retournera ce champ.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

msql_fetch_field()

Précédent | Sommaire | Suivant
msql_field_name | Niveau supérieur | msql_field_table


msql_field_table

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

msql_field_table -- Lit le nom de la table du champ msql

Description

int msql_field_table ( resource result, int field_offset )

msql_field_table() retourne le nom de la table dans laquelle le champ field a été lu.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Le nom de la table en cas de succès, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
msql_field_seek | Niveau supérieur | msql_field_type


msql_field_type

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

msql_field_type -- Lit le type de champ mSQL

Description

string msql_field_type ( resource result, int field_offset )

msql_field_type() récupère le type du champ spécifié par son index.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

field_offset

La position numérique du champ. La position field_offset commence à 1.

Valeurs de retour

Le type du champ. Une valeur parmis int, char, real, ident, null ou unknown. Cette fonction retourne FALSE si une erreur survient.

Précédent | Sommaire | Suivant
msql_field_table | Niveau supérieur | msql_fieldflags


msql_fieldflags

(PHP 3, PHP 4, PHP 5)

msql_fieldflags -- Alias de msql_field_flags()

Description

msql_fieldflags() est un alias de la fonction msql_field_flags().

Précédent | Sommaire | Suivant
msql_field_type | Niveau supérieur | msql_fieldlen


msql_fieldlen

(PHP 3, PHP 4, PHP 5)

msql_fieldlen -- Alias de msql_field_len()

Description

Cette fonction est un alis de la fonction msql_field_len().

Précédent | Sommaire | Suivant
msql_fieldflags | Niveau supérieur | msql_fieldname


msql_fieldname

(PHP 3, PHP 4, PHP 5)

msql_fieldname -- Alias de msql_field_name()

Description

msql_fieldname() est un alias de la fonction msql_field_name().

Précédent | Sommaire | Suivant
msql_fieldlen | Niveau supérieur | msql_fieldtable


msql_fieldtable

(PHP 3, PHP 4, PHP 5)

msql_fieldtable -- Alias de msql_field_table()

Description

msql_fieldtable() est un alias de la fonction msql_field_table().

Précédent | Sommaire | Suivant
msql_fieldname | Niveau supérieur | msql_fieldtype


msql_fieldtype

(PHP 3, PHP 4, PHP 5)

msql_fieldtype -- Alias de msql_field_type()

Description

msql_fieldtype() est un alias de la fonction msql_field_type().

Précédent | Sommaire | Suivant
msql_fieldtable | Niveau supérieur | msql_free_result


msql_free_result

(PHP 3, PHP 4, PHP 5)

msql_free_result -- Libère le résultat de la mémoire

Description

bool msql_free_result ( resource result )

msql_free_result() libère de la mémoire le résultat associé à l'identifiant de résultat query_identifier. Lorsque PHP a terminé une requête, cette mémoire est libérée, ce qui fait que vous n'aurez pas besoin de cette fonction. Vous pouvez toujours l'utiliser pour vous assurer que vous n'utilisez pas trop de mémoire durant un script.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
msql_fieldtype | Niveau supérieur | msql_list_dbs


msql_list_dbs

(PHP 3, PHP 4, PHP 5)

msql_list_dbs -- Liste les bases de données mSQL sur un serveur

Description

resource msql_list_dbs ( [resource link_identifier] )

msql_list_tables() liste tous les bases de données disponibles sur la base spécifiée par link_identifier.

Liste de paramètres

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un jeu de résultats qui peut être lu par n'importe quelle fonction capable de parcourir un tel résultat, comme msql_fetch_array(). Si une erreur survient, cette fonction retournera FALSE.

Voir aussi

msql_list_tables()
msql_list_fields()

Précédent | Sommaire | Suivant
msql_free_result | Niveau supérieur | msql_list_fields


msql_list_fields

(PHP 3, PHP 4, PHP 5)

msql_list_fields -- Liste les champs d'une table

Description

resource msql_list_fields ( string database, string tablename [, resource link_identifier] )

msql_list_fields() lit les informations de la table tablename.

Liste de paramètres

database

Le nom de la base de données.

tablename

Le nom de la table.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un jeu de résultats pouvant être parcourru par n'importe quelle fonction capable, comme msql_fetch_array(). Si une erreur survient, cette fonction retournera FALSE.

Voir aussi

msql_list_tables()
msql_list_dbs()

Précédent | Sommaire | Suivant
msql_list_dbs | Niveau supérieur | msql_list_tables


msql_list_tables

(PHP 3, PHP 4, PHP 5)

msql_list_tables -- Liste les tables mSQL sur une base de données

Description

resource msql_list_tables ( string database [, resource link_identifier] )

msql_list_tables() liste les tables de la base de données spécifiée par database.

Liste de paramètres

database

Le nom de la base de données.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un jeu de résultats pouvant être parcourru par n'importe quelle fonction capable, comme msql_fetch_array(). Si une erreur survient, cette fonction retournera FALSE.

Voir aussi

msql_list_fields()
msql_list_dbs()

Précédent | Sommaire | Suivant
msql_list_fields | Niveau supérieur | msql_num_fields


msql_num_fields

(PHP 3, PHP 4, PHP 5)

msql_num_fields -- Retourne le nombre de champs dans un résultat

Description

int msql_num_fields ( resource result )

msql_num_fields() retourne le nombre de champs du résultat associé à l'identifiant query_identifier.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne le nombre de champs dans le jeu de résultats.

Voir aussi

msql_query()
msql_fetch_field()
msql_num_rows()

Précédent | Sommaire | Suivant
msql_list_tables | Niveau supérieur | msql_num_rows


msql_num_rows

(PHP 3, PHP 4, PHP 5)

msql_num_rows -- Retourne le nombre de lignes dans un résultat

Description

int msql_num_rows ( resource query_identifier )

msql_num_rows() retourne le nombre de lignes dans d'un jeu de résultat.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

Valeurs de retour

Retourne le nombre de lignes dans le jeu de résultats.

Voir aussi

msql_num_fields()

Précédent | Sommaire | Suivant
msql_num_fields | Niveau supérieur | msql_numfields


msql_numfields

(PHP 3, PHP 4, PHP 5)

msql_numfields -- Alias de msql_num_fields()

Description

msql_numfields() est un alias de la fonction msql_num_fields().

Précédent | Sommaire | Suivant
msql_num_rows | Niveau supérieur | msql_numrows


msql_numrows

(PHP 3, PHP 4, PHP 5)

msql_numrows -- Alias de msql_num_rows()

Description

msql_numrows() est un alias de la fonction msql_num_rows().

Précédent | Sommaire | Suivant
msql_numfields | Niveau supérieur | msql_pconnect


msql_pconnect

(PHP 3, PHP 4, PHP 5)

msql_pconnect -- Ouvre une connexion persistante à un serveur mSQL

Description

resource msql_pconnect ( [string hostname] )

msql_pconnect() se comporte presque comme msql_connect() mais avec deux différences majeures.

D'abord, lors de la connexion, msql_pconnect() cherche si une connexion persistante a déjà été ouverte sur le même hôte. Si une telle connexion est trouvée, elle sera utilisée.

Deuxièmement, la connexion au serveur SQL ne sera pas terminée lors de la fin de l'exécution du script. À la place, le lien restera ouvert pour d'autres connexions futures. (msql_close() ne fermera pas un lien ouvert par msql_pconnect()).

Liste de paramètres

hostname

Le nom de l'hôte peut également inclure un numéro de port. e.g. hostname,port.

Si non spécifié, la connexion est établie sous la forme d'un socket Unix, ce qui est plus efficace d'une connexion via un socket TCP.

Note : Bien que cette fonction accepte un double-point (:) pour séparer l'hôte du port, une virgule (,) est la méthode conseillée.

Valeurs de retour

Retourne un identifiant de connexion mSQL en cas de succès, ou FALSE si une erreur survient.

Voir aussi

msql_connect()
msql_close()

Précédent | Sommaire | Suivant
msql_numrows | Niveau supérieur | msql_query


msql_query

(PHP 3, PHP 4, PHP 5)

msql_query -- Envoie une requête mSQL

Description

resource msql_query ( string query [, resource link_identifier] )

msql_query() envoie une requête à la base de données active, sur le serveur associé à l'identifiant de connexion link_identifier.

Liste de paramètres

query

La requête SQL.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Retourne un identifiant positif de connexion mSQL en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec msql_query()

<?php
$link = msql_connect("dbserver")
or die("Impossible de se connecter au serveur msql : " . msql_error());
msql_select_db("db", $link)
or die("Impossible de sélectionner la base de données 'db': " . msql_error());

$result = msql_query("SELECT * FROM table WHERE id=1", $link);
if (!$result) {
   die("Échec de la requête : " . msql_error());
}

while ($row = msql_fetch_array($result)) {
   echo $row["id"];
}
?>

Voir aussi

msql_db_query()
msql_select_db()
msql_connect()

Précédent | Sommaire | Suivant
msql_pconnect | Niveau supérieur | msql_regcase


msql_regcase

(PHP 3, PHP 4, PHP 5)

msql_regcase -- Alias de sql_regcase()

Description

msql_regcase() est un alias de la fonction sql_regcase().

Précédent | Sommaire | Suivant
msql_query | Niveau supérieur | msql_result


msql_result

(PHP 3, PHP 4, PHP 5)

msql_result -- Retourne les données de résultat

Description

string msql_result ( resource result, int row [, mixed field] )

msql_result() retourne la valeur de la cellule, à la ligne row et l'offset spécifié, field dans le résultat mSQL query_identifier.

Lorsque vous travaillez sur des résutats de grande taille, il est préférable d'utiliser les fonctions qui récupèrent toute la ligne (voir ci-dessous). Comme ces fonctions retournent plusieurs cellules en même temps, elles sont beaucoup plus rapide que msql_result().

Alternatives recommandées :
msql_fetch_row(),
msql_fetch_array() et
msql_fetch_object().

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction msql_query().

row

L'offset de la ligne.

field

Peut être l'offset du champ, ou le nom du champ, le nom de la table, suivi du nom du champ (tablename.fieldname.). Si le nom de la colonne est un alias ('select foo as bar from ...'), utilisez cet alias au lieu du nom de la colonne.

Note : Le fait de spécifier l'offset numérique d'un champ est plus rapide que de spécifier le nom du champ ou bien la forme tablename.fieldname.

Valeurs de retour

Retourne le contenu de la cellule se trouvant à la ligne et à la position spécifiées dans le jeu de résultats mSQL.

Précédent | Sommaire | Suivant
msql_regcase | Niveau supérieur | msql_select_db


msql_select_db

(PHP 3, PHP 4, PHP 5)

msql_select_db -- Sélectionne une base de données mSQL

Description

bool msql_select_db ( string database_name [, resource link_identifier] )

msql_select_db() sélectionne la base de données active sur le serveur associé à link_identifier.

Les appels suivant à msql_query() seront effectués sur la base de données active.

Liste de paramètres

database_name

Le nom de la base de données.

link_identifier

La connexion mSQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction msql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction msql_connect() avait été appelée, et l'utilise.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

msql_connect()
msql_pconnect()
msql_query()

Précédent | Sommaire | Suivant
msql_result | Niveau supérieur | msql_tablename


msql_tablename

(PHP 3, PHP 4, PHP 5)

msql_tablename -- Alias de msql_result()

Description

msql_tablename() est un alias de la fonction msql_result().

Précédent | Sommaire | Suivant
msql_select_db | Niveau supérieur | msql


msql

(PHP 3, PHP 4, PHP 5)

msql -- Alias de msql_db_query()

Description

msql() est un alias de la fonction msql_db_query().

Précédent | Sommaire | Suivant
msql_tablename | Niveau supérieur | Chaînes de caractères multi-octets


Microsoft SQL Server

Manuel PHP
Précédent Suivant

XCII. Microsoft SQL Server

Introduction

Ces fonctions vous permettent d'accéder aux serveurs de données MS SQL.

Pré-requis

Requis pour les plates-formes Windows

Vous avez besoin d'un client MS SQL Client Tools sur votre système, accessible à PHP. Les Client Tools peuvent être installés depuis le CD MS SQL Server CD ou en copiant ntwdblib.dll depuis le dossier \winnt\system32 du serveur MS SQL vers \winnt\system32 sur le serveur PHP. Copier ntwdblib.dll ne fera que fournir le moyen d'accès. La configuration du client requiert l'installation des autres outils.

Pré-requis pour les plates-formes Unix/Linux.

Pour utiliser l'extension MS SQL sur Unix/Linux, vous devez commencer par compiler et installer la bibliothèque FreeTDS. Le code source et les instructions d'installation sont disponibles sur le site de FreeTDS : http://www.freetds.org/

Note : Sur Windows, la libriaire DBLIB de Microsoft est utilisée. Les fonctions qui retournent les noms de colonnes sont basées sur la fonction dbcolname() de DBLIB. DBLIB a été développée pour MS SQL Server 6.x où la longueur maximale de l'identifiant est 30. Pour cette raison, la longueur maximale des colonnes est 30. Sur les plates-formes où FreeTDS est utilisé (Linux), il n'y pas ce problème.

Installation

L'extension MSSQL est activée par la ligne extension=php_mssql.dll dans le fichier php.ini.

Pour que ces fonctions fonctionnent, vous devez compiler PHP avec --with-mssql[=DIR], où DIR est le préfixe d'installation FreeTDS. Et le FreeTDS doit être compilé en utilisant --enable-msdblib.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
mssql.allow_persistent | "1" | PHP_INI_SYSTEM |
mssql.max_persistent | "-1" | PHP_INI_SYSTEM |
mssql.max_links | "-1" | PHP_INI_SYSTEM |
mssql.min_error_severity | "10" | PHP_INI_ALL |
mssql.min_message_severity | "10" | PHP_INI_ALL |
mssql.compatability_mode | "0" | PHP_INI_ALL |
mssql.connect_timeout | "5" | PHP_INI_ALL |
mssql.timeout | "60" | PHP_INI_ALL | Disponible depuis PHP 4.1.0.
mssql.textsize | "-1" | PHP_INI_ALL |
mssql.textlimit | "-1" | PHP_INI_ALL |
mssql.batchsize | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.4.
mssql.datetimeconvert | "1" | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
mssql.secure_connection | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0.
mssql.max_procs | "-1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

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.

MSSQL_ASSOC (entier)

MSSQL_NUM (entier)

MSSQL_BOTH (entier)

SQLTEXT (entier)

SQLVARCHAR (entier)

SQLCHAR (entier)

SQLINT1 (entier)

SQLINT2 (entier)

SQLINT4 (entier)

SQLBIT (entier)

SQLFLT8 (entier)

Table des matières
mssql_bind -- Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante)
mssql_close -- Ferme une connexion MS SQL Server
mssql_connect -- Ouvre une connexion à un serveur MS SQL server
mssql_data_seek -- Déplace le pointeur interne de ligne
mssql_execute -- Exécute une procédure stockée sur un serveur MS SQL
mssql_fetch_array -- Lit une ligne de résultat MS SQL dans un tableau
mssql_fetch_assoc -- Retourne un tableau associatif pour la ligne courant de résultat MS SQL Server
mssql_fetch_batch -- Retourne le prochain lot de lignes MS SQL Server
mssql_fetch_field -- Lit les informations sur le champ
mssql_fetch_object -- Retourne une ligne de résultat MS SQL Server sous la forme d'un objet
mssql_fetch_row -- Lit une ligne de résultat MS SQL dans un tableau numérique
mssql_field_length -- Lit la longueur d'un champ MS SQL Server
mssql_field_name -- Lit le nom d'un champ MS SQL Server
mssql_field_seek -- Fixe la position du pointeur de champ MS SQL Server
mssql_field_type -- Lit le nom d'un champ MS SQL Server
mssql_free_result -- Libère la mémoire des ressources MS SQL Server
mssql_free_statement -- Libère une commande MS SQL Server de la mémoire
mssql_get_last_message -- Retourne le dernier message d'erreur du serveur
mssql_guid_string -- Convertit le GUID binaire de 16 octets en une chaîne de caractères
mssql_init -- Initialise une procédure stockée MS SQL Server locale ou distante
mssql_min_error_severity -- Fixe le niveau de sévérité des erreurs MS SQL Server
mssql_min_message_severity -- Fixe le niveau de sévérité des messages d'erreurs MS SQL Server
mssql_next_result -- Déplace le pointeur interne MS SQL Server au résultat suivant
mssql_num_fields -- Retourne le nombre de champs dans un résultat MS SQL Server
mssql_num_rows -- Retourne le nombre de lignes dans un résultat MS SQL
mssql_pconnect -- Ouvre une connexion persistante à un serveur MS SQL
mssql_query -- Envoie une requête SQL au serveur MS SQL
mssql_result -- Lit les données d'un résultat
mssql_rows_affected -- Retourne le nombre de lignes affectées par une requête MS SQL Server
mssql_select_db -- Sélectionne la base de données MS SQL

Précédent | Sommaire | Suivant
udm_set_agent_param | Niveau supérieur | mssql_bind


mssql_bind

(PHP 4 >= 4.1.0, PHP 5)

mssql_bind -- Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante)

Description

bool mssql_bind ( resource stmt, string param_name, mixed &var, int type [, int is_output [, int is_null [, int maxlen]]] )

Ajoute un paramètre à une procédure stockée MSSQL (locale ou distante).

Liste de paramètres

stmt

Une ressource de requête, obtenue avec la fonction mssql_init().

param_name

Le nom du paramètre, sous la forme d'une chaîne de caractères.

Note : Vous devez ajouter un caractère @, comme dans la synthaxe T-SQL. Voir l'explication dans la documentation de la fonction mssql_execute().

var

La variable PHP que vous voulez lier au paramètre MSSQL. Vous pouvez la passer par valeur, ou par référence pour récupérer les valeurs OUTPUT et RETVAL après l'exécution de la procédure.

type

Une constante parmis : SQLTEXT, SQLVARCHAR, SQLCHAR, SQLINT1, SQLINT2, SQLINT4, SQLBIT, SQLFLT4, SQLFLT8, SQLFLTN.

is_output

Si la valeur est un paramètre OUTPUT ou non. Si c'est un paramètre OUTPUT et que vous ne mentionnez pas, il sera traité comme un paramètre d'entrée normal et aucune erreur ne sera émise.

is_null

Si le paramètre vaut NULL ou non. Le fait de passer NULL comme valeur au paramètre var n'y fera rien.

maxlen

Utilisé avec les valeurs de type char et varchar. Vous devez indiquer la longueur des données, donc, si ce paramètre vaut varchar(50), le type doit être SQLVARCHAR et sa valeur, 50.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec mssql_bind()

<?php

$cn = mssql_connect($DBSERVER, $DBUSER, $DBPASS);
mssql_select_db($DB, $cn);

$sp = mssql_init("WDumpAdd"); // stock le nom de la procédure

mssql_bind($sp, "@productname", stripslashes($newproduct), SQLVARCHAR, false, false, 150);
mssql_bind($sp, "@quantity", stripslashes($newquantity), SQLVARCHAR, false, false, 50);

mssql_execute($sp);
mssql_close($cn);

?>

Voir aussi

mssql_execute()
mssql_free_statement()
mssql_init()

Précédent | Sommaire | Suivant
Microsoft SQL Server | Niveau supérieur | mssql_close


mssql_close

(PHP 3, PHP 4, PHP 5)

mssql_close -- Ferme une connexion MS SQL Server

Description

bool mssql_close ( [resource link_identifier] )

Ferme la connexion à la base MS SQL Server, qui était associée à l'identifiant link_identifier. Si ce dernier n'est pas précisé, la dernière connexion ouverte sera fermée.

Notez qu'il n'est pas nécessaire de fermer les connexions non persistantes aux bases de données, car elles seront fermées automatiquement à la fin du script.

Liste de paramètres

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect().

Cette fonction ne ferme pas les liens persistants générés par la fonction mssql_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

mssql_connect()
mssql_pconnect()

Précédent | Sommaire | Suivant
mssql_bind | Niveau supérieur | mssql_connect


mssql_connect

(PHP 3, PHP 4, PHP 5)

mssql_connect -- Ouvre une connexion à un serveur MS SQL server

Description

resource mssql_connect ( [string servername [, string username [, string password [, bool new_link]]]] )

mssql_connect() établit une connexion à un serveur MS SQL. Le nom du serveur servername doit être valide, comme défini dans les fichiers d'interface.

Le lien avec le serveur sera fermé dès la fin du script, ce qui fait qu'on n'est pas obligé de fermer explicitement la connexion à la fin du script avec mssql_close().

Liste de paramètres

servername

Le serveur MS SQL. Il peut également contenir le numéro du port, . e.g. hostname:port.

username

Le nom d'utilisateur.

password

Le mot de passe.

new_link

Si un deuxième appel est fait à mssql_connect() avec les mêmes arguments, un nouveau lien ne sera pas retourné, mais le lien déjà ouvert sera utilisé. Ce paramètre modifie ce comportement et fait que la fonction mssql_connect() ouvre toujours un nouveau lien, même si la fonction mssql_connect() a été appelée avant, avec les mêmes paramètres.

Valeurs de retour

Retourne un identifiant de lien MS SQL en cas de succès, ou FALSE si une erreur survient.

Voir aussi

mssql_close()
mssql_pconnect()

Précédent | Sommaire | Suivant
mssql_close | Niveau supérieur | mssql_data_seek


mssql_data_seek

(PHP 3, PHP 4, PHP 5)

mssql_data_seek -- Déplace le pointeur interne de ligne

Description

bool mssql_data_seek ( resource result_identifier, int row_number )

mssql_data_seek() déplace le pointeur interne de ligne, dans le résultat result_identifier, jusqu'à la ligne row_number, la première étant numérotée 0. Le prochain appel à mssql_fetch_row() retournera cette ligne.

Liste de paramètres

result_identifier

La ressource de résultat à évaluer.

row_number

Le numéro de la ligne désiré pour le nouveau pointeur de résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
mssql_connect | Niveau supérieur | mssql_execute


mssql_execute

(PHP 4 >= 4.1.0, PHP 5)

mssql_execute -- Exécute une procédure stockée sur un serveur MS SQL

Description

mixed mssql_execute ( resource stmt [, bool skip_results] )

Exécute une procédure stockée sur un serveur MS SQL.

Liste de paramètres

stmt

Le gestionnaire de requête, obtenu avec la fonction mssql_init().

skip_results

Notes

Note : Si la procédure stockée retourne un paramètre ou une valeur, ils seront disponibles après l'appel à la fonction mssql_execute(), à moins que la procédure stockée ne retourne plusieurs résultats. Dans ce cas, utilisez la fonction mssql_next_result() pour passer en revue tous les résultats. Lorsque le dernier résultat aura été traité, les valeurs des paramètres de sortie et les valeurs retournées seront disponibles.

Voir aussi

mssql_bind()
mssql_free_statement()
mssql_init()

Précédent | Sommaire | Suivant
mssql_data_seek | Niveau supérieur | mssql_fetch_array


mssql_fetch_array

(PHP 3, PHP 4, PHP 5)

mssql_fetch_array -- Lit une ligne de résultat MS SQL dans un tableau

Description

array mssql_fetch_array ( resource result [, int result_type] )

mssql_fetch_array() est une version améliorée de mssql_fetch_row(). En plus de stocker les données dans un tableau à index numérique, elle les stocke aussi dans un tableau associatif, en utilisant les noms de colonnes comme clés.

Une chose importante à noter est que mssql_fetch_array() n'est PAS significativement plus lente que mssql_fetch_row(), tandis qu'elle apporte un confort appréciable.

Liste de paramètres

result

La ressource de résultat à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

result_type

Un tableau de types qui doivent être récupérés. C'est une constante et peut prendre les valeurs suivantes : MSSQL_ASSOC, MSSQL_NUM, et la valeur par défaut, MSSQL_BOTH.

Valeurs de retour

Retourne un tableau qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de ligne.

Notes

Note : Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi

mssql_fetch_row()

Précédent | Sommaire | Suivant
mssql_execute | Niveau supérieur | mssql_fetch_assoc


mssql_fetch_assoc

(PHP 4 >= 4.2.0, PHP 5)

mssql_fetch_assoc -- Retourne un tableau associatif pour la ligne courant de résultat MS SQL Server

Description

array mssql_fetch_assoc ( resource result_id )

Retourne un tableau associatif pour la ligne courant de résultat MS SQL Server et déplace le pointeur de données interne au début. mssql_fetch_assoc() est équivalent à mssql_fetch_array() avec le paramètre MSSQL_ASSOC.

Liste de paramètres

result_id

La ressource de résultat à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne un tableau associatif qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de ligne.

Précédent | Sommaire | Suivant
mssql_fetch_array | Niveau supérieur | mssql_fetch_batch


mssql_fetch_batch

(PHP 4 >= 4.0.4, PHP 5)

mssql_fetch_batch -- Retourne le prochain lot de lignes MS SQL Server

Description

int mssql_fetch_batch ( resource result )

Retourne le prochain lot de lignes MS SQL Server.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne le numéro de lot, sous la forme d'un entier.

Exemples

Exemple 1. Exemple avec mssql_fetch_batch()

<?php

$resDb = mssql_connect('localhost', 'user', 'name');
$result = mssql_query('SELECT * FROM MYTABLE', $resDb, 10000);

$intNumRows = mssql_num_rows($result);

while ($intNumRows > 0) {
    while ($arrRow = mssql_fetch_assoc($result)) {
        // Quelques instructions ...
    }
    $intNumRows = mssql_fetch_batch($result);
?>

Précédent | Sommaire | Suivant
mssql_fetch_assoc | Niveau supérieur | mssql_fetch_field


mssql_fetch_field

(PHP 3, PHP 4, PHP 5)

mssql_fetch_field -- Lit les informations sur le champ

Description

object mssql_fetch_field ( resource result [, int field_offset] )

mssql_fetch_field() sert à lire des informations spécifiques à un champ, dans un résultat de requête.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

field_offset

La position numérique du champ. Si l'offset du champ field_offset n'est pas précisé, le prochain champ sera analysé. field_offset commence à 0.

Valeurs de retour

Retourne un objet contenant les informations du champ.

Les propriétés de l'objet sont :

  • name - nom de la colonne. Si la colonne est le résultat d'une fonction, le nom de la colonne sera computed#N, où #N est un numéro de série.

  • column_source - le nom de la table d'où la colonne est originaire.

  • max_length - taille maximale de la colonne.

  • numeric - 1 si la colonne est numérique.

  • type - le type de la colonne.

Voir aussi

mssql_field_seek()

Précédent | Sommaire | Suivant
mssql_fetch_batch | Niveau supérieur | mssql_fetch_object


mssql_fetch_object

(PHP 3, PHP 4, PHP 5)

mssql_fetch_object -- Retourne une ligne de résultat MS SQL Server sous la forme d'un objet

Description

object mssql_fetch_object ( resource result )

mssql_fetch_object() est similaire à mssql_fetch_array(), avec une différence : un objet est retourné, au lieu d'un tableau. Indirectement, cela signifie que vous ne pouvez accéder aux données que par leur nom de champ, et pas par leur offset (les nombres sont illégaux comme nom de propriété).

En terme de vitesse, cette fonction est identique à mssql_fetch_array(), quasiment aussi rapide que mssql_fetch_row() (la différence est non significative).

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne un objet dont les propriétés contiennent les valeurs de la ligne courante dans le résultat result, ou FALSE s'il n'y a plus de ligne.

Notes

Note : Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi

mssql_fetch_array()
mssql_fetch_row()

Précédent | Sommaire | Suivant
mssql_fetch_field | Niveau supérieur | mssql_fetch_row


mssql_fetch_row

(PHP 3, PHP 4, PHP 5)

mssql_fetch_row -- Lit une ligne de résultat MS SQL dans un tableau numérique

Description

array mssql_fetch_row ( resource result )

mssql_fetch_row() lit une ligne dans le résultat result et place les valeurs dans un tableau. Chaque valeur est enregistrée dans un élément du tableau, et les indices commencent à 0.

Les appels suivants à mssql_fetch_row() retourneront la ligne suivante, ou bien FALSE s'il ne reste plus de ligne.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne un tableau qui contient les valeurs de la ligne courante du résultat result ou bien FALSE s'il n'y a plus de ligne à lire.

Notes

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi

mssql_fetch_array()
mssql_fetch_object()
mssql_data_seek()
mssql_fetch_lengths()
mssql_result()

Précédent | Sommaire | Suivant
mssql_fetch_object | Niveau supérieur | mssql_field_length


mssql_field_length

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

mssql_field_length -- Lit la longueur d'un champ MS SQL Server

Description

int mssql_field_length ( resource result [, int offset] )

Retourne la longueur d'un champ numéro offset dans le résultat result.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient de l'appel à la fonction mssql_query().

offset

La position du champ, en commençant à 0. Si ce paramètre est omis, le champ courant sera utilisé.

Valeurs de retour

La longueur du champ spécifié en cas de succès, ou FALSE si une erreur survient.

Notes

Note pour les utilisateurs Windows : À cause d'une limitation dans l'API utilisé par PHP (MS DbLib C API), la longueur des champs VARCHAR est limitée à 255. Si vous avez besoin d'enregistrer plus de données, utilisez un champ TEXT à la place.

Voir aussi

mssql_field_name()
mssql_field_type()

Précédent | Sommaire | Suivant
mssql_fetch_row | Niveau supérieur | mssql_field_name


mssql_field_name

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

mssql_field_name -- Lit le nom d'un champ MS SQL Server

Description

string mssql_field_name ( resource result [, int offset] )

Retourne le nom du champ n°offset du résultat result.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

offset

La position du champ, en commençant à 0. Si ce paramètre est omis, le champ courant sera utilisé.

Valeurs de retour

Le nom du champ spécifié en cas de succès, ou FALSE si une erreur survient.

Voir aussi

mssql_field_length()
mssql_field_type()

Précédent | Sommaire | Suivant
mssql_field_length | Niveau supérieur | mssql_field_seek


mssql_field_seek

(PHP 3, PHP 4, PHP 5)

mssql_field_seek -- Fixe la position du pointeur de champ MS SQL Server

Description

bool mssql_field_seek ( resource result, int field_offset )

Modifie la valeur du pointeur de champ. Lors du prochain appel à mssql_fetch_field() qui ne précisera pas de numéro de champ, le champ fixé par mssql_field_seek() sera retourné.

Liste de paramètres

result

La ressource du résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

field_offset

La position du champ, en commençant à 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

mssql_fetch_field()

Précédent | Sommaire | Suivant
mssql_field_name | Niveau supérieur | mssql_field_type


mssql_field_type

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

mssql_field_type -- Lit le nom d'un champ MS SQL Server

Description

string mssql_field_type ( resource result [, int offset] )

Retourne le type du champ n°offset dans le résultat result.

Liste de paramètres

result

La ressource du résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

offset

La position du champ, en commençant à 0. Si ce paramètre est omis, le champ courant sera utilisé.

Valeurs de retour

Le type du champ spécifié en cas de succès, ou FALSE si une erreur survient.

Voir aussi

mssql_field_length()
mssql_field_name()

Précédent | Sommaire | Suivant
mssql_field_seek | Niveau supérieur | mssql_free_result


mssql_free_result

(PHP 3, PHP 4, PHP 5)

mssql_free_result -- Libère la mémoire des ressources MS SQL Server

Description

bool mssql_free_result ( resource result )

mssql_free_result() n'a besoin d'être appelée que si vous vous inquiétez de l'utilisation excessive de la mémoire durant l'exécution de votre script. La mémoire sera automatiquement libérée à la fin de votre script. Vous devriez appeler mssql_free_result() avec l'identifiant de résultat en tant que paramètre et la mémoire associée sera libérée.

Liste de paramètres

result

La ressource de résultats à libérer. Ce résultat provient de l'appel à la fonction mssql_query().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
mssql_field_type | Niveau supérieur | mssql_free_statement


mssql_free_statement

(PHP 4 >= 4.3.2, PHP 5)

mssql_free_statement -- Libère une commande MS SQL Server de la mémoire

Description

bool mssql_free_statement ( resource stmt )

mssql_free_statement() n'est utile que si vous craignez de consommer trop de mémoire durant l'exécution de votre script. Toute la mémoire consommée par une commande sera libérée lorsque le script se termine. Avec la fonction mssql_free_statement(), la mémoire associée au résultat statement sera libérée.

Liste de paramètres

stmt

La ressource de la requête, obtenue avec la fonction mssql_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

mssql_bind()
mssql_execute()
mssql_init()

Précédent | Sommaire | Suivant
mssql_free_result | Niveau supérieur | mssql_get_last_message


mssql_get_last_message

(PHP 3, PHP 4, PHP 5)

mssql_get_last_message -- Retourne le dernier message d'erreur du serveur

Description

string mssql_get_last_message ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mssql_free_statement | Niveau supérieur | mssql_guid_string


mssql_guid_string

(PHP 4 >= 4.1.0, PHP 5)

mssql_guid_string -- Convertit le GUID binaire de 16 octets en une chaîne de caractères

Description

string mssql_guid_string ( string binary [, int short_format] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mssql_get_last_message | Niveau supérieur | mssql_init


mssql_init

(PHP 4 >= 4.1.0, PHP 5)

mssql_init -- Initialise une procédure stockée MS SQL Server locale ou distante

Description

resource mssql_init ( string sp_name [, resource link_identifier] )

Initialise une procédure stockée MS SQL Server locale ou distante.

Liste de paramètres

sp_name

Le nom d'une procédure stocké, comme ownew.sp_name ou otherdb.owner.sp_name.

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect().

Valeurs de retour

Retourne un identifiant de ressource de requête, à utiliser lors des appels aux fonctions mssql_bind() et mssql_execute(), ou FALSE si une erreur survient.

Voir aussi

mssql_bind()
mssql_execute()
mssql_free_statement()

Précédent | Sommaire | Suivant
mssql_guid_string | Niveau supérieur | mssql_min_error_severity


mssql_min_error_severity

(PHP 3, PHP 4, PHP 5)

mssql_min_error_severity -- Fixe le niveau de sévérité des erreurs MS SQL Server

Description

void mssql_min_error_severity ( int severity )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

severity

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
mssql_init | Niveau supérieur | mssql_min_message_severity


mssql_min_message_severity

(PHP 3, PHP 4, PHP 5)

mssql_min_message_severity -- Fixe le niveau de sévérité des messages d'erreurs MS SQL Server

Description

void mssql_min_message_severity ( int severity )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

severity

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
mssql_min_error_severity | Niveau supérieur | mssql_next_result


mssql_next_result

(PHP 4 >= 4.0.5, PHP 5)

mssql_next_result -- Déplace le pointeur interne MS SQL Server au résultat suivant

Description

bool mssql_next_result ( resource result_id )

Lorsque vous envoyez plus d'une commande SQL au serveur, ou que vous exécutez une procédure stockée avec de multiples résultats, cela va conduire le serveur à retourner plusieurs jeux de lignes. mssql_next_result() va vérifier l'existence de plusieurs résultats disponibles sur le serveur. Si un autre jeu de résultat existe, mssql_next_result() va détruire de résultat précédent et préparer la lecture dans les nouvelles lignes.

Liste de paramètres

result_id

Une ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne TRUE si un jeu de résultats additionnel est disponible, ou FALSE sinon.

Exemples

Exemple 1. Exemple avec mssql_next_result()

<?php
$link = mssql_connect("localhost", "userid", "secret");
mssql_select_db("MyDB", $link);
$sql = "Select * from table1 select * from table2";
$rs = mssql_query($sql, $link);
do {
    while ($row = mssql_fetch_row($rs)) {
    }
} while (mssql_next_result($rs));
mssql_free_result($rs);
mssql_close($link);
?>

Précédent | Sommaire | Suivant
mssql_min_message_severity | Niveau supérieur | mssql_num_fields


mssql_num_fields

(PHP 3, PHP 4, PHP 5)

mssql_num_fields -- Retourne le nombre de champs dans un résultat MS SQL Server

Description

int mssql_num_fields ( resource result )

mssql_num_fields() retourne le nombre de champs dans un résultat.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne le nombre de champs, sous la forme d'un entier.

Voir aussi

mssql_query()
mssql_fetch_field()
mssql_num_rows()

Précédent | Sommaire | Suivant
mssql_next_result | Niveau supérieur | mssql_num_rows


mssql_num_rows

(PHP 3, PHP 4, PHP 5)

mssql_num_rows -- Retourne le nombre de lignes dans un résultat MS SQL

Description

int mssql_num_rows ( resource result )

mssql_num_rows() retourne le nombre de lignes dans le résultat result.

Liste de paramètres

result

La ressource de résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.

Voir aussi

mssql_query()
mssql_fetch_row()

Précédent | Sommaire | Suivant
mssql_num_fields | Niveau supérieur | mssql_pconnect


mssql_pconnect

(PHP 3, PHP 4, PHP 5)

mssql_pconnect -- Ouvre une connexion persistante à un serveur MS SQL

Description

resource mssql_pconnect ( [string servername [, string username [, string password [, bool new_link]]]] )

mssql_pconnect() se comporte comme mssql_connect() mais avec deux différences :

Premièrement, lors de la connexion, la fonction va commencer par rechercher un lien persistant déjà ouvert avec le même hôte, le même nom d'utilisateur, username et le même mot de passe password. Si un tel lien est trouvé, cet identifiant sera retourné, au lieu d'ouvrir une autre connexion.

Deuxièmement, la connexion au serveur SQL ne sera pas fermée à la fin du script, mais restera ouverte, pour d'autres utilisations ultérieures (mssql_close() ne fermera pas un lien établi avec mssql_pconnect()).

C'est pourquoi ce type de lien est dit 'persistant'.

Liste de paramètres

servername

Le serveur MS SQL. Il peut également contenir un numéro de port, e.g. hostname:port.

username

Le nom d'utilisateur

password

Le mot de passe

new_link

Si un deuxième appel est fait à mssql_pconnect() avec les mêmes arguments, un nouveau lien ne sera pas retourné, mais le lien déjà ouvert sera utilisé. Ce paramètre modifie ce comportement et fait que la fonction mssql_pconnect() ouvre toujours un nouveau lien, même si la fonction mssql_pconnect() a été appelée avant, avec les mêmes paramètres.

Valeurs de retour

Retourne un identifiant de lien positif MS SQL en cas de succès, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
mssql_num_rows | Niveau supérieur | mssql_query


mssql_query

(PHP 3, PHP 4, PHP 5)

mssql_query -- Envoie une requête SQL au serveur MS SQL

Description

mixed mssql_query ( string query [, resource link_identifier [, int batch_size]] )

mssql_query() envoie la requête au serveur courant, associé à l'identifiant link_identifier (ou la base par défaut, s'il est omis).

Liste de paramètres

query

Une requête SQL.

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect() ou mssql_pconnect().

Si l'identifiant du lien n'est pas spécifié, le dernier lien ouvert est utilisé. Si aucun lien n'est ouvert, la fonction tente d'établir un lien grâce à la fonction mssql_connect() et l'utilise.

batch_size

Le nombre d'enregistrements dans le buffer.

Valeurs de retour

Retourne une ressource de résultats MS SQL en cas de succès, TRUE si aucun ligne n'est retournée, ou FALSE si une erreur survient.

Voir aussi

mssql_select_db()
mssql_connect()

Précédent | Sommaire | Suivant
mssql_pconnect | Niveau supérieur | mssql_result


mssql_result

(PHP 3, PHP 4, PHP 5)

mssql_result -- Lit les données d'un résultat

Description

string mssql_result ( resource result, int row, mixed field )

mssql_result() retourne la valeur de la colonne, à la ligne donnée, dans le résultat MS SQL.

Liste de paramètres

result

La ressource du résultats à évaluer. Ce résultat provient d'un appel à la fonction mssql_query().

row

Le numéro de la ligne.

field

Peut être la position du champ, le nom du champ ou le nom de la table, suivi d'un point, suivi du nom du champ (tablename.fieldname). Si l'on a fourni un alias au nom de la colonne ('select foo as bar from...'), cet alias sera utilisé à la place du nom de la colonne.

Note : Le fait de spécifier la position numérique pour l'argument field est plus rapide que de spécifier un nom de champ ou la forme tablename.fieldname.

Valeurs de retour

Retourne le contenu de la cellule spécifié.

Notes

Note : Lorsque vous travaillez sur des résultats de grande taille, il vaut mieux utiliser les fonctions qui récupèrent toute une ligne (voir ci-après). Comme ces fonctions lisent toutes les valeurs en une passe, elles sont EXTREMEMENT PLUS RAPIDES que mssql_result().

Voir aussi

Alternatives recommandées :

mssql_fetch_row()
mssql_fetch_array()
mssql_fetch_object()

Précédent | Sommaire | Suivant
mssql_query | Niveau supérieur | mssql_rows_affected


mssql_rows_affected

(PHP 4 >= 4.0.4, PHP 5)

mssql_rows_affected -- Retourne le nombre de lignes affectées par une requête MS SQL Server

Description

int mssql_rows_affected ( resource link_identifier )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect() ou mssql_pconnect().

Précédent | Sommaire | Suivant
mssql_result | Niveau supérieur | mssql_select_db


mssql_select_db

(PHP 3, PHP 4, PHP 5)

mssql_select_db -- Sélectionne la base de données MS SQL

Description

bool mssql_select_db ( string database_name [, resource link_identifier] )

mssql_select_db() sélectionne la base de données active.

Tous les appels à mssql_query() seront faits dans cette base.

Liste de paramètres

database_name

Le nom de la base de données.

Pour échapper le nom de la base de données qui contient des espaces, des tirets ("-") ou tous autres caractères spéciaux, le nom de la base de données doit être entourré de crochets ([]), comme montré dans l'exemple ci-dessous. Cette technique peut également être appliquée lors de la sélection d'un nom de base de données qui est aussi un mot réservé (comme primary).

link_identifier

Un identifiant de lien MS SQL, retourné par la fonction mssql_connect() ou mssql_pconnect().

Si aucun identifiant de lien n'est spécifié, le dernier lien ouvert sera utilisé. Si aucun lien n'est ouvert, la fonction tentera d'établir un lien en utilisant la fonction mssql_connect() et l'utilisera.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec mssql_select_db()

<?php
$conn = mssql_connect('MYSQLSERVER', 'sa', 'password');
mssql_select_db('[ma base de donnees]', $conn);
?>

Voir aussi

mssql_connect()
mssql_pconnect()
mssql_query()

Précédent | Sommaire | Suivant
mssql_rows_affected | Niveau supérieur | Microsoft SQL Server et Fonctions Sybase (PDO_DBLIB)


Fonctions muscat

Manuel PHP
Précédent Suivant

XCVII. Fonctions muscat

Introduction

Cette extension fournit une interface au système de recherche Muscat 3.6. Muscat n'existe plus, mais le projet Xapian peut vous fournir une bonne alternative.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Installation

Ces fonctions ne sont disponibles que si PHP a été compilé avec --with-muscat[=DIR].

Types de ressources

Cette extension définit le gestionnaire de session Muscat retourné par les fonctions muscat_setup_net() et muscat_setup().

Table des matières
muscat_close -- Ferme la connexion à muscat
muscat_get -- Lit la réponse de l'API muscat
muscat_give -- Envoie une chaîne à l'API de base muscat
muscat_setup_net -- Crée une nouvelle session muscat
muscat_setup -- Crée une nouvelle session

Précédent | Sommaire | Suivant
mb_substr | Niveau supérieur | muscat_close


muscat_close

(4.0.5 - 4.2.3 only, PECL)

muscat_close -- Ferme la connexion à muscat

Description

void muscat_close ( resource muscat_handle )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ferme la session muscat et libère la mémoire.

Liste de paramètres

muscat_handle

Un gestionnaire de session muscat, retourné par la fonction muscat_setup() ou la fonction muscat_setup_net().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

muscat_setup()
muscat_setup_net()

Précédent | Sommaire | Suivant
Fonctions muscat | Niveau supérieur | muscat_get


muscat_get

(4.0.5 - 4.2.3 only, PECL)

muscat_get -- Lit la réponse de l'API muscat

Description

string muscat_get ( resource muscat_handle )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère une ligne depuis l'API muscat.

Liste de paramètres

muscat_handle

Un gestionnaire de session muscat, retourné par la fonction muscat_setup() ou la fonction muscat_setup_net().

Valeurs de retour

Retourne la réponse muscat, sous la forme d'une chaîne de caractères.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi

muscat_give()

Précédent | Sommaire | Suivant
muscat_close | Niveau supérieur | muscat_give


muscat_give

(4.0.5 - 4.2.3 only, PECL)

muscat_give -- Envoie une chaîne à l'API de base muscat

Description

void muscat_give ( resource muscat_handle, string string )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Envoie une chaîne string à l'API de base muscat.

Liste de paramètres

muscat_handle

Un gestionnaire de session muscat, retourné par la fonction muscat_setup() ou la fonction muscat_setup_net().

string

La chaîne à envoyer

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

muscat_get()

Précédent | Sommaire | Suivant
muscat_get | Niveau supérieur | muscat_setup_net


muscat_setup_net

(4.0.5 - 4.2.3 only, PECL)

muscat_setup_net -- Crée une nouvelle session muscat

Description

resource muscat_setup_net ( string muscat_host, int port )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée une nouvelle session muscat.

Liste de paramètres

muscat_host

Le nom de l'hôte à contacter

port

Le numéro de port à utiliser

Valeurs de retour

Retourne un gestionnaire de session ou FALSE si une erreur survient.

Voir aussi

muscat_setup()
muscat_close()

Précédent | Sommaire | Suivant
muscat_give | Niveau supérieur | muscat_setup


muscat_setup

(4.0.5 - 4.2.3 only, PECL)

muscat_setup -- Crée une nouvelle session

Description

resource muscat_setup ( int size [, string muscat_dir] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée une nouvelle session muscat locale.

Liste de paramètres

size

La quantité de mémoires, en octets, à allouer à muscat

muscat_dir

Le dossier d'installation muscat, e.g. "/usr/local/empower", par défaut, ce sera le dossier de compilation de muscat.

Valeurs de retour

Retourne un gestionnaire de session ou FALSE si une erreur survient.

Voir aussi

muscat_setup_net()
muscat_close()

Précédent | Sommaire | Suivant
muscat_setup_net | Niveau supérieur | MySQL


MySQL

Manuel PHP
Précédent Suivant

XCVIII. MySQL

Introduction

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.

Installation

Pour compiler, utilisez tout simplement l'option de configuration --with-mysql[=DIR] où le paramètre optionnel [DIR] pointe vers le dossier d'installation de MySQL.

Bien que cette extension MySQL soit compatible avec MySQL 4.1.0 et supérieur, elle ne supporte pas les fonctionnalités supplémentaires que cette version fournit. Pour cela, utilisez plutôt l'extension MySQLi.

Si vous voulez installer l'extension mysqli en même temps que l'extension mysql, vous devez utiliser la même bibliothèque client afin d'éviter les conflits.

Installation sur les systèmes Linux

PHP 4

L'option --with-mysql est activée par défaut. Ce comportement par défaut peut être désactivé avec l'option de configuration --without-mysql. Si MySQL est activé sans spécifier le chemin vers le dossier d'installation de MySQL, PHP utilisera la bibliothèque cliente MySQL fournie dans la distribution PHP.

Les utilisateurs qui se servent d'autres applications qui utilisent MySQL (par exemple, auth-mysql) ne doivent pas utiliser la bibliothèque intégrée, mais plutôt spécifier --with-mysql=/path/to/mysql. Cela va forcer PHP à utiliser les bibliothèques clientes installées par MySQL, et évitera les conflits.

PHP 5+

MySQL n'est plus activé par défaut, et la bibliothèque MySQL n'est plus fournie avec PHP. Lisez la FAQ pour savoir pourquoi. Utilisez l'option de configuration --with-mysql[=DIR] pour inclure le support MySQL. Vous pouvez télécharger les en-têtes et les bliothèques depuis le site officiel de MySQL.

Installation sur les systèmes Windows

PHP 4

L'extension MySQL est directement fournie dans la distribution PHP.

PHP 5+

MySQL n'est plus activé par défaut, ainsi, la biliothè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 inclu 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.

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

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
mysql.allow_persistent | "1" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.trace_mode | "Off" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.1.
mysql.default_host | NULL | PHP_INI_ALL |
mysql.default_user | NULL | PHP_INI_ALL |
mysql.default_password | NULL | PHP_INI_ALL |
mysql.connect_timeout | "60" | PHP_INI_ALL | PHP_INI_SYSTEM en PHP <= 4.3.2. Disponible depuis PHP 4.3.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysql.allow_persistent bool

Active ou désactive les connexions persistantes à la base de données MySQL.

mysql.max_persistent entier

Le nombre maximum de connexions persistantes aux bases de données MySQL, par processus.

mysql.max_links entier

Le nombre maximum de connexions aux bases de données MySQL, y compris les connexions persistantes, par processus.

mysql.trace_mode boolean

Mode trace. Lorsque mysql.trace_mode est activée, des alertes pour scans de table ou d'index, pour oubli de libération des ressources ou erreurs SQL seront affichées. Cette option a été introduite en PHP 4.3.0)

mysql.default_port string

Le numéro de port TCP par défaut, utilisé pour se connecter à la base de données, lorsque aucun port n'est spécifié. Si aucun port par défaut n'est spécifié, le port sera alors obtenu en lisant la variable d'environnement MYSQL_TCP_PORT, l'entrée mysql-tcp dans le fichier /etc/services ou encore la constante de compilation MYSQL_PORT, dans cet ordre. Windows n'utilisera aussi que la constante MYSQL_PORT.

mysql.default_socket string

Le nom par défaut de la socket lorsque l'on se connecte au serveur local, si aucune autre socket n'est spécifiée.

mysql.default_host string

Adresse par défaut du serveur, à utiliser lors de la connexion à un serveur MySQL, si aucun hôte n'est spécifié. Ne s'applique pas lorsque le safe mode SQL est activé.

mysql.default_user string

Utilisateur par défaut, à utiliser lors de la connexion à un serveur MySQL, si aucun utilisateur n'est spécifié. Ne s'applique pas lorsque le safe mode SQL est activé.

mysql.default_password string

Mot de passe par défaut, à utiliser lors de la connexion à un serveur MySQL, si aucun mot de passe n'est spécifié. Ne s'applique pas lorsque le safe mode SQL est activé.

mysql.connect_timeout entier

Durée maximale d'attente de la réponse d'un serveur, en secondes. Sous Linux, cette durée sert aussi lors de l'échange du premier avec le serveur.

Types de ressources

Il y a deux types de ressources utilisées par le module MySQL. Le premier est un identifiant de connexion au serveur, appelé mysql link, et le second est un identifiant de résultat de requête, appelé mysql result.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Depuis PHP 4.3.0, il est possible de spécifier des options de client supplémentaires pour les fonctions mysql_connect() et mysql_pconnect(). Ces constantes sont les suivantes :

Tableau 2. 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 :

Tableau 3. 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.

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.

Exemples

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_hote", "mysql_utilisateur", "mysql_mot_de_passe")
    or die("Impossible de se connecter");
echo "Connexion réussie";
mysql_select_db("my_database") or die("Could not select database");

// Exécuter des requêtes SQL
$query = "SELECT * FROM my_table";
$result = mysql_query($query) or die("Query failed");

// Afficher des résultats en HTML
echo "<table>\n";
while ($line = mysql_fetch_assoc($result)) {
    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);
?>

Table des matières
mysql_affected_rows -- Retourne le nombre de lignes affectées lors de la dernière opération MySQL
mysql_change_user -- Change le nom de l'utilisateur de la connexion active
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 -- Lit les noms des bases de données
mysql_db_query -- Envoie une requête MySQL à un serveur MySQL
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 une chaîne pour la passer à mysql_query
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 INSERT MySQL
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 -- Pingue le serveur MySQL, et s'y reconnecte au besoin
mysql_query -- Envoie une requête à un serveur MySQL
mysql_real_escape_string -- Protège les caractères spéciaux d'une commande SQL
mysql_result -- Retourne un champ d'un résultat MySQL
mysql_select_db -- Sélectionne une base de données 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

Précédent | Sommaire | Suivant
muscat_setup | Niveau supérieur | mysql_affected_rows


mysql_affected_rows

(PHP 3, PHP 4, PHP 5)

mysql_affected_rows -- Retourne le nombre de lignes affectées lors de la dernière opération MySQL

Description

int mysql_affected_rows ( [resource link_identifier] )

Retourne le nombre de lignes affectées lors de la dernière requête INSERT, UPDATE, REPLACE ou DELETE avec link_identifier.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le nombre de lignes affectées en cas de succès et -1 si la dernière requête a échoué.

Si la dernière requête était un DELETE sans clause WHERE, tous les enregistrements ont été effacés, mais cette fonction va retourner 0 avec les versions de MySQL antérieures à 4.1.2.

Lorsque vous utilisez UPDATE, MySQL ne mettra pas à jour les colonnes si la nouvelle valeur est identique à l'ancienne. Il est donc possible que mysql_affected_rows() ne représente pas forcément le nombre de lignes correspondantes mais plutôt le nombre de lignes qui ont été réellement affectées par la requête.

La requête REPLACE commence par effacer les enregistrements possédant la même clé primaire et ensuite, insert les nouveaux enregistrements. Cette fonction retourne le nombre d'enregistrements effacés ainsi que le nombre d'enregistrements insérés.

Exemples

Exemple 1. Exemple avec mysql_affected_rows()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
     die('Impossible de se connecter : ' . mysql_error());
}
mysql_select_db('mydb');

/* Ceci devrait retourner le nombre correct de lignes effacées */
mysql_query('DELETE FROM mytable WHERE id < 10');
printf("Lignes effacées : %d\n", mysql_affected_rows());

/* avec la clause where qui n'est jamais vraie, on devrait obtenir 0 */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Lignes effacées : %d\n", mysql_affected_rows());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Lignes effacées : 10
Lignes effacées : 0

Exemple 2. Exemple avec mysql_affected_rows() en utilisant les transactions

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
     die('Impossible de se connecter : ' . mysql_error());
}
mysql_select_db('mydb');

/* Mise à jour des lignes */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Lignes modifiées : %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Lignes modifiées : 10

Notes

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.

Requêtes SELECT : Pour obtenir le nombre de lignes retournées par un SELECT, il est possible d'utiliser mysql_num_rows().

Voir aussi

mysql_num_rows()
mysql_info()

Précédent | Sommaire | Suivant
MySQL | Niveau supérieur | mysql_change_user


mysql_change_user

(PHP 3 >= 3.0.13)

mysql_change_user -- Change le nom de l'utilisateur de la connexion active

Description

int mysql_change_user ( string user, string password [, string database [, resource link_identifier]] )

mysql_change_user() change l'utilisateur de la session courante, ou sur la connexion spécifiée avec l'option link_identifier. Le nouvel utilisateur est user, identifié par le mot de passe password. Si une base database est spécifiée, elle deviendra la base par défaut de l'utilisateur. Si une erreur de connexion survient, la connexion en cours restera active. Si link_identifier n'est pas précisé, mysql_affected_rows() utilise la dernière connexion ouverte.

Cette fonction est dépréciée et n'existe plus dans PHP.

Liste de paramètres

user

Le nouveau nom d'usager MySQL.

password

Le nouveau mot de passe MySQL.

database

La base de données MySQL. Si non spécifié, la base de données actuellement sélectionnée est utilisée.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Historique

Version | Description
3.0.14 | Cette fonction a été enlevée de PHP.

Notes

Conditions : Cette fonction requiert MySQL 3.23.3 ou supérieur.

Voir aussi

mysql_connect()
mysql_select_db()
mysql_query()

Précédent | Sommaire | Suivant
mysql_affected_rows | Niveau supérieur | mysql_client_encoding


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

Description

string mysql_client_encoding ( [resource link_identifier] )

Retourne la variable character_set de MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le nom du jeu de caractères par défaut pour la connexion courante.

Exemples

Exemple 1. Exemple avec mysql_client_encoding()

<?php
$link    = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$charset = mysql_client_encoding($link);

echo "Le jeu de caractères actuel est : $charset\n";
?>

L'exemple ci-dessus va afficher :

Le jeu de caractères actuel est : latin1.

Voir aussi

mysql_real_escape_string()

Précédent | Sommaire | Suivant
mysql_change_user | Niveau supérieur | mysql_close


mysql_close

(PHP 3, PHP 4, PHP 5)

mysql_close -- Ferme la connexion MySQL

Description

bool mysql_close ( [resource link_identifier] )

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.

L'utilisation de mysql_close() n'est pas habituellement nécessaire, puisque les connexions non persistantes ouverts sont automatiquement fermées à la fin l'exécution du script. Voyez aussi libérer des ressources.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Voir aussi

mysql_connect()
mysql_free_result()

Précédent | Sommaire | Suivant
mysql_client_encoding | Niveau supérieur | mysql_connect


mysql_connect

(PHP 3, PHP 4, PHP 5)

mysql_connect -- Ouvre une connexion à un serveur MySQL

Description

resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] )

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 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 : MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE ou MYSQL_CLIENT_INTERACTIVE. Lisez la section à propos de Tableau 2 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 en cas d'échec.

Historique

Version | Description
4.3.0 | Ajout du paramètre client_flags.
4.2.0 | Ajout du paramètre new_link.
3.0.10 | Ajout du support pour ":/path/to/socket" avec server.
3.0.0 | Ajout du support pour ":port" avec server.

Exemples

Exemple 1. Exemple avec mysql_connect()

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password")
    or die("Impossible de se connecter : " . mysql_error());
echo 'Connexion réussie';
mysql_close($link);
?>

Exemple 2. Exemple avec mysql_connect() en utilisant la syntaxe hostname:port

<?php
// on se connecte à example.com et au port 3307
$link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Connexion impossible : ' . mysql_error());
}
echo 'Connecté correctement';
mysql_close($link);

// on se connect à localhost au port 3307
$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Connexion impossible : ' . mysql_error());
}
echo 'Connecté correctement';
mysql_close($link);
?>

Exemple 3. Exemple avec mysql_connect() en utilisant la syntaxe ":/path/to/socket"

<?php
// on se connect à localhost et à l'interface de connexion, par exemple /tmp/mysql.sock

//variante 1 : oublie de localhost
$link = mysql_connect('/tmp/mysql', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Connexion impossible : ' . mysql_error());
}
echo 'Connecté correctement';
mysql_close($link);

// variante 2 : avec localhost
$link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Connexion impossible : ' . mysql_error());
}
echo 'Connecté correctement';
mysql_close($link);
?>

Notes

Note : Toutes les fois que vous spécifiez "localhost" ou "localhost:port" en tant que serveur, le bibliothèque client MySQL surchargera cela et essaiera de se connecter à un socket local (nommé pipe sous Windows). Si vous souhaitez utiliser TCP/IP, utilisez "127.0.0.1" au lieu de "localhost". Si la bibliothèque client MySQL essaie de se connecter au mauvais socket local, vous devriez spécifier le chemin d'accès correct à mysql.default_host string dans votre configurations PHP et laisser le champ du serveur vide.

Note : La connexion au serveur sera fermée aussitôt que l'exécution du script se termine, à moins qu'elle soit fermée avant en appelant explicitement mysql_close().

Note : Vous pouvez supprimer les messages d'erreur en cas d'échec en faisant précéder le nom de la fonction par @.

Voir aussi

mysql_pconnect()
mysql_close()

Précédent | Sommaire | Suivant
mysql_close | Niveau supérieur | mysql_create_db


mysql_create_db

(PHP 3, PHP 4, PHP 5)

mysql_create_db -- Crée une base de données MySQL

Description

bool mysql_create_db ( string database_name [, resource link_identifier] )

mysql_create_db() tente de créer une nouvelle base de données sur le serveur associé avec l'identifiant de connexion spécifié.

Liste de paramètres

database_name

Le nom de la base de données à être créée.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

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

Précédent | Sommaire | Suivant
mysql_connect | Niveau supérieur | mysql_data_seek


mysql_data_seek

(PHP 3, PHP 4, PHP 5)

mysql_data_seek -- Déplace le pointeur interne de résultat MySQL

Description

bool mysql_data_seek ( resource result, int row_number )

mysql_data_seek() déplace le pointeur interne de résultat, dans le résultat associé à l'identifiant de résultat result_identifier. Il le fait pointer à la ligne row_number. Le prochain appel à une fonction MySQL de récupération de données, comme la fonction mysql_fetch_assoc() retournera cette ligne.

row_number commence à 0. row_number doit être une valeur qui va de 0 à mysql_num_rows() - 1. Cependant, si le résultat est vide, un row_number de 0 échouera avec une erreur E_WARNING et mysql_data_seek() retournera FALSE.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

row_number

La position de la ligne désirée pour le nouveau pointeur de résultats.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
mysql_num_rows()
mysql_fetch_row()
mysql_fetch_assoc()
mysql_fetch_array()
mysql_fetch_object()

Précédent | Sommaire | Suivant
mysql_create_db | Niveau supérieur | mysql_db_name


mysql_db_name

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

mysql_db_name -- Lit les noms des bases de données

Description

string mysql_db_name ( resource result, int row [, mixed field] )

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

Précédent | Sommaire | Suivant
mysql_data_seek | Niveau supérieur | mysql_db_query


mysql_db_query

(PHP 3, PHP 4, PHP 5)

mysql_db_query -- Envoie une requête MySQL à un serveur MySQL

Description

resource mysql_db_query ( string database, string query [, resource link_identifier] )

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.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne une ressource de résultat positive MySQL à partir de la requête ou FALSE en cas d'erreur. Cette fonction retourne aussi TRUE/FALSE pour les requêtes INSERT/UPDATE/DELETE pour indiquer une réussite ou un échec.

Historique

Version | Description
4.0.6 | Cette fonction est décpréciée depuis PHP 4.0.6. N'utilisez pas cette fonction. Utilisez mysql_select_db() et mysql_query() à la place.

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

Précédent | Sommaire | Suivant
mysql_db_name | Niveau supérieur | mysql_drop_db


mysql_drop_db

(PHP 3, PHP 4, PHP 5)

mysql_drop_db -- Efface une base de données MySQL

Description

bool mysql_drop_db ( string database_name [, resource link_identifier] )

mysql_drop_db() essaie d'effacer la base de données database_name complète sur le serveur associé à la ressource de connexion link_identifier. La fonction mysql_drop_db() est obsolète. Il est préférable d'utiliser mysql_query() avec la requête DROP DATABASE à la place.

Liste de paramètres

database_name

Le nom de la base de données à effacer.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
mysql_db_query | Niveau supérieur | mysql_errno


mysql_errno

(PHP 3, PHP 4, PHP 5)

mysql_errno -- Retourne le numéro d'erreur de la dernière commande MySQL

Description

int mysql_errno ( [resource link_identifier] )

Retourne le numéro d'erreur de la dernière commande MySQL.

Les erreurs qui sont remontées depuis le serveur MySQL ne sont plus des alertes. À la place, il faut utiliser mysql_errno() pour obtenir le numéro d'erreur. Notez que cette fonction retourne uniquement le code erreur depuis la dernière fonction MySQL exécutée (n'incluant pas les fonctions mysql_error() et mysql_errno()), donc, si vous voulez l'utiliser, assurez-vous de récupérer la valeur avant d'appeler une autre fonction MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le numéro de l'erreur depuis la dernière fonction MySQL, ou 0 (zéro) si une erreur survient.

Exemples

Exemple 1. Exemple avec mysql_errno()

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!mysql_select_db("nonexistentdb", $link)) {
   echo mysql_errno($link) . ": " . mysql_error($link). "\n";
}

mysql_select_db("kossu", $link);
if (!mysql_query("SELECT * FROM nonexistenttable", $link)) {
   echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Voir aussi

mysql_error()
les codes erreurs MySQL

Précédent | Sommaire | Suivant
mysql_drop_db | Niveau supérieur | mysql_error


mysql_error

(PHP 3, PHP 4, PHP 5)

mysql_error -- Retourne le texte associé avec l'erreur générée lors de la dernière requête

Description

string mysql_error ( [resource link_identifier] )

mysql_error() retourne le message d'erreur généré par la dernière commande MySQL. Les erreurs retournées par le serveur MySQL ne génèrent plus de message d'alerte. À la place, vous devez utiliser la fonction mysql_error() pour lire le contenu du message. Notez que cette fonction ne retourne que le texte de l'erreur la plus récente(n'incluant pas mysql_error() et mysql_errno()), ce qui fait que si vous souhaitez l'utiliser, vous devez vous assurer de sa valeur avant de lancer une autre requête.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le texte de l'erreur de la dernière fonction MySQL, ou '' (chaîne vide) si aucune erreur survient.

Exemples

Exemple 1. Exemple avec mysql_error()

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");

mysql_select_db("nonexistentdb", $link);
echo mysql_errno($link) . ": " . mysql_error($link). "\n";

mysql_select_db("kossu", $link);
mysql_query("SELECT * FROM nonexistenttable", $link);
echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Voir aussi

mysql_errno()
les codes erreurs MySQL

Précédent | Sommaire | Suivant
mysql_errno | Niveau supérieur | mysql_escape_string


mysql_escape_string

(PHP 4 >= 4.0.3, PHP 5)

mysql_escape_string -- Protège une chaîne pour la passer à mysql_query

Description

string mysql_escape_string ( string unescaped_string )

mysql_escape_string() va protéger tous les caractères de la chaîne unescaped_string, pour pouvoir l'utiliser directement dans une requête mysql_query(). Cette fonction est dépréciée.

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 resepecte pas le jeu de caractères courant.

Liste de paramètres

unescaped_string

La chaîne qui doit être échappée.

Valeurs de retour

Retourne la chaîne échappée.

Historique

Version | Description
4.3.0 | Cette fonction devient dépréciée, ne l'utilisez pas. À la place, utilisez la fonction mysql_real_escape_string().

Exemples

Exemple 1. Exemple avec mysql_escape_string()

<?php
$item = "C'est un exemple de Zak";
$escaped_item = mysql_escape_string($item);
printf("Chaîne protégée : %s\n", $escaped_item);
?>

L'exemple ci-dessus va afficher :

Chaîne protégée : C\'est un exemple de Zak

Notes

Note : mysql_escape_string() n'échappe pas les caractères % et _.

Voir aussi

mysql_real_escape_string()
addslashes()
La directive magic_quotes_gpc.

Précédent | Sommaire | Suivant
mysql_error | Niveau supérieur | mysql_fetch_array


mysql_fetch_array

(PHP 3, 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

Description

array mysql_fetch_array ( resource result [, int result_type] )

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 la valeur par défaut est 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é depend 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

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()
mysql_fetch_assoc()
mysql_data_seek()
mysql_query()

Précédent | Sommaire | Suivant
mysql_escape_string | Niveau supérieur | mysql_fetch_assoc


mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc -- Lit une ligne de résultat MySQL dans un tableau associatif

Description

array mysql_fetch_assoc ( resource result )

mysql_fetch_assoc() retourne un tableau associatif qui contient la ligne lue dans le résultat result et déplace le pointeur interne de données. mysql_fetch_assoc() revient à appeler la fonction mysql_fetch_array() avec MYSQL_ASSOC en tant que second paramètre. Cette fonction retourne uniquement un tableau associatif.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Retourne un tableau associatif de chaînes qui contient la ligne lue dans le résultat result, ou bien FALSE s'il ne reste plus de lignes à lire.

Si plusieurs colonnes portent le même nom, la dernière aura la priorité. Pour accéder aux autres colonnes du même nom, vous devez utiliser la fonction mysql_fetch_row() avec les indices numériques ou utiliser les alias sur les noms. Regardez la documentation sur la fonction mysql_fetch_array() pour plus d'informations sur les alias.

Exemples

Exemple 1. Exemple avec mysql_fetch_assoc()

<?php

$conn = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!$conn) {
echo "Impossible de se connecter à la base de données : " . mysql_error();
   exit;
}

if (!mysql_select_db("mydbname")) {
   echo "Impossible de sélectionner la base mydbname : " . mysql_error();
   exit;
}

$sql = "SELECT id as userid, fullname, userstatus
FROM   sometable
WHERE  userstatus = 1";

$result = mysql_query($sql);

if (!$result) {
   echo "Impossible d'exécuter la requête ($sql) dans la base : " . mysql_error();
   exit;
}

if (mysql_num_rows($result) == 0) {
   echo "Aucune ligne trouvée, rien à afficher.";
   exit;
}

// Tant qu'une ligne existe, place cette ligne dans la variable $row
// sous la forme d'un tableau associatif.
// Note : Si vous n'attendez qu'une seule ligne, oubliez la boucle
// Note : Si vous utilisez extract($row); dans la boucle suivante
//       vous créerez $userid, $fullname et $userstatus
while ($row = mysql_fetch_assoc($result)) {
   echo $row["userid"];
   echo $row["fullname"];
   echo $row["userstatus"];
}

mysql_free_result($result);

?>

Notes

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()
mysql_fetch_array()
mysql_data_seek()
mysql_query()
mysql_error()

Précédent | Sommaire | Suivant
mysql_fetch_array | Niveau supérieur | mysql_fetch_field


mysql_fetch_field

(PHP 3, PHP 4, PHP 5)

mysql_fetch_field -- Retourne les données enregistrées dans une colonne MySQL sous forme d'objet

Description

object mysql_fetch_field ( resource result [, int field_offset] )

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 de la colonne

  • def - valeur par défaut de la colonne

  • 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
    default:      $meta->def
    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.

Voir aussi

mysql_field_seek()

Précédent | Sommaire | Suivant
mysql_fetch_assoc | Niveau supérieur | mysql_fetch_lengths


mysql_fetch_lengths

(PHP 3, PHP 4, PHP 5)

mysql_fetch_lengths -- Retourne la taille de chaque colonne d'une ligne de résultat MySQL

Description

array mysql_fetch_lengths ( resource result )

mysql_fetch_lengths() retourne un tableau avec la taille de chaque colonne de la dernière ligne retournée par mysql_fetch_row().

mysql_fetch_lengths() stocke les tailles de chaque colonne de la dernière ligne retournée par mysql_fetch_row(), mysql_fetch_assoc(), mysql_fetch_array() et mysql_fetch_object() dans un tableau, en commençant à la position 0.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

An array of lengths on success, or FALSE on failure.

Exemples

Exemple 1. Exemple avec mysql_fetch_lengths()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
$row     = mysql_fetch_assoc($result);
$lengths = mysql_fetch_lengths($result);

print_r($row);
print_r($lengths);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [id] => 42
   [email] => user@example.com
)
Array
(
   [0] => 2
   [1] => 16
)

Voir aussi

mysql_field_len()
mysql_fetch_row()
strlen()

Précédent | Sommaire | Suivant
mysql_fetch_field | Niveau supérieur | mysql_fetch_object


mysql_fetch_object

(PHP 3, PHP 4, PHP 5)

mysql_fetch_object -- Retourne une ligne de résultat MySQL sous la forme d'un objet

Description

object mysql_fetch_object ( resource result [, string class_name [, array params]] )

mysql_fetch_object() retourne un tableau qui contient la ligne demandée dans le résultat result et déplace le pointeur de données interne d'un cran.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

class_name

Le nom de la classe à instancier, définit les propriétés et retourne. SI ce paramètre n'est pas spécifié, un objet stdClass sera retourné.

params

Un tableau de paramètres à passer au constructeur pour les objets class_name.

Valeurs de retour

Retourne un objet avec les propriétés qui correspondent à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

mysql_fetch_row() récupère une ligne de données depuis le résultat associé avec l'identifiant de résultat spécifié. La ligne est retournée en tant que tableau. Chaque ligne est stockée dans une entrée de tableau, commençant à l'indice 0.

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

$row = mysql_fetch_object($result);

/* Ceci est valide */
echo $row->field;

/* Ceci n'est pas valide */
// echo $row->0;

?>

Notes

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()
mysql_fetch_assoc()
mysql_fetch_row()
mysql_data_seek()
mysql_query()

Précédent | Sommaire | Suivant
mysql_fetch_lengths | Niveau supérieur | mysql_fetch_row


mysql_fetch_row

(PHP 3, PHP 4, PHP 5)

mysql_fetch_row -- Retourne une ligne de résultat MySQL sous la forme d'un tableau

Description

array mysql_fetch_row ( resource result )

mysql_fetch_row() retourne un tableau indexé numériquement, qui correspond à la prochaine ligne du résultat MySQL result et déplace le pointeur interne de données d'un cran.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Retourne un tableau numérique de chaînes qui correspond à la ligne récupérée, ou FALSE s'il n'y a plus de lignes.

mysql_fetch_row() va rechercher une ligne dans le résultat associé à l'identifiant de résultat spécifié. La ligne est retournée sous la forme d'un tableau. Chaque colonne est enregistrée sous la forme d'un tableau commençant à la position 0.

Exemples

Exemple 1. Exemple avec mysql_fetch_row()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
$row = mysql_fetch_row($result);

echo $row[0]; // 42
echo $row[1]; // la valeur du champ email
?>

Notes

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi

mysql_fetch_array()
mysql_fetch_assoc()
mysql_data_object()
mysql_data_seek()
mysql_fetch_lengths()
mysql_result()

Précédent | Sommaire | Suivant
mysql_fetch_object | Niveau supérieur | mysql_field_flags


mysql_field_flags

(PHP 3, PHP 4, PHP 5)

mysql_field_flags -- Retourne des détails sur une colonne MySQL

Description

string mysql_field_flags ( resource result, int field_offset )

mysql_field_flags() retourne le sémaphore associé au champ spécifié par field_offset, dans le résultat result. Les sémaphores sont retournés comme des mots, séparés par des espaces, ce qui les rend faciles à séparer, avec la commande explode().

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Retourne les sémaphores sous la forme d'une chaîne associés avec le résultat, ou FALSE si une erreur survient.

Les valeurs suivantes (pour une version suffisamment récente de MySQL) sont disponibles : "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment" et "timestamp".

Exemples

Exemple 1. Exemple avec mysql_field_flags()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
$flags = mysql_field_flags($result, 0);

echo $flags;
print_r(explode(' ', $flags));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

not_null primary_key auto_increment
Array
(
   [0] => not_null
   [1] => primary_key
   [2] => auto_increment
)

Notes

Note : Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_fieldflags()

Voir aussi

mysql_field_type()
mysql_field_len()

Précédent | Sommaire | Suivant
mysql_fetch_row | Niveau supérieur | mysql_field_len


mysql_field_len

(PHP 3, PHP 4, PHP 5)

mysql_field_len -- Retourne la taille d'un champ de résultat MySQL

Description

int mysql_field_len ( resource result, int field_offset )

mysql_field_len() retourne la taille du champ spécifié.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Le taille de l'index du champs 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()
strlen()

Précédent | Sommaire | Suivant
mysql_field_flags | Niveau supérieur | mysql_field_name


mysql_field_name

(PHP 3, PHP 4, PHP 5)

mysql_field_name -- Retourne le nom d'une colonne dans un résultat MySQL

Description

string mysql_field_name ( resource result, int field_offset )

mysql_field_name() retourne le nom du champ de l'index spécifié.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Le nom du champ de l'index spécifié en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec mysql_field_name()

<?php
/* Supposons que la table utilisée contienne trois champs :
*   user_id
*   username
*   password.
 */
$link = @mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
   die('Impossible de se connecter au serveur MySQL : ' . mysql_error());
}
$dbname = 'mydb';
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
   die("Impossible de se connecter à la base $dbname: " . mysql_error());
}
$res = mysql_query('select * from users', $link);

echo mysql_field_name($res, 0) . "\n";
echo mysql_field_name($res, 2);
?>

L'exemple ci-dessus va afficher :

user_id
password

Notes

Note : Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note : Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_fieldname()

Voir aussi

mysql_field_type()
mysql_field_len()

Précédent | Sommaire | Suivant
mysql_field_len | Niveau supérieur | mysql_field_seek


mysql_field_seek

(PHP 3, PHP 4, PHP 5)

mysql_field_seek -- Déplace le pointeur de résultat vers une position donnée

Description

bool mysql_field_seek ( resource result, int field_offset )

mysql_field_seek() place le pointeur de résultat result sur le champ spécifié par sa position field_offset. Lors du prochain appel à mysql_fetch_field() qui n'aura pas d'argument d'index de champ, le champ désormais pointé sera retourné.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Voir aussi

mysql_fetch_field()

Voir aussi

mysql_fetch_field()

Précédent | Sommaire | Suivant
mysql_field_name | Niveau supérieur | mysql_field_table


mysql_field_table

(PHP 3, PHP 4, PHP 5)

mysql_field_table -- Retourne le nom de la table MySQL où se trouve une colonne

Description

string mysql_field_table ( resource result, int field_offset )

mysql_field_table() retourne le nom de la table où se trouve la colonne d'offset field_offset, dans le résultat MySQL result.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Le nom de la table en cas de succès.

Exemples

Exemple 1. Exemple avec mysql_field_table()

<?php
$result = mysql_query("SELECT name,comment FROM people,comments");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}

// En supposant que le champ name se trouve bien dans la table people
$table = mysql_field_table($result, 'name');
echo $table; // people
?>

Notes

Note : Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_fieldtable()

Voir aussi

mysql_list_tables()

Précédent | Sommaire | Suivant
mysql_field_seek | Niveau supérieur | mysql_field_type


mysql_field_type

(PHP 3, PHP 4, PHP 5)

mysql_field_type -- Retourne le type d'une colonne MySQL spécifique

Description

string mysql_field_type ( resource result, int field_offset )

mysql_field_type() est similaire à la fonction mysql_field_name(). Les arguments sont identiques mais c'est le type de la colonne qui est retourné.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

field_offset

La position numérique du champ. field_offset commence à 0. Si field_offset n'existe pas, une alerte E_WARNING sera également générée.

Valeurs de retour

Le type du champ retourné peut être : "int", "real", "string", "blob" ou d'autres, comme détaillé dans la documentation MySQL.

Exemples

Exemple 1. Exemple avec mysql_field_type()

<?php
mysql_connect("localhost", "mysql_username", "mysql_password");
mysql_select_db("mysql");
$result = mysql_query("SELECT * FROM func");
$fields = mysql_num_fields($result);
$rows   = mysql_num_rows($result);
$table  = mysql_field_table($result, 0);
echo "Votre table '" . $table . "' dispose de " . $fields . " colonnes et " . $rows . " ligne(s)\n";
echo "Les colonnes sont les suivantes :\n";
for ($i=0; $i < $fields; $i++) {
    $type  = mysql_field_type($result, $i);
    $name  = mysql_field_name($result, $i);
    $len   = mysql_field_len($result, $i);
    $flags = mysql_field_flags($result, $i);
    echo $type . " " . $name . " " . $len . " " . $flags . "\n";
}
mysql_free_result($result);
mysql_close();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Votre table 'func' dispose de 4 colonnes et 1 ligne(s)
Les colonnes sont les suivantes :
string name 64 not_null primary_key binary
int ret 1 not_null
string dl 128 not_null
string type 9 not_null enum

Notes

Note : Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_fieldtype()

Voir aussi

mysql_field_name()
mysql_field_len()

Précédent | Sommaire | Suivant
mysql_field_table | Niveau supérieur | mysql_free_result


mysql_free_result

(PHP 3, PHP 4, PHP 5)

mysql_free_result -- Libère le résultat de la mémoire

Description

bool mysql_free_result ( resource result )

mysql_free_result() libère toute la mémoire et les ressources utilisées par la ressource de résultat result.

mysql_free_result() n'est à appeler que si vous avez peur d'utiliser trop de mémoire durant l'exécution de votre script. Toute la mémoire associée à l'identifiant de résultat sera automatiquement libérée.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
mysql_field_type | Niveau supérieur | mysql_get_client_info


mysql_get_client_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_client_info -- Lit les informations sur le client MySQL

Description

string mysql_get_client_info ( void )

mysql_get_client_info() retourne une chaîne qui représente le numéro de version du client utilisé par PHP.

Valeurs de retour

La version du client MySQL.

Exemples

Exemple 1. Exemple avec mysql_get_client_info()

<?php
printf("Détails sur le client MySQL : %s\n", mysql_get_client_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Détails sur le client MySQL : 3.23.39

Voir aussi

mysql_get_host_info()
mysql_get_proto_info()
mysql_get_server_info()

Précédent | Sommaire | Suivant
mysql_free_result | Niveau supérieur | mysql_get_host_info


mysql_get_host_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_host_info -- Lit les informations sur l'hôte MySQL

Description

string mysql_get_host_info ( [resource link_identifier] )

mysql_get_host_info() retourne une chaîne qui représente le type de connexion utilisé avec la connexion link_identifier, y compris le nom du serveur hôte.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne une chaîne décrivant le type de connexion MySQL utilisé pour la connexion ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec mysql_get_host_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
   die('Impossible de se connecter : ' . mysql_error());
}
printf("Informations sur l'hôte MySQL : %s\n", mysql_get_host_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Informations sur l'hôte MySQL : Localhost via UNIX socket

Voir aussi

mysql_get_client_info()
mysql_get_proto_info()
mysql_get_server_info()

Précédent | Sommaire | Suivant
mysql_get_client_info | Niveau supérieur | mysql_get_proto_info


mysql_get_proto_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_proto_info -- Lit les informations sur le protocole MySQL

Description

int mysql_get_proto_info ( [resource link_identifier] )

Lit les informations sur le protocole MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne le protocole MySQL en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec mysql_get_proto_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
   die('Impossible de se connecter : ' . mysql_error());
}
printf("Version du protocole MySQL : %s\n", mysql_get_proto_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du protocole MySQL : 10

Voir aussi

mysql_get_client_info()
mysql_get_host_info()
mysql_get_server_info()

Précédent | Sommaire | Suivant
mysql_get_host_info | Niveau supérieur | mysql_get_server_info


mysql_get_server_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_server_info -- Lit les informations sur le serveur MySQL

Description

string mysql_get_server_info ( [resource link_identifier] )

Lit les informations sur le serveur MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne la version du serveur MySQL en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec mysql_get_server_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Impossible de se connecter à la base : ' . mysql_error());
}
printf("Version du serveur MySQL : %s\n", mysql_get_server_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Version du serveur MySQL : 4.0.1-alpha

Voir aussi

mysql_get_client_info()
mysql_get_host_info()
mysql_get_proto_info()
phpversion()

Précédent | Sommaire | Suivant
mysql_get_proto_info | Niveau supérieur | mysql_info


mysql_info

(PHP 4 >= 4.3.0, PHP 5)

mysql_info -- Lit des informations à propos de la dernière requête MySQL

Description

string mysql_info ( [resource link_identifier] )

Lit des informations à propos de la dernière requête MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne des informations sur une requête en cas de succès, ou FALSE si une erreur survient. Regardez l'exemple ci-dessous pour savoir quelles sortes de requêtes fournissent des informations et avoir un aperçu des informations retournées. Les sortes de requêtes qui ne sont pas listées retournent FALSE.

Exemples

Exemple 1. Requêtes MySQL

Requêtes qui retournent des valeurs. Les nombres ne sont là que pour illustrer l'exemple ; ces valeurs correspondent à la requête.

INSERT INTO ... SELECT ...
String format: Records: 23 Duplicates: 0 Warnings: 0
INSERT INTO ... VALUES (...),(...),(...)...
String format: Records: 37 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ...
String format: Records: 42 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE
String format: Records: 60 Duplicates: 0 Warnings: 0
UPDATE
String format: Rows matched: 65 Changed: 65 Warnings: 0

Notes

Note : mysql_info() retourne une valeur différente de FALSE pour les commandes INSERT ... VALUES uniquement si plusieurs jeux de valeurs à insérer ont été spécifiés dans la commande.

Voir aussi

mysql_affected_rows()
mysql_insert_id()
mysql_stat()

Précédent | Sommaire | Suivant
mysql_get_server_info | Niveau supérieur | mysql_insert_id


mysql_insert_id

(PHP 3, PHP 4, PHP 5)

mysql_insert_id -- Retourne l'identifiant généré par la dernière requête INSERT MySQL

Description

int mysql_insert_id ( [resource link_identifier] )

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

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

L'ID généré pour une colonne AUTO_INCREMENT par la dernière requête INSERT 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() convertit le type de valeur retourné par la fonction C de MySQL C mysql_insert_id() en type PHP long (appelé int en PHP). Si votre colonne de type AUTO_INCREMENT est une colonne de type BIGINT, la valeur retournée par mysql_insert_id() sera incorrecte. À la place, utilisez la fonction interne MySQL LAST_INSERT_ID() dans une requête SQL.

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

Précédent | Sommaire | Suivant
mysql_info | Niveau supérieur | mysql_list_dbs


mysql_list_dbs

(PHP 3, PHP 4, PHP 5)

mysql_list_dbs -- Liste les bases de données disponibles sur le serveur MySQL

Description

resource mysql_list_dbs ( [resource link_identifier] )

mysql_list_dbs() retournera un identifiant de résultat, qui contiendra les noms des bases de données disponibles sur la connexion MySQL courante ou sur la connexion spécifiée par link_identifier.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne une ressource de pointeurs de résultats en cas de succès, ou FALSE si une erreur survient. Utilisez la fonction mysql_tablename() pour parcourir ce résultat ou tout autre fonction pour les résultats de table, comme la fonction mysql_fetch_array().

Exemples

Exemple 1. Exemple avec mysql_list_dbs()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
   echo $row->Database . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

database1
database2
database3

Notes

Note : Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_listdbs()

Voir aussi

mysql_db_name()
mysql_select_db()

Précédent | Sommaire | Suivant
mysql_insert_id | Niveau supérieur | mysql_list_fields


mysql_list_fields

(PHP 3, PHP 4, PHP 5)

mysql_list_fields -- Liste les champs d'une table MySQL

Description

resource mysql_list_fields ( string database_name, string table_name [, resource link_identifier] )

Liste les champs de la table MySQL spécifiée.

La fonction mysql_list_fields() est dépréciée. Il est préférable d'utiliser la fonction mysql_query() avec comme requête SHOW COLUMNS FROM table [LIKE 'name'] à la place.

Liste de paramètres

database_name

Le nom de la base de données qui va être interrogée.

table_name

Le nom de la table qui va être interrogée.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Une ressource de pointeurs de résultats en cas de succès, ou FALSE si une erreur survint.

Le résultat retourné peut être utilisé avec les fonction
mysql_field_flags(),
mysql_field_len(),
mysql_field_name() et
mysql_field_type().

Exemples

Exemple 1. Exemple d'alternative à mysql_list_fields()

<?php
$result = mysql_query("SHOW COLUMNS FROM sometable");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
if (mysql_num_rows($result) > 0) {
   while ($row = mysql_fetch_assoc($result)) {
      print_r($row);
   }
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [Field] => id
   [Type] => int(7)
   [Null] =>
   [Key] => PRI
   [Default] =>
   [Extra] => auto_increment
)
Array
(
   [Field] => email
   [Type] => varchar(100)
   [Null] =>
   [Key] =>
   [Default] =>
   [Extra] =>
)

Notes

Note : Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_listfields()

Voir aussi

mysql_field_flags()
mysql_info()

Précédent | Sommaire | Suivant
mysql_list_dbs | Niveau supérieur | mysql_list_processes


mysql_list_processes

(PHP 4 >= 4.3.0, PHP 5)

mysql_list_processes -- Liste les processus MySQL

Description

resource mysql_list_processes ( [resource link_identifier] )

Liste les processus MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Une ressource de pointeurs de résultats en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec mysql_list_processes()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$result = mysql_list_processes($link);
while ($row = mysql_fetch_assoc($result)){
   printf("%s %s %s %s %s\n", $row["Id"], $row["Host"], $row["db"],
   $row["Command"], $row["Time"]);
}
mysql_free_result($result);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1 localhost test Processlist 0
4 localhost mysql sleep 5

Voir aussi

mysql_thread_id()
mysql_stat()

Précédent | Sommaire | Suivant
mysql_list_fields | Niveau supérieur | mysql_list_tables


mysql_list_tables

(PHP 3, PHP 4, PHP 5)

mysql_list_tables -- Liste les tables d'une base de données MySQL

Description

resource mysql_list_tables ( string database [, resource link_identifier] )

Liste les tables d'une base de données MySQL spécifiée.

Cette fonction est dépréciée. Il est préférable d'utiliser la fonction mysql_query() pour effectuer la requête SQL SHOW TABLES [FROM db_name] [LIKE 'pattern'] à la place.

Liste de paramètres

database

Le nom de la base de données

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Une ressource de pointeurs de résultats en cas de succès, ou FALSE si une erreur survient.

Utilisez la fonction mysql_tablename() pour parcourir ce pointeur de résultats ou tout autre fonction pour les résultats de tables, comme la fonction mysql_fetch_array().

Historique

Version | Description
4.3.7 | Cette fonction est devenue obsolète.

Exemples

Exemple 1. Exemple d'alternative à mysql_list_tables()

<?php
$dbname = 'mysql_dbname';

if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
   echo 'Impossible de se connecter à MySQL';
   exit;
}

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
   echo "Erreur DB, impossible de lister les tables\n";
   echo 'Erreur MySQL : ' . mysql_error();
   exit;
}

while ($row = mysql_fetch_row($result)) {
   echo "Table : {$row[0]}\n";
}

mysql_free_result($result);
?>

Notes

Note : Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_listtables()

Voir aussi

mysql_list_dbs()
mysql_tablename()

Précédent | Sommaire | Suivant
mysql_list_processes | Niveau supérieur | mysql_num_fields


mysql_num_fields

(PHP 3, PHP 4, PHP 5)

mysql_num_fields -- Retourne le nombre de champs d'un résultat MySQL

Description

int mysql_num_fields ( resource result )

Retourne le nombre de champs d'une requête.

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Retourne le nombre de champs d'un jeu de résultat en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec mysql_num_fields()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}

/* Retourne 2 car id,email === 2 champs */
echo mysql_num_fields($result);
?>

Notes

Note : Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_numfields()

Voir aussi

mysql_select_db()
mysql_query()
mysql_fetch_field()
mysql_num_rows()

Précédent | Sommaire | Suivant
mysql_list_tables | Niveau supérieur | mysql_num_rows


mysql_num_rows

(PHP 3, PHP 4, PHP 5)

mysql_num_rows -- Retourne le nombre de lignes d'un résultat MySQL

Description

int mysql_num_rows ( resource result )

Récupère le nombre de lignes d'un jeu de résultat. Cette commande n'est disponible que pour les requêtes comme SELECT ou SHOW qui retournent un jeu de résultats. Pour récupérer le nombre de lignes affectées par une requête INSERT, UPDATE, REPLACE ou DELETE, utilisez la fonction mysql_affected_rows().

Liste de paramètres

result

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

Valeurs de retour

Le nombre de lignes dans un jeu de résultats en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec mysql_num_rows()

<?php

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);

$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";

?>

Notes

Note : Si vous utilisez mysql_unbuffered_query(), mysql_num_rows() ne retournera pas une valeur correcte tant que toutes les lignes du jeu de résultats n'auront pas été récupérées.

Note : Pour des raisons de compatibilité ascendante, l'alias obsolète suivant peut être utilisé : mysql_numrows()

Voir aussi

mysql_affected_rows()
mysql_connect()
mysql_data_seek()
mysql_select_db()
mysql_query()

Précédent | Sommaire | Suivant
mysql_num_fields | Niveau supérieur | mysql_pconnect


mysql_pconnect

(PHP 3, PHP 4, PHP 5)

mysql_pconnect -- Ouvre une connexion persistante à un serveur MySQL

Description

resource mysql_pconnect ( [string server [, string username [, string password [, int client_flags]]]] )

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" for the localhost.

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 : MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE ou MYSQL_CLIENT_INTERACTIVE.

Valeurs de retour

Retourne un identifiant de lien persistant MySQL en cas de succès, ou FALSE si une erreur survient.

Historique

Version | Description
4.3.0 | Ajout du paramètre client_flags.
3.0.10 | Ajout du support pour ":/path/to/socket" avec le paramètre server.
3.0.0 | Ajout du support pour ":port" avec le paramètre server.

Notes

Note : Notez que les connexions persitantes ne fonctionnent que si vous utilisez PHP en version module. Lisez la section sur les connexions persistantes aux bases de données pour plus d'informations.

Avertissement

L'utilisation des connexions persistantes requiert des paramétrages d'Apache et de MySQL pour vous assurer que vous n'atteindrez pas la limite maximale de nombre de connexions simultanées autorisée par MySQL.

Note : Vous pouvez supprimer les messages d'erreur en ajoutant un @ au nom de la fonction.

Voir aussi

mysql_connect()
Les connexions persistantes aux bases de données

Précédent | Sommaire | Suivant
mysql_num_rows | Niveau supérieur | mysql_ping


mysql_ping

(PHP 4 >= 4.3.0, PHP 5)

mysql_ping -- Pingue le serveur MySQL, et s'y reconnecte au besoin

Description

bool mysql_ping ( [resource link_identifier] )

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

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne TRUE si la connexion au serveur MySQL fonctionne, FALSE sinon.

Exemples

Exemple 1. Exemple avec mysql_ping()

<?php
set_time_limit(0);

$conn = mysql_connect('localhost', 'mysqluser', 'mypass');
$db   = mysql_select_db('mydb');

/* En supposant que l'exécution de la requête prend beaucoup de temps */
$result = mysql_query($sql);
if (!$result) {
   echo 'Requête #1 a échoué, sortie.';
   exit;
}

/* S'assure que la connexion est toujours active, sinon, tentative de reconnexion */
if (!mysql_ping($conn)) {
   echo 'Perte de la connexion, sortie après la requête #1';
   exit;
}
mysql_free_result($result);

/* Donc, la connexion est toujours active, exécutons une autre requête */
$result2 = mysql_query($sql2);
?>

Voir aussi

mysql_thread_id()
mysql_list_processes()

Précédent | Sommaire | Suivant
mysql_pconnect | Niveau supérieur | mysql_query


mysql_query

(PHP 3, PHP 4, PHP 5)

mysql_query -- Envoie une requête à un serveur MySQL

Description

resource mysql_query ( string query [, resource link_identifier] )

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.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Pour les requêtes du type SELECT, SHOW, DESCRIBE, EXPLAIN et les autres requêtes retournant un jeu de résultats, mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur.

Pour les autres types de requêtes, 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 requpetes du type DELETE, INSERT, REPLACE, ou UPDATE.

mysql_query() échouera et retournera FALSE si l'utilisateur n'a pas les autorisations nécessaire 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()
mysql_error()
mysql_real_escape_string()
mysql_result()
mysql_fetch_assoc()
mysql_unbuffered_query()

Précédent | Sommaire | Suivant
mysql_ping | Niveau supérieur | mysql_real_escape_string


mysql_real_escape_string

(PHP 4 >= 4.3.0, PHP 5)

mysql_real_escape_string -- Protège les caractères spéciaux d'une commande SQL

Description

string mysql_real_escape_string ( string unescaped_string [, resource link_identifier] )

mysql_real_escape_string() protège les caractères spéciaux de la chaîne unescaped_string, 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 slashe aux caractères suivants : NULL, \x00, \n, \r, \, ', " et \x1a.

Cette fonction doit toujours (avec quelques exceptions) être utilisée pour protéger vos données avant d'envoyer la requête à MySQL.

Liste de paramètres

unescaped_string

La chaîne à échapper.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne la chaîne échappée, ou FALSE si une erreur survient.

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. Un exemple d'attaque par injection SQL

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

// Nous ne vérifions pas $_POST['password'], il peut contenir ce que l'utilisateur veut ! Par exemple :
$_POST['username'] = 'aidan';
$_POST['password'] = "' OR ''='";

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

Exemple 3. Meilleure pratique

L'utilisation de la fonction mysql_real_escape_string() sur chaque variable évite les injections SQL. Cet exemple démontre la méthode la plus propre pour envoyer une requête à la base, indépendamment de votre configuration des guillemets magiques.

<?php

if (isset($_POST['product_name']) && isset($_POST['product_description']) && isset($_POST['user_id'])) {
    // Connect

    $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');

    if(!is_resource($link)) {

        echo "Échec de la connexion au serveur\n";
        // ... historisation de l'erreur

    } else {

        if(get_magic_quotes_gpc()) {
            $product_name        = stripslashes($_POST['product_name']);
            $product_description = stripslashes($_POST['product_description']);
        } else {
            $product_name        = $_POST['product_name'];
            $product_description = $_POST['product_description'];
        }

        // Faire une requête sécurisée
        $query = sprintf("INSERT INTO products (`name`, `description`, `user_id`) VALUES ('%s', '%s', '%d')",
                    mysql_real_escape_string($product_name, $link),
                    mysql_real_escape_string($product_description, $link),
                    $_POST['user_id']);

        mysql_query($query, $link);

        if (mysql_affected_rows($link) > 0) {
            echo "Produit inséré\n";
        }
    }
} else {
    echo "Remplissez le formulaire proprement\n";
}
?>

La requête s'exécute maintenant correctement et les attaques par injection SQL ne fonctionnent plus.

Notes

Note : Une connexion MySQL est nécessaire avant d'utiliser la fonction mysql_real_escape_string(), sinon, une erreur de niveau E_WARNING sera générée, et FALSE sera retourné. Si link_identifier n'est pas défini, la dernière connexion MySQL est utilisée.

Note : Si magic_quotes_gpc est activée, appliquez d'abord la fonction stripslashes() à vos données. Utiliser cette fonction sur des données qui ont déjà été protégées, les protègera une deuxième fois.

Note : Si cette fonction n'est pas utilisée pour protéger vos données, la requête sera vulnérable aux attaques par injection SQL.

Note : mysql_real_escape_string() n'échappe ni %, ni _. Ce sont des jokers en MySQL si combinés avec LIKE, GRANT, ou REVOKE.

Voir aussi

mysql_client_encoding()
addslashes()
stripslashes()
The magic_quotes_gpc directive
The magic_quotes_runtime directive

Précédent | Sommaire | Suivant
mysql_query | Niveau supérieur | mysql_result


mysql_result

(PHP 3, PHP 4, PHP 5)

mysql_result -- Retourne un champ d'un résultat MySQL

Description

string mysql_result ( resource result, int row [, mixed field] )

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());
}
$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()
mysql_fetch_array()
mysql_fetch_assoc()
mysql_fetch_object()

Précédent | Sommaire | Suivant
mysql_real_escape_string | Niveau supérieur | mysql_select_db


mysql_select_db

(PHP 3, PHP 4, PHP 5)

mysql_select_db -- Sélectionne une base de données MySQL

Description

bool mysql_select_db ( string database_name [, resource link_identifier] )

Sélectionne une base de données MySQL sur le serveur associé avec le paramètre link_identifier. Chaque appel à la fonction mysql_query() sera exécutée sur la base de données active.

Liste de paramètres

database_name

Le nom de la base de données à sélectionner.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Voir aussi

mysql_connect()
mysql_pconnect()
mysql_query()

Précédent | Sommaire | Suivant
mysql_result | Niveau supérieur | mysql_stat


mysql_stat

(PHP 4 >= 4.3.0, PHP 5)

mysql_stat -- Retourne le statut courant du serveur MySQL

Description

string mysql_stat ( [resource link_identifier] )

mysql_stat() retourne le statut courant du serveur MySQL.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Retourne une chaîne contenant le statut pour l'uptime, les threads, les requêtes, les tables ouvertes, les tables flushées, et le nombre de requêtes par seconde. Pour une liste complète des autres variables de stauts, vous devez utiliser la commande SQL SHOW STATUS. Si link_identifier est invalide, NULL est retourné.

Exemples

Exemple 1. Exemple avec mysql_stat()

<?php
$link   = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$status = explode('  ', mysql_stat($link));
print_r($status);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
[0] => Uptime: 5380
[1] => Threads: 2
[2] => Questions: 1321299
[3] => Slow queries: 0
[4] => Opens: 26
[5] => Flush tables: 1
[6] => Open tables: 17
[7] => Queries per second avg: 245.595
)

Exemple 2. Exemple alternatif pour mysql_stat()

<?php
$link   = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$result = mysql_query('SHOW VARIABLES', $link);
while ($row = mysql_fetch_assoc($result)) {
  echo $row['Variable_name'] . ' = ' . $row['Value'] . "\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

back_log = 50
basedir = /usr/local/
bdb_cache_size = 8388600
bdb_log_buffer_size = 32768
bdb_home = /var/db/mysql/
bdb_max_lock = 10000
bdb_logdir =
bdb_shared_data = OFF
bdb_tmpdir = /var/tmp/
...

Voir aussi

mysql_get_server_info()
mysql_list_processes()

Précédent | Sommaire | Suivant
mysql_select_db | Niveau supérieur | mysql_tablename


mysql_tablename

(PHP 3, PHP 4, PHP 5)

mysql_tablename -- Lit le nom de la table qui contient un champ

Description

string mysql_tablename ( resource result, int i )

Lit le nom de la table depuis le jeu de résultats result.

Cette fonction est dépréciée. 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()
mysql_field_table()
mysql_db_name()

Précédent | Sommaire | Suivant
mysql_stat | Niveau supérieur | mysql_thread_id


mysql_thread_id

(PHP 4 >= 4.3.0, PHP 5)

mysql_thread_id -- Retourne l'identifiant du thread MySQL courant

Description

int mysql_thread_id ( [resource link_identifier] )

mysql_thread_id() retourne l'identifiant du thread courant. Si la connexion link_identifier est perdue et que vous vous reconnectez (avec mysql_ping(), par exemple), alors l'identifiant de thread va changer. Cela signifie que vous devez le récupérer lorsque vous en avez besoin.

Liste de paramètres

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

L'identifiant du thread en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec mysql_thread_id()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$thread_id = mysql_thread_id($link);
if ($thread_id){
   printf("L'identifiant du thread courant est : %d\n", $thread_id);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

L'identifiant du thread courant est : 73

Voir aussi

mysql_ping()
mysql_list_processes()

Précédent | Sommaire | Suivant
mysql_tablename | Niveau supérieur | mysql_unbuffered_query


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

Description

resource mysql_unbuffered_query ( string query [, resource link_identifier] )

mysql_unbuffered_query() envoie la requête SQL query au serveur MySQL identifié par link_identifier, sans préparer les résultats pour la lecture, comme le fait mysql_query(). D'une part, cela réduit considérablement la consommation de mémoire par MySQL, lorsque les requêtes génèrent des résultats de grande taille. D'autre part, vous pourrez utiliser les résultats dès que la première ligne aura été lue : pas besoin d'attendre que la requête ait complètement été exécutée. Lorsque vous utilisez de multiples connexions à MySQL, vous devez spécifier le paramètre optionnel link_identifier.

Liste de paramètres

query

Une requête SQL

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Pour les requêtes SELECT, SHOW, DESCRIBE ou EXPLAIN, mysql_unbuffered_query() retourne une ressource en cas de succès, ou FALSE si une erreur survient.

Pour les autres types de requêtes, UPDATE, DELETE, DROP, etc, mysql_unbuffered_query() retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note : L'intérêt de mysql_unbuffered_query() est tempéré par une limitation : mysql_num_rows() et mysql_data_seek() ne fonctionne pas sur une ressource retournée par mysql_unbuffered_query(). 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.

Voir aussi

mysql_query()

Précédent | Sommaire | Suivant
mysql_thread_id | Niveau supérieur | Fonctions MySQL (PDO_MYSQL)


Extension MySQL améliorée

Manuel PHP
Précédent Suivant

C. Extension MySQL améliorée

Introduction

L'extension mysqli vous permet d'accéder aux fonctionnalités fournies par MySQL 4.1 et plus. Plus d'informations sur le serveur de bases de données MySQL peuvent être trouvées sur http://www.mysql.com/

La documentation de MySQL peut être trouvée sur http://dev.mysql.com/doc/.

Une partie de cette documentation provient du manuel officiel MySQL avec la permission de MySQL AB.

Pré-requis

Pour faire fonctionner ces fonctions, vous devez compiler PHP avec le support de l'extension MySQLi.

Note : L'extension MySQLi est conçue pour fonctionner avec la version 4.1.3 ou plus de MySQL. Pour les versions plus anciennes, voyez la documentation de l'extension MySQL.

Installation

Pour installer l'extension mysqli pour PHP, utilisez l'option de configuration --with-mysqli=mysql_config_path où mysql_config_path représente l'endroit où se trouve le programme mysql_config qui accompagne les versions de MySQL supérieures à la 4.1. Désactivez aussi l'extension standard MySQL (qui est activée par défaut) en utilisant aussi l'option de configuration --without-mysql. Si vous voulez installer l'extension standard mysql en même temps que l'extension mysqli, la bibliothèque embarquée libmysql distribuée avec PHP ne peut être utilisée. Utilisez à la place les bibliothèques clientes installées par MySQL avec des versions inférieures à la 4.1. Cela forcera PHP à utiliser les bibliothèques du client installées par MySQL pour éviter les conflits.

Installation sur une système Windows

MySQLi n'est pas activé par défaut ; vous devez donc activer la bibliothèque php_mysqli.dll dans votre php.ini. De plus, PHP a besoin d'un accès à la bibliothèque cliente MySQL. Un fichier nommé libmysql.dll est inclus dans le paquet PHP pour Windows et, afin que PHP puisse communiquer avec MySQL, ce fichier doit être disponible via le PATH Windows. Lisez la FAQ intitulée "Combien ajouter mon dossier PHP au PATH de Windows ?" pour plus d'informations concernant cette manipulation. Vous pouvez également copier le fichier libmysql.dll dans le dossier système de Windows (cat le dossier système est par défaut dans le PATH), mais ce n'est pas recommandé.

Tout comme pour activer n'importe quelle extension PHP (comme php_mysqli.dll), la directive PHP extension_dir doit être définie avec le dossier où l'extension PHP se trouve. Lisez le manuel sur les instructions d'installations sous Windows. Un exemple de valeur pour extension_dir en PHP 5 serait c:\php\ext

Note : Si lors du démarrage du serveur web une erreur similaire à celui-ci survient : "Unable to load dynamic library './php_mysqli.dll'", c'est parceque php_mysqli.dll et/ou libmysql.dll n'ont pû être trouvées sur le système.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration MySQLi

Nom | Par défaut | Modifiable | Historique
mysqli.max_links | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
mysqli.default_port | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_socket | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_host | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_user | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_pw | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

mysqli.max_links entier

Le nombre maximal de connexions MySQL par processus, incluant les connexions persistantes.

mysqli.default_port string

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 de la socket à utiliser lors des connexions locales au serveur si aucun autre nom n'est fourni.

mysqli.default_host string

Le serveur par défaut à utiliser lors de la connexion à un serveur si aucun autre hôte n'est fourni. Ne s'applique pas avec le safe mode.

mysqli.default_user string

Le nom d'utilisateur par défaut à utiliser lors de la connexion à un serveur si aucun autre nom n'est fourni. Ne s'applique pas avec le safe mode.

mysqli.default_pw string

Le mot de passe par défaut à utiliser lors de la connexion à un serveur si aucun autre mot de passe n'est fourni. Ne s'applique pas avec le safe mode.

Classes pré-définies

mysqli

Représente la connexion entre PHP et le serveur MySQL.

Constructeur

  • mysqli - construit un nouvel objet mysqli

Méthodes

  • autocommit - Active ou désactive l'auto-commit

  • change_user - Change l'utilisateur de la connexion

  • character_set_name - Retourne le jeu de caractères par défaut de la connexion

  • close - Ferme une connexion ouverte

  • commit - Valide la transaction courante

  • connect - Ouvre une nouvelle connexion au serveur MySQL

  • debug - Effectue des opérations de débogage

  • dump_debug_info - Affiche les informations de débogage

  • get_client_info - Retourne la version du client

  • get_host_info - Retourne le type de connexion utilisé

  • get_server_info - Retourne la version du serveur MySQL

  • get_server_version - Retourne la version du serveur MySQL

  • init - Initialise un objet mysqli

  • info - Lit les informations concernant la dernière requête

  • kill - Tente de terminer un thread serveur

  • multi_query - Exécute une requête multiple

  • more_results - Vérifie si d'autres résultats existent après une commande multiple

  • next_result - Lit le prochain résultat d'une commande multiple

  • options - Modifie des options

  • ping - Pinge la connexion au serveur ou se reconnecte si elle est morte

  • prepare - Prépare une requête SQL

  • query - Exécute une requête SQL

  • real_connect - Tente de se connecter au serveur MySQL

  • escape_string - Protège les caractères spéciaux dans une chaîne

  • rollback - Annule la transaction courante

  • select_db - Sélectionne la base de données par défaut

  • set_charset - Définit le jeu de caractères par défaut du client

  • ssl_set - Configure les paramètres SSL

  • stat - Lit le statut courant du système

  • stmt_init - Initialise une commande pour utilisation avec mysqli_stmt_prepare

  • store_result - Lit le jeu de résultat de la dernière requête

  • thread_safe - Indique si la sécurité du thread est activée

  • use_result - Transfère un résultat non-bufferisé

Propriétés

  • affected_rows - Lit le nombre de lignes affectées par la dernière opération

  • client_info - Retourne la version cliente de MySQL en tant que chaîne de caractères

  • client_version - Retourne la version cliente de MySQL en tant qu'entier

  • errno - Retourne le code d'erreur du dernier appel de fonction

  • error - Retourne le message d'erreur du dernier appel de fonction

  • field_count - Retourne le nombre de colonnes de la dernière commande

  • host_info - Retourne une chaîne décrivant le type de connexion utilisé

  • info - Lit les informations sur la dernière commande exécutée

  • insert_id - Retourne le dernier identifiant généré

  • protocol_version - Retourne la version du protocole MySQL utilisé

  • server_info - Retourne une chaîne de caractères qui représente le numéro de version du serveur

  • server_version - Retourne le numéro de version du serveur en tant qu'entier

  • sqlstate - Retourne une chaîne contenant le code d'erreur SQLSTATE

  • thread_id - Retourne l'identifiant de thread de la connexion courante

  • warning_count - Retourne le nombre d'alertes générées durant l'exécution de la dernière commande SQL

mysqli_stmt

Représente une commande préparée.

Méthodes

  • bind_param - Associe des variables à une commande préparée

  • bind_result - Associe des variables à un résultat

  • close - Termine une commande préparée

  • data_seek - Place le curseur à une ligne arbitraire dans un jeu de résultat

  • execute - Exécute une commande préparée

  • fetch - Lit une ligne de résultat dans des variables associées

  • free_result - Libère le résultat de la mémoire

  • prepare - Prépare une commande SQL

  • reset - annule une commande SQL

  • result_metadata - Lit un résultat d'une commande préparée

  • send_long_data - Envoie les données par bloc

  • store_result - Bufferise complètement le résultat d'une commande préparée

Propriétés

  • affected_rows - Retourne le nombre de lignes affectées par la dernière commande SQL

  • errno - Retourne le code d'erreur de la dernière commande

  • error - Retourne le message d'erreur de la dernière commande

  • field_count - Retourne le nombre de colonnes dans un jeu de résultats

  • id - Retourne l'identifiant de la requête

  • insert_id - Retourne la valeur générée pour une colonne AUTO_INCREMENT par la requête préparée

  • num_rows - Retourne le nombre de lignes dans le jeu de résultats

  • param_count - Retourne le nombre de paramètres nécessaires pour une commande préparée

  • sqlstate - Retourne une chaîne contenant le code d'erreur SQLSTATE de la dernière commande

mysqli_result

Représente le résultat retourné par le serveur.

Méthodes

  • close - Termine le jeu de résultat MySQL

  • data_seek - Déplace le pointeur de lignes de résultat

  • fetch_array - Lit une ligne de résultat dans un tableau associatif ou numérique

  • fetch_assoc - Lit une ligne de résultat dans un tableau associatif

  • fetch_field - Lit les informations de colonnes dans un résultat

  • fetch_fields - Lit les informations de toutes les colonnes d'un résultat

  • fetch_field_direct - Lit les informations de colonne

  • fetch_object - Lit une ligne de résultat dans un objet

  • fetch_row - Lit une ligne de résultat dans un tableau numérique

  • field_seek - Place le pointeur de résultat à un offset valide

  • free_result - Libère le résultat de la mémoire

Propriétés

  • current_field - Retourne la position du pointeur de résultat

  • field_count - Retourne le nombre de champs du résultat

  • lengths - Retourne un tableau avec les tailles de colonnes

  • num_rows - Retourne le nombre de lignes du résultat

  • type - Retourne MYSQLI_STORE_RESULT ou MYSQLI_USE_RESULT

Constantes pré-définies

Tableau 2. Constantes MySQLi

Nom | Description
MYSQLI_READ_DEFAULT_GROUP (entier) | Lit les options dans le groupe `my.cnf' ou dans le fichier spécifié par MYSQLI_READ_DEFAULT_FILE
MYSQLI_READ_DEFAULT_FILE (entier) | Lit les options dans le fichier spécifié, plutôt que dans my.cnf
MYSQLI_OPT_CONNECT_TIMEOUT (entier) | Durée d'expiration de la connexion, en secondes
MYSQLI_OPT_LOCAL_INFILE (entier) | Active la commande LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND (entier) | 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 (entier) | 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 (entier) | Utilise le protocole compressé.
MYSQLI_CLIENT_INTERACTIVE (entier) | 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 (entier) | 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 (entier) | Interdit la syntaxe db_name.tbl_name.col_name.
MYSQLI_CLIENT_MULTI_QUERIES (entier) |
MYSQLI_STORE_RESULT (entier) | Pour les résultats mis en tampon.
MYSQLI_USE_RESULT (entier) | Pour les résultats non-mis en tampon.
MYSQLI_ASSOC (entier) | Les colonnes sont retournées dans le tableau, avec leurs noms comme index.
MYSQLI_NUM (entier) | Les colonnes sont retournées dans le tableau, avec leurs numéros comme index.
MYSQLI_BOTH (entier) | Les colonnes sont retournées dans le tableau, avec leurs noms et leurs numéros comme index.
MYSQLI_NOT_NULL_FLAG (entier) | Indique qu'un champ est défini comme NOT NULL
MYSQLI_PRI_KEY_FLAG (entier) | Le champ est une clé primaire.
MYSQLI_UNIQUE_KEY_FLAG (entier) | Le champ est un index unique.
MYSQLI_MULTIPLE_KEY_FLAG (entier) | Le champ fait partie d'un index.
MYSQLI_BLOB_FLAG (entier) | Le champ est de type BLOB
MYSQLI_UNSIGNED_FLAG (entier) | Le champ est de type UNSIGNED
MYSQLI_ZEROFILL_FLAG (entier) | Le champ est de type ZEROFILL
MYSQLI_AUTO_INCREMENT_FLAG (entier) | Le champ est de type AUTO_INCREMENT
MYSQLI_TIMESTAMP_FLAG (entier) | Le champ est de type TIMESTAMP
MYSQLI_SET_FLAG (entier) | Le champ est de type SET
MYSQLI_NUM_FLAG (entier) | Le champ est de type NUMERIC
MYSQLI_PART_KEY_FLAG (entier) | Le champ fait partie d'un index multiple
MYSQLI_GROUP_FLAG (entier) | Le champ fait partie de la clause GROUP BY
MYSQLI_TYPE_DECIMAL (entier) | Le champ est de type DECIMAL
MYSQLI_TYPE_NEWDECIMAL (entier) | Le champ est de type DECIMAL ou NUMERIC (MySQL 5.0.3 et supérieur)
MYSQLI_TYPE_BIT (entier) | Le champ est de type BIT (MySQL 5.0.3 et supérieur)
MYSQLI_TYPE_TINY (entier) | Le champ est de type TINYINT
MYSQLI_TYPE_SHORT (entier) | Le champ est de type INT
MYSQLI_TYPE_LONG (entier) | Le champ est de type INT
MYSQLI_TYPE_FLOAT (entier) | Le champ est de type FLOAT
MYSQLI_TYPE_DOUBLE (entier) | Le champ est de type DOUBLE
MYSQLI_TYPE_NULL (entier) | Le champ est de type DEFAULT NULL
MYSQLI_TYPE_TIMESTAMP (entier) | Le champ est de type TIMESTAMP
MYSQLI_TYPE_LONGLONG (entier) | Le champ est de type BIGINT
MYSQLI_TYPE_INT24 (entier) | Le champ est de type MEDIUMINT
MYSQLI_TYPE_DATE (entier) | Le champ est de type DATE
MYSQLI_TYPE_TIME (entier) | Le champ est de type TIME
MYSQLI_TYPE_DATETIME (entier) | Le champ est de type DATETIME
MYSQLI_TYPE_YEAR (entier) | Le champ est de type YEAR
MYSQLI_TYPE_NEWDATE (entier) | Le champ est de type DATE
MYSQLI_TYPE_ENUM (entier) | Le champ est de type ENUM
MYSQLI_TYPE_SET (entier) | Le champ est de type SET
MYSQLI_TYPE_TINY_BLOB (entier) | Le champ est de type TINYBLOB
MYSQLI_TYPE_MEDIUM_BLOB (entier) | Le champ est de type MEDIUMBLOB
MYSQLI_TYPE_LONG_BLOB (entier) | Le champ est de type LONGBLOB
MYSQLI_TYPE_BLOB (entier) | Le champ est de type BLOB
MYSQLI_TYPE_VAR_STRING (entier) | Le champ est de type VARCHAR
MYSQLI_TYPE_STRING (entier) | Le champ est de type CHAR
MYSQLI_TYPE_GEOMETRY (entier) | Le champ est de type GEOMETRY
MYSQLI_NEED_DATA (entier) | Il reste des variables à relier
MYSQLI_NO_DATA (entier) | Il n'y a plus de variables à relier
MYSQLI_DATA_TRUNCATED (integer) | Les données ont été tronquées. Disponible depuis PHP 5.1.0 et MySQL 5.0.5.

Exemples

Tous les exemples dans la documentation MySQLI utilisent la base de données "world" provenant de MySQL AB. La base de données "world" peut être trouvée ici : http://dev.mysql.com/get/Downloads/Manual/world.sql.gz/from/pick

Table des matières
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_bind_param -- Alias de mysqli_stmt_bind_param()
mysqli_bind_result -- Alias de mysqli_stmt_bind_result()
mysqli_change_user -- Change l'utilisateur de la connexion spécifiée
mysqli_character_set_name -- Retourne le jeu de caractères courant pour la connexion
mysqli_client_encoding -- Alias de mysqli_character_set_name()
mysqli_close -- Ferme une connexion
mysqli_commit -- Valide la transaction courante
mysqli_connect_errno -- Retourne le code d'erreur de la connexion MySQL
mysqli_connect_error -- Retourne le message d'erreur de connexion MySQL
mysqli_connect -- Ouvre une connexion à un serveur MySQL
mysqli_data_seek -- Déplace le pointeur interne de résultat
mysqli_debug -- Effectue des actions de débogage
mysqli_disable_reads_from_master -- Désactive la lecture depuis le maître
mysqli_disable_rpl_parse -- Désactive le parseur RPL
mysqli_dump_debug_info -- Écrit les informations de débogage dans les logs
mysqli_embedded_server_end --
mysqli_embedded_server_start --
mysqli_enable_reads_from_master -- Active la lecture depuis le maître
mysqli_enable_rpl_parse -- Active le parseur RPL
mysqli_errno -- Retourne un code d'erreur pour la dernière commande MySQL
mysqli_error -- Retourne une chaîne décrivant la dernière erreur
mysqli_escape_string -- Alias de mysqli_real_escape_string()
mysqli_execute -- Alias de mysqli_stmt_execute()
mysqli_fetch_array -- Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux
mysqli_fetch_assoc -- Récupère une ligne de résultat sous forme de tableau associatif
mysqli_fetch_field_direct -- Récupère les données métas d'un champ unique
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
mysqli_fetch_lengths -- Retourne la longueur des colonnes de la ligne courante du jeu de résultats
mysqli_fetch_object -- Retourne la ligne courante d'un jeu de résultat sous forme d'objet
mysqli_fetch_row -- Récupère une ligne de résultat sous forme de tableau indexé
mysqli_fetch -- Alias de mysqli_stmt_fetch()
mysqli_field_count -- Retourne le nombre de colonnes pour la dernière requête
mysqli_field_seek -- Déplace le pointeur de résultat sur le champs spécifié
mysqli_field_tell -- Retourne la position du champs courant dans un pointeur de résultat
mysqli_free_result -- Libère la mémoire associée à un résultat
mysqli_get_charset -- Retourne un objet contenant le jeu de caractères
mysqli_get_client_info -- Retourne une chaîne contenant la version du client MySQL
mysqli_get_client_version -- Lit les informations du client MySQL
mysqli_get_host_info -- Retourne une chaîne contenant le type de connexion utilisée
mysqli_get_metadata -- Alias de mysqli_stmt_result_metadata()
mysqli_get_proto_info -- Retourne la version du protocole MySQL utilisé
mysqli_get_server_info -- Retourne la version du serveur MySQL
mysqli_get_server_version -- Retourne un entier représentant la version du serveur MySQL
mysqli_get_warnings --
mysqli_info -- Retourne des informations à propos de la dernière requête exécutée
mysqli_init -- Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()
mysqli_insert_id -- Retourne l'identifiant automatiquement généré par la dernière requête
mysqli_kill -- Demande au serveur de terminer un thread MySQL
mysqli_master_query -- Force l'exécution d'une requête sur le maître dans une configuration maître/esclave (master/slave)
mysqli_more_results -- Vérifie s'il y a d'autres jeux de résultats MySQL disponibles
mysqli_multi_query -- Exécute une requête MySQL multiple
mysqli_next_result -- Prépare le prochain résultat d'une requête multiple
mysqli_num_fields -- Retourne le nombre de champs dans un résultat
mysqli_num_rows -- Retourne le nombre de lignes dans un résultat
mysqli_options -- Définit les options
mysqli_param_count -- Alias de mysqli_stmt_param_count()
mysqli_ping -- Ping la connexion au serveur et reconnecte si elle n'existe plus
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_report -- Active ou désactive les fonctions de rapport interne
mysqli_rollback -- Annule la transaction courante
mysqli_rpl_parse_enabled -- Vérifie si l'analyseur RPL est activé
mysqli_rpl_probe -- Sonde le RPL
mysqli_rpl_query_type -- Retourne le type de requête RPL
mysqli_select_db -- Sélectionne une base de données par défaut pour les requêtes
mysqli_send_long_data -- Alias de mysqli_stmt_send_long_data()
mysqli_send_query -- Envoie la requête et retourne
mysqli_server_end -- Éteint le serveur embarqué
mysqli_server_init -- Initialise le serveur MySQL intégré
mysqli_set_charset -- Définit le jeu de caractères par défaut du client
mysqli_set_local_infile_default -- Rétablit le gestionnaire par défaut pour la commande LOAD LOCAL INFILE
mysqli_set_local_infile_handler -- Définit une fonction de callback pour la commande LOAD DATA LOCAL INFILE
mysqli_set_opt -- Alias de mysqli_options()
mysqli_slave_query -- Force l'exécution de la requête sur un serveur esclave pour une configuration maître/esclave
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_affected_rows -- Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête
mysqli_stmt_attr_get --
mysqli_stmt_attr_set --
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 -- Ferme une requête préparée
mysqli_stmt_data_seek -- Déplace le pointeur de résultat MySQL
mysqli_stmt_errno -- Retourne un code erreur pour la dernière requête
mysqli_stmt_error -- Retourne une description de la dernière erreur de traitement
mysqli_stmt_execute -- Exécute une requête préparée
mysqli_stmt_fetch -- Lit des résultats depuis une requête MySQL préparée dans des variables liées
mysqli_stmt_field_count -- Retourne le nombre de champs présent dans la requête donnée
mysqli_stmt_free_result -- Libère le résultat MySQL de la mémoire
mysqli_stmt_get_warnings --
mysqli_stmt_init -- Initialise une commande MySQL
mysqli_stmt_insert_id -- Récupère l'ID généré par la dernière requête INSERT
mysqli_stmt_num_rows -- Retourne le nombre de lignes d'un résultat MySQL
mysqli_stmt_param_count -- Retourne le nombre de paramètres d'une requête MySQL
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éta-donné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 -- Récupère un jeu de résultats depuis une requête préparée
mysqli_store_result -- Transfère un jeu de résultats à partir de la dernière requête
mysqli_thread_id -- Retourne l'identifiant du thread pour la connexion courante
mysqli_thread_safe -- Indique si le thread safety est donné ou non
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

Précédent | Sommaire | Suivant
PDO_MYSQL DSN | Niveau supérieur | mysqli_affected_rows


mysqli_affected_rows

(PHP 5)

mysqli_affected_rows

(no version information, might be only in CVS)

mysqli->affected_rows -- Retourne le nombre de lignes affectées par la dernière opération MySQL

Description

Style procédural

int mysqli_affected_rows ( mysqli link )

Style orienté objet (méthode)

class mysqli {

int affected_rows

}

Retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE, REPLACE ou DELETE associée au paramètre link.

Cette fonction ne fonctionne que pour les requêtes qui modifient une table. Pour connaître le nombre de lignes retournées par une requête SELECT, utilisez la fonction mysqli_num_rows().

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Un entier plus grand que zéro indique le nombre de lignes affectées ou recherchées. Zéro indique qu'aucun enregistrement n'a été modifié par une requête du type UPDATE, aucune ligne ne correspond à la clause WHERE dans la requête ou bien qu'aucune requête n'a été exécutée. -1 indique que la requête a retourné une erreur.

Note : Si le nombre de lignes affectées est plus grand que la valeur maximale que peut prendre un entier, le nombre de lignes affectées sera retourné en tant que chaîne de caractères.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Erreur de connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Insertion d'une ligne */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Nombre de lignes affectées (INSERT) : %d\n", $mysqli->affected_rows);

$mysqli->query("ALTER TABLE Language ADD Status int default 0");

/* Modification d'une ligne */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Nombre de lignes affectées (UPDATE) : %d\n", $mysqli->affected_rows);

/* Effacement d'une ligne */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Nombre de lignes affectées (DELETE) : %d\n", $mysqli->affected_rows);

/* Sélection de toutes les lignes */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Nombre de lignes affectées (SELECT) : %d\n", $mysqli->affected_rows);

$result->close();

/* Effacement de la table "Language" */
$mysqli->query("DROP TABLE Language");

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Connexion impossible à localhost. Erreur : %s\n", mysqli_connect_error());
    exit();
}

/* Insertion d'une ligne */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Nombre de lignes affectées (INSERT) : %d\n", mysqli_affected_rows($link));

mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");

/* Modification d'une ligne */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Nombre de lignes affectées (UPDATE) : %d\n", mysqli_affected_rows($link));

/* Effacement d'une ligne */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Nombre de lignes affectées (DELETE) : %d\n", mysqli_affected_rows($link));

/* Selection de toutes les lignes */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Nombre de lignes affectées (SELECT) : %d\n", mysqli_affected_rows($link));

mysqli_free_result($result);

/* Effacement de la table "language" */
mysqli_query($link, "DROP TABLE Language");

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Affected rows (INSERT): 984
Affected rows (UPDATE): 168
Affected rows (DELETE): 815
Affected rows (SELECT): 169

Voir aussi

mysqli_num_rows()
mysqli_info()

Précédent | Sommaire | Suivant
Extension MySQL améliorée | Niveau supérieur | mysqli_autocommit


mysqli_autocommit

(PHP 5)

mysqli_autocommit

(no version information, might be only in CVS)

mysqli->autocommit() -- Active ou désactive le mode auto-commit

Description

Style procédural

bool mysqli_autocommit ( mysqli link, bool mode )

Style orienté objet (méthode)

class mysqli {

bool autocommit ( bool mode )

}

Active ou désactive le mode auto-commit pour les requêtes sur la connexion.

Pour vérifier l'état de l'autocommit, utilisez la commande SQL SELECT @@autocommit.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

mode

Si l'on doit active ou non l'auto-commit.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction ne fonctionne pas avec les types de tables non transactionnelles. (Comme MyISAM ou ISAM.)

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Échec de la connexion. Erreur : %s\n", mysqli_connect_error());
    exit();
}

/* Activation de l'autocommit */
$mysqli->autocommit(TRUE);

if ($result = $mysqli->query("SELECT @@autocommit")) {
    $row = $result->fetch_row();
    printf("L'autocommit vaut %s\n", $row[0]);
    $result->free();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Échec de la connexion. Erreur : %s\n", mysqli_connect_error());
    exit();
}

/* Activation de l'autocommit */
mysqli_autocommit($link, TRUE);

if ($result = mysqli_query($link, "SELECT @@autocommit")) {
    $row = mysqli_fetch_row($result);
    printf("L'autocommit vaut %s\n", $row[0]);
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

L'autocommit vaut 1

Voir aussi

mysqli_commit()
mysqli_rollback()

Précédent | Sommaire | Suivant
mysqli_affected_rows | Niveau supérieur | mysqli_bind_param


mysqli_bind_param

(PHP 5)

mysqli_bind_param -- Alias de mysqli_stmt_bind_param()

Description

Cette fonction est un alias de la fonction mysqli_stmt_bind_param().

Notes

Note : La fonction mysqli_bind_param() est obsolète et devrait être supprimée.

Voir aussi

mysqli_stmt_bind_param()

Précédent | Sommaire | Suivant
mysqli_autocommit | Niveau supérieur | mysqli_bind_result


mysqli_bind_result

(PHP 5)

mysqli_bind_result -- Alias de mysqli_stmt_bind_result()

Description

Cette fonction est un alias de la fonction mysqli_stmt_bind_result().

Notes

Note : La fonction mysqli_bind_result() est obsolète et devrait être supprimée.

Voir aussi

mysqli_stmt_bind_result()

Précédent | Sommaire | Suivant
mysqli_bind_param | Niveau supérieur | mysqli_change_user


mysqli_change_user

(PHP 5)

mysqli_change_user

(no version information, might be only in CVS)

mysqli->change_user() -- Change l'utilisateur de la connexion spécifiée

Description

Style procédural

bool mysqli_change_user ( mysqli link, string user, string password, string database )

Style orienté objet (méthode)

class mysqli {

bool change_user ( string user, string password, string database )

}

Change l'utilisateur de la connexion spécifiée par le paramètre link et change la base de données courante pour celle spécifiée par le paramètre database.

Pour que cette fonction réussisse, les paramètres username et password doivent être valides et l'utilisateur en question doit avoir les permissions d'accès à la base de données désirée. Si pour une raison ou une autre, l'autorisation échoue, l'utilisateur courant sera conservé.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

user

Le nom d'utilisateur MySQL.

password

Le mot de passe MySQL.

database

La base de données à utiliser.

Vous pouvez passer la valeur NULL à ce paramètre pour ne changer que l'utilisateur. Dans ce cas, vous pouvez utiliser la fonction mysqli_select_db() pour changer de base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : L'utilisation de cette commande implique toujours que la connexion soit considérée comme neuve, que la fonction réussisse ou non. Un appel à cette fonction annulera donc toutes les transactions actives, fermera les tables temporaires et déverrouillera les tables verrouillées.

Exemples

Exemple 1. 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");

/* reset all and select a new database */
$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();
?>

Exemple 2. 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");

/* reset all and select a new database */
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);
?>

L'exemple ci-dessus va afficher :

Base de données par défaut : world
La valeur de la variable a est NULL

Voir aussi

mysqli_connect()
mysqli_select_db()

Précédent | Sommaire | Suivant
mysqli_bind_result | Niveau supérieur | mysqli_character_set_name


mysqli_character_set_name

(PHP 5)

mysqli_character_set_name

(no version information, might be only in CVS)

mysqli->character_set_name() -- Retourne le jeu de caractères courant pour la connexion

Description

Style procédural

string mysqli_character_set_name ( mysqli link )

Style orienté objet (méthode)

class mysqli {

string character_set_name ( void )

}

Retourne le jeu de caractères courant pour la connexion spécifiée par le paramètre link.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Le jeu de caractères par défaut pour la connexion courante

Exemples

Exemple 1. Style orienté objet

<?php
/* Open a connection */
$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();
}

/* Affiche le jeu de caractères courant */
$charset = $mysqli->character_set_name();
printf ("Current character set is %s\n", $charset);

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
/* Ouverture d'une connexion */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (!$link) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affiche le jeu de caractères courant */
$charset = mysqli_character_set_name($link);
printf ("Le jeu de caractères courant est %s\n",$charset);

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Le jeu de caractères courant est latin1_swedish_ci

Voir aussi

mysqli_client_encoding()
mysqli_real_escape_string()

Précédent | Sommaire | Suivant
mysqli_change_user | Niveau supérieur | mysqli_client_encoding


mysqli_client_encoding

(PHP 5)

mysqli_client_encoding -- Alias de mysqli_character_set_name()

Description

Cette fonction est un alias de la fonction mysqli_character_set_name().

Voir aussi

mysqli_real_escape_string()

Précédent | Sommaire | Suivant
mysqli_character_set_name | Niveau supérieur | mysqli_close


mysqli_close

(PHP 5)

mysqli_close

(no version information, might be only in CVS)

mysqli->close() -- Ferme une connexion

Description

Style procédural

bool mysqli_close ( mysqli link )

Style orienté objet (méthode)

class mysqli {

bool close ( void )

}

Ferme la connexion spécifiée par le paramètre link.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

mysqli_connect()
mysqli_init()
mysqli_real_connect()

Précédent | Sommaire | Suivant
mysqli_client_encoding | Niveau supérieur | mysqli_commit


mysqli_commit

(PHP 5)

mysqli_commit

(no version information, might be only in CVS)

mysqli->commit() -- Valide la transaction courante

Description

Style procédural

bool mysqli_commit ( mysqli link )

Style orienté objet (méthode)

class mysqli {

bool commit ( void )

}

Valide la transaction courante pour la base de données spécifiée par le paramètre link.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, 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();
}

$mysqli->query("CREATE TABLE Language LIKE CountryLanguage Type=InnoDB");

/* Désactivation de l'autocommit */
$mysqli->autocommit(FALSE);

/* Insertion de quelques valeurs */
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* Validation de la transaction */
$mysqli->commit();

/* Effacement de la table */
$mysqli->query("DROP TABLE Language");

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* Vérification de la connexion */
if (!$link) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Désactivation de l'autocommit */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE Language LIKE CountryLanguage Type=InnoDB");

/* Insertion de quelques valeurs */
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* Validation de la transaction */
mysqli_commit($link);

/* Fermeture de la connexion */
mysqli_close($link);
?>

Voir aussi

mysqli_autocommit()
mysqli_rollback()

Précédent | Sommaire | Suivant
mysqli_close | Niveau supérieur | mysqli_connect_errno


mysqli_connect_errno

(PHP 5)

mysqli_connect_errno -- Retourne le code d'erreur de la connexion MySQL

Description

int mysqli_connect_errno ( void )

Retourne le code d'erreur de la dernière tentative de connexion avec mysqli_connect().

Note : Les messages d'erreur du client MySQL sont disponibles dans errmsg.h. Les messages d'erreur du serveur MySQL sont disponibles dans mysqld_error.h. Dans la distribution source de MySQL, vous pouvez trouver la liste complète des messages d'erreurs et des codes d'erreurs dans le fichier Docs/mysqld_error.txt.

Valeurs de retour

Un code d'erreur généré par le dernier appel à mysqli_connect(), si ce dernier a échoué. Zéro signifie qu'aucune erreur n'est survenue.

Exemples

Exemple 1. Exemple avec mysqli_connect_errno()

<?php

$link = @mysqli_connect("localhost", "nonexisting_user", "");

if (!$link) {
    printf("Impossible de se connecter à localhost. Code d'erreur : %d\n", mysqli_connect_errno());
}
?>

Voir aussi

mysqli_connect()
mysqli_connect_error()
mysqli_errno()
mysqli_error()
mysqli_sqlstate()

Précédent | Sommaire | Suivant
mysqli_commit | Niveau supérieur | mysqli_connect_error


mysqli_connect_error

(PHP 5)

mysqli_connect_error -- Retourne le message d'erreur de connexion MySQL

Description

string mysqli_connect_error ( void )

Retourne un message d'erreur, lié au dernier appel à mysqli_connect(), qui correspond au numéro d'erreur retourné par mysqli_connect_errno().

Valeurs de retour

Une chaîne qui décrit l'erreur. Une chaîne vide si aucune erreur ne survient.

Exemples

Exemple 1. Exemple avec mysqli_connect_error()

<?php

$link = @mysqli_connect("localhost", "nonexisting_user", "");

if (!$link) {
    printf("Impossible de se connecter à localhost. Message : %s\n", mysqli_connect_error());
}
?>

Voir aussi

mysqli_connect()
mysqli_connect_errno()
mysqli_errno()
mysqli_error()
mysqli_sqlstate()

Précédent | Sommaire | Suivant
mysqli_connect_errno | Niveau supérieur | mysqli_connect


mysqli_connect

(PHP 5)

mysqli_connect

(no version information, might be only in CVS)

mysqli->__construct() -- Ouvre une connexion à un serveur MySQL

Description

Style procédural

mysqli mysqli_connect ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] )

Style orienté objet (méthode)

class mysqli {

__construct ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] )

}

Essaie d'ouvrir une connexion au serveur MySQL de l'hôte host qui peut être un nom d'hôte ou une adresse IP.

Liste de paramètres

host

Peut être un nom d'hôte ou une adresse IP. Si vous passez la valeur NULL ou la chaîne "localhost" à ce paramètre, l'hôte local est sous-entendu. Lorsque c'est possible, les sockets seront utilisées au lieu du protocole TCP/IP.

username

Le nom d'utilisateur MySQL.

passwd

Si le mot de passe n'est pas indiqué (la valeur NULL est passée), le serveur MySQL essaiera d'identifier l'utilisateur en étudiant que les enregistrements où les utilisateurs n'ont pas de mot de passe. Cela permet à un utilisateur de jouir de plusieurs permissions (selon que l'on fournit le mot de passe ou non).

dbname

Si fourni, spécifiera la base de données par défaut à utiliser lors de l'exécution de requêtes.

port

Spécifie le numéro du port pour la connexion au serveur MySQL.

socket

Spécifie le socket ou le nom du tunnel à utiliser.

Note : Spécifier le paramètre socket ne déterminera pas explicitement le type de connexion qui sera utilisé lors de la connexion au serveur MySQL. Cela est déterminé par le paramètre host.

Valeurs de retour

Retourne un objet qui représente la connexion au serveur MySQL ou FALSE si la connexion échoue.

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

printf("Information sur le serveur : %s\n", $mysqli->host_info);

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (!$link) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

printf("Information sur le serveur : %s\n", mysqli_get_host_info($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Information sur le serveur : Localhost via UNIX socket

Précédent | Sommaire | Suivant
mysqli_connect_error | Niveau supérieur | mysqli_data_seek


mysqli_data_seek

(PHP 5)

mysqli_data_seek

(no version information, might be only in CVS)

result->data_seek() -- Déplace le pointeur interne de résultat

Description

Style procédural

bool mysqli_data_seek ( mysqli_result result, int offset )

Style orienté objet (méthode)

class mysqli_result {

bool data_seek ( int offset )

}

La fonction mysqli_data_seek() déplace le pointeur interne de résultat associé au jeu de résultat représenté par result, en le faisant pointer sur la ligne spécifiée par offset.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

offset

Le paramètre offset doit être compris entre zéro et mysqli_num_rows() - 1 (0..mysqli_num_rows() - 1).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Cette fonction ne peut être utilisée qu'avec des résultats obtenus avec la fonction mysqli_store_result() ou mysqli_query().

Exemples

Exemple 1. Style orienté objet

<?php
/* Ouverture de la connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($result = $mysqli->query( $query)) {

    /* Déplacement du pointeur sur la ligne numéro 400 */
    $result->data_seek(399);

    /* Récupération de cette ligne */
    $row = $result->fetch_row();

    printf ("Ville : %s  Code postal : %s\n", $row[0], $row[1]);

    /* Libération des résultats */
    $result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
/* Ouverture de la connexion */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (!$link) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";

if ($result = mysqli_query($link, $query)) {

    /* Déplacement du pointeur sur la ligne numéro 400 */
    mysqli_data_seek($result, 399);

    /* Récupération de cette ligne */
    $row = mysqli_fetch_row($result);

    printf ("Ville : %s  Code postal : %s\n", $row[0], $row[1]);

    /* Libération des résultats */
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Ville : Benin City  Code postal : NGA

Voir aussi

mysqli_store_result()
mysqli_fetch_row()
mysqli_fetch_array()
mysqli_fetch_assoc()
mysqli_fetch_object()
mysqli_query()
mysqli_num_rows()

Précédent | Sommaire | Suivant
mysqli_connect | Niveau supérieur | mysqli_debug


mysqli_debug

(PHP 5)

mysqli_debug

(no version information, might be only in CVS)

mysqli->debug() -- Effectue des actions de débogage

Description

Style procédural

bool mysqli_debug ( string message )

Style orienté objet (méthode)

class mysqli {

bool debug ( string message )

}

Effectue des actions de débogage en utilisant la bibliothèque de débogage Fred Fish.

Liste de paramètres

message

Une chaîne de caractères représentant l'opération de débogage à effectuer.

Valeurs de retour

Retourne TRUE.

Notes

Note : Pour utiliser la fonction mysqli_debug(), vous devez compiler la bibliothèque cliente MySQL avec le support du débogage.

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:0,/tmp/client.trace");

?>

Voir aussi

mysqli_dump_debug_info()
mysqli_report()

Précédent | Sommaire | Suivant
mysqli_data_seek | Niveau supérieur | mysqli_disable_reads_from_master


mysqli_disable_reads_from_master

(PHP 5)

mysqli_disable_reads_from_master

(no version information, might be only in CVS)

mysqli->disable_reads_from_master() -- Désactive la lecture depuis le maître

Description

Style procédural

bool mysqli_disable_reads_from_master ( mysqli link )

Style orienté objet (méthode)

class mysqli {

void disable_reads_from_master ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_debug | Niveau supérieur | mysqli_disable_rpl_parse


mysqli_disable_rpl_parse

(PHP 5)

mysqli_disable_rpl_parse -- Désactive le parseur RPL

Description

bool mysqli_disable_rpl_parse ( mysqli link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_disable_reads_from_master | Niveau supérieur | mysqli_dump_debug_info


mysqli_dump_debug_info

(PHP 5)

mysqli_dump_debug_info

(no version information, might be only in CVS)

mysqli->dump_debug_info() -- Écrit les informations de débogage dans les logs

Description

Style procédural

bool mysqli_dump_debug_info ( mysqli link )

Style orienté objet (méthode)

class mysqli {

bool dump_debug_info ( void )

}

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 log pour le serveur MySQL relatif à la connexion spécifiée par le paramètre link.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

mysqli_debug()

Précédent | Sommaire | Suivant
mysqli_disable_rpl_parse | Niveau supérieur | mysqli_embedded_server_end


mysqli_enable_reads_from_master

(PHP 5)

mysqli_enable_reads_from_master -- Active la lecture depuis le maître

Description

bool mysqli_enable_reads_from_master ( mysqli link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_embedded_server_start | Niveau supérieur | mysqli_enable_rpl_parse


mysqli_enable_rpl_parse

(PHP 5)

mysqli_enable_rpl_parse -- Active le parseur RPL

Description

bool mysqli_enable_rpl_parse ( mysqli link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_enable_reads_from_master | Niveau supérieur | mysqli_errno


mysqli_errno

(PHP 5)

mysqli_errno

(no version information, might be only in CVS)

mysqli->errno -- Retourne un code d'erreur pour la dernière commande MySQL

Description

Style procédural

int mysqli_errno ( mysqli link )

Style orienté objet (méthode)

class mysqli {

int errno

}

Retourne le code erreur pour le dernier appel à une fonction MySQLi qui peut échouer ou réussir en respectant la connexion définie par la paramètre link.

Les numéros d'erreur client sont listés dans les en-têtes du fichier MySQL errmsg.h, les messages d'erreur du serveur sont listés dans le fichier mysqld_error.h. Dans les sources de MySQL, vous pouvez trouver une liste complète des messages d'erreur et des numéros d'erreur dans le fichier Docs/mysqld_error.txt.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

La valeur du code erreur pour le dernier appel, s'il échoue. 0 signifie qu'aucune erreur n'est survenue.

Exemples

Exemple 1. 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();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Code Erreur : %d\n", mysqli_errno($link));
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Code Erreur : 1193

Voir aussi

mysqli_connect_errno()
mysqli_connect_error()
mysqli_error()
mysqli_sqlstate()

Précédent | Sommaire | Suivant
mysqli_enable_rpl_parse | Niveau supérieur | mysqli_error


mysqli_error

(PHP 5)

mysqli_error -- Retourne une chaîne décrivant la dernière erreur

Description

Style procédural

string mysqli_error ( mysqli link )

Style orienté objet (méthode)

class mysqli {

string error

}

Retourne la chaîne de caractères décrivant l'erreur survenue lors du dernier appel à une fonction MySQLi, que cet appel est réussi ou échoué.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères qui décrit l'erreur. Une chaîne de caractères vide si aucun erreur n'est survenue.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Message d'erreur : %s\n", $mysqli->error);
}

/* 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();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Message d'erreur : %s\n", mysqli_error($link));
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Message d'erreur : Unknown system variable 'a'

Voir aussi

mysqli_connect_errno()
mysqli_connect_error()
mysqli_errno()
mysqli_sqlstate()

Précédent | Sommaire | Suivant
mysqli_errno | Niveau supérieur | mysqli_escape_string


mysqli_escape_string

(PHP 5)

mysqli_escape_string -- Alias de mysqli_real_escape_string()

Description

mysqli_escape_string() est un alias de la fonction mysqli_real_escape_string().

Voir aussi

mysqli_real_escape_string()

Précédent | Sommaire | Suivant
mysqli_error | Niveau supérieur | mysqli_execute


mysqli_execute

(PHP 5)

mysqli_execute -- Alias de mysqli_stmt_execute()

Description

mysqli_execute() est un alias de la fonction mysqli_stmt_execute().

Notes

Note : mysqli_execute() est fortement déconseillée et devrait être supprimée prochainement.

Voir aussi

mysqli_stmt_execute()

Précédent | Sommaire | Suivant
mysqli_escape_string | Niveau supérieur | mysqli_fetch_array


mysqli_fetch_array

(PHP 5)

mysqli_fetch_array

(no version information, might be only in CVS)

result->fetch_array() -- Retourne une ligne de résultat sous la forme d'un tableau associatif, d'un tableau indexé, ou les deux

Description

Style procédural

mixed mysqli_fetch_array ( mysqli_result result [, int resulttype] )

Style orienté objet (méthode)

class mysqli_result {

mixed fetch_array ( [int resulttype] )

}

Retourne un tableau qui correspond à la ligne récupérée ou NULL s'il n'y a plus de ligne dans le jeu de résultats result.

mysqli_fetch_array() est une version étendue de la fonction mysqli_fetch_row(). En plus d'enregistrer les données sous forme d'un tableau à indices numériques, elle peut aussi les enregistrer dans un tableau associatif, en utilisant les noms des champs comme clés.

Note : Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Si plusieurs colonnes portent le même nom, la dernière colonne aura la priorité. Pour accéder aux autres colonnes du même nom, vous devez utiliser l'index numérique, ou faire un alias pour chaque colonne.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

resulttype

Le second argument optionnel est une constante indiquant quel type de tableau doit être renvoyé à partir de la ligne de données courante. Les valeurs possibles pour ce paramètre sont les constantes MYSQLI_ASSOC, MYSQLI_NUM, et MYSQLI_BOTH. MYSQLI_BOTH est la valeur par défaut de ce paramètre.

En utilisant la constante MYSQLI_ASSOC, cette fonction se comportera comme la fonction mysqli_fetch_assoc(), tandis que MYSQLI_NUM la fera agir comme la fonction mysqli_fetch_row(). La constante MYSQLI_BOTH, créera elle un tableau qui sera à la fois associatif et indexé numériquement.

Valeurs de retour

Retourne un tableau de chaînes qui correspond à la ligne récupérée ou NULL s'il n'y a plus de ligne disponible dans le jeu de résultats.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = $mysqli->query($query);

/* Tableau indexé numériquement */
$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 indexé numériquement */
$row = $result->fetch_array(MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* Libération des résultats */
$result->close();

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($link, $query);

/* Tableau indexé numériquement */
$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 indexé numériquement */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* Libération des résultats */
mysqli_free_result($result);

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Voir aussi

mysqli_fetch_assoc()
mysqli_fetch_row()
mysqli_fetch_object()
mysqli_query()
mysqli_data_seek()

Précédent | Sommaire | Suivant
mysqli_execute | Niveau supérieur | mysqli_fetch_assoc


mysqli_fetch_assoc

(PHP 5)

mysqli_fetch_assoc

(no version information, might be only in CVS)

mysqli->fetch_assoc() -- Récupère une ligne de résultat sous forme de tableau associatif

Description

Style procédural

array mysqli_fetch_assoc ( mysqli_result result )

Style orienté objet (méthode)

class mysqli_result {

array fetch_assoc ( void )

}

Retourne un tableau associatif qui correspond à la ligne récupérée ou NULL s'il n'y a plus de ligne.

Note : Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne un tableau associatif de chaînes représentant la prochaine ligne dans le jeu de résultats représenté par le paramètre result, où chaque clé du tableau représente le nom d'une colonne du résultat ou NULL s'il n'y a plus de ligne dans le jeu de résultats.

Si deux ou plus colonnes dans le jeu de résultat ont le même nom, le tableau associatif retrourné par la fonction mysqli_fetch_assoc() ne contiendra que la valeur de la dernière colonne de ce nom. Si vous devez travailler avec des jeux de résultats ayant cette particularité, la fonction mysqli_fetch_row() qui retourne un tableau indexé doit être utilisée à la place.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* Tableau associatif de la ligne sélectionnée */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* Libération du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* Tableau associatif de la ligne sélectionnée */
    while ($row = mysqli_fetch_assoc($result)) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* Libération du jeu de résultats */
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Voir aussi

mysqli_fetch_array()
mysqli_fetch_row()
mysqli_fetch_object()
mysqli_query()
mysqli_data_seek()

Précédent | Sommaire | Suivant
mysqli_fetch_array | Niveau supérieur | mysqli_fetch_field_direct


mysqli_fetch_field_direct

(PHP 5)

mysqli_fetch_field_direct

(no version information, might be only in CVS)

result->fetch_field_direct() -- Récupère les données métas d'un champ unique

Description

Style procédural

object mysqli_fetch_field_direct ( mysqli_result result, int fieldnr )

Style orienté objet (méthode)

class mysqli_result {

object fetch_field_direct ( int fieldnr )

}

Retourne un objet qui contient les données métas d'un champ depuis le jeu de résultats spécifié.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

fieldnr

Le numéro du champs. Cette valeur doit être dans l'intervalle 0 à nombre de champs - 1.

Valeurs de retour

Retourne un objet qui contient les données métas d'un champ ou FALSE si aucune donnée méta n'est spécifiée pour le champ fieldnr.

Tableau 1. Attributs de l'objet

Attribut | Description
name | Le nom de la colonne
orgname | Le nom original de la colonne si un alias a été spécifié
table | Le nom de la table à laquelle ce champs appartient (s'il n'a pas été calculé)
orgtable | Le nom original de la table si un alias a été spécifié
def | La valeur par défaut du champs, représentée par une chaîne de caractères
max_length | La longueur maximale du champs pour le jeu de résultats
length | La largeur du champs, comme spécifiée dans la définition de table
charsetnr | Le numéro du jeu de caractères pour ce champs
flags | Un entier représentant le bit-flags pour ce champs
type | Le type de données utilisées pour ce champs
decimals | Le nombre de décimales utilisées (pour les champs de type entier)

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Récupération des données métas pour la colonne 'SurfaceArea' */
    $finfo = $result->fetch_field_direct(1);

    printf("Nom :     %s\n", $finfo->name);
    printf("Table :    %s\n", $finfo->table);
    printf("Longueur Max. : %d\n", $finfo->max_length);
    printf("Flags :    %d\n", $finfo->flags);
    printf("Type :     %d\n", $finfo->type);

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

    /* Récupération des données métas pour la colonne 'SurfaceArea' */
    $finfo = mysqli_fetch_field_direct($result, 1);

    printf("Nom :     %s\n", $finfo->name);
    printf("Table :    %s\n", $finfo->table);
    printf("Longueur Max. : %d\n", $finfo->max_length);
    printf("Flags :    %d\n", $finfo->flags);
    printf("Type :     %d\n", $finfo->type);

    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Nom :     SurfaceArea
Table :    Country
Longueur Max. : 10
Flags :    32769
Type :     4

Voir aussi

mysqli_num_fields()
mysqli_fetch_field()
mysqli_fetch_fields()

Précédent | Sommaire | Suivant
mysqli_fetch_assoc | Niveau supérieur | mysqli_fetch_field


mysqli_fetch_field

(PHP 5)

mysqli_fetch_field

(no version information, might be only in CVS)

result->fetch_field() -- Retourne le prochain champs dans le jeu de résultats

Description

Style procédural

object mysqli_fetch_field ( mysqli_result result )

Style orienté objet (méthode)

class mysqli_result {

object fetch_field ( void )

}

Retourne les attributs de la prochaine colonne dans le jeu de résultats représenté par le paramètre result en tant qu'objet. Appelez cette fonction de façon répétitive pour récupérer les informations de toutes les colonnes.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne un objet qui contient les informations d'un champ ou FALSE si aucune information n'est disponible pour ce champs.

Tableau 1. Propriétés de l'objet

Propriété | Description
name | Le nom de la colonne
orgname | Le nom original de la colonne si un alias a été spécifié
table | Le nom de la table à laquelle ce champs appartient (s'il n'a pas été calculé)
orgtable | Le nom original de la table si un alias a été spécifié
def | La valeur par défaut du champs, représentée par une chaîne de caractères
max_length | La longueur maximale du champs pour le jeu de résultats
length | La largeur du champs, comme spécifiée dans la définition de table
charsetnr | Le numéro du jeu de caractères pour ce champs
flags | Un entier représentant le bit-flags pour ce champs
type | Le type de données utilisées pour ce champs
decimals | Le nombre de décimales utilisées (pour les champs de type entier)

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Récupération des informations pour toutes les colonnes */
    while ($finfo = $result->fetch_field()) {

        printf("Nom :     %s\n", $finfo->name);
        printf("Table :    %s\n", $finfo->table);
        printf("Longueur Max. : %d\n", $finfo->max_length);
        printf("Flags :    %d\n", $finfo->flags);
        printf("Type :     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* Fermeture de la connexion */
$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 pour toutes les colonnes */
    while ($finfo = mysqli_fetch_field($result)) {

        printf("Nom :     %s\n", $finfo->name);
        printf("Table :    %s\n", $finfo->table);
        printf("Longueur Max. : %d\n", $finfo->max_length);
        printf("Flags :    %d\n", $finfo->flags);
        printf("Type :     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Nom :     Name
Table :    Country
Longueur Max. : 11
Flags :    1
Type :     254

Nom :     SurfaceArea
Table :    Country
Longueur Max. : 10
Flags :    32769
Type :     4

Voir aussi

mysqli_num_fields()
mysqli_fetch_field_direct()
mysqli_fetch_fields()
mysqli_field_seek()

Précédent | Sommaire | Suivant
mysqli_fetch_field_direct | Niveau supérieur | mysqli_fetch_fields


mysqli_fetch_fields

(PHP 5)

mysqli_fetch_fields

(no version information, might be only in CVS)

result->fetch_fields() -- Retourne un tableau d'objets représentant les champs dans le résultat

Description

Style procédural

array mysqli_fetch_fields ( mysqli_result result )

Style orienté objet (méthode)

class mysqli_result {

array fetch_fields ( void )

}

Cette fonction fonctionne comme mysqli_fetch_field() à la différence que, au lieu de retourner un objet à la fois pour chaque champ, les colonnes sont retournées en tant que tableau d'objets.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne un tableau d'objets qui contient les données métas d'un champ ou FALSE si aucune donnée méta n'est disponible pour ce champ.

Tableau 1. 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 | La valeur par défaut du champs, représentée par une chaîne de caractères
max_length | La longueur maximale du champs pour le jeu de résultats
length | La largeur du champs, comme spécifiée dans la définition de table
charsetnr | Le numéro du jeu de caractères pour ce champs
flags | Un entier représentant le bit-flags pour ce champs
type | Le type de données utilisées pour ce champs
decimals | Le nombre de décimales utilisées (pour les champs de type entier)

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Récupération des données métas pour toutes les colonnes */
    $finfo = $result->fetch_fields();

    foreach ($finfo as $val) {
        printf("Nom :     %s\n", $val->name);
        printf("Table :    %s\n", $val->table);
        printf("Longueur Max. : %d\n", $val->max_length);
        printf("Flags :    %d\n", $val->flags);
        printf("Type :     %d\n\n", $val->type);
    }
    $result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Récupération des données métas pour toutes les colonnes */
    $finfo = mysqli_fetch_fields($result);

    foreach ($finfo as $val) {
        printf("Nom :     %s\n", $val->name);
        printf("Table :    %s\n", $val->table);
        printf("Longueur Max. : %d\n", $val->max_length);
        printf("Flags :    %d\n", $val->flags);
        printf("Type :     %d\n\n", $val->type);
    }
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Nom :     Name
Table :     Country
Longueur Max. : 11
Flags :    1
Type :     254

Nom :     SurfaceArea
Table :    Country
Longueur Max. : 10
Flags :    32769
Type :     4

Voir aussi

mysqli_num_fields()
mysqli_fetch_field_direct()
mysqli_fetch_field()

Précédent | Sommaire | Suivant
mysqli_fetch_field | Niveau supérieur | mysqli_fetch_lengths


mysqli_fetch_lengths

(PHP 5)

mysqli_fetch_lengths

(no version information, might be only in CVS)

result->lengths() -- Retourne la longueur des colonnes de la ligne courante du jeu de résultats

Description

Style procédural

array mysqli_fetch_lengths ( mysqli_result result )

Style orienté objet (méthode)

class mysqli_result {

array lengths

}

La fonction mysqli_fetch_lengths() retourne un tableau contenant la longueur de chaque colonne de la ligne courante du jeu de résultats représenté par le paramètre result.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Un tableau d'entiers représentant la taille de chaque colonne (n'incluant aucun caractère null de fin). Retourne FALSE si une erreur survient.

mysqli_fetch_lengths() n'est valide que pour la ligne courant du jeu de résultats. Elle retourne FALSE si vous l'appelez avant les fonctions mysqli_fetch_row/array/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", "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($query)) {

    $row = $result->fetch_row();

    /* ffiche la longueur des colonnes */
    foreach ($result->lengths as $i => $val) {
        printf("Le champ %2d a une longueur de %2d\n", $i+1, $val);
    }
    $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 * from Country ORDER BY Code LIMIT 1";

if ($result = mysqli_query($link, $query)) {

    $row = mysqli_fetch_row($result);

    /* Affiche la longueur des colonnes */
    foreach (mysqli_fetch_lengths($result) as $i => $val) {
        printf("Le champ %2d a un longueur de %2d\n", $i+1, $val);
    }
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Le champ  1 a un longueur de  3
Le champ  2 a un longueur de  5
Le champ  3 a un longueur de 13
Le champ  4 a un longueur de  9
Le champ  5 a un longueur de  6
Le champ  6 a un longueur de  1
Le champ  7 a un longueur de  6
Le champ  8 a un longueur de  4
Le champ  9 a un longueur de  6
Le champ 10 a un longueur de  6
Le champ 11 a un longueur de  5
Le champ 12 a un longueur de 44
Le champ 13 a un longueur de  7
Le champ 14 a un longueur de  3
Le champ 15 a un longueur de  2

Précédent | Sommaire | Suivant
mysqli_fetch_fields | Niveau supérieur | mysqli_fetch_object


mysqli_fetch_object

(PHP 5)

mysqli_fetch_object

(no version information, might be only in CVS)

result->fetch_object() -- Retourne la ligne courante d'un jeu de résultat sous forme d'objet

Description

Style procédural

object mysqli_fetch_object ( mysqli_result result [, string class_name [, array params]] )

Style orienté objet (méthode)

class mysqli_result {

object fetch_object ( [string class_name [, array params]] )

}

La fonction mysqli_fetch_object() retourne la ligne courante du jeu de résultat sous forme d'objet dont les attributs représentent les noms des champs trouvés dans le jeu de résultats.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

class_name

params

Valeurs de retour

Retourne un objet avec les propriétés qui correspondent à la ligne récupérée ou NULL s'il n'y a plus de ligne dans le jeu de résultat.

Note : Les noms des champs retournés par cette fonction sont sensibles à la casse.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Historique

Version | Description
5.0.0 | Ajoute la possibilité de retourner le résultat dans un objet différent.

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 Nom, CodePays FROM Ville ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* Récupération du tableau d'objet */
    while ($obj = $result->fetch_object()) {
        printf ("%s (%s)\n", $obj->Nom, $obj->CodePays);
    }

    /* Libération du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Nom, CodePays FROM Ville ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* Récupération du tableau d'objet */
    while ($obj = mysqli_fetch_object($result)) {
        printf ("%s (%s)\n", $obj->Nom, $obj->CodePays);
    }

    /* Libération du jeu de résultats */
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Rennes (FRA)
Rouen (FRA)
Bordeaux (FRA)
Paris (FRA)
Saint-Savin (FRA)

Voir aussi

mysqli_fetch_array()
mysqli_fetch_assoc()
mysqli_fetch_row()
mysqli_query()
mysqli_data_seek()

Précédent | Sommaire | Suivant
mysqli_fetch_lengths | Niveau supérieur | mysqli_fetch_row


mysqli_fetch_row

(PHP 5)

mysqli_fetch_row

(no version information, might be only in CVS)

result->fetch_row() -- Récupère une ligne de résultat sous forme de tableau indexé

Description

Style procédural

mixed mysqli_fetch_row ( mysqli_result result )

Style orienté objet (méthode)

class mysqli_result {

mixed fetch_row ( void )

}

récupère une ligne de données à partir du jeu de résultats représenté par result et le retourne en tant que tableau indexé, où chaque colonne est une case du tableau, celui-ci commençant à 0 (zéro). Chaque nouvel appel à mysqli_fetch_row() retournera la prochaine ligne dans le jeu de résultats, ou NULL s'il n'y a plus de lignes.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

mysqli_fetch_row() retourne un tableau de chaînes correspondant à la ligne récupérée ou NULL s'il n'y a plus de ligne dans le jeu de résultats.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Nom, CodePays FROM Ville ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* Récupération du tableau d'objet */
    while ($row = $result->fetch_row()) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* Libération du jeu de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$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 Nom, CodePays FROM Ville ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* Récupération du tableau associatif */
    while ($row = mysqli_fetch_row($result)) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* Libération du jeu de résultats */
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Rennes (FRA)
Rouen (FRA)
Bordeaux (FRA)
Paris (FRA)
Saint-Savin (FRA)

Voir aussi

mysqli_fetch_array()
mysqli_fetch_assoc()
mysqli_fetch_object()
mysqli_query()
mysqli_data_seek()

Précédent | Sommaire | Suivant
mysqli_fetch_object | Niveau supérieur | mysqli_fetch


mysqli_fetch

(PHP 5)

mysqli_fetch -- Alias de mysqli_stmt_fetch()

Description

mysqli_fetch() est un alias de la fonction mysqli_stmt_fetch().

Notes

Note : mysqli_fetch() est fortement déconseillée et devrait être supprimée prochainement.

Voir aussi

mysqli_stmt_fetch()

Précédent | Sommaire | Suivant
mysqli_fetch_row | Niveau supérieur | mysqli_field_count


mysqli_field_count

(PHP 5)

mysqli_field_count

(no version information, might be only in CVS)

mysqli->field_count() -- Retourne le nombre de colonnes pour la dernière requête

Description

Style procédural

int mysqli_field_count ( mysqli link )

Style orienté objet (méthode)

class mysqli_result {

int field_count ( void )

}

Retourne le nombre de colonnes pour la dernière requête sur la connexion spécifiée par le paramètre link. Cette fonction peut être utile lors de l'utilisation de mysqli_store_result() pour déterminer si la requête aurait du retourner un résultat vide ou non, sans en connaître la nature.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Un entier représentant le nombre de champs dans un jeu de résultats.

Exemples

Exemple 1. 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($HTTP_POST_VARS['query']);

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

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

mysqli_real_query($link, $HTTP_POST_VARS['query']);

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

Précédent | Sommaire | Suivant
mysqli_fetch | Niveau supérieur | mysqli_field_seek


mysqli_field_seek

(PHP 5)

mysqli_field_seek

(no version information, might be only in CVS)

result->field_seek() -- Déplace le pointeur de résultat sur le champs spécifié

Description

Style procédural

bool mysqli_field_seek ( mysqli_result result, int fieldnr )

Style orienté objet (méthode)

class mysqli_result {

bool field_seek ( int fieldnr )

}

Place le curseur sur le champs spécifié par le numéro fieldnr. Le prochain appel à la fonction mysqli_fetch_field() retournera la définition du champ de la colonne associée à cette position.

Note : Pour se déplacer au début d'une ligne, passez une position ayant pour valeur zéro.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

fieldnr

Le numéro du champs. Cette valeur doit être dans l'intervalle 0 à nombre de champs - 1.

Valeurs de retour

Retourne la valeur précédente du curseur.

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("Nom :     %s\n", $finfo->name);
    printf("Table :    %s\n", $finfo->table);
    printf("Longueur Max. : %d\n", $finfo->max_length);
    printf("Flags :    %d\n", $finfo->flags);
    printf("Type :     %d\n\n", $finfo->type);

    $result->close();
}

/* Fermeture de la connexion */
$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("Nom :     %s\n", $finfo->name);
    printf("Table :    %s\n", $finfo->table);
    printf("Longueur Max. : %d\n", $finfo->max_length);
    printf("Flags :    %d\n", $finfo->flags);
    printf("Type :     %d\n\n", $finfo->type);

    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Nom :     SurfaceArea
Table :    Country
Longueur Max. : 10
Flags :    32769
Type :     4

Voir aussi

mysqli_fetch_field()

Précédent | Sommaire | Suivant
mysqli_field_count | Niveau supérieur | mysqli_field_tell


mysqli_field_tell

(PHP 5)

mysqli_field_tell

(no version information, might be only in CVS)

result->current_field -- Retourne la position du champs courant dans un pointeur de résultat

Description

Style procédural

int mysqli_field_tell ( mysqli_result result )

Style orienté objet (méthode)

class mysqli_result {

int current_field

}

Retourne la position du champs dans un pointeur utilisée par le dernier appel à mysqli_fetch_field(). Cette valeur peut être utilisée comme argument à la fonction mysqli_field_seek().

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne la position du champs courant dans le curseur.

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 des champs pour toutes les colonnes */
    while ($finfo = $result->fetch_field()) {

        /* Récupération de la position du champ dans le curseur */
        $currentfield = $result->current_field;

        printf("Colonne %d:\n", $currentfield);
        printf("Nom :     %s\n", $finfo->name);
        printf("Table :    %s\n", $finfo->table);
        printf("Longueur Max. : %d\n", $finfo->max_length);
        printf("Flags :    %d\n", $finfo->flags);
        printf("Type :     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* Fermeture de la connexion */
$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 des champs pour toutes les colonnes */
    while ($finfo = mysqli_fetch_field($result)) {

        /* Récupération de la position du champs dans le curseur */
        $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("Flags :    %d\n", $finfo->flags);
        printf("Type :     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Colonne 1:
Nom :     Name
Table :    Country
Longueur Max. : 11
Flags :    1
Type :     254

Colonne 2:
Nom :     SurfaceArea
Table :    Country
Longueur Max. : 10
Flags :    32769
Type :     4

Voir aussi

mysqli_fetch_field()
mysqli_field_seek()

Précédent | Sommaire | Suivant
mysqli_field_seek | Niveau supérieur | mysqli_free_result


mysqli_free_result

(PHP 5)

mysqli_free_result

(no version information, might be only in CVS)

result->free() -- Libère la mémoire associée à un résultat

Description

Style procédural

void mysqli_free_result ( mysqli_result result )

Style orienté objet (méthode)

class mysqli_result {

void free ( void )

void close ( void )

void free_result ( void )

}

Libère la mémoire associée au résultat.

Note : Vous devriez toujours libérer les résultats avec mysqli_free_result(), lorsque votre objet de résultat ne vous est plus utile.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

mysqli_query()
mysqli_stmt_store_result()
mysqli_store_result()
mysqli_use_result()

Précédent | Sommaire | Suivant
mysqli_field_tell | Niveau supérieur | mysqli_get_charset


mysqli_get_client_info

(PHP 5)

mysqli_get_client_info -- Retourne une chaîne contenant la version du client MySQL

Description

string mysqli_get_client_info ( void )

La fonction mysqli_get_client_info() est utilisée pour retourner une chaîne de caractères représentant la version du client utilisé par l'extension MySQLi.

Valeurs de retour

Une chaîne de caractères représentant la version du client utilisé par l'extension MySQL.

Exemples

Exemple 1. Exemple avec mysqli_get_client_info()

<?php

/* Vous n'avez pas besoin d'une connexion pour déterminer
    la version du client utilisé par l'extension MySQL */

printf("Client library version: %s\n", mysqli_get_client_info());
?>

Voir aussi

mysqli_get_client_version()
mysqli_get_server_info()
mysqli_get_server_version()

Précédent | Sommaire | Suivant
mysqli_get_charset | Niveau supérieur | mysqli_get_client_version


mysqli_get_client_version

(PHP 5)

mysqli_get_client_version -- Lit les informations du client MySQL

Description

int mysqli_get_client_version ( void )

Retourne la version du client MySQL sous la forme d'un entier.

Valeurs de retour

Un nombre qui représente la version de la bibliothèque cliente MySQL dans ce format : version_principale*10000 + version_mineure *100 + sous_version. Par exemple, la version 4.1.0 est retournée sous la forme 40100.

Cette fonction est pratique pour déterminer la version de la bibliothèque cliente, si vous recherchez des fonctionnalités spécifiques.

Exemples

Exemple 1. Exemple avec mysqli_get_client_version()

<?php

/* Nous n'avons pas besoin d'une connexion pour
   déterminer la version de la bibliothèque cliente mysql */

printf("Client library version: %d\n", mysqli_get_client_version());
?>

Voir aussi

mysqli_get_client_info()
mysqli_get_server_info()
mysqli_get_server_version()

Précédent | Sommaire | Suivant
mysqli_get_client_info | Niveau supérieur | mysqli_get_host_info


mysqli_get_host_info

(PHP 5)

mysqli_get_host_info

(no version information, might be only in CVS)

mysqli->host_info -- Retourne une chaîne contenant le type de connexion utilisée

Description

Style procédural

string mysqli_get_host_info ( mysqli link )

Style orienté objet (méthode)

class mysqli {

string host_info

}

La fonction mysqli_get_host_info() retourne une chaîne de caractères décrivant la connexion représentée par le paramètre link (incluant le nom d'hôte du serveur).

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères représentant le nom d'hôte du serveur et le type de connexion.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage des informations sur l'hôte */
printf("Informations sur l'hôte : %s\n", $mysqli->host_info);

/* Fermeture de la connexion */
$mysqli->close();
?>

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

/* Affichage des informations sur l'hôte */
printf("Host info: %s\n", mysqli_get_host_info($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Informations sur l'hôte : Localhost via UNIX socket

Voir aussi

mysqli_get_proto_info()

Précédent | Sommaire | Suivant
mysqli_get_client_version | Niveau supérieur | mysqli_get_metadata


mysqli_get_metadata

(PHP 5)

mysqli_get_metadata -- Alias de mysqli_stmt_result_metadata()

Description

mysqli_get_metadata() est un alias de la fonction mysqli_stmt_result_metadata().

Notes

Note : mysqli_get_metadata() est obsolète, et sera bientôt supprimée.

Voir aussi

mysqli_stmt_result_metadata()

Précédent | Sommaire | Suivant
mysqli_get_host_info | Niveau supérieur | mysqli_get_proto_info


mysqli_get_proto_info

(PHP 5)

mysqli_get_proto_info

(no version information, might be only in CVS)

mysqli->protocol_version -- Retourne la version du protocole MySQL utilisé

Description

Style procédural

int mysqli_get_proto_info ( mysqli link )

Style orienté objet (méthode)

class mysqli {

string protocol_version

}

Retourne un entier représentant la version du protocole MySQL utilisé par la connexion représentée par le paramètre link.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne un entier représentant la version du protocole.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage de la version du protocole */
printf("Version du protocole : %d\n", $mysqli->protocol_version);

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage de la version du protocole */
printf("Version du protocole : %d\n", mysqli_get_proto_info($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Version du protocole : 10

Voir aussi

mysqli_get_host_info()

Précédent | Sommaire | Suivant
mysqli_get_metadata | Niveau supérieur | mysqli_get_server_info


mysqli_get_server_info

(PHP 5)

mysqli_get_server_info

(no version information, might be only in CVS)

mysqli->server_info -- Retourne la version du serveur MySQL

Description

Style procédural

string mysqli_get_server_info ( mysqli link )

Style orienté objet (méthode)

class mysqli {

string server_info

}

Retourne une chaîne de caractères représentant la version du serveur MySQL auquel l'extension MySQLi est connectée (représenté par le paramètre link).

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères représentant la version du serveur.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage de la version du serveur */
printf("Version du serveur : %s\n", $mysqli->server_info);

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage de la version du serveur */
printf("Version du serveur : %s\n", mysqli_get_server_info($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Version du serveur : 4.1.2-alpha-debug

Voir aussi

mysqli_get_client_info()
mysqli_get_client_version()
mysqli_get_server_version()

Précédent | Sommaire | Suivant
mysqli_get_proto_info | Niveau supérieur | mysqli_get_server_version


mysqli_get_server_version

(PHP 5)

mysqli_get_server_version

(no version information, might be only in CVS)

mysqli->server_version -- Retourne un entier représentant la version du serveur MySQL

Description

Style procédural

int mysqli_get_server_version ( mysqli link )

Style orienté objet (méthode)

class mysqli {

int server_version

}

La fonction mysqli_get_server_version() retourne un entier représentant la version du serveur sur lequel on est connecté (représenté par le paramètre link).

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Un entier représentant la version du serveur.

Le format de ce nombre est main_version * 10000 + minor_version * 100 + sub_version (i.e. la version 4.1.0 retournera 40100).

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage de la version du serveur */
printf("Version du serveur : %d\n", $mysqli->server_version);

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Affichage de la version du serveur */
printf("Version du serveur : %d\n", mysqli_get_server_version($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Version du serveur : 40102

Voir aussi

mysqli_get_client_info()
mysqli_get_client_version()
mysqli_get_server_info()

Précédent | Sommaire | Suivant
mysqli_get_server_info | Niveau supérieur | mysqli_get_warnings


mysqli_info

(PHP 5)

mysqli_info

(no version information, might be only in CVS)

mysqli->info -- Retourne des informations à propos de la dernière requête exécutée

Description

Style procédural

string mysqli_info ( mysqli link )

Style orienté objet (méthode)

class mysqli {

string info

}

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 :

Tableau 1. Valeurs de retour possibles pour mysqli_info()

Type de requête | Exemple de retour
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Note : Les requêtes qui ne font pas partie de la liste précédente ne sont pas supportées. Dans cette situation, mysqli_info() retournera une chaîne de caractères vide.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères donnant des informations supplémentaires à propos de la dernière requête exécutée.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
$mysqli->query("INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", $mysqli->info);

/* Fermeture de la connexion */
$mysqli->close();
?>

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

mysqli_query($link, "CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
mysqli_query($link, "INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", mysqli_info($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Records: 150  Duplicates: 0  Warnings: 0

Voir aussi

mysqli_affected_rows()
mysqli_warning_count()
mysqli_num_rows()

Précédent | Sommaire | Suivant
mysqli_get_warnings | Niveau supérieur | mysqli_init


mysqli_init

(PHP 5)

mysqli_init -- Initialise MySQLi et retourne une ressource à utiliser avec mysqli_real_connect()

Description

Style procédural

mysqli mysqli_init ( void )

Style orienté objet (méthode)

class mysqli {

mysqli init ( void )

}

Alloue ou initialise un objet MySQL utilisable pour les fonctions mysqli_options() et mysqli_real_connect().

Note : Tous les appels suivants à n'importe quelle fonction MySQLi (exceptée mysqli_options()) échoueront en attendant que la fonction mysqli_real_connect() soit appelée.

Valeurs de retour

Retourne un objet.

Voir aussi

mysqli_options()
mysqli_close()
mysqli_real_connect()
mysqli_connect()

Précédent | Sommaire | Suivant
mysqli_info | Niveau supérieur | mysqli_insert_id


mysqli_insert_id

(PHP 5)

mysqli_insert_id

(no version information, might be only in CVS)

mysqli->insert_id -- Retourne l'identifiant automatiquement généré par la dernière requête

Description

Style procédural

int mysqli_insert_id ( mysqli link )

Style orienté objet (méthode)

class mysqli {

int insert_id

}

La fonction mysqli_insert_id() retourne l'identifiant généré par une requête sur une table avec une colonne possédant l'attribut AUTO_INCREMENT. Si la dernière requête n'était ni un INSERT, ni un UPDATE ou que la table modifiée ne possède pas de colonne avec l'attribut AUTO_INCREMENT, cette fonction retournera zéro.

Note : Exécuter une commande INSERT ou UPDATE utilisant la fonction LAST_INSERT_ID() modifiera aussi la valeur retournée par la fonction mysqli_insert_id().

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

La valeur du champ AUTO_INCREMENT modifiée par la dernière requête. Retourne zéro s'il n'y a pas eu de requête sur la connexion ou si la dernière requête n'a pas modifié la valeur de l'AUTO_INCREMENT.

Note : Si le nombre est plus grand que la valeur maximale d'un entier, mysqli_insert_id() retournera une chaîne le représentant.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("Le nouvel enregistrement a l'id : %d.\n", $mysqli->insert_id);

/* Suppression de la table myCity */
$mysqli->query("DROP TABLE myCity");

/* 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();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);

printf ("Le nouvel enregistrement a l'id : %d.\n", mysqli_insert_id($link));

/* Suppression de la table myCity */
mysqli_query($link, "DROP TABLE myCity");

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Le nouvel enregistrement a l'id : 1.

Précédent | Sommaire | Suivant
mysqli_init | Niveau supérieur | mysqli_kill


mysqli_kill

(PHP 5)

mysqli_kill

(no version information, might be only in CVS)

mysqli->kill() -- Demande au serveur de terminer un thread MySQL

Description

Style procédural

bool mysqli_kill ( mysqli link, int processid )

Style orienté objet (méthode)

class mysqli {

bool kill ( int processid )

}

mysqli_kill() est utilisée pour demander au serveur de terminer un thread MySQL spécifié par le paramètre processid. Cette valeur doit être obtenue en appelant la fonction mysqli_thread_id().

Pour arrêter une requête en cours d'exécution, utilisez la commande SQL KILL QUERY processid.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, 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();
}

/* 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();
?>

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

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

L'exemple ci-dessus va afficher :

Erreur : MySQL server has gone away

Voir aussi

mysqli_thread_id()

Précédent | Sommaire | Suivant
mysqli_insert_id | Niveau supérieur | mysqli_master_query


mysqli_master_query

(PHP 5)

mysqli_master_query -- Force l'exécution d'une requête sur le maître dans une configuration maître/esclave (master/slave)

Description

bool mysqli_master_query ( mysqli link, string query )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_kill | Niveau supérieur | mysqli_more_results


mysqli_more_results

(PHP 5)

mysqli_more_results

(no version information, might be only in CVS)

mysqli->more_results -- Vérifie s'il y a d'autres jeux de résultats MySQL disponibles

Description

bool mysqli_more_results ( mysqli link )

Indique si un ou plusieurs jeux de résultats sont disponibles, générés par un appel antérieur à mysqli_multi_query().

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Voir la fonction mysqli_multi_query().

Voir aussi

mysqli_multi_query()
mysqli_next_result()
mysqli_store_result()
mysqli_use_result()

Précédent | Sommaire | Suivant
mysqli_master_query | Niveau supérieur | mysqli_multi_query


mysqli_multi_query

(PHP 5)

mysqli_multi_query

(no version information, might be only in CVS)

mysqli->multi_query() -- Exécute une requête MySQL multiple

Description

Style procédural

bool mysqli_multi_query ( mysqli link, string query )

Style orienté objet (méthode)

class mysqli {

bool multi_query ( string query )

}

Exécute une ou plusieurs requêtes, rassemblées dans le paramètre query par des point-virgules.

Pour lire les résultats de la première requête, vous pouvez utiliser les fonctions mysqli_use_result() et mysqli_store_result(). Tous les autres résultats de requêtes peuvent être atteints avec mysqli_more_results() et mysqli_next_result().

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

query

La requête, sous la forme d'une chaîne de caractères.

Valeurs de retour

Retourne FALSE uniquement si la première requête échoue. Pour récupérer les sous-séquences d'erreurs issues des autres requêtes, vous devez appeler d'abord la fonction mysqli_next_result().

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* Exécution d'une requête multiple */
if ($mysqli->multi_query($query)) {
    do {
        /* sStockage du premier résultat */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* Affichage d'une séparation */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* 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 CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* Exécution d'une requête multiple */
if (mysqli_multi_query($link, $query)) {
    do {
        /* Stockage du premier résultat */
        if ($result = mysqli_store_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* Affichage d'une séparation */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Voir aussi

mysqli_use_result()
mysqli_store_result()
mysqli_next_result()
mysqli_more_results()

Précédent | Sommaire | Suivant
mysqli_more_results | Niveau supérieur | mysqli_next_result


mysqli_next_result

(PHP 5)

mysqli_next_result

(no version information, might be only in CVS)

mysqli->next_result() -- Prépare le prochain résultat d'une requête multiple

Description

bool mysqli_next_result ( mysqli link )

Prépare le prochain jeu de résultat, initialisé par un appel antérieur à mysqli_multi_query(), et qui peut être lu par mysqli_store_result() ou mysqli_use_result().

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Voir la fonction mysqli_multi_query().

Voir aussi

mysqli_multi_query()
mysqli_more_results()
mysqli_store_result()
mysqli_use_result()

Précédent | Sommaire | Suivant
mysqli_multi_query | Niveau supérieur | mysqli_num_fields


mysqli_num_fields

(PHP 5)

mysqli_num_fields

(no version information, might be only in CVS)

result->field_count -- Retourne le nombre de champs dans un résultat

Description

Style procédural

int mysqli_num_fields ( mysqli_result result )

Style orienté objet (méthode)

class mysqli_result {

int field_count

}

Retourne le nombre de champs dans le jeu de résultas spécifié result.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Le nombre de champs dans le jeu de résultats.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* Détermine le nombre de champs dans le jeu de résultats */
    $field_cnt = $result->field_count;

    printf("Le jeu de résultats a %d champs.\n", $field_cnt);

    /* Fermeture du jeux de résultats */
    $result->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* Détermine le nombre de champs dans le jeu de résultats */
    $field_cnt = mysqli_num_fields($result);

    printf("Le jeu de résultats a %d champs.\n", $field_cnt);

    /* Fermeture du jeu de résultats */
    mysqli_free_result($result);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Le jeu de résultats a 5 champs.

Voir aussi

mysqli_fetch_field()

Précédent | Sommaire | Suivant
mysqli_next_result | Niveau supérieur | mysqli_num_rows


mysqli_num_rows

(PHP 5)

mysqli_num_rows

(no version information, might be only in CVS)

result->num_rows -- Retourne le nombre de lignes dans un résultat

Description

Style procédural

int mysqli_num_rows ( mysqli_result result )

Style orienté objet (méthode)

class mysqli_result {

int num_rows

}

Retourne le nombre de lignes dans un jeu de résultats.

L'utilisation de mysqli_num_rows() dépend de l'utilisation de jeux de résultats beufferisés ou non. Dans le cas où vous utilisez des jeux de résultats non beufferisés, mysqli_num_rows() ne retournera pas le nombre correct de lignes tant que toutes les lignes du jeu de résultats ne sont pas retournées.

Liste de paramètres

result

Style procédural uniquement : Un identifiant de jeu de résultats retourné par la fonction mysqli_query(), mysqli_store_result() ou mysqli_use_result().

Valeurs de retour

Retourne le nombre de lignes dans le jeu de résultats.

Note : Si le nombre de résultats est plus grand que la valeur maximale d'un entier, le nombre sera retourné sous la forme d'une chaîne de caractères.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name")) {

    /* Détermine le nombre de lignes dans le jeu de résultats */
    $row_cnt = $result->num_rows;

    printf("Le jeu de résultats a %d lignes.\n", $row_cnt);

    /* Clôt le jeu de résultats */
    $result->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")) {

    /* Détermine le nombre de lignes dans le jeu de résultats */
    $row_cnt = mysqli_num_rows($result);

    printf("Le jeu de résultats a %d lignes.\n", $row_cnt);

    /* Clôt le jeu de résultats */
    mysqli_free_result($result);
}

/* Ferme la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Le jeu de résultats a 239 lignes.

Voir aussi

mysqli_affected_rows()
mysqli_store_result()
mysqli_use_result()
mysqli_query()

Précédent | Sommaire | Suivant
mysqli_num_fields | Niveau supérieur | mysqli_options


mysqli_options

(PHP 5)

mysqli_options

(no version information, might be only in CVS)

mysqli->options() -- Définit les options

Description

Style procédural

bool mysqli_options ( mysqli link, int option, mixed value )

Style orienté objet (méthode)

class mysqli {

bool options ( int option, mixed value )

}

Utile pour définir des options de connexion et ainsi affecter le comportement de la connexion courante.

Cette fonction peut être appelée plusieurs fois pour définir plusieurs options.

mysqli_options() doit être appelée après
mysqli_init() et avant
mysqli_real_connect().

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

option

L'option que vous voulez définir. Il peut prendre une des valeurs suivantes :

Tableau 1. Options valides

Nom | Description
MYSQLI_OPT_CONNECT_TIMEOUT | délai maximal de la connexion en secondes
MYSQLI_OPT_LOCAL_INFILE | active/désactive l'utilisation de LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND | commande à exécuter après la connexion au serveur MySQL
MYSQLI_READ_DEFAULT_FILE | Lit les options depuis le nom de l'option plutôt que du fichier my.cnf
MYSQLI_READ_DEFAULT_GROUP | Lit les options du groupe depuis my.cnf ou depuis le fichier spécifié avec MYSQL_READ_DEFAULT_FILE.

value

La valeur pour l'option.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Voir la fonction mysqli_real_connect().

Voir aussi

mysqli_init()
mysqli_real_connect()

Précédent | Sommaire | Suivant
mysqli_num_rows | Niveau supérieur | mysqli_param_count


mysqli_param_count

(PHP 5)

mysqli_param_count -- Alias de mysqli_stmt_param_count()

Description

mysqli_param_count() est un alias de la fonction mysqli_stmt_param_count().

Notes

Note : mysqli_param_count() est fortement déconseillée et devrait être supprimée prochainement.

Voir aussi

mysqli_stmt_param_count()

Précédent | Sommaire | Suivant
mysqli_options | Niveau supérieur | mysqli_ping


mysqli_ping

(PHP 5)

mysqli_ping

(no version information, might be only in CVS)

mysqli->ping() -- Ping la connexion au serveur et reconnecte si elle n'existe plus

Description

Style procédural

bool mysqli_ping ( mysqli link )

Style orienté objet (méthode)

class mysqli {

bool ping ( void )

}

Ping la connexion pour s'assurer que le serveur est bien en fonctionnement. S'il n'est pas en fonctionnement, et que l'option global mysqli.reconnect est activée, une connexion automatique sera tentée.

Cette fonction peut être utilisée par les clients qui font de lourds traitements, pour vérifier si le serveur a fermé la connexion et, ainsi, tenter une reconnexion si nécessaire.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, 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();
}

/* 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();
?>

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

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

L'exemple ci-dessus va afficher :

La connexion est Ok !

Précédent | Sommaire | Suivant
mysqli_param_count | Niveau supérieur | mysqli_prepare


mysqli_prepare

(PHP 5)

mysqli_prepare

(no version information, might be only in CVS)

mysqli->prepare() -- Prépare une requête SQL pour l'exécution

Description

Style procédural

mysqli_stmt mysqli_prepare ( mysqli link, string query )

Style orienté objet (méthode)

class mysqli {

mysqli_stmt prepare ( string query )

}

Prépare la requête SQL query et retourne une ressource à utiliser pour les futures opérations sur le traitement. La requête doit être une requête SQL unique.

Les paramètres de marques doivent être liés à des variables utilisées dans les fonctions mysqli_stmt_bind_param() et/ou mysqli_stmt_bind_result() avant d'exécuter la requête ou de récupérer les lignes.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

query

La requête, sous la forme d'une chaîne de caractères.

Note : Vous ne devez pas ajouter de point virgule ou de \g dans la requête.

Ce paramètre peut inclure un ou plusieurs paramètres de marques dans la requête SQL avec le caractère "point d'interrogation" (?) à la position appropriée.

Note : Les marques sont autorisées uniquement dans certaines endroits des requêtes SQL. Par exemple, elles le sont dans la liste VALUES() d'une requête INSERT (pour spécifier les valeurs des colonnes pour une ligne), ou dans une comparaison d'une clause WHERE pour spécifier une valeur de comparaison.

Cependant, elles ne sont pas autorisées pour les identifiants (comme les noms de tables ou de colonnes), dans une liste de sélection où les noms des colonnes doivent être retournés par une requête SELECT, ou pour spécifier un opérateur tel que le signe égal (=). La dernière restriction est nécessaire car il est impossible de déterminer le type de paramètre. Il n'est pas non plus autorisé de comparer les marqueurs avec NULL par ? IS NULL. En général, les paramètres ne sont autorisés que dans les requêtes DML (Data Manipulation Language) et non dans les requêtes DDL (Data Defination Language).

Valeurs de retour

mysqli_prepare() retourne un objet de traitement ou FALSE si une erreur survient.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* Crée une requête préparée */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

    /* Lecture des paramètres de marques */
    $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();
?>

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

$city = "Amersfoort";

/* Crée une requête préparée */
if ($stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?")) {

    /* Lecture des paramètres de marques */
    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);
?>

L'exemple ci-dessus va afficher :

Amersfoort est dans le district de Utrecht

Voir aussi

mysqli_stmt_execute()
mysqli_stmt_fetch()
mysqli_stmt_bind_param()
mysqli_stmt_bind_result()
mysqli_stmt_close()

Précédent | Sommaire | Suivant
mysqli_ping | Niveau supérieur | mysqli_query


mysqli_query

(PHP 5)

mysqli_query

(no version information, might be only in CVS)

mysqli->query() -- Exécute une requête sur la base de données

Description

Style procédural

mixed mysqli_query ( mysqli link, string query [, int resultmode] )

Style orienté objet (méthode)

class mysqli {

mixed query ( string query [, int resultmode] )

}

Exécute une requête sur la base de données.

En termes de fonctionnalités, utiliser cette fonction revient à appeler
mysqli_real_query() suivie de
mysqli_use_result() ou
mysqli_store_result().

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

query

La requête, sous la forme d'une chaîne de caractères.

resultmode

Soit la constante MYSQLI_USE_RESULT, soit la constante MYSQLI_STORE_RESULT, suivant le comportement désiré. Par défaut, la constante MYSQLI_STORE_RESULT est utilisé.

Si vous utilisez la constante MYSQLI_USE_RESULT, tous les appels suivants retourneront une erreur Commands out of sync tant que vous n'aurez pas appelé la fonction mysqli_free_result().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Pour SELECT, SHOW, DESCRIBE ou EXPLAIN, mysqli_query() retournera un résultat sous la forme d'un objet.

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

/* "Create table" ne retournera aucun jeu de résultats */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity créée avec succès.\n");
}

/* Requête "Select" retourne un jeu de résultats */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select a retourné %d lignes.\n", $result->num_rows);

    /* Libération du jeu de résultats */
    $result->close();
}

/* Si nous avons à récupérer beaucoup de données, nous utilisons MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Notez que nous ne pouvons exécuter aucune fonction qui agit sur le serveur tant que
        le jeu de résultats est clos. Tous les appels retourneront un 'out of sync'
    */
    if (!$mysqli->query("SET @a:='this will not work'")) {
        printf("Erreur : %s\n", $mysqli->error);
    }
    $result->close();
}

$mysqli->close();
?>

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("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* "Create table" ne retournera aucun jeu de résultats */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity créée avec succès.\n");
}

/* Requête "Select" retourne un jeu de résultats */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
    printf("Select a retourné %d lignes.\n", mysqli_num_rows($result));

    /* Libération du jeu de résultats */
    mysqli_free_result($result);
}

/* Si nous avons à récupérer beaucoup de données, nous utilisons MYSQLI_USE_RESULT */
if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Notez que nous ne pouvons exécuter aucune fonction qui agit sur le serveur tant que
        le jeu de résultats est clos. Tous les appels retourneront un 'out of sync'
    */
    if (!mysqli_query($link, "SET @a:='this will not work'")) {
        printf("Erreur : %s\n", mysqli_error($link));
    }
    mysqli_free_result($result);
}

mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Table myCity créée avec succès.
Select a retourné 10 lignes.
Erreur: Commands out of sync;  You can't run this command now

Voir aussi

mysqli_real_query()
mysqli_multi_query()
mysqli_free_result()

Précédent | Sommaire | Suivant
mysqli_prepare | Niveau supérieur | mysqli_real_connect


mysqli_real_connect

(PHP 5)

mysqli_real_connect

(no version information, might be only in CVS)

mysqli->real_connect() -- Ouvre une connexion à un serveur MySQL

Description

Style procédural

bool mysqli_real_connect ( mysqli link [, string host [, string username [, string passwd [, string dbname [, int port [, string socket [, int flags]]]]]]] )

Style orienté objet (méthode)

class mysqli {

bool real_connect ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket [, int flags]]]]]]] )

}

Tente d'établir une connexion avec un serveur MySQL d'un hôte.

Cette fonction diffère de mysqli_connect() en ces points :

  • mysqli_real_connect() a besoin d'un objet valide issu de la fonction mysqli_init()

  • Avec la fonction mysqli_options(), vous pouvez définir différentes options pour la connexion

  • Il y a un paramètre flags

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

host

Peut être soit un nom d'hôte, soit une adresse IP. Si vous passez la valeur NULL ou la chaîne de caractères "localhost", l'hôte local sera utilisé. Lorsque c'est possible, un tunnel sera utilisé au lieu du protocole TCP/IP.

username

Le nom d'utilisateur MySQL.

passwd

Si fourni ou si vaut NULL, le serveur MySQL tentera d'identifier l'utilisateur par rapport aux utilisateurs présents dans la base MySQL qui n'ont pas de mot de passe associé. Ceci permet à un utilisateur d'être utilisé avec des permissions différentes (suivant si un mot de passe est fourni ou non).

dbname

Si fourni, spécifie la base de données par défaut à utiliser lors de l'exécution de requêtes.

port

Spécifie le numéro du port à utiliser pour la connexion au serveur MySQL.

socket

Spécifie le socket ou le tunnel nommé à utiliser..

Note : Le fait de spécifier le paramètre socket ne détermine pas de façon explicite le type de connexion à utiliser lors de la connexion au serveur MySQL. La façon dont la connexion est réellement effectuée dépend du paramètre host.

flags

Avec le paramètre flags, vous pouvez définir différents options de la connexion :

Tableau 1. Flags supportés

Nom | Description
MYSQLI_CLIENT_COMPRESS | Utilise un protocole de compression
MYSQLI_CLIENT_FOUND_ROWS | Retourne le nombre de lignes sélectionnées, et non pas le nombre de lignes affectées
MYSQLI_CLIENT_IGNORE_SPACE | Accepte les espaces après les noms de fonctions. Fait que tous les noms de fonctions sont des mots réservés.
MYSQLI_CLIENT_INTERACTIVE | Permet interactive_timeout secondes (au lieu de wait_timeout secondes) d'inactivité avant de fermer la connexion.
MYSQLI_CLIENT_SSL | Utilise SSL (chiffrage)

Note : Pour des raisons de sécurité, le flag MULTI_STATEMENT n'est pas supporté en PHP. Si vous voulez exécuter plusieurs requêtes, utilisez la fonction mysqli_multi_query().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php

/* Création d'un objet de connexion, sans être connecté */
$mysqli = mysqli_init();

/* Définition des quelques options de connexion */
$mysqli->options(MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0");
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);

/* Connexion au serveur */
$mysqli->real_connect('localhost', 'my_user', 'my_password', 'world');

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

printf ("Connecté : %s\n.", $mysqli->host_info);

$mysqli->close();
?>

Exemple 2. Style procédural

<?php

/* Création d'un objet de connexion, sans être connecté */
$link = mysqli_init();

/* Définition des quelques options de connexion */
mysqli_options($link, MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0");
mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5);

/* Connexion au serveur */
mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'world');

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

printf ("Connecté : %s\n.", mysqli_get_host_info($link));

mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Connecté : Localhost via UNIX socket

Voir aussi

mysqli_connect()
mysqli_init()
mysqli_options()
mysqli_ssl_set()
mysqli_close()

Précédent | Sommaire | Suivant
mysqli_query | Niveau supérieur | mysqli_real_escape_string


mysqli_real_escape_string

(PHP 5)

mysqli_real_escape_string

(no version information, might be only in CVS)

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 procédural

string mysqli_real_escape_string ( mysqli link, string escapestr )

Style orienté objet (méthode)

class mysqli {

string escape_string ( string escapestr )

string real_escape_string ( string escapestr )

}

Cette fonction est utilisée pour créer une chaîne SQL valide qui pourra être utilisée dans une requête SQL. La chaîne de caractères escapestr est encodée en une chaîne SQL échappée, en tenant compte du jeu de caractères courant de la connexion.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

escapestr

La chaîne de caractères à échapper.

CLes caractères encodés sont NUL (ASCII 0), \n, \r, \, ', ", and Control-Z.

Valeurs de retour

Retourne une chaîne de caractères échappée.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* Cette requête échoue car nous n'avons pas échappé $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Erreur : %s\n", $mysqli->sqlstate);
}

$city = $mysqli->real_escape_string($city);

/* Cette requête, par contre, réussira car nous avons échappé $city */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d ligne insérée.\n", $mysqli->affected_rows);
}

$mysqli->close();
?>

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

mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* Cette requête échoue car nous n'avons pas échappé $city */
if (!mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Erreur : %s\n", mysqli_sqlstate($link));
}

$city = mysqli_real_escape_string($link, $city);

/* Cette requête réussira car nous avons échappé $city */
if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d ligne insérée.\n", mysqli_affected_rows($link));
}

mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Erreur : 42000
1 ligne insérée.

Voir aussi

mysqli_character_set_name()

Précédent | Sommaire | Suivant
mysqli_real_connect | Niveau supérieur | mysqli_real_query


mysqli_real_query

(PHP 5)

mysqli_real_query

(no version information, might be only in CVS)

mysqli->real_query() -- Exécute une requête SQL

Description

Style procédural

bool mysqli_real_query ( mysqli link, string query )

Style orienté objet (méthode)

class mysqli {

bool real_query ( string query )

}

Exécute une seule requête sur la connexion à la base de données représentée par le paramètre link dont le résultat peut être récupéré ou stocké en utilisant les fonctions mysqli_store_result() ou mysqli_use_result().

Pour déterminer si une requête donnée aurait du retourner un jeu de résultats ou non, voyez la fonction mysqli_field_count().

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

query

La requête, sous la forme d'une chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

mysqli_query()
mysqli_store_result()
mysqli_use_result()

Précédent | Sommaire | Suivant
mysqli_real_escape_string | Niveau supérieur | mysqli_report


mysqli_report

(PHP 5)

mysqli_report -- Active ou désactive les fonctions de rapport interne

Description

bool mysqli_report ( int flags )

mysqli_report() est une fonction puissante, pour améliorer vos requêtes et votre code durant les phases de développement et de tests. En fonction de l'argument flags, il rapporte des erreurs liées aux appels de fonctions mysqli ou aux requêtes qui n'utilisent pas d'index (ou n'utilisent pas de bon index).

Liste de paramètres

flags

Tableau 1. Options supportées

Nom | Description
MYSQLI_REPORT_OFF | Désactive le rapport
MYSQLI_REPORT_ERROR | Rapporte les erreurs des fonctions mysqli
MYSQLI_REPORT_STRICT | Rapporte les alertes des appels aux fonctions mysqli
MYSQLI_REPORT_INDEX | Rapporte si un mauvais index ou pas d'index a été utilisé
MYSQLI_REPORT_ALL | Active toutes les options

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. OStyle orienté objet

<?php
/* Active le rapport d'erreur mysqli */
mysqli_report(MYSQLI_REPORT_ALL);

$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();
}

/* Cette requête doit générer une erreur */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* Cette requête doit générer une alerte */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
$result->close();

$mysqli->close();
?>

Voir aussi

mysqli_debug()
mysqli_dump_debug_info()

Précédent | Sommaire | Suivant
mysqli_real_query | Niveau supérieur | mysqli_rollback


mysqli_rollback

(PHP 5)

mysqli_rollback

(no version information, might be only in CVS)

mysqli->rollback() -- Annule la transaction courante

Description

Style procédural

bool mysqli_rollback ( mysqli link )

Style orienté objet (méthode)

class mysqli {

bool rollback ( void )

}

Annule la transaction courante pour la base de données spécifiée par le paramètre link.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, 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();
}

/* Désactive l'auto-commit */
$mysqli->autocommit(FALSE);

$mysqli->query("CREATE TABLE myCity LIKE City");
$mysqli->query("ALTER TABLE myCity Type=InnoDB");
$mysqli->query("INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* Validation */
$mysqli->commit();

/* Effacement de toutes les lignes */
$mysqli->query("DELETE FROM myCity");

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d lignes dans la table myCity.\n", $row[0]);
    /* Free result */
    $result->close();
}

/* Annulation */
$mysqli->rollback();

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d lignes dans la table myCity (après annulation).\n", $row[0]);
    /* Libération des résultats */
    $result->close();
}

/* Effacement de la table myCity */
$mysqli->query("DROP TABLE myCity");

$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();
}

/* Désactive l'auto-commit */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE myCity LIKE City");
mysqli_query($link, "ALTER TABLE myCity Type=InnoDB");
mysqli_query($link, "INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* Validation */
mysqli_commit($link);

/* Effacement de toutes les lignes */
mysqli_query($link, "DELETE FROM myCity");

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d lignes dans la table myCity.\n", $row[0]);
    /* Libération des résultats */
    mysqli_free_result($result);
}

/* Annulation */
mysqli_rollback($link);

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d lignes dans le table myCity (après annulation).\n", $row[0]);
    /* Libération des résultats */
    mysqli_free_result($result);
}

/* Effacement de la table myCity */
mysqli_query($link, "DROP TABLE myCity");

mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

0 lignes dans la table myCity.
50 lignes dans la table myCity (après annulation).

Voir aussi

mysqli_commit()
mysqli_autocommit()

Précédent | Sommaire | Suivant
mysqli_report | Niveau supérieur | mysqli_rpl_parse_enabled


mysqli_rpl_parse_enabled

(PHP 5)

mysqli_rpl_parse_enabled -- Vérifie si l'analyseur RPL est activé

Description

int mysqli_rpl_parse_enabled ( mysqli link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_rollback | Niveau supérieur | mysqli_rpl_probe


mysqli_rpl_probe

(PHP 5)

mysqli_rpl_probe -- Sonde le RPL

Description

bool mysqli_rpl_probe ( mysqli link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_rpl_parse_enabled | Niveau supérieur | mysqli_rpl_query_type


mysqli_rpl_query_type

(PHP 5)

mysqli_rpl_query_type

(no version information, might be only in CVS)

mysqli->rpl_query_type() -- Retourne le type de requête RPL

Description

Style procédural

int mysqli_rpl_query_type ( mysqli link, string query )

Style orienté objet (méthode)

class mysqli {

int rpl_query_type ( string query )

}

Retourne MYSQLI_RPL_MASTER, MYSQLI_RPL_SLAVE ou MYSQLI_RPL_ADMIN dépendamment du type de requête. INSERT, UPDATE et similaire sont des requêtes maîtres, SELECT est esclave, et FLUSH, REPAIR et similaire sont des requêtes d'administration.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_rpl_probe | Niveau supérieur | mysqli_select_db


mysqli_select_db

(PHP 5)

mysqli_select_db

(no version information, might be only in CVS)

mysqli->select_db() -- Sélectionne une base de données par défaut pour les requêtes

Description

Style procédural

bool mysqli_select_db ( mysqli link, string dbname )

Style orienté objet (méthode)

class mysqli {

bool select_db ( string dbname )

}

Sélectionne la base de données par défaut (spécifiée par le paramètre dbname) pour être utilisée lors de l'exécution de requêtes sur la connexion représentée par le paramètre link.

Note : Cette fonction ne doit être utilisée que pour changer la base de données par défaut pour la connexion courante. Vous pouvez sélectionner la base de données par défaut avec le 4ème paramètre de la fonction mysqli_connect().

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

dbname

Le nom de la base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Retourne le nom de la base de données courante */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("La base de données courante est %s.\n", $row[0]);
    $result->close();
}

/* Change la base de données en "world" */
$mysqli->select_db("world");

/* Retourne le nom de la base de données courante */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("La basede données courante est %s.\n", $row[0]);
    $result->close();
}

$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Retourne le nom de la base de données courante */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("La base de données courante est %s.\n", $row[0]);
    mysqli_free_result($result);
}

/* Change la base de données en "world" */
mysqli_select_db($link, "world");

/* Retourne le nom de la base de données courante */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("La base de données courante est %s.\n", $row[0]);
    mysqli_free_result($result);
}

mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

La base de données courante est test.
La base de données courante est world.

Voir aussi

mysqli_connect()
mysqli_real_connect()

Précédent | Sommaire | Suivant
mysqli_rpl_query_type | Niveau supérieur | mysqli_send_long_data


mysqli_send_long_data

(PHP 5)

mysqli_send_long_data -- Alias de mysqli_stmt_send_long_data()

Description

mysqli_send_long_data() est un alias de la fonction mysqli_stmt_send_long_data().

Notes

Note : mysqli_send_long_data() est fortement déconseillée et devrait être supprimée prochainement.

Voir aussi

mysqli_stmt_send_long_data()

Précédent | Sommaire | Suivant
mysqli_select_db | Niveau supérieur | mysqli_send_query


mysqli_send_query

(PHP 5)

mysqli_send_query

(no version information, might be only in CVS)

mysqli->send_query() -- Envoie la requête et retourne

Description

Style procédural

bool mysqli_send_query ( mysqli link, string query )

Style orienté objet (méthode)

class mysqli {

bool send_query ( string query )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_send_long_data | Niveau supérieur | mysqli_server_end


mysqli_server_end

(PHP 5 <= 5.0.4)

mysqli_server_end -- Éteint le serveur embarqué

Description

void mysqli_server_end ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_send_query | Niveau supérieur | mysqli_server_init


mysqli_server_init

(PHP 5 <= 5.0.4)

mysqli_server_init -- Initialise le serveur MySQL intégré

Description

bool mysqli_server_init ( [array server [, array groups]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_server_end | Niveau supérieur | mysqli_set_charset


mysqli_set_opt

(PHP 5)

mysqli_set_opt -- Alias de mysqli_options()

Description

mysqli_set_opt() est un alias de la fonction mysqli_options().

Précédent | Sommaire | Suivant
mysqli_set_local_infile_handler | Niveau supérieur | mysqli_slave_query


mysqli_sqlstate

(PHP 5)

mysqli_sqlstate

(no version information, might be only in CVS)

mysqli->sqlstate -- Retourne l'erreur SQLSTATE de la dernière opération MySQL

Description

Style procédural

string mysqli_sqlstate ( mysqli link )

Style orienté objet (méthode)

class mysqli {

string sqlstate

}

Retourne une chaîne contenant le code d'erreur SQLSTATE de la dernière erreur. Le code d'erreur '00000' signifie : "pas d'erreur". Les valeurs sont spécifiées par les normes ANSI SQL et ODBC. Pour une liste des valeurs possibles, voyez : http://dev.mysql.com/doc/mysql/en/error-handling.html.

Note : Notez que toutes les erreurs de MySQL n'ont pas encore de correspondance avec les erreurs SQLSTATE. La valeur HY000 (erreur générale) est utilisée pour les erreurs sans correspondance.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne une chaîne contenant le code d'erreur SQLSTATE de la dernière erreur. Le code est constitué de 5 caractères : '00000' représente l'absence d'erreurs.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* La table Ville existe déjà, nous devrions avoir une erreur */
if (!$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Erreur - SQLSTATE %s.\n", $mysqli->sqlstate);
}

$mysqli->close();
?>

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

/* La table Ville existe déjà, nous devrions avoir une erreur */
if (!mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Erreur - SQLSTATE %s.\n", mysqli_sqlstate($link));
}

mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Erreur - SQLSTATE 42S01.

Voir aussi

mysqli_errno()
mysqli_error()

Précédent | Sommaire | Suivant
mysqli_slave_query | Niveau supérieur | mysqli_ssl_set


mysqli_ssl_set

(PHP 5)

mysqli_ssl_set

(no version information, might be only in CVS)

mysqli->ssl_set() -- Utilisée pour établir une connexion sécurisée avec SSL

Description

Style procédural

bool mysqli_ssl_set ( mysqli link, string key, string cert, string ca, string capath, string cipher )

Style orienté objet (méthode)

class mysqli {

bool ssl_set ( string key, string cert, string ca, string capath, string cipher )

}

Utilisée pour établir une connexion sécurisée avec SSL. Elle doit être appelée avant mysqli_real_connect(). Cette fonction ne fait rien du tout si le support OpenSSL n'est pas activé.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

key

Le chemin vers le fichier contenant la clé.

cert

Le chemin vers le fichier contenant le certificat.

ca

Le chamin vers le fichier contenant l'autorité du certificat.

capath

Le chemin vers le dossier contenant les certificats SSL CA au format PEM.

cipher

La liste des chiffres autorisés à être utilisés pour le chiffrage SSL.

Tous les paramètres SSL non utilisés peuvent avoir comme valeur NULL.

Valeurs de retour

Cette fonction retourne toujours TRUE. Si SSL n'est pas correctement installé, mysqli_real_connect() retournera une erreur lorsque vous tenterez une connexion.

Voir aussi

mysqli_options()
mysqli_real_connect()

Précédent | Sommaire | Suivant
mysqli_sqlstate | Niveau supérieur | mysqli_stat


mysqli_stat

(PHP 5)

mysqli_stat

(no version information, might be only in CVS)

mysqli->stat() -- Obtient le statut courant du système

Description

Style procédural

string mysqli_stat ( mysqli link )

Style orienté objet (méthode)

class mysqli {

string stat ( void )

}

mysqli_stat() retourne une chaîne de caractères contenant des informations similaires à la commande 'mysqladmin status'. Cela inclut l'uptime en secondes et le nombre de threads courant, le nombre de commandes, les tables rechargées et ouvertes.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Une chaîne de caractères décrivant le statut du serveur. FALSE est retourné si une erreur survient.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

printf ("Statut du système : %s\n", $mysqli->stat());

$mysqli->close();
?>

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

printf("Statut du système : %s\n", mysqli_stat($link));

mysqli_close($link);
?>

L'exemple ci-dessus va 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()

Précédent | Sommaire | Suivant
mysqli_ssl_set | Niveau supérieur | mysqli_stmt_affected_rows


mysqli_stmt_affected_rows

(PHP 5)

mysqli_stmt_affected_rows

(no version information, might be only in CVS)

mysqli_stmt->affected_rows -- Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête

Description

Style procédural

int mysqli_stmt_affected_rows ( mysqli_stmt stmt )

Style orienté objet (méthode)

class mysqli_stmt {

int affected_rows

}

Retourne le nombre de lignes affectées par une requête INSERT, UPDATE ou DELETE.

La fonction mysqli_stmt_affected_rows() ne fonctionne que sur les requêtes qui modifient la table. Si vous désirez récupérer le nombre de lignes retournées par une requête SELECT, utilisez plutôt la requête mysqli_stmt_num_rows().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Un entier supérieur à zéro indique le nombre de lignes affectées ou retrouvées. Zéro indique qu'aucun enregistrement n'a été modifié par une requête UPDATE/DELETE, aucune ligne ne correspond à la clause WHERE dans la requête ou bien qu'aucune requête n'a été encore exécutée. -1 indique que la dernière requête a retourné une erreur.

Note : Si le nombre de lignes affectées est plus grand que la valeur entière maximale de PHP, le nombre de lignes affectées sera retourné comme une chaîne de caractères.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Création d'une table temporaire */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* Préparation de la requête */
if ($stmt = $mysqli->prepare($query)) {

    /* Insertion de la variable */
    $code = 'A%';
    $stmt->bind_param("s", $code);

    /* Exécution de la requête */
    $stmt->execute();

    printf("Lignes insérées : %d\n", $stmt->affected_rows);

    /* Fermeture du traitement */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Création d'une table temporaire */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* Préparation de la requête */
if ($stmt = mysqli_prepare($link, $query)) {

    /* Insertion de la variable */
    $code = 'A%';
    mysqli_stmt_bind_param($stmt, "s", $code);

    /* Exécution de la requête */
    mysqli_stmt_execute($stmt);

    printf("Lignes insérées : %d\n", mysqli_stmt_affected_rows($stmt));

    /* Fermeture du traitement*/
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Lignes insérées : 17

Voir aussi

mysqli_stmt_num_rows()
mysqli_prepare()

Précédent | Sommaire | Suivant
mysqli_stat | Niveau supérieur | mysqli_stmt_attr_get


mysqli_stmt_bind_param

(PHP 5)

mysqli_stmt_bind_param

(no version information, might be only in CVS)

stmt->bind_param() -- Lie des variables à une requête MySQL

Description

Style procédural

bool mysqli_stmt_bind_param ( mysqli_stmt stmt, string types, mixed &var1 [, mixed &...] )

Style orienté objet (méthode)

class mysqli_stmt {

bool bind_param ( string types, mixed &var1 [, mixed &...] )

}

Sert à lier des variables à une requête MySQL préparée par mysqli_prepare().

Note : Si la taille des données dépasse la taille maximal d'un paquet, (max_allowed_packet), vous devez spécifier le caractère b dans le paramètre types et utiliser la fonction mysqli_stmt_send_long_data() pour envoyer le message par paquets.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

types

Une chaîne de caractères qui contient un ou plusieurs caractères qui spécifient le type de la variable à lier :

Tableau 1. Caractère de spécification des types

Caractère | Description
i | correspond à une variable de type entier
d | correspond à une variable de type ???
s | correspond à une variable de type chaîne de caractères
b | correspond à une variable de type BLOB, qui sera envoyé par paquets

var1

Le nombre de variables et la longueur de la chaîne de caractères types doivent correspondre aux paramètres de la requête.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, 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();
}

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* Exécution de la requête préparée */
$stmt->execute();

printf("%d ligne insérée.\n", $stmt->affected_rows);

/* Fermeture de la commande */
$stmt->close();

/* Nettoyage de la table Langage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d ligne effacée.\n", $mysqli->affected_rows);

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

/* Vérification de la connexion */
if (!$link) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$stmt = mysqli_prepare($link, "INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, 'sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* Exécution de la requête préparée */
mysqli_stmt_execute($stmt);

printf("%d ligne insérée.\n", mysqli_stmt_affected_rows($stmt));

/* Fermeture de la commande */
mysqli_stmt_close($stmt);

/* Nettoyage de la table Langage */
mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d ligne effacée.\n", mysqli_affected_rows($link));

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

1 ligne insérée.
1 ligne effacée.

Voir aussi

mysqli_stmt_bind_result()
mysqli_stmt_execute()
mysqli_stmt_fetch()
mysqli_prepare()
mysqli_stmt_send_long_data()
mysqli_stmt_errno()
mysqli_stmt_error()

Précédent | Sommaire | Suivant
mysqli_stmt_attr_set | Niveau supérieur | mysqli_stmt_bind_result


mysqli_stmt_bind_result

(PHP 5)

mysqli_stmt_bind_result

(no version information, might be only in CVS)

stmt->bind_result() -- Lie des variables à un jeu de résultats

Description

Style procédural

bool mysqli_stmt_bind_result ( mysqli_stmt stmt, mixed &var1 [, mixed &...] )

Style orienté objet (méthode)

class mysqli_stmt {

bool bind_result ( mixed &var1 [, mixed &...] )

}

Associe des colonnes d'un résultat à des variables.

Lorsque mysqli_stmt_fetch() est appelée pour lire des valeurs, le protocole MySQL place les données dans les variables spécifiées dans le paramètre var1, ....

Note : Notez que toutes les colonnes doivent être liées après l'exécution de la fonction mysqli_stmt_execute() et avant l'appel à la fonction mysqli_stmt_fetch(). En fonction du type de valeur de la colonne, le type de variable PHP peut être automatiquement modifié.

Une colonne peut être associée ou réassociée à tout moment, même après une lecture partielle du résultat. La nouvelle association prend effet au prochain appel de mysqli_stmt_fetch().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

var1

La variable à lier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orientié objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Prépare la requête */
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    $stmt->execute();

    /* Association des variables au résultat */
    $stmt->bind_result($col1, $col2);

    /* Lecture des valeurs */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

    /* Fermeture de la requête */
    $stmt->close();
}
/* Fermeture de la connexion */
$mysqli->close();

?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (!$link) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Preparation de la requête */
if ($stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    mysqli_stmt_execute($stmt);

    /* Association des variables au résultat */
    mysqli_stmt_bind_result($stmt, $col1, $col2);

    /* Lecture des valeurs */
    while (mysqli_stmt_fetch($stmt)) {
        printf("%s %s\n", $col1, $col2);
    }

    /* Fermeture de la requête */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra

Voir aussi

mysqli_stmt_bind_param()
mysqli_stmt_execute()
mysqli_stmt_fetch()
mysqli_prepare()
mysqli_stmt_prepare()
mysqli_stmt_init()
mysqli_stmt_errno()
mysqli_stmt_error()

Précédent | Sommaire | Suivant
mysqli_stmt_bind_param | Niveau supérieur | mysqli_stmt_close


mysqli_stmt_close

(PHP 5)

mysqli_stmt_close

(no version information, might be only in CVS)

mysqli_stmt->close() -- Ferme une requête préparée

Description

Style procédural

bool mysqli_stmt_close ( mysqli_stmt stmt )

Style orienté objet (méthode)

class mysqli_stmt {

bool close ( void )

}

Ferme une requête préparée. mysqli_stmt_close() désaloue le pointeur utilisé par stmt. Si la requête est en attente ou bien que les résultats ne sont pas encores lus, cette fonction les annulera et, donc, la prochaine requête pourra être exécutée.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

mysqli_prepare()

Précédent | Sommaire | Suivant
mysqli_stmt_bind_result | Niveau supérieur | mysqli_stmt_data_seek


mysqli_stmt_data_seek

(PHP 5)

mysqli_stmt_data_seek

(no version information, might be only in CVS)

stmt->data_seek() -- Déplace le pointeur de résultat MySQL

Description

Style procédural

void mysqli_stmt_data_seek ( mysqli_stmt stmt, int offset )

Style orienté objet (méthode)

class mysqli_stmt {

void data_seek ( int offset )

}

Déplace le pointeur du résultat statement de offset lignes.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

offset

Doit prendre une valeur entre zéro et le nombre total de ligne moins 1 (0..mysqli_stmt_num_rows() - 1).

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Nom, Pays FROM Ville ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* Exécute la requête */
    $stmt->execute();

    /* Lie les variables de résultat */
    $stmt->bind_result($name, $code);

    /* Lit le résultat */
    $stmt->store_result();

    /* Va à la ligne 400 */
    $stmt->data_seek(399);

    /* Lit une valeur */
    $stmt->fetch();

    printf ("Ville : %s  Pays : %s\n", $name, $code);

    /* Ferme la commande */
    $stmt->close();
}

/* Ferme la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
/* Ouvre la connexion */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Nom, Pays FROM Ville 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);

    /* Lit le résultat */
    mysqli_stmt_store_result($stmt);

    /* Va à la ligne 400 */
    mysqli_stmt_data_seek($stmt, 399);

    /* Lit une valeur */
    mysqli_stmt_fetch($stmt);

    printf ("Ville : %s  Pays : %s\n", $name, $code);

    /* Ferme la commande */
    mysqli_stmt_close($stmt);
}

/* Ferme la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Ville : Benin City  Pays : NGA

Voir aussi

mysqli_prepare()

Précédent | Sommaire | Suivant
mysqli_stmt_close | Niveau supérieur | mysqli_stmt_errno


mysqli_stmt_errno

(PHP 5)

mysqli_stmt_errno

(no version information, might be only in CVS)

mysqli_stmt->errno -- Retourne un code erreur pour la dernière requête

Description

Style procédural

int mysqli_stmt_errno ( mysqli_stmt stmt )

Style orienté objet (méthode)

class mysqli_stmt {

int errno

}

Retourne le code erreur pour la dernière requête appelée dans le traitement qui a réussi ou échoué.

La liste des codes erreur client est disponible dans l'en-tête du fichier MySQL errmsg.h ; la liste des codes erreur serveur est disponible dans le fichier MySQL mysqld_error.h. Dans les sources de MySQL, vous pouvez trouver une liste complète des messages d'erreur ainsi que des codes erreur dans le fichier Docs/mysqld_error.txt.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Une valeur représentant un code erreur. 0 signifie qu'aucune erreur n'est survenue.

Exemples

Exemple 1. Style orienté objet

<?php
/* Ouverture d'une connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$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 : %d.\n", $stmt->errno);

    /* Fermeture du traitement */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
/* Ouverture de la connexion */
$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 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 : %d.\n", mysqli_stmt_errno($stmt));

    /* Fermeture du traitement */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Erreur : 1146.

Voir aussi

mysqli_stmt_error()
mysqli_stmt_sqlstate()

Précédent | Sommaire | Suivant
mysqli_stmt_data_seek | Niveau supérieur | mysqli_stmt_error


mysqli_stmt_error

(PHP 5)

mysqli_stmt_error

(no version information, might be only in CVS)

mysqli_stmt->error -- Retourne une description de la dernière erreur de traitement

Description

Style procédural

string mysqli_stmt_error ( mysqli_stmt stmt )

Style orienté objet (méthode)

class mysqli_stmt {

string error

}

Retourne une chaîne de caractères représentant le message d'erreur le plus récent appelé par une fonction de traitement, qu'elle ait réussi ou échoué.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Une chaîne de caractères décrivant l'erreur. Une chaîne vide si aucune erreur n'est survenue.

Exemples

Exemple 1. Style orienté objet

<?php
/* Ouverture d'une connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

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

    /* Fermeture du traitement */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
/* Ouverture de la connexion */
$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 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_error($stmt));

    /* Fermeture du traitement */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Erreur : Table 'world.myCountry' doesn't exist.

Voir aussi

mysqli_stmt_errno()
mysqli_stmt_sqlstate()

Précédent | Sommaire | Suivant
mysqli_stmt_errno | Niveau supérieur | mysqli_stmt_execute


mysqli_stmt_execute

(PHP 5)

mysqli_stmt_execute

(no version information, might be only in CVS)

stmt->execute() -- Exécute une requête préparée

Description

Style procédural

bool mysqli_stmt_execute ( mysqli_stmt stmt )

Style orienté objet (méthode)

class mysqli_stmt {

bool execute ( void )

}

Exécute une requête qui a été préalablement préparée en utilisant la fonction mysqli_prepare(), grâce à la ressource stmt. Lors de l'exécution, toutes les variables de la requête seront remplacées par les données appropriées.

Si la requête est UPDATE, DELETE ou INSERT, le nombre total de lignes affectées est disponible via la fonction mysqli_stmt_affected_rows(). De la même façon, si la fonction génère un résultat, il sera disponible via la fonction mysqli_stmt_fetch().

Note : Lors de l'utilisation de mysqli_stmt_execute(), mysqli_stmt_fetch() doit être utilisée pour lire les données avant de lancer une autre requête.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, 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();
}

$mysqli->query("CREATE TABLE ma_Ville LIKE Ville");

/* Préparation de la commande d'insertion */
$query = "INSERT INTO ma_ville (Nom, Pays, Region) VALUES (?,?,?)";
$stmt = $mysqli->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Exécution de la commande */
$stmt->execute();

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Exécution de la commande */
$stmt->execute();

/* Fermeture de la commande */
$stmt->close();

/* Lit toutes les données de ma_ville */
$query = "SELECT Nom, Pays, Region FROM ma_ville";
if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_row()) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* Libère de résultat */
    $result->close();
}

/* Suppression de la table */
$mysqli->query("DROP TABLE ma_ville");

/* 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();
}

mysqli_query($link, "CREATE TABLE ma_ville LIKE Ville");

/* Préparation de la commande d'insertion */
$query = "INSERT INTO ma_ville (Nom, Pays, Region) VALUES (?,?,?)";
$stmt = mysqli_prepare($link, $query);

mysqli_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Exécution de la commande */
mysqli_stmt_execute($stmt);

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Exécution de la commande */
mysqli_stmt_execute($stmt);

/* Fermeture de la commande */
mysqli_stmt_close($stmt);

/* Lit toutes les données de ma_ville */
$query = "SELECT Nom, Pays, Region FROM ma_ville";
if ($result = mysqli_query($link, $query)) {
    while ($row = mysqli_fetch_row($result)) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* Libère de résultat */
    mysqli_free_result($result);
}

/* Suppression de la table */
mysqli_query($link, "DROP TABLE ma_ville");

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

Voir aussi

mysqli_prepare()
mysqli_stmt_bind_param()

Précédent | Sommaire | Suivant
mysqli_stmt_error | Niveau supérieur | mysqli_stmt_fetch


mysqli_stmt_fetch

(PHP 5)

mysqli_stmt_fetch

(no version information, might be only in CVS)

stmt->fetch() -- Lit des résultats depuis une requête MySQL préparée dans des variables liées

Description

Style procédural

bool mysqli_stmt_fetch ( mysqli_stmt stmt )

Style orienté objet (méthode)

class mysqli_stmt {

bool fetch ( void )

}

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

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Tableau 1. Valeurs de retour

Valeur | Description
TRUE | Réussite. Les données ont été lues.
FALSE | Une erreur est survenue.
NULL | Il n'y a plus de ligne à lire ou les données ont été tronquées.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Nom, Pays FROM Ville ORDER by ID DESC LIMIT 150,5";

if ($stmt = $mysqli->prepare($query)) {

    /* Execution 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");

/* Ouvre la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Nom, Pays FROM Ville ORDER by ID DESC LIMIT 150,5";

if ($stmt = mysqli_prepare($link, $query)) {

    /* Execution 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);
?>

L'exemple ci-dessus va afficher :

Rockford (USA)
Tallahassee (USA)
Salinas (USA)
Santa Clarita (USA)
Springfield (USA)

Voir aussi

mysqli_prepare()
mysqli_stmt_errno()
mysqli_stmt_error()
mysqli_stmt_bind_result()

Précédent | Sommaire | Suivant
mysqli_stmt_execute | Niveau supérieur | mysqli_stmt_field_count


mysqli_stmt_free_result

(PHP 5)

mysqli_stmt_free_result

(no version information, might be only in CVS)

stmt->free_result() -- Libère le résultat MySQL de la mémoire

Description

Style procédural

void mysqli_stmt_free_result ( mysqli_stmt stmt )

Style orienté objet (méthode)

class mysqli_stmt {

void free_result ( 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

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

mysqli_stmt_store_result()

Précédent | Sommaire | Suivant
mysqli_stmt_field_count | Niveau supérieur | mysqli_stmt_get_warnings


mysqli_stmt_init

(PHP 5)

mysqli_stmt_init

(no version information, might be only in CVS)

mysqli->stmt_init() -- Initialise une commande MySQL

Description

Style procédural

mysqli_stmt mysqli_stmt_init ( mysqli link )

Style orienté objet (méthode)

class mysqli {

mysqli_stmt stmt_init ( void )

}

Alloue et initialise un objet de commande, à utiliser avec mysqli_stmt_prepare().

Note : Tous les appels ultérieurs aux fonctions mysqli_stmt_* échoueront, si mysqli_stmt_prepare() est appelée.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne un objet.

Voir aussi

mysqli_stmt_prepare()

Précédent | Sommaire | Suivant
mysqli_stmt_get_warnings | Niveau supérieur | mysqli_stmt_insert_id


mysqli_stmt_num_rows

(PHP 5)

mysqli_stmt_num_rows

(no version information, might be only in CVS)

stmt->num_rows -- Retourne le nombre de lignes d'un résultat MySQL

Description

Style procédural

int mysqli_stmt_num_rows ( mysqli_stmt stmt )

Style orienté objet (méthode)

class mysqli_stmt {

int num_rows

}

Retourne le nombre de lignes dans le résultat stmt. L'utilisation de la fonction mysqli_stmt_num_rows() dépend de l'utilisation ou non de la fonction mysqli_stmt_store_result() pour stocker le résultat dans la ressource de commande.

Si vous utilisez mysqli_stmt_store_result(), mysqli_stmt_num_rows() peut être appelée immédiatement.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Un entier représentant le nombre de lignes dans le résultat.

Exemples

Exemple 1. Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Nom, Pays FROM Ville ORDER BY Nom LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* Exécution de la requête */
    $stmt->execute();

    /* Stockage du résultat */
    $stmt->store_result();

    printf("Nombre de lignes : %d.\n", $stmt->num_rows);

    /* Fermeture de la commande */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
/* Ouvre la connexion */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Nom, Pays FROM Ville ORDER BY Nom LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* Exécution de la requête */
    mysqli_stmt_execute($stmt);

    /* Stockage du résultat */
    mysqli_stmt_store_result($stmt);

    printf("Nombre de lignes : %d.\n", mysqli_stmt_num_rows($stmt));

    /* Fermeture de la commande */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Nombre de lignes : 20.

Voir aussi

mysqli_stmt_affected_rows()
mysqli_prepare()
mysqli_stmt_store_result()

Précédent | Sommaire | Suivant
mysqli_stmt_insert_id | Niveau supérieur | mysqli_stmt_param_count


mysqli_stmt_param_count

(PHP 5)

mysqli_stmt_param_count

(no version information, might be only in CVS)

stmt->param_count -- Retourne le nombre de paramètres d'une requête MySQL

Description

Style procédural

int mysqli_stmt_param_count ( mysqli_stmt stmt )

Style orienté objet (méthode)

class mysqli_stmt {

int param_count

}

Retourne le nombre de variables attendues dans la requête préparée stmt.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne un entier représentant le nombre de paramètres.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = $mysqli->prepare("SELECT Nom FROM Pays WHERE Nom=? OR Code=?")) {

    $marker = $stmt->param_count;
    printf("La requête a %d variables.\n", $marker);

    /* Fermeture de la requête */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = mysqli_prepare($link, "SELECT Nom FROM Pays WHERE Nom=? OR Code=?")) {

    $marker = mysqli_stmt_param_count($stmt);
    printf("La requête a %d variables.\n", $marker);

    /* Fermeture de la requête */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

La requête a 2 variables.

Voir aussi

mysqli_prepare()

Précédent | Sommaire | Suivant
mysqli_stmt_num_rows | Niveau supérieur | mysqli_stmt_prepare


mysqli_stmt_prepare

(PHP 5)

mysqli_stmt_prepare

(no version information, might be only in CVS)

stmt->prepare() -- Prépare une requête SQL pour l'exécution

Description

Style procédural

bool mysqli_stmt_prepare ( mysqli_stmt stmt, string query )

Style orienté objet (méthode)

class mysqli_stmt {

mixed prepare ( string query )

}

Prépare la requête SQL query, pour la session de travail stmt.

Les variables SQL doivent être associées à une variable PHP à l'aide de la fonction mysqli_stmt_bind_param() et/ou mysqli_stmt_bind_result(), avant d'exécuter la requête.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

query

The query, as a string. It must consist of a single SQL statement.

Ce paramètre peut inclure une ou plusieurs variables SQL, en utilisant des points d'interrogation (?) aux bons endroits.

Note : Il ne faut pas ajouter de point-virgule ou de \g à la fin de la requête.

Note : Les variables SQL ne sont possibles que dans certaines clauses de la requête SQL. Par exemple, elles peuvent être placées dans des clause VALUES() d'une requête INSERT (pour spécifier une valeur à insérer), ou dans une clause de condition WHERE.

Cependant, elles ne sont pas autorisées pour les identifiants (de tables ou de colonnes), dans les listes de colonnes d'un SELECT, ou pour spécifier des opérateurs comme =. Cette dernière restriction est liée au fait qu'il est impossible de déterminer le type. En général, les variables SQL ne sont valides que dans les commandes de manipulation de données (Data Manipulation Languange (DML)), et non dans les structures du langages SQL (Data Defination Language (DDL)).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, 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();
}

$city = "Amersfoort";

/* Création d'une requête préparée */
$stmt =  $mysqli->stmt_init();
if ($stmt->prepare("SELECT Region FROM Ville WHERE Nom=?")) {

    /* Association des variables SQL */
    $stmt->bind_param("s", $city);

    /* Exécution de la requête */
    $stmt->execute();

    /* Association des variables de résultats */
    $stmt->bind_result($district);

    /* Lecture des valeurs */
    $stmt->fetch();

    printf("%s est dans la région de %s\n", $city, $district);

    /* Fermeture de la commande */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* Création d'une requête préparée */
$stmt = mysqli_stmt_init($link);
if (mysqli_stmt_prepare($stmt, 'SELECT Region FROM Ville WHERE Name=?')) {

    /* Association des variables SQL */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* Exécution de la requête */
    mysqli_stmt_execute($stmt);

    /* Association des variables de résultats */
    mysqli_stmt_bind_result($stmt, $district);

    /* Lecture des valeurs */
    mysqli_stmt_fetch($stmt);

    printf("%s est dans la région de %s\n", $city, $district);

    /* Fermeture de la commande */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Amersfoort est dans la région de Utrecht

Voir aussi

mysqli_stmt_init(),
mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_stmt_bind_param(),
mysqli_stmt_bind_result()
mysqli_stmt_close().

Précédent | Sommaire | Suivant
mysqli_stmt_param_count | Niveau supérieur | mysqli_stmt_reset


mysqli_stmt_reset

(PHP 5)

mysqli_stmt_reset

(no version information, might be only in CVS)

stmt->reset() -- Annule une requête préparée

Description

Style procédural

bool mysqli_stmt_reset ( mysqli_stmt stmt )

Style orienté objet (méthode)

class mysqli_stmt {

bool reset ( void )

}

Annule une requête préparée sur le client et sur le serveur après avoir été préparée.

Actuellement, cette fonction est essentiellement utilisée pour annuler les données envoyées avec la fonction mysqli_stmt_send_long_data().

Pour préparer de nouveau une requête, utilisez la fonction mysqli_stmt_prepare().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

mysqli_prepare()

Précédent | Sommaire | Suivant
mysqli_stmt_prepare | Niveau supérieur | mysqli_stmt_result_metadata


mysqli_stmt_result_metadata

(PHP 5)

mysqli_stmt_result_metadata

(no version information, might be only in CVS)

stmt->result_metadata() -- Retourne les méta-données de préparation de requête MySQL

Description

Style procédural

mysqli_result mysqli_stmt_result_metadata ( mysqli_stmt stmt )

Style orienté objet (méthode)

class mysqli_stmt {

mysqli_result result_metadata ( void )

}

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é pour lire les méta-donné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éta-donné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éta-données. Il ne contient aucune ligne de résultat. Ces lignes sont obtenues en utilisant la fonction mysqli_stmt_fetch().

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne un objet de résultats, ou FALSE si une erreur survient.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query("DROP TABLE IF EXISTS friends");
$mysqli->query("CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query("INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = $mysqli->prepare("SELECT id, name FROM friends");
$stmt->execute();

/* Lit les méta-données de résultat */
$result = $stmt->result_metadata();

/* Lit les informations d'un champ, depuis les méta-données */
$field = $result->fetch_field();

printf("Nom du champ : %s\n", $field->name);

/* Libération du résultat */
$result->close();

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = mysqli_prepare($link, "SELECT id, name FROM friends");
mysqli_stmt_execute($stmt);

/* Lit les méta-données de résultat */
$result = mysqli_stmt_result_metadata($stmt);

/* Lit les informations d'un champ, depuis les méta-données */
$field = mysqli_fetch_field($result);

printf("Nom du champ : %s\n", $field->name);

/* Libération du résultat */
mysqli_free_result($result);

/* Fermeture de la connexion */
mysqli_close($link);
?>

Voir aussi

mysqli_prepare()
mysqli_free_result()

Précédent | Sommaire | Suivant
mysqli_stmt_reset | Niveau supérieur | mysqli_stmt_send_long_data


mysqli_stmt_send_long_data

(PHP 5)

mysqli_stmt_send_long_data

(no version information, might be only in CVS)

stmt->send_long_data() -- Envoie des données MySQL par paquets

Description

Style procédural

bool mysqli_stmt_send_long_data ( mysqli_stmt stmt, int param_nr, string data )

Style orienté objet (méthode)

class mysqli_stmt {

bool send_long_data ( int param_nr, string data )

}

Envoie les données au serveur par paquets, si la taille des données excède la limite de max_allowed_packet. Cette fonction peut être appelée plusieurs fois pour envoyer les données textes ou binaires de champs comme les BLOB ou TEXT.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

param_nr

Indique quel paramètre doit être associé avec quelles données. Les paramètres sont numérotés à partir de 0.

data

Une chaîne de caractères contenant les données à envoyer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
mysqli_stmt_result_metadata | Niveau supérieur | mysqli_stmt_sqlstate


mysqli_stmt_sqlstate

(PHP 5)

mysqli_stmt_sqlstate

(no version information, might be only in CVS)

mysqli_stmt->sqlstate() -- Retourne le code SQLSTATE de la dernière opération MySQL

Description

Style procédural

string mysqli_stmt_sqlstate ( mysqli_stmt stmt )

Style orienté objet (méthode)

class mysqli_stmt {

string sqlstate

}

Retourne une chaîne contenant le code d'erreur SQLSTATE de la commande la plus récente qui a été préparée. Le code d'erreur est constitué de 5 caractères '00000'. Les valeurs des codes d'erreurs sont spécifiées par les normes ANSI SQL et ODBC. Pour la liste complète des valeurs, voyez le fichier http://dev.mysql.com/doc/mysql/en/error-handling.html.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Retourne la chaîne contenant le code d'erreur SQLSTATE. Le code d'erreur est constitué de 5 caractères. '00000' représente l'absence d'erreur.

Notes

Note : Notez que toutes les erreurs MySQL n'ont pas encore de correspondance en SQLSTATE. La valeur HY000 (erreur générale) est utilisée pour les erreurs sans correspondance.

Exemples

Exemple 1. Style orienté objet

<?php
/* Ouvre la connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérifie la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* Effacement de la table */
    $mysqli->query("DROP TABLE myCountry");

    /* Exécution de la requête */
    $stmt->execute();

    printf("Erreur : %s.\n", $stmt->sqlstate);

    /* Fermeture de la commande */
    $stmt->close();
}

/* Fermture 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 commande */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Erreur : 42S02.

Voir aussi

mysqli_stmt_errno()
mysqli_stmt_error()

Précédent | Sommaire | Suivant
mysqli_stmt_send_long_data | Niveau supérieur | mysqli_stmt_store_result


mysqli_stmt_store_result

(PHP 5)

mysqli_stmt_store_result

(no version information, might be only in CVS)

mysqli_stmt->store_result() -- Récupère un jeu de résultats depuis une requête préparée

Description

Style procédural

bool mysqli_stmt_store_result ( mysqli_stmt stmt )

Style orienté objet (méthode)

class mysqli_stmt {

bool store_result ( void )

}

Vous devez appeler mysqli_stmt_store_result() pour toutes les requêtes qui produisent un jeu de résultats (SELECT, SHOW, DESCRIBE, EXPLAIN), et uniquement si vous voulez stocker le jeu de résultats complet par le client, et donc, les séquences mysqli_stmt_fetch() pourront retourner ces données stockées.

Note : Il n'est pas nécessaire d'appeler mysqli_stmt_store_result() pour d'autres types de requête, mais si vous le faites, ce n'est pas grave et ne causera aucune perte notable de performance dans tous les cas. Vous pouvez détecter dans tous les cas si votre requête va produire un jeu de résultats en regardant si la fonction mysqli_stmt_result_metadata() retourne NULL.

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Style orienté objet

<?php
/* Ouverture de la connexion */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* Exécution de la requête */
    $stmt->execute();

    /* Stockage du résultat */
    $stmt->store_result();

    printf("Nombre de lignes : %d.\n", $stmt->num_rows);

    /* Libération des résultats */
    $stmt->free_result();

    /* Fermeture du traitement */
    $stmt->close();
}

/* Fermeture de la connexion */
$mysqli->close();
?>

Exemple 2. Style procédural

<?php
/* Ouverture de la connexion */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* Exécution de la requête */
    mysqli_stmt_execute($stmt);

    /* Stockage du résultat */
    mysqli_stmt_store_result($stmt);

    printf("Nombre de lignes : %d.\n", mysqli_stmt_num_rows($stmt));

    /* Libération du résultat */
    mysqli_stmt_free_result($stmt);

    /* Fermeture du traitement */
    mysqli_stmt_close($stmt);
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Nombre de lignes : 20.

Voir aussi

mysqli_prepare()
mysqli_stmt_result_metadata()
mysqli_stmt_fetch()

Précédent | Sommaire | Suivant
mysqli_stmt_sqlstate | Niveau supérieur | mysqli_store_result


mysqli_store_result

(PHP 5)

mysqli_store_result

(no version information, might be only in CVS)

mysqli->store_result() -- Transfère un jeu de résultats à partir de la dernière requête

Description

Style procédural

mysqli_result mysqli_store_result ( mysqli link )

Style orienté objet (méthode)

class mysqli {

mysqli_result store_result ( void )

}

Transfère le jeu de résultats à partir de la dernière requête sur la connexion à la base de données spécifiée par le paramètre link pour une utilisation avec mysqli_data_seek().

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne un résultat sotcké sous la forme d'un objet ou FALSE si une erreur survient.

Note : mysqli_store_result() retourne FALSE dans le cas où la requête ne retourne pas de jeu de résultat (si la requête est de type INSERT par exemple). Cette fonction retournera toujours FALSE si le jeu de résultats ne peut être lu. Vous pouvez savoir s'il y a une erreur en utilisant la fonction mysqli_error() et en regardant si elle renvoie une chaîne vide, ou si mysqli_errno() retourne zéro, ou bien si mysqli_field_count() retourne une valeur différente de zéro. Une autre raison pour que cette fonction retourne FALSE est que le jeu de résultats retourné après une requête réussie appelée par mysqli_query() est trop long (la mémoire pour celui-ci ne peut être allouée). Si mysqli_field_count() retourne une valeur différente de zéro, le traitement devrait produire un jeu de résultats non vide.

Notes

Note : Il est toujours conseillé de libérer la mémoire allouée pour le résultat en utilisant la fonction mysqli_free_result(), lors du transfert de grands résultats en utilisant la fonction mysqli_store_result() cela devient particulièrement important.

Exemples

Voir la documentation sur la fonction mysqli_multi_query().

Voir aussi

mysqli_real_query()
mysqli_use_result()

Précédent | Sommaire | Suivant
mysqli_stmt_store_result | Niveau supérieur | mysqli_thread_id


mysqli_thread_id

(PHP 5)

mysqli_thread_id

(no version information, might be only in CVS)

mysqli->thread_id -- Retourne l'identifiant du thread pour la connexion courante

Description

Style procédural

int mysqli_thread_id ( mysqli link )

Style orienté objet (méthode)

class mysqli {

int thread_id

}

La fonction mysqli_thread_id() retourne l'identifiant du thread de la connexion courante qui peut être terminé par la suite en utilisant la fonction mysqli_kill(). Si la connexion est perdue et que vous vous reconnectez avec la fonction mysqli_ping(), l'identifiant du thread sera différent. Ainsi, vous devez récupérer l'identifiant du thread uniquement lorsque vous en avez besoin.

Note : L'identifiant du thread est assigné sur une base de connexion par connexion. Ce qui fait que si la connexion est coupée, puis relancée, un nouvel identifiant de thread lui sera assigné.

Pour terminer une requête en cours d'exécution, vous pouvez utiliser la commande SQL KILL QUERY processid.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne l'identifiant du thread pour la connexion courante.

Exemples

Exemple 1. 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();
?>

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

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

L'exemple ci-dessus va afficher :

Erreur : MySQL server has gone away

Voir aussi

mysqli_kill()

Précédent | Sommaire | Suivant
mysqli_store_result | Niveau supérieur | mysqli_thread_safe


mysqli_thread_safe

(PHP 5)

mysqli_thread_safe -- Indique si le thread safety est donné ou non

Description

Procedural style:

bool mysqli_thread_safe ( void )

Indique si la bibliothèque cliente est compilée avec le thread safety.

Valeurs de retour

TRUE si la bibliothèque cliente est thread safety, FALSE sinon.

Précédent | Sommaire | Suivant
mysqli_thread_id | Niveau supérieur | mysqli_use_result


mysqli_use_result

(PHP 5)

mysqli_use_result

(no version information, might be only in CVS)

mysqli->use_result() -- Initialise la récupération d'un jeu de résultats

Description

Style procédural

mysqli_result mysqli_use_result ( mysqli link )

Style orienté objet (méthode)

class mysqli {

mysqli_result use_result ( void )

}

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'echec de la prochaine requête sur la connexion à la base de données.

Note : La fonction mysqli_use_result() ne transfère pas le jeu de résultats en entier à partir de la base de données et on ne peut donc pas utiliser des fonctions telle mysqli_data_seek() pour se déplacer entre les enregistrements. Pour utiliser cette fonctionnalité, vous devez récupérer le jeu de résultats en utilisant mysqli_store_result().

Valeurs de retour

Retourne un objet de résultats non sotckés ou FALSE si une erreur survient.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT 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émarquation */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* 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 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émarquation */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* Fermeture de la connexion */
mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Voir aussi

mysqli_real_query()
mysqli_store_result()

Précédent | Sommaire | Suivant
mysqli_thread_safe | Niveau supérieur | mysqli_warning_count


mysqli_warning_count

(PHP 5)

mysqli_warning_count

(no version information, might be only in CVS)

mysqli->warning_count -- Retourne le nombre d'avertissements générés par la dernière requête

Description

Style procédural

int mysqli_warning_count ( mysqli link )

Style orienté objet (méthode)

class mysqli {

int warning_count

}

Retourne le nombre d'avertissements générés par la dernière requête de la connexion représentée par le paramètre link.

Note : Pour récupérer les messages d'avertissements, vous pouvez utiliser la commande SQL SHOW WARNINGS [limit row_count].

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Le nombre d'avertissements ou 0 s'il n'y en a pas.

Exemples

Exemple 1. 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();
?>

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

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

L'exemple ci-dessus va afficher :

Warning (1264): Data truncated for column 'Name' at row 1

Voir aussi

mysqli_errno()
mysqli_error()
mysqli_sqlstate()

Précédent | Sommaire | Suivant
mysqli_use_result | Niveau supérieur | Fonctions de contrôle d'écran de terminal


Fonctions de contrôle d'écran de terminal

Manuel PHP
Précédent Suivant

CI. Fonctions de contrôle d'écran de terminal

Introduction

ncurses (new curses, les nouveaux curseurs) sont une émulation libre des curseurs du System V Rel 4.0 (et plus récente). Ils utilisent le format terminfo, supportent les pavés numériques, les couleurs, les colorations multiples, les caractères de formulaire et les touches de fonctions. De par la nature intéractive de cette bibliothèque, il est hors de question de l'utiliser pour écrire des applications pour le Web mais, par contre, elle peut être très intéressante pour écrire des scripts en ligne de commande.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Ncurses est disponible sur les plates-formes suivantes :

  • AIX

  • BeOS

  • Cygwin

  • Digital Unix (aka OSF1)

  • FreeBSD

  • GNU/Linux

  • HPUX

  • IRIX

  • OS/2

  • SCO OpenServer

  • Solaris

  • SunOS

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 6.0.0

Pré-requis

Vous devez disposer des bibliothèques ncurses et des fichiers d'en-têtes. Téléchargez la dernière version sur le site de ftp://ftp.gnu.org/pub/gnu/ncurses/ ou sur un miroir GNU.

Installation

Pour installer cette extension, compilez PHP en mode CGI ou CLI, avec l'option --with-ncurses[=DIR].

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension définit les ressources window, panel et pad.

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.

Codes d'erreurs

En cas d'erreur, les fonctions ncurses retournent NCURSES_ERR.

Colors

Tableau 1. Constantes de couleurs ncurses

Constante | Signification
NCURSES_COLOR_BLACK | Pas de couleur
NCURSES_COLOR_WHITE | blanc
NCURSES_COLOR_RED | rouge - supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_GREEN | vert - supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_YELLOW | jaune - supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_BLUE | bleu - supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_CYAN | cyan - supporté lorsque le terminal est en mode couleurs
NCURSES_COLOR_MAGENTA | magenta - supporté lorsque le terminal est en mode couleurs

Touches

Tableau 2. Constantes de touches ncurses

Constante | Signification
NCURSES_KEY_F0 - NCURSES_KEY_F64 | Touches de fonctions F1 - F64
NCURSES_KEY_DOWN | flèche vers le bas
NCURSES_KEY_UP | flèche vers le haut
NCURSES_KEY_LEFT | flèche vers la gauche
NCURSES_KEY_RIGHT | flèche vers la droite
NCURSES_KEY_HOME | touche home (vers le haut + flèche vers la gauche)
NCURSES_KEY_BACKSPACE | retour en arrière
NCURSES_KEY_DL | efface une ligne
NCURSES_KEY_IL | insère une ligne
NCURSES_KEY_DC | efface un caractère
NCURSES_KEY_IC | insère un caractère, ou bien passe en mode insertion
NCURSES_KEY_EIC | termine le mode insertion
NCURSES_KEY_CLEAR | efface l'écran
NCURSES_KEY_EOS | efface l'écran jusqu'en bas
NCURSES_KEY_EOL | efface l'écran jusqu'à la fin de la ligne
NCURSES_KEY_SF | scrolle une ligne vers le bas
NCURSES_KEY_SR | scrolle une ligne vers le haut
NCURSES_KEY_NPAGE | page suivante
NCURSES_KEY_PPAGE | page précédente
NCURSES_KEY_STAB | place une tabulation
NCURSES_KEY_CTAB | supprime une tabulation
NCURSES_KEY_CATAB | supprime toutes les tabulations
NCURSES_KEY_SRESET | remise à zéro partielle
NCURSES_KEY_RESET | remise à zéro totale
NCURSES_KEY_PRINT | imprime
NCURSES_KEY_LL | inférieur gauche (sur le pavé numérique)
NCURSES_KEY_A1 | supérieur gauche (sur le pavé numérique)
NCURSES_KEY_A3 | supérieur droit (sur le pavé numérique)
NCURSES_KEY_B2 | centre (sur le pavé numérique)
NCURSES_KEY_C1 | inférieur gauche (sur le pavé numérique)
NCURSES_KEY_C3 | inférieur droit (sur le pavé numérique)
NCURSES_KEY_BTAB | tabulation arrière
NCURSES_KEY_BEG | début
NCURSES_KEY_CANCEL | annule
NCURSES_KEY_CLOSE | ferme
NCURSES_KEY_COMMAND | commande
NCURSES_KEY_COPY | copie
NCURSES_KEY_CREATE | crée
NCURSES_KEY_END | fin
NCURSES_KEY_EXIT | quitte
NCURSES_KEY_FIND | trouve
NCURSES_KEY_HELP | aide
NCURSES_KEY_MARK | marque
NCURSES_KEY_MESSAGE | message
NCURSES_KEY_MOVE | déplace
NCURSES_KEY_NEXT | suivant
NCURSES_KEY_OPEN | ouvre
NCURSES_KEY_OPTIONS | options
NCURSES_KEY_PREVIOUS | précédent
NCURSES_KEY_REDO | refaire
NCURSES_KEY_REFERENCE | référence
NCURSES_KEY_REFRESH | rafraîchis
NCURSES_KEY_REPLACE | replace
NCURSES_KEY_RESTART | redémarre
NCURSES_KEY_RESUME | recommence
NCURSES_KEY_SAVE | sauve
NCURSES_KEY_SBEG | shift et début
NCURSES_KEY_SCANCEL | shift et annule
NCURSES_KEY_SCOMMAND | shift et commande
NCURSES_KEY_SCOPY | shift et copie
NCURSES_KEY_SCREATE | shift et crée
NCURSES_KEY_SDC | shift et efface un caractère
NCURSES_KEY_SDL | shift et efface une ligne
NCURSES_KEY_SELECT | sélectionne
NCURSES_KEY_SEND | shift et fin
NCURSES_KEY_SEOL | shift et fin de ligne
NCURSES_KEY_SEXIT | shift et quitte
NCURSES_KEY_SFIND | shift et trouve
NCURSES_KEY_SHELP | shift et aide
NCURSES_KEY_SHOME | shift et home
NCURSES_KEY_SIC | shift et entrée
NCURSES_KEY_SLEFT | shift et flèche vers la gauche
NCURSES_KEY_SMESSAGE | shift et message
NCURSES_KEY_SMOVE | shift et déplace
NCURSES_KEY_SNEXT | shift et suivant
NCURSES_KEY_SOPTIONS | shift et options
NCURSES_KEY_SPREVIOUS | shift et précédent
NCURSES_KEY_SPRINT | shift et imprime
NCURSES_KEY_SREDO | shift et refait
NCURSES_KEY_SREPLACE | shift et remplace
NCURSES_KEY_SRIGHT | shift et flèche vers la droite
NCURSES_KEY_SRSUME | shift et recommnence
NCURSES_KEY_SSAVE | shift et sauve
NCURSES_KEY_SSUSPEND | shift et suspend
NCURSES_KEY_UNDO | défait
NCURSES_KEY_MOUSE | un événement souris est survenu
NCURSES_KEY_MAX | valeur maximale de clé

Souris

Tableau 3. Constantes de souris

Constante | Signification
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED | bouton (1-4) relaché
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED | bouton (1-4) pressé
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED | bouton (1-4) cliqué
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED | bouton (1-4) double cliqué
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED | bouton (1-4) triple cliqué
NCURSES_BUTTON_CTRL | ctrl pressé durant le clic
NCURSES_BUTTON_SHIFT | shift pressé durant le clic
NCURSES_BUTTON_ALT | alt pressé durant le clic
NCURSES_ALL_MOUSE_EVENTS | indique tous les événements souris
NCURSES_REPORT_MOUSE_POSITION | indique la position de la souris
Table des matières
ncurses_addch -- Ajoute un caractère à la position courante et avance le curseur
ncurses_addchnstr -- Ajoute une chaîne de taille donnée à la position courante
ncurses_addchstr -- Ajoute une chaîne à la position courante
ncurses_addnstr -- Ajoute une chaîne à la position courante
ncurses_addstr -- Affiche du texte à la position courante
ncurses_assume_default_colors -- Définit la couleur 0
ncurses_attroff -- Désactive les attributs donnés
ncurses_attron -- Active les attributs fournis
ncurses_attrset -- Modifie les attributs donnés
ncurses_baudrate -- Retourne le baudrate du terminal
ncurses_beep -- Fait beeper le terminal
ncurses_bkgd -- Définit les propriétés de fond d'écran pour le terminal
ncurses_bkgdset -- Définit le fond d'écran
ncurses_border -- Dessine un bord autour de l'écran avec les caractères données
ncurses_bottom_panel -- Place un conteneur visibile en bas de la pile
ncurses_can_change_color -- Vérifie si le terminal peut changer de couleurs
ncurses_cbreak -- Change la bufferisation d'entrée
ncurses_clear -- Efface l'écran
ncurses_clrtobot -- Efface l'écran depuis la position courante jusqu'au bas de l'écran
ncurses_clrtoeol -- Efface l'écran depuis la position courante jusqu'à la fin de la ligne
ncurses_color_content -- Lit la valeur RGB d'une couleur
ncurses_color_set -- Modifie la couleur de fond et de devant
ncurses_curs_set -- Modifie l'état du curseur
ncurses_def_prog_mode -- Sauve le mode du terminal
ncurses_def_shell_mode -- Sauve le mode de terminal (shell)
ncurses_define_key -- Définit un code de clé (keycode)
ncurses_del_panel -- Retire un conteneur de la pile et l'efface (mais pas la fenêtre associée)
ncurses_delay_output -- Retarde l'affichage sur les terminaux utilisant des caractères de remplissage
ncurses_delch -- Efface le caractère courant et décale le reste de la ligne vers la gauche
ncurses_deleteln -- Efface la ligne courante, et monte l'écran d'une ligne
ncurses_delwin -- Efface une fenête ncurses
ncurses_doupdate -- Affiche tout ce qui est prêt, et rafraîchit l'écran
ncurses_echo -- Active l'écho d'entrée clavier
ncurses_echochar -- Affiche un caractère et rafraîchit l'écran
ncurses_end -- Cesse l'utilisation de ncurses et efface l'écran
ncurses_erase -- Efface l'écran du terminal
ncurses_erasechar -- Lit le caractère qui se fait effacer
ncurses_filter -- Définit LINES pour iniscr() et newterm() à 1
ncurses_flash -- Fait flasher le terminal (visual bell)
ncurses_flushinp -- Vide le buffer d'entrée du clavier
ncurses_getch -- Lit un caractère sur le clavier
ncurses_getmaxyx -- Retourne la taille d'une fenêtre
ncurses_getmouse -- Lit les événements souris
ncurses_getyx -- Retourne la position courante du curseur pour une fenêtre
ncurses_halfdelay -- Met le terminal en mode semi-retardé
ncurses_has_colors -- Vérifie que le terminal supporte les couleurs
ncurses_has_ic -- Vérifie les capacités d'insertion et d'effacement
ncurses_has_il -- Vérifie les capacités d'insertion et d'effacement
ncurses_has_key -- Vérifie la présence des touches de fonctions sur le clavier
ncurses_hide_panel -- Retire un conteneur de la pile, pour le rendre invisible
ncurses_hline -- Dessine une ligne horizontale à la position courante, en utilisant un caractère et une taille maximale
ncurses_inch -- Lit le caractère et ses attributs à la position courante
ncurses_init_color -- Configure une nouvelle valeur RGB pour une couleur
ncurses_init_pair -- Alloue une paire de couleur
ncurses_init -- Initialise ncurses
ncurses_insch -- Insère un caractère et décale le reste de la ligne vers la droite, y compris le caractère courant
ncurses_insdelln -- Insère des lignes devant la ligne courante en scrollant vers le bas (des nombres négatifs donneront un scroll vers le haut)
ncurses_insertln -- Insère une ligne et décale le reste de l'écran vers le bas
ncurses_insstr -- Insère une chaîne à la position courante, et décale le reste de la chaîne à droite
ncurses_instr -- Lit une chaîne depuis le terminal
ncurses_isendwin -- Ncurses est en mode endwin, des affichages normaux sont possibles
ncurses_keyok -- Active ou désactive un code de clé (keycode)
ncurses_keypad -- Active ou désactive le keypad
ncurses_killchar -- Retourne la ligne du caractère actuellement supprimé
ncurses_longname -- Retourne la description du terminal
ncurses_meta -- Active/désactive les informations de méta clé 8-bits
ncurses_mouse_trafo -- Transforme les coordonnées
ncurses_mouseinterval -- Configure les délais entre les clics de souris
ncurses_mousemask -- Configure les événements de souris à surveiller
ncurses_move_panel -- Déplace un conteneur pour que son coin supérieur gauche soit aux coordonnées [startx, starty]
ncurses_move -- Déplace la position d'affichage
ncurses_mvaddch -- Déplace la position courante et ajoute un caractère
ncurses_mvaddchnstr -- Déplace la position et ajoute la chaîne attribuée avec la taille donnée
ncurses_mvaddchstr -- Déplace la position et ajoute une chaîne attribuée
ncurses_mvaddnstr -- Déplace la position et ajoute une chaîne de taille donnée
ncurses_mvaddstr -- Déplace la position et ajoute une chaîne
ncurses_mvcur -- Déplace immédiatement le curseur
ncurses_mvdelch -- Déplace la position et efface le caractère, puis décale le reste de la ligne à gauche
ncurses_mvgetch -- Déplace la position et lit le caractère à la nouvelle position
ncurses_mvhline -- Choisi une nouvelle position et dessine une ligne horizontale avec le caractère donné, et de taille maximale donnée
ncurses_mvinch -- Déplace la position et lit le caractère à la nouvelle position
ncurses_mvvline -- Modifie la position et dessine une ligne verticale avec le caractère donné, de taille maximale donnée
ncurses_mvwaddstr -- Ajoute une chaîne à une nouvelle position dans la fenêtre
ncurses_napms -- Fait une pause
ncurses_new_panel -- Crée un nouveau conteneur et l'associe à une fenêtre
ncurses_newpad -- Crée un nouveau pad (fenêtre)
ncurses_newwin -- Crée une nouvelle fenêtre
ncurses_nl -- Convertit les nouvelles lignes et retours chariot en sauts de ligne
ncurses_nocbreak -- Passe le terminal en mode cooked
ncurses_noecho -- Désactive l'écho clavier
ncurses_nonl -- Ne convertit par les nouvelles lignes et retours chariot en sauts de ligne
ncurses_noqiflush -- Ne vide pas les buffers sur réception des caractères de signaux
ncurses_noraw -- Déconfigure le mode brut du terminal
ncurses_pair_content -- Retourne la valeur RGB d'une couleur
ncurses_panel_above -- Retourne le conteneur au-dessus du conteneur
ncurses_panel_below -- Retourne le conteneur sous le conteneur
ncurses_panel_window -- Retourne la fenêtre associée avec un conteneur
ncurses_pnoutrefresh -- Copie une région depuis un pad dans un écran virtuel
ncurses_prefresh -- Copie une région depuis un pad dans l'écran virtuel
ncurses_putp -- Applique l'information d'espacement à la chaîne et l'affiche
ncurses_qiflush -- Vide les buffers après détection d'un caractère de signal
ncurses_raw -- Passe le terminal en mode brut (raw)
ncurses_refresh -- Rafraîchit l'écran
ncurses_replace_panel -- Remplace la fenêtre associée à un conteneur
ncurses_reset_prog_mode -- Restaure le mode prog sauvé par def_prog_mode
ncurses_reset_shell_mode -- Restaure le mode shell, mode sauvé par def_shell_mode
ncurses_resetty -- Rétablit le terminal sauvé
ncurses_savetty -- Sauve l'état du terminal
ncurses_scr_dump -- Sauve un écran dans un fichier
ncurses_scr_init -- Initialise un écran depuis un fichier de sauvegarde
ncurses_scr_restore -- Rétablit un écran depuis un fichier de sauvegarde
ncurses_scr_set -- Configure un écran depuis un fichier de sauvegarde
ncurses_scrl -- Scrolle le contenu de la fenêtre vers le haut ou le bas, sans changer la position courante
ncurses_show_panel -- Place un conteneur invisible en haut de la pile, pour le rendre visible
ncurses_slk_attr -- Retourne l'attribut de la clé soft label courante
ncurses_slk_attroff -- Désactive l'attribut donné pour les étiquettes des function-key (fonctions clés)
ncurses_slk_attron -- Active l'attribut donné pour les étiquettes des function-key (fonctions clés)
ncurses_slk_attrset -- Définit les attributs donnés à une étiquette function-key
ncurses_slk_clear -- Efface les soft labels de l'écran
ncurses_slk_color -- Configure la couleur des clés soft label
ncurses_slk_init -- Initialise les fonctions de clés soft label
ncurses_slk_noutrefresh -- Copie toutes les clés soft label à l'écran virtuel
ncurses_slk_refresh -- Copie les clés soft label à l'écran
ncurses_slk_restore -- Rétablit les clés soft label
ncurses_slk_set -- Modifie les étiquettes de clé de fonction (function key labels)
ncurses_slk_touch -- Force l'affichage lorsque ncurses_slk_noutrefresh est utilisé
ncurses_standend -- Cesse l'utilisation de l'attribut 'standout'
ncurses_standout -- Commence l'utilisation de l'attribut 'standout'
ncurses_start_color -- Active les couleurs
ncurses_termattrs -- Retourne toutes les options supportées par le terminal, combinées ensemble par l'opérateur OR
ncurses_termname -- Retourne le nom court du terminal
ncurses_timeout -- Configure le temps d'expiration des séquences clavier spéciales
ncurses_top_panel -- Place un conteneur visible sur le haut de la pile
ncurses_typeahead -- Spécifie un autre descripteur de fichier pour la vérification à la volée des données saisies
ncurses_ungetch -- Replace un caractère dans la queue d'entrée
ncurses_ungetmouse -- Ajoute un événement souris dans la queue
ncurses_update_panels -- Rafraîchit l'écran virtuel pour prendre en compte les relations entre les conteneurs de la pile
ncurses_use_default_colors -- Assigne la couleur de terminal pour l'index -1
ncurses_use_env -- Contrôle l'utilisation des informations d'environnement concernant la taille du terminal
ncurses_use_extended_names -- Contrôle l'utilisation des noms étendus dans les descriptions terminfo
ncurses_vidattr -- Affiche la chaîne sur un terminal dans le mode d'attribut vidéo
ncurses_vline -- Dessine une ligne verticale à la position courante en utilisant un caractère donné, pour une taille donnée
ncurses_waddch -- Ajoute un caractère à la position courante, dans une fenêtre, et avance le curseur
ncurses_waddstr -- Affiche le texte à la position courante dans la fenêtre
ncurses_wattroff -- Désactive les attributs d'une fenêtre
ncurses_wattron -- Efface les attributs de la fenêtre
ncurses_wattrset -- Modifie les attributs d'une fenêtre
ncurses_wborder -- Dessine le bord d'une fenêtre avec un caractère qualifié
ncurses_wclear -- Efface la fenêtre
ncurses_wcolor_set -- Modifie les paires de couleurs de la fenêtre
ncurses_werase -- Efface le contenu de la fenêtre
ncurses_wgetch -- Lit un caractère depuis le clavier (fenêtre)
ncurses_whline -- Dessine une ligne horizontale à partir de la position courante, avec un caractère qualifié, et d'une taille maximale
ncurses_wmouse_trafo -- Transforme les coordonnées d'une fenêtre
ncurses_wmove -- Déplace la position d'affichage de la fenêtre
ncurses_wnoutrefresh -- Copie la fenêtre dans l'écran virtuel
ncurses_wrefresh -- Rafraîchit la fenêtre sur l'écran du terminal
ncurses_wstandend -- Termine le mode standout de la fenêtre
ncurses_wstandout -- Passe une fenêtre en mode standout
ncurses_wvline -- Dessine une ligne verticale dans une fenêtre, à la position courante, en utilisant un caractère qualifié, avec une taille maximale

Précédent | Sommaire | Suivant
mysqli_warning_count | Niveau supérieur | ncurses_addch


ncurses_addch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_addch -- Ajoute un caractère à la position courante et avance le curseur

Description

int ncurses_addch ( int ch )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

ch

Précédent | Sommaire | Suivant
Fonctions de contrôle d'écran de terminal | Niveau supérieur | ncurses_addchnstr


ncurses_addchnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addchnstr -- Ajoute une chaîne de taille donnée à la position courante

Description

int ncurses_addchnstr ( string s, int n )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

s

n

Précédent | Sommaire | Suivant
ncurses_addch | Niveau supérieur | ncurses_addchstr


ncurses_addchstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addchstr -- Ajoute une chaîne à la position courante

Description

int ncurses_addchstr ( string s )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

s

Précédent | Sommaire | Suivant
ncurses_addchnstr | Niveau supérieur | ncurses_addnstr


ncurses_addnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addnstr -- Ajoute une chaîne à la position courante

Description

int ncurses_addnstr ( string s, int n )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

s

n

Précédent | Sommaire | Suivant
ncurses_addchstr | Niveau supérieur | ncurses_addstr


ncurses_addstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addstr -- Affiche du texte à la position courante

Description

int ncurses_addstr ( string text )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text

Précédent | Sommaire | Suivant
ncurses_addnstr | Niveau supérieur | ncurses_assume_default_colors


ncurses_assume_default_colors

(PHP 4 >= 4.2.0, PHP 5)

ncurses_assume_default_colors -- Définit la couleur 0

Description

int ncurses_assume_default_colors ( int fg, int bg )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

fg

bg

Précédent | Sommaire | Suivant
ncurses_addstr | Niveau supérieur | ncurses_attroff


ncurses_attroff

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attroff -- Désactive les attributs donnés

Description

int ncurses_attroff ( int attributes )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attributes

Précédent | Sommaire | Suivant
ncurses_assume_default_colors | Niveau supérieur | ncurses_attron


ncurses_attron

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attron -- Active les attributs fournis

Description

int ncurses_attron ( int attributes )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attributes

Précédent | Sommaire | Suivant
ncurses_attroff | Niveau supérieur | ncurses_attrset


ncurses_attrset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attrset -- Modifie les attributs donnés

Description

int ncurses_attrset ( int attributes )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attributes

Précédent | Sommaire | Suivant
ncurses_attron | Niveau supérieur | ncurses_baudrate


ncurses_baudrate

(PHP 4 >= 4.1.0, PHP 5)

ncurses_baudrate -- Retourne le baudrate du terminal

Description

int ncurses_baudrate ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_attrset | Niveau supérieur | ncurses_beep


ncurses_beep

(PHP 4 >= 4.1.0, PHP 5)

ncurses_beep -- Fait beeper le terminal

Description

int ncurses_beep ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

ncurses_beep() envoie une alerte audible (bell) et si ce n'est pas possible, fait flasher l'écran.

Voir aussi

ncurses_flash()

Précédent | Sommaire | Suivant
ncurses_baudrate | Niveau supérieur | ncurses_bkgd


ncurses_bkgd

(PHP 4 >= 4.1.0, PHP 5)

ncurses_bkgd -- Définit les propriétés de fond d'écran pour le terminal

Description

int ncurses_bkgd ( int attrchar )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attrchar

Précédent | Sommaire | Suivant
ncurses_beep | Niveau supérieur | ncurses_bkgdset


ncurses_bkgdset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_bkgdset -- Définit le fond d'écran

Description

void ncurses_bkgdset ( int attrchar )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

attrchar

Précédent | Sommaire | Suivant
ncurses_bkgd | Niveau supérieur | ncurses_border


ncurses_border

(PHP 4 >= 4.2.0, PHP 5)

ncurses_border -- Dessine un bord autour de l'écran avec les caractères données

Description

int ncurses_border ( int left, int right, int top, int bottom, int tl_corner, int tr_corner, int bl_corner, int br_corner )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Dessine les lignes spécifiées et les coins autour de la fenêtre principale.

Utilisez ncurses_wborder() pour les bordures autour de la fenêtre.

Liste de paramètres

Chaque paramètre attend 0 pour dessiner la ligne et 1 pour ne pas le faire.

left

right

top

bottom

tl_corner

Coin en haut à gauche

tr_corner

Coin en haut à droite

bl_corner

Coin en bas à gauche

br_corner

Coin en bas à droite

Voir aussi

ncurses_wborder()

Précédent | Sommaire | Suivant
ncurses_bkgdset | Niveau supérieur | ncurses_bottom_panel


ncurses_bottom_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_bottom_panel -- Place un conteneur visibile en bas de la pile

Description

int ncurses_bottom_panel ( resource panel )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

Précédent | Sommaire | Suivant
ncurses_border | Niveau supérieur | ncurses_can_change_color


ncurses_can_change_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_can_change_color -- Vérifie si le terminal peut changer de couleurs

Description

bool ncurses_can_change_color ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie si le terminal supporte les couleurs et si le programmeur peut changer ces couleurs.

Valeurs de retour

Retourne TRUE ou FALSE, suivant que le terminal supporte les couleurs ou pas, et si le programmeur peut changer ces couleurs ou pas, FALSE sinon.

Précédent | Sommaire | Suivant
ncurses_bottom_panel | Niveau supérieur | ncurses_cbreak


ncurses_cbreak

(PHP 4 >= 4.1.0, PHP 5)

ncurses_cbreak -- Change la bufferisation d'entrée

Description

bool ncurses_cbreak ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Désactive la bufferisation de ligne, et le traitement des caractères (les interruptions et le flux de caractères de contrôle sont intouchés), rendant les caractères tapés par l'utilisateur directement accessibles au programme.

Valeurs de retour

Retourne TRUE en cas de succès, et NCURSES_ERR en cas d'erreur.

Voir aussi

ncurses_nocbreak()

Précédent | Sommaire | Suivant
ncurses_can_change_color | Niveau supérieur | ncurses_clear


ncurses_clear

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clear -- Efface l'écran

Description

bool ncurses_clear ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface totalement l'écran sans configurer les blancs.

Note : ncurses_clear() efface totalement l'écran sans configurer les blancs, qui représentent la couleur de fond d'écran. Pour effacer le fond d'écran avec les blancs, utilisez plutôt ncurses_erase().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ncurses_erase()

Précédent | Sommaire | Suivant
ncurses_cbreak | Niveau supérieur | ncurses_clrtobot


ncurses_clrtobot

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clrtobot -- Efface l'écran depuis la position courante jusqu'au bas de l'écran

Description

bool ncurses_clrtobot ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface toutes les lignes de l'écran depuis le curseur jusqu'à la fin de l'écran. Les blancs qui sont créés avec la fonction ncurses_clrtobot() ont le rendu courant du fond d'écran.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ncurses_clear()
ncurses_clrtoeol()

Précédent | Sommaire | Suivant
ncurses_clear | Niveau supérieur | ncurses_clrtoeol


ncurses_clrtoeol

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clrtoeol -- Efface l'écran depuis la position courante jusqu'à la fin de la ligne

Description

bool ncurses_clrtoeol ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface la ligne courante depuis la position courante du curseur jusqu'à la fin. Les blancs qui sont créés avec la fonction ncurses_clrtoeol() ont le rendu courant du fond d'écran.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ncurses_clear()
ncurses_clrtobot()

Précédent | Sommaire | Suivant
ncurses_clrtobot | Niveau supérieur | ncurses_color_content


ncurses_color_content

(PHP 4 >= 4.3.0, PHP 5)

ncurses_color_content -- Lit la valeur RGB d'une couleur

Description

int ncurses_color_content ( int color, int &r, int &g, int &b )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

color

r

g

b

Précédent | Sommaire | Suivant
ncurses_clrtoeol | Niveau supérieur | ncurses_color_set


ncurses_color_set

(PHP 4 >= 4.1.0, PHP 5)

ncurses_color_set -- Modifie la couleur de fond et de devant

Description

int ncurses_color_set ( int pair )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pair

Précédent | Sommaire | Suivant
ncurses_color_content | Niveau supérieur | ncurses_curs_set


ncurses_curs_set

(PHP 4 >= 4.1.0, PHP 5)

ncurses_curs_set -- Modifie l'état du curseur

Description

int ncurses_curs_set ( int visibility )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

visibility

Précédent | Sommaire | Suivant
ncurses_color_set | Niveau supérieur | ncurses_def_prog_mode


ncurses_def_prog_mode

(PHP 4 >= 4.1.0, PHP 5)

ncurses_def_prog_mode -- Sauve le mode du terminal

Description

bool ncurses_def_prog_mode ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sauve le mode du terminal pour réutilisation (dans les curses) avec la fonction ncurses_reset_prog_mode().

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

ncurses_reset_prog_mode()

Précédent | Sommaire | Suivant
ncurses_curs_set | Niveau supérieur | ncurses_def_shell_mode


ncurses_def_shell_mode

(PHP 4 >= 4.1.0, PHP 5)

ncurses_def_shell_mode -- Sauve le mode de terminal (shell)

Description

bool ncurses_def_shell_mode ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sauve le mode de terminal courant pour qu'il soit réutilisé par le shell (et non pas par curses) avec la fonction ncurses_reset_shell_mode().

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

ncurses_reset_shell_mode()

Précédent | Sommaire | Suivant
ncurses_def_prog_mode | Niveau supérieur | ncurses_define_key


ncurses_define_key

(PHP 4 >= 4.2.0, PHP 5)

ncurses_define_key -- Définit un code de clé (keycode)

Description

int ncurses_define_key ( string definition, int keycode )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

definition

keycode

Précédent | Sommaire | Suivant
ncurses_def_shell_mode | Niveau supérieur | ncurses_del_panel


ncurses_del_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_del_panel -- Retire un conteneur de la pile et l'efface (mais pas la fenêtre associée)

Description

bool ncurses_del_panel ( resource panel )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

Précédent | Sommaire | Suivant
ncurses_define_key | Niveau supérieur | ncurses_delay_output


ncurses_delay_output

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delay_output -- Retarde l'affichage sur les terminaux utilisant des caractères de remplissage

Description

int ncurses_delay_output ( int milliseconds )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

milliseconds

Précédent | Sommaire | Suivant
ncurses_del_panel | Niveau supérieur | ncurses_delch


ncurses_delch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delch -- Efface le caractère courant et décale le reste de la ligne vers la gauche

Description

bool ncurses_delch ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface la caractère sous le curseur. Tous les caractères sont alors décalés vers la gauche sur la même ligne, et le dernier caractère est remplacé par un vide. La position du curseur ne change pas.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

ncurses_deleteln()

Précédent | Sommaire | Suivant
ncurses_delay_output | Niveau supérieur | ncurses_deleteln


ncurses_deleteln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_deleteln -- Efface la ligne courante, et monte l'écran d'une ligne

Description

bool ncurses_deleteln ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Efface la ligne courante, qui est placée sous le curseur. Toutes les lignes sousjacentes sont alors remontées d'un cran. La ligne du bas est effacée. La position du curseur ne change pas.

Valeurs de retour

Retourne FALSE en cas de succès, et sinon TRUE.

Voir aussi

ncurses_delch()

Précédent | Sommaire | Suivant
ncurses_delch | Niveau supérieur | ncurses_delwin


ncurses_delwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delwin -- Efface une fenête ncurses

Description

bool ncurses_delwin ( resource window )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

Précédent | Sommaire | Suivant
ncurses_deleteln | Niveau supérieur | ncurses_doupdate


ncurses_doupdate

(PHP 4 >= 4.1.0, PHP 5)

ncurses_doupdate -- Affiche tout ce qui est prêt, et rafraîchit l'écran

Description

bool ncurses_doupdate ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Compare l'écran mémoire avec l'écran physique, et met à jour l'écran physique. Cette méthode est plus efficace que d'utiliser des rafraîchissements multiples.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ncurses_delwin | Niveau supérieur | ncurses_echo


ncurses_echo

(PHP 4 >= 4.1.0, PHP 5)

ncurses_echo -- Active l'écho d'entrée clavier

Description

bool ncurses_echo ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Active le mode écho. Tous les caractères saisis par l'utilisateur sont affichés à l'écran par ncurses_getch().

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE si une erreur survient.

Voir aussi

ncurses_noecho() to disable echo mode

Précédent | Sommaire | Suivant
ncurses_doupdate | Niveau supérieur | ncurses_echochar


ncurses_echochar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_echochar -- Affiche un caractère et rafraîchit l'écran

Description

int ncurses_echochar ( int character )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

character

Précédent | Sommaire | Suivant
ncurses_echo | Niveau supérieur | ncurses_end


ncurses_end

(PHP 4 >= 4.1.0, PHP 5)

ncurses_end -- Cesse l'utilisation de ncurses et efface l'écran

Description

int ncurses_end ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_echochar | Niveau supérieur | ncurses_erase


ncurses_erase

(PHP 4 >= 4.1.0, PHP 5)

ncurses_erase -- Efface l'écran du terminal

Description

bool ncurses_erase ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Remplit le terminal avec des blancs.

Les blancs créés ont la couleur du fond d'écran, configurée avec la fonction ncurses_bkgd().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ncurses_bkgd()
ncurses_clear()

Précédent | Sommaire | Suivant
ncurses_end | Niveau supérieur | ncurses_erasechar


ncurses_erasechar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_erasechar -- Lit le caractère qui se fait effacer

Description

string ncurses_erasechar ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le caractère qui se fait effacer.

Valeurs de retour

Le caractère effacé, sous la forme d'une chaîne de caractères.

Voir aussi

ncurses_killchar()

Précédent | Sommaire | Suivant
ncurses_erase | Niveau supérieur | ncurses_filter


ncurses_filter

(PHP 4 >= 4.1.0, PHP 5)

ncurses_filter -- Définit LINES pour iniscr() et newterm() à 1

Description

void ncurses_filter ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_erasechar | Niveau supérieur | ncurses_flash


ncurses_flash

(PHP 4 >= 4.1.0, PHP 5)

ncurses_flash -- Fait flasher le terminal (visual bell)

Description

bool ncurses_flash ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Fait flasher le terminal et si ce n'est pas possible, envoie une alerte sonore (bell).

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

ncurses_beep()

Précédent | Sommaire | Suivant
ncurses_filter | Niveau supérieur | ncurses_flushinp


ncurses_flushinp

(PHP 4 >= 4.1.0, PHP 5)

ncurses_flushinp -- Vide le buffer d'entrée du clavier

Description

bool ncurses_flushinp ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vide le buffer d'entrée du clavier que votre programme n'a pas encore lu.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Précédent | Sommaire | Suivant
ncurses_flash | Niveau supérieur | ncurses_getch


ncurses_getch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_getch -- Lit un caractère sur le clavier

Description

int ncurses_getch ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_flushinp | Niveau supérieur | ncurses_getmaxyx


ncurses_getmaxyx

(PHP 4 >= 4.3.0, PHP 5)

ncurses_getmaxyx -- Retourne la taille d'une fenêtre

Description

void ncurses_getmaxyx ( resource window, int &y, int &x )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Place la taille verticale et la taille horizontale de la fenêtre window dans les variables fournies.

Les variables doivent être passées par référence, donc, elles seront modifiées lorsque l'utilisateur change la taille du terminal.

Liste de paramètres

window

La fenêtre mesurée

x

Sera défini pour la largeur de la fenêtre

y

Sera défini pour la hauteur de la fenêtre

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
ncurses_getch | Niveau supérieur | ncurses_getmouse


ncurses_getmouse

(PHP 4 >= 4.2.0, PHP 5)

ncurses_getmouse -- Lit les événements souris

Description

bool ncurses_getmouse ( array &mevent )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

ncurses_getmouse() lit les événements souris placés dans la queue.

Liste de paramètres

mevent

Les options d'événements seront placées dans ce paramètre, qui doit être un tableau, passé par référence (voir l'exemple ci-dessous).

En cas de succès, un tableau associatif, contenant les clés suivantes, sera délivré :

  • "id" : Identifiant permettant de distinguer plusieurs périphériques

  • "x" : Position à l'écran, en absisse relative, et comptée en caractères

  • "y" : Position à l'écran, en ordonnée relative, et comptée en caractères

  • "z" : Actuellement non supporté

  • "mmask" : Action de souris

Valeurs de retour

Retourne FALSE si un événement de souris est actuellement visible dans la fenêtre fournie, TRUE sinon.

Exemples

Exemple 1. Exemple avec ncurses_getmouse()

<?php
switch (ncurses_getch()){
  case NCURSES_KEY_MOUSE:
    if (!ncurses_getmouse(&$mevent)){
      if ($mevent["mmask"] & NCURSES_MOUSE_BUTTON1_PRESSED){
        $mouse_x = $mevent["x"]; // Sauve la position de la souris
        $mouse_y = $mevent["y"];
      }
    }
  break;

  default:
    /* .... */
}
?>

Voir aussi

ncurses_ungetmouse()

Précédent | Sommaire | Suivant
ncurses_getmaxyx | Niveau supérieur | ncurses_getyx


ncurses_getyx

(PHP 4 >= 4.3.0, PHP 5)

ncurses_getyx -- Retourne la position courante du curseur pour une fenêtre

Description

void ncurses_getyx ( resource window, int &y, int &x )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

y

x

Précédent | Sommaire | Suivant
ncurses_getmouse | Niveau supérieur | ncurses_halfdelay


ncurses_halfdelay

(PHP 4 >= 4.1.0, PHP 5)

ncurses_halfdelay -- Met le terminal en mode semi-retardé

Description

int ncurses_halfdelay ( int tenth )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

tenth

Précédent | Sommaire | Suivant
ncurses_getyx | Niveau supérieur | ncurses_has_colors


ncurses_has_colors

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_colors -- Vérifie que le terminal supporte les couleurs

Description

bool ncurses_has_colors ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie que le terminal supporte les couleurs.

Valeurs de retour

retourne TRUE si le terminal supporte les couleurs, FALSE sinon.

Voir aussi

ncurses_can_change_color()

Précédent | Sommaire | Suivant
ncurses_halfdelay | Niveau supérieur | ncurses_has_ic


ncurses_has_ic

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_ic -- Vérifie les capacités d'insertion et d'effacement

Description

bool ncurses_has_ic ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie les capacités d'insertion et d'effacement du terminal.

Valeurs de retour

Retourne TRUE lorsque le terminal a ces capacités, FALSE sinon.

Voir aussi

ncurses_has_il()

Précédent | Sommaire | Suivant
ncurses_has_colors | Niveau supérieur | ncurses_has_il


ncurses_has_il

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_il -- Vérifie les capacités d'insertion et d'effacement

Description

bool ncurses_has_il ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie les capacités d'insertion et d'effacement du terminal.

Valeurs de retour

Retourne TRUE si le terminal a ces capacités, FALSE sinon.

Voir aussi

ncurses_has_ic()

Précédent | Sommaire | Suivant
ncurses_has_ic | Niveau supérieur | ncurses_has_key


ncurses_has_key

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_key -- Vérifie la présence des touches de fonctions sur le clavier

Description

int ncurses_has_key ( int keycode )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

keycode

Précédent | Sommaire | Suivant
ncurses_has_il | Niveau supérieur | ncurses_hide_panel


ncurses_hide_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_hide_panel -- Retire un conteneur de la pile, pour le rendre invisible

Description

int ncurses_hide_panel ( resource panel )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

Précédent | Sommaire | Suivant
ncurses_has_key | Niveau supérieur | ncurses_hline


ncurses_hline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_hline -- Dessine une ligne horizontale à la position courante, en utilisant un caractère et une taille maximale

Description

int ncurses_hline ( int charattr, int n )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

charattr

n

Précédent | Sommaire | Suivant
ncurses_hide_panel | Niveau supérieur | ncurses_inch


ncurses_inch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_inch -- Lit le caractère et ses attributs à la position courante

Description

string ncurses_inch ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le caractère de la position courante.

Valeurs de retour

Retourne le caractère.

Précédent | Sommaire | Suivant
ncurses_hline | Niveau supérieur | ncurses_init_color


ncurses_init_color

(PHP 4 >= 4.2.0, PHP 5)

ncurses_init_color -- Configure une nouvelle valeur RGB pour une couleur

Description

int ncurses_init_color ( int color, int r, int g, int b )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

color

r

g

b

Précédent | Sommaire | Suivant
ncurses_inch | Niveau supérieur | ncurses_init_pair


ncurses_init_pair

(PHP 4 >= 4.1.0, PHP 5)

ncurses_init_pair -- Alloue une paire de couleur

Description

int ncurses_init_pair ( int pair, int fg, int bg )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pair

fg

bg

Précédent | Sommaire | Suivant
ncurses_init_color | Niveau supérieur | ncurses_init


ncurses_init

(PHP 4 >= 4.1.0, PHP 5)

ncurses_init -- Initialise ncurses

Description

void ncurses_init ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Initialise l'interface ncurses et doit être utilisé avant n'importe quelle autre fonction ncurses.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
ncurses_init_pair | Niveau supérieur | ncurses_insch


ncurses_insch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insch -- Insère un caractère et décale le reste de la ligne vers la droite, y compris le caractère courant

Description

int ncurses_insch ( int character )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

character

Précédent | Sommaire | Suivant
ncurses_init | Niveau supérieur | ncurses_insdelln


ncurses_insdelln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insdelln -- Insère des lignes devant la ligne courante en scrollant vers le bas (des nombres négatifs donneront un scroll vers le haut)

Description

int ncurses_insdelln ( int count )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

count

Précédent | Sommaire | Suivant
ncurses_insch | Niveau supérieur | ncurses_insertln


ncurses_insertln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insertln -- Insère une ligne et décale le reste de l'écran vers le bas

Description

int ncurses_insertln ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Insère une nouvelle ligne au-dessus de la ligne courante. La ligne du bas de l'écran sera perdue.

Précédent | Sommaire | Suivant
ncurses_insdelln | Niveau supérieur | ncurses_insstr


ncurses_insstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_insstr -- Insère une chaîne à la position courante, et décale le reste de la chaîne à droite

Description

int ncurses_insstr ( string text )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text

Précédent | Sommaire | Suivant
ncurses_insertln | Niveau supérieur | ncurses_instr


ncurses_instr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_instr -- Lit une chaîne depuis le terminal

Description

int ncurses_instr ( string &buffer )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Lit une chaîne depuis le terminal et retourne le nombre de caractères lus depuis la position courante jusqu'à la fin de la ligne.

Liste de paramètres

buffer

Les caractères. Les attributs seront supprimés.

Valeurs de retour

Retourne le nombre de caractères.

Précédent | Sommaire | Suivant
ncurses_insstr | Niveau supérieur | ncurses_isendwin


ncurses_isendwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_isendwin -- Ncurses est en mode endwin, des affichages normaux sont possibles

Description

bool ncurses_isendwin ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie si ncurses est en mode endwin.

Valeurs de retour

Retourne TRUE, si ncurses_endwin() a été appelé sans aucun appel subséquent à ncurses_wrefresh(), FALSE sinon.

Voir aussi

ncurses_endwin()
ncurses_wrefresh()

Précédent | Sommaire | Suivant
ncurses_instr | Niveau supérieur | ncurses_keyok


ncurses_keyok

(PHP 4 >= 4.2.0, PHP 5)

ncurses_keyok -- Active ou désactive un code de clé (keycode)

Description

int ncurses_keyok ( int keycode, bool enable )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

keycode

enable

Précédent | Sommaire | Suivant
ncurses_isendwin | Niveau supérieur | ncurses_keypad


ncurses_keypad

(PHP 4 >= 4.2.0, PHP 5)

ncurses_keypad -- Active ou désactive le keypad

Description

int ncurses_keypad ( resource window, bool bf )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

bf

Précédent | Sommaire | Suivant
ncurses_keyok | Niveau supérieur | ncurses_killchar


ncurses_killchar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_killchar -- Retourne la ligne du caractère actuellement supprimé

Description

string ncurses_killchar ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la ligne du caractère actuellement supprimé.

Valeurs de retour

Retourne le caractère supprimé.

Voir aussi

ncurses_erasechar()

Précédent | Sommaire | Suivant
ncurses_keypad | Niveau supérieur | ncurses_longname


ncurses_longname

(PHP 4 >= 4.2.0, PHP 5)

ncurses_longname -- Retourne la description du terminal

Description

string ncurses_longname ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne une description complète du terminal.

Valeurs de retour

Retourne une description complète du terminal. La description est tronquée à 128 caractères. En cas d'erreur, FALSE sera retourné.

Voir aussi

ncurses_termname()

Précédent | Sommaire | Suivant
ncurses_killchar | Niveau supérieur | ncurses_meta


ncurses_meta

(PHP 4 >= 4.3.0, PHP 5)

ncurses_meta -- Active/désactive les informations de méta clé 8-bits

Description

int ncurses_meta ( resource window, bool 8bit )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

8bit

Précédent | Sommaire | Suivant
ncurses_longname | Niveau supérieur | ncurses_mouse_trafo


ncurses_mouse_trafo

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mouse_trafo -- Transforme les coordonnées

Description

bool ncurses_mouse_trafo ( int &y, int &x, bool toscreen )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

toscreen

Précédent | Sommaire | Suivant
ncurses_meta | Niveau supérieur | ncurses_mouseinterval


ncurses_mouseinterval

(PHP 4 >= 4.1.0, PHP 5)

ncurses_mouseinterval -- Configure les délais entre les clics de souris

Description

int ncurses_mouseinterval ( int milliseconds )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

milliseconds

Précédent | Sommaire | Suivant
ncurses_mouse_trafo | Niveau supérieur | ncurses_mousemask


ncurses_mousemask

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mousemask -- Configure les événements de souris à surveiller

Description

int ncurses_mousemask ( int newmask, int &oldmask )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Configure les événements de souris à surveiller. Par défaut, aucun événement souris n'est rapporté.

Les événements souris sont représentés par NCURSES_KEY_MOUSE dans la fonction ncurses_wgetch(). Pour lire les données d'événements dans la queue, utilisez la fonction ncurses_getmouse().

Liste de paramètres

newmask

Les options de masque de souris sont les constantes suiavntes :

  • NCURSES_BUTTON1_PRESSED

  • NCURSES_BUTTON1_RELEASED

  • NCURSES_BUTTON1_CLICKED

  • NCURSES_BUTTON1_DOUBLE_CLICKED

  • NCURSES_BUTTON1_TRIPLE_CLICKED

  • NCURSES_BUTTON2_PRESSED

  • NCURSES_BUTTON2_RELEASED

  • NCURSES_BUTTON2_CLICKED

  • NCURSES_BUTTON2_DOUBLE_CLICKED

  • NCURSES_BUTTON2_TRIPLE_CLICKED

  • NCURSES_BUTTON3_PRESSED

  • NCURSES_BUTTON3_RELEASED

  • NCURSES_BUTTON3_CLICKED

  • NCURSES_BUTTON3_DOUBLE_CLICKED

  • NCURSES_BUTTON3_TRIPLE_CLICKED

  • NCURSES_BUTTON4_PRESSED

  • NCURSES_BUTTON4_RELEASED

  • NCURSES_BUTTON4_CLICKED

  • NCURSES_BUTTON4_DOUBLE_CLICKED

  • NCURSES_BUTTON4_TRIPLE_CLICKED

  • NCURSES_BUTTON_SHIFT>

  • NCURSES_BUTTON_CTRL

  • NCURSES_BUTTON_ALT

  • NCURSES_ALL_MOUSE_EVENTS

  • NCURSES_REPORT_MOUSE_POSITION

Comme effet secondaire, utiliser la valeur de 0 avec le paramètre newmask désactive la souris. Lui donner une valeur positive non nulle réactive la souris.

oldmask

Ce paramètre sera défini avec la valeur du masque précédent.

Valeurs de retour

Retourne un masque pour indiquer quels paramètres de newmask peut être rapporté. En cas d'échec complet, elle retourne 0.

Exemples

Exemple 1. Exemple avec ncurses_mousemask()

<?php
$newmask = NCURSES_BUTTON1_CLICKED + NCURSES_BUTTON1_RELEASED;
$mask = ncurses_mousemask($newmask, &$oldmask);
if ($mask & $newmask){
    printf("Toutes les options de souris spécifiées sont supportées\n");
}
?>

Voir aussi

ncurses_getmouse()
ncurses_ungetmouse()
ncurese_getch()

Précédent | Sommaire | Suivant
ncurses_mouseinterval | Niveau supérieur | ncurses_move_panel


ncurses_move_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_move_panel -- Déplace un conteneur pour que son coin supérieur gauche soit aux coordonnées [startx, starty]

Description

int ncurses_move_panel ( resource panel, int startx, int starty )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

startx

starty

Précédent | Sommaire | Suivant
ncurses_mousemask | Niveau supérieur | ncurses_move


ncurses_move

(PHP 4 >= 4.1.0, PHP 5)

ncurses_move -- Déplace la position d'affichage

Description

int ncurses_move ( int y, int x )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

Précédent | Sommaire | Suivant
ncurses_move_panel | Niveau supérieur | ncurses_mvaddch


ncurses_mvaddch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddch -- Déplace la position courante et ajoute un caractère

Description

int ncurses_mvaddch ( int y, int x, int c )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

c

Précédent | Sommaire | Suivant
ncurses_move | Niveau supérieur | ncurses_mvaddchnstr


ncurses_mvaddchnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddchnstr -- Déplace la position et ajoute la chaîne attribuée avec la taille donnée

Description

int ncurses_mvaddchnstr ( int y, int x, string s, int n )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

s

n

Précédent | Sommaire | Suivant
ncurses_mvaddch | Niveau supérieur | ncurses_mvaddchstr


ncurses_mvaddchstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddchstr -- Déplace la position et ajoute une chaîne attribuée

Description

int ncurses_mvaddchstr ( int y, int x, string s )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

s

Précédent | Sommaire | Suivant
ncurses_mvaddchnstr | Niveau supérieur | ncurses_mvaddnstr


ncurses_mvaddnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddnstr -- Déplace la position et ajoute une chaîne de taille donnée

Description

int ncurses_mvaddnstr ( int y, int x, string s, int n )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

s

n

Précédent | Sommaire | Suivant
ncurses_mvaddchstr | Niveau supérieur | ncurses_mvaddstr


ncurses_mvaddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddstr -- Déplace la position et ajoute une chaîne

Description

int ncurses_mvaddstr ( int y, int x, string s )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

s

Précédent | Sommaire | Suivant
ncurses_mvaddnstr | Niveau supérieur | ncurses_mvcur


ncurses_mvcur

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvcur -- Déplace immédiatement le curseur

Description

int ncurses_mvcur ( int old_y, int old_x, int new_y, int new_x )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

old_y

old_x

new_y

new_x

Précédent | Sommaire | Suivant
ncurses_mvaddstr | Niveau supérieur | ncurses_mvdelch


ncurses_mvdelch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvdelch -- Déplace la position et efface le caractère, puis décale le reste de la ligne à gauche

Description

int ncurses_mvdelch ( int y, int x )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

Précédent | Sommaire | Suivant
ncurses_mvcur | Niveau supérieur | ncurses_mvgetch


ncurses_mvgetch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvgetch -- Déplace la position et lit le caractère à la nouvelle position

Description

int ncurses_mvgetch ( int y, int x )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

Précédent | Sommaire | Suivant
ncurses_mvdelch | Niveau supérieur | ncurses_mvhline


ncurses_mvhline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvhline -- Choisi une nouvelle position et dessine une ligne horizontale avec le caractère donné, et de taille maximale donnée

Description

int ncurses_mvhline ( int y, int x, int attrchar, int n )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

attrchar

n

Précédent | Sommaire | Suivant
ncurses_mvgetch | Niveau supérieur | ncurses_mvinch


ncurses_mvinch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvinch -- Déplace la position et lit le caractère à la nouvelle position

Description

int ncurses_mvinch ( int y, int x )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

Précédent | Sommaire | Suivant
ncurses_mvhline | Niveau supérieur | ncurses_mvvline


ncurses_mvvline

(no version information, might be only in CVS)

ncurses_mvvline -- Modifie la position et dessine une ligne verticale avec le caractère donné, de taille maximale donnée

Description

int ncurses_mvvline ( int y, int x, int attrchar, int n )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

y

x

attrchar

n

Précédent | Sommaire | Suivant
ncurses_mvinch | Niveau supérieur | ncurses_mvwaddstr


ncurses_mvwaddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvwaddstr -- Ajoute une chaîne à une nouvelle position dans la fenêtre

Description

int ncurses_mvwaddstr ( resource window, int y, int x, string text )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

y

x

text

Précédent | Sommaire | Suivant
ncurses_mvvline | Niveau supérieur | ncurses_napms


ncurses_napms

(PHP 4 >= 4.1.0, PHP 5)

ncurses_napms -- Fait une pause

Description

int ncurses_napms ( int milliseconds )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

milliseconds

Précédent | Sommaire | Suivant
ncurses_mvwaddstr | Niveau supérieur | ncurses_new_panel


ncurses_new_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_new_panel -- Crée un nouveau conteneur et l'associe à une fenêtre

Description

resource ncurses_new_panel ( resource window )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

Précédent | Sommaire | Suivant
ncurses_napms | Niveau supérieur | ncurses_newpad


ncurses_newpad

(PHP 4 >= 4.3.0, PHP 5)

ncurses_newpad -- Crée un nouveau pad (fenêtre)

Description

resource ncurses_newpad ( int rows, int cols )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

rows

cols

Précédent | Sommaire | Suivant
ncurses_new_panel | Niveau supérieur | ncurses_newwin


ncurses_newwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_newwin -- Crée une nouvelle fenêtre

Description

resource ncurses_newwin ( int rows, int cols, int y, int x )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée une nouvelle fenêtre pour y dessiner des éléments.

Lors de la création de la nouvelle fenêtre, pensez à utiliser ncurses_getmaxyx() pour repérer les espaces disponibles, sachant qu'un terminal est individuel et peut varier.

Liste de paramètres

rows

Nombre de lignes

cols

Nombre de colonnes

y

Y : coordonnée de l'origine

x

X : coordonnée de l'origine

Valeurs de retour

Retourne un identifiant de ressource pour la nouvelle fenêtre.

Précédent | Sommaire | Suivant
ncurses_newpad | Niveau supérieur | ncurses_nl


ncurses_nl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nl -- Convertit les nouvelles lignes et retours chariot en sauts de ligne

Description

bool ncurses_nl ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_newwin | Niveau supérieur | ncurses_nocbreak


ncurses_nocbreak

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nocbreak -- Passe le terminal en mode cooked

Description

bool ncurses_nocbreak ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le terminal en mode normal (cooked). Initialement, le terminal peut ou peut ne pas être en mode cbreak, comme mode hérité. Par conséquent, un program doit appeler ncurses_cbreak() et ncurses_nocbreak() explicitement.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

ncurses_cbreak()

Précédent | Sommaire | Suivant
ncurses_nl | Niveau supérieur | ncurses_noecho


ncurses_noecho

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noecho -- Désactive l'écho clavier

Description

bool ncurses_noecho ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Annule l'effet d'écho des caractères tapés à l'écran.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

ncurses_echo()
ncurses_getch()

Précédent | Sommaire | Suivant
ncurses_nocbreak | Niveau supérieur | ncurses_nonl


ncurses_nonl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nonl -- Ne convertit par les nouvelles lignes et retours chariot en sauts de ligne

Description

bool ncurses_nonl ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_noecho | Niveau supérieur | ncurses_noqiflush


ncurses_noqiflush

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noqiflush -- Ne vide pas les buffers sur réception des caractères de signaux

Description

void ncurses_noqiflush ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_nonl | Niveau supérieur | ncurses_noraw


ncurses_noraw

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noraw -- Déconfigure le mode brut du terminal

Description

bool ncurses_noraw ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Déconfigure le mode brut du terminal. Le mode brut est similaire au mode cbreak, car les caractères tapés sont immédiatement passés au programme. La différence est qu'en mode brut, les caractères d'interruption, de fin de programme, de suspension et de suivi du flux de caractères sont passés sans être interprétés.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

ncurses_raw()
ncurses_cbreak()
ncurses_nocbreak()

Précédent | Sommaire | Suivant
ncurses_noqiflush | Niveau supérieur | ncurses_pair_content


ncurses_pair_content

(PHP 4 >= 4.3.0, PHP 5)

ncurses_pair_content -- Retourne la valeur RGB d'une couleur

Description

int ncurses_pair_content ( int pair, int &f, int &b )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pair

f

b

Précédent | Sommaire | Suivant
ncurses_noraw | Niveau supérieur | ncurses_panel_above


ncurses_panel_above

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_above -- Retourne le conteneur au-dessus du conteneur

Description

resource ncurses_panel_above ( resource panel )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

Valeurs de retour

Si le conteneur est null, retourne le dernier conteneur de la pile.

Précédent | Sommaire | Suivant
ncurses_pair_content | Niveau supérieur | ncurses_panel_below


ncurses_panel_below

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_below -- Retourne le conteneur sous le conteneur

Description

resource ncurses_panel_below ( resource panel )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

Liste de paramètres

Si le conteneur est null, le premier conteneur de la pile est retourné.

Précédent | Sommaire | Suivant
ncurses_panel_above | Niveau supérieur | ncurses_panel_window


ncurses_panel_window

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_window -- Retourne la fenêtre associée avec un conteneur

Description

resource ncurses_panel_window ( resource panel )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

Précédent | Sommaire | Suivant
ncurses_panel_below | Niveau supérieur | ncurses_pnoutrefresh


ncurses_pnoutrefresh

(PHP 4 >= 4.3.0, PHP 5)

ncurses_pnoutrefresh -- Copie une région depuis un pad dans un écran virtuel

Description

int ncurses_pnoutrefresh ( resource pad, int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pad

pminrow

pmincol

sminrow

smincol

smaxrow

smaxcol

Précédent | Sommaire | Suivant
ncurses_panel_window | Niveau supérieur | ncurses_prefresh


ncurses_prefresh

(PHP 4 >= 4.3.0, PHP 5)

ncurses_prefresh -- Copie une région depuis un pad dans l'écran virtuel

Description

int ncurses_prefresh ( resource pad, int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

pad

pminrow

pmincol

sminrow

smincol

smaxrow

smaxcol

Précédent | Sommaire | Suivant
ncurses_pnoutrefresh | Niveau supérieur | ncurses_putp


ncurses_putp

(PHP 4 >= 4.2.0, PHP 5)

ncurses_putp -- Applique l'information d'espacement à la chaîne et l'affiche

Description

int ncurses_putp ( string text )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

text

Précédent | Sommaire | Suivant
ncurses_prefresh | Niveau supérieur | ncurses_qiflush


ncurses_qiflush

(PHP 4 >= 4.1.0, PHP 5)

ncurses_qiflush -- Vide les buffers après détection d'un caractère de signal

Description

void ncurses_qiflush ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_putp | Niveau supérieur | ncurses_raw


ncurses_raw

(PHP 4 >= 4.1.0, PHP 5)

ncurses_raw -- Passe le terminal en mode brut (raw)

Description

bool ncurses_raw ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Place le terminal en mode brut. Le mode brut est similaire au mode cbreak, car les caractères tapés sont immédiatement passés au programme. La différence est qu'en mode brut, les caractères d'interruption, de fin de programme, de suspension et de suivi du flux de caractères sont passés sans être interprétés.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

ncurses_noraw()
ncurses_cbreak()
ncurses_nocbreak()

Précédent | Sommaire | Suivant
ncurses_qiflush | Niveau supérieur | ncurses_refresh


ncurses_refresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_refresh -- Rafraîchit l'écran

Description

int ncurses_refresh ( int ch )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

ch

Précédent | Sommaire | Suivant
ncurses_raw | Niveau supérieur | ncurses_replace_panel


ncurses_replace_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_replace_panel -- Remplace la fenêtre associée à un conteneur

Description

int ncurses_replace_panel ( resource panel, resource window )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

window

Précédent | Sommaire | Suivant
ncurses_refresh | Niveau supérieur | ncurses_reset_prog_mode


ncurses_reset_prog_mode

(PHP 4 >= 4.3.0, PHP 5)

ncurses_reset_prog_mode -- Restaure le mode prog sauvé par def_prog_mode

Description

int ncurses_reset_prog_mode ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_replace_panel | Niveau supérieur | ncurses_reset_shell_mode


ncurses_reset_shell_mode

(PHP 4 >= 4.3.0, PHP 5)

ncurses_reset_shell_mode -- Restaure le mode shell, mode sauvé par def_shell_mode

Description

int ncurses_reset_shell_mode ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_reset_prog_mode | Niveau supérieur | ncurses_resetty


ncurses_resetty

(PHP 4 >= 4.1.0, PHP 5)

ncurses_resetty -- Rétablit le terminal sauvé

Description

bool ncurses_resetty ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Rétablit le terminal sauvé par la fonction ncurses_savetty().

Valeurs de retour

Retourne toujours FALSE.

Voir aussi

ncurses_savetty()

Précédent | Sommaire | Suivant
ncurses_reset_shell_mode | Niveau supérieur | ncurses_savetty


ncurses_savetty

(PHP 4 >= 4.1.0, PHP 5)

ncurses_savetty -- Sauve l'état du terminal

Description

bool ncurses_savetty ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sauve l'état courant du terminal. L'état courant du terminal peut être rétabli avec la fonction ncurses_resetty().

Valeurs de retour

Always returns FALSE.

Voir aussi

ncurses_resetty()

Précédent | Sommaire | Suivant
ncurses_resetty | Niveau supérieur | ncurses_scr_dump


ncurses_scr_dump

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_dump -- Sauve un écran dans un fichier

Description

int ncurses_scr_dump ( string filename )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename

Précédent | Sommaire | Suivant
ncurses_savetty | Niveau supérieur | ncurses_scr_init


ncurses_scr_init

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_init -- Initialise un écran depuis un fichier de sauvegarde

Description

int ncurses_scr_init ( string filename )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename

Précédent | Sommaire | Suivant
ncurses_scr_dump | Niveau supérieur | ncurses_scr_restore


ncurses_scr_restore

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_restore -- Rétablit un écran depuis un fichier de sauvegarde

Description

int ncurses_scr_restore ( string filename )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename

Précédent | Sommaire | Suivant
ncurses_scr_init | Niveau supérieur | ncurses_scr_set


ncurses_scr_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_set -- Configure un écran depuis un fichier de sauvegarde

Description

int ncurses_scr_set ( string filename )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename

Précédent | Sommaire | Suivant
ncurses_scr_restore | Niveau supérieur | ncurses_scrl


ncurses_scrl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_scrl -- Scrolle le contenu de la fenêtre vers le haut ou le bas, sans changer la position courante

Description

int ncurses_scrl ( int count )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

count

Précédent | Sommaire | Suivant
ncurses_scr_set | Niveau supérieur | ncurses_show_panel


ncurses_show_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_show_panel -- Place un conteneur invisible en haut de la pile, pour le rendre visible

Description

int ncurses_show_panel ( resource panel )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

Précédent | Sommaire | Suivant
ncurses_scrl | Niveau supérieur | ncurses_slk_attr


ncurses_slk_attr

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attr -- Retourne l'attribut de la clé soft label courante

Description

int ncurses_slk_attr ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne l'attribut de la clé soft label.

Valeurs de retour

L'attribut, sous la forme d'un entier.

Précédent | Sommaire | Suivant
ncurses_show_panel | Niveau supérieur | ncurses_slk_attroff


ncurses_slk_attroff

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attroff -- Désactive l'attribut donné pour les étiquettes des function-key (fonctions clés)

Description

int ncurses_slk_attroff ( int intarg )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg

Précédent | Sommaire | Suivant
ncurses_slk_attr | Niveau supérieur | ncurses_slk_attron


ncurses_slk_attron

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attron -- Active l'attribut donné pour les étiquettes des function-key (fonctions clés)

Description

int ncurses_slk_attron ( int intarg )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg

Précédent | Sommaire | Suivant
ncurses_slk_attroff | Niveau supérieur | ncurses_slk_attrset


ncurses_slk_attrset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attrset -- Définit les attributs donnés à une étiquette function-key

Description

int ncurses_slk_attrset ( int intarg )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg

Précédent | Sommaire | Suivant
ncurses_slk_attron | Niveau supérieur | ncurses_slk_clear


ncurses_slk_clear

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_clear -- Efface les soft labels de l'écran

Description

bool ncurses_slk_clear ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

ncurses_slk_clear() efface les clés label keys de l'écran.

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Précédent | Sommaire | Suivant
ncurses_slk_attrset | Niveau supérieur | ncurses_slk_color


ncurses_slk_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_color -- Configure la couleur des clés soft label

Description

int ncurses_slk_color ( int intarg )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg

Précédent | Sommaire | Suivant
ncurses_slk_clear | Niveau supérieur | ncurses_slk_init


ncurses_slk_init

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_init -- Initialise les fonctions de clés soft label

Description

bool ncurses_slk_init ( int format )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Initialise les fonctions de clés soft label.

ncurses_slk_init() doit êre appelée
avant que ncurses_initscr() et
ncurses_newterm() soient utilisées.

Liste de paramètres

format

Si ncurses_initscr() utilise une ligne de stdscr pour émuler les soft labels, alors le paramètre format détermine comment les labels seront arrangés sur l'écran.

la valeur 0 indique que vous utiliserez un arrangement de type 3-2-3; la valeur 1 indiquera un arrangement 4-4; la valeur 2 indiquera un mode 4-4-4, mais une ligne d'index sera créée en plus.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ncurses_slk_color | Niveau supérieur | ncurses_slk_noutrefresh


ncurses_slk_noutrefresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_noutrefresh -- Copie toutes les clés soft label à l'écran virtuel

Description

bool ncurses_slk_noutrefresh ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_slk_init | Niveau supérieur | ncurses_slk_refresh


ncurses_slk_refresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_refresh -- Copie les clés soft label à l'écran

Description

int ncurses_slk_refresh ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Copie les clés soft label de l'écran virtuel vers l'écran physique.

Précédent | Sommaire | Suivant
ncurses_slk_noutrefresh | Niveau supérieur | ncurses_slk_restore


ncurses_slk_restore

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_restore -- Rétablit les clés soft label

Description

int ncurses_slk_restore ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Rétablit les clés soft label après l'utilisation de ncurses_slk_clear().

Précédent | Sommaire | Suivant
ncurses_slk_refresh | Niveau supérieur | ncurses_slk_set


ncurses_slk_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_slk_set -- Modifie les étiquettes de clé de fonction (function key labels)

Description

bool ncurses_slk_set ( int labelnr, string label, int format )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

labelnr

label

format

Précédent | Sommaire | Suivant
ncurses_slk_restore | Niveau supérieur | ncurses_slk_touch


ncurses_slk_touch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_touch -- Force l'affichage lorsque ncurses_slk_noutrefresh est utilisé

Description

int ncurses_slk_touch ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Force l'affichage de tous les soft labels dès la prochaine utilisation de ncurses_slk_noutrefresh().

Précédent | Sommaire | Suivant
ncurses_slk_set | Niveau supérieur | ncurses_standend


ncurses_standend

(PHP 4 >= 4.1.0, PHP 5)

ncurses_standend -- Cesse l'utilisation de l'attribut 'standout'

Description

int ncurses_standend ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_slk_touch | Niveau supérieur | ncurses_standout


ncurses_standout

(PHP 4 >= 4.1.0, PHP 5)

ncurses_standout -- Commence l'utilisation de l'attribut 'standout'

Description

int ncurses_standout ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_standend | Niveau supérieur | ncurses_start_color


ncurses_start_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_start_color -- Active les couleurs

Description

int ncurses_start_color ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_standout | Niveau supérieur | ncurses_termattrs


ncurses_termattrs

(PHP 4 >= 4.1.0, PHP 5)

ncurses_termattrs -- Retourne toutes les options supportées par le terminal, combinées ensemble par l'opérateur OR

Description

bool ncurses_termattrs ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_start_color | Niveau supérieur | ncurses_termname


ncurses_termname

(PHP 4 >= 4.2.0, PHP 5)

ncurses_termname -- Retourne le nom court du terminal

Description

string ncurses_termname ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le nom court du terminal.

Valeurs de retour

Retourne le nom court du terminal. Le nom court est tronqué à 14 caractères. En cas d'erreur, ncurses_termname() retourne NULL.

Voir aussi

ncurses_longname()

Précédent | Sommaire | Suivant
ncurses_termattrs | Niveau supérieur | ncurses_timeout


ncurses_timeout

(PHP 4 >= 4.1.0, PHP 5)

ncurses_timeout -- Configure le temps d'expiration des séquences clavier spéciales

Description

void ncurses_timeout ( int millisec )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

millisec

Précédent | Sommaire | Suivant
ncurses_termname | Niveau supérieur | ncurses_top_panel


ncurses_top_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_top_panel -- Place un conteneur visible sur le haut de la pile

Description

int ncurses_top_panel ( resource panel )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

panel

Précédent | Sommaire | Suivant
ncurses_timeout | Niveau supérieur | ncurses_typeahead


ncurses_typeahead

(PHP 4 >= 4.1.0, PHP 5)

ncurses_typeahead -- Spécifie un autre descripteur de fichier pour la vérification à la volée des données saisies

Description

int ncurses_typeahead ( int fd )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

fd

Précédent | Sommaire | Suivant
ncurses_top_panel | Niveau supérieur | ncurses_ungetch


ncurses_ungetch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_ungetch -- Replace un caractère dans la queue d'entrée

Description

int ncurses_ungetch ( int keycode )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

keycode

Précédent | Sommaire | Suivant
ncurses_typeahead | Niveau supérieur | ncurses_ungetmouse


ncurses_ungetmouse

(PHP 4 >= 4.2.0, PHP 5)

ncurses_ungetmouse -- Ajoute un événement souris dans la queue

Description

bool ncurses_ungetmouse ( array mevent )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajoute un événement souris dans la queue d'entrée, et associe cet événement avec l'état du terminal et les coordonnées relatives (en caractères) de la souris, spécifiés dans mevent.

Liste de paramètres

mevent

Un tableau associatif spécifiant les options de l'événement :

  • "id" : identifiant permettant de distinguer plusieurs périphériques

  • "x" : position à l'écran, en absisse relative, et comptée en caractères

  • "y" : position à l'écran, en ordonnée relative, et comptée en caractères

  • "z" : actuellement non supporté

  • "mmask" : action de souris

Valeurs de retour

Retourne FALSE en cas de succès, et TRUE sinon.

Voir aussi

ncurses_getmouse()

Précédent | Sommaire | Suivant
ncurses_ungetch | Niveau supérieur | ncurses_update_panels


ncurses_update_panels

(PHP 4 >= 4.3.0, PHP 5)

ncurses_update_panels -- Rafraîchit l'écran virtuel pour prendre en compte les relations entre les conteneurs de la pile

Description

void ncurses_update_panels ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_ungetmouse | Niveau supérieur | ncurses_use_default_colors


ncurses_use_default_colors

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_default_colors -- Assigne la couleur de terminal pour l'index -1

Description

bool ncurses_use_default_colors ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ncurses_update_panels | Niveau supérieur | ncurses_use_env


ncurses_use_env

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_env -- Contrôle l'utilisation des informations d'environnement concernant la taille du terminal

Description

void ncurses_use_env ( bool flag )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flag

Précédent | Sommaire | Suivant
ncurses_use_default_colors | Niveau supérieur | ncurses_use_extended_names


ncurses_use_extended_names

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_extended_names -- Contrôle l'utilisation des noms étendus dans les descriptions terminfo

Description

int ncurses_use_extended_names ( bool flag )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flag

Précédent | Sommaire | Suivant
ncurses_use_env | Niveau supérieur | ncurses_vidattr


ncurses_vidattr

(PHP 4 >= 4.1.0, PHP 5)

ncurses_vidattr -- Affiche la chaîne sur un terminal dans le mode d'attribut vidéo

Description

int ncurses_vidattr ( int intarg )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

intarg

Précédent | Sommaire | Suivant
ncurses_use_extended_names | Niveau supérieur | ncurses_vline


ncurses_vline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_vline -- Dessine une ligne verticale à la position courante en utilisant un caractère donné, pour une taille donnée

Description

int ncurses_vline ( int charattr, int n )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

charattr

n

Précédent | Sommaire | Suivant
ncurses_vidattr | Niveau supérieur | ncurses_waddch


ncurses_waddch

(PHP 4 >= 4.3.0, PHP 5)

ncurses_waddch -- Ajoute un caractère à la position courante, dans une fenêtre, et avance le curseur

Description

int ncurses_waddch ( resource window, int ch )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

ch

Précédent | Sommaire | Suivant
ncurses_vline | Niveau supérieur | ncurses_waddstr


ncurses_waddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_waddstr -- Affiche le texte à la position courante dans la fenêtre

Description

int ncurses_waddstr ( resource window, string str [, int n] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

str

n

Précédent | Sommaire | Suivant
ncurses_waddch | Niveau supérieur | ncurses_wattroff


ncurses_wattroff

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattroff -- Désactive les attributs d'une fenêtre

Description

int ncurses_wattroff ( resource window, int attrs )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

attrs

Précédent | Sommaire | Suivant
ncurses_waddstr | Niveau supérieur | ncurses_wattron


ncurses_wattron

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattron -- Efface les attributs de la fenêtre

Description

int ncurses_wattron ( resource window, int attrs )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

attrs

Précédent | Sommaire | Suivant
ncurses_wattroff | Niveau supérieur | ncurses_wattrset


ncurses_wattrset

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattrset -- Modifie les attributs d'une fenêtre

Description

int ncurses_wattrset ( resource window, int attrs )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

attrs

Précédent | Sommaire | Suivant
ncurses_wattron | Niveau supérieur | ncurses_wborder


ncurses_wborder

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wborder -- Dessine le bord d'une fenêtre avec un caractère qualifié

Description

int ncurses_wborder ( resource window, int left, int right, int top, int bottom, int tl_corner, int tr_corner, int bl_corner, int br_corner )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Dessine les lignes spécifiées et les coins autour de la fenêtre passée par window.

Utilisez ncurses_border() pour les bordures de la fenêtre principale.

Liste de paramètres

Chaque paramètre attend 0 pour dessiner et 1 pour ne pas le faire.

window

La fenêtre à traiter

left

right

top

bottom

tl_corner

Coin en haut, à gauche

tr_corner

Coin en haut, à droite

bl_corner

Coin en bas, à gauche

br_corner

Coin en bas, à droite

Voir aussi

ncurses_border()

Précédent | Sommaire | Suivant
ncurses_wattrset | Niveau supérieur | ncurses_wclear


ncurses_wclear

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wclear -- Efface la fenêtre

Description

int ncurses_wclear ( resource window )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

Précédent | Sommaire | Suivant
ncurses_wborder | Niveau supérieur | ncurses_wcolor_set


ncurses_wcolor_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wcolor_set -- Modifie les paires de couleurs de la fenêtre

Description

int ncurses_wcolor_set ( resource window, int color_pair )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

color_pair

Précédent | Sommaire | Suivant
ncurses_wclear | Niveau supérieur | ncurses_werase


ncurses_werase

(PHP 4 >= 4.3.0, PHP 5)

ncurses_werase -- Efface le contenu de la fenêtre

Description

int ncurses_werase ( resource window )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

Précédent | Sommaire | Suivant
ncurses_wcolor_set | Niveau supérieur | ncurses_wgetch


ncurses_wgetch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wgetch -- Lit un caractère depuis le clavier (fenêtre)

Description

int ncurses_wgetch ( resource window )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

Précédent | Sommaire | Suivant
ncurses_werase | Niveau supérieur | ncurses_whline


ncurses_whline

(PHP 4 >= 4.3.0, PHP 5)

ncurses_whline -- Dessine une ligne horizontale à partir de la position courante, avec un caractère qualifié, et d'une taille maximale

Description

int ncurses_whline ( resource window, int charattr, int n )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

charattr

n

Précédent | Sommaire | Suivant
ncurses_wgetch | Niveau supérieur | ncurses_wmouse_trafo


ncurses_wmouse_trafo

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wmouse_trafo -- Transforme les coordonnées d'une fenêtre

Description

bool ncurses_wmouse_trafo ( resource window, int &y, int &x, bool toscreen )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

x

y

toscreen

Précédent | Sommaire | Suivant
ncurses_whline | Niveau supérieur | ncurses_wmove


ncurses_wmove

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wmove -- Déplace la position d'affichage de la fenêtre

Description

int ncurses_wmove ( resource window, int y, int x )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

y

x

Précédent | Sommaire | Suivant
ncurses_wmouse_trafo | Niveau supérieur | ncurses_wnoutrefresh


ncurses_wnoutrefresh

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wnoutrefresh -- Copie la fenêtre dans l'écran virtuel

Description

int ncurses_wnoutrefresh ( resource window )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

Précédent | Sommaire | Suivant
ncurses_wmove | Niveau supérieur | ncurses_wrefresh


ncurses_wrefresh

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wrefresh -- Rafraîchit la fenêtre sur l'écran du terminal

Description

int ncurses_wrefresh ( resource window )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

Précédent | Sommaire | Suivant
ncurses_wnoutrefresh | Niveau supérieur | ncurses_wstandend


ncurses_wstandend

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wstandend -- Termine le mode standout de la fenêtre

Description

int ncurses_wstandend ( resource window )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

Précédent | Sommaire | Suivant
ncurses_wrefresh | Niveau supérieur | ncurses_wstandout


ncurses_wstandout

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wstandout -- Passe une fenêtre en mode standout

Description

int ncurses_wstandout ( resource window )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

Précédent | Sommaire | Suivant
ncurses_wstandend | Niveau supérieur | ncurses_wvline


ncurses_wvline

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wvline -- Dessine une ligne verticale dans une fenêtre, à la position courante, en utilisant un caractère qualifié, avec une taille maximale

Description

int ncurses_wvline ( resource window, int charattr, int n )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

window

charattr

n

Précédent | Sommaire | Suivant
ncurses_wstandout | Niveau supérieur | Réseau


Réseau

Manuel PHP
Précédent Suivant

CII. Réseau

Introduction

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
define_syslog_variables | "0" | PHP_INI_ALL |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

define_syslog_variables booléen

Définit s'il faut ou pas définir les différentes variables de syslog, (e.g. $LOG_PID, $LOG_CRON, etc.). Eteindre cette fonctionnalité est recommandé pour les performances. Durant l'exécution, vous pouvez définir ces variables en appelant define_syslog_variables().

Types de ressources

Cette extension définit une ressource de pointeur de fichier, retourné par les fonctions fsockopen() et pfsockopen().

Constantes pré-définies

Les constantes listées ici sont toujours disponibles dans PHP.

Tableau 2. 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

Tableau 3. Facilité de syslog()

Constante | Description
LOG_AUTH | sécurité/autorisation message (utilisez LOG_AUTHPRIV à la place sur les systèmes où cette constante n'est pas définie)
LOG_AUTHPRIV | sécurité/autorisation message (privé)
LOG_CRON | démon de temps (cron et at)
LOG_DAEMON | autres démons systèmes
LOG_KERN | messages noyau
LOG_LOCAL0 ... LOG_LOCAL7 | réservées pour une utilisation locale, elles ne sont pas disponibles sous Windows
LOG_LPR | imprimante système
LOG_MAIL | système de mail
LOG_NEWS | système de news USENET
LOG_SYSLOG | messages générés en interne par le démon syslogd
LOG_USER | messages génériques utilisateurs
LOG_UUCP | système UUCP

Tableau 4. 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ébogage

Tableau 5. Options dns_get_record()

Constante | Description
DNS_A | Adresse IPv4
DNS_MX | Champs serveur Mail (MX)
DNS_CNAME | Champs alias (Nom canonique) (A)
DNS_NS | Champs de serveur autorité (NS)
DNS_PTR | Champs de pointeur (PTR)
DNS_HINFO | Champs d'informations d'hôte (HINFO) (voir la Operating System Names pour la signification de ces valeurs)
DNS_SOA | Champs de délégation d'autorité (SOA)
DNS_TXT | Texte
DNS_ANY | Tous les champs. Sur la plupart des systèmes, cela retourne tous les champs, mais il ne faut pas s'y fier. Utilisez DNS_ALL.
DNS_AAAA | Adresse IPv6
DNS_ALL | Sollicite itérativement le serveur pour chaque type de champ.
Table des matières
checkdnsrr -- Résolution DNS d'une adresse IP
closelog -- Ferme la connexion à l'historique système
debugger_off -- Désactive le deboguer interne de PHP (PHP 3)
debugger_on -- Active le deboguer interne de PHP (PHP 3)
define_syslog_variables -- Initialise toutes les constantes liées au syslog
dns_check_record -- Synonyme de checkdnsrr()
dns_get_mx -- Synonyme de getmxrr()
dns_get_record -- Lit les données DNS associées à un hôte
fsockopen -- Ouvre une socket de connexion Internet ou Unix
gethostbyaddr -- Retourne le nom d'hôte correspondant à une IP
gethostbyname -- Retourne l'adresse IP correspondant à un hôte
gethostbynamel -- Retourne la liste d'IP correspondante à un 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 -- Envoie un en-tête HTTP
headers_list -- Retourne la liste des en-têtes de réponse du script courant
headers_sent -- Indique si les en-têtes HTTP ont déjà été envoyés
inet_ntop -- Convertit un paquet d'adresses internet en une représentation humainement lisible
inet_pton -- Convertit une adresse IP lisible en sa représentation in_addr
ip2long -- Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale
long2ip -- Convertit une adresse IP (IPv4) en adresse IP numérique
openlog -- Ouvre la connexion à l'historique système
pfsockopen -- Ouvre une 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

Précédent | Sommaire | Suivant
ncurses_wvline | Niveau supérieur | checkdnsrr


checkdnsrr

(PHP 3, PHP 4, PHP 5)

checkdnsrr -- Résolution DNS d'une adresse IP

Description

int checkdnsrr ( string host [, string type] )

checkdnsrr() recherche l'enregistrement DNS de type type correspondant à l'hôte host. Retourne TRUE si un enregistrement a été trouvé, et FALSE en cas d'erreur ou d'échec.

type peut être l'une des valeurs suivantes : PTR, CNAME, AAAA, A6, SRV, NAPTR ou ANY. La valeur par défaut est MX.

host peut être soit une adresse IP au format numérique, soit un nom d'hôte.

Note : Le type AAAA a été ajouté en PHP 5.0.0.

Note : Cette fonction n'est pas disponible sur les machines Windows. Pour la remplacer, essayez la classe PEAR : Net_DNS.

Voir aussi
dns_get_record(),
getmxrr(),
gethostbyaddr(),
gethostbyname(),
gethostbynamel() et
la page de manuel named(8).

Précédent | Sommaire | Suivant
Réseau | Niveau supérieur | closelog


closelog

(PHP 3, PHP 4, PHP 5)

closelog -- Ferme la connexion à l'historique système

Description

bool closelog ( void )

closelog() ferme le pointeur qui sert à écrire dans l'historique système. L'utilisation de closelog() est optionnelle.

Voir aussi
define_syslog_variables(),
syslog() et
openlog().

Précédent | Sommaire | Suivant
checkdnsrr | Niveau supérieur | debugger_off


debugger_off

(PHP 3)

debugger_off -- Désactive le deboguer interne de PHP (PHP 3)

Description

int debugger_off ( void )

debugger_off() désactive le debogueur interne de PHP. Cette fonction n'est valide qu'en PHP 3.

Pour plus d'informations, voir l'annexe sur le debogueur PHP.

Précédent | Sommaire | Suivant
closelog | Niveau supérieur | debugger_on


debugger_on

(PHP 3)

debugger_on -- Active le deboguer interne de PHP (PHP 3)

Description

int debugger_on ( string address )

debugger_on() active le deboguer interne de PHP, et le connecte à l'adresse address. Cette fonction n'est valide qu'en PHP 3.

Pour plus d'informations, voir l'annexe sur le debuggeur PHP.

Précédent | Sommaire | Suivant
debugger_off | Niveau supérieur | define_syslog_variables


define_syslog_variables

(PHP 3, PHP 4, PHP 5)

define_syslog_variables -- Initialise toutes les constantes liées au syslog

Description

void define_syslog_variables ( void )

define_syslog_variables() initialise toutes les constantes utilisées par les fonctions de syslog.

Voir aussi
openlog(),
syslog() et
closelog().

Précédent | Sommaire | Suivant
debugger_on | Niveau supérieur | dns_check_record


dns_check_record

(PHP 5)

dns_check_record -- Synonyme de checkdnsrr()

Description

bool dns_check_record ( string host [, string type] )

dns_check_record() vérifie les enregistrements DNS correspondants à l'hôte internet host, donnés sous forme d'adresse IP ou de nom Internet.

Précédent | Sommaire | Suivant
define_syslog_variables | Niveau supérieur | dns_get_mx


dns_get_mx

(PHP 5)

dns_get_mx -- Synonyme de getmxrr()

Description

bool dns_get_mx ( string hostname, array &mxhosts [, array &weight] )

dns_get_mx() lit le champ MX de l'hôte internet hostname.

Précédent | Sommaire | Suivant
dns_check_record | Niveau supérieur | dns_get_record


dns_get_record

(PHP 5)

dns_get_record -- Lit les données DNS associées à un hôte

Description

array dns_get_record ( string hostname [, int type [, array &authns, array &addtl]] )

Note : dns_get_record n'est pas implémentée sur les plates-formes Windows ni sur les systèmes *BSD (actuellement). Utilisez la classe PEAR Net_DNS.

dns_get_record retourne un tableau associatif, contenant au minimum les index suivants :

Tableau 1. 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ère 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.

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.

Par défaut, dns_get_record() va rechercher toutes les ressources associées à hostname. Pour limiter la taille de la requête, le paramètre optionnel type peut prendre l'une des valeurs constantes suivantes : DNS_A, DNS_CNAME, DNS_HINFO, DNS_MX, DNS_NS, DNS_PTR, DNS_SOA, DNS_TXT, DNS_AAAA, DNS_SRV, DNS_NAPTR, DNS_A6, DNS_ALL ou DNS_ANY. Par défaut, il vaut 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.

Les paramètres optionnels authns et addtl sont passés par référence et, si fournis, ils recevront les enregistrements de ressources pour les Authoritative Name Servers, et tous les Additional Records respectivement. Voir l'exemple ci-dessous.

Tableau 2. Autres index disponibles suivant le type DNS

Type | Valeur supplémentaire
A | ip : une adresse IP v4, au format numérique.
MX | pri : priorité du serveur de mail. Les nombres faibles indiquent une priorité importante. target : FQDN du serveur de mail. Voir aussi dns_get_mx().
CNAME | target : FQDN du nom de l'espace DNS qui sert d'alias à cet enregistrement.
NS | target : FQDN du nom de serveur qui est responsable de ce nom de domaine.
PTR | target : nom de domaine vers lequel cet enregistrement pointe.
TXT | txt : chaîne de caractères arbitrairement associée à cet enregistrement.
HINFO | cpu : numéro IANA désignant le processeur de la machine référencée par cet enregistrement. os : numéro IANA désignant le système d'exploitation de la machine référencée par cet enregistrement. Voir Operating System Names pour connaître la signification de ces valeurs.
SOA | mname : FQDN de la source de cet enregistrement. rname : adresse email du contact administratif de ce domaine. serial : numéro de série du nom de domaine. refresh : intervalle de rafraîchissement (en secondes) que les serveurs de noms secondaires doivent utiliser pour mettre en cache ce nom de domaine. retry : durée (en secondes) d'attente après un rafraîchissement échoué, avant de faire une seconde tentative. expire : durée maximale (en secondes) de conservation d'une copie des données de zone sans pouvoir faire de rafraichissement. minimum-ttl : durée minimale (en secondes) pendant laquelle un client conserve des données de zone avant qu'il ne soumette une nouvelle requête. Cette configuration peut être annulée par d'autres enregistrements.
AAAA | ipv6 : adresse IPv6
A6(PHP >= 5.1.0) | masklen : longueur (en octets) à hériter depuis la cible spécifiée par chain. ipv6 : adresse pour que cet enregistrement spécifique fusionne avec chain. chain : l'enregistrement parent à fusionner avec les données ipv6.
SRV | pri : (priorité) les priorités les plus basses doivent être utilisées en premier. weight : classement pour choisir aléatoirement parmi les serveurs targets. target et port : nom d'hôte et port où le service est disponible. Pour plus d'informations, voir : RFC 2782
NAPTR | order et pref : équivalent à pri et weight ci-dessus. flags, services, regex, et replacement : paramètres tels que définis dans la RFC 2915.

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

Exemple 1. Exemple avec dns_get_record()

<?php
$result = dns_get_record("php.net");
print_r($result);
?>

L'exemple ci-dessus va afficher :

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
        )

)
*/

Comme il est très courant de rechercher l'IP d'un serveur, une fois que le champ MX a été résolu, dns_get_record() retournera aussi un tableau dans le paramètre addtl qui contiendra les enregistrements associés. authns est aussi retourné en contenant une liste des serveurs autorité.

Exemple 2. Exemple avec dns_get_record() et DNS_ANY

<?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 'Résultat = ';
print_r($result);
echo 'Authorité NS = ';
print_r($authns);
echo 'Additionnel = ';
print_r($addtl);
?>

L'exemple ci-dessus va afficher :

Résultat = 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
        )

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

)
Additionnel = 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() et dns_check_record().

Précédent | Sommaire | Suivant
dns_get_mx | Niveau supérieur | fsockopen


fsockopen

(PHP 3, PHP 4, PHP 5)

fsockopen -- Ouvre une socket de connexion Internet ou Unix

Description

resource fsockopen ( string target [, int port [, int &errno [, string &errstr [, float timeout]]]] )

Initalise une connexion par socket à la ressource spécifiée par target. PHP supporte les cibles dans les domaines Internet et Unix comme décrit dans Annexe P. Une liste des types de transports peut également être trouvée en utilisant la fonction stream_get_transports().

Note : Si vous avez besoin de définir un délai limite pour lire/écrire des données à travers cette socket, utilisez la fonction stream_set_timeout(), comme le paramètre timeout de la fonction fsockopen() uniquement appliqué lors de la connexion de la socket.

Depuis PHP 4.3.0, si vous avez compilé le support OpenSSL, vous pouvez préfixer le paramètre hostname avec soit 'ssl://' soit 'tls://' pour utiliser une connexion SSL ou TLS avec le client à travers TCP/IP pour connecter l'hôte distant.

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, fsockopen() retourne FALSE, et si les options errno et errstr ont été fournies, elles contiennent désormais les raisons de l'échec. Si l'erreur retournée est 0 et que la fonction retourne FALSE, c'est une indication d'erreur. C'est probablement dû à une erreur d'initialisation de la socket. Notez que errno et errstr sont toujours passées par référence.

Suivant les environnements, le type 'domaine Unix' ou l'option timeout ne sont pas toujours disponibles.

La socket sera ouverte par défaut en mode bloquant. Vous pouvez changer de mode en utilisant : stream_set_blocking().

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

Exemple 2. Utilisation d'une connexion UDP

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

Avertissement

Les sockets UDP semblent quelques fois avoir été ouvertes sans erreur, même si l'hôte distant n'est pas joignable. L'erreur apparaît alors uniquement lorsque vous tentez de lire/écrire sur la socket. La raison de cela est qu'UDP est un protocole "connectionless", ce qui signifie que le système ne tentera pas d'établir un lien pour la 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.

Note : Le paramètre timeout a été introduit en PHP 3.0.9 et le support UDP en PHP 4.

Voir aussi pfsockopen(), socket_set_blocking(), socket_set_timeout(), fgets(), fgetss(), fwrite(), fclose(), feof() et l'extension Curl.

Précédent | Sommaire | Suivant
dns_get_record | Niveau supérieur | gethostbyaddr


gethostbyaddr

(PHP 3, PHP 4, PHP 5)

gethostbyaddr -- Retourne le nom d'hôte correspondant à une IP

Description

string gethostbyaddr ( string ip_address )

gethostbyaddr() retourne le nom d'hôte correspondant à l'IP ip_address. Si une erreur survient, retourne ip_address.

Exemple 1. Exemple avec gethostbyaddr()

<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);

echo $hostname;
?>

Voir aussi

gethostbyname()
gethostbynamel()

Précédent | Sommaire | Suivant
fsockopen | Niveau supérieur | gethostbyname


gethostbyname

(PHP 3, PHP 4, PHP 5)

gethostbyname -- Retourne l'adresse IP correspondant à un hôte

Description

string gethostbyname ( string hostname )

gethostbyname() retourne l'adresse IP correspondant à l'hôte hostname ou une chaîne correspondant à hostname en cas d'erreur.

Exemple 1. Exemple avec gethostbyname()

<?php
$ip = gethostbyname('www.example.com');

echo $ip;
?>

Voir aussi

gethostbyaddr()
gethostbynamel()

Précédent | Sommaire | Suivant
gethostbyaddr | Niveau supérieur | gethostbynamel


gethostbynamel

(PHP 3, PHP 4, PHP 5)

gethostbynamel -- Retourne la liste d'IP correspondante à un hôte

Description

array gethostbynamel ( string hostname )

gethostbynamel() retourne la liste d'IP correspondant à l'hôte hostname. Retourne FALSE si hostname ne peut être résolu.

Exemple 1. Exemple avec gethostbynamel()

<?php
$hotes = gethostbynamel('www.yahoo.com');
print_r($hotes);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => 216.109.125.67
    [1] => 64.58.76.228
    [2] => 216.109.125.65
    [3] => 216.109.125.70
    [4] => 64.58.76.226
    [5] => 64.58.76.230
    [6] => 64.58.76.222
    [7] => 216.109.125.66
)

Voir aussi

gethostbyname()
gethostbyaddr()
checkdnsrr()
getmxrr()
the named(8) manual page

Précédent | Sommaire | Suivant
gethostbyname | Niveau supérieur | getmxrr


getmxrr

(PHP 3, PHP 4, PHP 5)

getmxrr -- Retourne les enregistrements MX d'un hôte

Description

bool getmxrr ( string hostname, array &mxhosts [, array &weight] )

getmxrr() effectue une recherche DNS pour obtenir les enregistrements MX de l'hôte hostname. Retourne TRUE si des enregistrements sont trouvés, et FALSE si une erreur est rencontrée, ou si la recherche échoue.

La liste des enregistrements MX est placée dans le tableau mxhosts. Si le tableau weight est fourni, il sera rempli par les informations de poids.

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 : Cette fonction n'est pas disponible sur les machines Windows. Pour la remplacer, essayez la classe PEAR : Net_DNS.

Voir aussi
checkdnsrr(),
dns_get_record(),
gethostbyname(),
gethostbynamel(),
gethostbyaddr() et
la page 8 du manuel.

Précédent | Sommaire | Suivant
gethostbynamel | Niveau supérieur | getprotobyname


getprotobyname

(PHP 4, PHP 5)

getprotobyname -- Retourne le numéro de protocole associé à un nom de protocole

Description

int getprotobyname ( string name )

getprotobyname() retourne le numéro de protocole associé avec le nom de protocole name, comme dans /etc/protocols.

Exemple 1. Exemple avec getprotobyname()

<?php
$protocol = 'tcp';
$get_prot = getprotobyname($protocol);
if ($get_prot == -1) {
    // if nothing found, returns -1
    echo 'Protocole invalide';
} else {
    echo 'Protocole #' . $get_prot;
}
?>

Voir aussi getprotobynumber().

Précédent | Sommaire | Suivant
getmxrr | Niveau supérieur | getprotobynumber


getprotobynumber

(PHP 4, PHP 5)

getprotobynumber -- Retourne le nom de protocole associé à un numéro de protocole

Description

string getprotobynumber ( int number )

getprotobynumber() retourne le nom de protocole associé avec le numéro de protocole name, comme dans /etc/protocols.

Voir aussi getprotobyname().

Précédent | Sommaire | Suivant
getprotobyname | Niveau supérieur | getservbyname


getservbyname

(PHP 4, PHP 5)

getservbyname -- Retourne le numéro de port associé à un service Internet et un protocole

Description

int getservbyname ( string service, string protocol )

getservbyname() retourne le numéro de port associé au service service et au protocole protocol, comme dans /etc/services. protocol vaut soit tcp, soit udp (en minuscule). Retourne FALSE si service ou protocol n'est pas trouvé.

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

Pour une liste complète des numéros de ports, voir : http://www.iana.org/assignments/port-numbers.

Voir aussi getservbyport().

Précédent | Sommaire | Suivant
getprotobynumber | Niveau supérieur | getservbyport


getservbyport

(PHP 4, PHP 5)

getservbyport -- Retourne le service Internet qui correspond au port et protocole

Description

string getservbyport ( int port, string protocol )

getservbyport() le service internet associé au port port pour le protocole protocol comme dans /etc/services. protocol vaut soit tcp, soit udp (en minuscule).

Voir aussi getservbyname().

Précédent | Sommaire | Suivant
getservbyname | Niveau supérieur | header


inet_ntop

(PHP 5 >= 5.1.0RC1)

inet_ntop -- Convertit un paquet d'adresses internet en une représentation humainement lisible

Description

string inet_ntop ( string in_addr )

inet_ntop() convertit une adresse 32bit IPv4 ou 128bit IPv6 (si PHP a été compilé avec le support IPv6) en une chaîne représentant une famille d'adresses. Retourne FALSE en cas d'échec.

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

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi
long2ip(),
inet_pton() et
ip2long().

Précédent | Sommaire | Suivant
headers_sent | Niveau supérieur | inet_pton


inet_pton

(PHP 5 >= 5.1.0RC1)

inet_pton -- Convertit une adresse IP lisible en sa représentation in_addr

Description

string inet_pton ( string address )

inet_pton() convertit une adresse IPv4 ou IPv6 (si PHP a été compilé avec le support IPv6) humainement lisible en une structure binaire approriée de famille d'adresses 32bit ou 128bit.

Exemple 1. Exemple avec inet_pton()

<?php
$in_addr = inet_pton('127.0.0.1');

$in6_addr = inet_pton('::1');

?>

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi
ip2long(),
inet_ntop() et
long2ip().

Précédent | Sommaire | Suivant
inet_ntop | Niveau supérieur | ip2long


ip2long

(PHP 4, PHP 5)

ip2long -- Convertit une chaîne contenant une adresse (IPv4) IP numérique en adresse littérale

Description

int ip2long ( string ip_address )

ip2long() génère une adresse IPv4 à partir de son équivalent numérique. Si ip_address est invalide, la fonction retournera -1. Notez que -1 n'est pas évalué à FALSE en PHP.

Note : Depuis PHP 5.0.0, ip2long() retourne FALSE si le paramètre ip_address n'est pas valide.

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 . '/, et http://' . ip2long($ip) . "/<br />\n";
echo $out;
?>

Note : Comme les entiers PHP sont signés et que beaucoup d'adresses IP peuvent être des entiers négatifs, vous devez utiliser le formateur "%u" de la fonction sprintf() ou printf() pour récupérer une représentation sous la forme d'une chaîne de caractères pour les adresses IP non signées.

Ce second exemple montre comment afficher une adresse convertie à l'aide de la fonction printf() en PHP 4 et en PHP 5 :

Exemple 2. Affichage d'adresse IP

<?php
$ip   = gethostbyname('www.example.com');
$long = ip2long($ip);

if ($long == -1 || $long === FALSE) {
    echo 'IP invalide, merci d\'essayer encore';
} else {
    echo $ip   . "\n";           // 192.0.34.166
    echo $long . "\n";           // -1073732954
    printf("%u\n", ip2long($ip)); // 3221234342
}
?>

ip2long() ne devrait pas être utilisée comme seule méthode pour valider une adresse IP. Combinez-la avec long2ip() :

Exemple 3. Validation d'adresse IP

<?php
// s'assure que les IPs sont valides. Convertit également une IP incomplète
// en un format valide comme expliqué plus haut.
$ip = long2ip(ip2long("127.0.0.1")); // "127.0.0.1"
$ip = long2ip(ip2long("10.0.0")); // "10.0.0.0"
$ip = long2ip(ip2long("10.0.256")); // "10.0.1.0"
?>

ip2long() fonctionne également avec des adresses IP incomplètes. Lisez http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm pour plus d'informations.

Note : ip2long() devrait retourner FALSE pour l'adresse IP 255.255.255.255 en PHP 5 <= 5.0.2. Ce comportement a été modifié en PHP 5.0.3 où il retournait -1 (comme en PHP 4).

Voir aussi long2ip() et sprintf().

Précédent | Sommaire | Suivant
inet_pton | Niveau supérieur | long2ip


long2ip

(PHP 4, PHP 5)

long2ip -- Convertit une adresse IP (IPv4) en adresse IP numérique

Description

string long2ip ( int proper_address )

long2ip() génère une adresse IP (format aaa.bbb.ccc.ddd) à partir de sa représentation littérale.

Voir aussi ip2long().

Précédent | Sommaire | Suivant
ip2long | Niveau supérieur | openlog


openlog

(PHP 3, PHP 4, PHP 5)

openlog -- Ouvre la connexion à l'historique système

Description

bool openlog ( string ident, int option, int facility )

openlog() ouvre la connexion à l'historique système. La chaîne ident sera ajoutée à chaque message. Les valeurs de option et facility sont données ci-dessous. 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. L'utilisation de openlog() est optionnelle. Cette fonction sera automatiquement appelée par la fonction syslog() si nécessaire, auquel cas ident vaudra par défaut FALSE.

Tableau 1. Options 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.

Tableau 2. Paramètre facility de 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 | UUCP subsystem

Note : LOG_USER est le seul type valide sous les environnements Windows.

Voir aussi
define_syslog_variables(),
syslog() et
closelog().

Précédent | Sommaire | Suivant
long2ip | Niveau supérieur | pfsockopen


pfsockopen

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

pfsockopen -- Ouvre une socket de connexion Internet ou Unix persistante

Description

resource pfsockopen ( string hostname [, int port [, int &errno [, string &errstr [, float timeout]]]] )

pfsockopen() se comporte exactement comme fsockopen() mais la connexion ouverte le reste, même après la fin du script. C'est la version persistante de fsockopen().

Précédent | Sommaire | Suivant
openlog | Niveau supérieur | setcookie


socket_get_status

(PHP 4, PHP 5)

socket_get_status -- Alias de stream_get_meta_data()

Description

Cette fonction est un alias de : stream_get_meta_data().

Précédent | Sommaire | Suivant
setrawcookie | Niveau supérieur | socket_set_blocking


socket_set_blocking

(PHP 4, PHP 5)

socket_set_blocking -- Alias de stream_set_blocking()

Description

Cette fonction est un alias de : stream_set_blocking().

Précédent | Sommaire | Suivant
socket_get_status | Niveau supérieur | socket_set_timeout


socket_set_timeout

(PHP 4, PHP 5)

socket_set_timeout -- Alias de stream_set_timeout()

Description

Cette fonction est un alias de : stream_set_timeout().

Précédent | Sommaire | Suivant
socket_set_blocking | Niveau supérieur | syslog


syslog

(PHP 3, PHP 4, PHP 5)

syslog -- Génère un message dans l'historique système

Description

bool syslog ( int priority, string message )

syslog() génère un message qui sera inscrit dans l'historique par le système. priority est une combinaison des valeurs d'accès et de niveau, qui seront décrites dans la prochaine section. Le dernier argument est le message à envoyer. Attention : les caractères %m seront remplacés par l'erreur (sous forme de chaîne), présente dans errno.

Tableau 1. 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ébogage

Exemple 1. Utilisation de syslog()

<?php
define_syslog_variables();
// 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, "Client non autorisé: $access {$_SERVER['REMOTE_ADDR']} ({$_SERVER['HTTP_USER_AGENT']})");
}

closelog();
?>
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.

Avec Windows NT, l'historique est pris en charge par Event Log.

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
define_syslog_variables(),
openlog() et
closelog().

Précédent | Sommaire | Suivant
socket_set_timeout | Niveau supérieur | Fonctions Newt


NIS

Manuel PHP
Précédent Suivant

CLXXXVI. NIS

Introduction

NIS (feu Yellow Pages / Pages jaunes) permet la gestion par le réseau de fichiers d'administration importants (tel un fichier de mot de passe). Pour plus d'informations, reportez-vous au manuel NIS, ou à Introduction to YP/NISIntroduction to YP/NIS (en anglais). Il existe un livre en anglais Managing NFS and NIS" par Hal Stern.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Pré-requis

Aucun pré-requis pour pouvoir accéder à ces fonctionnalités, en dehors des fonctions standards Unix qui sont toujours disponibles (soit libc, soit libnsl : le script de configuration détectera celle que vous utilisez).

Installation

Pour ajouter ces fonctionnalités, vous devez compiler PHP avec l'option --enable-yp.

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.

YPERR_ACCESS (integer)

violation d'accès (ajouté récemment et uniquement disponible depuis PECL CVS actuellement)

YPERR_BADARGS (entier)

Les arguments de la fonction sont incorrects.

YPERR_BADDB (entier)

La base de données YP est incorrecte.

YPERR_BUSY (entier)

La base de données est occupée.

YPERR_DOMAIN (entier)

Impossible de se connecter au serveur sur ce domaine.

YPERR_KEY (entier)

Clé introuvable dans cette carte.

YPERR_MAP (entier)

Carte introuvable sur ce domaine.

YPERR_NODOM (entier)

Le nom du domaine local n'est pas défini.

YPERR_NOMORE (entier)

Plus d'enregistrements dans la base de données.

YPERR_PMAP (entier)

Communication avec portmapper impossible.

YPERR_RESRC (entier)

Échec dans l'allocation de la ressource.

YPERR_RPC (entier)

Échec RPC - le domaine n'a pu être contacté

YPERR_YPBIND (entier)

Communication impossible avec ypbind

YPERR_YPERR (entier)

Erreur yp interne ou du client.

YPERR_YPSERV (entier)

Communication impossible avec ypserv.

YPERR_VERS (entier)

Version yp incorrecte.

Table des matières
yp_all -- Traverse la carte et applique une fonction sur chaque entrée
yp_cat -- Retourne une tableau contenant la carte entière
yp_err_string -- Retourne la chaîne correspondant à l'erreur donnée
yp_errno -- Retourne le code d'erreur de la dernière opération NIS
yp_first -- Retourne la première paire clé/valeur d'une carte donnée
yp_get_default_domain -- Retourne le domaine NIS par défaut
yp_master -- Retourne le nom de la machine maître pour une carte
yp_match -- Retourne la ligne associée
yp_next -- Retourne la paire clé/valeur suivante d'une carte donnée
yp_order -- Retourne le numéro d'ordre d'une carte

Précédent | Sommaire | Suivant
yaz_wait | Niveau supérieur | yp_all


yp_all

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

yp_all -- Traverse la carte et applique une fonction sur chaque entrée

Description

void yp_all ( string domain, string map, string callback )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

callback

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
NIS | Niveau supérieur | yp_cat


yp_cat

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

yp_cat -- Retourne une tableau contenant la carte entière

Description

array yp_cat ( string domain, string map )

Retourne une tableau contenant toutes les entrées de la carte.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

Valeurs de retour

Retourne toutes les entrées de la carte sous forme de tableau associatif dont les clés et les valeurs sont respectivement les clés et les entrées de la carte.

Précédent | Sommaire | Suivant
yp_all | Niveau supérieur | yp_err_string


yp_err_string

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

yp_err_string -- Retourne la chaîne correspondant à l'erreur donnée

Description

string yp_err_string ( int errorcode )

Retourne la chaîne d'erreur associée au code erreur errorcode. Très pratique pour savoir exactement ce qui n'a pas fonctionné.

Liste de paramètres

errorcode

Le code erreur.

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères.

Exemples

Exemple 1. Exemple avec yp_err_string()

<?php
echo "Erreur : " . yp_err_string(yp_errno());
?>

Voir aussi

yp_errno()

Précédent | Sommaire | Suivant
yp_cat | Niveau supérieur | yp_errno


yp_errno

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

yp_errno -- Retourne le code d'erreur de la dernière opération NIS

Description

int yp_errno ( void )

Retourne le code d'erreur de la dernière opération NIS.

Valeurs de retour

Retourne une des constantes YPERR_XXX.

Voir aussi

yp_err_string()

Précédent | Sommaire | Suivant
yp_err_string | Niveau supérieur | yp_first


yp_first

(PHP 3 >= 3.0.7, PHP 4, PHP 5 <= 5.0.4)

yp_first -- Retourne la première paire clé/valeur d'une carte donnée

Description

array yp_first ( string domain, string map )

Retourne la première paire clé/valeur de la carte map du domaine domain.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

Valeurs de retour

Retourne le première paire clé/valeur d'une carte donnée, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec yp_first()

<?php
$entry = yp_first($domain, "passwd.byname");

$key = key($entry);
$value = $entry[$key];

echo "La première entrée de cette carte est " . $key . " et sa valeur est " . $value;
?>

Voir aussi

yp_next()
yp_get_default_domain()

Précédent | Sommaire | Suivant
yp_errno | Niveau supérieur | yp_get_default_domain


yp_get_default_domain

(PHP 3 >= 3.0.7, PHP 4, PHP 5 <= 5.0.4)

yp_get_default_domain -- Retourne le domaine NIS par défaut

Description

string yp_get_default_domain ( void )

Retourne le nom de domaine NIS par défaut. Ce nom de domaine peut être utilisé pour les futurs appels NIS.

Un domaine NIS peut être décrit comme un regroupement de cartes NIS. Tous les hôtes qui ont besoin d'informations s'attachent à un domaine. Référez-vous aux documents cités en début de document pour plus de détails.

Valeurs de retour

Retourne le domaine par défaut du noeud ou FALSE si une erreur survient. Peut être utilisé en tant que domaine pour les prochains appels NIS.

Exemples

Exemple 1. Exemple avec le domaine par défaut

<?php
$domain = yp_get_default_domain();
echo "Le domaine par défaut est : " . $domain;
?>

Précédent | Sommaire | Suivant
yp_first | Niveau supérieur | yp_master


yp_master

(PHP 3 >= 3.0.7, PHP 4, PHP 5 <= 5.0.4)

yp_master -- Retourne le nom de la machine maître pour une carte

Description

string yp_master ( string domain, string map )

Retourne le nom de la machine maître d'une carte.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

Valeurs de retour

Exemples

Exemple 1. Exemple pour un maître NIS

<?php
$number = yp_master($domain, $mapname);
echo 'Le maître pour cette carte est : ' . $master;
?>

Voir aussi

yp_get_default_domain()

Précédent | Sommaire | Suivant
yp_get_default_domain | Niveau supérieur | yp_match


yp_match

(PHP 3 >= 3.0.7, PHP 4, PHP 5 <= 5.0.4)

yp_match -- Retourne la ligne associée

Description

string yp_match ( string domain, string map, string key )

Retourne la valeur associée à la clé key pour la carte map.

Liste de paramètres

domain

Le nom du domaine NIS.

map

La carte NIS.

key

Cette clé doit être exacte.

Valeurs de retour

Retourne la valeur, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec yp_match()

<?php
$entry = yp_match($domain, "passwd.byname", "joe");
echo "La valeur trouvée est : " . $entry;
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

joe:##joe:11111:100:Joe User:/home/j/joe:/usr/local/bin/bash

Voir aussi

yp_get_default_domain()

Précédent | Sommaire | Suivant
yp_master | Niveau supérieur | yp_next


yp_next

(PHP 3 >= 3.0.7, PHP 4, PHP 5 <= 5.0.4)

yp_next -- Retourne la paire clé/valeur suivante d'une carte donnée

Description

array yp_next ( string domain, string map, string key )

Retourne la prochaine paire clé/valeur de la carte map après la clé key spécifiée.

Liste de paramètres

domain

map

key

Valeurs de retour

Retourne la prochaine paire clé/valeur en tant que tableau, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec yp_next()

<?php
$entry = yp_next($domain, "passwd.byname", "joe");

if (!$entry) {
    echo "Plus d'autres entrées.\n";
    echo "<!--" . yp_errno() . ": " . yp_err_string() . "-->";
}

$key = key($entry);

echo "L'entrée suivante après \"joe\" a la clé " . $key
      . " et la valeur " . $entry[$key];
?>

Voir aussi

yp_first()
yp_get_default_domain()

Précédent | Sommaire | Suivant
yp_match | Niveau supérieur | yp_order


yp_order

(PHP 3 >= 3.0.7, PHP 4, PHP 5 <= 5.0.4)

yp_order -- Retourne le numéro d'ordre d'une carte

Description

int yp_order ( string domain, string map )

Retourne le numéro d'ordre d'une carte.

Liste de paramètres

domain

map

Valeurs de retour

Retourne le numéro d'ordre pour la carte, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec yp_order()

<?php
$number = yp_order($domain, $mapname);
echo 'Le numéro d\'ordre de cette carte est : ' . $number;
?>

Voir aussi

yp_get_default_domain()

Précédent | Sommaire | Suivant
yp_next | Niveau supérieur | Fonctions ZIP


Lotus Notes

Manuel PHP
Précédent Suivant

LXXVII. Lotus Notes

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

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. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/notes.

Avertissement

Cette extension est actuellement non supportée, nous cherchons un mainteneur.

Table des matières
notes_body -- Ouvre le message msg_number dans la boîte aux lettres et le serveur précisés
notes_copy_db -- Copie une base de données Lotus Notes
notes_create_db -- Crée une base Lotus Notes
notes_create_note -- Crée une note à partir du formulaire form_name
notes_drop_db -- Supprime une base Lotus Notes
notes_find_note -- Retourne un identifiant de note, dans le serveur database_name
notes_header_info -- Ouvre le message msg_number dans la boîte aux lettres et le serveur spécifiés
notes_list_msgs -- Retourne les notes rangées dans database_name
notes_mark_read -- Marque la note note_id comme lue par l'utilisateur user_name
notes_mark_unread -- Marque la note note_id comme non lue pour l'utilisateur user_name
notes_nav_create -- Crée un nom de navigateur dans database_name
notes_search -- Cherche les notes par mots-clés dans database_name
notes_unread -- Retourne l'identifiant de la note non lue pour l'utilisateur user_name
notes_version -- Lit la version de Lotus Notes

Précédent | Sommaire | Suivant
libxml_use_internal_errors | Niveau supérieur | notes_body


notes_body

(PHP 4 >= 4.0.5, PECL)

notes_body -- Ouvre le message msg_number dans la boîte aux lettres et le serveur précisés

Description

array notes_body ( string server, string mailbox, int msg_number )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
Lotus Notes | Niveau supérieur | notes_copy_db


notes_copy_db

(PHP 4 >= 4.0.5, PECL)

notes_copy_db -- Copie une base de données Lotus Notes

Description

bool notes_copy_db ( string from_database_name, string to_database_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
notes_body | Niveau supérieur | notes_create_db


notes_create_db

(PHP 4 >= 4.0.5, PECL)

notes_create_db -- Crée une base Lotus Notes

Description

bool notes_create_db ( string database_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
notes_copy_db | Niveau supérieur | notes_create_note


notes_create_note

(PHP 4 >= 4.0.5, PECL)

notes_create_note -- Crée une note à partir du formulaire form_name

Description

bool notes_create_note ( string database_name, string form_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
notes_create_db | Niveau supérieur | notes_drop_db


notes_drop_db

(PHP 4 >= 4.0.5, PECL)

notes_drop_db -- Supprime une base Lotus Notes

Description

bool notes_drop_db ( string database_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
notes_create_note | Niveau supérieur | notes_find_note


notes_find_note

(PHP 4 >= 4.0.5, PECL)

notes_find_note -- Retourne un identifiant de note, dans le serveur database_name

Description

int notes_find_note ( string database_name, string name [, string type] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
notes_drop_db | Niveau supérieur | notes_header_info


notes_header_info

(PHP 4 >= 4.0.5, PECL)

notes_header_info -- Ouvre le message msg_number dans la boîte aux lettres et le serveur spécifiés

Description

object notes_header_info ( string server, string mailbox, int msg_number )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
notes_find_note | Niveau supérieur | notes_list_msgs


notes_list_msgs

(PHP 4 >= 4.0.5, PECL)

notes_list_msgs -- Retourne les notes rangées dans database_name

Description

bool notes_list_msgs ( string db )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
notes_header_info | Niveau supérieur | notes_mark_read


notes_mark_read

(PHP 4 >= 4.0.5, PECL)

notes_mark_read -- Marque la note note_id comme lue par l'utilisateur user_name

Description

bool notes_mark_read ( string database_name, string user_name, string note_id )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
notes_list_msgs | Niveau supérieur | notes_mark_unread


notes_mark_unread

(PHP 4 >= 4.0.5, PECL)

notes_mark_unread -- Marque la note note_id comme non lue pour l'utilisateur user_name

Description

bool notes_mark_unread ( string database_name, string user_name, string note_id )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
notes_mark_read | Niveau supérieur | notes_nav_create


notes_nav_create

(PHP 4 >= 4.0.5, PECL)

notes_nav_create -- Crée un nom de navigateur dans database_name

Description

bool notes_nav_create ( string database_name, string name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
notes_mark_unread | Niveau supérieur | notes_search


notes_search

(PHP 4 >= 4.0.5, PECL)

notes_search -- Cherche les notes par mots-clés dans database_name

Description

array notes_search ( string database_name, string keywords )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
notes_nav_create | Niveau supérieur | notes_unread


notes_unread

(PHP 4 >= 4.0.5, PECL)

notes_unread -- Retourne l'identifiant de la note non lue pour l'utilisateur user_name

Description

array notes_unread ( string database_name, string user_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
notes_search | Niveau supérieur | notes_version


notes_version

(PHP 4 >= 4.0.5, PECL)

notes_version -- Lit la version de Lotus Notes

Description

float notes_version ( string database_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
notes_unread | Niveau supérieur | Fonctions LZF


Netscape Server API

Manuel PHP
Précédent Suivant

CIV. Netscape Server API

Introduction

Ces fonctions ne sont disponibles que lorsque vous utilisez PHP comme module NSAPI avec les serveurs Netscape/iPlanet/Sun.

Installation

Pour l'installation de PHP sur les serveurs Netscape/iPlanet/Sun voyez la section NSAPI (UNIX, Windows) dans le chapitre d'installation.

Configuration à l'exécution

Le comportement du module PHP NSAPI est affecté par le fichier de configuration php.ini. Les configurations du fichier php.ini peuvent être remplacées par d'autres paramètres de la fonction php4_execute dans obj.conf

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
nsapi.read_timeout | 60 | PHP_INI_ALL | Disponible depuis PHP 4.3.3.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

nsapi.read_timeout entier

Configure la durée d'attente des données envoyées en méthode POST par le client.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Voir aussi

NSAPI implémente un sous-ensemble des fonctions du module Apache, pour un maximum de compatibilité.

Tableau 2. Fonctions Apache implémentées par NSAPI

Fonction Apache (uniquement un alias) | Fonction NSAPI | Description
apache_request_headers() | nsapi_request_headers() | Lit tous les en-têtes de requête HTTP
apache_response_headers() | nsapi_response_headers() | Lit tous les en-têtes de réponse HTTP
getallheaders() | nsapi_request_headers() | Lit tous les en-têtes de requête HTTP
virtual() | nsapi_virtual() | Fait une sous-requête NSAPI

Table des matières
nsapi_request_headers -- Lit tous les en-têtes de requête HTTP sur un serveur Netscape
nsapi_response_headers -- Lit tous les en-têtes de réponse HTTP sur Netscape serveur
nsapi_virtual -- Effectue une sous-requête NSAPI

Précédent | Sommaire | Suivant
newt_win_ternary | Niveau supérieur | nsapi_request_headers


nsapi_request_headers

(PHP 4 >= 4.3.3, PHP 5)

nsapi_request_headers -- Lit tous les en-têtes de requête HTTP sur un serveur Netscape

Description

array nsapi_request_headers ( void )

nsapi_request_headers() retourne un tableau associatif avec tous les en-têtes HTTP de la requête courante. C'est uniquement disponible si PHP fonctionne en tant que module NSAPI.

Note : Avant PHP 4.3.3, getallheaders() n'était disponible que pour les serveurs Apaches. Depuis PHP 4.3.3, getallheaders() est un alias de la fonction nsapi_request_headers() si vous utilisez ce module.

Note : Vous pouvez aussi obtenir une valeur des variables CGI communes en lisant dans la variable $_SERVER, qui fonctionne si vous utilisez PHP en tant que module NSAPI ou non.

Valeurs de retour

Retourne un tableau associatif contenant tous les en-têtes HTTP.

Exemples

Exemple 1. Exemple avec nsapi_request_headers()

<?php
$headers = nsapi_request_headers();

foreach ($headers as $header => $value) {
  echo "$header: $value <br />\n";
}
?>

Précédent | Sommaire | Suivant
Netscape Server API | Niveau supérieur | nsapi_response_headers


nsapi_response_headers

(PHP 4 >= 4.3.3, PHP 5)

nsapi_response_headers -- Lit tous les en-têtes de réponse HTTP sur Netscape serveur

Description

array nsapi_response_headers ( void )

nsapi_response_headers() lit tous les en-têtes de réponse HTTP sur Netscape serveur.

Valeurs de retour

Retourne un tableau associatif contenant tous les en-têtes de réponse NSAPI.

Voir aussi

nsapi_request_headers()
headers_sent()

Précédent | Sommaire | Suivant
nsapi_request_headers | Niveau supérieur | nsapi_virtual


nsapi_virtual

(PHP 4 >= 4.3.3, PHP 5)

nsapi_virtual -- Effectue une sous-requête NSAPI

Description

bool nsapi_virtual ( string uri )

virtual() est une fonction spécifique NSAPI, qui est l'équivalent de <!--#include virtual...--> en SSI (fichiers .shtml). Elle effectue une sous-requête NSAPI. C'est pratique pour inclure des scripts CGI ou .shtml ou d'autres choses que vous voulez faire analyser par le serveur web.

Pour exécuter une sous-requête, tous les buffers doivent être vidés vers le navigateur, ainsi que les en-têtes.

Vous ne pouvez pas faire de requêtes récursives avec cette fonction, vers un autre script PHP. Si vous voulez inclure des scripts PHP utilisez la fonction include() ou require().

Note : Cette fonction dépend d'une fonctionnalité non documentée de Netscape/iPlanet/Sun. Utilisez phpinfo() pour vérifier si elle est disponible. En environnement Unix, cela devrait toujours fonctionner, sous Windows, cela dépend du nom du fichier ns-httpdXX.dll.

Lisez la note à propos des sous-requêtes dans la section NSAPI (UNIX, Windows) si vous avez ce problème.

Liste de paramètres

uri

L'URI du script.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
nsapi_response_headers | Niveau supérieur | agrégation d'objets/Composition de fonctions


agrégation d'objets/Composition de fonctions

Manuel PHP
Précédent Suivant

CV. agrégation d'objets/Composition de fonctions

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Introduction

En programmation objet, il est courant de rencontrer la combinaison de classes simples (et de leurs instances) en une classe plus complexe. C'est une strategie habile pour mettre en place des objets complexes, et des hiérarchies d'objets. Ce système peut fonctionner comme une alternative dynamique à l'héritage multiple. Il y a deux solutions pour combiner deux classes, suivant la relation de leurs éléments constitutifs : L'Association et l'agrégation.

Une Association est une combinaison d'éléments construits indépendamment et visibles à l'extérieur. Lorsque nous associons des classes ou objets, chacun garde une référence à l'autre partie de l'association. Lorsque nous associons des classes statiquement, une classe contient une référence à une instance de l'autre classe. Par exemple :

Exemple 1. Association de classes

<?php
class DateTime {

   function DateTime() {
       // constructeur vide
   }

   function now() {
       return date("Y-m-d H:i:s");
   }
}

class Report {
   var $_dt = new DateTime();
   // autres propriétés ...

   function Report() {
       // initialisation du code ...
   }

   function generateReport() {
       $dateTime = $this->_dt->now();
       // autre code
   }

   // autres méthodes ...
}

$rep = new Report();
?>
Nous pouvons aussi associer des instances dynamiquement, en passant une référence au constructeur (ou par une autre méthode), ce qui permet de gérer dynamiquement l'association entre les objets. Nous allons modifier l'exemple ci-dessus pour illustrer ce point :

Exemple 2. Association d'objets

<?php
class DateTime {
   // identique au précédent exemple
}

class DateTimePlus {
   var $_format;

   function DateTimePlus($format="Y-m-d H:i:s") {
       $this->_format = $format;
   }

   function now() {
       return date($this->_format);
   }
}

class Report {
   var $_dt;    // Nous allons garder la référence à DateTime ici
   // autre propriété

   function Report() {
       // initialisation
   }

   function setDateTime(&$dt) {
       $this->_dt =& $dt;
   }

   function generateReport() {
       $dateTime = $this->_dt->now();
       // autre code ...
   }

   // autres méthodes ...
}

$rep = new Report();
$dt = new DateTime();
$dtp = new DateTimePlus("l, F j, Y (h:i:s a, T)");

// Génération du rapport avec une simple date
$rep->setDateTime(&$dt);
echo $rep->generateReport();

// plus loin dans le code

// generation du rapport avec une date designée
$rep->setDateTime(&$dtp);
$output = $rep->generateReport();
// sauvegarde pour affichage dans la base
// ... etc ...
?>

L'agrégation, d'un autre coté, implique l'encapsulation et le masquage des parties de la combinaison. Nous pouvons agréger des classes en utilisant une méthode statique, grâce aux sous-classes (mais PHP ne supporte pas bien les sous-classes), et, dans ce cas, la définition de la classe agrégée n'est pas accessible, sauf via les méthodes de la classe contenant. L'agrégation d'instances (agrégation d'objets) implique la création dynamique de sous-objets à l'intérieur d'un autre objet et, dans le même temps, l'extension des capacités de l'objet principal (en terme de méthodes accessibles).

L'agrégation d'objets est une méthode naturelle pour représenter des relations de type tout-partie (par exemple, une molécule est une agrégation d'atomes), ou bien peut être utilisée pour obtenir un effet équivalent à l'héritage multiple, sans avoir à lier plusieurs classes et leurs interfaces. En fait, les agrégations d'objets sont plus souples, car nous pouvons alors sélectionner les méthodes et les propriétés qui sont transmises à l'objet agrégé.

Exemples

Nous définissons trois classes, qui implémentent chacune une méthode de stockage différente :

Exemple 3. storage_classes.inc

<?php
class FileStorage {
    var $data;

    function FileStorage($data) {
        $this->data = $data;
    }
    function write($name) {
        $fp = fopen(name, "w");
        fwrite($fp, $this->data);
        fclose($data);
    }
}

class WDDXStorage {
    var $data;
    var $version = "1.0";
    var $_id; // variable "privée"

    function WDDXStorage($data) {
        $this->data = $data;
        $this->_id = $this->_genID();
    }

    function store() {
        if ($this->_id) {
            $pid = wddx_packet_start($this->_id);
            wddx_add_vars($pid, "this->data");
            $packet = wddx_packet_end($pid);
        } else {
            $packet = wddx_serialize_value($this->data);
        }
        $dbh = dba_open("varstore", "w", "gdbm");
        dba_insert(md5(uniqid("",true)), $packet, $dbh);
        dba_close($dbh);
    }

    // méthode privée
    function _genID() {
        return md5(uniqid(rand(),true));
    }
}

class DBStorage {
    var $data;
    var $dbtype = "mysql";

    function DBStorage($data) {
        $this->data = $data;
    }

    function save() {
        $dbh = mysql_connect();
        mysql_select_db("storage", $dbh);
        $serdata = serialize($this->data);
        mysql_query("insert into vars ('$serdata',now())", $dbh);
        mysql_close($dbh);
    }
}

?>

Puis, nous "instantions" quelques objets issus de ces classes, et nous réalisons des agrégations et désagrégations, tout en affichant quelques résultats :

Exemple 4. test_aggregation.php

<?php
include "storageclasses.inc";

// quelques utilitaires

function p_arr($arr) {
    foreach($arr as $k=>$v)
        $out[] = "\t$k => $v";
    return implode("\n", $out);
}

function object_info($obj) {
    $out[] = "Classe : ".get_class($obj);
    foreach(get_object_vars($obj) as $var=>$val)
        if (is_array($val))
            $out[] = "propriété : $var (array)\n".p_arr($val);
        else
            $out[] = "propriété : $var = $val";
    foreach(get_class_methods($obj) as $method)
        $out[] = "méthode : $method";
    return implode("\n", $out);
}

$data = array(M_PI, "kludge != cruft");

// créons quelques objets simples
$fs = new FileStorage($data);
$ws = new WDDXStorage($data);

// affichons des informations sur ces objets
echo "\$fs object\n";
echo object_info($fs)."\n";
echo "\n\$ws object\n";
echo object_info($ws)."\n";

// maintenant, quelques agrégations

echo "\nagrégeons \$fs avec la classe WDDXStorage\n";
aggregate($fs, "WDDXStorage");
echo "L'objet \$fs \n";
echo object_info($fs)."\n";

echo "\nagrégeons le résultat avec la classe DBStorage \n";
aggregate($fs, "DBStorage");
echo "L'objet \$fs \n";
echo object_info($fs)."\n";

echo "\nEt finalement, désagrégeons WDDXStorage\n";
deaggregate($fs, "WDDXStorage");
echo "L'objet \$fs \n";
echo object_info($fs)."\n";

?>

Etudions maintenant le résultat du script pour comprendre les effets secondaires et les limitations des agrégations d'objets en PHP. D'abord, nous avons créé $fs et $ws et ils fournissent le bon résultat (suivant la définition de leur classe). Notez que dans le but de l'agrégation d'objets, les éléments privés d'une classe ou d'un objet doivent commencer par un souligné ("_"), même s'il n'y a pas de distinction réelle entre un objet privé et un objet public.

Exemple 5. agrégation d'objets

L'objet $fs
Classe : filestorage
propriété : data (array)
     0 => 3.1415926535898
     1 => kludge != cruft
méthode : filestorage
méthode : write

L'objet $ws
Classe : wddxstorage
propriété : data (array)
     0 => 3.1415926535898
     1 => kludge != cruft
propriété : version = 1.0
propriété : _id = ID::9bb2b640764d4370eb04808af8b076a5
méthode : wddxstorage
méthode : store
méthode : _genid

Nous agrégeons alors $fs avec la classe WDDXStorage, et nous affichons les informations. Nous pouvons aussi voir que même si l'objet $fs est toujours du type FileStorage, il a maintenant la propriété $version, et la méthode store(), qui sont définies dans WDDXStorage. Une chose importante à noter est que les éléments privés n'ont pas été agrégés, même s'ils sont présents dans l'objet $ws. Un autre absent est le constructeur de WDDXStorage, qu'il n'est pas logique d'agréger.

Exemple 6. Résultat d'agrégation

agrégeons \$fs avec la classe WDDXStorage
L'objet $fs
Classe : filestorage
propriété : data (array)
     0 => 3.1415926535898
     1 => kludge != cruft
propriété : version = 1.0
méthode : filestorage
méthode : write
méthode : store

Le processus d'agrégation est cumulatif, ce qui fait que lorsque nous agrégeons $fs avec la classe DBStorage, nous générons un objet qui peut utiliser n'importe laquelle des méthodes de stockage de ces classes.

Exemple 7. Accumulation dans une agrégation

agrégeons le résultat avec la classe DBStorage
L'objet $fs
Classe : filestorage
propriété : data (array)
     0 => 3.1415926535898
     1 => kludge != cruft
propriété : version = 1.0
propriété : dbtype = mysql
méthode : filestorage
méthode : write
méthode : store
méthode : save

Finalement, de la même façon que nous avons agrégé les méthodes et propriétés dynamiquement, nous pouvons aussi les désagréger. Si nous désagrégeons la classe WDDXStorage de l'objet $fs, nous allons obtenir :

Exemple 8. Désagrégation d'objets

Et finalement, désagrégeons WDDXStorage
L'objet $fs
Classe : filestorage
propriété : data (array)
     0 => 3.1415926535898
     1 => kludge != cruft
propriété : dbtype = mysql
méthode : filestorage
méthode : write
méthode : save

Un point que nous n'avons pas mentionné ci-dessus et que l'agrégation ne va pas écraser les méthodes ou propriétés déjà existantes dans l'objet principal. Par exemple, la classe FileStorage définit une propriété $data, et la classe WDDXStorage aussi. Mais cette dernière ne sera pas impliquée dans l'agrégation.

Table des matières
aggregate_info -- Retourne un tableau associatif avec les méthodes et propriétés de chaque classe qui a été agrégée
aggregate_methods_by_list -- Agrège sélectivement les méthodes d'une classe grâce à une liste
aggregate_methods_by_regexp -- Agrège sélectivement les méthodes d'une classe grâce à une expression rationnelle
aggregate_methods -- Agrège dynamiquement les méthodes d'une classe à un objet
aggregate_properties_by_list -- Agrège sélectivement les propriétés d'une classe grâce à une liste
aggregate_properties_by_regexp -- Agrège sélectivement les propriétés d'une classe grâce à une expression rationnelle
aggregate_properties -- Agrège dynamiquement les propriétés d'une classe à un objet
aggregate -- Agrège dynamiquement des classes et objets
aggregation_info -- Alias de aggregate_info()
deaggregate -- Desagrège un objet

Précédent | Sommaire | Suivant
nsapi_virtual | Niveau supérieur | aggregate_info


aggregate_info

(no version information, might be only in CVS)

aggregate_info -- Retourne un tableau associatif avec les méthodes et propriétés de chaque classe qui a été agrégée

Description

array aggregate_info ( object object )

aggregate_info() retourne un tableau associatif avec les méthodes et propriétés de chaque classe qui a été agrégée pour former l'objet object. La clé du tableau principal est le nom de la classe agrégée.

Pour un exemple, voir le code ci-dessous.

Exemple 1. Exemple avec aggregate_info()

<?php

class Slicer {
    var $legume;

    function Slicer($legume) {
        $this->legume = $legume;
    }

    function slice_it($num_cuts) {
        echo "Coupe en tranches\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // coupe en tranches
        }
    }
}

class Dicer {
    var $legume;
    var $rotation_angle = 90;   // degrés

    function Dicer($legume) {
        $this->legume = $legume;
    }

    function dice_it($num_cuts) {
        echo "Couper dans une direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // coupe
        }
        $this->rotate($this->rotation_angle);
        echo "Couper dans une seconde direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // coupe encore
        }
    }

    function rotate($deg) {
        echo "Maintenant tourne {$this->legume} {$deg} degrees\n";
    }

    function _secret_super_dicing($num_cuts) {
        // tellement secret que nous ne pouvons vous montrer ;-)
    }
}

$obj = new Slicer('onion');
aggregate($obj, 'Dicer');
print_r(aggregate_info($obj));
?>

L'exemple ci-dessus va afficher :

Array
(
    [dicer] => Array
        (
            [methods] => Array
                (
                    [0] => dice_it
                    [1] => rotate
                )

            [properties] => Array
                (
                    [0] => rotation_angle
                )

        )

)
Comme vous pouvez le voir, toutes les méthodes et propriétés de la classe dicer ont été agrégées dans notre nouvel objet, à l'exception de la classe constructeur et de la méthode privée _secret_super_dicing

Voir aussi
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp() et
deaggregate().

Précédent | Sommaire | Suivant
agrégation d'objets/Composition de fonctions | Niveau supérieur | aggregate_methods_by_list


aggregate_methods_by_list

(PHP 4 >= 4.2.0)

aggregate_methods_by_list -- Agrège sélectivement les méthodes d'une classe grâce à une liste

Description

void aggregate_methods_by_list ( object object, string class_name, array methods_list [, bool exclude] )

aggregate_methods_by_list() agrège les méthodes de la classe class_name avec l'objet object, en filtrant les méthodes agrégées grâce à la liste methods_list, appliquée au nom de la méthode. Le paramètre optionnel exclude sert à décider si l'expression régulière sélectionne les méthodes (exclude vaut FALSE sa valeur par défaut), ou bien si elle sert à identifier les méthodes qui doivent être exclues (exclude vaut TRUE).

Le constructeur de classe et les méthodes dont le nom commence par un caractère souligné ("_"), qui sont considérées comme privées, sont toujours exclues.

Voir aussi
aggregate(),
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp() et
deaggregate().

Précédent | Sommaire | Suivant
aggregate_info | Niveau supérieur | aggregate_methods_by_regexp


aggregate_methods_by_regexp

(PHP 4 >= 4.2.0)

aggregate_methods_by_regexp -- Agrège sélectivement les méthodes d'une classe grâce à une expression rationnelle

Description

void aggregate_methods_by_regexp ( object object, string class_name, string regexp [, bool exclude] )

aggregate_methods_by_regexp() agrège les méthodes de la classe class_name avec l'objet object, en filtrant les méthodes agrégées grâce à l'expression rationnelle regexp, appliquée au nom de la méthode. Le paramètre optionnel exclude sert à décider si l'expression rationnelle sélectionne les méthodes (exclude vaut FALSE sa valeur par défaut), ou bien si elle sert à identifier les méthodes qui doivent être exclues (exclude vaut TRUE).

Le constructeur de classe et les méthodes dont le nom commence par un caractère souligné ("_"), qui sont considérées comme privées, sont toujours exclues.

Voir aussi
aggregate(),
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp() et
deaggregate().

Précédent | Sommaire | Suivant
aggregate_methods_by_list | Niveau supérieur | aggregate_methods


aggregate_methods

(PHP 4 >= 4.2.0)

aggregate_methods -- Agrège dynamiquement les méthodes d'une classe à un objet

Description

void aggregate_methods ( object object, string class_name )

aggregate_methods() agrège toutes les méthodes de la classe class_name avec l'objet object, sauf les méthodes dont le nom commence par un souligné ("_"), qui sont considérées comme privées, et donc ignorées.

Voir aussi
aggregate(),
aggregate_info(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp() et
deaggregate().

Précédent | Sommaire | Suivant
aggregate_methods_by_regexp | Niveau supérieur | aggregate_properties_by_list


aggregate_properties_by_list

(PHP 4 >= 4.2.0)

aggregate_properties_by_list -- Agrège sélectivement les propriétés d'une classe grâce à une liste

Description

void aggregate_properties_by_list ( object object, string class_name, array properties_list [, bool exclude] )

aggregate_properties_by_list() agrège les propriétés de la classe class_name avec l'objet object, en filtrant les propriétés agrégées grâce à la liste methods_list, appliquée au nom de la propriété. Le paramètre optionnel exclude sert à décider si l'expression régulière sélectionne les propriétés (exclude vaut FALSE sa valeur par défaut), ou bien si elle sert à identifier les propriétés qui doivent être exclues (exclude vaut TRUE).

Les propriétés dont le nom commence par un caractère souligné ("_"), qui sont considérées comme privées, sont toujours exclues.

Voir aussi
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_regexp(),
aggregate_info() et
deaggregate().

Précédent | Sommaire | Suivant
aggregate_methods | Niveau supérieur | aggregate_properties_by_regexp


aggregate_properties_by_regexp

(PHP 4 >= 4.2.0)

aggregate_properties_by_regexp -- Agrège sélectivement les propriétés d'une classe grâce à une expression rationnelle

Description

void aggregate_properties_by_regexp ( object object, string class_name, string regexp [, bool exclude] )

aggregate_properties_by_regexp() agrège les propriétés de la classe class_name avec l'objet object, en filtrant les propriétés agrégées grâce à l'expression rationnelle regexp, appliquée au nom de la propriété. Le paramètre optionnel exclude sert à décider si l'expression rationnelle sélectionne les propriétés (exclude vaut FALSE sa valeur par défaut), ou bien si elle sert à identifier les propriétés qui doivent être exclues (exclude vaut TRUE).

Les propriétés dont le nom commence par un caractère souligné ("_"), qui sont considérées comme privées, sont toujours exclues.

Voir aussi
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_info() et
deaggregate().

Précédent | Sommaire | Suivant
aggregate_properties_by_list | Niveau supérieur | aggregate_properties


aggregate_properties

(PHP 4 >= 4.2.0)

aggregate_properties -- Agrège dynamiquement les propriétés d'une classe à un objet

Description

void aggregate_properties ( object object, string class_name )

aggregate_properties() agrège toutes les propriétés de la classe class_name avec l'objet object, sauf les propriétés dont le nom commence par un souligné ("_"), qui sont considérées comme privées, et donc ignorées.

Voir aussi
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
aggregate_info() et
deaggregate().

Précédent | Sommaire | Suivant
aggregate_properties_by_regexp | Niveau supérieur | aggregate


aggregate

(PHP 4 >= 4.2.0)

aggregate -- Agrège dynamiquement des classes et objets

Description

void aggregate ( object object, string class_name )

aggregate() agrège les méthodes et propriétés de la classe class_name dans l'objet object. Les méthodes et propriétés commençant par un souligné ("_") sont considérées comme privées et ignorées dans le processus d'agrégation. Les constructeurs sont aussi exclus de l'agrégation.

Voir aussi
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp() et
deaggregate().

Précédent | Sommaire | Suivant
aggregate_properties | Niveau supérieur | aggregation_info


aggregation_info

(PHP 4 >= 4.2.0)

aggregation_info -- Alias de aggregate_info()

Description

Cette fonction est un alias de : aggregate_info().

Précédent | Sommaire | Suivant
aggregate | Niveau supérieur | deaggregate


deaggregate

(PHP 4 >= 4.2.0)

deaggregate -- Desagrège un objet

Description

void deaggregate ( object object [, string class_name] )

deaggregate() supprime les méthodes et propriétés de la classe class_name, qui ont été agrégées dans l'objet object. Si le paramètre optionnel class_name est passé, seules les méthodes et propriétés de cette classe sont désagrégées. Sinon, toutes les méthodes et propriétés agrégées sont retirées.

Voir aussi
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp() et
aggregate_info().

Précédent | Sommaire | Suivant
aggregation_info | Niveau supérieur | Overload


Fonctions Oracle

Manuel PHP
Précédent Suivant

CVII. Fonctions Oracle

Introduction

Ces fonctions vous permettront d'accéder aux serveurs Oracle10, Oracle9, Ocracle 8 et Oracle7 en utilisant l'interface Oracle Call-Interface (OCI). Elle supporte le liage de variables PHP avec des marqueurs Oracle, a un support complet des LOB, FILE et ROWID, et vous permet d'utiliser des variables définies fournies par l'utilisateur.

Pré-requis

Vous avez besoin des bibliothèques Oracles pour utiliser cette extension. Les utilisateur Windows doivent les bibliothèques de version 10 ou supérieure pour se servir de la bibliothèque php_oci8.dll.

La meilleure façon d'installer tous les fichiers nécessaires est d'utiliser le client Oracle Instant, qui est disponible depuis : http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html. Pour fonctionner avec OCI8, le module OCI8 "basic" du client Oracle Instant est suffisant. Le client Instant n'a pas besoin que les variables d'environnement ORACLE_SID ou ORACLE_HOME soient définies.Par contre, vous devez toujours définir les variables LD_LIBRARY_PATH et NLS_LANG.

Avant d'utiliser cette extension, assurez-vous que vous avez bien paramétré vos variables d'environnement Oracle, ainsi que votre démon utilisateur. Ces variables doivent être définies avant de démarrer votre serveur web. Les variables dont vous pouvez avoir besoin sont :

  • ORACLE_HOME

  • ORACLE_SID

  • LD_PRELOAD

  • LD_LIBRARY_PATH

  • NLS_LANG

  • ORA_NLS33

  • NLS_LANG

Pour les variables d'environnement Oracle moins fréquemment utilisées comme TNS_ADMIN, TWO_TASK, ORA_TZFILE ainsi que les diverses configurations globales Oracle comme les variables ORA_NLS33, ORA_NLS10 et NLS_*, référez-vous à la documentation Oracle.

Après avoir configuré ces variables pour votre utilisateur "serveur web", assurez-vous aussi d'ajouter cet utilisateur (nobody, www) au groupe Oracle.

Si votre serveur web ne démarre pas ou plante au démarrage avec Oracle : Vérifiez que Apache a bien été compilé avec la bibliothèque pthread :

Exemple 1. Configuration Apache avec 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 libpthread n'est pas listée, vous devez réinstaller Apache :

Exemple 2. Reinstaller Apache avec pthread

# cd /usr/src/apache_1.3.xx
# make clean
# LIBS=-lpthread ./config.status
# make
# make install

Notez bien que sur certains systèmes comme UnixWare il faut utiliser libthread au lieu de libpthread. PHP et Apache doivent alors être configurés avec EXTRA_LIBS=-lthread.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
oci8.privileged_connect | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.max_persistent | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.persistent_timeout | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.ping_interval | "60" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.statement_cache_size | "20" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.default_prefetch | "10" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.old_oci_close_semantics | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.

Voici un éclaircissement sur l'utilisation des directives de configuration.

oci8.privileged_connect boolean

Cette option active les connexions privilégiées en utilisant les crédances externes (OCI_SYSOPER, OCI_SYSDBA).

oci8.max_persistent int

Le nombre maximal de connexions persistantes OCI8 par processus. Le fait de définir cette option à -1 signifie qu'il n'y a aucune limite.

oci8.persistent_timeout int

Le délai maximal (en secondes) q'un processs donné est autorisé à maintenir une connexion persistante. Le fait de définir cette option à -1 signifie que les connexions persistantes seront toujours maintenues.

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 pingugées à chaque réutilisation. Pour désactiver complètement les pings, déifnissez cette option à -1.

Note : Le fait de désactiver les pings rende 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. Consultez la documentation de la fonction oci_pconnect() pour plus d'informations.

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.

Note : Un énorme cache peut accroître les performances, mais causera un accroissement de la mémoire.

oci8.default_prefetch int

Cette option active la prérécupération des requêtes et définie le nombre de lignes par défaut à récupérer automatiquement après l'exécution de la requête.

Note : Une large prérécupération peut accroître les performances, mais causera un accroissement de la mémoire.

oci8.old_oci_close_semantics boolean

Cette option contrôle le comportement de la fonction oci_close(). Activer cette option signifie que oci_close() ne fera rien du tout ; la connexion ne sera pas fermée tant que la fin du script ne sera pas atteinte. Ceci est uniquement pour assurer une compatibilité ascendante. Si vous pensez que vous devez activer cette option, vous êtes vivement encouragé à effacer les appels à la fonction oci_close() de votre application au lieu d'activer cette option.

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.

OCI_DEFAULT (entier)

Mode d'exécution des commandes. La commande n'est pas validée automatiquement lorsqu'on utilise ce mode.

OCI_DESCRIBE_ONLY (entier)

Mode d'exécution des commandes. Utilisez ce mode si vous ne souhaitez pas exécuter la commande, mais obtenir des descriptions.

OCI_COMMIT_ON_SUCCESS (entier)

Mode d'exécution des commandes. La commande est automatiquement validée après oci_execute().

OCI_EXACT_FETCH (entier)

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_SYSDATE (entier)

SQLT_BFILEE (entier)

Utilisé avec la fonction oci_bind_by_name() pour relier des fichiers BFILE.

SQLT_CFILEE (entier)

Utilisé avec la fonction oci_bind_by_name() pour relier des fichiers CFILE.

OCI_B_CLOB (entier)

Utilisé avec oci_bind_by_name() pour relier des CLOB.

OCI_B_BLOB (entier)

Utilisé avec oci_bind_by_name() pour relier des BLOB.

OCI_B_ROWID (entier)

Utilisé avec oci_bind_by_name() pour relier des ROWID.

OCI_B_CURSOR (entier)

Utilisé avec oci_bind_by_name() pour relier des curseurs, précédemment alloués avec oci_new_descriptor().

OCI_B_NTY (entier)

Utilisé avec oci_bind_by_name() pour relier des noms de types de données. Note : En PHP < 5.0, il était nommé OCI_B_SQLT_NTY.

OCI_B_BIN (entier)

SQLT_BFILEE (entier)

Identique à OCI_B_BFILE.

SQLT_CFILEE (entier)

Identique à OCI_B_CFILEE.

SQLT_CLOB (entier)

Identique à OCI_B_CLOB.

SQLT_BLOB (entier)

Identique à OCI_B_BLOB.

SQLT_RDD (entier)

Identique à OCI_B_ROWID

SQLT_NTY (entier)

Identique à OCI_B_NTY

SQLT_LNG (entier)

Utilisé avec oci_bind_by_name() pour lier les valeurs LONG.

SQLT_LBI (entier)

Utilisé avec oci_bind_by_name() pour lier les valeurs LONG RAW.

SQLT_BIN (entier)

Utilisé avec oci_bind_by_name() pour lier les valeurs RAW.

SQLT_NUM (entier)

Utilisé avec oci_bind_array_by_name() pour lier les tableaux de NUMBER

SQLT_INT (entier)

Utilisé avec oci_bind_array_by_name() pour lier les tableaux de INTEGER

SQLT_AFC (entier)

Utilisé avec oci_bind_array_by_name() pour lier les tableaux de CHAR

SQLT_CHR (entier)

Utilisé avec oci_bind_array_by_name() pour lier les tableaux de VARCHAR2. Utilisé également avec oci_bind_by_name().

SQLT_VCS (entier)

Utilisé avec oci_bind_array_by_name() pour lier les tableaux de VARCHAR

SQLT_AVC (entier)

Utilisé avec oci_bind_array_by_name() pour lier les tableaux de CHARZ

SQLT_STR (entier)

Utilisé avec oci_bind_array_by_name() pour lier les tableaux de STRING

SQLT_LVC (entier)

Utilisé avec oci_bind_array_by_name() pour lier les tableaux de LONG VARCHAR

SQLT_FLT (entier)

Utilisé avec oci_bind_array_by_name() pour lier les tableaux de FLOAT

SQLT_ODT (entier)

Utilisé avec oci_bind_array_by_name() pour lier les tableaux de LONG

SQLT_BDOUBLE (entier)

SQLT_BFLOAT (entier)

OCI_FETCHSTATEMENT_BY_COLUMN (entier)

Mode par défaut de oci_fetch_all().

OCI_FETCHSTATEMENT_BY_ROW (entier)

Mode alternatif pour oci_fetch_all().

OCI_ASSOC (entier)

Utilisé avec oci_fetch_all() et oci_fetch_array() pour lire un tableau associatif.

OCI_NUM (entier)

Utilisé avec oci_fetch_all() et oci_fetch_array() pour lire un tableau énuméré.

OCI_BOTH (entier)

Utilisé avec oci_fetch_all() et oci_fetch_array() pour lire un tableau associatif et énuméré.

OCI_RETURN_NULLS (entier)

Utilisé avec oci_fetch_array() pour obtenir des éléments vides, si la valeur du champ est NULL.

OCI_RETURN_LOBS (entier)

Utilisé avec oci_fetch_array() pour obtenir la valeur du LOB au lieu du pointeur.

OCI_DTYPE_FILE (entier)

Cette option indique à oci_new_descriptor() d'initialiser un nouveau pointeur FILE.

OCI_DTYPE_LOB (entier)

Cette option indique à oci_new_descriptor() d'initialiser un nouveau pointeur LOB.

OCI_DTYPE_ROWID (entier)

Cette option indique à oci_new_descriptor() d'initialiser un nouveau pointeur ROWID.

OCI_D_FILE (entier)

Identique à OCI_DTYPE_FILE.

OCI_D_LOB (entier)

Identique à OCI_DTYPE_LOB.

OCI_D_ROWID (entier)

Identique à OCI_DTYPE_ROWID.

OCI_SYSOPER (entier)

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_SYSDBA (entier)

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_LOB_BUFFER_FREE (entier)

Utilisé avec OCI-Lob->flush pour libérer les buffers utilisés.

OCI_TEMP_CLOB (entier)

Utilisé avec OCI-Lob->writeTemporary pour indiquer explicitement que un CLOB temporaire doit être créé.

OCI_TEMP_BLOB (entier)

Utilisé avec OCI-Lob->writeTemporary pour indiquer explicitement que un BLOB temporaire doit être créé.

Exemples

Exemple 3. Requête basique

<?php

$conn = oci_connect('hr', 'hr', 'orcl');
if (!$conn) {
  $e = oci_error();
  print htmlentities($e['message']);
  exit;
}

$query = 'SELECT * FROM DEPARTMENTS';

$stid = oci_parse($conn, $query);
if (!$stid) {
  $e = oci_error($conn);
  print htmlentities($e['message']);
  exit;
}

$r = oci_execute($stid, OCI_DEFAULT);
if (!$r) {
  $e = oci_error($stid);
  echo htmlentities($e['message']);
  exit;
}

print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) {
  print '<tr>';
   foreach ($row as $item) {
     print '<td>'.($item?htmlentities($item):'&nbsp;').'</td>';
   }
   print '</tr>';
}
print '</table>';

oci_close($conn);
?>

Exemple 4. Requête Insert avec des variables liées

<?php

// Avant d'exécuter, création de la table
//   CREATE TABLE MYTABLE (mid NUMBER, myd VARCHAR2(20));

$conn = oci_connect('scott', 'tiger', 'orcl');

$query = 'INSERT INTO MYTABLE VALUES(:myid, :mydata)';

$stid = oci_parse($conn, $query);

$id = 60;
$data = 'Some data';

oci_bind_by_name($stid, ':myid', $id);
oci_bind_by_name($stid, ':mydata', $data);

$r = oci_execute($stid);

if ($r)
print "Une ligne a été insérée";

oci_close($conn);

?>

Exemple 5. Insertion de donnée dans une colonne CLOB

<?php

// Avant l'exécution, création de la table
//     CREATE TABLE MYTABLE (mykey NUMBER, myclob CLOB);

$conn = oci_connect('scott', 'tiger', 'orcl');

$mykey = 12343;  // clé arbitraire pour cet 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_DEFAULT);
$clob->save("A very long string");

oci_commit($conn);

// Récupération des 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, OCI_DEFAULT);

print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_ASSOC)) {
  $result = $row['MYCLOB']->load();
  print '<tr><td>'.$result.'</td></tr>';
}
 print '</table>';

?>

Vous pouvez facilement accéder aux procédures stockées, de la même façon que vous le feriez par ligne de commande :

Exemple 6. Utilisation de procédures stockées

<?php
// par webmaster@remoterealty.com
$sth = oci_parse($dbh, "begin sp_newaddress( :address_id, '$firstname',
 '$lastname', '$company', '$address1', '$address2', '$city', '$state',
 '$postalcode', '$country', :error_code );end;" );

// Cela appelle la procédure stockée sp_newaddress, avec la variable :address_id
// pour les entrées/sorties et :error_code comme variable de sortie.
// Ensuite, vous faites les liaisons suivantes :

   oci_bind_by_name($sth, ":address_id", $addr_id, 10);
   oci_bind_by_name($sth, ":error_code", $errorcode, 10);
   oci_execute($sth);

?>

Gestion de la connexion

L'extension oci8 fournit 3 fonctions différentes pour se connecter à Oracle. Il vous appartient d'utiliser la fonction la plus appropriée pour votre application ; les informations contenues dans cette section vont vous aider à faire le bon choix.

La connexion à un serveur Oracle est une opération résonnablement couteuse en terme de temps que cela prend. La fonction oci_pconnect() utilise un cache persistent de connexion qui peut être réutilisé à travers différents scripts. Cela signifie qu'une seule connexion sera utilisée par processus PHP (ou enfant Apache).

Si votre application se connecte à Oracle en utilisant un jeu différent de crédance pour chaque utilisateur web, le cache persistent utilisé par la fonction oci_pconnect() devient moins approprié car l'augmentation du nombre concurrent d'utilisateurs va affecté 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 persistentes) ou utilisez oci_connect() à la place.

Les fonctions oci_connect() et oci_pconnect() employent un cache de connexion ; 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éparemment et est conservé entre les requêtes.

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 transactionnellement (ils sont en faite 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 transactionnellement, vous devez utiliser la fonction oci_new_connect().

oci_new_connect() crée toujours une nouvelle connexion au serveur Oracle, indépendamment de l'existante 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.

Types de données supportées par le driver

Tableau 2. 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 un descripteur natif, comme ceux créés par la fonction oci_new_descriptor().
SQLT_CFILEE | Lie un descripteur natif, comme ceux créés par la fonction oci_new_descriptor().
SQLT_CLOB | Lie un descripteut natif, comme ceux créés par la fonction oci_new_descriptor().
SQLT_BLOB | Lie un descripteur natif, comme ceux créés par la fonction oci_new_descriptor().
SQLT_RDD | Lie un descripteur natif, comme ceux créés par la fonction oci_new_descriptor().
SQLT_NUM | Convertie 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_CHR and any other type | Convertie le paramètre PHP en un type chaîne de caractères et le lie en tant que chaîne de caractères.

Tableau 3. 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
Any other type | Limite à SQLT_CHR, retourné sous la forme d'une chaîne de caractères
Table des matières
oci_bind_array_by_name -- Lie un tableau PHP à un tableau Oracle PL/SQL par son nom
oci_bind_by_name -- Associe une variable PHP à une variable SQL Oracle
oci_cancel -- Termine la lecture de ressources Oracle
oci_close -- Ferme une connexion Oracle
OCI-Collection->append -- Ajoute un élément à une collection Oracle
OCI-Collection->assign -- Assigne une valeur à une collection depuis une autre collection Oracle
OCI-Collection->assignElem -- Assigne une valeur à un élément d'une collection Oracle
OCI-Collection->free -- Libère les ressources associées avec un objet de collection
OCI-Collection->getElem -- Retourne la valeur d'un élément d'une collection Oracle
OCI-Collection->max -- Retourne le nombre maximal de valeurs d'une collection Oracle
OCI-Collection->size -- Retourne la taille d'une collection Oracle
OCI-Collection->trim -- Supprime les derniers éléments d'une collection Oracle
oci_commit -- Valide les transactions Oracle en cours
oci_connect -- Etablit une connexion avec un serveur Oracle
oci_define_by_name -- Utilise une variable PHP pour la phase de définition, dans une commande SELECT Oracle
oci_error -- Retourne la dernière erreur Oracle
oci_execute -- Exécute une commande SQL Oracle
oci_fetch_all -- Lit toutes les lignes d'un résultat Oracle
oci_fetch_array -- Lit une ligne d'un résultat Oracle sous forme de tableau
oci_fetch_assoc -- Lit une ligne d'un résultat Oracle sous forme de tableau associatif
oci_fetch_object -- Lit une ligne d'un résultat Oracle sous forme d'objet
oci_fetch_row -- Lit une ligne d'un résultat Oracle sous forme de tableau numérique
oci_fetch -- Lit la prochaine ligne dans le résultat Oracle
oci_field_is_null -- Test si la valeur d'une colonne Oracle est 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 directement le type de colonne Oracle
oci_field_type -- Retourne le type de données d'un champ Oracle
oci_free_statement -- Libère toutes les ressources réservées par un résultat Oracle
oci_internal_debug -- Active ou désactive l'affichage des données de débogage Oracle
OCI-Lob->append -- Ajoute des données à un LOB Oracle
OCI-Lob->close -- Ferme un LOB Oracle
oci_lob_copy -- opie un LOB Oracle
OCI-Lob->eof -- Test la fin du LOB Oracle
OCI-Lob->erase -- Écrase une partie d'un LOB Oracle
OCI-Lob->export -- Exporte un LOB Oracle dans un fichier
OCI-Lob->flush -- Écrit les LOB Oracle sur le disque
OCI-Lob->free -- Détruit un pointeur de LOB Oracle
OCI-Lob->getBuffering -- Retourne l'état de bufferisation LOB d'Oracle
OCI-Lob->import -- Importe un fichier dans LOB Oracle
oci_lob_is_equal -- Compare deux LOB/FILE Oracle
OCI-Lob->load -- Retourne le contenu d'un LOB
OCI-Lob->read -- Lit une partie d'un LOB Oracle
OCI-Lob->rewind -- Ramène le pointeur interne d'un LOB Oracle au début
OCI-Lob->save -- Sauvegarde des données dans un LOB Oracle
OCI-Lob->saveFile -- Alias de oci_lob_import()
OCI-Lob->seek -- Déplace le pointeur interne d'un LOB Oracle
OCI-Lob->setBuffering -- Active/désactive la bufferisation des LOB Oracle
OCI-Lob->size -- Retourne la taille d'un LOB Oracle
OCI-Lob->tell -- Retourne la position courante du pointeur de LOB
OCI-Lob->truncate -- Tronque un LOB Oracle
OCI-Lob->write -- Ecrit des données dans un LOB Oracle
OCI-Lob->writeTemporary -- Écrit un LOB Oracle temporaire
OCI-Lob->writeToFile -- Alias de oci_lob_export()
oci_new_collection -- Initialise une nouvelle collection Oracle
oci_new_connect -- Etablit une nouvelle connexion au serveur Oracle
oci_new_cursor -- Alloue un nouveau curseur Oracle
oci_new_descriptor -- Initialise un nouveau pointeur vide de LOB/FILE Oracle
oci_num_fields -- Retourne le nombre de colonnes dans un résultat Oracle
oci_num_rows -- Retourne le nombre de lignes affectées durant la dernière commande Oracle
oci_parse -- Prépare une requête SQL avec Oracle
oci_password_change -- Modifie le mot de passe d'un utilisateur Oracle
oci_pconnect -- Ouvre une connexion persistante à un serveur Oracle
oci_result -- Retourne la valeur d'une colonne dans un résultat Oracle
oci_rollback -- Annule les transactions Oracle en cours
oci_server_version -- Retourne une chaîne contenant les informations de version du serveur Oracle
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
ocibindbyname -- Alias de oci_bind_by_name()
ocicancel -- Alias de oci_cancel()
ocicloselob -- Alias de OCI-Lob->close
ocicollappend -- Alias de OCI-Collection->append
ocicollassign -- Alias de OCI-Collection->assign
ocicollassignelem -- Alias de OCI-Collection->assignElem
ocicollgetelem -- Alias de OCI-Collection->getElem
ocicollmax -- Alias de OCI-Collection->max
ocicollsize -- Alias de OCI-Collection->size
ocicolltrim -- Alias de OCI-Collection->trim
ocicolumnisnull -- Alias de oci_field_is_null()
ocicolumnname -- Alias de oci_field_name()
ocicolumnprecision -- Alias de oci_field_precision()
ocicolumnscale -- Alias de oci_field_scale()
ocicolumnsize -- Alias de oci_field_size()
ocicolumntype -- Alias de oci_field_type()
ocicolumntyperaw -- Alias de oci_field_type_raw()
ocicommit -- Alias de oci_commit()
ocidefinebyname -- Alias de oci_define_by_name()
ocierror -- Alias de oci_error()
ociexecute -- Alias de oci_execute()
ocifetch -- Alias de oci_fetch()
ocifetchinto -- Récupère la prochaine ligne dans un tablau (obsolète)
ocifetchstatement -- Alias de oci_fetch_all()
ocifreecollection -- Alias de OCI-Collection->free
ocifreecursor -- Alias de oci_free_statement()
ocifreedesc -- Alias de OCI-Lob->free
ocifreestatement -- Alias de oci_free_statement()
ociinternaldebug -- Alias de oci_internal_debug()
ociloadlob -- Alias de OCI-Lob->load
ocilogoff -- Alias de oci_close()
ocilogon -- Alias de oci_connect()
ocinewcollection -- Alias de oci_new_collection()
ocinewcursor -- Alias de oci_new_cursor()
ocinewdescriptor -- Alias de oci_new_descriptor()
ocinlogon -- Alias de oci_new_connect()
ocinumcols -- Alias de oci_num_fields()
ociparse -- Alias de oci_parse()
ociplogon -- Alias de oci_pconnect()
ociresult -- Alias de oci_result()
ocirollback -- Alias de oci_rollback()
ocirowcount -- Alias de oci_num_rows()
ocisavelob -- Alias de OCI-Lob->save
ocisavelobfile -- Alias de OCI-Lob->import
ociserverversion -- Alias de oci_server_version()
ocisetprefetch -- Alias de oci_set_prefetch()
ocistatementtype -- Alias de oci_statement_type()
ociwritelobtofile -- Alias de OCI-Lob->export
ociwritetemporarylob -- Alias de OCI-Lob->writeTemporary

Précédent | Sommaire | Suivant
overload | Niveau supérieur | oci_bind_array_by_name


oci_bind_by_name

(PHP 5)

oci_bind_by_name -- Associe une variable PHP à une variable SQL Oracle

Description

bool oci_bind_by_name ( resource statement, string ph_name, mixed &variable [, int maxlength [, int type]] )

Lie la variable PHP variable à l'emplacement Oracle ph_name, dans la commande préparée stmt. Son utilisation (comme entrée ou comme sortie) sera définie à l'exécution, et l'espace nécessaire sera alloué.

Liste de paramètres

statement

Une requête OCI.

ph_name

Le marqueur.

variable

La variable PHP.

maxlength

Fixe la taille maximum pour la liaison. Si vous affectez une longueur length de -1, oci_bind_by_name() utilisera la longueur de variable comme maximum maxlength.

type

Si vous devez lier des types abstraits de données (LOB/ROWID/BFILE), vous devrez l'allouer dans un premier temps, avec ocinewdescriptor(). La longueur length ne sert pas pour ces types et devrait être fixée à -1. Le paramètre type indique au serveur Oracle, quel type de pointeur va être utilisé. Les valeurs possibles sont :

  • SQLT_FILE - pour les BFILEs;

  • SQLT_CFILE - pour les CFILEs;

  • SQLT_CLOB - pour les CLOBs;

  • SQLT_BLOB - pour les BLOBs;

  • SQLT_RDD - pour les ROWIDs;

  • SQLT_NTY - Pour les types de données nommés;

  • SQLT_INT - pour les entiers;

  • SQLT_CHR - pour les VARCHARs;

  • SQLT_BIN - pour les colonnes RAW;

  • SQLT_LNG - pour les colonnes LONG;

  • SQLT_LBI - pour les colonnes LONG RAW;

  • SQLT_RSET - pour les curseurs, qui ont été créés auparavant avec la fonction oci_new_cursor().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec oci_bind_by_name()

<?php
/* Exemple ociBindByPos par thies@thieso.net (980221)
  Insère 3 lignes dans emp, et utilise ROWID pour mettre à jour
  les lignes, juste après l'insertion.
*/

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "
                          INSERT INTO
                                     emp (empno, ename)
                               VALUES
                                     (:empno,:ename)
                            RETURNING
                                     ROWID
                                 INTO
                                     :rid
                         ");

$data = array(
              1111 => "Larry",
              2222 => "Bill",
              3333 => "Jim"
             );

$rowid = oci_new_descriptor($conn, OCI_D_ROWID);

oci_bind_by_name($stmt, ":empno", $empno, 32);
oci_bind_by_name($stmt, ":ename", $ename, 32);
oci_bind_by_name($stmt, ":rid",   $rowid, -1, OCI_B_ROWID);

$update = oci_parse($conn, "
                            UPDATE
                                  emp
                               SET
                                  sal = :sal
                             WHERE
                                  ROWID = :rid
                           ");
oci_bind_by_name($update, ":rid", $rowid, -1, OCI_B_ROWID);
oci_bind_by_name($update, ":sal", $sal,   32);

$sal = 10000;

foreach ($data as $empno => $ename) {
    oci_execute($stmt);
    oci_execute($update);
}

$rowid->free();

oci_free_statement($update);
oci_free_statement($stmt);

$stmt = oci_parse($conn, "
                          SELECT
                                *
                            FROM
                                emp
                           WHERE
                                empno
                              IN
                                (1111,2222,3333)
                         ");
oci_execute($stmt);

while ($row = oci_fetch_assoc($stmt)) {
    var_dump($row);
}

oci_free_statement($stmt);

/* delete our "junk" from the emp table.... */
$stmt = oci_parse($conn, "
                          DELETE FROM
                                     emp
                                WHERE
                                     empno
                                   IN
                                     (1111,2222,3333)
                         ");
oci_execute($stmt);
oci_free_statement($stmt);

oci_close($conn);
?>

N'oubliez pas que cette fonction supprime les caractères d'espace terminaux. Par exemple :

Exemple 2. Exemple avec oci_bind_by_name()

<?php
$connection = oci_connect('apelsin','kanistra');
$query = "INSERT INTO test_table VALUES(:id, :text)";

$statement = oci_parse($query);
oci_bind_by_name($statement, ":id", 1);
oci_bind_by_name($statement, ":text", "trailing spaces follow     ");
oci_execute($statement);
/*
 Ce code va insérer la chaîne 'trailing spaces follow',
 sans les espaces terminaux.
*/
?>

Exemple 3. Exemple avec oci_bind_by_name()

<?php
$connection = oci_connect('apelsin','kanistra');
$query = "INSERT INTO test_table VALUES(:id, 'trailing spaces follow      ')";

$statement = oci_parse($query);
oci_bind_by_name($statement, ":id", 1);
oci_execute($statement);
/*
 Ce code va insérer la chaîne 'trailing spaces follow      ',
 avec les espaces terminaux.
*/
?>

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Avertissement

C'est une mauvaise idée que d'utiliser les magic_quotes_gpc et la fonction oci_bind_by_name() simultanément, car aucun ajout de guillemets n'est nécessaire sur les variables citées, et tout guillemet magique sera inscrit dans votre base de données car oci_bind_by_name() n'est pas capable de faire la différence entre les guillemets et ceux qui ont été ajoutés dynamiquement.

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocibindbyname(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_bind_by_name(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_bind_array_by_name | Niveau supérieur | oci_cancel


oci_cancel

(PHP 5)

oci_cancel -- Termine la lecture de ressources Oracle

Description

bool oci_cancel ( resource statement )

Invalide un curseur, libère toutes les ressources associées et annule la possibilité de lecture depuis la ressource.

Liste de paramètres

statement

Une requête OCI.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
oci_bind_by_name | Niveau supérieur | oci_close


oci_close

(PHP 5)

oci_close -- Ferme une connexion Oracle

Description

bool oci_close ( resource connection )

Ferme une connexion connection Oracle.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Depuis la version 1.1, oci_close() ferme correctement les connexion Oracle. Utilisez l'option oci8.old_oci_close_semantics pour restaurer l'ancien comportement de cette fonction.

Précédent | Sommaire | Suivant
oci_cancel | Niveau supérieur | OCI-Collection->append


OCI-Collection->append

(no version information, might be only in CVS)

OCI-Collection->append -- Ajoute un élément à une collection Oracle

Description

class OCI-Collection {

bool append ( mixed value )

}

Ajoute un élément à la fin d'une collection Oracle.

Liste de paramètres

value

La valeur à ajouter à la collectin. Peut être une chaîne de caractères ou un nombre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

OCI-Collection->assign

Précédent | Sommaire | Suivant
oci_close | Niveau supérieur | OCI-Collection->assign


OCI-Collection->assign

(no version information, might be only in CVS)

OCI-Collection->assign -- Assigne une valeur à une collection depuis une autre collection Oracle

Description

class OCI-Collection {

bool assign ( OCI-Collection from )

}

Assigne une valeur à une collection, à partir de la collection from. Les deux collections doivent avoir été créées avec oci_new_collection() avant d'utiliser cette fonction.

Liste de paramètres

from

Une instance OCI-Collection.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

OCI-Collection->append

Précédent | Sommaire | Suivant
OCI-Collection->append | Niveau supérieur | OCI-Collection->assignElem


OCI-Collection->free

(no version information, might be only in CVS)

OCI-Collection->free -- Libère les ressources associées avec un objet de collection

Description

class OCI-Collection {

bool free ( void )

}

Libère les ressources associées avec un objet de collection.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

oci_new_collection

Précédent | Sommaire | Suivant
OCI-Collection->assignElem | Niveau supérieur | OCI-Collection->getElem


OCI-Collection->max

(no version information, might be only in CVS)

OCI-Collection->max -- Retourne le nombre maximal de valeurs d'une collection Oracle

Description

class OCI-Collection {

int max ( void )

}

Retourne le nombre maximal de valeurs d'une collection Oracle.

Valeurs de retour

Retourne le nombre maximal, sous la forme d'un entier, ou FALSE si une erreur survient.

Si la valeur retournée vaut 0, alors le nombre d'éléments n'est pas limité.

Voir aussi

OCI-Collection->size

Précédent | Sommaire | Suivant
OCI-Collection->getElem | Niveau supérieur | OCI-Collection->size


OCI-Collection->size

(no version information, might be only in CVS)

OCI-Collection->size -- Retourne la taille d'une collection Oracle

Description

class OCI-Collection {

int size ( void )

}

Retourne la taille d'une collection Oracle.

Valeurs de retour

Retourne le nombre d'éléments de la collection, ou FALSE si une erreur survient.

Voir aussi

OCI-Collection->max

Précédent | Sommaire | Suivant
OCI-Collection->max | Niveau supérieur | OCI-Collection->trim


OCI-Collection->trim

(no version information, might be only in CVS)

OCI-Collection->trim -- Supprime les derniers éléments d'une collection Oracle

Description

class OCI-Collection {

bool trim ( int num )

}

Supprime les num derniers éléments d'une collection.

Liste de paramètres

num

Le nombre d'éléments à supprimer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

OCI-Collection->size

Précédent | Sommaire | Suivant
OCI-Collection->size | Niveau supérieur | oci_commit


oci_commit

(PHP 5)

oci_commit -- Valide les transactions Oracle en cours

Description

bool oci_commit ( resource connection )

Valide toutes les transactions en cours sur la connexion Oracle connection.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec oci_commit()

<?php
// Connexion au serveur Oracle
$conn = oci_connect('scott', 'tiger');

// Analyse de la requête SQL
$stmt = oci_parse($conn, "
                          INSERT INTO
                                     employees (name, surname)
                               VALUES
                                     ('Maxim', 'Maletsky')
                         ");

/* Exécution de la requête
   OCI_DEFAULT demande à oci_execute()
   de ne pas valider immédiatement le résutat */
oci_execute($stmt, OCI_DEFAULT);

/*
....
Analyse et exécution d'autres commandes ici...
....
*/

// Validation de la transaction
$committed = oci_commit($conn);

// Vérification de la validation : si une erreur est survenue, afficher
// le message d'erreur
if (!$committed) {
    $error = oci_error($conn);
    echo 'Validation échouée. Oracle dit : ' . $error['message'];
}

?>

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 ou la fonction oci_rollback() pour l'annuler.

Voir aussi

oci_rollback()
oci_execute()

Précédent | Sommaire | Suivant
OCI-Collection->trim | Niveau supérieur | oci_connect


oci_connect

(PHP 5)

oci_connect -- Etablit une connexion avec un serveur Oracle

Description

resource oci_connect ( string username, string password [, string db [, string charset [, int session_mode]]] )

Retourne une ressource de connexion Oracle, nécessaire à la plupart des appels OCI.

Liste de paramètres

username

Le nom d'utilisateur Oracle.

password

Le mot de passe de l'utilisateur.

db

Ce paramètre optionnel contient le nom de l'instance locale d'Oracle, ou le nom de l'entrée dans le fichier tnsnames.ora auquel vous voulez vous connecter.

S'il n'est pas spécifié, PHP va utiliser la variable d'environnement ORACLE_SID (Oracle instance) ou TWO_TASK (tnsnames.ora) pour déterminer la base à laquelle se connecter.

charset

Si vous utilisez un serveur Oracle version 9.2 et suivant, vous pouvez renseigner le paramètre charset, qui peut être utilisé dans la nouvelle connexion. Si vous utilisez un serveur Oracle inférieur à la version 9.2, ce paramètre sera ignoré et la variable d'environnement NLS_LANG sera utilisée à la place.

session_mode

Ce paramètre est disponible depuis la version 1.1 et accepte les valeurs suivantes : OCI_DEFAULT, OCI_SYSOPER et OCI_SYSDBA. Si OCI_SYSOPER ou OCI_SYSDBA est spécifié oci_connect() tentera d'établir une connexion privilégiée en utilisant des crédances externes. Les connexions privilégiées sont désactivées par défaut. Pour les activer, vous devez définir oci8.privileged_connect à On.

Valeurs de retour

Retourne un identifiant de connexion ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec oci_connect()

<?php
echo "<pre>";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_connect("scott", "tiger", $db);

function create_table($conn)
{
  $stmt = oci_parse($conn, "create table scott.hallo (test varchar2(64))");
  oci_execute($stmt);
  echo $conn . " created table\n\n";
}

function drop_table($conn)
{
  $stmt = oci_parse($conn, "drop table scott.hallo");
  oci_execute($stmt);
  echo $conn . " dropped table\n\n";
}

function insert_data($conn)
{
  $stmt = oci_parse($conn, "insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " inserted hallo\n\n";
}

function delete_data($conn)
{
  $stmt = oci_parse($conn, "delete from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallo\n\n";
}

function commit($conn)
{
  oci_commit($conn);
  echo $conn . " committed\n\n";
}

function rollback($conn)
{
  oci_rollback($conn);
  echo $conn . " rollback\n\n";
}

function select_data($conn)
{
  $stmt = oci_parse($conn, "select * from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (oci_fetch($stmt)) {
    echo $conn . " [" . oci_result($stmt, "TEST") . "]\n\n";
  }
  echo $conn . "----done\n\n";
}

create_table($c1);
insert_data($c1);   // Insertion d'une ligne via c1
insert_data($c2);   // Insertion d'une ligne via c2

select_data($c1);   // Résultat des insertions
select_data($c2);

rollback($c1);      // Annulation sur c1

select_data($c1);   // Les deux insertions ont été annulées
select_data($c2);

insert_data($c2);   // Insertion d'une ligne via c2
commit($c2);        // Validation via c2

select_data($c1);   // Le résultat de c2 est retourné

delete_data($c1);   // Effacement de toute la table via c1
select_data($c1);   // Aucune ligne de trouvée
select_data($c2);   // Aucune ligne de trouvée
commit($c1);        // Validation via c1

select_data($c1);   // Aucune ligne de trouvée
select_data($c2);   // Aucune ligne de trouvée

drop_table($c1);
echo "</pre>";
?>

Notes

Note : Si vous utilisez PHP avec le client Instant Oracle, vous pouvez utiliser la méthode de nommage facile de connexion tel que décrit ici : http://download-west.oracle.com/docs/cd/B12037_01/network.101/b10775/naming.htm#i498306. Basiquement, cela signifie que vous pouvez spécifier "//db_host[:port]/database_name" en tant que nom de base de données. ais, si vous voulez utiliser l'ancienne méthode de nommage, vous devez définir soit ORACLE_HOME, soit TNS_ADMIN.

Note : Le second appel ainsi que les suivants à la fonction oci_connect() avec les mêmes paramètres retournera le gestionnaire de connexion retourné lors du premier appel. Cela signifie que les requêtes envoyées sur un gestionnaire seront également envoyées aux autres gestionnaires, car c'est le même gestionnaire. Ce comportement est démontré dans l'exemple 1 ci-dessous. Si vous avez besoin de deux gestionnaires isolés transactionnellement, vous devez utiliser la fonction oci_new_connect() à la place.

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocilogon(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_connect(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

oci_pconnect()
oci_new_connect()
oci_close()

Précédent | Sommaire | Suivant
oci_commit | Niveau supérieur | oci_define_by_name


oci_define_by_name

(PHP 5)

oci_define_by_name -- Utilise une variable PHP pour la phase de définition, dans une commande SELECT Oracle

Description

bool oci_define_by_name ( resource statement, string column_name, mixed &variable [, int type] )

Définit les variables PHP pour les colonnes SQL récupérées.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

column_name

Le nom de la colonne. Doit être en majuscule.

Notez que les colonnes Oracle sont toutes en majuscules, tandis que dans les SELECT, vous pouvez aussi les écrire en minuscules. Si vous définissez une variable qui n'existe pas dans la commande SELECT, vous ne serez pas prévenu par une erreur.

variable

La variable PHP.

type

Si vous avez besoin de définir un type de données abstrait, tel (LOB/ROWID/BFILE), vous devez lui allouer la mémoire avec oci_new_descriptor(). Reportez-vous aussi à oci_bind_by_name().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec oci_define_by_name()

<?php
/* Exemple oci_define_by_name - thies at thieso dot net (980219) */

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "SELECT empno, ename FROM emp");

/* La définition doit intervenir avant oci_execute! */

oci_define_by_name($stmt, "EMPNO", $empno);
oci_define_by_name($stmt, "ENAME", $ename);

oci_execute($stmt);

while (oci_fetch($stmt)) {
    echo "empno:" . $empno . "\n";
    echo "ename:" . $ename . "\n";
}

oci_free_statement($stmt);
oci_close($conn);
?>

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocidefinebyname(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_define_by_name(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_connect | Niveau supérieur | oci_error


oci_error

(PHP 5)

oci_error -- Retourne la dernière erreur Oracle

Description

array oci_error ( [resource source] )

Retourne la dernière erreur Oracle.

Liste de paramètres

source

Pour la plupart des erreurs, le paramètre source représente une ressource de connexion. Pour les erreurs de connexion avec les fonctions oci_connect(), oci_new_connect() ou oci_pconnect(), ne passez aucun paramètre.

Valeurs de retour

Si aucune erreur n'est trouvée, oci_error() retourne FALSE. oci_error() retourne l'erreur sous la forme d'un tableau associatif. Dans ce tableau, l'élément code contient le numéro d'erreur Oracle et message contient le message d'erreur.

Historique

Version | Description
4.3 | offset et sqltext seront aussi incluses dans le tableau retourné, pour indiquer la position de l'erreur et la requête en cause.

Exemples

Exemple 1. Exemple d'affichage d'un message d'erreur Oracle après une erreur de connexion

$conn = @oci_connect("scott", "tiger", "mydb");
if (!$conn) {
  $e = oci_error();   // Pour les erreurs oci_connect, aucun paramètre n'est passé
  echo htmlentities($e['message']);
}

Exemple 2. Exemple d'affichage d'un message d'erreur Oracle après une erreur d'analyse

$stmt = @oci_parse($conn, "select ' from dual");  // Notez l'erreur de guillemet
if (!$stmt) {
  $e = oci_error($conn);  // Pour les erreurs oci_parse, on passe la ressource de connexion
  echo htmlentities($e['message']);
}

Exemple 3. Exemple d'affichage d'un message d'erreur Oracle après une erreur d'exécution

$r = oci_execute($stmt);
if (!$r) {
  $e = oci_error($stmt); // Pour les erreurs oci_execute, on passe la ressource de traitement
  echo htmlentities($e['message']);
  echo "<pre>";
  echo htmlentities($e['sqltext']);
  printf("\n%".($e['offset']+1)."s", "^");
  echo "</pre>";
}

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocierror(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_error(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_define_by_name | Niveau supérieur | oci_execute


oci_execute

(PHP 5)

oci_execute -- Exécute une commande SQL Oracle

Description

bool oci_execute ( resource statement [, int mode] )

Exécute une requête SQL statement, analysée précédemment.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

mode

Permet de spécifier le mode d'exécution (par défaut, il est à OCI_COMMIT_ON_SUCCESS).

Si vous ne voulez pas que la commande soit automatiquement validée, utilisez le mode OCI_DEFAULT.

Lors de l'utilisation du mode OCI_DEFAULT, vous créez une transaction. 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, ou la fonction oci_rollback() pour l'annuler.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociexecute(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_execute(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

oci_parse()

Précédent | Sommaire | Suivant
oci_error | Niveau supérieur | oci_fetch_all


oci_fetch_all

(PHP 5)

oci_fetch_all -- Lit toutes les lignes d'un résultat Oracle

Description

int oci_fetch_all ( resource statement, array &output [, int skip [, int maxrows [, int flags]]] )

Lit toutes les lignes d'un résultat Oracle dans un tableau.

Pour plus de détails sur le mapping des types de données effectué par le driver oci8, lisez les types de données supportés par le driver

Liste de paramètres

statement

Un identifiant de requête OCI valide.

output

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

skip

Nombre de lignes initiales à ignorer lors de la lecture du résultat. Par défaut, ce paramètre vaut 0, pour commencer la lecture à la première ligne.

maxrows

Nombre de lignes maximal à lire, à partir de la skip-ième. S'il prend la valeur de -1, cela signifie que toutes les lignes seront lues.

flags

Le paramètre flags est la combinaison des constantes suivantes :

OCI_FETCHSTATEMENT_BY_ROW
OCI_FETCHSTATEMENT_BY_COLUMN (par défaut)
OCI_NUM
OCI_ASSOC

Valeurs de retour

Retourne le nombre de lignes récupérées ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec oci_fetch_all()

<?php
/* oci_fetch_all example mbritton at verinet dot com (990624) */

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "select * from emp");

oci_execute($stmt);

$nrows = oci_fetch_all($stmt, $results);
if ($nrows > 0) {
   echo "<table border=\"1\">\n";
   echo "<tr>\n";
   foreach ($results as $key => $val) {
      echo "<th>$key</th>\n";
   }
   echo "</tr>\n";

   for ($i = 0; $i < $nrows; $i++) {
      echo "<tr>\n";
      foreach ($results as $data) {
         echo "<td>$data[$i]</td>\n";
      }
      echo "</tr>\n";
   }
   echo "</table>\n";
} else {
   echo "Pas de ligne trouvée<br />\n";
}
echo "$nrows lignes lues<br />\n";

oci_free_statement($stmt);
oci_close($conn);
?>

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocifetchstatement(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_fetch_all(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_execute | Niveau supérieur | oci_fetch_array


oci_fetch_array

(PHP 5)

oci_fetch_array -- Lit une ligne d'un résultat Oracle sous forme de tableau

Description

array oci_fetch_array ( resource statement [, int mode] )

Retourne un tableau, qui correspond à la prochaine ligne du résultat.

Pour plus de détails sur le mapping des types de données effectué par le driver oci8, lisez les types de données supportés par le driver

Il faut mentionner ici que oci_fetch_array() n'est pas significativement plus lente que oci_fetch_row(), mais bien plus pratique.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

statement

Le paramètre optionnel mode peut être la combinaison des constantes suivantes :

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. C'est le même comportement que celui de la fonction oci_fetch_assoc().
OCI_NUM - retourne un tableau indexé numériquement, C'est le même comportement que celui de la fonction oci_fetch_row().
OCI_RETURN_NULLS - Crée des éléments vides pour les valeurs NULL.
OCI_RETURN_LOBS - Retourne la valeur du LOB.

La configuration par défaut de mode est OCI_BOTH.

Valeurs de retour

Retourne un tableau avec des indices associatifs et numériques, ou FALSE s'il n'y a plus de ligne dans la requête statement.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Note : Oracle retourne tous les noms de champs en majuscules, et les noms des index du tableau résultant seront donc aussi en majuscules.

Exemples

Exemple 1. Exemple avec oci_fetch_array() avec OCI_BOTH

<?php
$connection = oci_connect("apelsin", "kanistra");

$query = "SELECT id, name FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_BOTH)) {
    echo $row[0]." and ".$row['ID']." sont identiques<br>";
    echo $row[1]." and ".$row['NAME']." sont identiques<br>";
}
?>

Exemple 2. Exemple avec oci_fetch_array() avec OCI_NUM

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row[0]."<br>";
    echo $row[1]."<br>";
    echo $row[2]->read(100)."<br>";  //Affiche les 100 premiers bytes du LOB
}
?>

Exemple 3. Exemple avec oci_fetch_array() avec OCI_ASSOC example

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_ASSOC)) {
    echo $row['ID']."<br>";
    echo $row['NAME']."<br>";
    echo $row['LOB_FIELD']."<br>";  //Affiche "Object id #1"
}
?>

Exemple 4. Exemple avec oci_fetch_array() avec OCI_RETURN_LOBS example

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, (OCI_NUM+OCI_RETURN_LOBS))) {
    echo $row[0]."<br>";
    echo $row[1]."<br>";
    echo $row['LOB_FIELD']."<br>";  //Affiche le contenu du LOB
}
?>

Voir aussi

oci_fetch_assoc()
oci_fetch_object()
oci_fetch_row()
oci_fetch_all()

Précédent | Sommaire | Suivant
oci_fetch_all | Niveau supérieur | oci_fetch_assoc


oci_fetch_assoc

(PHP 5)

oci_fetch_assoc -- Lit une ligne d'un résultat Oracle sous forme de tableau associatif

Description

array oci_fetch_assoc ( resource statement )

Retourne la prochaine ligne depuis le jeu de résultats, sous la forme d'un tableau associatif.

oci_fetch_assoc() est identique à la fonction oci_fetch_array() et le mode OCI_ASSOC.

Les prochains appels à oci_fetch_assoc() retourneront la ligne suivante, et FALSE s'il n'y a plus de ligne.

Pour plus de détails sur le mapping des types de données effectué par le driver oci8, lisez les types de données supportés par le driver

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Retourne un tableau associatif, ou FALSE s'il n'y a plus de ligne dans la requête statement.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Note : Oracle retourne tous les noms de champs en majuscules, et les noms des index du tableau résultant seront donc aussi en majuscules.

Voir aussi

oci_fetch_array()
oci_fetch_object()
oci_fetch_row()
oci_fetch_all()

Précédent | Sommaire | Suivant
oci_fetch_array | Niveau supérieur | oci_fetch_object


oci_fetch_object

(PHP 5)

oci_fetch_object -- Lit une ligne d'un résultat Oracle sous forme d'objet

Description

object oci_fetch_object ( resource statement )

Retourne la prochaine ligne depuis le jeu de résultats sous la forme d'un objet.

Les prochains appels à oci_fetch_object() retourneront la ligne suivante, et FALSE s'il n'y a plus de lignes.

Pour plus de détails sur le mapping des types de données effectué par le driver oci8, lisez les types de données supportés par le driver

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Retourne un objet, dont les attributs correspondent aux champs de la requête, ou FALSE s'il n'y a plus de ligne dans la requête statement.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Note : Oracle retourne tous les noms de champs en majuscules, et les noms des membres de l'objet résultant seront donc aussi en majuscules.

Voir aussi

oci_fetch_array()
oci_fetch_assoc()
oci_fetch_row()
oci_fetch_all()

Précédent | Sommaire | Suivant
oci_fetch_assoc | Niveau supérieur | oci_fetch_row


oci_fetch_row

(PHP 5)

oci_fetch_row -- Lit une ligne d'un résultat Oracle sous forme de tableau numérique

Description

array oci_fetch_row ( resource statement )

Retourne la prochaine ligne d'un jeu de résultats sous la forme d'un tableau numérique.

oci_fetch_row() est identique à la fonction oci_fetch_array() et le mode OCI_NUM.

Les prochains appels à oci_fetch_row() retourneront la ligne suivante, et FALSE s'il n'y a plus de lignes.

Pour plus de détails sur le mapping des types de données effectué par le driver oci8, lisez les types de données supportés par le driver

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Retourne un tableau indexé avec les informations des champs, ou FALSE s'il n'y a plus de ligne dans la requête statement.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Voir aussi

oci_fetch_array()
oci_fetch_assoc()
oci_fetch_object()
oci_fetch_all()

Précédent | Sommaire | Suivant
oci_fetch_object | Niveau supérieur | oci_fetch


oci_fetch

(PHP 5)

oci_fetch -- Lit la prochaine ligne dans le résultat Oracle

Description

bool oci_fetch ( resource statement )

Lit la ligne de résultat courante, issue de la commande statement, et la place dans le buffer interne de résultat.

Pour plus de détails sur le mapping des types de données effectué par le driver oci8, lisez les types de données supportés par le driver

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocifetch(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_fetch(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_fetch_row | Niveau supérieur | oci_field_is_null


oci_field_is_null

(PHP 5)

oci_field_is_null -- Test si la valeur d'une colonne Oracle est NULL

Description

bool oci_field_is_null ( resource statement, mixed field )

Vérifie si le champ field donné, depuis la requête statement est NULL.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être un index de champ ou le nom d'un champ (en majuscule).

Valeurs de retour

Retourne TRUE si field vaut NULL, FALSE sinon.

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnisnull(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_is_null(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_fetch | Niveau supérieur | oci_field_name


oci_field_name

(PHP 5)

oci_field_name -- Retourne le nom d'un champ Oracle

Description

string oci_field_name ( resource statement, int field )

Retourne le nom du champ field.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être un index de champ (en commençant à 1) ou un nom de champ.

Valeurs de retour

Retourne le nom, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec oci_field_name()

<?php
$conn = oci_connect("scott", "tiger");
$stmt = oci_parse($conn, "SELECT * FROM emp");
oci_execute($stmt);

echo "<table border=\"1\">";
echo "<tr>";
echo "<th>Nom</th>";
echo "<th>Type</th>";
echo "<th>Taille</th>";
echo "</tr>";

$ncols = oci_num_fields($stmt);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stmt, $i);
    $column_type  = oci_field_type($stmt, $i);
    $column_size  = oci_field_size($stmt, $i);

    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "<td>$column_size</td>";
    echo "</tr>";
}

echo "</table>\n";
oci_free_statement($stmt);
oci_close($conn);
?>

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnname(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_name(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

oci_num_fields()
oci_field_type()
oci_field_size()

Précédent | Sommaire | Suivant
oci_field_is_null | Niveau supérieur | oci_field_precision


oci_field_precision

(PHP 5)

oci_field_precision -- Lit la précision d'un champ Oracle

Description

int oci_field_precision ( resource statement, int field )

Retourne la précision du champ field.

Pour les colonnes de type FLOAT, la précision et non nulle, et l'échelle est de -127. Si la précision est 0, alors la colonne est de type NUMBER. Sinon, c'est de type NUMBER(precision, scale).

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être un index de champ (en commençant à 1) ou un nom de champ.

Valeurs de retour

Retourne la précision, sous la forme d'un entier, ou FALSE si une erreur survient.

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnprecision(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_precision(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

oci_field_scale()
oci_field_type()

Précédent | Sommaire | Suivant
oci_field_name | Niveau supérieur | oci_field_scale


oci_field_scale

(PHP 5)

oci_field_scale -- Lit l'échelle d'une colonne Oracle

Description

int oci_field_scale ( resource statement, int field )

Lit l'échelle d'une colonne Oracle.

Pour les colonnes de type FLOAT, la précision et non nulle, et l'échelle est de -127. Si la précision est 0, alors la colonne est de type NUMBER. Sinon, elle est de type NUMBER(precision, scale).

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être un index de champ (en commençant à 1) ou le nom d'un champ.

Valeurs de retour

Retourne l'échelle, sous la forme d'un entier, ou FALSE si une erreur survient.

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnscale(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_scale(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

oci_field_precision()
oci_field_type()

Précédent | Sommaire | Suivant
oci_field_precision | Niveau supérieur | oci_field_size


oci_field_size

(PHP 5)

oci_field_size -- Retourne la taille d'un champ Oracle

Description

int oci_field_size ( resource statement, mixed field )

Retourne la taille du champ field Oracle .

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être l'index du champ (l'indexation commence à 1) ou le nom du champ.

Valeurs de retour

Retourne la taille du champ field en octets, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec oci_field_size()

<?php
$conn = oci_connect("scott", "tiger");
$stmt = oci_parse($conn, "SELECT * FROM emp");
oci_execute($stmt);

echo "<table border=\"1\">";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>";

$ncols = oci_num_fields($stmt);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stmt, $i);
    $column_type  = oci_field_type($stmt, $i);
    $column_size  = oci_field_size($stmt, $i);
    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "<td>$column_size</td>";
    echo "</tr>";
}

echo "</table>";

oci_free_statement($stmt);
oci_close($conn);
?>

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumnprecision(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_precision(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

oci_num_fields()
oci_field_name()

Précédent | Sommaire | Suivant
oci_field_scale | Niveau supérieur | oci_field_type_raw


oci_field_type_raw

(PHP 5)

oci_field_type_raw -- Lit directement le type de colonne Oracle

Description

int oci_field_type_raw ( resource statement, int field )

Lit directement le type de colonne Oracle.

Cependant, si vous souhaitez avoir le type de colonne, oci_field_type() sera plus adapté.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être l'index d'un champ (en commençant à 1) ou le nom d'un champ.

Valeurs de retour

Retourne le type brut de données Oracle, pour le champ, sous la forme d'une ???, ou FALSE si une erreur survient.

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumntyperaw(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_type_raw(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_field_size | Niveau supérieur | oci_field_type


oci_field_type

(PHP 5)

oci_field_type -- Retourne le type de données d'un champ Oracle

Description

mixed oci_field_type ( resource statement, int field )

Retourne le type de données d'un champ.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

field

Peut être l'index du champ (l'indexation commence à 1) ou le nom.

Valeurs de retour

Retourne le type de données d'un champ, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Valeurs de retour

Exemple 1. Exemple avec oci_field_type()

<?php
$conn = oci_connect("scott", "tiger");
$stmt = oci_parse($conn, "SELECT * FROM emp");
oci_execute($stmt);

echo "<table border=\"1\">";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>";

$ncols = oci_num_fields($stmt);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stmt, $i);
    $column_type  = oci_field_type($stmt, $i);
    $column_size  = oci_field_size($stmt, $i);

    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "<td>$column_size</td>";
    echo "</tr>";
}

echo "</table>\n";

oci_free_statement($stmt);
oci_close($conn);
?>

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocicolumntype(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_field_type(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

oci_num_fields()
oci_field_name()
oci_field_size()

Précédent | Sommaire | Suivant
oci_field_type_raw | Niveau supérieur | oci_free_statement


oci_free_statement

(PHP 5)

oci_free_statement -- Libère toutes les ressources réservées par un résultat Oracle

Description

bool oci_free_statement ( resource statement )

Libère toutes les ressources réservées par le résultat ou curseur Oracle statement. Ce dernier a été obtenu de la fonction oci_parse(), ou directement de Oracle.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
oci_field_type | Niveau supérieur | oci_internal_debug


oci_internal_debug

(PHP 5)

oci_internal_debug -- Active ou désactive l'affichage des données de débogage Oracle

Description

void oci_internal_debug ( int onoff )

Active ou désactive l'affichage des données de débogage Oracle.

Liste de paramètres

onoff

Définissez ce paramètre à 0 pour désactiver l'affichage, ou à 1 pour l'activer.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociinternaldebug(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_internal_debug(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_free_statement | Niveau supérieur | OCI-Lob->append


OCI-Lob->append

(no version information, might be only in CVS)

OCI-Lob->append -- Ajoute des données à un LOB Oracle

Description

class OCI-Lob {

bool append ( OCI-Lob lob_from )

}

Ajoute des données à un LOB Oracle.

L'écriture dans un LOB avec OCI-Lob->append() échouera si la bufferisation a été préalablement activée. Vous devez désactiver la bufferisation avant d'ajouter des données. Vous aurez peut être à vider les buffers avec la fonction OCI-Lob->flush avant de la désactiver.

Liste de paramètres

lob_from

Le LOB copié.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

OCI-Lob->flush
OCI-Lob->setBuffering
OCI-Lob->getBuffering

Précédent | Sommaire | Suivant
oci_internal_debug | Niveau supérieur | OCI-Lob->close


OCI-Lob->close

(no version information, might be only in CVS)

OCI-Lob->close -- Ferme un LOB Oracle

Description

class OCI-Lob {

bool close ( void )

}

Ferme un LOB Oracle. Cette fonction doit être utilisée uniquement avec OCI-Lob->writeTemporary.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

OCI-Lob->writeTemporary

Précédent | Sommaire | Suivant
OCI-Lob->append | Niveau supérieur | oci_lob_copy


oci_lob_copy

(PHP 5)

oci_lob_copy -- opie un LOB Oracle

Description

bool oci_lob_copy ( OCI-Lob lob_to, OCI-Lob lob_from [, int length] )

Copie un LOB ou une partie d'un LOB vers un autre LOB.Les anciennes données du LOB de destination seront écrasées par les nouvelles.

Si vous devez copier une partie spécifique d'un LOB vers une position particulière d'un LOB, utilisez la fonction oci_lob_seek() pour déplacer le pointeur interne de LOB.

Liste de paramètres

lob_to

Le LOB de destination.

lob_from

Le LOB copié.

length

Indique la taille des données à copier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
OCI-Lob->close | Niveau supérieur | OCI-Lob->eof


OCI-Lob->eof

(no version information, might be only in CVS)

OCI-Lob->eof -- Test la fin du LOB Oracle

Description

class OCI-Lob {

bool eof ( void )

}

Vérifie si le pointeur interne d'un LOB est à la fin.

Valeurs de retour

Retourne TRUE si le pointeur interne de LOB a atteint la fin du LOB, et FALSE sinon.

Voir aussi

OCI-Lob->size

Précédent | Sommaire | Suivant
oci_lob_copy | Niveau supérieur | OCI-Lob->erase


OCI-Lob->erase

(no version information, might be only in CVS)

OCI-Lob->erase -- Écrase une partie d'un LOB Oracle

Description

class OCI-Lob {

int erase ( [int offset [, int length]] )

}

Écrase la partie du LOB Oracle commençant à l'offest 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 bien FALSE en cas d'erreur.

Voir aussi

OCI-Lob->truncate

Précédent | Sommaire | Suivant
OCI-Lob->eof | Niveau supérieur | OCI-Lob->export


OCI-Lob->export

(no version information, might be only in CVS)

OCI-Lob->export -- Exporte un LOB Oracle dans un fichier

Description

class OCI-Lob {

bool export ( string filename [, int start [, int length]] )

}

Exporte un LOB Oracle dans un fichier.

Liste de paramètres

filename

Le chemin vers le fichier.

start

Indique la position à partir de laquelle l'on doit commencer à exporter.

length

Indique la taille des données à exporter.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

OCI-Lob->import

Précédent | Sommaire | Suivant
OCI-Lob->erase | Niveau supérieur | OCI-Lob->flush


OCI-Lob->flush

(no version information, might be only in CVS)

OCI-Lob->flush -- Écrit les LOB Oracle sur le disque

Description

class OCI-Lob {

bool flush ( [int flag] )

}

Écrit les LOB Oracle sur le disque.

Liste de paramètres

flag

Par défaut, les ressources ne sont pas libérées, mais en utilisant l'option flag avec la valeur OCI_LOB_BUFFER_FREE, vous pouvez le faire explicitement. Assurez-vous de bien savoir ce que vous faites : la prochaine lecture ou écriture dans le même LOB demandera alors une requête au serveur, et la réinitialisation des ressources. Il est recommandé d'utiliser l'option OCI_LOB_BUFFER_FREE uniquement si vous n'avez plus besoin du LOB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Retourne FALSE si la bufferisation n'a pas été activée, ou si une erreur est survenue.

Voir aussi

OCI-Lob->getBuffering
OCI-Lob->setBuffering

Précédent | Sommaire | Suivant
OCI-Lob->export | Niveau supérieur | OCI-Lob->free


OCI-Lob->import

(no version information, might be only in CVS)

OCI-Lob->import -- Importe un fichier dans LOB Oracle

Description

class OCI-Lob {

bool import ( string filename )

}

Écrit les données du fichier filename dans le LOB, à partir de la position courante.

Liste de paramètres

filename

Chemin vers le fichier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

OCI-Lob->export
OCI-Lob->write

Précédent | Sommaire | Suivant
OCI-Lob->getBuffering | Niveau supérieur | oci_lob_is_equal


oci_lob_is_equal

(PHP 5)

oci_lob_is_equal -- Compare deux LOB/FILE Oracle

Description

bool oci_lob_is_equal ( OCI-Lob lob1, OCI-Lob lob2 )

Compare deux LOB/FILE Oracle.

Liste de paramètres

lob1

Un identifiant LOB.

lob2

Un identifiant LOB.

Valeurs de retour

Retourne TRUE si ces objets sont égaux, FALSE sinon.

Précédent | Sommaire | Suivant
OCI-Lob->import | Niveau supérieur | OCI-Lob->load


OCI-Lob->load

(no version information, might be only in CVS)

OCI-Lob->load -- Retourne le contenu d'un LOB

Description

class OCI-Lob {

string load ( void )

}

Lit le contenu d'un LOB Oracle. Le script peut être interrompu à cause de memory_limit, si ce dernier dépasse la limite. Dans la plupart des cas, il est recommandé d'utiliser la fonction OCI-Lob->read à la place. En cas d'erreur, OCI-Lob->load() retourne FALSE.

Valeurs de retour

Retourne le contenu de l'objet, ou FALSE si une erreur survient.

Voir aussi

OCI-Lob->read

Précédent | Sommaire | Suivant
oci_lob_is_equal | Niveau supérieur | OCI-Lob->read


OCI-Lob->read

(no version information, might be only in CVS)

OCI-Lob->read -- Lit une partie d'un LOB Oracle

Description

class OCI-Lob {

string read ( int length )

}

Lit length octets à partir de la position courante du LOB.

La lecture stoppe lorsque length ont été lus, ou que la fin du LOB a été atteinte. Le pointeur de LOB sera déplacé par cette lecture.

Liste de paramètres

length

La taille des données à lire, en octets.

Valeurs de retour

Retourne le contenu, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Voir aussi

OCI-Lob->load
OCI-Lob->write

Précédent | Sommaire | Suivant
OCI-Lob->load | Niveau supérieur | OCI-Lob->rewind


OCI-Lob->rewind

(no version information, might be only in CVS)

OCI-Lob->rewind -- Ramène le pointeur interne d'un LOB Oracle au début

Description

class OCI-Lob {

bool rewind ( void )

}

Ramène le pointeur interne d'un LOB Oracle au début.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

OCI-Lob->seek
OCI-Lob->tell

Précédent | Sommaire | Suivant
OCI-Lob->read | Niveau supérieur | OCI-Lob->save


OCI-Lob->save

(no version information, might be only in CVS)

OCI-Lob->save -- Sauvegarde des données dans un LOB Oracle

Description

class OCI-Lob {

bool save ( string data [, int offset] )

}

Sauvegarde des données dans un LOB Oracle.

Liste de paramètres

data

Les données à sauvegarder.

offset

Peut être utilisé pour indiquer la position depuis le début du LOB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

OCI-Lob->write
OCI-Lob->import

Précédent | Sommaire | Suivant
OCI-Lob->rewind | Niveau supérieur | OCI-Lob->saveFile


OCI-Lob->seek

(no version information, might be only in CVS)

OCI-Lob->seek -- Déplace le pointeur interne d'un LOB Oracle

Description

class OCI-Lob {

bool seek ( int offset [, int whence] )

}

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, FALSE en cas d'échec.

Voir aussi

OCI-Lob->rewind
OCI-Lob->tell
OCI-Lob->eof

Précédent | Sommaire | Suivant
OCI-Lob->saveFile | Niveau supérieur | OCI-Lob->setBuffering


OCI-Lob->size

(no version information, might be only in CVS)

OCI-Lob->size -- Retourne la taille d'un LOB Oracle

Description

class OCI-Lob {

int size ( void )

}

Retourne la taille d'un LOB Oracle.

Valeurs de retour

Retourne la taille du LOB, ou bien FALSE en cas d'erreur. Les objets vides ont une taille de 0.

Précédent | Sommaire | Suivant
OCI-Lob->setBuffering | Niveau supérieur | OCI-Lob->tell


OCI-Lob->tell

(no version information, might be only in CVS)

OCI-Lob->tell -- Retourne la position courante du pointeur de LOB

Description

class OCI-Lob {

int tell ( void )

}

Retourne la position courante du pointeur de LOB.

Valeurs de retour

Retourne la position courante du pointeur interne du LOB, ou bien FALSE si une erreur survient.

Voir aussi

OCI-Lob->rewind
OCI-Lob->size
OCI-Lob->eof

Précédent | Sommaire | Suivant
OCI-Lob->size | Niveau supérieur | OCI-Lob->truncate


OCI-Lob->truncate

(no version information, might be only in CVS)

OCI-Lob->truncate -- Tronque un LOB Oracle

Description

class OCI-Lob {

bool truncate ( [int length] )

}

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, FALSE en cas d'échec.

Voir aussi

OCI-Lob->erase

Précédent | Sommaire | Suivant
OCI-Lob->tell | Niveau supérieur | OCI-Lob->write


OCI-Lob->write

(no version information, might be only in CVS)

OCI-Lob->write -- Ecrit des données dans un LOB Oracle

Description

class OCI-Lob {

int write ( string data [, int length] )

}

Écrit les données de la variable data à la position courante du LOB.

Liste de paramètres

data

Les données à écrire dans le LOB.

length

Si ce paramètre est fourni, l'écriture s'arrêtera après length octets, ou à la fin de la variable data.

Valeurs de retour

Retourne le nombre d'octets écrits, ou FALSE si une erreur survient.

Voir aussi

OCI-Lob->read

Précédent | Sommaire | Suivant
OCI-Lob->truncate | Niveau supérieur | OCI-Lob->writeTemporary


oci_new_collection

(PHP 5)

oci_new_collection -- Initialise une nouvelle collection Oracle

Description

OCI-Collection oci_new_collection ( resource connection, string tdo [, string schema] )

Initialise une nouvelle collection Oracle.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonciton oci_pconnect().

tdo

Doit être un type nommé valide (en majuscule).

schema

Doit pointer sur le schéma de base de données, où le type a été créé. Le nom de l'utilisateur courant est la valeur par défaut.

Valeurs de retour

Retourne un nouvel objet OCICollection, ou FALSE si une erreur survient. error.

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinewcollection(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_new_collection(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
OCI-Lob->writeToFile | Niveau supérieur | oci_new_connect


oci_new_connect

(PHP 5)

oci_new_connect -- Etablit une nouvelle connexion au serveur Oracle

Description

resource oci_new_connect ( string username, string password [, string db [, string charset [, int session_mode]]] )

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

db

Peut contenir l'instance locale d'Oracle ou un nom disponible dans le fichier tnsnames.ora.

S'il n'est pas fourni, PHP va chercher la valeur dans les variables d'environnement ORACLE_SID et TWO_TASK pour déterminer le nom de l'instance locale d'Oracle, et la localisation du fichier tnsnames.ora.

charset

Si vous utilisez un serveur Oracle version 9.2 et suivant, vous pouvez renseigner le paramètre charset, qui peut être utilisé dans la nouvelle connexion. Si vous utilisez un serveur Oracle inférieur à la version 9.2, ce paramètre sera ignoré et la variable d'environnement NLS_LANG sera utilisée à la place.

session_mode

Ce paramètre est disponible depuis la version 1.1 et accepte les valeurs suivantes : OCI_DEFAULT, OCI_SYSOPER et OCI_SYSDBA. Si OCI_SYSOPER ou OCI_SYSDBA est spécifié, oci_new_connect() tentera d'établir une connexion privilégiée en utilisant les crédances externes. Les connexions privilégiées sont désactivées par défaut. Pour les activer, vous devez définir oci8.privileged_connect à On.

Valeurs de retour

Retourne un identifiant de connexion, ou FALSE si une erreur survient.

Exemples

Voici comment séparer des transactions.

Exemple 1. Exemple avec oci_new_connect()

<?php
echo "<html><pre>";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_new_connect("scott", "tiger", $db);

function create_table($conn)
{
  $stmt = oci_parse($conn, "create table scott.hallo (test
varchar2(64))");
  oci_execute($stmt);
  echo $conn . " created table\n\n";
}

function drop_table($conn)
{
  $stmt = oci_parse($conn, "drop table scott.hallo");
  oci_execute($stmt);
  echo $conn . " dropped table\n\n";
}

function insert_data($conn)
{
  $stmt = oci_parse($conn, "insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " inserted hallo\n\n";
}

function delete_data($conn)
{
  $stmt = oci_parse($conn, "delete from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallo\n\n";
}

function commit($conn)
{
  oci_commit($conn);
  echo $conn . " committed\n\n";
}

function rollback($conn)
{
  oci_rollback($conn);
  echo $conn . " rollback\n\n";
}

function select_data($conn)
{
  $stmt = oci_parse($conn, "select * from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . "----selecting\n\n";
  while (oci_fetch($stmt)) {
    echo $conn . " <" . oci_result($stmt, "TEST") . ">\n\n";
  }
  echo $conn . "----done\n\n";
}

create_table($c1);
insert_data($c1);

select_data($c1);
select_data($c2);

rollback($c1);

select_data($c1);
select_data($c2);

insert_data($c2);
commit($c2);

select_data($c1);

delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);

select_data($c1);
select_data($c2);

drop_table($c1);
echo "</pre></html>";
?>

Notes

Note : Si vous utilisez PHP avec le client Instant d'Oracle, vous pouvez utiliser les méthodes de nommage facilitant la connexion décrites ici : http://download-west.oracle.com/docs/cd/B12037_01/network.101/b10775/naming.htm#i498306. Basiquement, cela signifie que vous pouvez spécifier "//db_host[:port]/database_name" en tant que nom de base de données. Mais si vous voulez utiliser l'ancienne façon de nommage, vous devez définir soit ORACLE_HOME, soit TNS_ADMIN.

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinlogon(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_new_connect(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

oci_connect()
oci_pconnect()

Précédent | Sommaire | Suivant
oci_new_collection | Niveau supérieur | oci_new_cursor


oci_new_cursor

(PHP 5)

oci_new_cursor -- Alloue un nouveau curseur Oracle

Description

resource oci_new_cursor ( resource connection )

Alloue un nouveau curseur Oracle sur la connexion spécifiée.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

Valeurs de retour

Retourne un nouveau gestionnaire de connexion, ou FALSE si une erreur survient.

Exemples

Exemple 1. Utiliser un REF CURSOR issu d'une procédure enregistrée

<?php
// supposons que votre procédure stockée info.output retourne un curseur de référence dans :data

$conn = oci_connect("scott", "tiger");
$curs = oci_new_cursor($conn);
$stmt = oci_parse($conn, "begin info.output(:data); end;");

oci_bind_by_name($stmt, "data", $curs, -1, OCI_B_CURSOR);
oci_execute($stmt);
oci_execute($curs);

while ($data = oci_fetch_row($curs)) {
    var_dump($data);
}

oci_free_statement($stmt);
oci_free_statement($curs);
oci_close($conn);
?>

Exemple 2. Utiliser un REF CURSOR issu d'une commande SELECT

<?php
echo "<html><body>";
$conn = oci_connect("scott", "tiger");
$count_cursor = "CURSOR(select count(empno) num_emps from emp " .
                "where emp.deptno = dept.deptno) as EMPCNT from dept";
$stmt = oci_parse($conn, "select deptno,dname,$count_cursor");

oci_execute($stmt);
echo "<table border=\"1\">";
echo "<tr>";
echo "<th>DEPT NAME</th>";
echo "<th>DEPT #</th>";
echo "<th># EMPLOYEES</th>";
echo "</tr>";

while ($data = oci_fetch_assoc($stmt)) {
    echo "<tr>";
    $dname  = $data["DNAME"];
    $deptno = $data["DEPTNO"];
    echo "<td>$dname</td>";
    echo "<td>$deptno</td>";
    oci_execute($data["EMPCNT"]);
    while ($subdata = oci_fetch_assoc($data["EMPCNT"])) {
        $num_emps = $subdata["NUM_EMPS"];
        echo  "<td>$num_emps</td>";
    }
    echo "</tr>";
}
echo "</table>";
echo "</body></html>";
oci_free_statement($stmt);
oci_close($conn);
?>

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinewcursor(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_new_collection(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_new_connect | Niveau supérieur | oci_new_descriptor


oci_new_descriptor

(PHP 5)

oci_new_descriptor -- Initialise un nouveau pointeur vide de LOB/FILE Oracle

Description

OCI-Lob oci_new_descriptor ( resource connection [, int type] )

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 un nouveau descripteur LOB ou FILE en cas de succès, FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec oci_new_descriptor()

<?php
/* Ce script est fait pour être appelé dans un formulaire HTML
 * Il attends 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 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";
     }
     oci_free_descriptor($lob);
     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 clobs
 * en entrée (PHP 4 >= 4.0.6).
 * Exemple de signateure de procédure stockée PL/SQL :
 *
 * PROCEDURE save_data
 *   Argument Name                  Type                    In/Out Default?
 *   ------------------------------ ----------------------- ------ --------
 *   KEY                            NUMBER(38)              IN
 *   DATA                           CLOB                    IN
 *
 */

$conn = oci_connect($user, $password);
$stmt = oci_parse($conn, "begin save_data(:key, :data); end;");
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stmt, ':key', $key);
oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);
$clob->write($data);
oci_execute($stmt, OCI_DEFAULT);
oci_commit($conn);
$clob->free();
oci_free_statement($stmt);
?>

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinewdescriptor(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_new_descriptor(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_new_cursor | Niveau supérieur | oci_num_fields


oci_num_fields

(PHP 5)

oci_num_fields -- Retourne le nombre de colonnes dans un résultat Oracle

Description

int oci_num_fields ( resource statement )

Retourne le nombre de colonnes dans le résultat Oracle statement.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Retourne le nombre de colonnes, sous la forme d'un entier, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec oci_num_fields()

<?php
$conn = oci_connect("scott", "tiger");
$stmt = oci_parse($conn, "select * from emp");

oci_execute($stmt);

while (oci_fetch($stmt)) {
    echo "\n";
    $ncols = oci_num_fields($stmt);
    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_value = oci_result($stmt, $i);
        echo $column_name . ': ' . $column_value . "\n";
    }
    echo "\n";
}

oci_free_statement($stmt);
oci_close($conn);
?>

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocinumcols(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_num_fields(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_new_descriptor | Niveau supérieur | oci_num_rows


oci_num_rows

(PHP 5)

oci_num_rows -- Retourne le nombre de lignes affectées durant la dernière commande Oracle

Description

int oci_num_rows ( resource statement )

Retourne le nombre de lignes affectées durant la dernière commande Oracle.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Retourne le nombre de lignes affectées, sous la forme d'un entier, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec oci_num_rows()

<?php
$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "create table emp2 as select * from emp");
oci_execute($stmt);
echo oci_num_rows($stmt) . " lignes insérées.<br />";
oci_free_statement($stmt);

$stmt = oci_parse($conn, "delete from emp2");
oci_execute($stmt, OCI_DEFAULT);
echo oci_num_rows($stmt) . " lignes effacées.<br />";
oci_commit($conn);
oci_free_statement($stmt);

$stmt = oci_parse($conn, "drop table emp2");
oci_execute($stmt);
oci_free_statement($stmt);

oci_close($conn);
?>

Notes

Note : Cette fonction ne retourne pas le nombre de lignes sélectionnées. Pour les commandes de type SELECT, cette fonction va retourner le nombre de ligne qui ont été lues dans le buffer avec oci_fetch*().

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocirowcount(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_num_rows(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_num_fields | Niveau supérieur | oci_parse


oci_parse

(PHP 5)

oci_parse -- Prépare une requête SQL avec Oracle

Description

resource oci_parse ( resource connection, string query )

Prépare la requête query 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..

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

query

La requête SQL.

Valeurs de retour

Retourne un gestionnaire de requête en cas de succès, ou FALSE si une erreur survient.

Notes

Note : Cette fonction ne valide pas la requête query. La seule façon de savoir si la requête query est valide est de l'exécuter.

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociparse(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_parse(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_num_rows | Niveau supérieur | oci_password_change


oci_password_change

(PHP 5)

oci_password_change -- Modifie le mot de passe d'un utilisateur Oracle

Description

bool oci_password_change ( resource connection, string username, string old_password, string new_password )

resource oci_password_change ( string dbname, string username, string old_password, string new_password )

Modifie le mot de passe de l'utilisateur username.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

username

Le nom d'utilisateur Oracle.

old_password

L'ancien mot de passe.

new_password

Le nouveau mot de passe à définir.

dbname

Le nom de la base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : La seconde syntaxe de oci_password_change() est disponible depuis la version 1.1.

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocipasswordchange(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_password_change(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_parse | Niveau supérieur | oci_pconnect


oci_pconnect

(PHP 5)

oci_pconnect -- Ouvre une connexion persistante à un serveur Oracle

Description

resource oci_pconnect ( string username, string password [, string db [, string charset [, int session_mode]]] )

Ouvre une connexion persistante à un serveur Oracle et s'identifie.

Les connexions persistantes sont mises en cache et sont réutilisées entre les requêtes, réduisant ainsi la charge à chaque chargement de la page ; une application PHP typique a une seule connexion persistante à un serveur Oracle par processus enfant Apache (ou processus PHP FastCGI/CGI). Voir la section sur les connexions persistantes aux bases de données pour plus d'informations.

Liste de paramètres

username

Le nom d'utilisateur Oracle.

password

Le mot de passe de l'utilisateur.

db

Peut contenir l'instance locale d'Oracle ou un nom disponible dans le fichier tnsnames.ora.

S'il n'est pas fourni, PHP va chercher la valeur dans les variables d'environnement ORACLE_SID et TWO_TASK pour déterminer le nom de l'instance locale d'Oracle, et la localisation du fichier tnsnames.ora.

charset

Si vous utilisez un serveur Oracle version 9.2 et suivant, vous pouvez renseigner le paramètre charset, qui peut être utilisé dans la nouvelle connexion. Si vous utilisez un serveur Oracle inférieur à la version 9.2, ce paramètre sera ignoré et la variable d'environnement NLS_LANG sera utilisée à la place.

session_mode

Ce paramètre est disponible depuis la version 1.1 et accepte les valeurs suivantes : OCI_DEFAULT, OCI_SYSOPER et OCI_SYSDBA. Si OCI_SYSOPER ou OCI_SYSDBA sont spécifiés, oci_connect() tentera d'établir une connexion privilégiée en utilisant les crédances externes. Les connexions privilégiées sont désactivées par défaut. Pour les activer, vous devez définir oci8.privileged_connect à On.

Valeurs de retour

Retourne un identifiant de connexion, ou FALSE si une erreur survient.

Notes

Note : Depuis la version 1.1 de l'extension oci8, la durée de vie ainsi que le nombre maximal de connexions persistantes Oracle peuvent être affinés en définissant les valeurs de configuration suivantes : oci8.persistent_timeout, oci8.ping_interval et oci8.max_persistent.

Note : Si vous utilisez PHP avec le client Oracle Instant, vous pouvez utiliser les méthodes de nommage pour faciliter la connexion tel que décrites ici : http://download-west.oracle.com/docs/cd/B12037_01/network.101/b10775/naming.htm#i498306. Basiquement, cela signifie que vous pouvez spécifier "//db_host[:port]/database_name" en tant que nom de base de données. Mais si vous voulez utiliser l'ancienne méthode de nommage, vous devez définir soit ORACLE_HOME, soit TNS_ADMIN.

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociplogon(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_pconnect(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

oci_connect()
oci_new_connect()

Précédent | Sommaire | Suivant
oci_password_change | Niveau supérieur | oci_result


oci_result

(PHP 5)

oci_result -- Retourne la valeur d'une colonne dans un résultat Oracle

Description

mixed oci_result ( resource statement, mixed field )

Retourne les données de la colonne field dans la ligne courante du résultat statement.

Pour plus de détails sur le mapping des types de données effectué par le driver oci8, lisez les types de données supportés par le driver

Liste de paramètres

statement

field

Peut être soit le numéro de la colonne (en commençant à 1), soit le nom de la colonne (en majuscule).

Valeurs de retour

Retourne tout les types, sauf les types abstraits (ROWIDs, LOBs et FILEs). Retourne FALSE en cas d'erreur.

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociresult(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_result(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

oci_fetch_array()
oci_fetch_assoc()
oci_fetch_object()
oci_fetch_row()
oci_fetch_all()

Précédent | Sommaire | Suivant
oci_pconnect | Niveau supérieur | oci_rollback


oci_rollback

(PHP 5)

oci_rollback -- Annule les transactions Oracle en cours

Description

bool oci_rollback ( resource connection )

Annule les transactions en cours sur la connexion Oracle connection.

Liste de paramètres

connection

Un identifiant de connexion Oracle, retourné par la fonction oci_connect() ou la fonction oci_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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, ou la fonction oci_rollback() pour l'annuler.

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocirollback(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_rollback(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

oci_commit()

Précédent | Sommaire | Suivant
oci_result | Niveau supérieur | oci_server_version


oci_server_version

(PHP 5)

oci_server_version -- Retourne une chaîne contenant les informations de version du serveur Oracle

Description

string oci_server_version ( resource connection )

Retourne une chaîne contenant les informations de version du serveur Oracle, identifié par la connexion connection.

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("scott", "tiger");
echo "Version du serveur : " . oci_server_version($conn);
oci_close($conn);
?>

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ociserverversion(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_server_version(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_rollback | Niveau supérieur | oci_set_prefetch


oci_set_prefetch

(PHP 5)

oci_set_prefetch -- Indique le nombre de lignes qui doivent être lues à l'avance par Oracle

Description

bool oci_set_prefetch ( resource statement [, int rows] )

Spécifie le nombre de lignes à préchargées après un appel avec succès à la fonction oci_execute().

Liste de paramètres

statement

rows

La valeur par défaut est 1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocisetprefetch(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_set_prefetch(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Voir aussi

l'option de configuration oci8_.default_prefetch

Précédent | Sommaire | Suivant
oci_server_version | Niveau supérieur | oci_statement_type


oci_statement_type

(PHP 5)

oci_statement_type -- Retourne le type de la requête Oracle

Description

string oci_statement_type ( resource statement )

Retourne le type de la requête statement OCI fournie.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

Valeurs de retour

Retourne le type de la requête, sous la forme d'une des valeurs suivantes :

  1. SELECT

  2. UPDATE

  3. DELETE

  4. INSERT

  5. CREATE

  6. DROP

  7. ALTER

  8. BEGIN

  9. DECLARE

  10. CALL (since PHP 5.2.1 and OCI8 1.2.3)

  11. UNKNOWN

Retourne FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec oci_statement_type()

<?php
    $conn = oci_connect("scott", "tiger");
    $sql  = "delete from emp where deptno = 10";

    $stmt = oci_parse($conn, $sql);
    if (oci_statement_type($stmt) == "DELETE") {
        die("Nous n'êtes pas autorisés à effacer des lignes dans cette table<br />");
    }

    oci_close($conn);
?>

Notes

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocistatementtype(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_statement_type(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.

Précédent | Sommaire | Suivant
oci_set_prefetch | Niveau supérieur | ocibindbyname


ocibindbyname

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocibindbyname -- Alias de oci_bind_by_name()

Description

Cette fonction est un alias de : oci_bind_by_name().

Précédent | Sommaire | Suivant
oci_statement_type | Niveau supérieur | ocicancel


ocicancel

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ocicancel -- Alias de oci_cancel()

Description

Cette fonction est un alias de : oci_cancel().

Précédent | Sommaire | Suivant
ocibindbyname | Niveau supérieur | ocicloselob


ocicloselob

(no version information, might be only in CVS)

ocicloselob -- Alias de OCI-Lob->close

Description

Cette fonction est un alias de : OCI-Lob->close.

Précédent | Sommaire | Suivant
ocicancel | Niveau supérieur | ocicollappend


ocicollappend

(PHP 4 >= 4.0.6, PHP 5)

ocicollappend -- Alias de OCI-Collection->append

Description

Cette fonction est un alias de : OCI-Collection->append.

Précédent | Sommaire | Suivant
ocicloselob | Niveau supérieur | ocicollassign


ocicollassign

(PHP 4 >= 4.0.6)

ocicollassign -- Alias de OCI-Collection->assign

Description

Cette fonction est un alias de : OCI-Collection->assign.

Précédent | Sommaire | Suivant
ocicollappend | Niveau supérieur | ocicollassignelem


ocicollassignelem

(PHP 4 >= 4.0.6, PHP 5)

ocicollassignelem -- Alias de OCI-Collection->assignElem

Description

Cette fonction est un alias de : OCI-Collection->assignElem.

Précédent | Sommaire | Suivant
ocicollassign | Niveau supérieur | ocicollgetelem


ocicollgetelem

(PHP 4 >= 4.0.6, PHP 5)

ocicollgetelem -- Alias de OCI-Collection->getElem

Description

Cette fonction est un alias de : OCI-Collection->getElem.

Précédent | Sommaire | Suivant
ocicollassignelem | Niveau supérieur | ocicollmax


ocicollmax

(PHP 4 >= 4.0.6, PHP 5)

ocicollmax -- Alias de OCI-Collection->max

Description

Cette fonction est un alias de : OCI-Collection->max.

Précédent | Sommaire | Suivant
ocicollgetelem | Niveau supérieur | ocicollsize


ocicollsize

(PHP 4 >= 4.0.6, PHP 5)

ocicollsize -- Alias de OCI-Collection->size

Description

Cette fonction est un alias de : OCI-Collection->size.

Précédent | Sommaire | Suivant
ocicollmax | Niveau supérieur | ocicolltrim


ocicolltrim

(PHP 4 >= 4.0.6, PHP 5)

ocicolltrim -- Alias de OCI-Collection->trim

Description

Cette fonction est un alias de : OCI-Collection->trim.

Précédent | Sommaire | Suivant
ocicollsize | Niveau supérieur | ocicolumnisnull


ocicolumnisnull

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocicolumnisnull -- Alias de oci_field_is_null()

Description

Cette fonction est un alias de : oci_field_is_null().

Précédent | Sommaire | Suivant
ocicolltrim | Niveau supérieur | ocicolumnname


ocicolumnname

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocicolumnname -- Alias de oci_field_name()

Description

Cette fonction est un alias de : oci_field_name().

Précédent | Sommaire | Suivant
ocicolumnisnull | Niveau supérieur | ocicolumnprecision


ocicolumnprecision

(PHP 4, PHP 5)

ocicolumnprecision -- Alias de oci_field_precision()

Description

Cette fonction est un alias de : oci_field_precision().

Précédent | Sommaire | Suivant
ocicolumnname | Niveau supérieur | ocicolumnscale


ocicolumnscale

(PHP 4, PHP 5)

ocicolumnscale -- Alias de oci_field_scale()

Description

Cette fonction est un alias de : oci_field_scale().

Précédent | Sommaire | Suivant
ocicolumnprecision | Niveau supérieur | ocicolumnsize


ocicolumnsize

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocicolumnsize -- Alias de oci_field_size()

Description

Cette fonction est un alias de : oci_field_size().

Précédent | Sommaire | Suivant
ocicolumnscale | Niveau supérieur | ocicolumntype


ocicolumntype

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocicolumntype -- Alias de oci_field_type()

Description

Cette fonction est un alias de : oci_field_type().

Précédent | Sommaire | Suivant
ocicolumnsize | Niveau supérieur | ocicolumntyperaw


ocicolumntyperaw

(PHP 4, PHP 5)

ocicolumntyperaw -- Alias de oci_field_type_raw()

Description

Cette fonction est un alias de : oci_field_type_raw().

Précédent | Sommaire | Suivant
ocicolumntype | Niveau supérieur | ocicommit


ocicommit

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ocicommit -- Alias de oci_commit()

Description

Cette fonction est un alias de : oci_commit().

Précédent | Sommaire | Suivant
ocicolumntyperaw | Niveau supérieur | ocidefinebyname


ocidefinebyname

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ocidefinebyname -- Alias de oci_define_by_name()

Description

Cette fonction est un alias de : oci_define_by_name().

Précédent | Sommaire | Suivant
ocicommit | Niveau supérieur | ocierror


ocierror

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ocierror -- Alias de oci_error()

Description

Cette fonction est un alias de : oci_error().

Précédent | Sommaire | Suivant
ocidefinebyname | Niveau supérieur | ociexecute


ociexecute

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ociexecute -- Alias de oci_execute()

Description

Cette fonction est un alias de : oci_execute().

Précédent | Sommaire | Suivant
ocierror | Niveau supérieur | ocifetch


ocifetch

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocifetch -- Alias de oci_fetch()

Description

Cette fonction est un alias de : oci_fetch().

Précédent | Sommaire | Suivant
ociexecute | Niveau supérieur | ocifetchinto


ocifetchinto

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocifetchinto -- Récupère la prochaine ligne dans un tablau (obsolète)

Description

int ocifetchinto ( resource statement, array &result [, int mode] )

Cette fonction est obsolète. Alternatives recommandées :
oci_fetch_array(), oci_fetch_object(),
oci_fetch_assoc() et
oci_fetch_row().

Précédent | Sommaire | Suivant
ocifetch | Niveau supérieur | ocifetchstatement


ocifetchstatement

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ocifetchstatement -- Alias de oci_fetch_all()

Description

Cette fonction est un alias de : oci_fetch_all().

Précédent | Sommaire | Suivant
ocifetchinto | Niveau supérieur | ocifreecollection


ocifreecollection

(PHP 4 >= 4.1.0, PHP 5)

ocifreecollection -- Alias de OCI-Collection->free

Description

Cette fonction est un alias de : OCI-Collection->free.

Précédent | Sommaire | Suivant
ocifetchstatement | Niveau supérieur | ocifreecursor


ocifreecursor

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ocifreecursor -- Alias de oci_free_statement()

Description

Cette fonction est un alias de : oci_free_statement().

Précédent | Sommaire | Suivant
ocifreecollection | Niveau supérieur | ocifreedesc


ocifreedesc

(PHP 4, PHP 5)

ocifreedesc -- Alias de OCI-Lob->free

Description

Cette fonction est un alias de : OCI-Lob->free.

Précédent | Sommaire | Suivant
ocifreecursor | Niveau supérieur | ocifreestatement


ocifreestatement

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

ocifreestatement -- Alias de oci_free_statement()

Description

Cette fonction est un alias de : oci_free_statement().

Précédent | Sommaire | Suivant
ocifreedesc | Niveau supérieur | ociinternaldebug


ociinternaldebug

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ociinternaldebug -- Alias de oci_internal_debug()

Description

Cette fonction est un alias de : oci_internal_debug().

Précédent | Sommaire | Suivant
ocifreestatement | Niveau supérieur | ociloadlob


ociloadlob

(PHP 4, PHP 5)

ociloadlob -- Alias de OCI-Lob->load

Description

Cette fonction est un alias de : OCI-Lob->load.

Précédent | Sommaire | Suivant
ociinternaldebug | Niveau supérieur | ocilogoff


ocilogoff

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocilogoff -- Alias de oci_close()

Description

Cette fonction est un alias de : oci_close().

Précédent | Sommaire | Suivant
ociloadlob | Niveau supérieur | ocilogon


ocilogon

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocilogon -- Alias de oci_connect()

Description

Cette fonction est un alias de : oci_connect().

Précédent | Sommaire | Suivant
ocilogoff | Niveau supérieur | ocinewcollection


ocinewcollection

(PHP 4 >= 4.0.6, PHP 5)

ocinewcollection -- Alias de oci_new_collection()

Description

Cette fonction est un alias de : oci_new_collection().

Précédent | Sommaire | Suivant
ocilogon | Niveau supérieur | ocinewcursor


ocinewcursor

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ocinewcursor -- Alias de oci_new_cursor()

Description

Cette fonction est un alias de : oci_new_cursor().

Précédent | Sommaire | Suivant
ocinewcollection | Niveau supérieur | ocinewdescriptor


ocinewdescriptor

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ocinewdescriptor -- Alias de oci_new_descriptor()

Description

Cette fonction est un alias de : oci_new_descriptor().

Précédent | Sommaire | Suivant
ocinewcursor | Niveau supérieur | ocinlogon


ocinlogon

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ocinlogon -- Alias de oci_new_connect()

Description

Cette fonction est un alias de : oci_new_connect().

Précédent | Sommaire | Suivant
ocinewdescriptor | Niveau supérieur | ocinumcols


ocinumcols

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocinumcols -- Alias de oci_num_fields()

Description

Cette fonction est un alias de : oci_num_fields().

Précédent | Sommaire | Suivant
ocinlogon | Niveau supérieur | ociparse


ociparse

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ociparse -- Alias de oci_parse()

Description

Cette fonction est un alias de : oci_parse().

Précédent | Sommaire | Suivant
ocinumcols | Niveau supérieur | ociplogon


ociplogon

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ociplogon -- Alias de oci_pconnect()

Description

Cette fonction est un alias de : oci_pconnect().

Précédent | Sommaire | Suivant
ociparse | Niveau supérieur | ociresult


ociresult

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ociresult -- Alias de oci_result()

Description

Cette fonction est un alias de : oci_result().

Précédent | Sommaire | Suivant
ociplogon | Niveau supérieur | ocirollback


ocirollback

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ocirollback -- Alias de oci_rollback()

Description

Cette fonction est un alias de : oci_rollback().

Précédent | Sommaire | Suivant
ociresult | Niveau supérieur | ocirowcount


ocirowcount

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ocirowcount -- Alias de oci_num_rows()

Description

Cette fonction est un alias de : oci_num_rows().

Précédent | Sommaire | Suivant
ocirollback | Niveau supérieur | ocisavelob


ocisavelob

(PHP 4, PHP 5)

ocisavelob -- Alias de OCI-Lob->save

Description

Cette fonction est un alias de : OCI-Lob->save.

Précédent | Sommaire | Suivant
ocirowcount | Niveau supérieur | ocisavelobfile


ocisavelobfile

(PHP 4, PHP 5)

ocisavelobfile -- Alias de OCI-Lob->import

Description

Cette fonction est un alias de : OCI-Lob->import.

Précédent | Sommaire | Suivant
ocisavelob | Niveau supérieur | ociserverversion


ociserverversion

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ociserverversion -- Alias de oci_server_version()

Description

Cette fonction est un alias de : oci_server_version().

Précédent | Sommaire | Suivant
ocisavelobfile | Niveau supérieur | ocisetprefetch


ocisetprefetch

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

ocisetprefetch -- Alias de oci_set_prefetch()

Description

Cette fonction est un alias de : oci_set_prefetch().

Précédent | Sommaire | Suivant
ociserverversion | Niveau supérieur | ocistatementtype


ocistatementtype

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

ocistatementtype -- Alias de oci_statement_type()

Description

Cette fonction est un alias de : oci_statement_type().

Précédent | Sommaire | Suivant
ocisetprefetch | Niveau supérieur | ociwritelobtofile


ociwritelobtofile

(PHP 4, PHP 5)

ociwritelobtofile -- Alias de OCI-Lob->export

Description

Cette fonction est un alias de : OCI-Lob->export.

Précédent | Sommaire | Suivant
ocistatementtype | Niveau supérieur | ociwritetemporarylob


ociwritetemporarylob

(no version information, might be only in CVS)

ociwritetemporarylob -- Alias de OCI-Lob->writeTemporary

Description

Cette fonction est un alias de : OCI-Lob->writeTemporary.

Précédent | Sommaire | Suivant
ociwritelobtofile | Niveau supérieur | Fonctions ODBC (unifiés)


Gestion Audio OpenAL

Manuel PHP
Précédent Suivant

CXI. Gestion Audio OpenAL

Introduction

Plate-forme indépendante pour la gestion de l'audio. Requière la bilibothèque OpenAL.

Installation

Cette extension PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/openal.

La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

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(),
and Open AL(Source) - Retournée par openal_source_create().

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

ALC_FREQUENCY (entier)

Attribut de contexte

ALC_REFRESH (entier)

Attribut de contexte

ALC_SYNC (entier)

Attribut de contexte

AL_FREQUENCY (entier)

Configuration du buffer

AL_BITS (entier)

Configuration du buffer

AL_CHANNELS (entier)

Configuration du buffer

AL_SIZE (entier)

Configuration du buffer

AL_BUFFER (entier)

Configuration de la source/de l'écoute (Entier)

AL_SOURCE_RELATIVE (entier)

Configuration de la source/de l'écoute (Entier)

AL_SOURCE_STATE (entier)

Configuration de la source/de l'écoute (Entier)

AL_PITCH (entier)

Configuration de la source/de l'écoute (Nombre à virgule flottante)

AL_GAIN (entier)

Configuration de la source/de l'écoute (Nombre à virgule flottante)

AL_MIN_GAIN (entier)

Configuration de la source/de l'écoute (Nombre à virgule flottante)

AL_MAX_GAIN (entier)

Configuration de la source/de l'écoute (Nombre à virgule flottante)

AL_MAX_DISTANCE (entier)

Configuration de la source/de l'écoute (Nombre à virgule flottante)

AL_ROLLOFF_FACTOR (entier)

Configuration de la source/de l'écoute (Nombre à virgule flottante)

AL_CONE_OUTER_GAIN (entier)

Configuration de la source/de l'écoute (Nombre à virgule flottante)

AL_CONE_INNER_ANGLE (entier)

Configuration de la source/de l'écoute (Nombre à virgule flottante)

AL_CONE_OUTER_ANGLE (entier)

Configuration de la source/de l'écoute (Nombre à virgule flottante)

AL_REFERENCE_DISTANCE (entier)

Configuration de la source/de l'écoute (Nombre à virgule flottante)

AL_POSITION (entier)

Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)

AL_VELOCITY (entier)

Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)

AL_DIRECTION (entier)

Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)

AL_ORIENTATION (entier)

Configuration de la source/de l'écoute (Nombre vectoriel à virgule flottante)

AL_FORMAT_MONO8 (entier)

Format PCM

AL_FORMAT_MONO16 (entier)

Format PCM

AL_FORMAT_STEREO8 (entier)

Format PCM

AL_FORMAT_STEREO16 (entier)

Format PCM

AL_INITIAL (entier)

État de la Source

AL_PLAYING (entier)

État de la Source

AL_PAUSED (entier)

État de la Source

AL_STOPPED (entier)

État de la Source

AL_LOOPING (entier)

État de la Source

AL_TRUE (entier)

Valeur booléen reconnue par OpenAL

AL_FALSE (entier)

Valeur booléen reconnue par OpenAL

Table des matières
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

Précédent | Sommaire | Suivant
Utilisation | Niveau supérieur | openal_buffer_create


openal_buffer_create

(PECL)

openal_buffer_create -- Génère un buffer OpenAL

Description

resource openal_buffer_create ( void )

Valeurs de retour

openal_buffer_create() retourne une ressource Open AL(Buffer) ou FALSE en cas d'erreur.

Voir aussi

openal_buffer_loadwav()
openal_buffer_data()

Précédent | Sommaire | Suivant
Gestion Audio OpenAL | Niveau supérieur | openal_buffer_data


openal_buffer_data

(PECL)

openal_buffer_data -- Charge un buffer avec des données

Description

bool openal_buffer_data ( resource buffer, int format, string data, int freq )

Liste de paramètres

buffer

Une ressource Open AL(Buffer) (précédemment créée par openal_buffer_create()).

format

Format du paramètre data, un parmis 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 donées data donnée en Hz.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

openal_buffer_loadwav()
openal_stream()

Précédent | Sommaire | Suivant
openal_buffer_create | Niveau supérieur | openal_buffer_destroy


openal_buffer_destroy

(PECL)

openal_buffer_destroy -- Détruit un buffer OpenAL

Description

bool openal_buffer_destroy ( resource buffer )

Liste de paramètres

buffer

Une ressource Open AL(Buffer) (précédemment créée par openal_buffer_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

openal_buffer_create()

Précédent | Sommaire | Suivant
openal_buffer_data | Niveau supérieur | openal_buffer_get


openal_buffer_get

(PECL)

openal_buffer_get -- Récupère les propriétés du buffer OpenAL

Description

int openal_buffer_get ( resource buffer, int property )

Liste de paramètres

buffer

Une ressource Open AL(Buffer) (précédemment créée par openal_buffer_create()).

property

Une propriété spécifique, une parmis 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 en cas d'erreur.

Voir aussi

openal_buffer_create()

Précédent | Sommaire | Suivant
openal_buffer_destroy | Niveau supérieur | openal_buffer_loadwav


openal_buffer_loadwav

(PECL)

openal_buffer_loadwav -- Charge un fichier .wav dans le buffer

Description

bool openal_buffer_loadwav ( resource buffer, string wavfile )

Liste de paramètres

buffer

Une ressource Open AL(Buffer) (précédemment créée par openal_buffer_create()).

wavfile

Chemin vers le fichier .wav sur le système de fichier local.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

openal_buffer_data()
openal_stream()

Précédent | Sommaire | Suivant
openal_buffer_get | Niveau supérieur | openal_context_create


openal_context_create

(PECL)

openal_context_create -- Crée un contexte de traitement audio

Description

resource openal_context_create ( resource device )

Liste de paramètres

device

Une ressource Open AL(Device) (précédemment créée par openal_device_open()).

Valeurs de retour

Retourne une ressource Open AL(Context) ou FALSE en cas d'erreur.

Voir aussi

openal_device_open()
openal_context_destroy()

Précédent | Sommaire | Suivant
openal_buffer_loadwav | Niveau supérieur | openal_context_current


openal_context_current

(PECL)

openal_context_current -- Rend courant le contexte spécifié

Description

bool openal_context_current ( resource context )

Liste de paramètres

context

Une ressource Open AL(Context) (précédemment créée par openal_context_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

openal_context_create()

Précédent | Sommaire | Suivant
openal_context_create | Niveau supérieur | openal_context_destroy


openal_context_destroy

(PECL)

openal_context_destroy -- Détruit un contexte

Description

bool openal_context_destroy ( resource context )

Liste de paramètres

context

Une ressource Open AL(Context) (précédemment créée par openal_context_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

openal_context_create()

Précédent | Sommaire | Suivant
openal_context_current | Niveau supérieur | openal_context_process


openal_context_process

(PECL)

openal_context_process -- Traite le contexte spécifié

Description

bool openal_context_process ( resource context )

Liste de paramètres

context

Une ressource Open AL(Context) (précédemment créée par openal_context_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

openal_context_create()
openal_context_current()
openal_context_suspend()

Précédent | Sommaire | Suivant
openal_context_destroy | Niveau supérieur | openal_context_suspend


openal_context_suspend

(PECL)

openal_context_suspend -- Suspend le contexte spécifié

Description

bool openal_context_suspend ( resource context )

Liste de paramètres

context

Une ressource Open AL(Context) (précédemment créée par openal_context_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

openal_context_create()
openal_context_current()
openal_context_process()

Précédent | Sommaire | Suivant
openal_context_process | Niveau supérieur | openal_device_close


openal_device_close

(PECL)

openal_device_close -- Ferme un périphérique OpenAL

Description

bool openal_device_close ( resource device )

Liste de paramètres

device

Une ressource Open AL(Device) (précédemment créée par openal_device_open()) à fermer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

openal_device_open()

Précédent | Sommaire | Suivant
openal_context_suspend | Niveau supérieur | openal_device_open


openal_device_open

(PECL)

openal_device_open -- Initialise une interface audio OpenAL

Description

resource openal_device_open ( [string device_desc] )

Liste de paramètres

device_desc

openal_device_open() ouvre un périphérique audio oprtionnellement 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()
openal_context_create()

Précédent | Sommaire | Suivant
openal_device_close | Niveau supérieur | openal_listener_get


openal_listener_get

(PECL)

openal_listener_get -- Récupère une propriété d'auditeur

Description

mixed openal_listener_get ( int property )

Liste de paramètres

property

La propriété à récupérer, une parmis celles-ci :
AL_GAIN (float),
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 à virgule flottante ou un tableau de nombres à virgule flottante ou FALSE en cas d'erreur.

Voir aussi

openal_listener_set()

Précédent | Sommaire | Suivant
openal_device_open | Niveau supérieur | openal_listener_set


openal_listener_set

(PECL)

openal_listener_set -- Définie une propriété d'auditeur

Description

bool openal_listener_set ( int property, mixed setting )

Liste de paramètres

property

La propriété à définir, une parmis celles-ci :
AL_GAIN (float),
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 à virgule flottante, soit un tableau de nombres à virgule flottante appropriés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

openal_listener_get()

Précédent | Sommaire | Suivant
openal_listener_get | Niveau supérieur | openal_source_create


openal_source_create

(PECL)

openal_source_create -- Génère une ressource de source

Description

resource openal_source_create ( void )

Valeurs de retour

Retourne une ressource Open AL(Source) ou FALSE en cas d'erreur.

Voir aussi

openal_source_set()
openal_source_play()
openal_source_destroy()

Précédent | Sommaire | Suivant
openal_listener_set | Niveau supérieur | openal_source_destroy


openal_source_destroy

(PECL)

openal_source_destroy -- Détruit une ressource de source

Description

bool openal_source_destroy ( resource source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

openal_source_create()

Précédent | Sommaire | Suivant
openal_source_create | Niveau supérieur | openal_source_get


openal_source_get

(PECL)

openal_source_get -- Récupère une propriété de source OpenAL

Description

mixed openal_source_get ( resource source, int property )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

property

Propriété à récupérer, une parmis celles-ci : AL_SOURCE_RELATIVE (entier), AL_SOURCE_STATE (entier), AL_PITCH (float), AL_GAIN (float), AL_MIN_GAIN (float), AL_MAX_GAIN (float), AL_MAX_DISTANCE (float), AL_ROLLOFF_FACTOR (float), AL_CONE_OUTER_GAIN (float), AL_CONE_INNER_ANGLE (float), AL_CONE_OUTER_ANGLE (float), AL_REFERENCE_DISTANCE (float), 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 en cas d'erreur.

Voir aussi

openal_source_create()
openal_source_set()
openal_source_play()

Précédent | Sommaire | Suivant
openal_source_destroy | Niveau supérieur | openal_source_pause


openal_source_pause

(PECL)

openal_source_pause -- Marque une pause dans la source

Description

bool openal_source_pause ( resource source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée avec openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

openal_source_stop()
openal_source_play()
openal_source_rewind()

Précédent | Sommaire | Suivant
openal_source_get | Niveau supérieur | openal_source_play


openal_source_play

(PECL)

openal_source_play -- Démarre la lecture de la source

Description

bool openal_source_play ( resource source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

openal_source_stop()
openal_source_pause()
openal_source_rewind()

Précédent | Sommaire | Suivant
openal_source_pause | Niveau supérieur | openal_source_rewind


openal_source_rewind

(PECL)

openal_source_rewind -- Revient en arrière dans la source

Description

bool openal_source_rewind ( resource source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

openal_source_stop()
openal_source_pause()
openal_source_play()

Précédent | Sommaire | Suivant
openal_source_play | Niveau supérieur | openal_source_set


openal_source_set

(PECL)

openal_source_set -- Définie une propriété de la source

Description

bool openal_source_set ( resource source, int property, mixed setting )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

property

La propriété à définir, une parmis celles-ci : AL_BUFFER (OpenAL(Source)), AL_LOOPING (boolean), AL_SOURCE_RELATIVE (int), AL_SOURCE_STATE (int), AL_PITCH (float), AL_GAIN (float), AL_MIN_GAIN (float), AL_MAX_GAIN (float), AL_MAX_DISTANCE (float), AL_ROLLOFF_FACTOR (float), AL_CONE_OUTER_GAIN (float), AL_CONE_INNER_ANGLE (float), AL_CONE_OUTER_ANGLE (float), AL_REFERENCE_DISTANCE (float), 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, FALSE en cas d'échec.

Voir aussi

openal_source_create()
openal_source_get()
openal_source_play()

Précédent | Sommaire | Suivant
openal_source_rewind | Niveau supérieur | openal_source_stop


openal_source_stop

(PECL)

openal_source_stop -- Arrête la lecture de la source

Description

bool openal_source_stop ( resource source )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

openal_source_play()
openal_source_pause()
openal_source_rewind()

Précédent | Sommaire | Suivant
openal_source_set | Niveau supérieur | openal_stream


openal_stream

(PECL)

openal_stream -- Démarre le streaming d'une source

Description

resource openal_stream ( resource source, int format, int rate )

Liste de paramètres

source

Une ressource Open AL(Source) (précédemment créée par openal_source_create()).

format

Le format du paramètre data, un parmis ceux-là : AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 et AL_FORMAT_STEREO16.

rate

La fréquence des données à streamer, donnée en Hz.

Valeurs de retour

Retourne une ressource de streaming ou FALSE en cas d'erreur.

Voir aussi

openal_source_create()
fwrite()

Précédent | Sommaire | Suivant
openal_source_stop | Niveau supérieur | OpenSSL


OpenSSL

Manuel PHP
Précédent Suivant

CXII. OpenSSL

Introduction

Cette extension utilise les fonctions de OpenSSL pour générer et vérifier les signatures, ainsi que pour sceller (chiffrer) et ouvrir (déchiffrer) les données. OpenSSL offre beaucoup de fonctionnalités que ce module n'offre pas actuellement. Quelques-unes pourront être ajoutées dans le futur.

Pré-requis

Afin de pouvoir utiliser les fonctions OpenSSL, vous devez installer les fonctions OpenSSL. PHP depuis les version 4.0.5 et 4.3.1 fonctionnent avec openSSL >= 0.9.5. Les autres versions (PHP <=4.0.4 et >= 4.3.2) nécessitent OpenSSL >= 0.9.6.

Avertissement

Vous êtes vivement encouragé à utiliser la version la plus récente d'OpenSSL afin d'éviter certaines vulnérabilités sur votre serveur web.

Installation

Pour utiliser le support OpenSSL de PHP, vous devez aussi compiler PHP avec l'option de configuration --with-openssl[=DIR].

Note aux utilisateurs Win32 : Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : libeay32.dll

Note aux utilisateurs Win32 : De plus, si vous envisagez de générer des clés et de signer des messages, vous devez installer un fichier openssl.cnf valide sur votre système. Depuis PHP 4.3.0, une configuration simple est incluse dans le dossier openssl de la distribution Windows. Si vous utilisez PHP PHP 4.2.0 ou plus ancien, et que ces fichiers manquent, vous pouvez les télécharger sur le site d'OpenSSL ou en téléchargeant les fichiers de configuration de PHP 4.3.0.

PHP va rechercher le fichier openssl.cnf suivant la tactique suivante :

  • La variable d'environnement OPENSSL_CONF, si elle est définie, sera utilisée comme chemin (comprenant le fichier) vers le fichier de configuration.

  • La variable d'environnement SSLEAY_CONF, si elle est définie, sera utilisée comme chemin (comprenant le fichier) vers le fichier de configuration.

  • Le fichier openssl.cnf sera supposé se trouver dans le dossier des certificats, tel que configuré lors de la compilation de la bibliothèque openssl. Cela signifie généralement c:\usr\local\ssl\openssl.cnf.

Dans votre installation, vous devrez décider si vous allez installer le fichier dans c:\usr\local\ssl\openssl.cnf ou si vous allez le faire ailleurs et configurer une variable d'environnement (possiblement par site virtuel). Notez qu'il est possible de remplacer le chemin par défaut en utilisant le paramètre configargs des fonctions qui requièrent un fichier de configuration.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Paramètres clés/certificats

Un bon nombre de fonctions OpenSSL demandent une clé et un certificat comme paramètres. PHP 4.0.5 et plus récent utilisait des clés ou certificats sous forme de ressource, retournée par l'une des fonctions openssl_get_xxx(). Les versions ultérieures utilisent l'une des méthodes suivantes :

  • Certificats

    1. Une ressource X.509 retournée par openssl_x509_read()

    2. Une chaîne au format file://path/to/cert.pem; Le fichier ainsi repéré doit contenir un certificat, encodé au format PEM

    3. Une chaîne contenant le contenu d'un certificat, encodé au format PEM.

  • Clés publiques/privées

    1. Une ressource clé, retournée par la fonction openssl_get_publickey() ou openssl_get_privatekey()

    2. Pour les clés publiques seulement : une ressource X.509

    3. Une chaîne avec le format : file://path/to/file.pem. Le fichier doit contenir une clé privée, ou un certificat, encodé au format PEM (il peut contenir les deux).

    4. Une chaîne contenant une clé ou un certificat encodé au format PEM

    5. Pour les clés privées, vous pouvez aussi utiliser la syntaxe array($key, $passphrase), où $key représente une clé spécifiée par un fichier ou une représentation textuelle comme cité ci-dessus, et $passphrase représente une chaîne contenant la passe-phrase de cette clé privée.

Vérification de certificats

Lorsque vous appelez une fonction qui va vérifier une signature ou un certificat, le paramètre cainfo doit être un tableau contenant les noms d'un dossier et d'un fichier indiquant les tiers de confiance. Si un dossier est spécifié, il doit être correct, car openssl va l'utiliser.

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.

Options de validations générales

X509_PURPOSE_SSL_CLIENT (entier)

X509_PURPOSE_SSL_SERVER (entier)

X509_PURPOSE_NS_SSL_SERVER (entier)

X509_PURPOSE_SMIME_SIGN (entier)

X509_PURPOSE_SMIME_ENCRYPT (entier)

X509_PURPOSE_CRL_SIGN (entier)

X509_PURPOSE_ANY (entier)

Options de remplissage (Padding)

OPENSSL_PKCS1_PADDING (entier)

OPENSSL_SSLV23_PADDING (entier)

OPENSSL_NO_PADDING (entier)

OPENSSL_PKCS1_OAEP_PADDING (entier)

Types de clés

OPENSSL_KEYTYPE_RSA (entier)

OPENSSL_KEYTYPE_DSA (entier)

OPENSSL_KEYTYPE_DH (entier)

Constantes/options PKCS7

Les fonctions S/MIME utilisent des options qui sont spécifiées par un champ de bits. Les valeurs valides sont :

Tableau 1. Constantes PKCS7

Constante | Description
PKCS7_TEXT | Ajoute le texte plein en clair dans les en-têtes du message signé/chiffré. Lors du déchiffrement ou la vérification, il supprime purement et simplement ces données. Si le message chiffré ou signé n'est pas du type MIME, une erreur surviendra.
PKCS7_BINARY | Normalement, le message est converti au format canonique qui utilise effectivement des CR et LF comme fin de ligne, comme demandé dans les spécifications de S/MIME. Lorsque cette option est activée, le message ne sera pas converti. Cela sert lorsque vous manipulez des données binaires qui ne sont pas au format MIME.
PKCS7_NOINTERN | Lors de la vérification d'un message, les certificats (s'il y en a) inclus dans le message sont normalement utilisés pour rechercher le certificat de signature. Avec cette option, seul le certificat spécifié par le paramètre extracerts de la fonction openssl_pkcs7_verify() est utilisé. Les certificats fournis peuvent toujours être utilisés, avec un niveau de confiance réduit.
PKCS7_NOVERIFY | Ne vérifie pas les certificats des signataires d'un message signé.
PKCS7_NOCHAIN | N'enchaîne pas les vérifications des signataires de certificats. C'est-à-dire, n'utilise pas les certificats contenu dans le message.
PKCS7_NOCERTS | Lors de la signature d'un message, le certificat du signataire est normalement inclus. Avec cette option, c'est désactivé. Cela va réduire la taille du message, mais le vérificateur devra avoir une copie locale du certificat du signataire (passée au paramètre extracerts, avec la fonction openssl_pkcs7_verify()).
PKCS7_NOATTR | Normalement, lorsqu'un message est signé, un jeu d'attributs contenant l'heure de signature et l'algorithme symétrique supporté, est inclus dans le message. Avec cette option, il n'est pas inclus.
PKCS7_DETACHED | Lors de la signature d'un message, utilise la signature en texte clair, avec le type MIME "multipart/signed". C'est la valeur par défaut du paramètre flags pour la fonction openssl_pkcs7_sign(). Si vous annulez cette option, le message sera signé de manière opaque, ce qui résiste mieux à la traduction des relais emails (certains serveurs mail anciens corrompent les messages), mais empêche la lecture par les client emails qui ne connaissent pas S/MIME.
PKCS7_NOSIGS | Ne vérifie pas les signatures d'une message

Note : Ces constantes ont été ajoutées en PHP 4.0.6.

Algorithme de signature

OPENSSL_ALGO_SHA1 (entier)

Utilisé comme algorithme par défaut pour les fonctions openssl_sign() et openssl_verify().

OPENSSL_ALGO_MD5 (entier)

OPENSSL_ALGO_MD4 (entier)

OPENSSL_ALGO_MD2 (entier)

Note : Ces constantes ont été ajoutées depuis PHP 5.0.0.

Ciphers

OPENSSL_CIPHER_RC2_40 (entier)

OPENSSL_CIPHER_RC2_128 (entier)

OPENSSL_CIPHER_RC2_64 (entier)

OPENSSL_CIPHER_DES (entier)

OPENSSL_CIPHER_3DES (entier)

Note : Ces constantes ont été ajoutées depuis PHP 4.3.0.

Constantes de version

OPENSSL_VERSION_TEXT (entier)

OPENSSL_VERSION_NUMBER (entier)

Note : Ces constantes ont été ajoutées depuis PHP 5.2.0.

Table des matières
openssl_csr_export_to_file -- Exporte une CSR vers un fichier
openssl_csr_export -- Exporte un CSR vers un fichier ou une variable
openssl_csr_get_public_key -- Retourne la clé publique d'un CERT
openssl_csr_get_subject -- Retourne le sujet d'un CERT
openssl_csr_new -- Génère une CSR
openssl_csr_sign -- Signe un CSR avec un autre certificat
openssl_error_string -- Retourne le message d'erreur OpenSSL
openssl_free_key -- Libère les ressources
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_pkcs7_decrypt -- Déchiffre un message S/MIME
openssl_pkcs7_encrypt -- Chiffre un message S/MIME
openssl_pkcs7_sign -- Signe un message S/MIME
openssl_pkcs7_verify -- Vérifie la signature d'un message S/MIME
openssl_pkey_export_to_file -- Sauve une clé au format ASCII dans un fichier
openssl_pkey_export -- Lit une représentation exportable de la clé dans une chaîne ou un fichier
openssl_pkey_free -- Libère une clé privée
openssl_pkey_get_details -- Retourne un tableau contenant le détail des clés (bits, pkey, type)
openssl_pkey_get_private -- Lit une clé privée
openssl_pkey_get_public -- Extrait une clé privée 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_seal -- Scelle des données
openssl_sign -- Signe les données
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 variable
openssl_x509_free -- Libère les ressources prises par un certificat
openssl_x509_parse -- Analyse un certificat X509
openssl_x509_read -- Analyse un certificat X.509 et retourne une ressource

Précédent | Sommaire | Suivant
openal_stream | Niveau supérieur | openssl_csr_export_to_file


openssl_csr_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_export_to_file -- Exporte une CSR vers un fichier

Description

bool openssl_csr_export_to_file ( resource csr, string outfilename [, bool notext] )

openssl_csr_export_to_file() prend la CSR représentée par le paramètre csr et la sauve dans le fichier nommé outfilename.

Le paramètre optionnel notext affecte le niveau de détails du résultat. S'il vaut FALSE, alors des informations supplémentaires lisibles seront incluses dans le résultat. La valeur par défaut de notext est TRUE.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi
openssl_csr_export(),
openssl_csr_new() et
openssl_csr_sign().

Précédent | Sommaire | Suivant
OpenSSL | Niveau supérieur | openssl_csr_export


openssl_csr_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_export -- Exporte un CSR vers un fichier ou une variable

Description

bool openssl_csr_export ( resource csr, string &out [, bool notext] )

openssl_csr_export() convertit la requête de signature de certificat représentée par csr au format ASCII et la stocke dans la variable out, qui est passée par référence.

Le paramètre optionnel notext affecte le niveau de détails du résultat. S'il vaut FALSE, alors des informations supplémentaires lisibles seront incluses dans le résultat. La valeur par défaut de notext est TRUE.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi
openssl_csr_export_to_file(),
openssl_csr_new() et
openssl_csr_sign().

Précédent | Sommaire | Suivant
openssl_csr_export_to_file | Niveau supérieur | openssl_csr_get_public_key


openssl_csr_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_new -- Génère une CSR

Description

mixed openssl_csr_new ( array dn, resource &privkey [, array configargs [, array extraattribs]] )

openssl_csr_new() génère une nouvelle CSR (Certificate Signing Request, requête de signature de certificat), basée sur les informations fournies par dn, qui représente le nom unique (Distinguished Name) qui doit être utilisé pour ce certificat.

privkey doit être une clé privée qui a été générée par openssl_pkey_new() (ou obtenue autrement par l'une des fonctions de la famille openssl_pkey) La clé publique sera utilisée pour signer la CSR.

extraattribs est utilisé pour spécifier des options de configuration supplémentaires pour la CSR. Les deux paramètres dn et extraattribs sont des tableaux associatifs dont les clés sont converties en OIDs et appliquées aux parties appropriées de la requête.

Note : Vous devez installer un fichier openssl.cnf valide pour que cette fonction opère correctement. Voyez les notes dans la section installation pour plus d'informations.

Par défaut, les informations du fichier openssl.conf de votre système sont utilisées pour initialiser la requête ; vous pouvez spécifier une section du fichier de configuration en utilisant l'index config_section_section du tableau configargs. Vous pouvez aussi spécifier une configuration OpenSSL alternative en utilisant l'index config, et en lui donnant la valeur du chemin à utiliser. Les index suivants, si fournis dans le paramètre configargs, se comportent comme leur équivalent du fichier openssl.conf, tel qu'indiqué ci-dessous.

Tableau 1. Adaptation des configurations

Index configargs | Type | Equivalent openssl.conf | Description
digest_alg | chaîne de caractères | default_md | Sélectionne la méthode "digest" à utiliser
x509_extensions | chaîne de caractères | x509_extensions | Sélectionne quelles extensions doivent être utilisées lors de la création du certificat x509
req_extensions | chaîne de caractères | req_extensions | Sélectionne quelles extensions doivent être utilisées lors de la création d'une CSR
private_key_bits | entier | default_bits | Spécifie le nombre de bits à utiliser lors de la génération de la clé privée
private_key_type | entier | none | Spécifie le type de clé privée à générer. Cela peut être l'une des constantes suivantes : OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH ou OPENSSL_KEYTYPE_RSA. La valeur par défaut est OPENSSL_KEYTYPE_RSA, ce qui est le seul type de clé actuellement supporté.
encrypt_key | booléen | encrypt_key | Doit être une clé exportée (avec mot de passe) qui sera chiffrée?

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec openssl_csr_new() - création d'un certificat auto chiffré

<?php
// Assigne les valeurs du nom distingué à utiliser avec le certificat
// Vous devez remplacer les valeurs suivantes pour qu'elles correspondent
// au nom de votre compagnie, ou, plus préciséement, le nom de la personne
// qui représente le site de votre compagnie pour qui vous générez des
// clés. Pour les certificats SSL, le commonName est généralement le nom de domaine
// pour lequel vous installez le certificat, mais pour les certificats
// le commonName sera le nom de la personne qui utilisera le certificat.
$dn = array(
    "countryName" => "UK",
    "stateOrProvinceName" => "Somerset",
    "localityName" => "Glastonbury",
    "organizationName" => "The Brain Room Limited",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong",
    "emailAddress" => "wez@php.net"
);

// Génère les clés privée et publique
$privkey = openssl_pkey_new();

// Génère la requête de signature de certificat
$csr = openssl_csr_new($dn, $privkey);

// Vous souhaiterez généralement créer un certificat auto chiffré
// une fois que votre autorité de certification accède à votre requête
// Cette commande crée une certificat auto chiffré
$sscert = openssl_csr_sign($csr, null, $privkey, 365);

// Maintenant, vous voulez préserver la clé secrête, la CSR et le certificat
// auto chiffré, de façon à ce qu'ils puissent être installés sur votre
// serveur web, serveur mail ou client mail (suivant l'utilisation).
// Cet exemple vous montre comment placer ces éléments dans des variables
// mais vous pouvez aussi les mettre directement dans des fichiers.
// Typiquement, vous allez envoyer la CSR à votre autorité de certification
// qui vous émettra un "vrai" certificat.
openssl_csr_export($csr, $csrout) and var_dump($csrout);
openssl_x509_export($sscert, $certout) and var_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and var_dump($pkeyout);

// Affiche les erreurs qui sont survenues
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

Précédent | Sommaire | Suivant
openssl_csr_get_subject | Niveau supérieur | openssl_csr_sign


openssl_csr_sign

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_sign -- Signe un CSR avec un autre certificat

Description

resource openssl_csr_sign ( mixed csr, mixed cacert, mixed priv_key, int days [, array configargs [, int serial]] )

openssl_csr_sign() génère un certificat x509 (une ressource) depuis la CSR csr, générée précédemment par openssl_csr_new(), mais ce paramètre peut aussi être une CSR encodée au format PEM, et spécifiée avec file://path/to/csr ou une chaîne exportée par openssl_csr_export(). Le certificat généré sera signé par le certificat cacert. Si cacert vaut NULL, le certificat généré sera auto-signé. priv_key est la clé privée qui correspond au certificat cacert. days spécifie la durée pour laquelle le certificat est valide, en nombre de jours. Vous pouvez affiner la signature CSR avec configargs. Voir la fonction openssl_csr_new() pour plus d'informations sur le paramètre configargs. Depuis PHP 4.3.3, vous pouvez spécifier le numéro de série du certificat généré avec l'argument serial. Dans les versions précédentes, il vaut toujours 0.

openssl_csr_sign() retourne une ressource de certificat x509 en cas de succès, et FALSE sinon.

Note : Vous devez installer un fichier openssl.cnf valide pour que cette fonction opère correctement. Voyez les notes dans la section installation pour plus d'informations.

Exemple 1. Exemple avec openssl_csr_sign() : signer une CSR (comment réaliser 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");

$userscert = openssl_csr_sign($csrdata, $cacert, $privkey, 365);

// Affichons maintenant le certificat généré, de façon à ce que l'utilisateur
// puisse le copier/coller dans sa configuration locale (comme un
// fichier qui contient les certificats de son serveur SSL)
openssl_x509_export($usercert, $certout);
echo $certout;

// Affiche toutes les erreurs survenues
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

Précédent | Sommaire | Suivant
openssl_csr_new | Niveau supérieur | openssl_error_string


openssl_error_string

(PHP 4 >= 4.0.6, PHP 5)

openssl_error_string -- Retourne le message d'erreur OpenSSL

Description

string openssl_error_string ( void )

openssl_error_string() retourne un message d'erreur, sous forme de chaîne de caractères, ou FALSE s'il n'y a pas de message d'erreur.

openssl_error_string() retourne la dernière erreur de la bibliothèque OpenSSL. Les messages d'erreurs sont empilés, et openssl_error_string() doit être appelé plusieurs fois pour afficher toutes les erreurs.

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

Précédent | Sommaire | Suivant
openssl_csr_sign | Niveau supérieur | openssl_free_key


openssl_free_key

(PHP 4 >= 4.0.4, PHP 5)

openssl_free_key -- Libère les ressources

Description

void openssl_free_key ( resource key_identifier )

openssl_free_key() libère les ressources associées à key_identifier.

Précédent | Sommaire | Suivant
openssl_error_string | Niveau supérieur | openssl_get_privatekey


openssl_get_privatekey

(PHP 4 >= 4.0.4, PHP 5)

openssl_get_privatekey -- Alias de openssl_pkey_get_private()

Description

Cette fonction est un alias de : openssl_pkey_get_private().

Précédent | Sommaire | Suivant
openssl_free_key | Niveau supérieur | openssl_get_publickey


openssl_get_publickey

(PHP 4 >= 4.0.4, PHP 5)

openssl_get_publickey -- Alias de openssl_pkey_get_public()

Description

Cette fonction est un alias de : openssl_pkey_get_public().

Précédent | Sommaire | Suivant
openssl_get_privatekey | Niveau supérieur | openssl_open


openssl_open

(PHP 4 >= 4.0.4, PHP 5)

openssl_open -- Ouvre des données scellées

Description

bool openssl_open ( string sealed_data, string &open_data, string env_key, mixed priv_key_id )

openssl_open() ouvre (déchiffre) les données sealed_data en utilisant la clé privée priv_key_id et la clé d'enveloppe env_key et remplit open_data avec les données déchiffrées. La clé d'enveloppe est générée lorsque les données sont scellées, et ne peut être utilisée qu'avec la clé privée spécifique. Reportez-vous à openssl_seal() pour plus d'informations.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. En cas de succès, les données déchiffrées sont placées dans open_data.

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

Précédent | Sommaire | Suivant
openssl_get_publickey | Niveau supérieur | openssl_pkcs7_decrypt


openssl_pkcs7_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_decrypt -- Déchiffre un message S/MIME

Description

bool openssl_pkcs7_decrypt ( string infilename, string outfilename, mixed recipcert [, mixed recipkey] )

openssl_pkcs7_decrypt() déchiffre le message S/MIME contenu dans le fichier infilename, en utilisant le certificat et la clé privée spécifiés par recipcert et recipkey. Le message déchiffré sera écrit dans le fichier outfilename.

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 = "message_chiffre.msg";

// Le message chiffré
$outfilename = "message_dechiffre.msg";

// Assurez-vous de bien pouvoir écrire dans ce fichier
if (openssl_pkcs7_decrypt($infilename, $outfilename, $cert, $key)) {
    echo 'déchiffré!';
} else {
    echo 'impossible de déchiffrer!';
}
?>

Précédent | Sommaire | Suivant
openssl_open | Niveau supérieur | openssl_pkcs7_encrypt


openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_encrypt -- Chiffre un message S/MIME

Description

bool openssl_pkcs7_encrypt ( string infile, string outfile, mixed recipcerts, array headers [, int flags [, int cipherid]] )

openssl_pkcs7_encrypt() prend le contenu du fichier infilename et le chiffre en utilisant un chiffrement RC2 à 40-bit, de manière à ce que le message ne puisse être lu que par le possesseur de recipcerts, qui peut être un certificat X.509 ou un tableau de certificats X.509. 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. flags peut être utilisé pour spécifier des options qui affecteront le chiffrement (voir les constantes PKCS7). 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. Cipher peut être sélectionné avec le paramètre cipherid depuis PHP 5.

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

// sauvez le message dans un fichier
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);

// chiffrez le
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
    array("To" => "nighthawk@agent.com", // keyed syntax
          "From: HQ <hq@cia.com>", // indexed syntax
          "Subject" => "Secret défense"))) {
    // message chiffré : envoyez-le!
    exec(ini_get("sendmail_path") . " < enc.txt");
}
?>

Précédent | Sommaire | Suivant
openssl_pkcs7_decrypt | Niveau supérieur | openssl_pkcs7_sign


openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_sign -- Signe un message S/MIME

Description

bool openssl_pkcs7_sign ( string infilename, string outfilename, mixed signcert, mixed privkey, array headers [, int flags [, string extracerts]] )

openssl_pkcs7_sign() prend le contenu du fichier infilename et le signe en utilisant le certificat et la clé privée contenus dans les arguments signcert et privkey.

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 sert à modifier le message final. Voyez les constantes PKCS7. Par défaut, la valeur est : PKCS7_DETACHED.

extracerts spécifie le nom du fichier contenant un ensemble de certificats supplémentaires à inclure dans la signature, qui pourront aider le destinataire à vérifier les données que vous utilisez.

Exemple 1. Exemple avec openssl_pkcs7_sign()

<?php
// le message que vous voulez signer, afin que le destinataire soit sûr qu'il
// vient bien de vous
$data = <<<EOD

Tu peux dépenser jusqu'à 10000 euros en note de frais.

Ton boss
HQ
EOD;
// sauvez le message dans un fichier
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// chiffrez le
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "mycert.pem",
    array("file://mycert.pem", "mypassphrase"),
    array("To" => "joes@sales.com",   // syntaxe à clé
          "From: HQ <ceo@sales.com>", // syntaxe indexée
          "Subject" => "Secret défense")
    )) {
    // message signed - send it!
    exec(ini_get("sendmail_path") . " < signed.txt");
}
?>

Précédent | Sommaire | Suivant
openssl_pkcs7_encrypt | Niveau supérieur | openssl_pkcs7_verify


openssl_pkcs7_verify

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_verify -- Vérifie la signature d'un message S/MIME

Description

mixed openssl_pkcs7_verify ( string filename, int flags [, string outfilename [, array cainfo [, string extracerts [, string content]]]] )

openssl_pkcs7_verify() lit le message S/MIME contenu dans le fichier filename et examine la signature digitale. openssl_pkcs7_verify() 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). openssl_pkcs7_verify() retourne -1 en cas d'erreur de vérification (la vérification s'est mal déroulée, aucune conclusion possible).

flags sert à modifier le message final. Voyez les constantes PKCS7. Par défaut, la valeur est : PKCS7_DETACHED.

Si le paramètre outfilename est spécifié, il doit être une chaîne contenant le nom d'un fichier qui contient le certificat du signataire, au format PEM.

Si le paramètre cainfo est spécifié, il doit contenir les informations sur les tiers de certificats de confiance utilisé lors de la vérification. Voyez vérification des certificats pour plus de détails.

Si le paramètre extracerts est spécifié, il doit représenter le nom d'un fichier contenant un ensemble de certificats utilisés comme certificats de peu de confiance.

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. Ceci a été ajouté depuis PHP 5.1.0.

Précédent | Sommaire | Suivant
openssl_pkcs7_sign | Niveau supérieur | openssl_pkey_export_to_file


openssl_pkey_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_export_to_file -- Sauve une clé au format ASCII dans un fichier

Description

bool openssl_pkey_export_to_file ( mixed key, string outfilename [, string passphrase [, array configargs]] )

openssl_pkey_export_to_file() sauve la clé au format ASCII (PEM) key dans le fichier outfilename. La clé peut être optionnellement protégée par le mot de passe passphrase. configargs peut être utilisé pour calibrer le processus d'exportation en spécifiant ou remplaçant les options du fichier de configuration d'OpenSSl. Voyez openssl_csr_new() pour plus d'informations sur configargs. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Vous devez installer un fichier openssl.cnf valide pour que cette fonction opère correctement. Voyez les notes dans la section installation pour plus d'informations.

Précédent | Sommaire | Suivant
openssl_pkcs7_verify | Niveau supérieur | openssl_pkey_export


openssl_pkey_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_export -- Lit une représentation exportable de la clé dans une chaîne ou un fichier

Description

bool openssl_pkey_export ( mixed key, string &out [, string passphrase [, array configargs]] )

openssl_pkey_export() exporte la clé key sous forme de chaîne au format PEM, et la stocke dans la variable out (qui est passée par référence). La clé est éventuellement protégée par le mot de passe passphrase. configargs peut être utilisé pour calibrer le processus d'exportation en spécifiant ou remplaçant les options du fichier de configuration d'OpenSSl. Voyez openssl_csr_new() pour plus d'informations sur configargs. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Vous devez installer un fichier openssl.cnf valide pour que cette fonction opère correctement. Voyez les notes dans la section installation pour plus d'informations.

Précédent | Sommaire | Suivant
openssl_pkey_export_to_file | Niveau supérieur | openssl_pkey_free


openssl_pkey_get_private

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_get_private -- Lit une clé privée

Description

resource openssl_pkey_get_private ( mixed key [, string passphrase] )

openssl_pkey_get_private retourne une ressource de clé privée en cas de succès, et FALSE sinon.

openssl_pkey_get_private() analyse la clé key et la prépare pour être utilisée par d'autres fonctions. 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.

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

Précédent | Sommaire | Suivant
openssl_pkey_get_details | Niveau supérieur | openssl_pkey_get_public


openssl_pkey_get_public

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_get_public -- Extrait une clé privée d'un certificat, et la prépare

Description

resource openssl_pkey_get_public ( mixed certificate )

openssl_pkey_get_public retourne une ressource de clé en cas de succès, et FALSE sinon.

openssl_get_publickey() extrait la clé publique du certificat certificate et la prépare pour être utilisée par les autres fonctions. certificate peut avoir l'une des valeurs suivantes :

  1. une ressource d'un certificat X.509.

  2. une chaîne au format file://path/to/file.pem. Le fichier ainsi désigné doit contenir une clé privée ou un certificat au format PEM (éventuellement les deux).

  3. Une clé privée au format PEM.

Précédent | Sommaire | Suivant
openssl_pkey_get_private | Niveau supérieur | openssl_pkey_new


openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_new -- Génère une nouvelle clé privée

Description

resource openssl_pkey_new ( [array configargs] )

openssl_pkey_new() génère une nouvelle paire de clés. La clé privée est accessible via la fonction openssl_pkey_get_public(). Vous pouvez calibrer la génération de la clé (comme le nombre de bits) en utilisant le paramètre configargs. Voir la fonction openssl_csr_new() pour plus de détails sur configargs.

Note : Vous devez installer un fichier openssl.cnf valide pour que cette fonction opère correctement. Voyez les notes dans la section installation pour plus d'informations.

Précédent | Sommaire | Suivant
openssl_pkey_get_public | Niveau supérieur | openssl_private_decrypt


openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_decrypt -- Déchiffre des données avec une clé privée

Description

bool openssl_private_decrypt ( string data, string &decrypted, mixed key [, int padding] )

openssl_private_decrypt() déchiffre data qui a été chiffrée précédemment avec openssl_private_encrypt(), puis stocke le résultat dans la variable decrypted. key doit être la clé privée utilisée pour chiffrer les données. padding vaut par défaut OPENSSL_PKCS1_PADDING, mais peut aussi prendre les valeurs de OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING ou OPENSSL_NO_PADDING.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Vous pouvez utiliser cette fonction pour déchiffrer les données qui sont supposées vous être personnellement adressées.

Voir aussi openssl_public_encrypt() et openssl_public_decrypt().

Précédent | Sommaire | Suivant
openssl_pkey_new | Niveau supérieur | openssl_private_encrypt


openssl_private_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_encrypt -- Chiffre des données avec une clé privée

Description

bool openssl_private_encrypt ( string data, string &crypted, mixed key [, int padding] )

openssl_private_encrypt() chiffre les données data avec la clé privée key et stocke le résultat dans crypted. Les données chiffrées peuvent être déchiffrées avec la fonction openssl_public_decrypt(). Le paramètre padding est fixé par défaut à OPENSSL_PKCS1_PADDING mais peut prendre la valeur OPENSSL_NO_PADDING.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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.

Voir aussi openssl_public_decrypt() et openssl_public_encrypt().

Précédent | Sommaire | Suivant
openssl_private_decrypt | Niveau supérieur | openssl_public_decrypt


openssl_public_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_public_decrypt -- Déchiffre des données avec une clé publique

Description

bool openssl_public_decrypt ( string data, string &decrypted, mixed key [, int padding] )

openssl_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. key doit être la clé publique qui a été utilisée pour chiffrer les données. padding vaut par défaut OPENSSL_PKCS1_PADDING mais peut également valoir OPENSSL_NO_PADDING.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Vous pouvez utiliser cette fonction pour vérifier si le message a été écrit par le propriétaire de la clé privée.

Voir aussi openssl_private_encrypt() et openssl_private_decrypt().

Précédent | Sommaire | Suivant
openssl_private_encrypt | Niveau supérieur | openssl_public_encrypt


openssl_public_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_public_encrypt -- Chiffre des données avec une clé publique

Description

bool openssl_public_encrypt ( string data, string &crypted, mixed key [, int padding] )

openssl_public_encrypt() chiffre les données data avec la clé publique key et stocke le résultat dans crypted. Les données chiffrées peuvent être déchiffrées avec la fonction openssl_private_decrypt(). padding vaut par défaut OPENSSL_PKCS1_PADDING, mais peut valoir OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING ou OPENSSL_NO_PADDING.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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.

Voir aussi openssl_private_decrypt() et openssl_private_encrypt().

Précédent | Sommaire | Suivant
openssl_public_decrypt | Niveau supérieur | openssl_seal


openssl_seal

(PHP 4 >= 4.0.4, PHP 5)

openssl_seal -- Scelle des données

Description

int openssl_seal ( string data, string &sealed_data, array &env_keys, array pub_key_ids )

openssl_seal() retourne la longueur des données scellées en cas de succès, et FALSE sinon. En cas de succès, les données scellées sont placées dans le paramètre sealed_data, et les clés d'enveloppe dans env_keys.

openssl_seal() scelle (chiffre) les données data en utilisant l'algorithme RC4 avec une clé secrète générée aléatoirement. La clé est chiffrée avec chaque clé publique associée à pub_key_ids et chaque clé ainsi chiffrée est retournée dans env_keys. Cela signifie que vous pouvez envoyer des données scellées à plusieurs destinataires (en supposant que chacun ait reçu la clé publique). Chaque destinataire doit recevoir les données chiffrées et la clé d'enveloppe, qui a été chiffrée avec la clé publique du destinataire.

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

Précédent | Sommaire | Suivant
openssl_public_encrypt | Niveau supérieur | openssl_sign


openssl_sign

(PHP 4 >= 4.0.4, PHP 5)

openssl_sign -- Signe les données

Description

bool openssl_sign ( string data, string &signature, mixed priv_key_id [, int signature_alg] )

openssl_sign() calcule la signature des données data en utilisant l'algorithme SHA1 (hashing) suivi du chiffrage avec la clé privée priv_key_id. Notez que les données elles-mêmes ne sont pas chiffrées.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.. En cas de succès, la signature est placée dans signature.

Note : Le paramètre optionnel signature_alg a été ajouté en PHP 5.0.0. Il vaut par défaut OPENSSL_ALGO_SHA1. Pour plus d'informations, reportez-vous à la liste des algorithmes de signature.

Exemple 1. Exemple avec openssl_sign()

<?php
// On suppose que $data contient les données à signer
// lecture de la clé publique pour chaque destinataire
$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);

// calcule de la signature
openssl_sign($data, $signature, $pkeyid);

// libère les clés de la mémoire
openssl_free_key($pkeyid);
?>

Voir aussi openssl_verify().

Précédent | Sommaire | Suivant
openssl_seal | Niveau supérieur | openssl_verify


openssl_verify

(PHP 4 >= 4.0.4, PHP 5)

openssl_verify -- Vérifie une signature

Description

int openssl_verify ( string data, string signature, mixed pub_key_id [, int signature_alg] )

openssl_verify() retourne 1 si la signature est correcte, 0 si elle est incorrecte et -1 en cas d'erreur.

openssl_verify() vérifie que la signature signature est correcte pour les données data, et avec la clé publique pub_key_id. Cette clé doit être la clé publique correspondant à la clé privée utilisée lors de la signature.

Note : Le paramètre optionnel signature_alg a été ajouté en PHP 5.0.0. Il vaut par défaut OPENSSL_ALGO_SHA1. Pour plus d'informations, reportez-vous à la liste des algorithmes de signature.

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
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pubkeyid = openssl_get_publickey($cert);

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

Voir aussi openssl_sign().

Précédent | Sommaire | Suivant
openssl_sign | Niveau supérieur | openssl_x509_check_private_key


openssl_x509_check_private_key

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_check_private_key -- Vérifie si une clé privée correspond à un certificat

Description

bool openssl_x509_check_private_key ( mixed cert, mixed key )

openssl_x509_check_private_key() retourne TRUE si key est la clé privée qui correspond au certificat cert, ou FALSE sinon.

Précédent | Sommaire | Suivant
openssl_verify | Niveau supérieur | openssl_x509_checkpurpose


openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_checkpurpose -- Vérifie l'usage d'un certificat

Description

int openssl_x509_checkpurpose ( mixed x509cert, int purpose [, array cainfo [, string untrustedfile]] )

openssl_x509_checkpurpose() TRUE si le certificat peut être utilisé pour un but particulier, FALSE s'il ne le peut pas, et -1 en cas d'erreur.

openssl_x509_checkpurpose() examine le certificat spécifié par x509cert, pour voir s'il peut être utilisé pour une opération particulière purpose.

cainfo doit être un tableau de dossiers/fichiers de CA de confiance comme décrit dans la Vérification des certificats. Par défaut, c'est un tableau vide.

untrustedfile, si spécifié, est le nom d'un fichier au format PEM contenant les certificats qui pourront aider lors de la vérification du certificat, même si une confiance limitée doit leur être portée.

Tableau 1. Utilisations 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.

Précédent | Sommaire | Suivant
openssl_x509_check_private_key | Niveau supérieur | openssl_x509_export_to_file


openssl_x509_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_export_to_file -- Exporte un certificat vers un fichier

Description

bool openssl_x509_export_to_file ( mixed x509, string outfilename [, bool notext] )

openssl_x509_export_to_file() stocke un certificat x509 dans le fichier outfilename au format PRM.

Le paramètre optionnel notext affecte le niveau de détails du résultat. S'il vaut FALSE, alors des informations supplémentaires lisibles seront incluses dans le résultat. La valeur par défaut de notext est TRUE.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
openssl_x509_checkpurpose | Niveau supérieur | openssl_x509_export


openssl_x509_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_export -- Exporte un certificat vers une variable

Description

bool openssl_x509_export ( mixed x509, string &output [, bool notext] )

openssl_x509_export() stocke un certificat x509 dans le fichier output au format PRM.

Le paramètre optionnel notext affecte le niveau de détails du résultat. S'il vaut FALSE, alors des informations supplémentaires lisibles seront incluses dans le résultat. La valeur par défaut de notext est TRUE.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
openssl_x509_export_to_file | Niveau supérieur | openssl_x509_free


openssl_x509_free

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_free -- Libère les ressources prises par un certificat

Description

void openssl_x509_free ( resource x509cert )

openssl_x509_free() libère les ressources prises par le certificat x509cert

Précédent | Sommaire | Suivant
openssl_x509_export | Niveau supérieur | openssl_x509_parse


openssl_x509_parse

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_parse -- Analyse un certificat X509

Description

array openssl_x509_parse ( mixed x509cert [, bool shortnames] )

openssl_x509_parse() analyse le certificat X509 x509cert, et retourne les informations contenues dedans, y compris le sujet (subject), nom (name), émetteur (issuer name), dates de début et de fin (valid from date et valid to date), etc. shortnames contrôle l'indexation des données dans le tableau : si shortnames vaut TRUE (valeur par défaut), alors les champs seront indexés avec la forme courte des noms, sinon, les noms longs seront utilisés. (par exemple, CN est le nom court de commonName).

La structure des données retournées est (délibérément) non documentée, car elle est sujette à des changements probables.

Précédent | Sommaire | Suivant
openssl_x509_free | Niveau supérieur | openssl_x509_read


openssl_x509_read

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_read -- Analyse un certificat X.509 et retourne une ressource

Description

resource openssl_x509_read ( mixed x509certdata )

openssl_x509_read() analyse le certificat x509certdata et retourne un identifiant de ressource.

Précédent | Sommaire | Suivant
openssl_x509_parse | Niveau supérieur | Oracle (Obsolète)


Oracle (Obsolète)

Manuel PHP
Précédent Suivant

CXIII. Oracle (Obsolète)

Introduction

Avertissement

Cette extension est obsolète. À la place, utilisez l'extension oci8. Les fonctions documentées ici font références aux fonctions alternatives oci8.

Cette extension ajoute le support des base de donnes Oracle.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Installation

Vous devez compiler PHP avec l'option --with-oracle[=DIR], où DIR est par défaut la valeur de la variable d'environnement ORACLE_HOME.

Types de ressources

Cette extension définit deux types de ressources : un identifiant de connexion Oracle et un index de curseur Oracle.

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.

ORA_BIND_INOUT (entier)

ORA_BIND_IN (entier)

ORA_BIND_OUT (entier)

ORA_FETCHINTO_ASSOC (entier)

ORA_FETCHINTO_NULLS (entier)

Table des matières
ora_bind -- Lie une variable PHP à un paramètre Oracle
ora_close -- Ferme un pointeur Oracle
ora_columnname -- Retourne le nom de la colonne de résultat Oracle
ora_columnsize -- Lit la taille d'une colonne Oracle
ora_columntype -- Retourne le type de la colonne de résultat Oracle
ora_commit -- Valide une transaction Oracle
ora_commitoff -- Désactive la validation automatique Oracle
ora_commiton -- Active la validation automatique Oracle
ora_do -- Analyse, exécute et lit le résultat d'une requête Oracle
ora_error -- Retourne le message d'erreur Oracle
ora_errorcode -- Retourne le code d'erreur Oracle
ora_exec -- Exécute une commande analysée sur un pointeur Oracle
ora_fetch_into -- Lit une ligne de résultat Oracle dans un tableau
ora_fetch -- Retourne une ligne de résultat
ora_getcolumn -- Retourne une donnée d'une ligne de résultat Oracle
ora_logoff -- Ferme une connexion Oracle
ora_logon -- Ouvre une connexion Oracle
ora_numcols -- Retourne le nombre de colonnes
ora_numrows -- Retourne le nombre de lignes
ora_open -- Ouvre un pointeur Oracle
ora_parse -- Analyse une requête SQL avec Oracle
ora_plogon -- Ouvre une connexion persistante à Oracle
ora_rollback -- Annule une transaction Oracle

Précédent | Sommaire | Suivant
openssl_x509_read | Niveau supérieur | ora_bind


ora_bind

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_bind -- Lie une variable PHP à un paramètre Oracle

Description

bool ora_bind ( resource cursor, string phpvar, string sqlparam, int length [, int type] )

Lie une variable PHP à un paramètre Oracle.

ora_bind() doit être appelée après
la fonction ora_parse() et avant
ora_exec(). Les valeurs d'entrées peuvent alors
être fournies par assignation des variables PHP. Après la
fonction ora_exec() les variables liées
contiennent les valeurs de sortie, si elles sont disponibles.

Liste de paramètres

cursor

Un curseur Oracle, ouvert avec la fonction ora_open().

phpvar

La variable PHP à lier.

sqlparam

Le paramètre SQL. Doit être sous la forme :name.

length

type

Définit le type de paramètre. Par défaut, vaut ORA_BIND_INOUT. Les valeurs possibles sont :

Constante | Valeur
ORA_BIND_INOUT | 0
ORA_BIND_IN | 1
ORA_BIND_OUT | 2

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Les détails sur les erreurs peuvent être récupérés en utilisant les fonctions ora_error() et ora_errorcode().

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.
3.0.1 | Les constantes pour le paramètre type ont été ajoutées. Dans les versions précédentes, vous devez utiliser les valeurs numériques.

Exemples

Exemple 1. Exemple avec ora_bind()

<?php
  ora_parse($curs, "declare tmp INTEGER; begin tmp := :in; :out := tmp; :x := 7.77; end;");
  ora_bind($curs, "result", ":x", $len, 2);
  ora_bind($curs, "input", ":in", 5, 1);
  ora_bind($curs, "output", ":out", 5, 2);
  $input = 765;
  ora_exec($curs);
  echo "Resultat : $result<br />Sortie : $output<br />Entrée : $input";
?>

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_bind_by_name()
oci_bind_array_by_name()

Précédent | Sommaire | Suivant
Oracle (Obsolète) | Niveau supérieur | ora_close


ora_close

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_close -- Ferme un pointeur Oracle

Description

bool ora_close ( resource cursor )

Ferme le pointeur cursor.

Liste de paramètres

cursor

Un curseur Oracle, ouvert avec la fonction ora_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Les détails sur les erreurs peuvent être récupérés en utilisant les fonctions ora_error() et ora_errorcode().

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_free_statement()

Précédent | Sommaire | Suivant
ora_bind | Niveau supérieur | ora_columnname


ora_columnname

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_columnname -- Retourne le nom de la colonne de résultat Oracle

Description

string ora_columnname ( resource cursor, int column )

Retourne le nom de la colonne de résultat Oracle.

Liste de paramètres

cursor

Un curseur Oracle, ouvert avec la fonction ora_open().

column

Le numéro de la colonne. La numérotation commence à 0.

Valeurs de retour

Retourne le nom, sous la forme d'une chaîne de caractères. Le nom retourné sera en majuscule.

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_field_name()

Précédent | Sommaire | Suivant
ora_close | Niveau supérieur | ora_columnsize


ora_columnsize

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_columnsize -- Lit la taille d'une colonne Oracle

Description

int ora_columnsize ( resource cursor, int column )

Retourne la taille de la colonne column sur le curseur cursor.

Liste de paramètres

cursor

Un curseur Oracle, ouvert avec la fonction ora_open().

column

Le numéro de la colonne. La numérotation commence à 0.

Valeurs de retour

Retourne la taille, sous la forme d'un entier, ou FALSE si une erreur survient.

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_field_size()

Précédent | Sommaire | Suivant
ora_columnname | Niveau supérieur | ora_columntype


ora_columntype

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_columntype -- Retourne le type de la colonne de résultat Oracle

Description

string ora_columntype ( resource cursor, int column )

Retourne le nom du type de la colonne column sur le curseur cursor.

Liste de paramètres

cursor

U curseur Oracle, ouvert avec la fonction ora_open().

column

Le numéro de la colonne. La numérotation commence à 0.

Valeurs de retour

Le type retourné peut être une des chaînes suivantes :

"VARCHAR2"
"VARCHAR"
"CHAR"
"NUMBER"
"LONG"
"LONG RAW"
"ROWID"
"DATE"
"CURSOR"

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_field_type()
oci_field_type_raw()

Précédent | Sommaire | Suivant
ora_columnsize | Niveau supérieur | ora_commit


ora_commit

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_commit -- Valide une transaction Oracle

Description

bool ora_commit ( resource connection )

Valide une transaction Oracle.

Une transaction est définie par toutes les requêtes effectuées sur la connexion conn depuis la dernière validation ou annulation (avec auto-validation désactivée) ou depuis l'établissement de la connexion.

Liste de paramètres

connection

Un identifiant de connexion, ouvert avec la fonction ora_logon().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.. Les erreurs sont accessibles avec les fonctions ora_error() et ora_errorcode().

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_commit()

Voir aussi

ora_commiton()
ora_commitoff()

Précédent | Sommaire | Suivant
ora_columntype | Niveau supérieur | ora_commitoff


ora_commitoff

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_commitoff -- Désactive la validation automatique Oracle

Description

bool ora_commitoff ( resource connection )

Désactive la validation automatique Oracle après chaque appel à la fonction ora_exec() sur la connexion fournie.

Liste de paramètres

connection

Un identifiant de connexion, ouvert avec la fonction ora_logon().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Les détails sur les erreurs peuvent être récupérés en utilisant les fonctions ora_error() et ora_errorcode().

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

Passez le drapeau OCI_DEFAULT à la fonction oci_execute()

Voir aussi

ora_commiton()
ora_commit()

Précédent | Sommaire | Suivant
ora_commit | Niveau supérieur | ora_commiton


ora_commiton

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_commiton -- Active la validation automatique Oracle

Description

bool ora_commiton ( resource connection )

Active la validation automatique Oracle après chaque appel à la fonction ora_exec() sur la connexion fournie.

Liste de paramètres

connection

Un identifiant de connexion, ouvert avec la fonction ora_logon().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Les détails sur les erreurs peuvent être récupérés en utilisant les fonctions ora_error() et ora_errorcode().

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_execute()

Voir aussi

ora_commitoff()
ora_commit()

Précédent | Sommaire | Suivant
ora_commitoff | Niveau supérieur | ora_do


ora_do

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_do -- Analyse, exécute et lit le résultat d'une requête Oracle

Description

resource ora_do ( resource connection, string query )

Analyse et exécute une requête, puis, récupère la première ligne du résultat.

Cette fonction est une combinaison de ora_parse(), ora_exec() et ora_fetch().

Liste de paramètres

connection

Un identifiant de connexion, ouvert avec la fonction ora_logon().

query

La requête SQL.

Valeurs de retour

Retourne un index de curseur, ou bien FALSE en cas d'échec. Le détail sur les erreurs est accessible avec les fonctions ora_error() et ora_errorcode().

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Il n'y a pas de remplacement direct pour la fonction ora_do() dans oci8. À la place, utilisez la séquence suivante : oci_parse(), puis, oci_excute() puis une des fonctions oci_fetch_*().

Voir aussi

ora_parse()
ora_exec()
ora_fetch()

Précédent | Sommaire | Suivant
ora_commiton | Niveau supérieur | ora_error


ora_error

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_error -- Retourne le message d'erreur Oracle

Description

string ora_error ( [resource cursor_or_connection] )

Retourne le message d'erreur de la dernière requête exécutée sur la connexion ou le curseur spécifié.

Liste de paramètres

cursor_or_connection

Un curseur Oracle ou un identifiant de connexion.

Valeurs de retour

Retourne un message d'erreur de la forme XXX-NNNNN avec XXX qui est l'origine de l'erreur, et NNNNN qui identifie le message d'erreur.

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.
3.0.4 | Le support des identifiants de connexion a été ajouté.

Exemples

Avec les versions UNIX d'Oracle, vous pouvez rencontrer des messages d'erreur tels que :

$> oerr ora 00001

L'exemple ci-dessus va afficher quelque chose de similaire à :

00001, 00000,
"unique constraint (%s.%s) violated" // *Cause: An update or insert
statement attempted to insert a duplicate key //         For Trusted
ORACLE configured in DBMS MAC mode, you may see //         this message
if a duplicate entry exists at a different level.  // *Action: Either
remove the unique restriction or do not insert the key

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_error()

Précédent | Sommaire | Suivant
ora_do | Niveau supérieur | ora_errorcode


ora_errorcode

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_errorcode -- Retourne le code d'erreur Oracle

Description

int ora_errorcode ( [resource cursor_or_connection] )

Retourne le code erreur numérique de la dernière reqête exécutée sur la connexion ou le curseur spécifié.

Liste de paramètres

cursor_or_connection

Un curseur Oracle ou un identifiant de connexion.

Valeurs de retour

Retourne le code erreur, sous la forme d'un entier.

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.
3.0.4 | Le support pour les identifiants de connexion a été ajouté.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_error() (Le champ "code" du tableau résultant)

Précédent | Sommaire | Suivant
ora_error | Niveau supérieur | ora_exec


ora_exec

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_exec -- Exécute une commande analysée sur un pointeur Oracle

Description

bool ora_exec ( resource cursor )

Exécute la requête analysée cursor.

Liste de paramètres

cursor

Un curseur Oracle, déjà analysé par la fonction ora_parse().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.. L'erreur générée sera alors accessible avec les fonctions ora_error() et ora_errorcode().

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_execute()

Voir aussi

ora_parse()
ora_fetch()
ora_do()

Précédent | Sommaire | Suivant
ora_errorcode | Niveau supérieur | ora_fetch_into


ora_fetch_into

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_fetch_into -- Lit une ligne de résultat Oracle dans un tableau

Description

int ora_fetch_into ( resource cursor, array &result [, int flags] )

Récupère une ligne de données d'un tableau.

Liste de paramètres

cursor

Un curseur Oracle, ouvert avec la fonction ora_open().

result

Un tableau passé par référence. Il sera complété par les valeurs récupérées.

flags

Il y a deux drapeaux possibles. Si ORA_FETCHINTO_NULLS est défini, les colonnes dont la valeur est NULL seront définies dans le tableau ; et si le drapeau ORA_FETCHINTO_ASSOC est défini, un tableau associatif sera créé.

Valeurs de retour

Retourne le numéro de la colonne récupérée, ou FALSE si une erreur survient.

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Exemples

Exemple 1. Exemple avec ora_fetch_into()

<?php
$results = array();
ora_fetch_into($cursor, $results);
echo $results[0];
echo $results[1];
$results = array();
ora_fetch_into($cursor, $results, ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC);
echo $results['MyColumn'];
?>

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

Une fonction de récupération comme oci_fetch_array()

Voir aussi

ora_parse()
ora_exec()
ora_fetch()
ora_do()

Précédent | Sommaire | Suivant
ora_exec | Niveau supérieur | ora_fetch


ora_fetch

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_fetch -- Retourne une ligne de résultat

Description

bool ora_fetch ( resource cursor )

Récupère une ligne de données depuis le curseur cursor spécifié.

Liste de paramètres

cursor

Un curseur Oracle, ouvert avec la fonction ora_open().

Valeurs de retour

Retourne TRUE (une ligne a été lue) ou FALSE (plus de lignes à lire ou erreur). Si une erreur survient, ora_errorcode() retournera 0 et la valeur de l'erreur sera disponible dans les fonctions ora_error() et ora_errorcode().

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_fetch()

Voir aussi

ora_parse()
ora_exec()
ora_do()

Précédent | Sommaire | Suivant
ora_fetch_into | Niveau supérieur | ora_getcolumn


ora_getcolumn

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_getcolumn -- Retourne une donnée d'une ligne de résultat Oracle

Description

string ora_getcolumn ( resource cursor, int column )

Retourne une donnée d'une ligne de résultat Oracle.

Liste de paramètres

cursor

Un curseur Oracle, ouvert avec la fonction ora_open().

column

Le numéro de la colonne, sous la forme d'un entier.

Valeurs de retour

Retourne la valeur de la colonne. Si une erreur survient, FALSE est retourné et ora_errorcode() aura une valeur non nulle. Notez, qu'un test à FALSE, avec cette fonction peut être \TRUE, même sans erreur : en effet, la fonction peut retourner des valeurs telles que résultat NULL, chaînes vides, nombre 0, la chaîne "0".

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_result()

Précédent | Sommaire | Suivant
ora_fetch | Niveau supérieur | ora_logoff


ora_logoff

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_logoff -- Ferme une connexion Oracle

Description

bool ora_logoff ( resource connection )

Déconnecte l'utilisateur et ferme la connexion au serveur Oracle.

Liste de paramètres

connection

Un identifiant de connexion, ouvert avec la fonction ora_logon().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Le détail sur les erreurs est accessible avec les fonctions ora_error() et ora_errorcode().

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_close()

Voir aussi

ora_logon()

Précédent | Sommaire | Suivant
ora_getcolumn | Niveau supérieur | ora_logon


ora_logon

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_logon -- Ouvre une connexion Oracle

Description

resource ora_logon ( string user, string password )

Établie une connexion entre PHP et une base de données Oracle.

La connexion peut être faites avec SQL*Net en fournissant le nom TNS de la manière suivante :

<?php
$conn = Ora_Logon("user@TNSNAME", "pass");
?>

Si vous avez des données qui ne sont pas ASCII, vous devriez vérifier que la variable NLS_LANG a été correctement configurée dans votre environnement. Pour les modules de serveur, vous devrez la configurer dans l'environnement d'exécution du serveur avant de le lancer.

Liste de paramètres

user

Le nom de l'utilisateur.

password

Le mot de passe associé à l'utilisateur user.

Valeurs de retour

Retourne un index de connexion, en cas de succès, ou FALSE en cas d'échec. Les erreurs sont accessibles avec les fonctions ora_error() et ora_errorcode().

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_connect()
oci_new_connect()

Précédent | Sommaire | Suivant
ora_logoff | Niveau supérieur | ora_numcols


ora_numcols

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_numcols -- Retourne le nombre de colonnes

Description

int ora_numcols ( resource cursor )

Retourne le nombre de colonnes dans le résultat. Cette valeur n'est significative qu'après une requête parse/exec/fetch.

Liste de paramètres

cursor

Un curseur Oracle, ouvert avec la fonction ora_open().

Valeurs de retour

Retourne le nombre de colonnes, sous la forme d'un entier, ou FALSE si une erreur survient.

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_num_fields()

Voir aussi

ora_parse()
ora_exec()
ora_fetch()
ora_do()

Précédent | Sommaire | Suivant
ora_logon | Niveau supérieur | ora_numrows


ora_numrows

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_numrows -- Retourne le nombre de lignes

Description

int ora_numrows ( resource cursor )

Retourne le nombre de lignes dans le résultat.

Liste de paramètres

cursor

Un curseur Oracle, ouvert avec la fonction ora_open().

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier, ou FALSE si une erreur survient.

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_num_rows()

Précédent | Sommaire | Suivant
ora_numcols | Niveau supérieur | ora_open


ora_open

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_open -- Ouvre un pointeur Oracle

Description

resource ora_open ( resource connection )

Ouvre un curseur Oracle associé avec la connexion.

Liste de paramètres

connection

Un identifiant de connexion, ouvert avec la fonction ora_logon().

Valeurs de retour

Retourne un index de curseur ou bien FALSE en cas d'échec. Les erreurs sont accessibles avec les fonctions ora_error() et ora_errorcode().

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_new_cursor()

Précédent | Sommaire | Suivant
ora_numrows | Niveau supérieur | ora_parse


ora_parse

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_parse -- Analyse une requête SQL avec Oracle

Description

bool ora_parse ( resource cursor, string sql_statement [, int defer] )

Analyse une requête SQL ou un bloc PL/SQL et l'associe avec le curseur cursor fourni.

Liste de paramètres

cursor

Un curseur Oracle, ouvert avec la fonction ora_open().

sql_statement

La requête SQL, ou un bloc PL/SQL.

defer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_parse()

Voir aussi

ora_exec()
ora_fetch()
ora_do()

Précédent | Sommaire | Suivant
ora_open | Niveau supérieur | ora_plogon


ora_plogon

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_plogon -- Ouvre une connexion persistante à Oracle

Description

resource ora_plogon ( string user, string password )

Établie une connexion persistante entre PHP et une base de données Oracle.

Liste de paramètres

user

Le nom de l'utilisateur.

password

Le mot de passe associé à l'utilisateur user.

Valeurs de retour

Retourne un identifiant de connexion persistante, ou FALSE si une erreur survient.

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_pconnect()

Voir aussi

ora_logon()

Précédent | Sommaire | Suivant
ora_parse | Niveau supérieur | ora_rollback


ora_rollback

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_rollback -- Annule une transaction Oracle

Description

bool ora_rollback ( resource connection )

Annule une transaction Oracle.

Voir la documentation sur la fonction ora_commit() pour la définition d'une transaction.

Liste de paramètres

connection

Un identifiant de connexion, ouvert avec la fonction ora_logon().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Les erreurs sont accessibles avec les fonctions ora_error() et ora_errorcode().

Historique

Version | Description
5.1.0 | L'extension oracle est obsolète. Utilisez plutôt l'extension oci8.

Notes

Lors de l'utilisation de l'extension oci8 en tant que remplacement de l'extension obsolète oracle, utilisez plutôt :

oci_rollback()

Précédent | Sommaire | Suivant
ora_plogon | Niveau supérieur | Fonctions Oracle (PDO_OCI)


Bufferisation de sortie

Manuel PHP
Précédent Suivant

CXV. Bufferisation de sortie

Introduction

Les fonctions de bufferisation de sortie vous permettent de contrôler quand les données ont été envoyées par le script. Cela peut être utile dans certaines situations, notamment si vous devez envoyer des en-têtes au navigateur après avoir envoyé des données. Ces fonctions n'affectent pas les en-têtes envoyés par la fonction header() ou les cookies envoyés par setcookie(). Seules les fonctions telles que echo() et les données entre blocs PHP sont affectées.

Note : Lors de la mise à jour depuis PHP 4.1.x (et 4.2.x) vers 4.3.x, à cause d'un bogue dans les versions précédentes, vous devez vous assurer que implict_flush vaut OFF dans votre php.ini, sinon, tout affichage avec la fonction ob_start() sera caché.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
output_buffering | "0" | PHP_INI_PERDIR |
output_handler | NULL | PHP_INI_PERDIR | Disponible depuis PHP 4.0.4.
implicit_flush | "0" | PHP_INI_ALL | PHP_INI_PERDIR en PHP <= 4.2.3.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

output_buffering booléen/entier

Vous pouvez activer la bufferisation de sortie pour tous les fichiers avec cette directive, en lui passant la valeur On. Si vous souhaitez limiter la taille du buffer à une certaine taille, vous pouvez alors indiquer un nombre maximum d'octets à la place de On. Par exemple, output_buffering=4096). Depuis PHP 4.3.5, cette directive est toujours désactivée en ligne de commande.

output_handler string

Vous pouvez rediriger le résultat de tous vos scripts à une fonction avant leur envoi au navigateur. Par exemple, si vous configurez output_handler à mb_output_handler(), l'encodage des caractères sera adapté de manière transparente. Configurer une telle fonction active automatiquement la bufferisation de sortie.

Note : Vous ne pouvez pas utiliser simultanément mb_output_handler() avec ob_iconv_handler(), non plus que ob_gzhandler() avec zlib.output_compression.

Note : Seules les fonctions internes peuvent être utilisées avec cette directive. Pour les fonctions utilisateurs, utilisez ob_start().

implicit_flush booléen

FALSE par défaut. En changeant cette valeur pour TRUE vous indiquez à PHP que le buffer de sortie doit être vidé automatiquement après chaque fonction d'affichage. Cela revient à appeler la fonction flush() après chaque appel à print() ou echo() et pour tous les blocs HTML.

Lorsque vous utilisez PHP en environnement web, activer cette option a de sérieuses implications et généralement, cela n'est conseillé que pour les débogage. Cette valeur est par défaut à TRUE lorsque PHP fonctionne en mode CLI SAPI.

Voir aussi ob_implicit_flush().

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Exemples

Exemple 1. Exemple de bufferisation de sortie

<?php

ob_start();
echo "Bonjour\n";

setcookie("nom_du_cookie", "valeur_du_cookie");

ob_end_flush();

?>

Dans l'exemple ci-dessus, la fonction 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. (D'habitude, vous devez envoyer les en-têtes avant les données).

Voir aussi

Voir aussi header() et setcookie().

Table des matières
flush -- Vide les tampons de sortie
ob_clean -- Efface le tampon de sortie
ob_end_clean -- Détruit les données du tampon de sortie et éteint la tamporisation de sortie
ob_end_flush -- Envoie les données du tampon de sortie et éteint la tamporisation de sortie
ob_flush -- Envoie le tampon de sortie
ob_get_clean -- Lit le contenu courant du tampon de sortie puis l'efface
ob_get_contents -- Retourne le contenu du tampon de sortie
ob_get_flush -- Vide le tampon, le retourne en tant que chaîne et stoppe la tamporisation
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 tamporisation de sortie
ob_get_status -- Lit le statut du tampon de sortie
ob_gzhandler -- Fonction de callback pour la compression automatique des tampons
ob_implicit_flush -- Active/désactive l'envoi implicite
ob_list_handlers -- Liste les gestionnaires d'affichage utilisés
ob_start -- Enclenche la tamporisation 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

Précédent | Sommaire | Suivant
PDO_OCI DSN | Niveau supérieur | flush


flush

(PHP 3, PHP 4, PHP 5)

flush -- Vide les tampons de sortie

Description

void flush ( void )

Cette fonction vide les tampons de sortie de PHP et tous ceux que PHP utilisait (CGI, un serveur web, etc.). Cette fonction envoie réellement toutes les données préparées vers l'utilisateur.

flush() n'a aucun effet sur la tamporisation de votre serveur web ou du navigateur. De ce fait, vous devez appeler les fonctions ob_flush() et flush() pour vider les tampons de sortie.

De nombreux serveurs, essentiellement sous Windows, continueront à tamporiser l'affichage de votre script jusqu'à ce qu'il soit terminé, avant de transmettre les résultats à l'internaute.

Des modules Apache comme mod_gzip utilisent leur propre tamporisation, ce qui fait que flush() n'enverra pas les données jusqu'au navigateur client immédiatement.

Même le navigateur peut réaliser une tamporisation avant de l'afficher. Netscape, par exemple, met en cache le texte jusqu'à ce qu'il reçoive une fin de ligne, ou un début d'une balise et il n'affichera pas les tables tant que la balise </table> la plus externe ne soit vue.

Certaines versions de Microsoft Internet Explorer ne commenceront l'affichage de la page qu'après avoir reçu 256 octets d'affichage. Cela vous obligera à envoyer des espaces supplémentaires pour afficher la page.

Précédent | Sommaire | Suivant
Bufferisation de sortie | Niveau supérieur | ob_clean


ob_clean

(PHP 4 >= 4.2.0, PHP 5)

ob_clean -- Efface le tampon de sortie

Description

void ob_clean ( void )

Cette fonction vide le tampon de sortie sans l'envoyer au navigateur.

Cette fonction ne détruit pas le contenu du tampon de sortie comme peut le faire ob_end_clean().

Voir aussi
ob_flush(),
ob_end_flush() et
ob_end_clean().

Précédent | Sommaire | Suivant
flush | Niveau supérieur | ob_end_clean


ob_end_clean

(PHP 4, PHP 5)

ob_end_clean -- Détruit les données du tampon de sortie et éteint la tamporisation de sortie

Description

bool ob_end_clean ( void )

Cette fonction vide le contenu du premier tampon de sortie et désactive la tamporisation de sortie. Si vous voulez traiter le contenu du tampon, vous devrez appeler ob_get_contents() avant ob_end_clean(), car le tampon est détruit par ob_end_clean(). La fonction retourne TRUE lorsqu'elle a réussi à détruire correctement le tampon, et FALSE sinon. Les raisons d'un tel échec sont que la tamporisation de sortie pouvait ne pas être activée, ou que, pour une raison quelconque, le tampon n'a pu être détruit.

L'exemple suivant montre comment se débarrasser de tous les tampons de sortie :

Exemple 1. Exemple avec ob_end_clean()

<?php
ob_start();
echo 'Texte qui ne sera pas affiché.';
ob_end_clean();
?>

Note : Si la fonction échoue, elle génère une note E_NOTICE.

La valeur booléenne retournée par la fonction a été ajoutée en PHP 4.2.0.

Voir aussi
ob_start(),
ob_flush() et
ob_get_contents().

Précédent | Sommaire | Suivant
ob_clean | Niveau supérieur | ob_end_flush


ob_end_flush

(PHP 4, PHP 5)

ob_end_flush -- Envoie les données du tampon de sortie et éteint la tamporisation de sortie

Description

bool ob_end_flush ( void )

Cette fonction envoie le contenu du tampon de sortie (s'il existe) et éteint la tamporisation de sortie. Si vous voulez continuer à manipuler la valeur du tampon, vous pouvez appeler ob_get_contents() avant ob_end_flush() car le contenu du tampon est détruit après un appel à ob_end_flush(). La fonction retourne TRUE lorsqu'elle a réussi à envoyer tout le tampon, sinon FALSE. Les raisons d'échec sont que vous pourriez avoir appelé la fonction sans avoir de tampon actif, ou que, pour une raison quelconque, le tampon n'a pu être effacé (possible pour un tampon spécial).

Note : Cette fonction est similaire à ob_get_flush(), excepté que ob_get_flush() retourne le tampon comme une chaîne de caractères.

L'exemple ci-dessous montre une méthode simple pour vider tous les tampons :

Exemple 1. Exemple avec ob_end_flush()

<?php
while (@ob_end_flush());
?>

Note : Si la fonction échoue, elle émet une note E_NOTICE.

La valeur booléenne retournée par la fonction a été ajoutée en PHP 4.2.0.

Voir aussi
ob_start(),
ob_get_contents(),
ob_get_flush(),
ob_flush() et
ob_end_clean().

Précédent | Sommaire | Suivant
ob_end_clean | Niveau supérieur | ob_flush


ob_flush

(PHP 4 >= 4.2.0, PHP 5)

ob_flush -- Envoie le tampon de sortie

Description

void ob_flush ( void )

Cette fonction envoie le contenu du tampon de sortie (s'il y en a un). Si vous voulez contrôler le contenu du tampon, vous devez appeler la fonction ob_get_contents() avant ob_flush() car le contenu du tampon est effacé après l'appel de ob_flush().

ob_flush() ne détruit pas le contenu du tampon de sortie comme peut le faire ob_end_flush().

Voir aussi
ob_get_contents(),
ob_clean(),
ob_end_flush() et
ob_end_clean().

Précédent | Sommaire | Suivant
ob_end_flush | Niveau supérieur | ob_get_clean


ob_get_clean

(PHP 4 >= 4.3.0, PHP 5)

ob_get_clean -- Lit le contenu courant du tampon de sortie puis l'efface

Description

string ob_get_clean ( void )

Cette fonction va retourner le contenu du tampon de sortie
et terminer la session de tamporisation. Si la tamporisation n'est pas
activée, alors ob_get_clean() retourne FALSE.
ob_get_clean() exécute successivement
ob_get_contents() et
ob_end_clean().

Exemple 1. Exemple avec ob_get_clean()

<?php

ob_start();

print "Bonjour le monde";

$out = ob_get_clean();
$out = strtolower($out);

var_dump($out);
?>

L'exemple ci-dessus va afficher :

string(16) "Bonjour le monde"

Voir aussi ob_start() et ob_get_contents().

Précédent | Sommaire | Suivant
ob_flush | Niveau supérieur | ob_get_contents


ob_get_contents

(PHP 4, PHP 5)

ob_get_contents -- Retourne le contenu du tampon de sortie

Description

string ob_get_contents ( void )

Cette fonction retournera le contenu du tampon de sortie sans l'effacer ou FALSE, si la tamporisation de sortie n'est pas activée.

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(16) "Bonjour le monde"

Voir aussi ob_start() et ob_get_length().

Précédent | Sommaire | Suivant
ob_get_clean | Niveau supérieur | ob_get_flush


ob_get_flush

(PHP 4 >= 4.3.0, PHP 5)

ob_get_flush -- Vide le tampon, le retourne en tant que chaîne et stoppe la tamporisation

Description

string ob_get_flush ( void )

ob_get_flush() vide le tampon, le retourne en tant que chaîne et stoppe la tamporisation. ob_get_flush() retourne FALSE si la tamporisation n'est pas active.

Note : ob_get_flush() est similaire à ob_end_flush(), sauf que cette fonction retourne le tampon en tant que chaîne.

Exemple 1. Exemple avec ob_get_flush()

<?php
// avec output_buffering=On
print_r(ob_list_handlers());

// sauvegarde le tampon dans un fichier
$buffer = ob_get_flush();
file_put_contents('buffer.txt', $buffer);

print_r(ob_list_handlers());
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => default output handler
)
Array
(
)

Voir aussi
ob_end_clean(),
ob_end_flush() et
ob_list_handlers().

Précédent | Sommaire | Suivant
ob_get_contents | Niveau supérieur | ob_get_length


ob_get_length

(PHP 4 >= 4.0.2, PHP 5)

ob_get_length -- Retourne la longueur du contenu du tampon de sortie

Description

int ob_get_length ( void )

Cette fonction retourne la longueur du contenu du tampon de sortie si la tamporisation est activée, et FALSE sinon.

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

Précédent | Sommaire | Suivant
ob_get_flush | Niveau supérieur | ob_get_level


ob_get_level

(PHP 4 >= 4.2.0, PHP 5)

ob_get_level -- Retourne le nombre de niveaux d'imbrications du système de tamporisation de sortie

Description

int ob_get_level ( void )

Cette fonction retourne le nombre de niveaux d'imbrications du système de tamporisation de sortie.

Voir aussi ob_start() et ob_get_contents().

Précédent | Sommaire | Suivant
ob_get_length | Niveau supérieur | ob_get_status


ob_get_status

(PHP 4 >= 4.2.0, PHP 5)

ob_get_status -- Lit le statut du tampon de sortie

Description

array ob_get_status ( [bool full_status=FALSE] )

ob_get_status() retourne les informations sur le statut du tampon d'affichage de haut niveau ou de tous les tampons d'affichage si full_status est défini à TRUE.

Si la fonction est appelée sans le paramètre full_status ou avec le paramètre full_status = FALSE, un tableau simple avec les éléments suivants sera retourné :

Exemple 1. Sortie simple de la fonction ob_get_status()

Array
      (
      [level] => 2
      [type] => 0
      [status] => 0
      [name] => URL-Rewriter
      [del] => 1
      )

Résultat simple de la fonction ob_get_status()

Clé: level

Valeur: Niveau de sortie désiré

Clé: type

Valeur: PHP_OUTPUT_HANDLER_INTERNAL (0) ou PHP_OUTPUT_HANDLER_USER (1)

Clé: status

Valeur: Un parmi PHP_OUTPUT_HANDLER_START (0), PHP_OUTPUT_HANDLER_CONT (1) ou PHP_OUTPUT_HANDLER_END (2)

Clé: name

Valeur: Nom du gestionnaire de sortie actif ou ' default output handler' si aucun n'est défini

Clé: del

Valeur: Flag d'effacement tel que défini par ob_start()

Si la fonction est appelée avec le paramètre full_status défini à TRUE, un tableau avec un élément par tampon de sortie actif est retourné. Le niveau de sortie est utilisé en tant que clé du tableau de niveau élevé et chaque élément du tableau est un autre tableau contenant les informations sur le statut du niveau du tampon actif.

Exemple 2. Sortie complète de la fonction ob_get_status()

Array
      (
      [0] => Array
      (
      [chunk_size] => 0
      [size] => 40960
      [block_size] => 10240
      [type] => 1
      [status] => 0
      [name] => default output handler
      [del] => 1
      )

      [1] => Array
      (
      [chunk_size] => 0
      [size] => 40960
      [block_size] => 10240
      [type] => 0
      [buffer_size] => 0
      [status] => 0
      [name] => URL-Rewriter
      [del] => 1
      )

      )

La sortie complète contient les éléments suivants :

Résultat complet de la fonction ob_get_status()

Clé: chunk_size

Valeur: Taille telle que définie par la fonction ob_start()

Clé: size

Valeur: ...

Clé: blocksize

Valeur: ...

Voir aussi ob_get_level() et ob_list_handlers().

Précédent | Sommaire | Suivant
ob_get_level | Niveau supérieur | ob_gzhandler


ob_gzhandler

(PHP 4 >= 4.0.4, PHP 5)

ob_gzhandler -- Fonction de callback pour la compression automatique des tampons

Description

string ob_gzhandler ( string buffer, int mode )

Note : ob_gzhandler() nécessite l'extension zlib.

ob_gzhandler() est destinée à être utilisée comme fonction de callback 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.

Note : mode a été ajouté en PHP 4.0.5.

Exemple 1. Exemple d'envoi de page compressée avec ob_gzhandler()

<?php

ob_start("ob_gzhandler");

?>
<html>
 <body>
 <p>Ceci devrait être une page compressée.</p>
 </body>
</html>

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

Précédent | Sommaire | Suivant
ob_get_status | Niveau supérieur | ob_implicit_flush


ob_implicit_flush

(PHP 4, PHP 5)

ob_implicit_flush -- Active/désactive l'envoi implicite

Description

void ob_implicit_flush ( [int flag] )

ob_implicit_flush() active/désactive l'envoi implicite (si flag est fourni. Par défaut, il est activé). L'envoi implicite signifie que toute fonction qui envoie des données au navigateur verra ses données envoyées immédiatement (la fonction flush() est appelée automatiquement).

Voir aussi
flush(),
ob_start() et
ob_end_flush().

Précédent | Sommaire | Suivant
ob_gzhandler | Niveau supérieur | ob_list_handlers


ob_list_handlers

(PHP 4 >= 4.3.0, PHP 5)

ob_list_handlers -- Liste les gestionnaires d'affichage utilisés

Description

array ob_list_handlers ( void )

Cette fonction retourne un tableau avec le gestionnaire d'affichage en cours d'utilisation (s'il existe). Si output_buffering est activé ou si une fonction anonyme est utilisée avec ob_start(), ob_list_handlers() retournera un tableau avec comme valeur d'entrée : "default output handler".

Exemple 1. Exemple avec ob_list_handlers()

<?php

// avec output_buffering=On
print_r(ob_list_handlers());
ob_end_flush();

ob_start("ob_gzhandler");
print_r(ob_list_handlers());
ob_end_flush();

// fonctions anonymes
ob_start(create_function('$string', 'return $string;'));
print_r(ob_list_handlers());
ob_end_flush();
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => default output handler
)

Array
(
    [0] => ob_gzhandler
)

Array
(
    [0] => default output handler
)

Voir aussi
ob_end_clean(),
ob_end_flush(),
ob_get_flush() et
ob_start().

Précédent | Sommaire | Suivant
ob_implicit_flush | Niveau supérieur | ob_start


ob_start

(PHP 4, PHP 5)

ob_start -- Enclenche la tamporisation de sortie

Description

bool ob_start ( [callback output_callback [, int chunk_size [, bool erase]]] )

Cette fonction démarre la tamporisation de sortie. Tant qu'elle est enclenchée, aucune donnée, hormis les en-têtes, n'est envoyée au navigateur, mais temporairement mise en tampon.

Le contenu de ce tampon peut être copié dans une chaîne avec la fonction ob_get_contents(). Pour afficher le contenu de ce tampon, utilisez ob_end_flush(). Au contraire, ob_end_clean() effacera le contenu de ce tampon.

Une fonction optionnelle de callback peut être spécifiée en troisième argument. ob_start() prend une chaîne comme paramètre, et retourne une chaîne. Elle sera appelée par ob_end_flush() ou lorsque le tampon sera envoyé au navigateur à la fin du script et recevra le contenu du tampon de sortie. Lorsque la fonction output_callback est appelée, elle doit retourner un nouveau contenu pour le tampon de sortie : celui-ci sera envoyé au navigateur. Si output_callback n'est pas une fonction accessible, la fonction retournera FALSE. Si la fonction de callback a deux paramètres, le second est composé du champ bits constitué par PHP_OUTPUT_HANDLER_START, PHP_OUTPUT_HANDLER_CONT et PHP_OUTPUT_HANDLER_END. Si output_callback retourne FALSE, l'entrée originale est envoyée au navigateur.

Note : En PHP 4.0.4, ob_gzhandler() a été introduite pour faciliter l'envoi de fichiers compressés avec gz aux navigateurs web qui supportent les pages compressées. ob_gzhandler() détermine le type d'encodage accepté par un navigateur, et retourne le contenu le plus adéquat.

Note : Avant PHP 4.3.2, cette fonction ne retournait pas FALSE dans le cas où output_callback ne pouvait être exécutée.

Avertissement

Quelques serveurs web (par exemple Apache) modifient le dossier de travail d'un script lorsqu'il appelle une fonction de callback. Vous pouvez revenir à un comportement normal en ajoutant chdir(dirname($_SERVER['SCRIPT_FILENAME'])) dans votre fonction de callback.

Si le paramètre optionnel chunk_size est passé, la fonction de callback est appelée à chaque nouvelle ligne après chunk_size octets d'affichage. Le paramètre output_callback peut être outrepassé en lui affectant la valeur NULL.

Si le paramètre optionnel erase est défini à FALSE, le tampon ne sera pas effacé tant que le script ne sera pas terminé (depuis PHP 4.3.0).

Les tampons de sortie sont gérés par pile, c'est-à-dire que vous pouvez appeler plusieurs fois ob_start() simultanément. Assurez-vous que vous appelez ob_end_flush() suffisamment souvent. Si plusieurs fonctions de callback sont actives, les contenus seront filtrés séquentiellement, dans l'ordre d'emboîtement.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() et ob_start() ne doivent pas être appelés depuis une fonction de callback. Si vous les appelez depuis une fonction de callback, le comportement ne sera pas défini. Si vous voulez effacer le contenu du tampon, retournez "" (une chaîne vide) comme fonction de callback. Vous ne pourrez jamais appeler les fonctions utilisant la fonction de tamporisation de sortie comme print_r($expression, true) ou highlight_file($filename, true) depuis une fonction de callback.

Exemple 1. Exemple de gestion de sortie avec fonction utilisateur

<?php

function callback($buffer)
{
    // remplace toutes les pommes par des carottes
    return (ereg_replace("pommes de terre", "carottes", $buffer));
}

ob_start("callback");

?>

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

Voir aussi
ob_get_contents(),
ob_end_flush(),
ob_end_clean(),
ob_implicit_flush(),
ob_gzhandler(),
ob_iconv_handler(),
mb_output_handler() et
ob_tidyhandler().

Précédent | Sommaire | Suivant
ob_list_handlers | Niveau supérieur | output_add_rewrite_var


output_add_rewrite_var

(PHP 4 >= 4.3.0, PHP 5)

output_add_rewrite_var -- Ajoute une règle de réécriture d'URL

Description

bool output_add_rewrite_var ( string name, string value )

Cette fonction ajoute une nouvelle paire nom/valeur au mécanisme de réécriture d'URL. Le nom et la valeur sera ajouté aux URLs (en tant que paramètre GET) et aux formulaires (en tant que champs cachés) de la même façon que pour les identifiants de session lorsque la réécriture d'URL est activée avec session.use_trans_sid. Notez que les URLs absolues (http://example.com/..) ne sont pas réécrites.

Ce comportement est contrôlé par l'option url_rewriter.tags du php.ini.

Note : L'appel à cette fonction démarre implicitement la tamporisation de sortie si elle n'est pas déjà activée.

Exemple 1. Exemple avec output_add_rewrite_var()

<?php
output_add_rewrite_var('var', 'value');

// Quelques liens
echo '<a href="file.php">lien</a>
<a href="http://example.com">lien 2</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">lien</a>
<a href="http://example.com">lien 2</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(),
ob_flush() et
ob_list_handlers().

Précédent | Sommaire | Suivant
ob_start | Niveau supérieur | output_reset_rewrite_vars


output_reset_rewrite_vars

(PHP 4 >= 4.3.0, PHP 5)

output_reset_rewrite_vars -- Annule la réécriture d'URL

Description

bool output_reset_rewrite_vars ( void )

Cette fonction annule la règle de réécriture et efface toutes les variables de réécriture précédemment définies avec la fonction output_add_rewrite_var() ou par le mécanisme de session (si session.use_trans_sid a été défini lors de l'utilisation de la fonction session_start()).

Exemple 1. Exemple avec output_reset_rewrite_vars()

<?php
session_start();
output_add_rewrite_var('var', 'value');

echo '<a href="file.php">link</a>';
ob_flush();

output_reset_rewrite_vars();
echo '<a href="file.php">link</a>';
?>

L'exemple ci-dessus va afficher :

<a href="file.php?PHPSESSID=xxx&var=value">link</a>
<a href="file.php">link</a>

Voir aussi
output_add_rewrite_var(),
ob_flush(),
ob_list_handlers() et
session_start().

Précédent | Sommaire | Suivant
output_add_rewrite_var | Niveau supérieur | Ovrimos SQL


Overload

Manuel PHP
Précédent Suivant

CVI. Overload

Introduction

Le but de cette extension est de permettre de maîtriser les appels aux méthodes et aux membres d'un objet. Seule une fonction est définie dans cette extension, overload() qui demande le nom de la classe qui doit supporter cette fonctionnalité. Cette classe doit être pourvue des méthodes nécessaires au bon fonctionnement de l'extension, c'est-à-dire : __get(), __set() et __call(), qui servent respectivement à lire, à modifier un membre et à appeler une méthode. De cette manière, l'overloading assure un contrôle sur les fonctions appelées. À l'intérieur de ces méthodes, l'overloading est désactivé, pour que vous puissiez accéder à l'objet.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Avertissement

Cette extension ne fait pas partie de PHP 5. PHP 5 supporte __get(), __set() et __call() nativement. Voir la page traitant de la surcharge en PHP 5 pour plus d'informations.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Afin d'utiliser ces fonctions, vous devez compiler PHP avec l'option --enable-overload. Depuis PHP 4.3.0, cette extension est activée par défaut. Pour la désactiver, utilisez l'option --disable--overload.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note : Le support par défaut de l'extension overload a été ajouté en PHP 4.3.0.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Exemples

Voici un exemple simple de fonctions utilisant overload() :

Exemple 1. Overload avec une classe PHP

<?php

class OO {
    var $a = 111;
    var $elem = array('b' => 9, 'c' => 42);

    // Fonction de callback pour la lecture de membre
    function __get($prop_name, &$prop_value)
    {
        if (isset($this->elem[$prop_name])) {
            $prop_value = $this->elem[$prop_name];
            return true;
        } else {
            return false;
        }
    }

    // Fonction de callback pour l'écriture de membre
    function __set($prop_name, $prop_value)
    {
        $this->elem[$prop_name] = $prop_value;
        return true;
    }
}

// Ici, l'initiation de l'overload
overload('OO');

$o = new OO;
echo "\$o->a: $o->a\n"; // $o->a: 111
echo "\$o->b: $o->b\n"; // $o->b: 9
echo "\$o->c: $o->c\n"; // $o->c: 42
echo "\$o->d: $o->d\n"; // $o->d:

// ajouter une nouvelle valeur au membre $elem, en programmation OOP
$o->x = 56;

// instantiation de la classe stdclass (elle existe par défaut en PHP 4)
// $val n'est pas overloadée!
$val = new stdclass;
$val->prop = 555;

// Forcez "a" à être un tableau avec l'élément $val
// Mais _set() forcera cet élément dans le tableau $elem
$o->a = array($val);
var_dump($o->a[0]->prop);

?>

Table des matières
overload -- Active la couche de contrôle des membres et méthodes

Précédent | Sommaire | Suivant
deaggregate | Niveau supérieur | overload


overload

(PHP 4 >= 4.2.0)

overload -- Active la couche de contrôle des membres et méthodes

Description

void overload ( string class_name )

overload() active le contrôle des accesseurs et appels de méthodes pour la classe class_name.

Liste de paramètres

class_name

Le nom de la classe surchargée, sous la forme d'une chaîne de caractères

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Voir un exemple dans la section d'introduction de cette partie.

Précédent | Sommaire | Suivant
Overload | Niveau supérieur | Fonctions Oracle


Ovrimos SQL

Manuel PHP
Précédent Suivant

CXVI. Ovrimos SQL

Introduction

Ovrimos SQL Server est une base de données relationnelle client/serveur et transactionnelle, combinée avec des fonctionnalités web, et des transactions rapides.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 4.4.5 et PHP 5.1.0.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Pré-requis

Vous devez installer la bibliothèque sqlcli, qui est disponible dans la distribution de Ovrimos SQL Server.

Installation

Pour activer le support d'Ovrimos en PHP, vous devez compiler PHP avec l'option --with-ovrimos[=DIR]. DIR est le chemin jusqu'au dossier d'Ovrimos qui contient la bibliothèque libsqlcli.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Exemples

Exemple 1. Connexion au serveur Ovrimos SQL Server et sélection d'une table système

<?php
$conn = ovrimos_connect("server.domain.com", "8001", "admin", "password");
if ($conn != 0) {
    echo 'Connexion établie!';
    $res = ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo 'Requête effectuée!';
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
Cet exemple effectue une connexion à un serveur Ovrimos SQL Server.

Table des matières
ovrimos_close -- Ferme une connexion Ovrimos
ovrimos_commit -- Valide une transaction Ovrimos
ovrimos_connect -- Connexion à un serveur
ovrimos_cursor -- Retourne le nom du curseur Ovrimos
ovrimos_exec -- Exécute une requête SQL
ovrimos_execute -- Exécute une requête Ovrimos préparée
ovrimos_fetch_into -- Lit une ligne dans un résultat Ovrimos
ovrimos_fetch_row -- Lit une ligne dans un résultat Ovrimos
ovrimos_field_len -- Retourne la taille d'une colonne Ovrimos
ovrimos_field_name -- Retourne le nom d'une colonne Ovrimos
ovrimos_field_num -- Retourne le numéro de colonne Ovrimos
ovrimos_field_type -- Retourne le type numérique d'une colonne Ovrimos
ovrimos_free_result -- Libère les ressources utilisées par un résultat Ovrimos
ovrimos_longreadlen -- Indique la taille des données à lire dans une colonne de grande taille
ovrimos_num_fields -- Retourne le nombre de colonnes Ovrimos
ovrimos_num_rows -- Retourne le nombre de lignes affectées par une modification Ovrimos
ovrimos_prepare -- Prépare une requête SQL Ovrimos
ovrimos_result_all -- Affiche un résultat Ovrimos sous forme de tableau HTML
ovrimos_result -- Lit le contenu d'une colonne Ovrimos
ovrimos_rollback -- Annule une transaction

Précédent | Sommaire | Suivant
output_reset_rewrite_vars | Niveau supérieur | ovrimos_close


ovrimos_close

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_close -- Ferme une connexion Ovrimos

Description

void ovrimos_close ( int connection )

Ferme la connexion Ovrimos spécifiée. Toutes les transactions non validées sont annulées.

Liste de paramètres

connection

L'identifiant de connexion Ovrimos, retourné par la fonction ovrimos_connect().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

ovrimos_connect()

Précédent | Sommaire | Suivant
Ovrimos SQL | Niveau supérieur | ovrimos_commit


ovrimos_commit

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_commit -- Valide une transaction Ovrimos

Description

bool ovrimos_commit ( int connection_id )

Valide une transaction Ovrimos.

Liste de paramètres

connection_id

L'identifiant de connexion Ovrimos, retourné par la fonction ovrimos_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ovrimos_rollback()

Précédent | Sommaire | Suivant
ovrimos_close | Niveau supérieur | ovrimos_connect


ovrimos_connect

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_connect -- Connexion à un serveur

Description

int ovrimos_connect ( string host, string dborport, string user, string password )

Connexion à un serveur spécifié.

Liste de paramètres

host

Le nom de l'hôte ou l'adresse IP.

dborport

Soit le nom de la base de données, soit le numéro du port de connexion.

user

Le nom d'utilisateur.

password

Le mot de passe associé à l'utilisateur user.

Valeurs de retour

Retourne un identifiant de connexion (supérieur à 0) en cas de succès, ou 0 si une erreur survient.

Exemples

Exemple 1. Exemple avec ovrimos_connect()

<?php
$conn = ovrimos_connect("server.example.com", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connexion ok!";
    $res = ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Requête ok!";
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

Voir aussi

ovrimos_close()

Précédent | Sommaire | Suivant
ovrimos_commit | Niveau supérieur | ovrimos_cursor


ovrimos_cursor

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_cursor -- Retourne le nom du curseur Ovrimos

Description

string ovrimos_cursor ( int result_id )

Retourne le nom du curseur Ovrimos. Pratique, lorsqu'on veut faire des modifications ou des effacements avec des curseurs déjà positionnés.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

Valeurs de retour

Retourne le nom, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
ovrimos_connect | Niveau supérieur | ovrimos_exec


ovrimos_exec

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_exec -- Exécute une requête SQL

Description

int ovrimos_exec ( int connection_id, string query )

Exécute une requête SQL (sélection ou modification), et retourne un identifiant de résultat.

Liste de paramètres

connection_id

Un identifiant de connexion Ovrimos, retourné par la fonction ovrimos_connect().

query

La requête SQL. Évidemment, la requête SQL ne doit pas contenir de paramètres. Utilisez la fonction ovrimos_prepare() pour les requêtes préparées.

Valeurs de retour

Retourne l'identifiant de résultat, sous la forme d'un entier, ou FALSE si une erreur survient.

Voir aussi

ovrimos_execute()
ovrimos_prepare()

Précédent | Sommaire | Suivant
ovrimos_cursor | Niveau supérieur | ovrimos_execute


ovrimos_execute

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_execute -- Exécute une requête Ovrimos préparée

Description

bool ovrimos_execute ( int result_id [, array parameters_array] )

Exécute une requête Ovrimos préparée.

Liste de paramètres

result_id

Un identifiant de résultat Ovrimos, préparé par la fonction ovrimos_prepare().

parameters_array

Si la requête préparée contient des paramètres (des points d'interrogation dans la requête), un nombre correct de paramètres doit être passé dans le tableau.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ovrimos_prepare()

Précédent | Sommaire | Suivant
ovrimos_exec | Niveau supérieur | ovrimos_fetch_into


ovrimos_fetch_into

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_fetch_into -- Lit une ligne dans un résultat Ovrimos

Description

bool ovrimos_fetch_into ( int result_id, array &result_array [, string how [, int rownumber]] )

Lit une ligne depuis le jeu de résultats fourni, dans le tableau result_array.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

result_array

Vous devez passer un tableau par référence. Il sera complété par les valeurs récupérées.

how

Détermine la façon dont les lignes sont récupérées. Peut être une des chaînes suivantes (la casse n'est pas significatif) :

Option | Notes
Next | Suivant par rapport à la position courante. C'est la valeur par défaut.
Prev | Précédent par rapport à la position courante.
First | Premier.
Last | Dernier.
Absolute | Position absolue, par rapport au premier. Nécessite le paramètre rownumber.

rownumber

Le numéro de la ligne, en commançant à 0. Seulement nécessaire lorsque how est défini à Absolute.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple de récupération

<?php
$conn=ovrimos_connect("neptune", "8001", "admin", "password");
if ($conn!=0) {
    echo "Connexion ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Requête ok!";
        if (ovrimos_fetch_into($res, &$row)) {
            list($table_id, $table_name) = $row;
            echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            if (ovrimos_fetch_into($res, &$row)) {
                list($table_id, $table_name) = $row;
                echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            } else {
                echo "Suivant : erreur\n";
            }
        } else {
            echo "Premier : erreur\n";
        }
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

Voir aussi

ovrimos_fetch_row()

Précédent | Sommaire | Suivant
ovrimos_execute | Niveau supérieur | ovrimos_fetch_row


ovrimos_fetch_row

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_fetch_row -- Lit une ligne dans un résultat Ovrimos

Description

bool ovrimos_fetch_row ( int result_id [, int how [, int row_number]] )

Lit une ligne depuis un jeu de résultat. Les valeurs des colonnes peuvent récupérées avec d'autres appels.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

how

Détermine la façon dont les lignes sont récupérées. Peut être une des chaînes suivantes (la casse n'est pas significative) :

Option | Notes
Next | Suivant, par rapport à la position courante. C'est la valeur par défaut.
Prev | Précédent, par rapport à la position courante.
First | Premier.
Last | Dernier.
Absolute | Position absolue, par rapport au premier. Nécessite le paramètre rownumber.

rownumber

Le numéro de la ligne, en commançant à 0. Seulement nécessaire lorsque how est défini à Absolute.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple de récupération d'une ligne

<?php
$conn = ovrimos_connect("remote.host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connexion ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Requête ok!";
        if (ovrimos_fetch_row($res, "First")) {
            $table_id = ovrimos_result($res, 1);
            $table_name = ovrimos_result($res, 2);
            echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            if (ovrimos_fetch_row($res, "Next")) {
                $table_id = ovrimos_result($res, "table_id");
                $table_name = ovrimos_result($res, "table_name");
                echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            } else {
                echo "Suivant : erreur\n";
            }
        } else {
            echo "Premier : erreur\n";
        }
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
Récupérera une ligne et affichera le résultat.

Voir aussi

ovrimos_fetch_into()

Précédent | Sommaire | Suivant
ovrimos_fetch_into | Niveau supérieur | ovrimos_field_len


ovrimos_field_len

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_len -- Retourne la taille d'une colonne Ovrimos

Description

int ovrimos_field_len ( int result_id, int field_number )

Retourne la taille d'une colonne Ovrimos spécifiée.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

field_number

Le numéro du champ. La numérotation commence à 1.

Valeurs de retour

Retourne la taille, sous la forme d'un entier, ou FALSE si une erreur survient.

Voir aussi

ovrimos_field_name()
ovrimos_field_num()
ovrimos_field_type()

Précédent | Sommaire | Suivant
ovrimos_fetch_row | Niveau supérieur | ovrimos_field_name


ovrimos_field_name

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_name -- Retourne le nom d'une colonne Ovrimos

Description

string ovrimos_field_name ( int result_id, int field_number )

Retourne le nom d'une colonne Ovrimos à un index spécifié.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

field_number

Le numéro du champ. La numérotation commence à 1.

Valeurs de retour

Retourne le nom du champ, sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Voir aussi

ovrimos_field_len()
ovrimos_field_num()
ovrimos_field_type()

Précédent | Sommaire | Suivant
ovrimos_field_len | Niveau supérieur | ovrimos_field_num


ovrimos_field_num

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_num -- Retourne le numéro de colonne Ovrimos

Description

int ovrimos_field_num ( int result_id, string field_name )

Retourne le numéro de colonne Ovrimos spécifiée.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

field_name

Le nom du champ.

Valeurs de retour

Retourne l'index, en commançant à 1, ou FALSE si une erreur survient.

Voir aussi

ovrimos_field_len()
ovrimos_field_name()
ovrimos_field_type()

Précédent | Sommaire | Suivant
ovrimos_field_name | Niveau supérieur | ovrimos_field_type


ovrimos_field_type

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_type -- Retourne le type numérique d'une colonne Ovrimos

Description

int ovrimos_field_type ( int result_id, int field_number )

Retourne le type numérique d'une colonne Ovrimos.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

field_number

Un index, en commençant à 0.

Valeurs de retour

Retourne le type du champ, sous la forme d'un entier, ou FALSE si une erreur survient.

Voir aussi

ovrimos_field_len()
ovrimos_field_name()
ovrimos_field_num()

Précédent | Sommaire | Suivant
ovrimos_field_num | Niveau supérieur | ovrimos_free_result


ovrimos_free_result

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_free_result -- Libère les ressources utilisées par un résultat Ovrimos

Description

bool ovrimos_free_result ( int result_id )

Libère les ressources utilisées par un résultat Ovrimos.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

Valeurs de retour

Retourne TRUE.

Précédent | Sommaire | Suivant
ovrimos_field_type | Niveau supérieur | ovrimos_longreadlen


ovrimos_longreadlen

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_longreadlen -- Indique la taille des données à lire dans une colonne de grande taille

Description

bool ovrimos_longreadlen ( int result_id, int length )

Indique le nombre d'octets qui seront lus dans une colonne de grande taille (long varchar et long varbinary).

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

length

Le nombre d'octets à récupérer. Par défaut, 0.

Valeurs de retour

Retourne TRUE.

Précédent | Sommaire | Suivant
ovrimos_free_result | Niveau supérieur | ovrimos_num_fields


ovrimos_num_fields

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_num_fields -- Retourne le nombre de colonnes Ovrimos

Description

int ovrimos_num_fields ( int result_id )

Retourne le nombre de colonnes dans l'identifiant de résultat spécifié.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

Valeurs de retour

Retourne le nombre de colonnes, sous la forme d'un entier, ou FALSE si une erreur survient.

Voir aussi

ovrimos_num_rows()

Précédent | Sommaire | Suivant
ovrimos_longreadlen | Niveau supérieur | ovrimos_num_rows


ovrimos_num_rows

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_num_rows -- Retourne le nombre de lignes affectées par une modification Ovrimos

Description

int ovrimos_num_rows ( int result_id )

Retourne le nombre de lignes affectées par une modification Ovrimos.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier, ou FALSE si une erreur survient.

Voir aussi

ovrimos_num_fields()

Précédent | Sommaire | Suivant
ovrimos_num_fields | Niveau supérieur | ovrimos_prepare


ovrimos_prepare

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_prepare -- Prépare une requête SQL Ovrimos

Description

int ovrimos_prepare ( int connection_id, string query )

Prépare une requête SQL Ovrimos.

Liste de paramètres

connection_id

Un identifiant de connexion Ovrimos, retourné par la fonction ovrimos_connect().

query

La requête SQL.

Valeurs de retour

Retourne un identifiant de résultat en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec ovrimos_prepare()

<?php
$conn=ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn!=0) {
    echo "Connexion ok!";

    // Prepare the statement
    $res=ovrimos_prepare($conn, "select table_id, table_name
                                  from sys.tables where table_id=1");
    if ($res != 0) {
        echo "Préparation ok!";
        // Execute the prepared statement
        if (ovrimos_execute($res)) {
            echo "Exécution ok!\n";
            ovrimos_result_all($res);
        } else {
            echo "Erreur lors de l'exécution !";
        }
        ovrimos_free_result($res);
    } else {
        echo "Erreur lors de la préparation !\n";
    }
    ovrimos_close($conn);
}
?>

Précédent | Sommaire | Suivant
ovrimos_num_rows | Niveau supérieur | ovrimos_result_all


ovrimos_result_all

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_result_all -- Affiche un résultat Ovrimos sous forme de tableau HTML

Description

int ovrimos_result_all ( int result_id [, string format] )

Affiche un résultat Ovrimos sous forme de tableau HTML.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

format

Attributs HTML optionnels pour les éléments du tableau généré.

Valeurs de retour

Retourne le nombre de lignes générées dans le tableau.

Exemples

Exemple 1. Prépare une requête, l'exécute sur Ovrimos et affiche le résultat.

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connexion ok!";
    $res = ovrimos_prepare($conn, "select table_id, table_name
                                    from sys.tables where table_id = 7");
    if ($res != 0) {
        echo "Préparation ok!";
        if (ovrimos_execute($res, array(3))) {
            echo "Exécution ok!\n";
            ovrimos_result_all($res);
        } else {
            echo "Erreur lors de l'exécution !";
        }
        ovrimos_free_result($res);
    } else {
        echo "Erreur lors de la préparation !\n";
    }
    ovrimos_close($conn);
}
?>

Exemple 2. ovrimos_result_all() avec meta-information

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connexion ok!";
    $res = ovrimos_exec($conn, "select table_id, table_name
                                 from sys.tables where table_id = 1");
    if ($res != 0) {
        echo "Requête ok! curseur=" . ovrimos_cursor($res) . "\n";
        $colnb = ovrimos_num_fields($res);
        echo "Colonnes affichées=" . $colnb . "\n";
        for ($i=1; $i <= $colnb; $i++) {
            $name = ovrimos_field_name($res, $i);
            $type = ovrimos_field_type($res, $i);
            $len = ovrimos_field_len($res, $i);
            echo "Colonne " . $i . " nom=" . $name . " type=" . $type . " taille=" . $len . "\n";
        }
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

Précédent | Sommaire | Suivant
ovrimos_prepare | Niveau supérieur | ovrimos_result


ovrimos_result

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_result -- Lit le contenu d'une colonne Ovrimos

Description

string ovrimos_result ( int result_id, mixed field )

Lit le contenu de la colonne field.

Liste de paramètres

result_id

Un identifiant de résultat, retourné par la fonction ovrimos_execute() ou la fonction ovrimos_exec().

field

Soit une chaîne de caractères représentant le nom du champ, soit son index (en commençant à 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.

Précédent | Sommaire | Suivant
ovrimos_result_all | Niveau supérieur | ovrimos_rollback


ovrimos_rollback

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_rollback -- Annule une transaction

Description

bool ovrimos_rollback ( int connection_id )

Annule la transaction courante.

Liste de paramètres

connection_id

Un identifiant de connexion Ovrimos, retourné par la fonction ovrimos_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ovrimos_commit()

Précédent | Sommaire | Suivant
ovrimos_result | Niveau supérieur | Accès aux fichiers Paradox


Fonctions Parsekit

Manuel PHP
Précédent Suivant

CXVIII. Fonctions Parsekit

Introduction

Ces fonctions vous permettent d'analyser en cours de fonctionnement l'opcode compilé depuis vos scripts PHP.

Installation

Cette extension PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/parsekit.

La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

PARSEKIT_QUIET (entier)

Retourne tous les détails mais sans les entrées NULL non nécessaire.

PARSEKIT_SIMPLE (entier)

Retourne une notation opcode abrégée.

PARSEKIT_EXTENDED_VALUE (entier)

Flag d'un noeud opcode

PARSEKIT_RESULT_CONST (entier)

Flag d'un noeud opcode

PARSEKIT_RESULT_EA_TYPE (entier)

Flag d'un noeud opcode

PARSEKIT_RESULT_JMP_ADDR (entier)

Flag d'un noeud opcode

PARSEKIT_RESULT_OPARRAY (entier)

Flag d'un noeud opcode

PARSEKIT_RESULT_OPLINE (entier)

Flag d'un noeud opcode

PARSEKIT_RESULT_VAR (entier)

Flag d'un noeud opcode

PARSEKIT_USAGE_UNKNOWN (entier)

Flag d'un noeud opcode

PARSEKIT_ZEND_INTERNAL_CLASS (entier)

Type de la classe

PARSEKIT_ZEND_USER_CLASS (entier)

Type de la classe

PARSEKIT_ZEND_EVAL_CODE (entier)

Type de la fonction

PARSEKIT_ZEND_INTERNAL_FUNCTION (entier)

Type de la fonction

PARSEKIT_ZEND_OVERLOADED_FUNCTION (entier)

Type de la fonction

PARSEKIT_ZEND_OVERLOADED_FUNCTION_TEMPORARY (entier) PHP >= 5.0.0

Type de la fonction

PARSEKIT_ZEND_USER_FUNCTION (entier)

Type de la fonction

PARSEKIT_IS_CONST (entier)

Type du noeud

PARSEKIT_IS_TMP_VAR (entier)

Type du noeud

PARSEKIT_IS_UNUSED (entier)

Type du noeud

PARSEKIT_IS_VAR (entier)

Type du noeud

PARSEKIT_ZEND_ADD (entier)

Opcode

PARSEKIT_ZEND_ADD_ARRAY_ELEMENT (entier)

Opcode

PARSEKIT_ZEND_ADD_CHAR (entier)

Opcode

PARSEKIT_ZEND_ADD_INTERFACE (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_ADD_STRING (entier)

Opcode

PARSEKIT_ZEND_ADD_VAR (entier)

Opcode

PARSEKIT_ZEND_ASSIGN (entier)

Opcode

PARSEKIT_ZEND_ASSIGN_ADD (entier)

Opcode

PARSEKIT_ZEND_ASSIGN_BW_AND (entier)

Opcode

PARSEKIT_ZEND_ASSIGN_BW_OR (entier)

Opcode

PARSEKIT_ZEND_ASSIGN_BW_XOR (entier)

Opcode

PARSEKIT_ZEND_ASSIGN_CONCAT (entier)

Opcode

PARSEKIT_ZEND_ASSIGN_DIM (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_ASSIGN_DIV (entier)

Opcode

PARSEKIT_ZEND_ASSIGN_MOD (entier)

Opcode

PARSEKIT_ZEND_ASSIGN_MUL (entier)

Opcode

PARSEKIT_ZEND_ASSIGN_OBJ (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_ASSIGN_REF (entier)

Opcode

PARSEKIT_ZEND_ASSIGN_SL (entier)

Opcode

PARSEKIT_ZEND_ASSIGN_SR (entier)

Opcode

PARSEKIT_ZEND_ASSIGN_SUB (entier)

Opcode

PARSEKIT_ZEND_BEGIN_SILENCE (entier)

Opcode

PARSEKIT_ZEND_BOOL (entier)

Opcode

PARSEKIT_ZEND_BOOL_NOT (entier)

Opcode

PARSEKIT_ZEND_BOOL_XOR (entier)

Opcode

PARSEKIT_ZEND_BRK (entier)

Opcode

PARSEKIT_ZEND_BW_AND (entier)

Opcode

PARSEKIT_ZEND_BW_NOT (entier)

Opcode

PARSEKIT_ZEND_BW_OR (entier)

Opcode

PARSEKIT_ZEND_BW_XOR (entier)

Opcode

PARSEKIT_ZEND_CASE (entier)

Opcode

PARSEKIT_ZEND_CAST (entier)

Opcode

PARSEKIT_ZEND_CATCH (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_CLONE (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_CONCAT (entier)

Opcode

PARSEKIT_ZEND_CONT (entier)

Opcode

PARSEKIT_ZEND_DECLARE_CLASS (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_DECLARE_FUNCTION (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_DECLARE_INHERITED_CLASS (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_DIV (entier)

Opcode

PARSEKIT_ZEND_DO_FCALL (entier)

Opcode

PARSEKIT_ZEND_DO_FCALL_BY_NAME (entier)

Opcode

PARSEKIT_ZEND_ECHO (entier)

Opcode

PARSEKIT_ZEND_END_SILENCE (entier)

Opcode

PARSEKIT_ZEND_EXIT (entier)

Opcode

PARSEKIT_ZEND_EXT_FCALL_BEGIN (entier)

Opcode

PARSEKIT_ZEND_EXT_FCALL_END (entier)

Opcode

PARSEKIT_ZEND_EXT_NOP (entier)

Opcode

PARSEKIT_ZEND_EXT_STMT (entier)

Opcode

PARSEKIT_ZEND_FETCH_CLASS (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_FETCH_CONSTANT (entier)

Opcode

PARSEKIT_ZEND_FETCH_DIM_FUNC_ARG (entier)

Opcode

PARSEKIT_ZEND_FETCH_DIM_IS (entier)

Opcode

PARSEKIT_ZEND_FETCH_DIM_R (entier)

Opcode

PARSEKIT_ZEND_FETCH_DIM_RW (entier)

Opcode

PARSEKIT_ZEND_FETCH_DIM_TMP_VAR (entier)

Opcode

PARSEKIT_ZEND_FETCH_DIM_UNSET (entier)

Opcode

PARSEKIT_ZEND_FETCH_DIM_W (entier)

Opcode

PARSEKIT_ZEND_FETCH_FUNC_ARG (entier)

Opcode

PARSEKIT_ZEND_FETCH_IS (entier)

Opcode

PARSEKIT_ZEND_FETCH_OBJ_FUNC_ARG (entier)

Opcode

PARSEKIT_ZEND_FETCH_OBJ_IS (entier)

Opcode

PARSEKIT_ZEND_FETCH_OBJ_R (entier)

Opcode

PARSEKIT_ZEND_FETCH_OBJ_RW (entier)

Opcode

PARSEKIT_ZEND_FETCH_OBJ_UNSET (entier)

Opcode

PARSEKIT_ZEND_FETCH_OBJ_W (entier)

Opcode

PARSEKIT_ZEND_FETCH_R (entier)

Opcode

PARSEKIT_ZEND_FETCH_RW (entier)

Opcode

PARSEKIT_ZEND_FETCH_UNSET (entier)

Opcode

PARSEKIT_ZEND_FETCH_W (entier)

Opcode

PARSEKIT_ZEND_FE_FETCH (entier)

Opcode

PARSEKIT_ZEND_FE_RESET (entier)

Opcode

PARSEKIT_ZEND_FREE (entier)

Opcode

PARSEKIT_ZEND_HANDLE_EXCEPTION (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_IMPORT_CLASS (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_IMPORT_CONST (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_IMPORT_FUNCTION (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_INCLUDE_OR_EVAL (entier)

Opcode

PARSEKIT_ZEND_INIT_ARRAY (entier)

Opcode

PARSEKIT_ZEND_INIT_CTOR_CALL (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_INIT_FCALL_BY_NAME (entier)

Opcode

PARSEKIT_ZEND_INIT_METHOD_CALL (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_INIT_STATIC_METHOD_CALL (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_INIT_STRING (entier)

Opcode

PARSEKIT_ZEND_INSTANCEOF (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_ISSET_ISEMPTY (entier) PHP < 5.0.0

Opcode

PARSEKIT_ZEND_ISSET_ISEMPTY_DIM_OBJ (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_ISSET_ISEMPTY_PROP_OBJ (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_ISSET_ISEMPTY_VAR (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_IS_EQUAL (entier)

Opcode

PARSEKIT_ZEND_IS_IDENTICAL (entier)

Opcode

PARSEKIT_ZEND_IS_NOT_EQUAL (entier)

Opcode

PARSEKIT_ZEND_IS_NOT_IDENTICAL (entier)

Opcode

PARSEKIT_ZEND_IS_SMALLER (entier)

Opcode

PARSEKIT_ZEND_IS_SMALLER_OR_EQUAL (entier)

Opcode

PARSEKIT_ZEND_JMP (entier)

Opcode

PARSEKIT_ZEND_JMPNZ (entier)

Opcode

PARSEKIT_ZEND_JMPNZ_EX (entier)

Opcode

PARSEKIT_ZEND_JMPZ (entier)

Opcode

PARSEKIT_ZEND_JMPZNZ (entier)

Opcode

PARSEKIT_ZEND_JMPZ_EX (entier)

Opcode

PARSEKIT_ZEND_JMP_NO_CTOR (entier)

Opcode

PARSEKIT_ZEND_MOD (entier)

Opcode

PARSEKIT_ZEND_MUL (entier)

Opcode

PARSEKIT_ZEND_NEW (entier)

Opcode

PARSEKIT_ZEND_NOP (entier)

Opcode

PARSEKIT_ZEND_OP_DATA (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_POST_DEC (entier)

Opcode

PARSEKIT_ZEND_POST_DEC_OBJ (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_POST_INC (entier)

Opcode

PARSEKIT_ZEND_POST_INC_OBJ (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_PRE_DEC (entier)

Opcode

PARSEKIT_ZEND_PRE_DEC_OBJ (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_PRE_INC (entier)

Opcode

PARSEKIT_ZEND_PRE_INC_OBJ (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_PRINT (entier)

Opcode

PARSEKIT_ZEND_QM_ASSIGN (entier)

Opcode

PARSEKIT_ZEND_RAISE_ABSTRACT_ERROR (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_RECV (entier)

Opcode

PARSEKIT_ZEND_RECV_INIT (entier)

Opcode

PARSEKIT_ZEND_RETURN (entier)

Opcode

PARSEKIT_ZEND_SEND_REF (entier)

Opcode

PARSEKIT_ZEND_SEND_VAL (entier)

Opcode

PARSEKIT_ZEND_SEND_VAR (entier)

Opcode

PARSEKIT_ZEND_SEND_VAR_NO_REF (entier)

Opcode

PARSEKIT_ZEND_SL (entier)

Opcode

PARSEKIT_ZEND_SR (entier)

Opcode

PARSEKIT_ZEND_SUB (entier)

Opcode

PARSEKIT_ZEND_SWITCH_FREE (entier)

Opcode

PARSEKIT_ZEND_THROW (entier) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_TICKS (entier)

Opcode

PARSEKIT_ZEND_UNSET_DIM_OBJ (entier)

Opcode

PARSEKIT_ZEND_UNSET_VAR (entier)

Opcode

PARSEKIT_ZEND_VERIFY_ABSTRACT_CLASS (entier) PHP >= 5.0.0

Opcode

Table des matières
parsekit_compile_file -- Compile un fichier de code PHP et retourne le tableau d'opcode résultant
parsekit_compile_string -- Compile une chaîne de code PHP et retourne le tableau d'opcode résultant
parsekit_func_arginfo -- Retourne des informations concernant les arguments d'une fonction

Précédent | Sommaire | Suivant
px_update_record | Niveau supérieur | parsekit_compile_file


parsekit_compile_file

(PECL)

parsekit_compile_file -- Compile un fichier de code PHP et retourne le tableau d'opcode résultant

Description

array parsekit_compile_file ( string filename [, array &errors [, int options]] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

filename

Une chaîne contenant le nom du fichier à compiler. Similaire à l'argument de include().

errors

Un hash 2D des erreurs (incluant les erreurs fatales) rencontrées pendant la compilation. Retourné par référence.

options

Soit PARSEKIT_QUIET, soit PARSEKIT_SIMPLE. Pour produire plusieurs degrès de retour dans la chaîne retournée.

Valeurs de retour

Retourne un tableau complexe multi-dimensionnel, structuré comme ci-dessous.

Exemples

Exemple 1. Exemple avec parsekit_compile_file()

<?php
var_dump(parsekit_compile_file('bonjour_le_monde.php', $errors, PARSEKIT_SIMPLE));
?>

L'exemple ci-dessus va afficher :

array(5) {
  [0]=>
  string(37) "ZEND_ECHO UNUSED 'Bonjour le monde' UNUSED"
  [1]=>
  string(30) "ZEND_RETURN UNUSED NULL UNUSED"
  [2]=>
  string(42) "ZEND_HANDLE_EXCEPTION UNUSED UNUSED UNUSED"
  ["function_table"]=>
  NULL
  ["class_table"]=>
  NULL
}

Voir aussi

parsekit_compile_string()

Précédent | Sommaire | Suivant
Fonctions Parsekit | Niveau supérieur | parsekit_compile_string


parsekit_compile_string

(PECL)

parsekit_compile_string -- Compile une chaîne de code PHP et retourne le tableau d'opcode résultant

Description

array parsekit_compile_string ( string phpcode [, array &errors [, int options]] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

phpcode

Une chaîne contenant du code PHP. Similaire à l'argument de eval().

errors

Un hash 2D des erreurs (incluant les erreurs fatales) rencontrées pendant la compilation. Retourné par référence.

options

Soit PARSEKIT_QUIET, soit PARSEKIT_SIMPLE. Pour produire plusieurs degrès de retour dans la chaîne retournée.

Valeurs de retour

Retourne un tableau complexe multi-dimensionnel, structuré comme ci-dessous.

Exemples

Exemple 1. Exemple avec parsekit_compile_string()

<?php
  $ops = parsekit_compile_string('
echo "Foo\n";
', $errors, PARSEKIT_QUIET);

  var_dump($ops);
?>

L'exemple ci-dessus va afficher :

array(20) {
  ["type"]=>
  int(4)
  ["type_name"]=>
  string(14) "ZEND_EVAL_CODE"
  ["fn_flags"]=>
  int(0)
  ["num_args"]=>
  int(0)
  ["required_num_args"]=>
  int(0)
  ["pass_rest_by_reference"]=>
  bool(false)
  ["uses_this"]=>
  bool(false)
  ["line_start"]=>
  int(0)
  ["line_end"]=>
  int(0)
  ["return_reference"]=>
  bool(false)
  ["refcount"]=>
  int(1)
  ["last"]=>
  int(3)
  ["size"]=>
  int(3)
  ["T"]=>
  int(0)
  ["last_brk_cont"]=>
  int(0)
  ["current_brk_cont"]=>
  int(-1)
  ["backpatch_count"]=>
  int(0)
  ["done_pass_two"]=>
  bool(true)
  ["filename"]=>
  string(17) "Parsekit Compiler"
  ["opcodes"]=>
  array(3) {
    [8594800]=>
    array(5) {
      ["opcode"]=>
      int(40)
      ["opcode_name"]=>
      string(9) "ZEND_ECHO"
      ["flags"]=>
      int(768)
      ["op1"]=>
      array(3) {
        ["type"]=>
        int(1)
        ["type_name"]=>
        string(8) "IS_CONST"
        ["constant"]=>
        &string(4) "Foo
"
      }
      ["lineno"]=>
      int(2)
    }
    ["859484C"]=>
    array(6) {
      ["opcode"]=>
      int(62)
      ["opcode_name"]=>
      string(11) "ZEND_RETURN"
      ["flags"]=>
      int(16777984)
      ["op1"]=>
      array(3) {
        ["type"]=>
        int(1)
        ["type_name"]=>
        string(8) "IS_CONST"
        ["constant"]=>
        &NULL
      }
      ["extended_value"]=>
      int(0)
      ["lineno"]=>
      int(3)
    }
    [8594898]=>
    array(4) {
      ["opcode"]=>
      int(149)
      ["opcode_name"]=>
      string(21) "ZEND_HANDLE_EXCEPTION"
      ["flags"]=>
      int(0)
      ["lineno"]=>
      int(3)
    }
  }
}

Voir aussi

parsekit_compile_file()

Précédent | Sommaire | Suivant
parsekit_compile_file | Niveau supérieur | parsekit_func_arginfo


parsekit_func_arginfo

(PECL)

parsekit_func_arginfo -- Retourne des informations concernant les arguments d'une fonction

Description

array parsekit_func_arginfo ( mixed function )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

function

Une chaîne décrivant une fonction ou un tableau décrivant une classe/méthode.

Valeurs de retour

Retourne un tableau contenant les informations sur les arguments.

Exemples

Exemple 1. Exemple avec parsekit_func_arginfo()

<?php
function foo($bar, stdClass $baz, &$bomb, $bling = false) {
}

var_dump(parsekit_func_arginfo('foo'));
?>

L'exemple ci-dessus va afficher :

array(4) {
  [0]=>
  array(3) {
    ["name"]=>
    string(3) "bar"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(false)
  }
  [1]=>
  array(4) {
    ["name"]=>
    string(3) "baz"
    ["class_name"]=>
    string(8) "stdClass"
    ["allow_null"]=>
    bool(false)
    ["pass_by_reference"]=>
    bool(false)
  }
  [2]=>
  array(3) {
    ["name"]=>
    string(4) "bomb"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(true)
  }
  [3]=>
  array(3) {
    ["name"]=>
    string(5) "bling"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(false)
  }
}

Précédent | Sommaire | Suivant
parsekit_compile_string | Niveau supérieur | Contrôle des processus


Contrôle des processus

Manuel PHP
Précédent Suivant

CXIX. Contrôle des processus

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 gestionaire 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 (Addison-Wesley).

PCNTL utilise maintenant les ticks comme mécanisme de callback 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 utilisateurs". Vous utilisez declare() pour spécifier les endroits de votre programme où les callbacks peuvent être appelés. Cela vous permet de minimaliser la consommation dûe à la gestion d'événements asynchrones. Par le passé, compiler PHP avec pcntl revenait toujours à souffrir cette consommation, même si votre script n'utilisait pas pcntl.

Il y'a un ajustement à faire pour tous les scripts pcntl basés sur une version antérieure à PHP 4.3.0 afin qu'ils puissent fonctionner : il faut soit utiliser declare() dans la section où vous voulez avoir le callback, soit l'activer pour tout le script avec la nouvelle syntaxe globale de declare().

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

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.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

La liste suivante représente les signaux supportés par les fonctions de gestion des processus. Reportez-vous au manuel de votre système (signal(7)) pour plus de détails sur ces signaux.

WNOHANG (entier)

WUNTRACED (entier)

SIG_IGN (entier)

SIG_DFL (entier)

SIG_ERR (entier)

SIGHUP (entier)

SIGINT (entier)

SIGQUIT (entier)

SIGILL (entier)

SIGTRAP (entier)

SIGABRT (entier)

SIGIOT (entier)

SIGBUS (entier)

SIGFPE (entier)

SIGKILL (entier)

SIGUSR1 (entier)

SIGSEGV (entier)

SIGUSR2 (entier)

SIGPIPE (entier)

SIGALRM (entier)

SIGTERM (entier)

SIGSTKFLT (entier)

SIGCLD (entier)

SIGCHLD (entier)

SIGCONT (entier)

SIGSTOP (entier)

SIGTSTP (entier)

SIGTTIN (entier)

SIGTTOU (entier)

SIGURG (entier)

SIGXCPU (entier)

SIGXFSZ (entier)

SIGVTALRM (entier)

SIGPROF (entier)

SIGWINCH (entier)

SIGPOLL (entier)

SIGIO (entier)

SIGPWR (entier)

SIGSYS (entier)

SIGBABY (entier)

Exemples

Cet exemple forke un processus démon, avec un gestionnaire de signaux.

Exemple 1. Exemple de contrôle de processus

<?php

$pid = pcntl_fork();
if ($pid == -1) {
  die("impossible de forker");
} elseif ($pid) {
   exit(); // nous sommes le processus père
} else {
   //nous sommes le processus fils
}

// détachons le processus du terminal
if (!posix_setsid()) {
  die("impossible de se détacher du terminal");
}

// setup signal handlers
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
     }

}

?>

Voir aussi

Un tour par la section sur les fonctions POSIX peut être utile.

Table des matières
pcntl_alarm -- Planifie une alarme pour délivrer un signal
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_setpriority -- Change la priorité d'un processus
pcntl_signal -- Installe un gestionnaire de signaux
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

Précédent | Sommaire | Suivant
parsekit_func_arginfo | Niveau supérieur | pcntl_alarm


pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5)

pcntl_alarm -- Planifie une alarme pour délivrer un signal

Description

int pcntl_alarm ( int seconds )

Créé un compte à rebours qui enverra un signal SIGALRM au processus après seconds secondes. Tout appel à pcntl_alarm() annulera les comptes à rebours précédement 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.

Précédent | Sommaire | Suivant
Contrôle des processus | Niveau supérieur | pcntl_exec


pcntl_exec

(PHP 4 >= 4.2.0, PHP 5)

pcntl_exec -- Exécute le programme indiqué dans l'espace courant de processus

Description

void pcntl_exec ( string path [, array args [, array envs]] )

Exécute le programme indiqué dans l'espace courant de processus.

Liste de paramètres

path

path doit être le chemin vers un binaire exécutable ou un script avec un chemin valide pointant vers un exécutale à la première ligne (par exemple #!/usr/local/bin/perl). Voir les pages d'aide de votre système concernant execve(2) pour plus d'informations.

args

args est un tableau d'arguments sous la forme de chaînes de caractères passées au programme.

envs

envs est un tableau de chaînes de caractères qui sont passées au programme comme variables d'environnement. Le tableau est de la forme nom => valeur, la clé est le nom de la variable d'environnement et la valeur est la valeur de cette variable.

Valeurs de retour

Retourne FALSE si une erreur survient et ne retourne rien en cas de succès.

Précédent | Sommaire | Suivant
pcntl_alarm | Niveau supérieur | pcntl_fork


pcntl_fork

(PHP 4 >= 4.1.0, PHP 5)

pcntl_fork -- Duplique le process courant

Description

int pcntl_fork ( void )

pcntl_fork() crée un processus fils, qui ne diffère du processus père que par l'identifiant de processus et l'identifiant PPID. Reportez-vous à la page de man fork(2) pour avoir des détails sur le comportement de cette fonction sur votre système.

Valeurs de retour

En cas de succès, le PID (identifiant de processus) du fils est retourné dans le processus père, et 0 est retourné dans le processus fils. En cas d'échec, -1 est retourné dans le contexte du père, aucun processus fils ne sera créé et PHP générera une erreur.

Exemples

Exemple 1. Exemple avec pcntl_fork()

<?php

$pid = pcntl_fork();
if ($pid == -1) {
     die('dupplication impossible');
} else if ($pid) {
     // le père
     pcntl_wait($status); // Protège encore des enfants zombies
} else {
     // le fils
}

?>

Voir aussi

pcntl_waitpid()
pcntl_signal()

Précédent | Sommaire | Suivant
pcntl_exec | Niveau supérieur | pcntl_getpriority


pcntl_getpriority

(PHP 5)

pcntl_getpriority -- Retourne la priorité d'un processus

Description

int pcntl_getpriority ( [int pid [, int process_identifier]] )

pcntl_getpriority() retourne la priorité de pid. Comme les niveaux de priorités changent entre les types de systèmes et les versions de kernel, lisez la page de manuel getpriority(2) de votre système pour des détails spécifiques.

Liste de paramètres

pid

Si non spécifié, le pid du processus courant est utilisé.

process_identifier

Une constante parmi PRIO_PGRP, PRIO_USER ou PRIO_PROCESS.

Valeurs de retour

pcntl_getpriority() retourne la priorité du processus ou FALSE en cas d'erreur. Une valeur numérique plus petite rend la planification plus favorable.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi

pcntl_setpriority()

Précédent | Sommaire | Suivant
pcntl_fork | Niveau supérieur | pcntl_setpriority


pcntl_setpriority

(PHP 5)

pcntl_setpriority -- Change la priorité d'un processus

Description

bool pcntl_setpriority ( int priority [, int pid [, int process_identifier]] )

pcntl_setpriority() change la priorité de pid à priority.

Liste de paramètres

priority

priority est généralement une valeur allant de -20 à 20. La priorité par défaut est 0 tandis qu'une valeur numérique plus petite favorise une meilleure planification. Comme les niveaux de priorité changent entre les types de systèmes et les versions de kernel, lisez la page de manuel getpriority(2) de votre système pour des détails spécifiques.

pid

Si non spécifié, le pid du processus courant est utilisé.

process_identifier

Une constante parmi PRIO_PGRP, PRIO_USER ou PRIO_PROCESS.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

pcntl_getpriority()

Précédent | Sommaire | Suivant
pcntl_getpriority | Niveau supérieur | pcntl_signal


pcntl_signal

(PHP 4 >= 4.1.0, PHP 5)

pcntl_signal -- Installe un gestionnaire de signaux

Description

bool pcntl_signal ( int signo, callback handler [, bool restart_syscalls] )

pcntl_signal() installe un nouveau gestionnaire de signaux pour le signal indiqué par le paramètre signo.

Liste de paramètres

signo

Le numéro du signal.

handler

Le gestionnaire de signaux est affecté à handler qui peut être le nom d'une fonction utilisateur, ou bien l'une des deux constantes globales SIG_IGN et SIG_DFL.

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 gestionaire 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 et, par défaut, ce paramètre vaut TRUE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Historique

Version | Description
4.3.0 | Le paramètre restart_syscalls a été ajouté.
4.3.0 | La possibilité d'utiliser une méthode d'un objet en tant que callback est devenue possible.
4.3.0 | Depuis PHP 4.3.0, PCNTL utilise les ticks comme mécanisme de signaux de traitement des rappels qui est plus rapide que l'ancien mécanisme. Ce changement suit les mêmes règles que l'utilisation des "user ticks". Vous devriez utiliser la requête declare() pour spécifier l'endroit dans votre programme où les rappels sont autorisés à être utilisés pour le traitement du signal de la fonction proprement dîte (comme utilisé dans l'exemple suivant).

Exemples

Exemple 1. Exemple avec pcntl_signal()

<?php
// l'usage des ticks est nécessaire depuis PHP 4.3.0
declare(ticks = 1);

// gestionnaire de signaux système
function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // gestion de l'extinction
             exit;
             break;
         case SIGHUP:
             // gestion du redémarrage
             break;
         case SIGUSR1:
             echo "Reçu le signe SIGUSR1...\n";
             break;
         default:
             // gestion des autres signaux
     }

}

echo "Installation du gestionnaire de signaux...\n";

// Installation des gestionnaires de signaux
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP,  "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");

// ou bien utilisez un objet (disponible depuis PHP 4.3.0)
// pcntl_signal(SIGUSR1, array($obj, "faire_quelque_chose");

echo"Génération d'un signal SIGTERM à moi-même...\n";

// envoi de SIGUSR1 à l'identifiant de processus courant
posix_kill(posix_getpid(), SIGUSR1);

echo "Fait\n"

?>

Voir aussi

pcntl_fork()
pcntl_waitpid()

Précédent | Sommaire | Suivant
pcntl_setpriority | Niveau supérieur | pcntl_wait


pcntl_wait

(PHP 5)

pcntl_wait -- Attend ou retourne le statut d'un processus fils

Description

int pcntl_wait ( int &status [, int options] )

pcntl_wait() suspend l'exécution du processus courant jusqu'à ce qu'un des processus fils soit terminé, ou qu'un signal soit envoyé pour terminer le processus courant ou pour appeler un gestionnaire. Si le processus est déjà terminé au moment de l'appel de la fonction, c'est-à-dire si le processus est un zombie, alors la fonction se termine immédiatement. Toutes les ressources système utilisées par le processus fils sont libérées. Lisez le manuel de votre système à wait(2) pour avoir des détails spécifiques sur le fonctionnement de wait() sur celui-ci.

Note : Cette fonction est équivalente à appeler la fonction pcntl_waitpid() avec un pid valant -1 et aucune option.

Liste de paramètres

status

pcntl_wait() va stocker les informations
de statut dans le paramètre status
qui peut être lu avec les fonctions suivantes :
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() et
pcntl_wstopsig().

options

Si wait3 est disponible sur votre système (c'est le cas de la plupart des systèmes BSD-), vous pouvez ajouter le paramètre optionnel options. S'il n'est pas fourni, wait() sera utilisé pour l'appel système. Si wait3 n'est pas disponible, le paramètre options n'aura pas d'effet. La valeur de options est la combinaison de zéro ou plusieurs des constantes suivantes :

Tableau 1. Valeurs possibles pour options

WNOHANG | Termine immédiatement si aucun processus ne s'est terminé.
WUNTRACED | Termine pour les processus qui sont stoppés, et pour ceux dont le résultat n'a pas été rapporté.

Valeurs de retour

pcntl_wait() retourne l'identifiant de processus qui s'est terminé, -1 en cas d'erreur ou zéro si WNOHANG a été fourni comme option (disponible sur les systèmes wait3), et qu'aucun processus fils n'était disponible.

Voir aussi

pcntl_fork()
pcntl_signal()
pcntl_wifexited()
pcntl_wifstopped()
pcntl_wifsignaled()
pcntl_wexitstatus()
pcntl_wtermsig()
pcntl_wstopsig()
pcntl_waitpid()

Précédent | Sommaire | Suivant
pcntl_signal | Niveau supérieur | pcntl_waitpid


pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5)

pcntl_waitpid -- Attend la fin de l'exécution d'un processus fils

Description

int pcntl_waitpid ( int pid, int &status [, int options] )

Suspend l'exécution du processus courant jusqu'à ce qu'un processus fils spécifié par le paramètre pid ait terminé, qu'un signal ait mis fin à ce processus ou qu'un signal ait appelé un gestionnaire de signaux.

Si le processus fils identifié par pid est déjà terminé au moment de l'appel de cette fonction (on les appelle des processus "zombie"), la fonction se termine immédiatement. Toute ressource système utilisée par le processus fils est libérée. Reportez-vous à la page de man waitpid(2) pour avoir des détails sur le comportement de cette fonction sur votre système.

Liste de paramètres

pid

La valeur de pid peut être une parmi les suivantes :

Tableau 1. Valeurs possibles pour pid

< -1 | attend que tous les processus fils dont l'identifiant de groupe est égal à la valeur absolue de pid soient terminés.
-1 | attend que tous les processus fils soient terminés. Ceci est le même comportement que celui de la fonction pcntl_wait().
0 | attend que tous les processus fils dont l'identifiant de groupe est égal à celui du processus courant soient terminés.
> 0 | attend que le processus fils dont l'identifiant est égal à pid soit terminé.

Note : Si pid vaut -1, cela équivaut à utiliser la fonction pcntl_wait() (minimum options).

status

pcntl_waitpid() enregistrera des informations sur
le statut courant du processus dans le paramètre
status, auquel on peut accéder grace aux
fonctions suivantes :
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() et
pcntl_wstopsig().

options

Le paramètre options peut prendre la valeur zéro, ou plusieurs des constantes globales suivantes (combinez les avec l'opérateur OR) :

Tableau 2. Valeurs possibles de options

WNOHANG | retourne immédiatement si aucun processus fils ne s'est terminé.
WUNTRACED | retourne lorsque les processus fils sont arrêtés et que leur statut n'a pas été mis à jour.

Valeurs de retour

pcntl_waitpid() retourne l'identifiant de processus du processus fils qui s'est terminé, ou bien -1 en cas d'erreur ou encore zéro si WNOHANG a été utilisée et qu'aucun processus fils n'était disponible.

Voir aussi

pcntl_fork()
pcntl_signal()
pcntl_wifexited()
pcntl_wifstopped()
pcntl_wifsignaled()
pcntl_wexitstatus()
pcntl_wtermsig()
pcntl_wstopsig()

Précédent | Sommaire | Suivant
pcntl_wait | Niveau supérieur | pcntl_wexitstatus


pcntl_wexitstatus

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wexitstatus -- Retourne le code d'un processus fils terminé

Description

int pcntl_wexitstatus ( int status )

Retourne le code de retour du processus fils. Cette fonction n'est utile que si la fonction pcntl_wifexited() a retourné TRUE.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne le code de retour, sous la forme d'un entier.

Voir aussi

pcntl_waitpid()
pcntl_wifexited()

Précédent | Sommaire | Suivant
pcntl_waitpid | Niveau supérieur | pcntl_wifexited


pcntl_wifexited

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifexited -- Vérifie si le code de retour représente une fin normale

Description

bool pcntl_wifexited ( int status )

Retourne TRUE si le processus fils a retourné un code qui représente une fin normale.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne TRUE si le processus fils a retourné un code qui représente une fin normale, FALSE sinon.

Voir aussi

pcntl_waitpid()
pcntl_wexitstatus()

Précédent | Sommaire | Suivant
pcntl_wexitstatus | Niveau supérieur | pcntl_wifsignaled


pcntl_wifsignaled

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifsignaled -- Retourne TRUE si le code statut représente une fin due à un signal

Description

bool pcntl_wifsignaled ( int status )

Retourne TRUE si le processus fils sort car un signal n'a pu être reçu.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne TRUE si le processus fils sort car un signal n'a pu être reçu, FALSE sinon.

Voir aussi

pcntl_waitpid()
pcntl_signal()

Précédent | Sommaire | Suivant
pcntl_wifexited | Niveau supérieur | pcntl_wifstopped


pcntl_wifstopped

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifstopped -- Retourne TRUE si le processus fils est stoppé

Description

bool pcntl_wifstopped ( int status )

Retourne TRUE si le processus fils est stoppé ; cela n'est possible que si l'appel à pcntl_waitpid() a été fait avec l'option WUNTRACED.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne TRUE si le processus fils est stoppé, FALSE sinon.

Voir aussi

pcntl_waitpid()

Précédent | Sommaire | Suivant
pcntl_wifsignaled | Niveau supérieur | pcntl_wstopsig


pcntl_wstopsig

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wstopsig -- Retourne le signal qui a causé l'arrêt du processus fils

Description

int pcntl_wstopsig ( int status )

Retourne le numéro du signal qui a causé l'arrêt du processus fils. Cette fonction est uniquement utile si pcntl_wifstopped() a retourné TRUE.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne le numéro du signal.

Voir aussi

pcntl_waitpid()
pcntl_wifstopped()

Précédent | Sommaire | Suivant
pcntl_wifstopped | Niveau supérieur | pcntl_wtermsig


pcntl_wtermsig

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wtermsig -- Retourne le signal qui a provoquÃ© la fin du processus fils

Description

int pcntl_wtermsig ( int status )

Retourne le numÃ©ro du signal qui a provoquÃ© la fin du processus fils. Cette fonction est uniquement utile si pcntl_wifsignaled() retourne TRUE.

Liste de paramètres

status

Le paramètre status est le paramètre status passé à un appel de pcntl_waitpid() ayant réussi.

Valeurs de retour

Retourne le numÃ©ro du signal, sous la forme d'un entier.

Voir aussi

pcntl_waitpid()
pcntl_signal()
pcntl_wifsignaled()

Précédent | Sommaire | Suivant
pcntl_wstopsig | Niveau supérieur | Expressions rationnelles compatibles Perl


Expressions rationnelles compatibles Perl

Manuel PHP
Précédent Suivant

CXX. Expressions rationnelles compatibles Perl

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. N'importe quel caractère peut servir de délimiteur, tant qu'il n'est pas alpha-numérique ou n'est pas un anti-slash (\). Si un délimiteur doit être utilisé dans l'expression, il faudra l'échapper avec un anti-slash. Depuis PHP 4.0.4, vous pouvez utiliser les délimiteurs (), {}, [], et <>, comme en Perl. Voir la syntaxe des masques pour plus d'explications.

Le délimiteur final peut être suivi d'options qui affecteront la recherche. Voir aussi options de recherche.

PHP supporte également les expressions rationnelles utilisant la syntaxe POSIX étendue (fonctions REGEX POSIX-extended).

Note : Cette extension maintient un cache global par thread des expressions rationnelles compilées (jusqu'à 4096).

Avertissement

Vous devez être conscient des limitations de PCRE. Lisez http://www.pcre.org/pcre.txt pour plus de détails.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

À partir de PHP 4.2.0, ces fonctions sont activées par défaut. Pour les anciennes versions, vous devez configurer et compiler PHP avec l'option --with-pcre-regex afin de pouvoir les utiliser. Utilisez --with-pcre-regex=DIR pour spécifier le répertoire où la bibliothèque PCRE est installée si vous n'utilisez pas la bibliothèque incluse dans PHP. Pour les versions plus anciennes de PHP, vous devez configurer et compiler PHP avec --with-pcre-regex[=DIR] pour pouvoir utiliser ces fonctions.

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.

Tableau 1. Options de configuration PCRE

Nom | Défaut | Modifiable | Changelog
pcre.backtrack_limit | 100000 | PHP_INI_ALL | Disponible depuis PHP 5.2.0.
pcre.recursion_limit | 100000 | PHP_INI_ALL | Disponible depuis PHP 5.2.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

pcre.backtrack_limit entier

PCRE's backtracking limit.

pcre.recursion_limit entier

Limite de récursivité PCRE. Notez que si vous définissez cette valeur à un nombre élevé, vous devriez consommer tous les processus disponibles et, éventuellement, faire crasher PHP (la taille limite de la pile imposée par le système sera atteinte).

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.

Tableau 2. Constantes PREG

Constante | Description
PREG_PATTERN_ORDER | Ordonne les résultats de façon à ce que $matches[0] contienne les résultats qui correspondent au masque entier, $matches[1] ceux qui correspondent à la première parenthèse capturante, $matches[2] ceux qui correspondent à la deuxième parenthèse capturante, etc. Cette constante est utilisée avec preg_match_all().
PREG_SET_ORDER | Les résultats sont classés de telle façon que $matches[0] contient la première série de résultat, $matches[1] la deuxième, etc. Cette constante est utilisée avec preg_match_all().
PREG_OFFSET_CAPTURE | Voir la description de PREG_SPLIT_OFFSET_CAPTURE. Cette constante est utilisée depuis PHP 4.3.0 .
PREG_SPLIT_NO_EMPTY | Si cette option est activée, seules les sous-chaînes non vides seront retournées par preg_split().
PREG_SPLIT_DELIM_CAPTURE | Si cette option est activée, les expressions entre parenthèses entre les délimiteurs de masques seront aussi capturées et retournées. Cette option a été ajoutée en PHP 4.0.5. Cette constante est utilisée avec preg_split().
PREG_SPLIT_OFFSET_CAPTURE | Si cette constante est utilisée avec preg_split(), l'offset de début de résultat sera retourné, en plus de la chaîne résultat. Notez que cela change la nature du résultat retourné en un tableau contenant une chaîne à l'offset 0 et une chaîne contenant un offset à l'offset 1. Cette option est disponible depuis PHP 4.3.0.
PREG_NO_ERROR | Retourné par la fonction preg_last_error() s'il n'y a pas d'erreur. Disponible depuis PHP 5.2.0.
PREG_INTERNAL_ERROR | Retourné par la fonction preg_last_error() s'il y a une erreur interne PCRE. Disponible depuis PHP 5.2.0.
PREG_BACKTRACK_LIMIT_ERROR | Retourné par la fonction preg_last_error() si backtrack limit a été atteint. Disponible depuis PHP 5.2.0.
PREG_RECURSION_LIMIT_ERROR | Retourné par la fonction preg_last_error() si recursion limit a été atteint. Disponible depuis PHP 5.2.0.
PREG_BAD_UTF8_ERROR | Retourné par la fonction preg_last_error() si la dernière erreur est du à une malformation des données UTF-8 (uniquement lors de l'exécution d'une regex en mode UTF-8). Disponible depuis PHP 5.2.0.

Exemples

Exemple 1. Exemples de masques valides

  • /<\/\w+>/

  • |(\d{3})-\d+|Sm

  • /^(?i)php[34]/

  • {^\s+(\s+)?$}

Exemple 2. Exemples de masques invalides

  • /href='(.*)' - délimiteur final manquant

  • /\w+\s*\w+/J - option 'J' inconnue

  • 1-\d3-\d3-\d4| - délimiteur initial manquant

Table des matières
options de recherche -- Options disponibles pour les expressions rationnelles
syntaxe des masques -- Fonctionnement des expressions rationnelles
preg_grep -- Retourne un tableau avec les résultats de la recherche
preg_last_error -- Retourne le code erreur de la dernière regex PCRE exécutée
preg_match_all -- Expression rationnelle globale
preg_match -- Expression rationnelle standard
preg_quote -- Échappement des caractères spéciaux des expressions rationnelles
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

Précédent | Sommaire | Suivant
pcntl_wtermsig | Niveau supérieur | options de recherche


options de recherche

options de recherche -- Options disponibles pour les expressions rationnelles

Description

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 modifieurs, 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éta-caractère "début de ligne" (^) ne sera valable qu'une seule fois, au début de la ligne, et le méta-caractè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éta-caractère point (.) remplace n'importe quel caractère, y compris les nouvelles lignes. Sans cette option, le caractère point ne remplace pas les nouvelles lignes. Cette option est équivalente à l'option Perl /s. Une classe de caractères négative telle que [^a] acceptera toujours les caractères de nouvelles lignes, indépendamment de cette option.

x (PCRE_EXTENDED)

Avec cette option, les caractères d'espacement sont ignorés, sauf lorsqu'ils sont échappés, ou à l'intérieur d'une classe de caractères, et tous les caractères entre # non échappés et en dehors d'une classe de caractères, et le prochain caractère de nouvelle ligne sont ignorés. C'est l'équivalent Perl de l'option /x : elle permet l'ajout de commentaires dans les masques compliqués. Notez bien, cependant, que cela ne s'applique qu'aux caractères de données. Les caractères d'espacement ne doivent jamais apparaître dans les séquences spéciales d'un masque, par exemple dans la séquence (?( qui introduit une parenthèse conditionnelle.

e

Avec cette option, preg_replace() effectue la substitution normale des références arrières dans la chaîne de remplacement, puis l'évalue comme un code PHP, et utilise le résultat pour remplacer la chaîne de recherche. Les simples quotes, les doubles quotes, les anti-slashes et les caractères NULL sont échappées avec des anti-slashes (\) dans les références arrières substituées.

Seule preg_replace() utilise cette option. Elle est ignorée par les autres.

Note : Cette option n'est pas valable en PHP 3.

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éta-caractères adéquats, ce qui est la seule manière de le faire en Perl.

D (PCRE_DOLLAR_ENDONLY)

Avec cette option, le méta-caractère $ ne sera valable qu'à la fin de la chaîne sujet. Sans cette option, $ est aussi valable avant une nouvelle ligne, si cette dernière est le dernier caractère de la chaîne. Cette option est ignorée si l'option m est activée. Il n'y a pas d'équivalent en Perl.

S

Lorsqu'un masque est utilisé plusieurs fois, cela vaut la peine de passer quelques instants de plus pour l'analyser et optimiser le code pour accélérer les traitements ultérieurs. Cette option force cette analyse plus poussée. Actuellement, cette analyse n'est utile que pour les masques non ancrés, qui ne commencent pas par un caractère fixe.

U (PCRE_UNGREEDY)

Cette option inverse la tendance à la gourmandise des expressions rationnelles. Vous pouvez aussi inverser cette tendance au coup par coup avec un ?. De même, si cette option est activée, le ? rendra gourmand une 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 quantifieur (.e.g. .*?).

X (PCRE_EXTRA)

Cette option ajoute d'autres fonctionnalités incompatibles avec le PCRE de Perl. Tous les anti-slashs 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 anti-slashs 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.

u (PCRE8)

Cette option désactive les fonctionnalités additionnelles de PCRE qui ne sont pas compatibles avec Perl. Les chaînes sont traitées comme des chaînes UTF-8. Cette option est disponible en PHP 4.1.0 et plus récent sur plate-forme Unix et en PHP 4.2.3 et plus récent sur plate-forme Windows.

Précédent | Sommaire | Suivant
Expressions rationnelles compatibles Perl | Niveau supérieur | syntaxe des masques


syntaxe des masques

syntaxe des masques -- Fonctionnement des expressions rationnelles

Description

La bibliothèque PCRE est un ensemble de fonctions qui implémentent la recherche par expressions rationnelles, en utilisant la même syntaxe et la même sémantique que le Perl 5, avec quelques nuances (voir ci-dessous). L'implémentation actuelle est celle de Perl 5.005.

Différences avec Perl

Les différences avec le 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. Le Perl 5 n'accepte plus la tabulation verticale comme caractère d'espacement. La séquence \v qui était dans la documentation Perl depuis longtemps n'a jamais été reconnue. Cependant, la tabulation verticale elle-même était reconnue comme un caractère d'espacement jusqu'à la version 5.002. Avec les versions 5.004 et 5.005, l'option \s l'ignore.

  2. PRCE ne tolère pas la répétition de quantificateurs dans les expressions. Perl le permet, mais cela ne signifie pas ce que vous pourriez penser. Par exemple, (?!a){3} ne s'interprète pas : les trois caractères suivants ne sont pas des "a". En fait, cela s'interprète comme : le caractère suivant n'est pas "a" trois fois.

  3. Les occurrences de sous-masques qui interviennent dans des assertions négatives sont comptées, mais elles ne sont pas enregistrées dans le vecteur d'occurrences. Perl modifie ses variables numériques pour toutes les occurrences de sous-masque, avant que l'assertion ne vérifie le masque entier, et uniquement si les sous-masques ne trouvent qu'une seule occurrence.

  4. Bien que les caractères nul soient tolérés dans la chaîne de recherche, ils ne sont pas acceptés dans le masque, car le masque est utilisé comme une chaîne C standard, terminée par le caractère nul. Il faut donc utiliser la séquence d'échappement "\x00" dans le masque pour rechercher les caractères nul.

  5. Les séquence d'échappement suivantes ne sont pas supportées par le Perl: \l, \u, \L, \U. En fait, elles sont implémentées par la gestion intrinsèque de chaînes du 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}).

  8. Au moment de l'écriture de PCRE, Perl 5.005_02 avait quelques comportements étranges avec la capture des chaînes lorsqu'une partie du masque est redoublée. Par exemple, "aba" avec le masque /^(a(b)?)+$/ va affecter à $2 la valeur "b", mais la même manipulation avec "aabbaa" et /^(aa(bb)?)+$/ laissera $2 vide. Cependant, si le masque est remplacé par /^(aa(b(b))?)+$/ alors $2 (et d'ailleurs $3) seront correctement affectés. Avec le Perl 5.004, $2 sera correctement affecté dans les deux cas, et c'est aussi vrai avec PCRE. Si Perl évolue vers un autre comportement cohérent, PCRE s'adaptera probablement.

  9. Une autre différence encore non résolue est le fait qu'en Perl 5.005_02 le masque /^(a)?(?(1)a|b)+$/ accepte la chaîne "a", tandis que PCRE ne l'accepte pas. Cependant, que ce soit avec Perl ou PCRE /^(a)?a/ et "a" laisseront $1 vide.

  10. PCRE propose quelques extensions aux expressions rationnelles du Perl.

    1. (a) Bien que les assertions arrières (lookbehind) soient obligées de rechercher une chaîne de longueur fixe, toutes les assertions arrières peuvent avoir une longueur différente. Perl 5.005 leur impose d'avoir toutes la même longueur.

    2. (b) Si PCRE_DOLLAR_ENDONLY est activé, et que PCRE_MULTILINE ne l'est pas, le méta caractè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 anti-slash 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.

Détails sur les expressions rationnelles

Introduction

La syntaxe et la sémantique des expressions rationnelles supportées par PCRE sont décrites ci-dessous. Les expressions rationnelles sont aussi décrites dans la documentation Perl, et dans un grand nombre d'autres livres, avec de nombreux exemples. Le libre 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",

Méta-caractères

La puissance des expressions rationnelles provient de leur capacité à autoriser des alternatives et des quantificateurs de répétition dans le masque. Ils sont encodés dans le masque par des méta-caractè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éta-caractè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éta-caractères sont :

\ anti-slash

Caractère d'échappement, avec de multiples usages

^ Accent circonflexe

Le début de la chaîne sujet (ou de ligne, en mode multi-lignes)

$ Dollar

La fin de la chaîne sujet (ou de ligne, en mode multi-lignes)

. Point

Remplace n'importe quel caractère, hormis le caractère de nouvelle ligne (par défaut) ;

[ Crochet ouvrant

Caractère de début de définition de classe

] Crochet fermant

Caractère de fin de définition de classe

| Barre verticale

Caractère de début d'alternative

( Parenthèse ouvrante

Caractère de début de sous-masque

) Parenthèse fermante

Caractère de fin de sous-masque

? Point d'interrogation

Etend le sens de (; quantificateur de 0 ou 1; quantificateur de minimisation

* Etoile

Quantificateur de 0 ou plus

+ Plus

Quantificateur de 1 ou plus

{ Accolade ouvrante

Caractère de début de quantificateur minimum/maximum

} Accolade fermante

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éta-caractères autorisés sont :

\ Anti-slash

Caractère d'échappement, avec de multiples usages

^ Accent circonflexe

Négation de la classe, mais uniquement si placé tout au début de la classe

- Moins

Indique un intervalle de caractères

] Crochet fermant

Termine la classe de caractères

La section suivante décrit l'utilisation de chaque méta-caractère.

Anti-slash

Le caractère anti-slash a de nombreuses utilisations. En premier lieu, s'il est suivi d'un caractère non alpha-numérique, il ne prendra pas la signification spéciale qui y est rattachée. Cette utilisation de l'anti-slash comme caractère d'échappement 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éta-caractè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 anti-slashs, il faut écrire : "\\".

Note : La chaîne de caractères PHP simple ou double guillemet a une signification spéciale des anti-slashs. 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èses "#", ainsi que les nouvelles lignes sont ignorées. L'anti-slash peut être utilisé pour échapper et ainsi rechercher un espace ou un dièse.

La deuxième utilité de l'anti-slash 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)

\r

retour chariot (hex 0D)

\t

tabulation (hex 09)

\xhh

caractère en hexadécimal, de code hh

\ddd

caractère en octal, de code ddd, ou référence arrière

Dans la séquence "\cx" si "x" est en minuscule, il est converti en majuscule. Puis, le bit 6 (hex 40) est inversé. Ainsi "\cz" devient 1A, mais "\c{" devient hex 3B, tandis que "\c;" devient hex 7B.

Après "\x", deux caractères hexadécimaux sont lus (les lettres peuvent être en majuscule ou minuscule). En mode UTF-8, "\x{...}" est aurotisé, 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éta-caractè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éta-caractère.

L'anti-slash 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'anti-slash, et génère un octet unique, à partir des 8 bits de poids faible de la séquence. Tous les chiffres qui suivent ne sont pas interprétés, et se représentent eux-mêmes. Par exemple:

\040

une autre manière d'écrire un espace

\40

identique, dans la mesure où il n'y a pas 40 parenthèses ouvrantes auparavant

\7

est toujours une référence arrière

\11

peut être une référence de retour, ou une tabulation

\011

toujours une tabulation

\0113

est une tabulation suivie du caractère "3"

\113

est le caractère 113 (étant donné qu'il ne peut y avoir plus de 99 références arrières)

\377

est un octet dont tous les bits sont à 1

\81

peut être soit une référence arrière, soit un zéro binaire suivi des caractères "8" et "1"

Les valeurs octales supérieures ou égales à 100 ne doivent pas être introduites par un 0, car seuls les trois premiers octets seront lus.

Toutes les séquences qui définissent une valeur d'un seul octet peuvent être utilisées dans les classes de caractères, et à l'extérieur. De plus, dans une classe de caractères, la séquence "\b" est interprétée comme un caractère effacer (hex 08). À l'extérieur, elle peut avoir d'autres significations (voir ci-dessous).

On peut encore se servir de l'anti-slash 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

\s

tout caractère blanc

\S

tout caractère qui n'est pas un caractère blanc

\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éta-caractère, soit l'autre.

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éta-caractè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'anti-slash 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 anti-slash sont les suivantes :

\b

limite de mot

\B

pas limite de mot

\A

début de la chaîne sujet (indépendant du mode multi-lignes)

\Z

fin de la chaîne sujet ou nouvelle ligne à la fin de la chaîne sujet (indépendant du mode multi-lignes)

\G

position de la première occurence trouvé dans la chaîne sujet

\z

fin de la chaîne sujet (indépendant du mode multi-lignes)

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, ou le contraire (on peut le voir comme \w\W ou \W\w), ou encore le premier ou le dernier caractère est un caractère mot.

Les assertions \A, \Z, et \z diffèrent des méta-caractères ^ et $ 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'occurence trouvée est au début de l'occurence, 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. Elle est disponible depuis PHP 4.3.3.

\Q et \E peuvent être utilisés pour ignorer les méta-caractères regexp dans le masque depuis PHP 4.3.3. Par exemple : \w+\Q.$.\E$ recherchera un ou plusieurs caractères suivis par la chaîne litérale .$. et ancrés à la fin de la chaîne.

Propriétés des caractères Unicode

Depuis PHP 4.4.0 et 5.1.0, trois nouvelles séquences d'échappement pour trouver des types de caractères sont disponibles lorsque le mode UTF-8 est sélectionné. Elles sont :

\p{xx}

un caractère avec les propriétés xx

\P{xx}

un caractère sans les propriétés xx

\X

une séquence étendue Unicode

Les noms des propriétés représentés par xx ci-dessus sont limités aux catégories de propriétés générales Unicode. Chaque caractère a exactement une seule de ces propriétés, spécifié par une abréviation sur deux caractères. Pour des raisons de compatibilité avec Perl, la négation peut être spécifiée en incluant un accent circonflexe entre l'accolade ouvrante et le nom de la propriété. Par exemple, \p{^Lu} équivaut à la même chose que \P{Lu}.

Si une seule lettre est spécifiée avec \p ou \P, il inclut toutes les propriétés qui commencent par cette lettre. Dans ce cas, en l'absence de négation, les accolades dans la séquence d'échappement sont optionnelles ; ceci revient à la même chose :

\p{L}
\pL

Tableau 1. Codes des propriétés supportées

C | Autre
Cc | Contrôle
Cf | Format
Cn | Non affecté
Co | Utilisation privée
Cs | Substitut
L | Lettre
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 | Pnctuation
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 | Other symbol
Z | Séparateur
Zl | Séparateur de ligne
Zp | Séparateur de paragraphe
Zs | Séparateur d'espace

Les propriétés étendues comme "Greek" ou "InMusicalSymbols" ne sont pas supportées par PCRE.

Spécifié la casse pour la recherche n'affecte pas les séquences d'échappement. Par exemple, \p{Lu} cherchera toujours uniquement les lettres en majuscules

L'échappement \X cherchera n'importe quel numéro de caractères Unicode qui forme une séquence étendue Unicode. \X est l'équivalent de (?>\PM\pM*).

C'est-à-dire qu'il cherchera un caractère sans la propriété "Marque", suivi par zéro ou plus caractères avec la propriété "Marque", et traitera la séquence en tant que groupe atomique (voir ci-dessous). Les caractères avec la propriété "Marque" sont typiquement des accents qui affectent le caractère précédent.

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 d'échappement traditionnelles comme \d et \w n'utilisent pas les propriétés Unicode dans PCRE.

Accent circonflexe et Dollar

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 multi-lignes. Par conséquent, toutes les parties du masque qui commencent par "^" ne sont pas ancrées, en mode multi-lignes. L'option PCRE_DOLLAR_ENDONLY est ignorée si l'option PCRE_MULTILINE est choisie.

Notez que les méta-caractè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.

Crochets

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 échappé avec un anti-slash.

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 échappé avec un anti-slash.

Par exemple, le caractère [aeiou] remplace n'importe quelle voyelle minuscule, tandis que [^aeiou] remplace n'importe quelle caractère qui n'est pas une voyelle minuscule. ^ est une notation pratique pour spécifier des caractères qui sont dans une classe, en ne citant que ceux qui n'y sont pas. Le comportement est inchangé.

Avec l'option d'insensibilité à la casse, toutes les lettres d'une classe de caractères représentent en même temps la majuscule et la minuscule. Par exemple, [aeiou] représentera "A" ou "a", et [^aeiou] n'acceptera pas ni "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 l'échapper avec un anti-slash, 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 échappé avec un anti-slash, 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, "[C-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 alpha- numé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 échappés.

Barre verticale

La barre verticale | sert à séparer des alternatives. Par exemple, dans le masque "/dupont|martin/" recherche soit "dupont", soit "martin". Le nombre d'alternatives n'est pas limité, et il est même possible d'utiliser la chaîne vide. Lors de la recherche, toutes les alternatives sont essayées, de gauche à droite, et la première qui est acceptée est utilisée. Si les alternatives sont dans un sous-masque, elle ne réussiront que si le masque principal réussi aussi.

Options internes

Les options PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL, PCRE_UNGREEDY, PCRE_EXTRA et PCRE_EXTENDED peuvent être changées à l'intérieur du masque lui-même, avec des séquences mises entre "(?" et ")". Les options sont :

Tableau 2. Internal option letters

i | pour PCRE_CASELESS
m | pour PCRE_MULTILINE
s | pour PCRE_DOTALL
x | pour PCRE_EXTENDED
U | pour PCRE_UNGREEDY
X | Pour PCRE_EXTRA

Par exemple, (?im) rend le masque insensible à la casse, et multi-lignes. 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ès 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". Ce comportement a été modifié en PCRE 4.0 et est inclus depuis PHP 4.3.3. Dans les versions précédentes, /ab(?i)c/ fonctionne de la même façon que /abc/i (e.g. valide "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. Délimiter des alternatives. Par exemple, le masque char(don|mant|) acceptera les mots "char", "charmant", ou "charmant". Sans les parenthèses, il n'accepterait que "chardon", "mant" ou la chaîne vide "".

2. Le sous-masque est considéré comme capturant : lorsqu'une chaîne sujet est acceptée par le masque complet, les sous-masques sont transmis à l'appelant grâce à un vecteur de sous-masques. Les parenthèses ouvrantes sont comptées de gauche à droite, (commençant à 1). 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 99, et le nombre total de sous-masques (capturant ou non) ne doit pas dépasser 200.

(?i:samedi|dimanche) et (?:(?i) samedi | dimanche) : de plus, comme les séquences d'options sont valables sur toute une alternative, les masques ci-dessus accepteront aussi bien "DIMANCHE" que "Dimanche".

Il est possible de nommer le sous-masque avec (?P<name>pattern) depuis PHP 4.3.3. Les tableaux avec les masques doivent contenir le masque indexé par la chaîne à côté le masque indexé par le numéro.

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 :

a

Un caractère unique, même s'il s'agit d'un méta-caractère

.

Un méta-caractère

[abc]

Une classe de caractères

\2

Une référence de retour (voir section suivante)

(a|b|c)

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 : accepte n'importe quelle succession d'au moins 3 voyelles minuscules, tandis que \d{d} 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 une compatibilité historique), les trois quantificateurs les plus communs ont une abréviation sur un seul caractère :

Tableau 3. 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" mais .*+abc, non, car, .*+ mange la chaîne complètement. Les quantificateurs possessifs peuvent être utilisés pour accélérer le traitement depuis PHP 4.3.3

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éta-caractè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éta-caractè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 anti-slash 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'anti-slash 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.

Reportez-vous à la section "anti-slash" pour avoir de plus amples détails à propos du nombre de chiffres qui suivent l'anti-slash.

La référence arrière remplace ce qui a été capturé par un sous-masque dans le masque courant, plutôt que remplacer le sous-masque lui-même. Ainsi (calme|rapide) et \1ment trouvera "calme et calmement" et "rapide et rapidement", mais pas "calme et rapidement". Si la recherche tient compte de la casse, alors la casse de la chaîne capturée sera importante. Par exemple, ((?i)rah)\s+\1 trouve "rah rah" et "RAH RAH", mais pas "RAH rah", même si le sous-masque capturant initial ne tenait pas compte de la casse.

Il peut y avoir plusieurs références arrières dans le même sous-masque. Si un sous-masque n'a pas été utilisé dans une recherche, alors les références arrières échoueront. Par exemple "(a|(bc))\2" ne réussira jamais si la chaîne sujet commence par "a" plutôt que par "bc".

Étant donné qu'il peut y avoir jusqu'à 99 références arrières, tous les chiffres après l'anti-slash 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", "ababaa", 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.

Assertions

Une assertion est un test sur les caractères suivants ou précédents celui qui est en cours d'étude. Ce test ne consomme par de caractère (ie, on ne déplace pas le pointeur de caractères). Les assertions simples sont codées avec \b, \B, \A, \Z, \z, ^ et $, et sont décrites précédemment.

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 (\w+(?=;)), et celles qui travaillent en-deça ((?!)\w+).

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. D'autre part, (?!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 "foofoo"; il trouve toutes les occurrences de "bar", quelque soit ce qui le précède, car l'assertion (?!foo) est toujours vraie quand les trois caractères suivants sont "bar". Une assertion arrière est ici nécessaire.

Les assertions arrières commencent par (?<= pour les assertions positives, et (?<! pour les assertions négatives. Par exemple : (?<!foo)bar trouve les occurrences de "bar" qui ne sont pas précédées par "foo".

Le contenu d'une référence arrière est limité de telle façon que les chaînes qu'il utilise soient toujours de la même taille. Cependant, lorsqu'il y a plusieurs alternatives, elles n'ont pas besoin d'être de la même taille. Par exemple, (?<=bullock|donkey) est autorisé, tandis que (?<!dogs?|cats?) provoque une erreur de compilation. Les alternatives qui ont des longueurs différentes ne sont autorisées qu'au niveau supérieur des assertions arrières. C'est une amélioration du fonctionnement de Perl 5.005, qui impose aux alternatives d'avoir toutes la même taille. Une assertion telle que (?<=ab(c|de)) n'est pas autorisée, car l'assertion de bas niveau (la deuxième, ici) a deux alternatives de longueurs différentes. Pour la rendre acceptable, il faut écrire (?<=abc|abde)

L'implémentation des assertions arrières déplace temporairement le pointeur de position vers l'arrière, et cherche à vérifier l'assertion. Si le nombre de caractères est différent, la position ne sera pas correcte, et l'assertion échouera. La combinaison d'assertions arrières avec des sous-masques peut être particulièrement pratique à fin des chaînes. Un exemple est donné à la fin de cette section.

Plusieurs assertions peuvent intervenir successivement. Par exemple, le masque (?<=\d{3})(?<!999)foo recherche les chaînes "foo" précédées par trois chiffres qui ne sont pas "999". Notez que chaque assertion est appliquées indépendamment, au même point de la chaîne à traiter. Tout d'abord, il est vérifié que les trois premiers caractères ont tous des chiffres, puis on s'assure que ces trois caractères ne sont pas "999". Le masque précédant n'accepte pas "foo" précédé de 6 caractères, les trois premiers étant des chiffres et les trois suivants étant différents de "999". Par exemple, ce masque n'acceptera pas la chaîne "123abcfoo". Pour ce faire, il faut utiliser le masque suivant : (?<=\d{3}...)(?<!999)foo. Dans ce masque, la première assertion vérifie les six premiers caractères, s'assure que les trois premiers sont des entiers, et la deuxième assertion s'assure que les trois derniers caractères ne sont pas "999".

De plus, les assertions peuvent être imbriquées : (?<=(?<!foo)bar)baz recherche les occurrences de "baz" qui sont précédées par "bar", qui, à son tour, n'est pas précédé par "foo". Au contraire, (?<=\d{3}...(?<!999))foo est un autre masque, qui recherche les caractères "foo", précédés par trois chiffres, suivis de trois autres caractères qui ne forment pas "999". Les assertions ne sont pas capturantes, et ne peuvent pas être répétées. Si une assertion contient des sous-masques capturants en son sein, ils seront compris dans le nombre de sous-masques capturants du masque entier. La capture est réalisée pour les assertions positives, mais cela n'a pas de sens pour les assertions négatives.

200 assertions au maximum sont autorisées.

Sous-masques uniques

Avec les quantificateurs de répétitions, l'échec d'une recherche conduit normalement à une autre recherche, avec un nombre différent de répétitions, pour voir si le masque ne s'applique pas dans d'autres conditions. Parfois, il est pratique d'éviter ce comportement, soit pour changer la nature de la recherche, soit pour la faire abandonner plus tôt, si on pense qu'il n'est pas besoin d'aller plus loin.

Considérons, par exemple, le masque \d+foo appliqué à la ligne 123456bar. Après avoir tenté d'utiliser les 6 chiffres suivis de "foo" qui font échouer, l'action habituelle sera de réessayer avec 5 chiffres, puis avec 4, et ainsi de suite jusqu'à l'échec final.

Un sous-masque évalué une seule fois permettrait d'indiquer que lorsqu'une partie du masque est trouvée, elle n'a pas besoin d'être réévaluée à chaque tentative. Ceci conduirait à ce que la recherche échoue immédiatement après le premier test. Ces assertions ont leur propre notation, commençant avec (?> comme ceci : (?>\d+)bar.

Ce type de parenthèses verrouille le sous-masque qu'il contient une fois qu'il a été trouvé, et empêche un échec ultérieur d'y repasser, mais autorise à revenir plus loin en arrière. Une autre description est que les sous-masques de ce type recherchent les chaînes de caractères, et ancre le sous-masque à l'intérieur de la chaîne.

Les sous-masques uniques ne sont pas capturants. Des cas simples comme ceux présentés ci-dessus peuvent être pris comme des situations maximales, qui réservent le maximum de caractères. En effet, alors que \d+ et \d+? ajustent le nombre de chiffres trouvés de manière à laisser la possibilité au masque de réussir, (?>\d+) ne peut retenir que la séquence entière de chiffres. Cette construction peut contenir un nombre arbitraire de sous-masques complexes, et ils peuvent être imbriqués.

Les sous-masques uniques ne peuvent être utilisés qu'avec les assertions arrières, pour effectuer une recherche efficace en fin de chaîne. Considérons un masque simple tel "abcd$" appliqué à une très longue chaîne qui ne lui correspond pas. À cause du système de recherche de gauche à droite, PCRE va commencer par rechercher un "a" dans la chaîne sujet, puis vérifier si ce qui suit convient au reste du masque. Si le masque est spécifié sous la forme ^.*abcd$ alors, la séquence .* remplace en premier lieu la chaîne entière, et échoue, repart en arrière, et remplace tous les caractères sauf le dernier, échoue, retourne en arrière, prend un caractère de moins, etc. et ainsi de suite. Encore une fois, la recherche du "a" passe en revue toute la chaîne de gauche à droite, ce qui n'est pas très efficace. Par contre, si le masque était écrit ^(?>.*)(?<=abcd) alors il n'y aurait pas de retour en arrière, pour satisfaire la séquence .*, car elle ne peut que remplacer toute la chaîne. L'assertion arrière consécutive va alors faire un test sur les 4 derniers caractères. Si elle échoue, la recherche est immédiatement interrompue.

Pour les chaînes très longues, cette approche fait la différence en termes de performances et de temps de recherche. Lorsqu'un masque contient une répétition illimitée dans un sous-masque, qui contient lui-même un nombre illimité de répétiteurs, l'utilisation des sous-masques à utilisation unique est la seule façon d'éviter l'échec de la recherche après un temps de calcul trop long.

Le masque (\D+|<\d+>)*[!?] recherche un nombre illimité de sous-chaînes, qui contiennent soit des non chiffres, soit des chiffres inclus dans <>, suivi soit par ! ou par ?. Lorsqu'il trouve une solution, ce masque va très vite. Mais, lorsqu'il est appliqué à une chaîne telle : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, il lui faut beaucoup de temps pour annoncer un échec. Cela est dû au fait que la chaîne peut être divisée en deux sous-chaînes d'un grand nombre de façons, et qu'elles ont toutes été essayées. (Cet exemple utilisait [!?] plutôt qu'un caractère simple, car PCRE et PHP utilise une optimisation qui leur permettent de détecter rapidement l'échec lorsqu'un caractère unique est trouvé. Il se souvient du dernier caractère qui est attendu, et s'aperçoit rapidement qu'il n'y a pas ce caractère).

Si le masque utilisé est ((?>\D+)|<\d+>)*[!?] les séquences de chiffres ne peuvent pas être trouvées, et l'échec intervient rapidement.

Les sous-masques conditionnels

Il est possible de lier un sous-masque à une condition, ou de choisir entre deux sous-masques alternatifs, en fonction du résultat d'une assertion, ou suivant les résultats de recherche précédents.

Les deux formes possibles de sous-masques conditionnels sont (?(condition)masque positif) et (?(condition) masque positif | masque négatif).

Si les conditions sont satisfaites, le masque positif est utilisé, sinon, le masque négatif est utilisé, si présent. S'il y a plus de deux alternatives, une erreur est générée à la compilation.

Il y a deux types de conditions : si le texte entre les parenthèses est une séquence de chiffres, alors la condition est satisfaite si le sous-masque correspondant à ce numéro a réussi. Considérons le masque suivant, qui contient des espaces non significatifs pour le rendre plus compréhensible (on supposera l'option PCRE_EXTENDED activée) et qui est divisée en trois parties pour simplifier les explications : ( \( )? [^()]+ (?(1) \) ).

La première partie recherche une parenthèse ouvrante optionnelle et, si elle existe, elle est capturée. La deuxième partie recherche un séquence de caractères qui ne contiennent pas de parenthèses. La troisième partie est conditionnée à la première, et s'assure que s'il y a une parenthèse ouvrante, il en existe une fermante. Si une parenthèse ouvrante a été trouvée, elle a été capturée, et donc la première capture existe, et la condition est exécutée. Sinon, elle est ignorée. Ce masque recherche donc une séquence de lettres, éventuellement placées entre parenthèse.

Si la condition est la chaîne (R), elle sera satisfaite si un appel récursif au masque ou au sous-masque a été fait. Au premier appel, la condition n'est pas vérifiée.

Si la condition n'est pas une séquence de chiffres, il faut que ce soit une assertion. Ce peut être une assertion positive ou négative, arrière ou avant. Considérons le masque suivant (même conditions que le précédent) et avec deux alternatives en seconde ligne : (?(?=[^a-z]*[a-z])\d{2}[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ). La condition est une assertion avant positive, qui recherche une séquence optionnelle de caractères non-lettre. En d'autres termes, elle teste la présence d'au moins une lettre dans la chaîne sujet. Si une lettre est trouvée, la recherche se poursuit avec la première alternative, et sinon, avec la seconde. Ce masque recherche des chaînes de la forme dd-aaa-dd ou dd-dd-dd, avec "aaa" qui sont des lettres, et dd qui sont des chiffres.

Commentaires

La séquence (?# marque le début d'un commentaire, qui se termine à la prochaine parenthèse fermante. Les parenthèses imbriquées ne sont pas autorisées. Les caractères entre ces délimiteurs ne jouent alors aucun rôle dans le masque.

Si l'option PCRE_EXTENDED est activée, les caractères dièses # non échappés en dehors d'une classe de caractères introduisent un commentaire qui continuera jusqu'à la prochaine ligne dans le masque.

Masques récursifs

Considérons le cas où il faut rechercher dans une chaîne avec un niveau d'imbrications infini de parenthèses. Sans l'aide de la récursivité, le mieux que nous puissions obtenir est de créer un masque avec un niveau fixé de profondeur d'imbrication. Il n'est pas possible de traiter des masques à niveau d'imbrication variable. PCRE fournit un nouvel outil expérimental qui permet d'utiliser la récursivité dans les masques (entre autres). L'option (?R) est fournie pour servir la cause de la récursivité. Le masque suivant résout le problème des parenthèses (l'option PCRE_EXTENDED est utilisée pour ignorer les espaces) : \( ( (?>[^()]+) | (?R) )* \)

Tout d'abord, le masque recherche une parenthèse ouvrante. Puis, il recherche n'importe quel nombre de sous-chaînes qui sont soit des séquences de caractères non-parenthèses, ou bien une recherche récursive avec le même masque (i.e. une chaîne correctement incluse entre parenthèses). Finalement, il recherche une parenthèse fermante.

Cet exemple particulier contient un nombre illimité de répétitions imbriquées, ce qui fait que l'utilisation de sous-chaînes à utilisation unique pour rechercher les séquences de caractères non parenthèses est important, lorsqu'il s'applique à une chaîne qui n'est pas valide. Par exemple, si on l'applique à "(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()" la réponse arrive rapidement. Sinon, si les sous-chaînes à utilisation unique ne sont pas utilisées, la recherche peut prendre un temps très long, car il existe de très nombreuses combinaisons de + et * à tester avant de conclure à l'échec.

Les valeurs utilisées pour capturer les sous-masques sont celles utilisées par les niveaux les plus hauts de récursivité, auxquels la valeur est fixée. Si le masque précédent est utilisé avec (ab(cd)ef) la valeur de la parenthèse capturante est "ef", qui est la dernière valeur lue au niveau supérieur. Si de nouvelles parenthèses sont ajoutées, par exemple : \( ( ( (?>[^()]+) | (?R) )* ) \) alors la chaîne capturée est "ab(cd)ef", c'est-à-dire le contenu de la parenthèse capturante de plus haut niveau. S'il y a plus de 15 parenthèses capturantes dans une chaîne, PCRE doit utiliser plus de mémoire pour stocker ces données. S'il ne peut obtenir cette mémoire supplémentaire, il ne fait que sauver les 15 premières, car il n'y a pas moyen de générer une erreur de mémoire lors d'une récursion.

Depuis PHP 4.3.3, (?1), (?2) et suivant peuvent être également utilisés pour les sous masques récursifs. Il est également possible d'utiliser les sous masques nommés : (?P>foo).

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 un 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, dependant, suivre le sous masque auquel elles se réfèrent.

La longueur maximale d'un sujet correspond au plus grand nimbre positif qu'une variable entière peut contenir. Cependant, PCRE utilise la récursion 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.

Performances

Certaines séquences de recherches sont plus efficaces que d'autres. Ainsi, il est plus efficace d'utiliser une classe de caractères telle que [aeiou] plutôt qu'une alternative (a|e|i|o|u).

En général, le masque le plus simple, qui permette la recherche désirée est le plus efficace. Le livre de Jeffrey Friedl's contient de nombreuses études à propos de l'optimisation des expressions rationnelles.

Lorsqu'un masque commence par.* et que l'option PCRE_DOTALL est activée, le masque est implicitement ancré par PCRE, étant donné qu'il ne peut que rechercher au début de la chaîne. Cependant, si l'option PCRE_DOTALL n'est pas activée, PCRE ne peut faire aucune optimisation car le méta-caractères point "." ne remplace pas une nouvelle ligne, et si la chaîne sujet contient des nouvelles lignes, le masque peut trouver une solution qui serait située juste après une de ces nouvelles lignes, et non pas seulement au début de la chaîne sujet. Par exemple, le masque, (.*)second acceptera la chaîne "premier \net second" (avec "\n" qui remplace la nouvelle ligne), et la première chaîne capturée sera "et".

Afin d'effectuer la recherche, PCRE va essayer d'appliquer le masque à partir de chaque début de ligne. Si vous utilisez un tel masque avec des chaînes qui ne contiennent pas de caractères de nouvelle ligne, les meilleures performances seront atteintes avec l'option PCRE_DOTALL, ou en ancrant le masque avec ^.*. Cela évite à PCRE de scanner toute la chaîne pour rechercher un caractère de nouvelle ligne et recommencer la recherche.

Attention aux masques qui contiennent des quantificateurs infinis imbriqués. Ils peuvent demander un temps de calcul très long, lorsque appliqués à une chaîne qui ne correspond pas à ce masque. Par exemple, (a+)* 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.

Précédent | Sommaire | Suivant
options de recherche | Niveau supérieur | preg_grep


preg_grep

(PHP 4, PHP 5)

preg_grep -- Retourne un tableau avec les résultats de la recherche

Description

array preg_grep ( string pattern, array input [, int flags] )

Retourne un tableau qui contient les éléments de input qui satisfont le masque pattern.

Liste de paramètres

pattern

Le masque à chercher, sous la forme d'une chaîne de caractères.

input

Le tableau d'entrée.

flags

Si cette option vaut PREG_GREP_INVERT, cette fonction retournera les éléments du tableau input qui ne correspondent pas au masque pattern.

Valeurs de retour

Retourne un tableau indexé, en utilisant les clé du tableau input d'entrée.

Historique

Version | Description
4.2.0 | Le paramètre flags a été ajouté.
4.0.4

Depuis cette version, le tableau retourné est indexé en utilisant les clés issues du tableau input.

Si vous voulez reproduire l'ancien comportement, utilisez la fonction array_values() sur le tableau retourné afin de réindexer les valeurs.

Exemples

Exemple 1. Exemple avec preg_grep()

<?php
// Recherche les nombres à virgule flottante dans le tableau
$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);
?>

Précédent | Sommaire | Suivant
syntaxe des masques | Niveau supérieur | preg_last_error


preg_match_all

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

preg_match_all -- Expression rationnelle globale

Description

int preg_match_all ( string pattern, string subject, array &matches [, int flags [, int offset]] )

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

Dans ce cas, $matches[0] est la première série de résultat, et $matches[0][0] contient le texte qui satisfait le masque complet, $matches[0][1] contient le texte de la première parenthèse capturante, etc. De même, $matches[1] contient le texte qui satisfait le masque complet, etc.

flags

Peut prendre une des deux valeurs suivantes (notez bien qu'il est incohérent d'utiliser PREG_PATTERN_ORDER avec PREG_SET_ORDER ) :

PREG_PATTERN_ORDER

L'ordre est tel que $matches[0] est un tableau qui contient les résultats qui satisfont le masque complet, $matches[1] est un tableau qui contient les résultats qui satisfont la première parenthèse capturante, etc.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>exemple : </b><div align=left>ceci est un test</div>",
    $out, PREG_PATTERN_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
?>

L'exemple ci-dessus va afficher :

<b>exemple : </b>, <div align=left>ceci est un test</div>
exemple : , ceci est un test

Ainsi, $out[0] est un tableau qui contient les résultats qui satisfont le masque complet, et $out[1] est un tableau qui contient les balises entre > et <.

PREG_SET_ORDER

Les résultats sont classés de telle façon que $matches[0] contient la première série de résultats, $matches[1] contient la deuxième, etc.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>exemple : </b><div align=\"left\">ceci est un test</div>",
    $out, PREG_SET_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
?>

L'exemple ci-dessus va afficher :

<b>exemple : </b>, exemple :
<div align="left">ceci est un test</div>, ceci est un test

PREG_OFFSET_CAPTURE

Si cette option est activée, toutes les sous-chaînes qui satisfont le masque seront aussi identifiées par leur offset. Notez que cela modifie le format de la valeur retournée, puisque chaque élément de réponse devient un tableau contenant la sous-chaîne résultat, à l'index 0 dans la chaîne subject constant 1.

Si order est omis, PREG_PATTERN_ORDER est utilisé par défaut.

offset

Normalement, la recherche commence au début de la chaîne subject. Le paramètre optionnel offset peut être utilisé pour spécifier une position pour le début de la recherche.

Note : Utiliser le paramètre offset ne revient pas à passer substr($subject, $offset) à preg_match_all() à la place de la chaîne subject, car pattern peut contenir des assertions comme ^, $ ou (?<=x). Lisez la documentation sur la fonction preg_match() pour des exemples.

Valeurs de retour

Retourne le nombre de résultats qui satisfont le masque complet, ou FALSE si une erreur survient.

Historique

Version | Description
4.3.3 | Le paramètre offset a été ajouté.
4.3.0 | Le drapeau PREG_OFFSET_CAPTURE a été ajouté.

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[3] . "\n";
    echo "part 3: " . $val[4] . "\n\n";
}
?>

L'exemple ci-dessus va afficher :

matched: <b>texte en gras</b>
part 1: <b>
part 2: texte en gras
part 3: </b>

matched: <a href=howdy.html>cliquez moi</a>
part 1: <a href=howdy.html>
part 2: cliquez moi
part 3: </a>

Voir aussi

preg_match()
preg_replace()
preg_split()

Précédent | Sommaire | Suivant
preg_last_error | Niveau supérieur | preg_match


preg_match

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

preg_match -- Expression rationnelle standard

Description

int preg_match ( string pattern, string subject [, array &matches [, int flags [, int offset]]] )

Analyse subject pour trouver l'expression qui correspond à pattern.

Liste de paramètres

pattern

Le masque à chercher, sous la forme d'une chaîne de caractères.

subject

La chaîne d'entrée.

matches

Si matches est fourni, il sera rempli par les résultats de la recherche. $matches[0] contiendra le texte qui satisfait le masque complet, $matches[1] contiendra le texte qui satisfait la première parenthèse capturante, etc.

flags

Le paramètre flags peut prendre l'une des valeurs suivantes :

PREG_OFFSET_CAPTURE

Si cette option est activée, toutes les sous-chaînes qui satisfont le masque seront aussi identifiées par leur offset. Notez que cela modifie le format de la valeur retournée , puisque chaque élément de réponse devient un tableau contenant la sous-chaîne résultat, à l'index 0 dans la chaîne subject constant 1.

offset

Normalement, la recherche commence au début de la chaîne subject. Le paramètre optionnel offset peut être utilisé pour spécifier une position pour le début de la recherche.

Note : Utiliser le paramètre offset ne revient pas à passer substr($subject, $offset) à preg_match_all() à la place de la chaîne subject, car pattern peut contenir des assertions comme ^, $ ou (?<=x). Comparez :

<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
print_r($matches);
?>

L'exemple ci-dessus va afficher :

Array
(
)

avec cet exemple :

<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>

produira :

Array
(
    [0] => Array
        (
            [0] => def
            [1] => 0
        )

)

Valeurs de retour

preg_match() retourne le nombre de fois où le masque pattern a été trouvé. Cela peut aller de 0 (pas de solution) à un 1 car preg_match() s'arrête dès qu'elle a trouvé une première solution. preg_match_all(), au contraire, va continuer jusqu'à la fin de la chaîne subject. preg_match() retourne FALSE si une erreur survient.

Historique

Version | Description
4.3.3 | Le paramètre offset a été ajouté.
4.3.0 | Le drapeau PREG_OFFSET_CAPTURE a été ajouté.
4.3.0 | Le paramètre flags a été ajouté.

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

Notes

Astuce : N'utilisez pas preg_match() si vous voulez uniquement savoir si une chaîne est contenue dans une autre. Utilisez dans ce cas les fonctions strpos() ou strstr(), qui sont beaucoup plus rapides.

Voir aussi

preg_match_all()
preg_replace()
preg_split()

Précédent | Sommaire | Suivant
preg_match_all | Niveau supérieur | preg_quote


preg_quote

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

preg_quote -- Échappement des caractères spéciaux des expressions rationnelles

Description

string preg_quote ( string str [, string delimiter] )

preg_quote() ajoute un anti-slash devant tous les caractères de la chaîne str. Cela est très utile si vous avez une chaîne qui va servir de masque, mais qui est générée durant l'exécution.

Les caractères spéciaux qui seront échappés : . \ + * ? [ ^ ] $ ( ) { } = ! < > | :

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 échappée.

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.

Précédent | Sommaire | Suivant
preg_match | Niveau supérieur | preg_replace_callback


preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5)

preg_replace_callback -- Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback

Description

mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit [, int &count]] )

Le comportement de preg_replace_callback() est presque identique à celui de preg_replace(), hormis le fait qu'à la place du paramètre replacement, il faut spécifier une fonction de callback 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

Une fonction de callback qui sera appelé et passerz un tableau d'éléments correspondants trouvés dans la chaîne subject. La fonction de callback doit retourner la chaîne de remplacement.

Vous aurez souvent besoin de la fonction callback avec preg_replace_callback() à un seul endroit. Dans ce cas, vous pouvez simplement utiliser la fonction create_function() pour déclarer une fonction anonyme comme fonction de callback pour preg_replace_callback(). En faisant cela, vous concentrez toutes les routines liées à votre remplacement à un seul endroit, et nous ne polluez par votre espace de noms de fonctions avec des fonctions à usage unique.

Exemple 1. preg_replace_callback() et create_function()

<?php
// Un filtre de ligne de commande Unix pour convertir les lettres
// en majuscule de début des paragraphe en minuscules

$fp = fopen("php://stdin", "r") or die("Impossible de lire la ligne de commande");
while (!feof($fp)) {
    $line = fgets($fp);
    $line = preg_replace_callback(
        '|<p>\s*\w|',
        create_function(
            // Les guillemets simples sont très importants ici
            // ou bien il faut protéger les caractères $ avec \$
            '$matches',
            'return strtolower($matches[0]);'
        ),
        $line
    );
    echo $line;
}
fclose($fp);
?>

subject

La chaîne ou le tableau de chaînes à chercher et à remplacer.

limit

Le nombre maximal de remplacement pour chaque masque dans chaque chaîne subject. Vaut par défaut -1 (aucune limite).

count

Si fournie, cette variable sera remplie avec le nombre de remplacements effectués.

Valeurs de retour

preg_replace_callback() retourne un tableau si le paramètre subject est un tableau, ou, sinon, une chaîne de caractères.

Si des correspondances sont trouvées, le nouveau sujet sera retourné, sinon subject sera retourné, inchangé.

Historique

Version | Description
5.1.0 | Le paramètre count a été ajouté.

Exemples

Exemple 2. Exemple avec preg_replace_callback()

<?php
// Ce texte était vrai en 2002
// nous voulons le mettre a jour pour 2003
$text = "Le premier avril est le 04/01/2002\n";
$text.= "Le dernier noël était le 12/24/2001\n";

// Fonction de callback
function next_year($matches)
{
  // comme d'habitude : $matches[0] représente la valeur totale
  // $matches[1] représente la première parenthèse capturante
  return $matches[1].($matches[2]+1);
}
echo preg_replace_callback(
            "|(\d{2}/\d{2}/)(\d{4})|",
            "next_year",
            $text);

?>

L'exemple ci-dessus va afficher :

Le premier avril est le 04/01/2003
Le dernier noël était le 12/24/2002

Exemple 3. Exemple avec preg_replace_callback() en utilisant une structure récursive pour gérer du BB code

<?php
$input = "plain [indent] deep [indent] deeper [/indent] deep [/indent] plain";

function parseTagsRecursive($input)
{

    $regex = '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#';

    if (is_array($input)) {
        $input = '<div style="margin-left: 10px">'.$input[1].'</div>';
    }

    return preg_replace_callback($regex, 'parseTagsRecursive', $input);
}

$output = parseTagsRecursive($input);

echo $output;
?>

Voir aussi

preg_replace()
create_function()
information à propos de callback type

Précédent | Sommaire | Suivant
preg_quote | Niveau supérieur | preg_replace


preg_replace

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

preg_replace -- Rechercher et remplacer par expression rationnelle standard

Description

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit [, int &count]] )

Analyse subject pour trouver l'expression rationnelle pattern et remplace les résultats par replacement.

Liste de paramètres

pattern

Le masque à chercher. Il peut être une chaîne ou un tableau de chaînes.

e force preg_replace() à traiter replacement comme du code PHP une fois que les substitutions adéquates ont été faites. Conseil : assurez-vous que replacement est un code PHP valide, car sinon, PHP trouvera une erreur d'analyse dans la ligne contenant la fonction preg_replace().

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é 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, (depuis PHP 4.0.4) $n. Cette dernière forme est recommandée. Ces références seront remplacées par le texte capturé par la n-ième parenthèse capturante du masque. n peut prendre des valeurs de 0 à 99, et \\0 ou $0, correspondent au texte de qui satisfait le masque complet. Les parenthèses ouvrantes sont comptées de gauche à droite (en commençant à 1) pour déterminer le numéro de parenthèse capturante.

Lorsque vous travaillez avec un masque de remplacement où une référence arrière est directement suivie par un nombre (i.e.: placer un nombre littéral immédiatement après une référence arrière), vous ne pouvez pas utiliser la syntaxe classique \\1 pour la référence arrière. \\11, par exemple, sera confus pour la fonction preg_replace() dans le sens où elle ne saura pas si vous désirez la référence arrière \\1 suivi du nombre 1 ou si vous désirez la référence arrière \\11 suivi de "rien". Dans ce cas, la solution est d'utiliser la syntaxe \${1}1. Cela créera une référence arrière isolée $1, suivi du nombre litéral 1.

Lorsque vous utilisez l'option 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 synthaxe ne survient lors de l'utilisation des références arrières avec des simples et doubles quotes (e.g. 'strlen(\'$1\')+strlen("$2")'). Assurez-vous d'être familier avec la synthaxe des chaînes afin de savoir exactement à quoi la chaîne interprétée doit ressembler.

subject

La chaîne ou le tableau contenant des chaînes à chercher et à remplacer.

Si subject est un tableau, alors l'opération sera appliquée à chacun des éléments du tableau, et le tableau sera retourné.

limit

Le nombre maximal de remplacement pour chaque masque dans chaque chaîne subject. Par défaut, vaut -1 (aucune limite).

count

Si fournie, cette variable contiendra le nombre de remplacements effectués.

Valeurs de retour

preg_replace() retourne un tableau si le paramètre subject est un tableau, ou une chaîne sinon.

Si des correspondances sont trouvées, le nouveau subject sera retourné, sinon subject sera retourné à l'identique.

Historique

Version | Description
5.1.0 | Ajout du paramètre count
4.0.4 | Ajout de la forme '$n' pour le paramètre replacement
4.0.1 | Ajout du paramètre limit

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[0] = '/agile/';
$patterns[1] = '/marron/';
$patterns[2] = '/renard/';
$replacements[2] = 'grizzly';
$replacements[1] = 'brun';
$replacements[0] = 'lent';
echo preg_replace($patterns, $replacements, $string);
?>

L'exemple ci-dessus va afficher :

Le grizzly brun lent 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 lent grizzly brun 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. Utilisation de l'option 'e'

<?php
preg_replace("/(<\/?)(\w+)([^>]*>)/e",
             "'\\1'.strtoupper('\\2').'\\3'",
             $html_body);
?>

Cela va mettre en majuscule toutes les balises HTML du texte.

Exemple 5. 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 6. Utilisation du paramètre count

<?php
$count = 0;

echo preg_replace(array('/\d/', '/\s/'), '*', 'xp 4 to', -1 , $count);
echo $count; //3
?>

L'exemple ci-dessus va afficher :

xp***to
3

Notes

Note : Lorsque vous utilisez des tableaux avec les paramètres pattern et replacement, les clés sont traitées dans l'ordre dans lequel elles apparaissent dans le tableau. Ce n'est pas forcément la même chose que l'ordre des index numériques. Si vous utilisez des index pour identifier quel pattern doit être replacé par quel replacement, il est recommandé de faire un tri ksort() sur chaque tableau avant de faire appel à preg_replace().

Voir aussi

preg_match()
preg_replace_callback()
preg_split()

Précédent | Sommaire | Suivant
preg_replace_callback | Niveau supérieur | preg_split


preg_split

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

preg_split -- Éclate une chaîne par expression rationnelle

Description

array preg_split ( string pattern, string subject [, int limit [, int flags]] )

É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 et si limit vaut -1, cela signifie en fait "sans limite", ce qui est utile pour passer le paramètre flags.

flags

flags peut être la combinaison des options suivantes (combinées avec l'opérateur |):

PREG_SPLIT_NO_EMPTY

Si cette option est activée, seules les sous-chaînes non vides seront retournées par preg_split().

PREG_SPLIT_DELIM_CAPTURE

Si cette option est activée, les expressions entre parenthèses entre les délimiteurs de masques seront aussi capturées et retournées.

PREG_SPLIT_OFFSET_CAPTURE

Si cette option est activée, pour chaque résultat, la position de celui-ci sera retournée. Notez que cela change la valeur retournée en un tableau où chaque élément est un tableau constitué de la chaîne trouvée à la position 0 et la position de la chaîne dans subject à la position 1.

Valeurs de retour

Retourne un tableau contenant les sous-chaînes de subject, séparées par les chaînes qui vérifient pattern.

Historique

Version | Description
4.3.0 | Le drapeau PREG_SPLIT_OFFSET_CAPTURE a été ajouté.
4.0.5 | Le drapeau PREG_SPLIT_DELIM_CAPTURE a été ajouté.
4.0.0 | Le paramètre flags a été ajouté.

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

Exemple 2. Scinder une chaîne en caractères

<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

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] => hypertext
            [1] => 0
        )

    [1] => Array
        (
            [0] => language
            [1] => 10
        )

    [2] => Array
        (
            [0] => programming
            [1] => 19
        )

)

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

Voir aussi

spliti()
split()
implode()
preg_match()
preg_match_all()
preg_replace()

Précédent | Sommaire | Suivant
preg_replace | Niveau supérieur | Fonctions PDF


Fonctions PDF

Manuel PHP
Précédent Suivant

CXXI. Fonctions PDF

Introduction

Les fonctions PDF permettent de créer des fichiers PDF en utilisant la bibliothèque PDFlib créée initialement par Thomas Merz et qui est actuellement maintenue par PDFlib GmbH.

La documentation de cette section est uniquement destinée à être une introduction aux fonctions disponibles, et ne doit pas être considérée comme une référence exaustive. Reportez-vous à la documentation incluse dans la distribution de PDFlib pour plus de détails et d'explications. Elle fournit une excellente référence des capacités de PDFlib, et contient la documentation la plus à jour.

Pour commencer, nous vous conseillons de regarder du côté des exemples fournis avec le paquet PDFlib. Ces exemples montrent la création d'un texte simple, de vecteurs ou encore de graphiques, en passant par l'utilisation de fonctions hauts niveaux comme PDI.

Toutes les fonctions de la PDFlib et du module PHP ont des noms et des arguments identiques. Vous aurez à comprendre quelques concepts basiques de PDF et PostScript pour l'utiliser efficacement. Toutes les longueurs et coordonnées sont mesurées en points PostScript. Il y a généralement 72 points PostScript pour faire un pouche (2.54 cm), mais cela dépend de la résolution de sortie. Reportez-vous au manuel de référence PDFlib inclus dans la distribution de PDFlib pour plus de détails sur le système de coordonnées.

Avec la version 6, PDFlib offre une API orientée objet pour PHP 5 en plus de l'API orientée fonctions pour PHP 4. Voici les plus grandes différences :

En PHP 4, tout d'abord, une ressource PDF doit être récupérée avec l'appel à une fonction comme

$p = PDF_new();

Cette ressource PDF est utilisée en tant que premier paramètre dans tous les prochains appels de fonctions, comme dans

PDF_begin_document($p, "", "").

En PHP 5, un objet PDFlib est créé plutôt avec

$p = new PDFlib().

Cet objet offre toutes les fonctions de l'API PDFlib en tant que méthodes, par exemple avec

$p->begin_document("", "").

En plus, les exceptions ont été introduites en PHP 5 qui sont supportées dans la version 6 ou supérieure de la PDFlib.

Lisez les exemples ci-dessous pour plus d'informations.

Note : Si vous êtes intéressé par des alternatives gratuites pour générer des PDF, sans passer par des bibliothèques PDF, reportez-vous à cette entrée de la FAQ.

Pré-requis

PDFlib Lite est disponible en tant qu'open source. Cependant, la license de PDFlib Lite permet l'utilisation libre sous certaines conditions. PDFlib Lite supporte une partie des fonctionnalités de PDFlib ; reportez-vous au site web de PDFlib pour plus de détails. La version complète de PDFlib est disponible en téléchargement sur http://www.pdflib.com/products/pdflib-family/, mais impose l'achat d'une license pour l'utiliser commercialement.

Problèmes avec les anciennes versions de PDFlib

Toutes les versions de PHP 4 éditées après le 9 Mars 2000 ne suportent pas les versions de PDFlib plus anciennes que PDFlib 3.0.

PDFlib 4.0 et plus récent est supporté par PHP 4.3.0 et plus récent.

Installation

Cette extension PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/pdflib.

Pour inclure le support de la PDFlib dans votre PHP < 4.3.9, il faut compiler PHP avec l'option --with-pdflib[=DIR]. DIR est le dossier d'installation de PDFlib et, par défaut, il vaut /usr/local.

Types de ressources

PDF_new() crée un nouvel objet PDFlib, nécessaire aux fonctions PDF.

Remarque sur les fonctions obsolètes de la PDFlib

Depuis PHP 4.0.5, l'extension PHP pour la PDFlib est officiellement supportée par PDFlib GmbH. Cela signifie que toutes les fonctions décrites dans le manuel de référence de la PDFlib (PDFlib V3.0 ou supérieur) sont supportées par PHP 4 avec exactement la même signification et les mêmes paramètres. Cepdentant, avec la PDFlib V5.0.4 ou supérieure, tous les paramètres doivent être spécifiés. Pour des raisons de compatibilité, l'implémentation de la PDFlib supporte la plupart des fonctions obsolètes, mais elles doivent être remplacées par leur nouvelle version. PDFlib GmbH ne fournira aucun support pour les problèmes survenant lors de l'utilisation de ces fonctions obsolètes. La documentation de cette section indique les anciennes fonctions comme "obsolètes" et donne la fonction qui doit être utilisée à la place.

Exemples

La plupart des fonctions sont simples d'emploi. Le plus difficile est probablement de créer un fichier PDF simple. L'exemple suivant devrait vous mettre sur les rails. Il est développé en PHP 4 et crée un fichier hello.pdf d'une page. Il définit quelques champs de contenu et charge la police Helvetica-Bold et affiche le texte "Bonjour le monde (dit PHP) !".

Exemple 1. Exemple "Bonjour le monde !" avec PDFlib en PHP 4

<?php
$p = PDF_new();

/*  Ouvre un nouveau fichier PDF ; insère un nom de fichier pour créer le PDF sur le disque */
if (PDF_begin_document($p, "", "") == 0) {
   die("Erreur : " . PDF_get_errmsg($p));
}

PDF_set_info($p, "Creator", "hello.php");
PDF_set_info($p, "Author", "Rainer Schaaf");
PDF_set_info($p, "Title", "Bonjour le monde (PHP) !");

PDF_begin_page_ext($p, 595, 842, "");

$font = PDF_load_font($p, "Helvetica-Bold", "winansi", "");

PDF_setfont($p, $font, 24.0);
PDF_set_text_pos($p, 50, 700);
PDF_show($p, "Bonjour le monde ");
PDF_continue_text($p, "(dit PHP) !");
PDF_end_page_ext($p, "");

PDF_end_document($p, "");

$buf = PDF_get_buffer($p);
$len = strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=hello.pdf");
print $buf;

PDF_delete($p);
?>

L'exemple suivant vient avec la distribution de la PDFlib pour PHP 5. Il utilise le nouveau gestionnaire d'exceptions ainsi que les nouvelles fonctionnalités objets disponible en PHP 5. Il crée le fichier hello.pdf d'une seule page. Il définit quelques champs de contenu et charge la police Helvetica-Bold et affiche le texte "Bonjour le monde (dit PHP) !".

Exemple 2. Exemple "Bonjour le monde !" avec PDFlib en PHP 5

<?php

try {
    $p = new PDFlib();

    /*  Ouvre un nouveau fichier PDF ; insère un nom de fichier pour créer le PDF sur le disque */
    if ($p->begin_document("", "") == 0) {
       die("Erreur : " . $p->get_errmsg());
    }

    $p->set_info("Creator", "hello.php");
    $p->set_info("Author", "Rainer Schaaf");
    $p->set_info("Title", "Bonjour le monde (PHP) !");

    $p->begin_page_ext(595, 842, "");

    $font = $p->load_font("Helvetica-Bold", "winansi", "");

    $p->setfont($font, 24.0);
    $p->set_text_pos(50, 700);
    $p->show("Bonjour le monde ");
    $p->continue_text("(dit PHP) !");
    $p->end_page_ext("");

    $p->end_document("");

    $buf = $p->get_buffer();
    $len = strlen($buf);

    header("Content-type: application/pdf");
    header("Content-Length: $len");
    header("Content-Disposition: inline; filename=hello.pdf");
    print $buf;
}
catch (PDFlibException $e) {
   die("Une exception PDFlib est survenu dans l'exemple hello :\n" .
   "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
   $e->get_errmsg() . "\n");
}
catch (Exception $e) {
   die($e);
}
$p = 0;
?>

Table des matières
PDF_activate_item -- Active un élément de structure ou un autre élément de contenu
PDF_add_annotation -- [Obsolète] Ajoute une annotation
PDF_add_bookmark -- [Obsolète] Ajoute un signet dans la page courante
PDF_add_launchlink -- [Obsolète] Ajoute une annotation de lancement dans la page PDF courante
PDF_add_locallink -- [Obsolète] Ajoute une annotation de lien dans la page PDF courante
PDF_add_nameddest -- Crée une destination nommée
PDF_add_note -- [Obsolète] Ajoute une annotation dans la page PDF courante
PDF_add_outline -- [Obsolète] Ajoute un signet dans la page courante
PDF_add_pdflink -- [Obsolète] Ajoute une annotation sur un lien vers un fichier dans la page PDF courante
PDF_add_thumbnail -- [Obsolète] Ajoute une miniature sur la page PDF courante
PDF_add_weblink -- [Obsolète] Ajoute un lien web sur la page PDF courante
PDF_arc -- Dessine un arc de cercle PDF dans le sens anti-horaire
PDF_arcn -- Dessine un arc de cercle dans le sens horaire
PDF_attach_file -- [Obsolète] Ajoute un fichier attaché à la page PDF
PDF_begin_document -- Crée un nouveau fichier PDF
PDF_begin_font -- Commence une définition de police de type 3
PDF_begin_glyph -- Commence une définition de glyphe pour les polices de tye 3
PDF_begin_item -- Ouvre un élément de structure ou un autre élément de contenu
PDF_begin_layer -- Commence une interface
PDF_begin_page_ext -- Commence une nouvelle page
PDF_begin_page -- [Obsolète] Initialise une nouvelle page de document PDF
PDF_begin_pattern -- Initialise un nouveau pattern PDF
PDF_begin_template -- Initialise un nouveau template PDF
PDF_circle -- Dessine un cercle dans un document PDF
PDF_clip -- Modifie le chemin de clipping PDF
PDF_close_image -- Ferme une image dans un document PDF
PDF_close_pdi_page -- Ferme la page PDF
PDF_close_pdi -- Ferme le fichier PDF d'entrée
PDF_close -- [Obsolète] Ferme le fichier PDF
PDF_closepath_fill_stroke -- Termine le chemin, dessine les bords et remplit la forme
PDF_closepath_stroke -- Termine le chemin et dessine les bords
PDF_closepath -- Termine le chemin PDF courant
PDF_concat -- Concatène une matrice avec le CTM
PDF_continue_text -- Affiche du texte à la prochaine ligne PDF
PDF_create_action -- Crée une action pour des objets ou des événements
PDF_create_annotation -- Crée une annotation rectangulaire
PDF_create_bookmark -- Crée un signet
PDF_create_field -- Crée un champ de formulaire
PDF_create_fieldgroup -- Crée un groupe de champs dans un formulaire
PDF_create_gstate -- Crée un objet graphique
PDF_create_pvf -- Crée un fichier PDFlib virtuel
PDF_create_textflow -- Crée un objet de flux de texte
PDF_curveto -- Dessine une courbe de Bezier
PDF_define_layer -- Crée une définition d'interface
PDF_delete_pvf -- Efface un fichier virtuel PDFlib
PDF_delete_textflow -- Efface un objet de flux de texte
PDF_delete -- Efface un objet PDF
PDF_encoding_set_char -- Ajoute un nom de glyphe et/ou une valeur Unicode
PDF_end_document -- Ferme un fichier PDF
PDF_end_font -- Termine une définition de police de type 3
PDF_end_glyph -- Termine la définition d'un glyphe pour les polices de type 3
PDF_end_item -- Ferme la structure d'un élément ou un autre élément de contenu
PDF_end_layer -- Désactive toutes les interfaces actives
PDF_end_page_ext -- Termine une page
PDF_end_page -- Termine la page PDF courante
PDF_end_pattern -- Termine le pattern PDF
PDF_end_template -- Termine le template PDF
PDF_endpath -- Termine le chemin courant
PDF_fill_imageblock -- Remplit un bloc d'image avec des données variables
PDF_fill_pdfblock -- Remplit un bloc de contenu avec des données variables
PDF_fill_stroke -- Remplit et passe le pinceau sur le chemin PDF courant
PDF_fill_textblock -- Remplit un bloc de texte avec des données variables
PDF_fill -- Remplit le chemin PDF courant avec la couleur courante
PDF_findfont -- [Obsolète] Prépare une police pour utilisation ultérieure
PDF_fit_image -- Place une image ou un template
PDF_fit_pdi_page -- Place une page PDF importée
PDF_fit_textflow -- Formate un flux de texte dans un espace rectangulaire
PDF_fit_textline -- Place un simple ligne de texte
PDF_get_apiname -- Récupère le nom d'une fonction de l'API qui a échouée
PDF_get_buffer -- Lit le tampon contenant le fichier PDF généré
PDF_get_errmsg -- Récupère le texte d'une erreur
PDF_get_errnum -- Récupère un numéro d'erreur
PDF_get_font -- [Obsolète] Charge une police
PDF_get_fontname -- [Obsolète] Lit le nom de la police
PDF_get_fontsize -- [Obsolète] Gère les polices
PDF_get_image_height -- [Obsolète] Retourne la hauteur d'une image
PDF_get_image_width -- [Obsolète] Retourne la largeur d'une image
PDF_get_majorversion -- [Obsolète] Retourne le numéro de version majeur de PDFlib
PDF_get_minorversion -- [Obsolète] Retourne le numéro de version mineure de PDFlib
PDF_get_parameter -- Lit certains paramètres
PDF_get_pdi_parameter -- Lit des paramètres textuels dans le document PDI
PDF_get_pdi_value -- Lit des paramètres numériques dans le document PDF d'entrée
PDF_get_value -- Lit certains paramètres numériques
PDF_info_textflow -- Récupère le statut d'un flux de texte
PDF_initgraphics -- Remet à zéro l'environnement graphique PDF
PDF_lineto -- Dessine une ligne PDF
PDF_load_font -- Cherche et prépare une police
PDF_load_iccprofile -- Cherche et prépare un profile ICC
PDF_load_image -- Ouvre un fichier image
PDF_makespotcolor -- Place un point de couleur PDF
PDF_moveto -- Place le point courant PDF
PDF_new -- Crée un nouvel objet PDF
PDF_open_ccitt -- [Obsolète] Ouvre une image contenant des données brutes CCITT
PDF_open_file -- [Obsolète] Ouvre un nouveau fichier PDF
PDF_open_gif -- [Obsolète] Ouvre une image GIF
PDF_open_image_file -- [Obsolète] Lit une image depuis un fichier
PDF_open_image -- [Obsolète] Ouvre une image
PDF_open_jpeg -- [Obsolète] Ouvre une image JPEG
PDF_open_memory_image -- [Non supporté] Ouvre une image créée en mémoire par PHP
PDF_open_pdi_page -- Prépare une page
PDF_open_pdi -- Ouvre un fichier PDF
PDF_open_tiff -- [Obsolète] Ouvre une image TIFF
PDF_place_image -- [Obsolète] Place une image dans la page
PDF_place_pdi_page -- [Obsolète] Place une page dans le document
PDF_process_pdi -- Traite un document PDF importé
PDF_rect -- Dessine un rectangle
PDF_restore -- Rétablit l'ancien environnement graphique PDF
PDF_resume_page -- Réouvre une page
PDF_rotate -- Configure la rotation
PDF_save -- Sauve l'environnement graphique courant
PDF_scale -- Configure l'échelle du document
PDF_set_border_color -- [Obsolète] Configure la couleur des bords autour des liens et annotations
PDF_set_border_dash -- [Obsolète] Configure le style des lignes autour des liens des annotations
PDF_set_border_style -- [Obsolète] Choisit le style de bord autour des liens et annotations
PDF_set_char_spacing -- [Obsolète] Configure l'espacement des caractères
PDF_set_duration -- [Obsolète] Configure la durée entre deux pages
PDF_set_gstate -- Active un objet graphique
PDF_set_horiz_scaling -- [Obsolète] Configure l'échelle horizontale du texte
PDF_set_info_author -- [Obsolète] Remplit le champ d'auteur du document
PDF_set_info_creator -- [Obsolète] Remplit le champ de créateur du document
PDF_set_info_keywords -- [Obsolète] Remplit le champ de mots-clés du document
PDF_set_info_subject -- [Obsolète] Remplit le champ de sujet du document
PDF_set_info_title -- [Obsolète] Remplit le champ de titre du document
PDF_set_info -- Remplit un champ de l'en-tête de document PDF
PDF_set_layer_dependency -- Définit les liens entre les interfaces
PDF_set_leading -- [Obsolète] Configure la distance entre deux lignes de texte
PDF_set_parameter -- Modifie certains paramètres
PDF_set_text_matrix -- [Obsolète] Configure la matrice de texte
PDF_set_text_pos -- Modifie la position du texte
PDF_set_text_rendering -- [Obsolète] Détermine le rendu du texte
PDF_set_text_rise -- [Obsolète] Configure l'élévation de texte
PDF_set_value -- Modifie certains paramètres numériques
PDF_set_word_spacing -- [Obsolète] Configure l'espace entre deux mots
PDF_setcolor -- Configure la couleur de dessin et de remplissage
PDF_setdash -- Configure le mode de pointillé
PDF_setdashpattern -- Définit un modèle de masque
PDF_setflat -- Configure la position à plat (flatness)
PDF_setfont -- Configure la police courante
PDF_setgray_fill -- [Obsolète] Configure la couleur de remplissage à un niveau de gris
PDF_setgray_stroke -- [Obsolète] Configure la couleur de dessin à un niveau de gris
PDF_setgray -- [Obsolète] Configure la couleur de dessin et de remplissage à un niveau de gris
PDF_setlinecap -- Configure le paramètre de linecap
PDF_setlinejoin -- Configure le paramètre de linejoin
PDF_setlinewidth -- Configure la largeur de ligne
PDF_setmatrix -- Configure la matrice de transformation
PDF_setmiterlimit -- Configure la "miter limit"
PDF_setpolydash -- [Obsolète] Configure des pointillés complexes
PDF_setrgbcolor_fill -- [Obsolète] Choisit la couleur utilisée pour le remplissage
PDF_setrgbcolor_stroke -- [Obsolète] Choisit la couleur utilisée pour le dessin
PDF_setrgbcolor -- [Obsolète] Choisit la couleur rgb de remplissage et de dessin
PDF_shading_pattern -- Définit un masque d'ombrage
PDF_shading -- Définit un dégradé
PDF_shfill -- Remplit un espace avec un degradé
PDF_show_boxed -- [Obsolète] Affiche le texte dans un cadre
PDF_show_xy -- Affiche un texte à une position donnée
PDF_show -- Affiche le texte à la position courante
PDF_skew -- Incline le système de coordonnées
PDF_stringwidth -- Retourne la largeur d'un texte avec la police courante
PDF_stroke -- Dessine la ligne le long du chemin
PDF_suspend_page -- Suspend une page
PDF_translate -- Effectue une translation de l'origine du système de coordonnées
PDF_utf16_to_utf8 -- Convertit une chaîne UTF-16 en UTF-8
PDF_utf8_to_utf16 -- Convertit une chaîne UTF-8 en UTF-16

Précédent | Sommaire | Suivant
preg_split | Niveau supérieur | PDF_activate_item


PDF_add_annotation

(PHP 3 >= 3.0.12, PHP 4, PECL)

PDF_add_annotation -- [Obsolète] Ajoute une annotation

Description

Cette fonction est obsolète, utilisez la fonction PDF_create_annotation() avec le paramètre type=Text à la place.

Précédent | Sommaire | Suivant
PDF_activate_item | Niveau supérieur | PDF_add_bookmark


PDF_add_bookmark

(PHP 4 >= 4.0.1, PECL)

PDF_add_bookmark -- [Obsolète] Ajoute un signet dans la page courante

Description

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_bookmark() à la place.

Précédent | Sommaire | Suivant
PDF_add_annotation | Niveau supérieur | PDF_add_launchlink


PDF_add_launchlink

(PHP 4 >= 4.0.5, PECL)

PDF_add_launchlink -- [Obsolète] Ajoute une annotation de lancement dans la page PDF courante

Description

bool PDF_add_launchlink ( resource pdfdoc, float llx, float lly, float urx, float ury, string filename )

PDF_add_launchlink() ajoute un lien vers une ressource web.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_action() avec le paramètre type=Launch et la fonction PDF_create_annotation() avec le paramètre type=Link à la place.

Précédent | Sommaire | Suivant
PDF_add_bookmark | Niveau supérieur | PDF_add_locallink


PDF_add_locallink

(PHP 4 >= 4.0.5, PECL)

PDF_add_locallink -- [Obsolète] Ajoute une annotation de lien dans la page PDF courante

Description

bool PDF_add_locallink ( resource pdfdoc, float lowerleftx, float lowerlefty, float upperrightx, float upperrighty, int page, string dest )

PDF_add_locallink() ajoute une annotation de lien dans la page courante. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction
PDF_create_action() avec le paramètre
type=GoTo et
la fonction PDF_create_annotation() avec le paramètre
type=Link à la place.

Précédent | Sommaire | Suivant
PDF_add_launchlink | Niveau supérieur | PDF_add_nameddest


PDF_add_note

(PHP 4 >= 4.0.5, PECL)

PDF_add_note -- [Obsolète] Ajoute une annotation dans la page PDF courante

Description

bool PDF_add_note ( resource pdfdoc, float llx, float lly, float urx, float ury, string contents, string title, string icon, int open )

PDF_add_note() ajoute une annotation dans la page courante. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec le paramètre type=Text à la place.

Précédent | Sommaire | Suivant
PDF_add_nameddest | Niveau supérieur | PDF_add_outline


PDF_add_outline

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_add_outline -- [Obsolète] Ajoute un signet dans la page courante

Description

Cette fonction est obsolète, utilisez la fonction PDF_create_bookmark() à la place.

Précédent | Sommaire | Suivant
PDF_add_note | Niveau supérieur | PDF_add_pdflink


PDF_add_pdflink

(PHP 3 >= 3.0.12, PHP 4, PECL)

PDF_add_pdflink -- [Obsolète] Ajoute une annotation sur un lien vers un fichier dans la page PDF courante

Description

bool PDF_add_pdflink ( resource pdfdoc, float bottom_left_x, float bottom_left_y, float up_right_x, float up_right_y, string filename, int page, string dest )

PDF_add_pdflink() ajoute une annotation sur un lien vers un fichier dans la page courante. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_action() avec le paramètre type=GoToR et la fonction PDF_create_annotation() avec le paramètre type=Link à la place.

Précédent | Sommaire | Suivant
PDF_add_outline | Niveau supérieur | PDF_add_thumbnail


PDF_add_thumbnail

(PHP 4 >= 4.0.5, PECL)

PDF_add_thumbnail -- [Obsolète] Ajoute une miniature sur la page PDF courante

Description

bool PDF_add_thumbnail ( resource pdfdoc, int image )

pdf_add_thumbnail() ajoute une miniature sur la page courante. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_add_pdflink | Niveau supérieur | PDF_add_weblink


PDF_add_weblink

(PHP 3 >= 3.0.12, PHP 4, PECL)

PDF_add_weblink -- [Obsolète] Ajoute un lien web sur la page PDF courante

Description

bool PDF_add_weblink ( resource pdfdoc, float lowerleftx, float lowerlefty, float upperrightx, float upperrighty, string url )

PDF_add_weblink() ajoute un lien web url sur la page courante. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction
PDF_create_action() avec le paramètre
type=URI et la fonction
PDF_create_annotation() avec le paramètre
type=Link à la place.

Précédent | Sommaire | Suivant
PDF_add_thumbnail | Niveau supérieur | PDF_arc


PDF_arc

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_arc -- Dessine un arc de cercle PDF dans le sens anti-horaire

Description

bool PDF_arc ( resource p, float x, float y, float r, float alpha, float beta )

PDF_arc() dessine un arc de cercle.

Précédent | Sommaire | Suivant
PDF_add_weblink | Niveau supérieur | PDF_arcn


PDF_arcn

(PHP 4 >= 4.0.5, PECL)

PDF_arcn -- Dessine un arc de cercle dans le sens horaire

Description

bool PDF_arcn ( resource p, float x, float y, float r, float alpha, float beta )

Excepté pour la direction du dessin, cette fonction fonctionne exactement de la même façon que la fonction pdf_arc().

Précédent | Sommaire | Suivant
PDF_arc | Niveau supérieur | PDF_attach_file


PDF_attach_file

(PHP 4 >= 4.0.5, PECL)

PDF_attach_file -- [Obsolète] Ajoute un fichier attaché à la page PDF

Description

bool PDF_attach_file ( resource pdfdoc, float llx, float lly, float urx, float ury, string filename, string description, string author, string mimetype, string icon )

PDF_attach_file ajoute un fichier attaché à la page courante. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est osbolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec le paramètre type=FileAttachment à la place.

Précédent | Sommaire | Suivant
PDF_arcn | Niveau supérieur | PDF_begin_document


PDF_begin_page

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_begin_page -- [Obsolète] Initialise une nouvelle page de document PDF

Description

bool PDF_begin_page ( resource pdfdoc, float width, float height )

PDF_begin_page ajoute une nouvelle page au document. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_begin_page_ext() à la place.

Précédent | Sommaire | Suivant
PDF_begin_page_ext | Niveau supérieur | PDF_begin_pattern


PDF_begin_pattern

(PHP 4 >= 4.0.5, PECL)

PDF_begin_pattern -- Initialise un nouveau pattern PDF

Description

int PDF_begin_pattern ( resource pdfdoc, float width, float height, float xstep, float ystep, int painttype )

PDF_begin_pattern() initialise un nouveau pattern.

Précédent | Sommaire | Suivant
PDF_begin_page | Niveau supérieur | PDF_begin_template


PDF_begin_template

(PHP 4 >= 4.0.5, PECL)

PDF_begin_template -- Initialise un nouveau template PDF

Description

int PDF_begin_template ( resource pdfdoc, float width, float height )

pdf_begin_template() initialise un nouveau template.

Précédent | Sommaire | Suivant
PDF_begin_pattern | Niveau supérieur | PDF_circle


PDF_circle

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_circle -- Dessine un cercle dans un document PDF

Description

bool PDF_circle ( resource pdfdoc, float x, float y, float r )

PDF_circle() dessine un cercle.

Précédent | Sommaire | Suivant
PDF_begin_template | Niveau supérieur | PDF_clip


PDF_clip

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_clip -- Modifie le chemin de clipping PDF

Description

bool PDF_clip ( resource p )

PDF_clip() utilise le chemin courant comme chemin de clipping. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_circle | Niveau supérieur | PDF_close_image


PDF_close_image

(PHP 3 >= 3.0.7, PHP 4, PECL)

PDF_close_image -- Ferme une image dans un document PDF

Description

void PDF_close_image ( resource p, int image )

PDF_close_image() ferme l'image image, ouverte avec la fonction PDF_open_image().

Précédent | Sommaire | Suivant
PDF_clip | Niveau supérieur | PDF_close_pdi_page


PDF_close_pdi_page

(PHP 4 >= 4.0.5, PECL)

PDF_close_pdi_page -- Ferme la page PDF

Description

bool PDF_close_pdi_page ( resource p, int page )

PDF_close_pdi_page() ferme la page, et libère toutes les ressources liées à celle-ci. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_close_image | Niveau supérieur | PDF_close_pdi


PDF_close_pdi

(PHP 4 >= 4.0.5, PECL)

PDF_close_pdi -- Ferme le fichier PDF d'entrée

Description

bool PDF_close_pdi ( resource p, int doc )

PDF_close_pdi() ferme toutes les pages ouvertes, et referme le document PDF utilsé en entrée. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_close_pdi_page | Niveau supérieur | PDF_close


PDF_close

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_close -- [Obsolète] Ferme le fichier PDF

Description

bool PDF_close ( resource p )

PDF_close() ferme le fichier PDF généré, et libère toutes les ressources qui y était rattachées. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_end_document() à la place.

Précédent | Sommaire | Suivant
PDF_close_pdi | Niveau supérieur | PDF_closepath_fill_stroke


PDF_closepath_fill_stroke

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_closepath_fill_stroke -- Termine le chemin, dessine les bords et remplit la forme

Description

bool PDF_closepath_fill_stroke ( resource p )

PDF_closepath_fill_stroke() termine le chemin, dessine les bords et remplit la forme. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_close | Niveau supérieur | PDF_closepath_stroke


PDF_closepath_stroke

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_closepath_stroke -- Termine le chemin et dessine les bords

Description

bool PDF_closepath_stroke ( resource p )

PDF_closepath_stroke() termine le chemin et dessine les bords. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_closepath_fill_stroke | Niveau supérieur | PDF_closepath


PDF_closepath

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_closepath -- Termine le chemin PDF courant

Description

bool PDF_closepath ( resource p )

PDF_closepath() termine le chemin courant. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_closepath_stroke | Niveau supérieur | PDF_concat


PDF_concat

(PHP 4 >= 4.0.5, PECL)

PDF_concat -- Concatène une matrice avec le CTM

Description

bool PDF_concat ( resource p, float a, float b, float c, float d, float e, float f )

pdf_concat() concatène une matrice avec le CTM. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_closepath | Niveau supérieur | PDF_continue_text


PDF_continue_text

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_continue_text -- Affiche du texte à la prochaine ligne PDF

Description

bool PDF_continue_text ( resource p, string text )

pdf_continue_text() affiche le texte text à la prochaine ligne. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_concat | Niveau supérieur | PDF_create_action


PDF_curveto

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_curveto -- Dessine une courbe de Bezier

Description

bool PDF_curveto ( resource p, float x1, float y1, float x2, float y2, float x3, float y3 )

pdf_curveto() dessine une courbe de Bezier à partir du point courant, et en utilisant trois points de contrôle. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_create_textflow | Niveau supérieur | PDF_define_layer


PDF_delete

(PHP 4 >= 4.0.5, PECL)

PDF_delete -- Efface un objet PDF

Description

bool PDF_delete ( resource pdfdoc )

PDF_delete() efface l'objet PDF et libère toutes les ressources. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_delete_textflow | Niveau supérieur | PDF_encoding_set_char


PDF_end_page

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_end_page -- Termine la page PDF courante

Description

bool PDF_end_page ( resource p )

pdf_end_page() termine la page courante. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_end_page_ext | Niveau supérieur | PDF_end_pattern


PDF_end_pattern

(PHP 4 >= 4.0.5, PECL)

PDF_end_pattern -- Termine le pattern PDF

Description

bool PDF_end_pattern ( resource p )

PDF_end_pattern() termine la définition du pattern. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_end_page | Niveau supérieur | PDF_end_template


PDF_end_template

(PHP 4 >= 4.0.5, PECL)

PDF_end_template -- Termine le template PDF

Description

bool PDF_end_template ( resource p )

PDF_end_template() termine la définition du template. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_end_pattern | Niveau supérieur | PDF_endpath


PDF_endpath

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_endpath -- Termine le chemin courant

Description

Termine le chemin courant.

Précédent | Sommaire | Suivant
PDF_end_template | Niveau supérieur | PDF_fill_imageblock


PDF_fill_stroke

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_fill_stroke -- Remplit et passe le pinceau sur le chemin PDF courant

Description

bool PDF_fill_stroke ( resource p )

PDF_fill_stroke() remplit le chemin courant avec la couleur courante, en applicant le pinceau courant (stroke). Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_fill_pdfblock | Niveau supérieur | PDF_fill_textblock


PDF_fill

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_fill -- Remplit le chemin PDF courant avec la couleur courante

Description

bool PDF_fill ( resource p )

pdf_fill_stroke() remplit le chemin courant avec la couleur courante. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_fill_textblock | Niveau supérieur | PDF_findfont


PDF_findfont

(PHP 4 >= 4.0.5, PECL)

PDF_findfont -- [Obsolète] Prépare une police pour utilisation ultérieure

Description

int PDF_findfont ( resource p, string fontname, string encoding, int embed )

PDF_findfont() prépare la police fontname pour utilisation ultérieure avec PDF_setfont(). Les dimensions seront chargées et, si embed est non nul, le fichier de police sera vérifié mais pas utilisé. encoding peut prendre une des valeurs suivantes : builtin,macroman, winansi, host, ou bien un encodage défini par l'utilisateur, ou encore le nom d'une CMap. Le paramètre embed est optionnel avant PHP 4.3.5 ou avec PDFlib inférieur à 5.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_load_font() à la place.

Précédent | Sommaire | Suivant
PDF_fill | Niveau supérieur | PDF_fit_image


PDF_get_buffer

(PHP 4 >= 4.0.5, PECL)

PDF_get_buffer -- Lit le tampon contenant le fichier PDF généré

Description

string PDF_get_buffer ( resource p )

PDF_get_buffer() lit le contenu du tampon PDF.

Précédent | Sommaire | Suivant
PDF_get_apiname | Niveau supérieur | PDF_get_errmsg


PDF_get_font

(PHP 4, PECL)

PDF_get_font -- [Obsolète] Charge une police

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre font à la place.

Précédent | Sommaire | Suivant
PDF_get_errnum | Niveau supérieur | PDF_get_fontname


PDF_get_fontname

(PHP 4, PECL)

PDF_get_fontname -- [Obsolète] Lit le nom de la police

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_parameter() avec le paramètre fontname à la place.

Précédent | Sommaire | Suivant
PDF_get_font | Niveau supérieur | PDF_get_fontsize


PDF_get_fontsize

(PHP 4, PECL)

PDF_get_fontsize -- [Obsolète] Gère les polices

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre fontsize à la place.

Précédent | Sommaire | Suivant
PDF_get_fontname | Niveau supérieur | PDF_get_image_height


PDF_get_image_height

(PHP 3 >= 3.0.12, PHP 4, PECL)

PDF_get_image_height -- [Obsolète] Retourne la hauteur d'une image

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre imageheight à la place.

Précédent | Sommaire | Suivant
PDF_get_fontsize | Niveau supérieur | PDF_get_image_width


PDF_get_image_width

(PHP 3 >= 3.0.12, PHP 4, PECL)

PDF_get_image_width -- [Obsolète] Retourne la largeur d'une image

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre imagewidth à la place.

Précédent | Sommaire | Suivant
PDF_get_image_height | Niveau supérieur | PDF_get_majorversion


PDF_get_majorversion

(PHP 4 >= 4.2.0, PECL)

PDF_get_majorversion -- [Obsolète] Retourne le numéro de version majeur de PDFlib

Description

int PDF_get_majorversion ( void )

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre major à la place.

Précédent | Sommaire | Suivant
PDF_get_image_width | Niveau supérieur | PDF_get_minorversion


PDF_get_minorversion

(PHP 4 >= 4.2.0, PECL)

PDF_get_minorversion -- [Obsolète] Retourne le numéro de version mineure de PDFlib

Description

int PDF_get_minorversion ( void )

PDF_get_majorversion() retourne le numéro de version mineure de PDFlib.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_get_value() avec le paramètre minor à la place.

Précédent | Sommaire | Suivant
PDF_get_majorversion | Niveau supérieur | PDF_get_parameter


PDF_get_parameter

(PHP 4 >= 4.0.1, PECL)

PDF_get_parameter -- Lit certains paramètres

Description

string PDF_get_parameter ( resource p, string key, float modifier )

pdf_get_parameter() lit certains paramètres au format textuel.

Précédent | Sommaire | Suivant
PDF_get_minorversion | Niveau supérieur | PDF_get_pdi_parameter


PDF_get_pdi_parameter

(PHP 4 >= 4.0.5, PECL)

PDF_get_pdi_parameter -- Lit des paramètres textuels dans le document PDI

Description

string PDF_get_pdi_parameter ( resource p, string key, int doc, int page, int reserved )

PDF_get_pdi_parameter() lit des paramètres textuels dans le document PDI doc.

Précédent | Sommaire | Suivant
PDF_get_parameter | Niveau supérieur | PDF_get_pdi_value


PDF_get_pdi_value

(PHP 4 >= 4.0.5, PECL)

PDF_get_pdi_value -- Lit des paramètres numériques dans le document PDF d'entrée

Description

float PDF_get_pdi_value ( resource p, string key, int doc, int page, int reserved )

PDF_get_pdi_value() lit des paramètres numériques dans le document PDF d'entrée.

Précédent | Sommaire | Suivant
PDF_get_pdi_parameter | Niveau supérieur | PDF_get_value


PDF_get_value

(PHP 4 >= 4.0.1, PECL)

PDF_get_value -- Lit certains paramètres numériques

Description

float PDF_get_value ( resource p, string key, float modifier )

PDF_get_value() retourne la valeur du paramètre numérique du document p, identifié par key.

Précédent | Sommaire | Suivant
PDF_get_pdi_value | Niveau supérieur | PDF_info_textflow


PDF_initgraphics

(PHP 4 >= 4.0.5, PECL)

PDF_initgraphics -- Remet à zéro l'environnement graphique PDF

Description

bool PDF_initgraphics ( resource p )

pdf_initgraphics() remet à leur valeur intiale toutes les couleurs et les paramètres graphiques. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_info_textflow | Niveau supérieur | PDF_lineto


PDF_lineto

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_lineto -- Dessine une ligne PDF

Description

bool PDF_lineto ( resource p, float x, float y )

PDF_lineto() dessine une ligne entre le point courant et un autre point. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_initgraphics | Niveau supérieur | PDF_load_font


PDF_makespotcolor

(PHP 4 >= 4.0.5, PECL)

PDF_makespotcolor -- Place un point de couleur PDF

Description

int PDF_makespotcolor ( resource p, string spotname )

pdf_makespotcolor() place un point de couleur, ayant le nom de spotname et comme couleur, la couleur courante. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_load_image | Niveau supérieur | PDF_moveto


PDF_moveto

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_moveto -- Place le point courant PDF

Description

bool PDF_moveto ( resource p, float x, float y )

PDF_moveto() place le point courant aux coordonnées données. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_makespotcolor | Niveau supérieur | PDF_new


PDF_new

(PHP 4 >= 4.0.5, PECL)

PDF_new -- Crée un nouvel objet PDF

Description

resource PDF_new ( )

PDF_new() crée un nouvel objet PDF, en utilisant le système de gestion d'erreurs et celui de gestion de la mémoire.

Précédent | Sommaire | Suivant
PDF_moveto | Niveau supérieur | PDF_open_ccitt


PDF_open_ccitt

(PHP 4 >= 4.0.5, PECL)

PDF_open_ccitt -- [Obsolète] Ouvre une image contenant des données brutes CCITT

Description

int PDF_open_ccitt ( resource pdfdoc, string filename, int width, int height, int BitReverse, int k, int Blackls1 )

PDF_open_ccitt() ouvre une image brute CCITT.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_load_image() à la place.

Précédent | Sommaire | Suivant
PDF_new | Niveau supérieur | PDF_open_file


PDF_open_file

(PHP 4 >= 4.0.5, PECL)

PDF_open_file -- [Obsolète] Ouvre un nouveau fichier PDF

Description

bool PDF_open_file ( resource p, string filename )

PDF_open_file() crée un nouveau fichier PDF dans le fichier filename. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_begin_document() à la place.

Précédent | Sommaire | Suivant
PDF_open_ccitt | Niveau supérieur | PDF_open_gif


PDF_open_gif

(PHP 3 >= 3.0.7, PHP 4, PECL)

PDF_open_gif -- [Obsolète] Ouvre une image GIF

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_load_image() à la place.

Précédent | Sommaire | Suivant
PDF_open_file | Niveau supérieur | PDF_open_image_file


PDF_open_image_file

(PHP 3 CVS only, PHP 4, PECL)

PDF_open_image_file -- [Obsolète] Lit une image depuis un fichier

Description

int PDF_open_image_file ( resource p, string imagetype, string filename, string stringparam, int intparam )

PDF_open_image_file() ouvre une image depuis le fichier filename.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_load_image() à la place.

Précédent | Sommaire | Suivant
PDF_open_gif | Niveau supérieur | PDF_open_image


PDF_open_image

(PHP 4 >= 4.0.5, PECL)

PDF_open_image -- [Obsolète] Ouvre une image

Description

int PDF_open_image ( resource p, string imagetype, string source, string data, int length, int width, int height, int components, int bpc, string params )

PDF_open_image() permet d'accéder à des images de différents formats.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez les fichiers virtuels et la fonction pdf_load_image() à la place.

Précédent | Sommaire | Suivant
PDF_open_image_file | Niveau supérieur | PDF_open_jpeg


PDF_open_jpeg

(PHP 3 >= 3.0.7, PHP 4, PECL)

PDF_open_jpeg -- [Obsolète] Ouvre une image JPEG

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_load_image() à la place.

Précédent | Sommaire | Suivant
PDF_open_image | Niveau supérieur | PDF_open_memory_image


PDF_open_memory_image

(PHP 3 >= 3.0.10, PHP 4, PECL)

PDF_open_memory_image -- [Non supporté] Ouvre une image créée en mémoire par PHP

Description

int PDF_open_memory_image ( resource p, resource image )

Cette fonction n'est pas supportée par la PDFlib GmbH.

Précédent | Sommaire | Suivant
PDF_open_jpeg | Niveau supérieur | PDF_open_pdi_page


PDF_open_pdi_page

(PHP 4 >= 4.0.5, PECL)

PDF_open_pdi_page -- Prépare une page

Description

int PDF_open_pdi_page ( resource p, int doc, int pagenumber, string optlist )

PDF_open_pdi_page() prépare une page pour utilisation ultérieure avec PDF_fit_pdi_page().

Précédent | Sommaire | Suivant
PDF_open_memory_image | Niveau supérieur | PDF_open_pdi


PDF_open_pdi

(PHP 4 >= 4.0.5, PECL)

PDF_open_pdi -- Ouvre un fichier PDF

Description

int PDF_open_pdi ( resource pdfdoc, string filename, string optlist )

PDF_open_pdi() ouvre un fichier PDF existant, pour utilisation ultérieure.

Précédent | Sommaire | Suivant
PDF_open_pdi_page | Niveau supérieur | PDF_open_tiff


PDF_open_tiff

(PHP 4, PECL)

PDF_open_tiff -- [Obsolète] Ouvre une image TIFF

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_load_image() à la place.

Précédent | Sommaire | Suivant
PDF_open_pdi | Niveau supérieur | PDF_place_image


PDF_place_image

(PHP 3 >= 3.0.7, PHP 4, PECL)

PDF_place_image -- [Obsolète] Place une image dans la page

Description

bool PDF_place_image ( resource pdfdoc, int image, float x, float y, float scale )

PDF_place_image() place l'image image, dans la page courante, au point de coordonnées (x,y), et la met à l'échelle scale. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_fit_image() à la place.

Précédent | Sommaire | Suivant
PDF_open_tiff | Niveau supérieur | PDF_place_pdi_page


PDF_place_pdi_page

(PHP 4 >= 4.0.6, PECL)

PDF_place_pdi_page -- [Obsolète] Place une page dans le document

Description

bool PDF_place_pdi_page ( resource pdfdoc, int page, float x, float y, float sx, float sy )

PDF_place_pdi_page() place une page PDI, dans la page courante, aux coordonnées (x, y), et la met à l'échelle. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_fit_pdi_page() à la place.

Précédent | Sommaire | Suivant
PDF_place_image | Niveau supérieur | PDF_process_pdi


PDF_rect

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_rect -- Dessine un rectangle

Description

bool PDF_rect ( resource p, float x, float y, float width, float height )

pdf_rect dessine un rectangle. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_process_pdi | Niveau supérieur | PDF_restore


PDF_restore

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_restore -- Rétablit l'ancien environnement graphique PDF

Description

bool PDF_restore ( resource p )

pdf_restore() rétablit l'ancien environnement graphique, sauvé avec pdf_save(). Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_rect | Niveau supérieur | PDF_resume_page


PDF_rotate

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_rotate -- Configure la rotation

Description

bool PDF_rotate ( resource p, float phi )

pdf_rotate() fait pivoter le système de phi degrés. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_resume_page | Niveau supérieur | PDF_save


PDF_save

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_save -- Sauve l'environnement graphique courant

Description

bool PDF_save ( resource p )

pdf_save() sauve l'environnement graphique courant. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_rotate | Niveau supérieur | PDF_scale


PDF_scale

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_scale -- Configure l'échelle du document

Description

bool PDF_scale ( resource p, float sx, float sy )

PDF_scale() configure l'échelle du document en coordonnées horizontales et verticales. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_save | Niveau supérieur | PDF_set_border_color


PDF_set_border_color

(PHP 3 >= 3.0.12, PHP 4, PECL)

PDF_set_border_color -- [Obsolète] Configure la couleur des bords autour des liens et annotations

Description

bool PDF_set_border_color ( resource p, float red, float green, float blue )

PDF_set_border_color() configure la couleur des bords autour des liens et annotations. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec l'option annotcolor à la place.

Précédent | Sommaire | Suivant
PDF_scale | Niveau supérieur | PDF_set_border_dash


PDF_set_border_dash

(PHP 4 >= 4.0.1, PECL)

PDF_set_border_dash -- [Obsolète] Configure le style des lignes autour des liens des annotations

Description

bool PDF_set_border_dash ( resource pdfdoc, float black, float white )

pdf_set_border_dash() configure le style des lignes autour des liens. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec l'option the option dasharray à la place.

Précédent | Sommaire | Suivant
PDF_set_border_color | Niveau supérieur | PDF_set_border_style


PDF_set_border_style

(PHP 3 >= 3.0.12, PHP 4, PECL)

PDF_set_border_style -- [Obsolète] Choisit le style de bord autour des liens et annotations

Description

bool PDF_set_border_style ( resource pdfdoc, string style, float width )

PDF_set_border_style() configure le style des bords de tous les liens et annotations. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_create_annotation() avec les options borderstyle et linewidth à la place.

Précédent | Sommaire | Suivant
PDF_set_border_dash | Niveau supérieur | PDF_set_char_spacing


PDF_set_char_spacing

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_set_char_spacing -- [Obsolète] Configure l'espacement des caractères

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre charspacing à la place.

Précédent | Sommaire | Suivant
PDF_set_border_style | Niveau supérieur | PDF_set_duration


PDF_set_duration

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_set_duration -- [Obsolète] Configure la durée entre deux pages

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_begin_page_ext() avec le paramètre duration ou la fonction PDF_end_page_ext() à la place.

Précédent | Sommaire | Suivant
PDF_set_char_spacing | Niveau supérieur | PDF_set_gstate


PDF_set_horiz_scaling

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_set_horiz_scaling -- [Obsolète] Configure l'échelle horizontale du texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre horizscaling à la place.

Précédent | Sommaire | Suivant
PDF_set_gstate | Niveau supérieur | PDF_set_info_author


PDF_set_info_author

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_set_info_author -- [Obsolète] Remplit le champ d'auteur du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.

Précédent | Sommaire | Suivant
PDF_set_horiz_scaling | Niveau supérieur | PDF_set_info_creator


PDF_set_info_creator

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_set_info_creator -- [Obsolète] Remplit le champ de créateur du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.

Précédent | Sommaire | Suivant
PDF_set_info_author | Niveau supérieur | PDF_set_info_keywords


PDF_set_info_keywords

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_set_info_keywords -- [Obsolète] Remplit le champ de mots-clés du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.

Précédent | Sommaire | Suivant
PDF_set_info_creator | Niveau supérieur | PDF_set_info_subject


PDF_set_info_subject

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_set_info_subject -- [Obsolète] Remplit le champ de sujet du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.

Précédent | Sommaire | Suivant
PDF_set_info_keywords | Niveau supérieur | PDF_set_info_title


PDF_set_info_title

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_set_info_title -- [Obsolète] Remplit le champ de titre du document

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_info() à la place.

Précédent | Sommaire | Suivant
PDF_set_info_subject | Niveau supérieur | PDF_set_info


PDF_set_info

(PHP 4 >= 4.0.1, PECL)

PDF_set_info -- Remplit un champ de l'en-tête de document PDF

Description

bool PDF_set_info ( resource p, string key, string value )

PDF_set_info() remplit l'un des champs d'en-tête du document. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_set_info_title | Niveau supérieur | PDF_set_layer_dependency


PDF_set_leading

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_set_leading -- [Obsolète] Configure la distance entre deux lignes de texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre leading à la place.

Précédent | Sommaire | Suivant
PDF_set_layer_dependency | Niveau supérieur | PDF_set_parameter


PDF_set_parameter

(PHP 4, PECL)

PDF_set_parameter -- Modifie certains paramètres

Description

bool PDF_set_parameter ( resource p, string key, string value )

PDF_set_parameter() modifie les paramètres PDFlib de type texte. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_set_leading | Niveau supérieur | PDF_set_text_matrix


PDF_set_text_matrix

(PHP 3 >= 3.0.6)

PDF_set_text_matrix -- [Obsolète] Configure la matrice de texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_scale(), PDF_translate(), PDF_rotate() ou PDF_skew() à la place.

Précédent | Sommaire | Suivant
PDF_set_parameter | Niveau supérieur | PDF_set_text_pos


PDF_set_text_pos

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_set_text_pos -- Modifie la position du texte

Description

bool PDF_set_text_pos ( resource p, float x, float y )

PDF_set_text_pos() modifie la position du texte. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_set_text_matrix | Niveau supérieur | PDF_set_text_rendering


PDF_set_text_rendering

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_set_text_rendering -- [Obsolète] Détermine le rendu du texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre textrendering à la place.

Précédent | Sommaire | Suivant
PDF_set_text_pos | Niveau supérieur | PDF_set_text_rise


PDF_set_text_rise

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_set_text_rise -- [Obsolète] Configure l'élévation de texte

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre textrise à la place.

Précédent | Sommaire | Suivant
PDF_set_text_rendering | Niveau supérieur | PDF_set_value


PDF_set_value

(PHP 4 >= 4.0.1, PECL)

PDF_set_value -- Modifie certains paramètres numériques

Description

bool PDF_set_value ( resource p, string key, float value )

PDF_set_value() modifie la valeur du paramètre de la PDFlib key par la valeur de value. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_set_text_rise | Niveau supérieur | PDF_set_word_spacing


PDF_set_word_spacing

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_set_word_spacing -- [Obsolète] Configure l'espace entre deux mots

Description

Cette fonction est obsolète depuis la version 3 de la PDFlib, utilisez la fonction PDF_set_value() avec le paramètre wordspacing à la place.

Précédent | Sommaire | Suivant
PDF_set_value | Niveau supérieur | PDF_setcolor


PDF_setcolor

(PHP 4 >= 4.0.5, PECL)

PDF_setcolor -- Configure la couleur de dessin et de remplissage

Description

bool PDF_setcolor ( resource p, string fstype, string colorspace, float c1, float c2, float c3, float c4 )

PDF_setcolor() configure la couleur de dessin et de remplissage. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_set_word_spacing | Niveau supérieur | PDF_setdash


PDF_setdash

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_setdash -- Configure le mode de pointillé

Description

bool PDF_setdash ( resource pdfdoc, float b, float w )

PDF_setdash configure le mode de pointillé à la taille de b pour les traits noirs, et w pour les traits blancs. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_setcolor | Niveau supérieur | PDF_setdashpattern


PDF_setflat

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_setflat -- Configure la position à plat (flatness)

Description

bool PDF_setflat ( resource pdfdoc, float flatness )

pdf_setflat() configure la position à plat, à une valeur comprise entre 0 et 100 inclus. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_setdashpattern | Niveau supérieur | PDF_setfont


PDF_setfont

(PHP 4 >= 4.0.5, PECL)

PDF_setfont -- Configure la police courante

Description

bool PDF_setfont ( resource pdfdoc, int font, float fontsize )

PDF_setfont() configure la police courante avec la police font et la taille fontsize. font est une ressource retournée par PDF_load_font(). Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_setflat | Niveau supérieur | PDF_setgray_fill


PDF_setgray_fill

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_setgray_fill -- [Obsolète] Configure la couleur de remplissage à un niveau de gris

Description

bool PDF_setgray_fill ( resource p, float g )

PDF_setgray_fill() configure la couleur de remplissage à un niveau de gris, entre 0 et 1 inclus. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.

Précédent | Sommaire | Suivant
PDF_setfont | Niveau supérieur | PDF_setgray_stroke


PDF_setgray_stroke

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_setgray_stroke -- [Obsolète] Configure la couleur de dessin à un niveau de gris

Description

bool PDF_setgray_stroke ( resource p, float g )

PDF_setgray_stroke() configure la couleur de dessin à un niveau de gris, entre 0 et 1 inclus. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.

Précédent | Sommaire | Suivant
PDF_setgray_fill | Niveau supérieur | PDF_setgray


PDF_setgray

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_setgray -- [Obsolète] Configure la couleur de dessin et de remplissage à un niveau de gris

Description

bool PDF_setgray ( resource p, float g )

PDF_setgray() configure la couleur de dessin et de remplissage au niveau de gris g. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.

Précédent | Sommaire | Suivant
PDF_setgray_stroke | Niveau supérieur | PDF_setlinecap


PDF_setlinecap

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_setlinecap -- Configure le paramètre de linecap

Description

bool PDF_setlinecap ( resource p, int linecap )

PDF_setlinecap configure le paramètre linecap à une valeur entre 0 et 2 inclusivement.

Précédent | Sommaire | Suivant
PDF_setgray | Niveau supérieur | PDF_setlinejoin


PDF_setlinejoin

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_setlinejoin -- Configure le paramètre de linejoin

Description

bool PDF_setlinejoin ( resource p, int value )

PDF_setlinejoin() configure le paramètre de linejoin à une valeur entre 0 et 2 inclus. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_setlinecap | Niveau supérieur | PDF_setlinewidth


PDF_setlinewidth

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_setlinewidth -- Configure la largeur de ligne

Description

bool PDF_setlinewidth ( resource p, float width )

PDF_setlinewidth() configure la largeur de ligne à width. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_setlinejoin | Niveau supérieur | PDF_setmatrix


PDF_setmatrix

(PHP 4 >= 4.0.5, PECL)

PDF_setmatrix -- Configure la matrice de transformation

Description

bool PDF_setmatrix ( resource p, float a, float b, float c, float d, float e, float f )

pdf_setmatrix() configure explicitement la matrice de transformation. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_setlinewidth | Niveau supérieur | PDF_setmiterlimit


PDF_setmiterlimit

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_setmiterlimit -- Configure la "miter limit"

Description

bool PDF_setmiterlimit ( resource pdfdoc, float miter )

PDF_setmiterlimit() configure la "miter limit" à une valeur supérieure ou égale à 1. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_setmatrix | Niveau supérieur | PDF_setpolydash


PDF_setpolydash

(PHP 4 >= 4.0.5, PECL)

PDF_setpolydash -- [Obsolète] Configure des pointillés complexes

Description

Cette fonction est obsolète depuis la version 5 de la PDFlib, utilisez la fonction PDF_setdashpattern() à la place.

Précédent | Sommaire | Suivant
PDF_setmiterlimit | Niveau supérieur | PDF_setrgbcolor_fill


PDF_setrgbcolor_fill

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_setrgbcolor_fill -- [Obsolète] Choisit la couleur utilisée pour le remplissage

Description

bool PDF_setrgbcolor_fill ( resource p, float red, float green, float blue )

PDF_setrgbcolor_fill() choisit la couleur utilisée pour le remplissage. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.

Précédent | Sommaire | Suivant
PDF_setpolydash | Niveau supérieur | PDF_setrgbcolor_stroke


PDF_setrgbcolor_stroke

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_setrgbcolor_stroke -- [Obsolète] Choisit la couleur utilisée pour le dessin

Description

bool PDF_setrgbcolor_stroke ( resource p, float red, float green, float blue )

PDF_setrgbcolor_stroke() choisit la couleur utilisée pour le dessin. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 4 de la PDFlib, utilisez la fonction PDF_setcolor() à la place.

Précédent | Sommaire | Suivant
PDF_setrgbcolor_fill | Niveau supérieur | PDF_setrgbcolor


PDF_setrgbcolor

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_setrgbcolor -- [Obsolète] Choisit la couleur rgb de remplissage et de dessin

Description

bool PDF_setrgbcolor ( resource p, float red, float green, float blue )

PDF_setrgbcolor() choisit la couleur utilisée pour le dessin et le remplissage. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction est obsolète depuis la version 4, utilisez la fonction PDF_setcolor() à la place.

Précédent | Sommaire | Suivant
PDF_setrgbcolor_stroke | Niveau supérieur | PDF_shading_pattern


PDF_show_boxed

(PHP 4, PECL)

PDF_show_boxed -- [Obsolète] Affiche le texte dans un cadre

Description

int PDF_show_boxed ( resource p, string text, float left, float top, float width, float height, string mode, string feature )

Cette fonction est obsolète depuis la version 6 de la PDFlib, utilisez la fonction PDF_fit_textline() pour les lignes simples, ou la fonction PDF_*_textflow() pour les lignes multiples à la place.

Précédent | Sommaire | Suivant
PDF_shfill | Niveau supérieur | PDF_show_xy


PDF_show_xy

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_show_xy -- Affiche un texte à une position donnée

Description

bool PDF_show_xy ( resource p, string text, float x, float y )

PDF_show_xy affiche le texte text aux coordonnées x,y. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_show_boxed | Niveau supérieur | PDF_show


PDF_show

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_show -- Affiche le texte à la position courante

Description

bool PDF_show ( resource pdfdoc, string text )

pdf_show() affiche le texte text à la position courante, avec la police et la taille courante. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_show_xy | Niveau supérieur | PDF_skew


PDF_skew

(PHP 4, PECL)

PDF_skew -- Incline le système de coordonnées

Description

bool PDF_skew ( resource p, float alpha, float beta )

PDF_skew() incline le système de coordonnées de alpha degrés dans le sens des absisses, et de beta degrés dans le sens des ordonnées. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_show | Niveau supérieur | PDF_stringwidth


PDF_stringwidth

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_stringwidth -- Retourne la largeur d'un texte avec la police courante

Description

float PDF_stringwidth ( resource p, string text, int font, float fontsize )

PDF_stringwidth() retourne la largeur du texte text en utilisant les paramètres font et size.

Précédent | Sommaire | Suivant
PDF_skew | Niveau supérieur | PDF_stroke


PDF_stroke

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_stroke -- Dessine la ligne le long du chemin

Description

bool PDF_stroke ( resource p )

PDF_stroke() dessine la ligne le long du chemin courant, avec la couleur courante et la largeur de ligne courante, puis clôt le chemin. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_stringwidth | Niveau supérieur | PDF_suspend_page


PDF_translate

(PHP 3 >= 3.0.6, PHP 4, PECL)

PDF_translate -- Effectue une translation de l'origine du système de coordonnées

Description

bool PDF_translate ( resource p, float tx, float ty )

PDF_translate() effectue une translation de l'origine du système de coordonnées d'un vecteur de (tx,ty).

Précédent | Sommaire | Suivant
PDF_suspend_page | Niveau supérieur | PDF_utf16_to_utf8


Fonctions PDO

Manuel PHP
Précédent Suivant

CXXII. Fonctions PDO

Introduction

L'extension PHP Data Objects (PDO) définit une excellente interface pour accéder à une base de données depuis PHP. Chaque pilote de base de données implémenté dans l'interface PDO peut utiliser des fonctionnalités spécifiques de chacune des bases de données en utilisant des extensions de fonctions. Notez que vous ne pouvez exécuter aucune fonction de base de données en utilisant l'extension PDO par elle-même ; vous devez utiliser un driver PDO spécifique à la base de données pour accéder au serveur de base de données.

PDO fournit une interface d'abstraction à l'accès de données, ce qui signifie que vous utilisez les mêmes fonctions pour exécuter des requêtes ou récupérer les données quelque soit la base de données utilisée. PDO ne fournit pas une abstraction de base de données : il ne réécrit pas le SQL, n'émule pas des fonctionnalités manquantes. Vous devriez utiliser une interface d'abstraction complète si vous avez besoin de cela.

PDO est fournit avec PHP 5.1 et est disponible en tant qu'extension PECL pour PHP 5.0 ; PDO requiert les nouvelles fonctionnalités OO fournies par PHP 5 et donc, ne fonctionne pas avec les versions antérieures de PHP.

Installation

PHP 5.1 et supérieur sur les systèmes Unix

  1. Si vous exécutez une version 5.1 de PHP, PDO et PDO_SQLITE sont inclus dans cette distribution ; il devrait être automatiquement activé lorsque vous lancerez le script de configuration de PHP. Il est recommandé de compiler PDO en tant qu'extension partagée, ce qui vous permettra de mettre à jour PDO via PECL. Il est également recommandé d'activer le support zlib (pour l'installeur PECL) lors de la compilation de PHP. Vous devriez également avoir besoin d'activer le driver PDO correspondant à la base de données de votre choix ; consultez la documentation pour les drivers PDO spécifiques à une base de données pour plus d'informations, mais notez que si vous contruisez PDO en tant qu'extension partagée, vous devez également construire les drivers PDO en tant qu'extensions partagées. L'extension SQLite dépend de PDO, donc, si PDO est construit en tant qu'extension partagée, SQLite doit être construit de la même manière.

    ./configure --with-zlib --enable-pdo=shared --with-pdo-sqlite=shared --with-sqlite=shared

  2. Après avoir installé PDO en tant que module partagé, vous devez éditer votre fichier php.ini afin que l'extension PDO soit chargée automatiquement lorsque PHP est lancé. Vous devez y activer également le driver spécifique à votre base de données ; assurez-vous qu'ils sont listés après la ligne pdo.so, car PDO doit être initialisé avant le chargement des extensions spécifiques à la base de données. Si vous avez compilé PDO et les extensions spécifiques à la base de données statiquement, vous pouvez sauter cette étape.

    extension=pdo.so

  3. Le fait d'avoir PDO en tant que module partagé vous permet d'exécuter la commande pecl upgrade pdo pour mettre à jour votre version de PDO sans pour autant avoir besoin de recompiler complètement PHP. Notez que si vous faites cela, vous devez également mettre à jour votre driver PDO spécifique à votre base de données en même temps.

PHP 5.0.0 et supérieur sur les systèmes Unix

  1. PDO est disponible en tant qu'extension PECL depuis http://pecl.php.net/package/pdo. L'installation peut être faite via la commande pecl ; ceci est activé par défaut lorsque vous configurez PHP. Vous devriez vous assurer que PHP a été configuré avec --with-zlib pour pouvoir utiliser la commande pecl afin de gérer les paquets compressés.

  2. Exécutez la commande suivante pour télécharger, compiler et installer la dernière version stable de PDO :

    pecl install pdo

  3. La commande pecl installe automatiquement le module PDO dans votre dossier d'extensions PHP. Pour activer l'extension PDO sous les systèmes Linux ou Unix, vous devez ajouter la ligne suivante dans votre fichier php.ini :

    extension=pdo.so

    Pour plus d'informations sur la compilation de paquets PECL, consultez la section sur l'installation de PECL du manuel.

Utilisateurs de Windows avec PHP 5.1.0 et supérieur

  1. PDO ainsi que tous les drivers principaux interagissent avec PHP en tant qu'extensions partagées, et ont tout simplement besoin d'être activés en éditant le fichier php.ini :

    extension=php_pdo.dll

  2. Ensuite, choisissez les autres fichiers DLL spécifiques à votre base de données et utilisez soit la fonction dl() pour les charger au moment de l'exécution ou activer-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 bibliothèques DDLs doivent exister dans le dossier système extension_dir. Notez que PDO_INFORMIX est seulement disponible en tant qu'extension PECL.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de Configuration PDO

Nom | Par défaut | Modifiable | Historique
pdo.dsn.* |  | php.ini seulement |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

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.

Drivers PDO

Les drivers suivants sont actuellement implémentés dans l'interface PDO :

Nom du driver | Bases de données supportées
PDO_DBLIB | FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD | Firebird/Interbase 6
PDO_IBM | IBM DB2
PDO_INFORMIX | IBM Informix Dynamic Server
PDO_MYSQL | MySQL 3.x/4.x/5.x
PDO_OCI | Oracle Call Interface
PDO_ODBC | ODBC v3 (IBM DB2 unixODBC et win32 ODBC)
PDO_PGSQL | PostgreSQL
PDO_SQLITE | SQLite 3 et SQLite 2

Connexions et gestionnaire de connexion

Les connexions sont établies en créant des instances de la classe de base de PDO. Peut importe quel driver vous voulez utiliser ; vous utilisez toujours le nom de la classe PDO. Le constructeur accepte des paramètres pour spécifier la source de la base de données (connue en tant que DSN) et optionnellement, le nom d'utilisateur et le mot de passe (s'il y en a un).

Exemple 1. Connexion à MySQL

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

S'il y a des erreurs de connexion, un objet PDOException est lancé. Vous pouvez attraper cette exception si vous voulez gérer cette erreur, ou laisser le gestionnaire global d'exception défini via la fonction set_exception_handler() la traiter.

Exemple 2. Gestion des erreurs de connexion

<?php
try {
   $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
   foreach ($dbh->query('SELECT * from FOO') as $row) {
      print_r($row);
   }
   $dbh = null;
} catch (PDOException $e) {
print "Erreur ! : " . $e->getMessage() . "<br/>";
die();
}
?>

Avertissement

Si votre application n'attrape pas les exceptions lancées depuis le constructeur PDO, l'action par défaut du moteur zend est de terminer le script et d'afficher une trace. Cette trace devrait révéler des détails complets sur la connexion à la base de données, incluant le nom d'utilisateur et le mot de passe. Il en est donc de votre responsabilité d'attraper cette exception, soit explicitement (via l'instruction catch) ou implicitement via la fonction set_exception_handler().

Lorsque la connexion à la base de données a réussi, une instance de la classe PDO est retournée à votre script. La connexion est active tant que l'objet PDO l'est. Pour clore la connexion, vous devez détruire l'objet en vous assurant que toutes ses références sont effacées. Vous pouvez faire cela en assignant NULL à la variable gérant l'objet. Si vous ne le faites pas explicitement, PHP fermera automatiquement la connexion lorsque le script arrivera à la fin.

Exemple 3. Fermeture d'une connexion

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// utiliser la connexion ici

// et maintenant, fermez-la !
$dbh = null;
?>

Beaucoup d'applications web utilisent des connexions persistantes aux serveurs de base de données. Les connexions persistantes ne sont pas fermées à la fin du script, mais sont mises en cache et réutilisées lorsqu'un autre script demande une connexion en utilisant les mêmes paramètres. Le cache des connexions persistantes vous permet d'éviter d'établir une nouvelle connexion à chaque fois qu'un script doit accéder à une base de données, rendant l'application web plus rapide.

Exemple 4. Connexions persistantes

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
   PDO::ATTR_PERSISTENT => true
));
?>

Note : Si vous utilisez le driver PDO ODBC et que votre bibliothèque ODBC supporte le pool 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 pool de connexion ODBC mettre en cache les connexions. Le pool 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 pool de connexion ODBC, faisant que plusieurs connexions sont créées pour les autres modules.

Transactions et validation automatique (auto-commit)

Maintenant que vous êtes connecté via PDO, vous devez comprendre comment PDO gère les transactions avant d'exécuter des requêtes. Si vous n'avez jamais utilisé les transactions, elles offrent 4 fonctionnalités majeures : Atomicité, Consistance, Isolation et Durabilité (ACID). En d'autres termes, n'importe quel travail mené à bien dans une transaction, même s'il est effectué par étapes, est garanti d'être appliqué à la base de données sans risque, et sans interférence pour les autres connexions, quand il est validé. Le travail des transactions peut également être automatiquement annulé à votre demande (en supposant que vous n'avez encore rien validé), ce qui rend la gestion des erreurs bien plus simple dans vos scripts.

Les transactions sont typiquement implémentées pour appliquer toutes vos modifications en une seule fois ; ceci a le bel effet d'éprouver drastiquement l'efficacité de vos mises à jour. Dans d'autres termes, les transactions rendent vos scripts plus rapides et potentiellement plus robustes (vous devez les utiliser correctement pour avoir ces bénéfices).

Malheureusement, toutes les bases de données ne supportent pas les transactions, donc, PDO doit s'exécuter en mode "auto-commit" lorsque vous ouvrez pour la première fois la connexion. Le mode "auto-commit" signifie que toutes les requêtes que vous exécutez ont leurs transactions implicites, si la base de données le supporte ou aucune transaction si la base de données ne les supporte pas. Si vous avez besoin d'une transaction, vous devez utiliser la méthode PDO->beginTransaction() pour l'initialiser. Si le driver utilisé ne supporte pas 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.

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 la consistance 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 5. 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 basiques 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";
    $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 "Échec : " . $e->getMessage();
}
?>

Vous n'êtes pas limité 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 garanti que personne d'autre ne peut effectuer des modifications alors que vous êtes au milieu de vos modifications. En réalité, ceci n'est pas 100% correct, mais cela reste une très bonne introduction aux transactions.

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 analyser/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 driver le gère 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 drivers qui ne les supportent pas. 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 6. 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 (nom, valeur) VALUES (:nom, :valeur)");
$stmt->bindParam(':nom', $nom);
$stmt->bindParam(':valeur', $valeur);

// insertion d'une ligne
$nom = 'one';
$valeur = 1;
$stmt->execute();

// insertion d'une autre ligne avec des valeurs différentes
$nom = 'two';
$valeur = 2;
$stmt->execute();
?>

Exemple 7. Insertions répétées en utilisant des requêtes ré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 (nom, valeur) VALUES (?, ?)");
$stmt->bindParam(1, $nom);
$stmt->bindParam(2, $valeur);

// insertion d'une ligne
$nom = 'one';
$valeur = 1;
$stmt->execute();

// insertion d'une autre ligne avec différentes valeurs
$nom = 'two';
$valeur = 2;
$stmt->execute();
?>

Exemple 8. 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 nom = ?");
if ($stmt->execute(array($_GET['nom']))) {
while ($row = $stmt->fetch()) {
print_r($row);
}
}
?>

Si le driver de la base de données le supporte, 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 complexe à utiliser que les paramètres d'entrée car vous devez savoir la longueur d'un paramètre donné pourra atteindre lorsque vous le liez. Si la valeur retournée est plus longue que la taille qui vous auriez suggéré, une erreur sera émise.

Exemple 9. Appel d'une procédure stockée avec un paramètre de sortie

<?php
$stmt = $dbh->prepare("CALL sp_returns_string(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);

// Appel de la procédure stockée
$stmt->execute();

print "La procédure a retourné : $return_value\n";
?>

Vous devez également spécifier les paramètres qui gèrent les valeurs aussi bien pour l'entrée que pour la sortie ; la syntaxe est similaire aux paramètres de sortie. Dans le prochain exemple, la chaîne 'Bonjour' est passée à la procédure stockée et lorsqu'elle retourne la valeur, 'Bonjour' est remplacée par la valeur retournée par la procédure.

Exemple 10. Appel d'une procédure stockée avec un paramètre d'entrée/sortie

<?php
$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(?)");
$value = 'Bonjour';
$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 11. Utilisation invalide de marqueur

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where nom LIKE '%?%'");
$stmt->execute(array($_GET['nom']));

// un marqueur doit être utilisé à la place d'une valeur complète
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where nom LIKE ?");
$stmt->execute(array("%$_GET[nom]%"));
?>

Erreurs et gestionnaire des erreurs

PDO offre la possibilité de gérer les erreurs de 3 façons différentes, pour coller au mieux au style de votre application.

  • PDO::ERRMODE_SILENT

    C'est le mode par défaut. PDO définit simplement le code erreur pour vous afin de l'inspecter en utilisant les méthodes PDO->errorCode() et PDO->errorInfo() sur la requête ou sur les objets de la base de données ; si l'erreur est issue d'un appel à un objet de requête, vous devriez invoquer les méthodes PDOStatement->errorCode() ou PDOStatement->errorInfo() sur cet objet. Si l'erreur est issue d'un appel sur un objet de la base de données, vous devriez invoquer à la place les méthodes de cet objet.

  • PDO::ERRMODE_WARNING

    En plus de définir le code erreur, PDO émettra un message de niveau E_WARNING. Ce comportement est très utile lors de la phase de test/débogage, si vous voulez juste voir le problème qui survient sans pour autant stopper le flot de l'application.

  • PDO::ERRMODE_EXCEPTION

    En plus de définir le code erreur, PDO lancera une exception PDOException et y définit ces propriétés pour refléter le code erreur et l'information sur l'erreur. Ce comportement est utile également durant la période de débogage car il va stopper l'application à l'endroit même de l'erreur et pointer l'endroit où se trouve potentiellement l'erreur dans votre code (souvenez-vous : les transactions sont automatiquement annulées si l'exception fait que le script se termine).

    Le mode lançant des exceptions est également utile pour structurer la gestion de vos erreurs plus clairement que par la traditionnelle gestion des erreurs de PHP et avec moins de code, plutôt que le mode silencieux et l'analyse explicite des valeurs retournées par chaque appel à la base de données.

    Lisez la documentation sur les exceptions pour plus de détails sur les exceptions en PHP.

PDO standardise les codes erreurs en utilisant SQL-92 SQLSTATE ; les drivers individuels PDO sont responsables du mapping de leurs propres codes avec les codes SQLSTATE appropriées. La méthode PDO->errorCode() retourne un seul code SQLSTATE. Si vous avez besoin de plus d'informations sur une erreur, PDO fournit également la méthode PDO->errorInfo() qui retourne un tableau contenant le code SQLSTATE, le code erreur spécifique du driver et la chaîne erreur spécifique au driver.

Les objets larges (LOBs)

À un moment dans votre application, vous pourriez avoir besoin de stocker de larges données dans votre base de données. "Large" signifie typiquement des données d'environ 4ko ou plus, bien que certaines bases de données peuvent gérer plus de 32ko avant que les données deviennent "larges". Les objets larges peuvent être de nature textuelle ou binaire. PDO vous permet de travailler avec ce type de larges 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 mapper les données en un flux que vous pourrez manipuler en utilisant l'API PHP sur les flux.

Exemple 12. 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 13. 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);

$stmt->beginTransaction();
$stmt->execute();
$stmt->commit();
?>

Exemple 14. Insertion d'une image dans une base de données Oracle

Oracle requiert une syntaxe légèrement différente pour y insérer un LOB depuis un fichier. Il est également essentiel d'effectuer votre insertion au sein d'une transaction, sinon, votre nouveau LOB sera inséré avec une longueur de zéro :

<?php
$db = new PDO('oci:', 'scott', 'tiger');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) " .
"VALUES (?, ?, EMPTY_BLOB()) RETURNING imagedata INTO ?");
$id = get_new_id(); // fonction pour allouer un nouvel ID

// assumons que nous récupérons un fichier depuis un formulaire
// vous pouvez trouver plus de détails dans la documentation de PHP

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$stmt->beginTransaction();
$stmt->execute();
$stmt->commit();
?>

Classes pré-définies

PDO

Représente une connexion entre PHP et un serveur de base de données.

Constructeur

  • PDO - construit un nouvel objet PDO

Méthodes

  • beginTransaction - commence une transaction

  • commit - valide une transaction

  • errorCode - récupère un code erreur, s'il y en a, depuis la base de données

  • errorInfo - récupère un tableau contenant les informations sur l'erreur, s'il y en a, depuis la base de données

  • exec - exécute une requête SQL et retourne le nombre de lignes affectées

  • getAttribute - récupère un attribut d'une connexion à une base de données

  • lastInsertId - récupère la valeur de la dernière ligne insérée dans une table

  • prepare - prépare une requête SQL pour exécution

  • query - exécute une requête SQL et retourne le jeu de résultats

  • quote - retourne une version protégée d'une chaîne pour utilisation dans une requête SQL

  • rollBack - annule une transaction

  • setAttribute - définit un attribut d'une connexion à une base de données

PDOStatement

Représente une requête préparée et, après exécution de la requête, un jeu de résultat associatif.

Méthodes

  • bindColumn - lie une variable PHP à une colonne de sortie dans un jeu de résultats

  • bindParam - lie une variable PHP à un paramètre dans une requête préparée

  • bindValue - lie une valeur à un paramètre dans une requête préparée

  • closeCursor - ferme le curseur, autorisant la requête à être exécutée une nouvelle fois

  • columnCount - retourne le nombre de colonnes dans un jeu de résultats

  • errorCode - récupère le code erreur, s'il y en a, depuis une requête

  • errorInfo - récupère un tableau contenant les informations sur une erreur, s'il y en a, depuis une requête

  • execute - exécute une requête préparée

  • fetch - récupère une ligne depuis un jeu de résultats

  • fetchAll - récupère un tableau contenant toutes les lignes depuis un jeu de résultats

  • fetchColumn - retourne les données depuis une colonne d'un jeu de résultats

  • getAttribute - récupère un attribut PDOStatement

  • getColumnMeta - récupère les méta-informations pour une colonne d'un jeu de résultats

  • nextRowset - récupère la ligne suivante (du jeu de résultats)

  • rowCount - retourne le nombre de lignes affectées par l'exécution d'une requête SQL

  • setAttribute - définit un attribut PDOStatement

  • setFetchMode - définit le mode de récupération pour une PDOStatement

PDOException

Représente une erreur émise par PDO. Vous ne devriez pas lancer une exception PDOException depuis votre propre code. Lisez la documentation sur les Exceptions pour plus de détails sur les exceptions en PHP.

Exemple 15. La classe PDOException

<?php
class PDOException extends Exception
{
public $errorInfo = null;    // correspond à PDO::errorInfo()
// ou PDOStatement::errorInfo()
protected $message;          // message d'erreur textuel
// utiliser Exception::getMessage() pour y accéder
protected $code;             // code erreur SQLSTATE
// utiliser Exception::getCode() pour y accéder
}
?>

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Avertissement

PDO utilise les constantes de classe depuis PHP 5.1. Les versions antérieures utilisent les constantes globales sous la forme PDO_PARAM_BOOL.

PDO::PARAM_BOOL (entier)

Représente le type de données booléen.

PDO::PARAM_NULL (entier)

Représente le type de données NULL SQL.

PDO::PARAM_INT (entier)

Représente le type de données INTEGER SQL.

PDO::PARAM_STR (entier)

Représente les types de données CHAR, VARCHAR ou les autres types de données sous forme de chaîne de caractères SQL.

PDO::PARAM_LOB (entier)

Représente le type de données "objet large" SQL.

PDO::PARAM_STMT (entier)

Représente un type de jeu de résultats. N'est actuellement pas supporté par tous les drivers.

PDO::PARAM_INPUT_OUTPUT (entier)

Spécifie que le paramètre est un paramètre INOUT pour une procédure stockée. Vous devez utiliser l'opérateur OR avec un type de données explicite PDO::PARAM_*.

PDO::FETCH_LAZY (entier)

Spécifie que la méthode de récupération doit retourner chaque ligne en tant qu'objet avec les noms de variables correspondant aux noms des colonnes retournées dans le jeu de résultats. PDO::FETCH_LAZY crée les noms des variables de l'objet comme ils sont rencontrés.

PDO::FETCH_ASSOC (entier)

Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par les noms des colonnes comme elles sont retournées dans le jeu de résultats correspondant. Si le jeu de résultats contient de multiples colonnes avec le même nom, PDO::FETCH_ASSOC retourne une seule valeur par nom de colonne.

PDO::FETCH_NAMED (entier)

Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par les noms des colonnes comme elles sont retournées dans le jeu de résultats correspondant. Si le jeu de résultats contient de multiples colonnes avec le même nom, PDO::FETCH_NAMED retourne un tableau de valeurs par nom de colonne.

PDO::FETCH_NUM (entier)

Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par le numéro des colonnes comme elles sont retournées dans le jeu de résultats correspondant, en commençant à 0.

PDO::FETCH_BOTH (entier)

Spécifie que la méthode de récupération doit retourner chaque ligne dans un tableau indexé par les noms des colonnes ainsi que leurs numéros, comme elles sont retournées dans le jeu de résultats correspondant, en commençant à 0.

PDO::FETCH_OBJ (entier)

Spécifie que la méthode de récupération doit retourner chaque ligne dans un objet avec les noms de propriétés correspondant aux noms des colonnes comme elles sont retournées dans le jeu de résultats.

PDO::FETCH_BOUND (entier)

Spécifie que la méthode de récupération doit retourner TRUE et assigner les valeurs des colonnes du jeu de résultats dans les variables PHP auxquelles elles sont liées avec la méthode PDOStatement::bindParam() ou la méthode PDOStatement::bindColumn().

PDO::FETCH_COLUMN (entier)

Spécifie que la méthode de récupération doit retourner uniquement une seule colonne demandée depuis la prochaine ligne du jeu de résultats.

PDO::FETCH_CLASS (entier)

Spécifie que la méthode de récupération doit retourner une nouvelle instance de la classe demandée, liant les colonnes aux propriétés nommées dans la classe.

PDO::FETCH_INTO (entier)

Spécifie que la méthode de récupération doit mettre à jour une instance existante de la classe demandée, liant les colonnes aux propriétés nommées dans la classe.

PDO::FETCH_FUNC (entier)

PDO::FETCH_GROUP (entier)

PDO::FETCH_UNIQUE (entier)

PDO::FETCH_CLASSTYPE (entier)

PDO::FETCH_SERIALIZE (entier)

Disponible depuis PHP 5.1.0.

PDO::FETCH_PROPS_LATE (entier)

Disponible depuis PHP 5.2.0

PDO_ATTR_AUTOCOMMIT (entier)

Si la valeur vaut FALSE, PDO tente de désactiver l'auto-validation lorsque la connexion commence une transaction.

PDO::ATTR_PREFETCH (entier)

Définir la taille de la pré-récupération vous permet d'accroître les performances de votre application. Toutes les combinaisons bases de données / drivers ne supportent pas cette fonctionnalité. Ceci accroît les performances au détriment de la consommation de mémoire vive.

PDO::ATTR_TIMEOUT (entier)

Définit la valeur d'attente en secondes pour les communications avec la base de données.

PDO::ATTR_ERRMODE (entier)

Voir la section sur les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.

PDO::ATTR_SERVER_VERSION (entier)

Attribut en lecture seule ; il retourne des informations sur la version de la base de données à laquelle PDO est connecté.

PDO::ATTR_CLIENT_VERSION (entier)

Attribut en lecture seule ; il retourne des informations sur la version de la bibliothèque cliente utilisée par PDO.

PDO::ATTR_SERVER_INFO (entier)

Attribut en lecture seule ; il retourne quelques meta-informations sur le serveur de base de données auquel PDO est connecté.

PDO::ATTR_CONNECTION_STATUS (entier)

PDO::ATTR_CASE (entier)

Force les noms des colonnes dans une casse spécifiée par les constantes PDO::CASE_*.

PDO::ATTR_CURSOR_NAME (entier)

Récupère ou définit le nom à utiliser pour un curseur. Très utile lors de l'utilisation de curseurs scrollables et des mises à jour positionnées.

PDO::ATTR_CURSOR (entier)

Sélectionne le type de curseur. PDO supporte actuellement soit PDO::CURSOR_FWDONLY, soit PDO::CURSOR_SCROLL. Conserver PDO::CURSOR_FWDONLY tant que vous savez que vous avez besoin d'un curseur scrollable.

PDO::ATTR_DRIVER_NAME (chaîne de caractères)

Retourne le nom du driver.

Exemple 16. Utilisation de PDO::ATTR_DRIVER_NAME

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
   echo "Utilisation de mysql ; fait quelque chose de spécifique à mysql ici\n";
}
?>

PDO::ATTR_ORACLE_NULLS (entier)

Convertit les chaînes vides en valeurs NULL SQL dans les données récupérées.

PDO::ATTR_PERSISTENT (entier)

Demande une connexion persistante, plutôt que de créer une nouvelle connexion. Voir les connexions et le gestionnaire de connexion pour plus d'informations sur cet attribut.

PDO::ATTR_STATEMENT_CLASS (entier)

PDO::ATTR_FETCH_CATALOG_NAMES (entier)

Ajoute le contenu du catalogue de noms dans chaque nom de colonnes retourné dans le jeu de résultat. Le catalogue de noms et les noms de colonnes sont séparés par un point (.). Le support de cet attribut n'est pas disponible pour tous les drivers ; il peut ne pas être disponible pour votre driver.

PDO::ATTR_FETCH_TABLE_NAMES (entier)

Ajoute le contenu de la table de noms dans chaque nom de colonne retourné dans le jeu de résultats. La table de nom et les noms de colonnes sont séparés par un point (.). Le support de cet attribut n'est pas disponible pour tous les drivers ; il peut ne pas être disponible pour votre driver.

PDO::ATTR_STRINGIFY_FETCHES (entier)

PDO::ATTR_MAX_COLUMN_LEN (entier)

PDO::ATTR_DEFAULT_FETCH_MODE (entier)

Disponible depuis PHP 5.2.0.

PDO::ATTR_EMULATE_PREPARES (entier)

Disponible depuis PHP 5.1.3.

PDO::ERRMODE_SILENT (entier)

N'envoie pas d'erreur ni d'exception si une erreur survient. Le développeur doit explicitement vérifier les erreurs. C'est le mode par défaut. Voir les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.

PDO::ERRMODE_WARNING (entier)

Envoie une erreur de niveau E_WARNING si une erreur survient. Voir les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.

PDO::ERRMODE_EXCEPTION (entier)

Lance une exception PDOException si une erreur survient. Voir les erreurs et la gestion des erreurs pour plus d'informations sur cet attribut.

PDO::CASE_NATURAL (entier)

Laisse les noms de colonnes comme retournés par le driver de base de données.

PDO::CASE_LOWER (entier)

Force les noms de colonnes en minuscule.

PDO::CASE_UPPER (entier)

Force les noms des colonnes en majuscule.

PDO::NULL_NATURAL (entier)

PDO::NULL_EMPTY_STRING (entier)

PDO::NULL_TO_STRING (entier)

PDO::FETCH_ORI_NEXT (entier)

Récupère la prochaine ligne d'un jeu de résultats. Valide seulement pour les curseurs scrollables.

PDO::FETCH_ORI_PRIOR (entier)

Récupère la ligne précédente d'un jeu de résultats. Valide seulement pour les curseurs scrollables.

PDO::FETCH_ORI_FIRST (entier)

Récupère la première ligne d'un jeu de résultats. Valide seulement pour les curseurs scrollables.

PDO::FETCH_ORI_LAST (entier)

Récupère la dernière ligne d'un jeu de résultats. Valide seulement pour les curseurs scrollables.

PDO::FETCH_ORI_ABS (entier)

Récupère la ligne demandée par un numéro de ligne d'un jeu de résultats. Valide seulement pour les curseurs scrollables.

PDO::FETCH_ORI_REL (entier)

Récupère la ligne demandée par une position relative à la position courante du curseur d'un jeu de résultats. Valide seulement pour les curseurs scrollables.

PDO::CURSOR_FWDONLY (entier)

Crée un objet PDOStatement avec un curseur uniquement de retour. C'est le choix par défaut pour le curseur, car il est rapide et l'accès aux données est commun pour les masques en PHP.

PDO::CURSOR_SCROLL (entier)

Crée un objet PDOStatement avec un curseur scrollable. Passez la constante PDO::FETCH_ORI_* pour contrôler les lignes récupérées du jeu de résultats.

PDO::ERR_NONE (chaîne de caractères)

Correspond à SQLSTATE '00000', ce qui signifie que la requête SQL a réussi sans erreur, ni avertissement. Cette constante est utile lorsque vous utilisez PDO::errorCode() ou PDOStatement::errorCode() pour déterminer si une erreur est survenue. Cependant, vous devez déjà savoir si c'est le cas en examinant le code retourné par la méthode qui a lancée l'erreur.

PDO::PARAM_EVT_ALLOC (entier)

Alloue un événement

PDO::PARAM_EVT_FREE (entier)

Désalloue un événement

PDO::PARAM_EVT_EXEC_PRE (entier)

Toujours faire un trigger avant l'éxécution d'une requête préparée.

PDO::PARAM_EVT_EXEC_POST (entier)

Toujours effectuer un trigger de sous séquence avant l'exécution d'une requête préparée.

PDO::PARAM_EVT_FETCH_PRE (entier)

Toujours effectuer un trigger avant de récupérer un résultat d'un jeu de résultats.

PDO::PARAM_EVT_FETCH_POST (entier)

Toujours effectuer un trigger de sous séquence avant de récupérer un résultat d'un jeu de résultats.

PDO::PARAM_EVT_NORMALIZE (entier)

Toujours effectuer un trigger lors de l'enregistrement des paramètres liés permettant au driver de normaliser le nom des paramètres.

Table des matières
PDO->beginTransaction() -- Démarre une transaction
PDO->commit() -- Valide une transaction
PDO->__construct() -- Crée une instance PDO qui représente une connexion à une base de données
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 un tableau des pilotes PDO disponibles
PDO->lastInsertId() -- Retourne l'identifiant de la dernière ligne insérée ou la valeur d'une séquence
PDO->prepare() -- Prépare une requête à l'exécution et retourne un objet
PDO->query() -- Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement
PDO->quote() -- Protège une chaîne pour l'utiliser dans une requête SQL PDO
PDO->rollBack() -- Annule une transaction
PDO->setAttribute() -- Définie un attribut
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->errorCode() -- Récupère le SQLSTATE associé lors de la dernière opération sur la requête
PDOStatement->errorInfo() -- Récupère les informations sur l'erreur associée lors 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ésultat PDO
PDOStatement->fetchAll() -- Retourne un tableau contenant toutes les lignes du jeu d'enregistrements
PDOStatement->fetchColumn() -- Retourne une colonne depuis la ligne suivante d'un jeu de résultats
PDOStatement->fetchObject() -- Récupère la prochaine ligne et la retourne en tant qu'objet
PDOStatement->getAttribute() -- Récupère un attribut de requête
PDOStatement->getColumnMeta() -- Retourne les méta-données pour une colonne d'un jeu de résultats
PDOStatement->nextRowset() -- Avance à la prochaine ligne de résultats d'un gestionnaire de lignes de résultats multiples
PDOStatement->rowCount() -- Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()
PDOStatement->setAttribute() -- Définie un attribut de requête
PDOStatement->setFetchMode() -- Définit le mode de récupération par défaut pour cette requête

Précédent | Sommaire | Suivant
PDF_utf8_to_utf16 | Niveau supérieur | PDO->beginTransaction()


PDO->beginTransaction()

(no version information, might be only in CVS)

PDO->beginTransaction() -- Démarre une transaction

Description

class PDO {

bool beginTransaction ( void )

}

PDO::beginTransaction() désactive le mode autocommit. Lorsque l'autocommit est désactivé, les modifications faites sur la base de données via les instances des objets PDO ne sont pas appliquées tant que vous ne mettez pas fin à la transaction en appelant la fonction PDO->commit(). L'appel de PDO->rollBack() annulera toutes les modifications faites à la base de données et remettra la connexion en mode autocommit.

Quelques bases de données, dont MySQL, exécuteront automatiquement un COMMIT lorsqu'une requête de définition de langage de base de données (DDL) comme DROP TABLE ou CREATE TABLE est exécutée dans une transaction. Ce COMMIT implicite vous empêchera d'annuler toutes autres modifications faites dans cette transaction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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, cepdendant, 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()
PDO->rollBack()

Précédent | Sommaire | Suivant
Fonctions PDO | Niveau supérieur | PDO->commit()


PDO->commit()

(no version information, might be only in CVS)

PDO->commit() -- Valide une transaction

Description

class PDO {

bool commit ( void )

}

PDO::commit() valide une transaction, remet la connexion en mode autocommit en attendant l'appel à la fonction PDO->beginTransaction() pour débuter une nouvelle transaction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Valide une 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 */
?>

Voir aussi

PDO->beginTransaction()
PDO->rollBack()

Précédent | Sommaire | Suivant
PDO->beginTransaction() | Niveau supérieur | PDO->__construct()


PDO->__construct()

(no version information, might be only in CVS)

PDO->__construct() -- Crée une instance PDO qui représente une connexion à une base de données

Description

class PDO {

PDO __construct ( string dsn [, string username [, string password [, array driver_options]]] )

}

PDO::__construct() crée une instance PDO qui représente une connexion à la base de données désirée.

Liste de paramètres

dsn

Le nom de la source de données, ou DSN, contient l'information nécessaire pour se connecter à la base de données.

En général, un DSN consiste en un nom de driver PDO, suivit par deux points (:), suivit par la syntaxe spécifique au driver PDO. Plus d'informations sont fournies sur la documentation spécifique à chaque driver PDO.

Le paramètre dsn supporte trois méthodes différentes de spécification des arguments requis pour créer une connexion à une base de données :

Invocation du Driver

dsn contient le DSN complet.

Invocation d'une URI

dsn consiste en l'uri: suivi par une URI qui définie l'emplacement d'un fichier contenant la chaîne DSN. L'URI peut spécifier un fichier local ou une URL distante.

uri:file:///path/to/dsnfile

Utilisation d'un alias

dsn consiste en le nom name qui équivaut à pdo.dsn.name du php.ini définissant la chaîne DSN.

Note : L'alias doit être défini dans le php.ini et non pas dans un .htaccess, ni dans le httpd.conf.

username

Le nom d'utilisateur pour la chaîne DSN. Ce paramètre est optionnel pour quelques drivers PDO.

password

Le mot de passe pour la chaîne DSN. Ce paramètre est optionnel pour quelques drivers PDO.

driver_options

Un tableau clé=>valeur contenant les options de connexion spécifiques au driver.

Valeurs de retour

Retourne un objet PDO en cas de succès.

Erreurs / Exceptions

PDO->__construct() lance une PDOException si la tentative de connexion à la base de données échoue.

Exemples

Exemple 1. Crée une instance PDO via une invocation de driver

<?php
/* Connexion à une base de données ODBC en invoquant un driver */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
  $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
  echo 'Echec de la connexion : ' . $e->getMessage();
}

?>

Exemple 2. Création d'une instance PDO par invocation d'une URI

L'exemple suivant présume que le fichier /usr/local/dbconnect existe et que PHP y a les droits de lecture. Le fichier contient le DSN PDO pour se connecter à une base de données DB2 via le driver PDO_ODBC :

odbc:DSN=SAMPLE;UID=john;PWD=mypass

Le script PHP peut maintenant créer une connexion à la base de données en passant simplement le paramètre uri: pointant vers le fichier URI :

<?php
/* Connexion à une base de données ODBC en invoquant un driver */
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';

try {
  $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
  echo 'Echec de la connexion : ' . $e->getMessage();
}

?>

Exemple 3. Création d'une instance PDO en utilisant un alias

L'exemple suivant présume que le php.ini contient l'entrée suivante pour activer une connexion à une base de données MySQL en utilisant uniquement l'alias mydb:

[PDO]
      pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"

<?php
/* Connexion à une base de données ODBC en utilisant un alias */
$dsn = 'mydb';
$user = '';
$password = '';

try {
  $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
  echo 'Echec de la connexion : ' . $e->getMessage();
}

?>

Précédent | Sommaire | Suivant
PDO->commit() | Niveau supérieur | PDO->errorCode()


PDO->errorCode()

(no version information, might be only in CVS)

PDO->errorCode() -- Retourne le SQLSTATE associé avec la dernière opération sur la base de données

Description

class PDO {

string errorCode ( void )

}

Valeurs de retour

PDO->errorCode() retourne un SQLSTATE, un identifiant alphanumérique de cinq caractères défini dans le standard AINSI 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 issus 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 gestionne 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.

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(): ";
print $dbh->errorCode();
?>

L'exemple ci-dessus va afficher :

PDO::errorCode(): 42S02

Voir aussi

PDO->errorInfo()
PDOStatement->errorCode()
PDOStatement->errorInfo()

Précédent | Sommaire | Suivant
PDO->__construct() | Niveau supérieur | PDO->errorInfo()


PDO->errorInfo()

(no version information, might be only in CVS)

PDO->errorInfo() -- Retourne les informations associÃ©es Ã l'erreur lors de la derniÃ¨re opÃ©ration sur la base de donnÃ©es

Description

class PDO {

array errorInfo ( void )

}

Valeurs de retour

PDO->errorInfo() retourne un tableau contenant des informations sur l'erreur survenu lors de la derniÃ¨re opÃ©ration exÃ©cutÃ©e par ce gestionnaire de base de donnÃ©es. Le tableau contient les champs suivants :

ElÃ©ment | Information
0 | code erreur SQLSTATE (un identifiant alphanumÃ©rique de cinq caractÃ¨res dÃ©fini dans le standard ANSI SQL).
1 | Code erreur spÃ©cifique au driver.
2 | Message d'erreur spÃ©cifique au driver.

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 de errorInfo() pour une connexion PDO_ODBC sur une base de donnÃ©s DB2

<?php
/* Provoque une erreur -- mauvaise synthaxe SQL */
$stmt = $dbh->prepare('mauvaise synthaxe 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()
PDOStatement->errorCode()
PDOStatement->errorInfo()

Précédent | Sommaire | Suivant
PDO->errorCode() | Niveau supérieur | PDO->exec()


PDO->exec()

(no version information, might be only in CVS)

PDO->exec() -- Exécute une requête SQL et retourne le nombre de lignes affectées

Description

class PDO {

int exec ( string statement )

}

PDO->exec() exécute une requête SQL dans un appel d'une seule fonction, retourne le nombre de lignes affectées par la requête.

PDO->exec() ne retourne pas de résultat pour une requête SELECT. Pour une requête SELECT dont vous auriez besoin une seule fois dans le programme, utilisez plutôt la fonction PDO->query(). Pour une requête dont vous auriez besoin plusieurs fois, préparez un objet PDOStatement avec la fonction PDO->prepare() et exécutez la requête avec la fonction PDOStatement->execute().

Liste de paramètres

statement

La requête à préparer et à exécuter.

Valeurs de retour

PDO->exec() retourne le nombre de lignes qui ont été modifiées ou effacées pour la requête SQL qui vous exécutez. Si aucune ligne n'est affectée, la fonction PDO->exec() retournera 0.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE, utilisable dans une condition if simple. 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($db->errorInfo());
?>

Exemples

Exemple 1. Exécution d'une requête DELETE

Compte le nombre de lignes effacées pour une requête DELETE avec aucune clause WHERE.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

/* Effacement de toutes les lignes de la table FRUIT */
$count = $dbh->exec("DELETE FROM fruit WHERE couleur = 'rouge'");

/* Retourne le nombre de lignes effacées */
print("Retourne le nombre de lignes effacées :\n");
print("Effacement de $count lignes.\n");
?>

L'exemple ci-dessus va afficher :

Retourne le nombre de lignes effacées :
Effacement de 2 lignes.

Voir aussi

PDO->prepare()
PDO->query()
PDOStatement->execute()

Précédent | Sommaire | Suivant
PDO->errorInfo() | Niveau supérieur | PDO->getAttribute()


PDO->getAttribute()

(no version information, might be only in CVS)

PDO->getAttribute() -- Récupère un attribut d'une connexion à une base de données

Description

class PDO {

mixed getAttribute ( int attribute )

}

Cette fonction retourne la valeur d'un attribut d'une connexion à une base de données. Pour récupérer les attributs PDOStatement, référez-vous à la fonction PDOStatement->getAttribute().

Notez que quelques bases de données/drivers combinés ne supportent pas tous les attributs de connexion.

Liste de paramètres

attribute

Une des constantes PDO::ATTR_*. Les constantes qui sont appliquées aux connexions sont les suivantes :

PDO::ATTR_AUTOCOMMIT
PDO::ATTR_CASE
PDO::ATTR_CLIENT_VERSION
PDO::ATTR_CONNECTION_STATUS
PDO::ATTR_DRIVER_NAME
PDO::ATTR_ERRMODE
PDO::ATTR_ORACLE_NULLS
PDO::ATTR_PERSISTENT
PDO::ATTR_PREFETCH
PDO::ATTR_SERVER_INFO
PDO::ATTR_SERVER_VERSION
PDO::ATTR_TIMEOUT

Valeurs de retour

Un appel réussi retourne la valeur de l'attribut PDO demandé. Un appel qui a échoué retourne la valeur null.

Exemples

Exemple 1. Récupération des attributs de connexion à une base de données

<?php
$conn = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
$attributes = array(
"AUTOCOMMIT", "ERRMODE", "CASE", "CLIENT_VERSION", "CONNECTION_STATUS",
"ORACLE_NULLS", "PERSISTENT", "PREFETCH", "SERVER_INFO", "SERVER_VERSION",
"TIMEOUT"
);

foreach ($attributes as $val) {
   echo "PDO::ATTR_$val: ";
   echo $conn->getAttribute(constant("PDO::ATTR_$val")) . "\n";
}
?>

Voir aussi

PDO->setAttribute()
PDOStatement->getAttribute()
PDOStatement->setAttribute()

Précédent | Sommaire | Suivant
PDO->exec() | Niveau supérieur | PDO->getAvailableDrivers()


PDO->lastInsertId()

(no version information, might be only in CVS)

PDO->lastInsertId() -- Retourne l'identifiant de la dernière ligne insérée ou la valeur d'une séquence

Description

class PDO {

string lastInsertId ( [string name] )

}

Retourne l'identifiant de la dernière ligne insérée, ou la dernière valeur d'une séquence d'objets, dépendamment du driver utilisé. Par exemple, PDO_PGSQL() vous impose de spécifier le nom d'une séquence d'objet pour le paramètre name.

Note : Cette méthode peut ne pas retourner un résultat significatif suivant les drivers PDO utilisés, car la base de données utilisée peut ne pas supporter la notion de champs auto-incrémenté ou de séquences.

Liste de paramètres

name

Nom de la séquence d'objets depuis laquelle l'identifiant doit être retourné.

Valeurs de retour

Si un nom de séquence n'est pas spécifié pour le paramètre name, PDO->lastInsertId() retourne une chaîne représentant l'identifiant de la ligne de la dernière ligne insérée dans la base de données.

Si un nom de séquence est spécifié pour le paramètre name, PDO->lastInsertId() retourne une chaîne représentant la dernière valeur depuis la séquence d'objets spécifiée.

Si le driver PDO ne supporte pas cette fonctionalité, PDO->lastInsertId() lancera un SQLSTATE IM001.

Précédent | Sommaire | Suivant
PDO->getAvailableDrivers() | Niveau supérieur | PDO->prepare()


PDO->prepare()

(no version information, might be only in CVS)

PDO->prepare() -- Prépare une requête à l'exécution et retourne un objet

Description

class PDO {

PDOStatement prepare ( string statement [, array driver_options] )

}

Prépare une requête SQL à être exécutée par la méthode PDOStatement->execute(). La requête SQL peut contenir zéro ou plusieurs noms (:name) ou marqueurs (?) pour lesquels les valeurs réelles seront substituées lorsque la requête sera exécutée. Vous ne pouvez pas utiliser les marqueurs nommés et les marqueurs interrogatifs dans une même requête SQL ; choisissez l'un ou l'autre.

Vous devez inclure un marquer 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 pareils dans une requête préparée. Vous ne pouvez associer plusieurs valeurs à un seul marqueur de nom entrant, par exemple, 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 driver à négocier coté client et/ou serveur avec le cache des requêtes et les méta-informations, et aident à prévenir les attaques par injection SQL en éliminant le besoin de protéger les paramètres manuellement.

PDO émulera les requêtes préparées / les paramètres liés pour les drivers 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 driver supporte un style mais pas l'autre.

Liste de paramètres

statement

Doit être une requête SQL valide pour le serveur de base de données cible.

driver_options

Ce tableau contient une ou plusieurs paires clé=>valeur pour définir les valeurs des attributs pour l'objet PDOStatement que cette méthode retourne. Vous pouvez utiliser ceci pour définir la valeur PDO::ATTR_CURSOR à PDO::CURSOR_SCROLL pour demander un curseur scrollable. Quelques drivers 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.

Exemples

Exemple 1. Prépare une requête SQL avec des paramètres nommés

<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$sql = 'SELECT nom, couleur, calories
    FROM fruit
WHERE calories < :calories AND couleur = :couleur';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':couleur' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array('calories' => 175, 'couleur' => 'yellow'));
$yellow = $sth->fetchAll();
?>

Exemple 2. Prépare une requête SQL avec des marqueurs

<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?');
$sth->execute(array(150, 'rouge'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'jaune'));
$yellow = $sth->fetchAll();
?>

Voir aussi

PDO->exec()
PDO->query()
PDOStatement->execute()

Précédent | Sommaire | Suivant
PDO->lastInsertId() | Niveau supérieur | PDO->query()


PDO->query()

(no version information, might be only in CVS)

PDO->query() -- Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement

Description

class PDO {

PDOStatement query ( string statement )

}class PDO {

bool query ( string statement, int PDO::FETCH_COLUMN, int colno )

}class PDO {

bool query ( string statement, int PDO::FETCH_CLASS, string classname, array ctorargs )

}class PDO {

bool query ( string statement, int PDO::FETCH_INTO, object object )

}

PDO->query() exécute une requête SQL en appelant une seule fonction, retourne le jeu de résultats (s'il y en a) retourné par la requête en tant qu'objet PDOStatement.

Pour une requête que vous devez exécuter plusieurs fois, vous réaliserez de meilleurs 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 jeux de résultats avant d'exécuter le prochain appel à PDO->query(), votre appel peut échouer. Appeler PDOStatement->closeCursor() pour libérer les ressources de la base de données associées à l'objet PDOStatement avant d'exécuter votre prochain appel à la fonction PDO->query().

Note : Bien que la documentation de cette fonction autorise de passer un seul paramètre, vous pouvez y passer d'autres paramètres. Ils seront traités via l'appel à PDOStatement->setFetchMode() sur le résultat du traitement de l'objet.

Liste de paramètres

statement

La requête SQL à préparer et à exécuter.

Valeurs de retour

PDO->query() retourne un objet PDOStatement.

Exemples

Exemple 1. Exemple avec PDO::query

Une fonctionnalité intéressante de PDO->query() est qu'il vous permet d'itérer à travers un jeu de résultats retourné par une requête SELECT exécutée avec succès.

<?php
function getFruit($conn) {
  $sql = 'SELECT name, colour, calories FROM fruit ORDER BY name';
  foreach ($conn->query($sql) as $row) {
    print $row['NAME'] . "\t";
    print $row['COLOUR'] . "\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()
PDO->prepare()
PDOStatement->execute()

Précédent | Sommaire | Suivant
PDO->prepare() | Niveau supérieur | PDO->quote()


PDO->quote()

(no version information, might be only in CVS)

PDO->quote() -- Protège une chaîne pour l'utiliser dans une requête SQL PDO

Description

class PDO {

string quote ( string string [, int parameter_type] )

}

PDO->quote() place des guillemets simples autour d'une chaîne d'entrées (si nécessaire) et échappe les caractères spéciaux présents dans la chaîne d'entrées, en utilisant le style de protection approprié au driver courant.

Si vous utilisez cette fonction pour construire des requêtes SQL, vous êtes vivement invité à utiliser PDO->prepare() pour préparer les requêtes SQL avec des paramètres liées au lieu d'utiliser PDO->quote() pour interpréter les entrées utilisateurs dans la requête SQL. Les requêtes préparées avec des paramètres liées ne sont pas seulement plus portables, plus maléables et plus sécurisées 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 drivers PDO n'implémentent pas cette méthode (comme PDO_ODBC). Utilisez les requêtes préparées à la place.

Liste de paramètres

string

La chaîne à échapper.

parameter_type

Fournit un type de données pour les drivers qui ont des styles alternatifs d'échappement. La valeur par défaut est PDO::PARAM_STR.

Valeurs de retour

Retourne une chaîne échappée qui est théoriquement sûr à passer dans une requête SQL. Retourne FALSE si le driver ne supporte pas la protection en ce sens.

Exemples

Exemple 1. Echappement 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. Echappement 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. Echappement 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()
PDOStatement->execute()

Précédent | Sommaire | Suivant
PDO->query() | Niveau supérieur | PDO->rollBack()


PDO->rollBack()

(no version information, might be only in CVS)

PDO->rollBack() -- Annule une transaction

Description

class PDO {

bool rollBack ( void )

}

Annule la transaction courante, initié par la fonction PDO->beginTransaction(). C'est une erreur que d'appeler cette méthode s'il n'y a aucune transaction active.

Si la base de données est en mode autocommit, cette fonction restaurera le mode autocommit après l'annulation de la transaction.

Quelques bases de données, dont MySQL, exécuteront automatiquement un COMMIT lorsqu'une requête de définition de langage de base de données (DDL) comme DROP TABLE ou CREATE TABLE est exécutée dans une transaction. Ce COMMIT implicite vous empêchera d'annuler toutes autres modifications faites dans cette transaction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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, cepdendant, 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()
PDO->commit()

Précédent | Sommaire | Suivant
PDO->quote() | Niveau supérieur | PDO->setAttribute()


PDO->setAttribute()

(no version information, might be only in CVS)

PDO->setAttribute() -- Définie un attribut

Description

class PDO {

bool setAttribute ( int attribute, mixed value )

}

PDO::setAttribute() définie un attribut d'une connexion à une base de données. Les attributs génériques sont listés ci-dessous ; quelques drivers peuvent utiliser des attributs spécifiques.

  • PDO::ATTR_CASE: Force les noms de colonnes en une casse spécifique.

    • PDO::CASE_LOWER: Force les noms de colonnes en minuscule.

    • PDO::CASE_NATURAL: Laisse les noms des colonnes en la casse définie par le driver de la base de données.

    • PDO::CASE_UPPER: Force les noms de colonnes en majuscule.

  • PDO::ATTR_ERRMODE : Rapport des erreurs.

    • PDO::ERRMODE_SILENT : Définit juste les codes erreurs.

    • PDO::ERRMODE_WARNING : Lance un E_WARNING.

    • PDO::ERRMODE_EXCEPTION : Lance des exceptions.

  • PDO::ATTR_ORACLE_NULLS (disponible pour tous les drivers, pas uniquement pour Oracle): Convertit les chaînes NULL et vides.

    • PDO::NULL_NATURAL : Aucune conversion.

    • PDO::NULL_EMPTY_STRING : Une chaîne vide est convertie en NULL.

    • PDO::NULL_TO_STRING : NULL est converti en une chaîne vide.

  • PDO::ATTR_STRINGIFY_FETCHES : Convertit les valeurs numériques en chaînes de caractères lors de la récupération. Nécessite bool.

  • PDO::ATTR_STATEMENT_CLASS : Définit la classe de la requête fournie par l'utilisateur dérivée de PDOStatement. Ne peut être utilisé avec des instances persistantes de PDO. Nécessite array(string classname, array(mixed constructor_args)).

  • PDO::ATTR_AUTOCOMMIT (disponible en OCI, Firebird et MySQL) : Valider automatiquement ou non chaque requête.

  • PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (disponible en MySQL) : Utilise les requêtes beuffeurisées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDO->rollBack() | Niveau supérieur | PDOStatement->bindColumn()


PDOStatement->bindColumn()

(no version information, might be only in CVS)

PDOStatement->bindColumn() -- Lie une colonne à une variable PHP

Description

class PDOStatement {

bool bindColumn ( mixed column, mixed &param [, int type] )

}

PDOStatement->bindColumn() fait en sorte qu'une variable particulière soit liée à une colonne données dans le jeu de résultats depuis une requête. Chaque appel à la fonction PDOStatement->fetch() ou PDOStatement->fetchAll() mettera à 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().

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

param

Nom de la variable PHP à laquelle la colonne doit être liée.

type

Type du paramètre, spécifié par les constantes PDO::PARAM_*.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Lie l'affichage du jeu de résultats à des variables PHP

Lie les colonnes du jeu de résultats aux variables PHP est une façon agréable de rendre les données contenues dans chaque ligne immédiatement disponible à votre application. L'exemple suivant montre comment PDO vous autorise à lier et récupérer les colonnes avec une variété d'options.

<?php
function readData($dbh) {
  $sql = 'SELECT nom, couleur, calories FROM fruit';
  try {
    $stmt = $dbh->prepare($sql);
    $stmt->execute();

    /* Lie par les numéros de colonnes */
    $stmt->bindColumn(1, $nom);
    $stmt->bindColumn(2, $couleur);

    /* Lie par les noms de colonnes */
    $stmt->bindColumn('calories', $cals);

    while ($row = $stmt->fetch(PDO::FETCH_BOUND)) {
      $data = $nom . "\t" . $couleur . "\t" . $cals . "\n";
      print $data;
    }
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}
readData($dbh);
?>

L'exemple ci-dessus va afficher :

pomme   rouge     150
banane  jaune  175
kiwi    vert   75
orange  orange  150
mangue   rouge     200
fraise      rouge     25

Voir aussi

PDOStatement->execute()
PDOStatement->fetch()
PDOStatement->fetchAll()
PDOStatement->fetchColumn()

Précédent | Sommaire | Suivant
PDO->setAttribute() | Niveau supérieur | PDOStatement->bindParam()


PDOStatement->bindParam()

(no version information, might be only in CVS)

PDOStatement->bindParam() -- Lie un paramètre à un nom de variable spécifique

Description

class PDOStatement {

bool bindParam ( mixed parameter, mixed &variable [, int data_type [, int length [, mixed driver_options]]] )

}

Lie une variable PHP à un marquer nommé ou interrogatif correspondant dans une requête SQL utilisée pour préparer la requête. Contrairement à PDOStatement->bindValue(), la variable est liée en tant que référence et ne sera évaluée qu'au moment de l'appel à la fonction PDOStatement->execute().

La plupart des paramètres sont des paramètres d'entrées, et sont utilisés en lecture seule pour construire la requête. Quelques drivers supportent l'invocation de procédures stockées qui retournent des données en tant que paramètres de sortie, et quelques autres en tant que paramètres entrées / sorties qui sont envoyés ensemble et sont mis à jour pour les recevoir.

Liste de paramètres

parameter

Identifiant. Pour une requête préparée utilisant des marqueurs nommés, ce sera le nom du paramètre sous la forme :name. Pour une requête préparée utilisant les marqueurs interrogatifs, ce sera la position indexé -1 du paramètre.

variable

Nom de la variable PHP à lier au paramètre de la requête SQL.

data_type

Type explicite de données pour le paramètre utilisant la constante PDO::PARAM_*. Pour retourner un paramètre INOUT depuis une procédure stockée, utilisez l'opérateur OR pour définir l'octet PDO::PARAM_INPUT_OUTPUT pour le paramètre data_type parameter.

length

Longueur du type de données. Pour indiquer qu'un paramètre est un paramètre OUT depuis une procédure stockée, vous devez explicitement définir la longueur.

driver_options

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exécution d'une requête préparée avec des emplacements nommés

<?php
/* Exécution d'une requête préparée en liant des variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < :calories AND couleur = :couleur');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':couleur', $couleur, PDO::PARAM_STR, 12);
$sth->execute();
?>

Exemple 2. Exécution d'une requête préparée avec des marques de positionnement

<?php
/* Exécution d'une requête préparée en liant des variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $couleur, PDO::PARAM_STR, 12);
$sth->execute();
?>

Exemple 3. Appel une procédure stockée avec un paramètre INOUT

<?php
/* Appel une procédure stockée avec un paramètre INOUT */
$couleur = 'rouge';
$sth = $dbh->prepare('CALL puree_fruit(?)');
$sth->bindParam(1, $couleur, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 12);
$sth->execute();
print("Après avoir pressé le fruit, la couleur est : $couleur");
?>

Voir aussi

PDO->prepare()
PDOStatement->execute()
PDOStatement->bindValue()

Précédent | Sommaire | Suivant
PDOStatement->bindColumn() | Niveau supérieur | PDOStatement->bindValue()


PDOStatement->columnCount()

(no version information, might be only in CVS)

PDOStatement->columnCount() -- Retourne le nombre de colonnes dans le jeu de résultats

Description

class PDOStatement {

int columnCount ( void )

}

Utilisez la fonction PDOStatement->columnCount() pour retourner le nombre de colonnes dans le jeu de résultats représenté par l'objet PDOStatement.

Si l'objet PDOStatement a été retourné par la fonction PDO->query(), le nombre de colonnes est immédiatement disponible.

Si l'objet PDOStatement a été retourné par la fonction PDO->prepare(), un compte précis des colonnes ne sera pas disponible tant que vous n'invoquerez pas la fonction PDOStatement->execute().

Valeurs de retour

Retourne le nombre de colonnes dans le jeu de résultats représenté par l'objet PDOStatement. S'il n'y a pas de jeu de résultats, PDOStatement->columnCount() retournera 0.

Exemples

Exemple 1. Comptage des colonnes

Cet exemple démontre comment PDOStatement->columnCount() fonctionne avec ou sans jeu de résultats.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

$sth = $dbh->prepare("SELECT nom, couleur FROM fruit");

/* Compte le nombre de colonnes dans le jeu de résultat (non-existant) */
$colcount = $sth->columnCount();
print("Avant execute(), le jeu de résultats avait $colcount colonnes (devrait être 0)\n");

$sth->execute();

/* Compte le nombre de colonnes dans le jeu de résultats */
$colcount = $sth->columnCount();
print("Après execute(), le jeu de résultats a $colcount colonnes (devrait être 2)\n");

?>

L'exemple ci-dessus va afficher :

Avant execute(), le jeu de résultats avait 0 colonnes (devrait être 0)
Après execute(), le jeu de résultat a 2 colonnes (devrait être 2)

Voir aussi

PDO->prepare()
PDOStatement->execute()
PDOStatement->rowCount()

Précédent | Sommaire | Suivant
PDOStatement->closeCursor() | Niveau supérieur | PDOStatement->errorCode()


PDOStatement->errorCode()

(no version information, might be only in CVS)

PDOStatement->errorCode() -- Récupère le SQLSTATE associé lors de la dernière opération sur la requête

Description

class PDOStatement {

string errorCode ( void )

}

Valeurs de retour

Identique à PDO->errorCode(), excepté que PDOStatement->errorCode() récupère uniquement les codes erreurs pour les opérations sur les objets PDOStatement.

Exemples

Exemple 1. Détermine la catégorie de l'erreur qui survient

<?php
/* Provoque une erreur -- la table BONES n'existe pas */
$err = $dbh->prepare('SELECT skull FROM bones');
$err->execute();

echo "\nPDOStatement::errorCode(): ";
print $err->errorCode();
?>

L'exemple ci-dessus va afficher :

PDOStatement::errorCode(): 42S02

Voir aussi

PDO->errorCode()
PDO->errorInfo()
PDOStatement->errorInfo()

Précédent | Sommaire | Suivant
PDOStatement->columnCount() | Niveau supérieur | PDOStatement->errorInfo()


PDOStatement->errorInfo()

(no version information, might be only in CVS)

PDOStatement->errorInfo() -- Récupère les informations sur l'erreur associée lors dernière opération sur la requête

Description

class PDOStatement {

array errorInfo ( void )

}

Valeurs de retour

PDOStatement->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 requêtes. Le tableau contient les champs suivants :

Elé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és 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()
PDO->errorInfo()
PDOStatement->errorCode()

Précédent | Sommaire | Suivant
PDOStatement->errorCode() | Niveau supérieur | PDOStatement->execute()


PDOStatement->execute()

(no version information, might be only in CVS)

PDOStatement->execute() -- Exécute une requête préparée

Description

class PDOStatement {

bool execute ( [array input_parameters] )

}

Exécute une requête préparée. Si la requête préparée inclut des marqueurs de positionnement, vous pouvez :

  • appeler la fonction PDOStatement->bindParam() pour lier les variables PHP aux marqueurs de positionnement : les variables liées pssent leurs valeurs en entrée et recoivent les valeurs de sortie si'il y en a, de leurs marqueurs de positionnement respectifs

  • ou passer un tableau de valeurs de paramètres, uniquement en entrée

Liste de paramètres

input_parameters

Un tableau de valeurs avec autant d'éléments qu'il y a de paramètres à associer dans la requête SQL qui sera exécutées.

Vous ne pouvez associer plusieurs valeurs à un seul paramètre; par exemple, vous ne pouvez associer deux valeurs à un paramètre de nom dans une clause IN().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exécute une requête préparée avec des variables liées

<?php
/* Exécute une requête préparée en liant des variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < :calories AND couleur = :couleur');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':couleur', $couleur, PDO::PARAM_STR, 12);
$sth->execute();
?>

Exemple 2. Exécute une requête préparée avec un tableau de valeurs (paramètres de nom)

<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < :calories AND couleur = :couleur');
$sth->execute(array(':calories' => $calories, ':couleur' => $couleur));
?>

Exemple 3. Exécute une requête préparée avec un tableau de valeurs (marqueurs)

<?php
/* Exécute une requête préparée en passant un tableau de valeurs */
$calories = 150;
$colour = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?');
$sth->execute(array($calories, $couleur));
?>

Exemple 4. Exécute une requête préparée avec un marqueur de positionnement

<?php
/* Exécute une requête préparée en liant des variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $couleur, PDO::PARAM_STR, 12);
$sth->execute();
?>

Voir aussi

PDO->prepare()
PDOStatement->bindParam()
PDOStatement->fetch()
PDOStatement->fetchAll()
PDOStatement->fetchColumn()

Précédent | Sommaire | Suivant
PDOStatement->errorInfo() | Niveau supérieur | PDOStatement->fetch()


PDOStatement->fetch()

(no version information, might be only in CVS)

PDOStatement->fetch() -- Récupère la ligne suivante d'un jeu de résultat PDO

Description

class PDOStatement {

mixed fetch ( [int fetch_style [, int cursor_orientation [, int cursor_offset]]] )

}

Récupère une ligne depuis un jeu de résultats associé à l'objet PDOStatement. Le paramètre fetch_style détermine la façon dont PDO retourne la ligne.

Liste de paramètres

fetch_style

Contrôle comment la prochaine ligne sera retournée à l'appelant. Cette valeur doit être une des constantes PDO::FETCH_*, et par défaut, vaut 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 mais aussi par les numéros de colonnes (commençant à l'indice 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 à laquelles elles sont liées avec la méthode PDOStatement->bindParam()

  • PDO::FETCH_CLASS: retourne une nouvelle instance de la classe demandée, liant les colonnes du jeu de résultats aux noms des propriétés de la classe. Si fetch_style inclut PDO::FETCH_CLASS (c'est-à-dire PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE), alors le nom de la classe est déterminé à partir d'une valeur de la première colonne.

  • PDO::FETCH_INTO: met à jour une instance existante de la classe demandée, liant les colonnes du jeu de résultats aux noms des propriétés de la classe

  • PDO::FETCH_LAZY: combine PDO::FETCH_BOTH et PDO::FETCH_OBJ, créant ainsi les noms des variables de l'objet, comme elles sont accédées

  • PDO::FETCH_NUM: retourne un tableau indexé par le numéro de la colonne comme elle est retourné dans votre jeu de résultat, commençant à 0

  • PDO_FETCH_OBJ: retourne un objet anonyme avec les noms de propriétés qui correspondent aux noms des colonnes retournés dans le jeu de résultats

cursor_orientation

Pour un objet PDOStatement représentant un curseur scrollable, cette valeur détermine quelle ligne sera retournée à l'appelant. Cette valeur doit être une des constantes PDO::FETCH_ORI_*, et par défaut, vaut PDO::FETCH_ORI_NEXT. Pour demander un curseur scrollable pour votre objet PDOStatement, vous devez définir l'attribut PDO::ATTR_CURSOR à PDO::CURSOR_SCROLL lorsque vous préparez la requête SQL avec la fonction PDO->prepare().

offset

Pour un objet PDOStatement représentant un curseur scrollable pour lequel le paramètre cursor_orientation est défini à PDO::FETCH_ORI_ABS, cette valeur spécifie le numéro absolu de la ligne dans le jeu de résultats qui doit être récupérée.

Pour un objet PDOStatement représentant un curseur scrollable pour lequel le paramètre cursor_orientation est défini à PDO::FETCH_ORI_REL, cette valeur spécifie la ligne à récupérer relativement à la position du curseur avant l'appel à la fonction PDOStatement->fetch().

Exemples

Exemple 1. Récupération de lignes en utilisant différentes méthodes

<?php
$sth = $dbh->prepare("SELECT nom, couleur FROM fruit");
$sth->execute();

/* styles PDOStatement::fetch */
print("PDO::FETCH_ASSOC: ");
print("Retourne la ligne suivante en tant qu'un tableau indexé par le nom des colonnes\n");
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");

print("PDO::FETCH_BOTH: ");
print("Retourne la ligne suivante en tant qu'un tableau indexé par le nom et le numéro de la colonne\n");
$result = $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print("\n");

print("PDO::FETCH_LAZY: ");
print("Retourne la ligne suivante en tant qu'objet anonyme ayant les noms de colonnes comme propriétés\n");
$result = $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print("\n");

print("PDO::FETCH_OBJ: ");
print("Retourne la ligne suivante en tant qu'objet anonyme ayant les noms de colonnes comme propriétés\n");
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->NAME;
print("\n");
?>

L'exemple ci-dessus va afficher :

PDO::FETCH_ASSOC: Retourne la ligne suivante en tant qu'un tableau indexé par le nom des colonnes
Array
(
    [NOM] => apple
    [COULEUR] => red
)

PDO::FETCH_BOTH: Retourne la ligne suivante en tant qu'un tableau indexé par le nom et le numéro de la colonne
Array
(
    [NOM] => banana
    [0] => banana
    [COULEUR] => yellow
    [1] => yellow
)

PDO::FETCH_LAZY: Retourne la ligne suivante en tant qu'objet anonyme ayant les noms de colonnes comme propriétés PDORow Object
(
    [NOM] => orange
    [COULEUR] => orange
)

PDO::FETCH_OBJ: Retourne la ligne suivante en tant qu'objet anonyme ayant les noms de colonnes comme propriétés kiwi

Exemple 2. Récupération des lignes avec un curseur scrollable

<?php
function readDataForwards($dbh) {
  $sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY BET';
  try {
    $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR, PDO::CURSOR_SCROLL));
    $stmt->execute();
    while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) {
      $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
      print $data;
    }
    $stmt = null;
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}
function readDataBackwards($dbh) {
  $sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY bet';
  try {
    $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR, PDO::CURSOR_SCROLL));
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
    do {
      $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
      print $data;
    } while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));
    $stmt = null;
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}

print "Lecture en avant :\n";
readDataForwards($conn);

print "Lecture en arrière :\n";
readDataBackwards($conn);
?>

L'exemple ci-dessus va afficher :

Lecture en avant :
21    10    5
16    0     5
19    20    10

Lecture en arrière :
19    20    10
16    0     5
21    10    5

Voir aussi

PDO->query()
PDOStatement->fetchAll()
PDOStatement->fetchColumn()
PDO->prepare()
PDOStatement->setFetchMode()

Précédent | Sommaire | Suivant
PDOStatement->execute() | Niveau supérieur | PDOStatement->fetchAll()


PDOStatement->fetchAll()

(no version information, might be only in CVS)

PDOStatement->fetchAll() -- Retourne un tableau contenant toutes les lignes du jeu d'enregistrements

Description

class PDOStatement {

array fetchAll ( [int fetch_style [, int column_index]] )

}

Liste de paramètres

fetch_style

Contrôle le contenu du tableau retourné comme documenté dans la fonction PDOStatement->fetch(). Vaut par défaut 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-index.

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.

column_index

Retourne la colonne indiquée où la valeur de fetch_style est PDO::FETCH_COLUMN. Vaut par défaut 0.

Valeurs de retour

PDOStatement->fetchAll() retourne un tableau contenant toutes les lignes du jeu d'enregistrements. Le tableau représente chaque ligne comme soit un tableau de valeurs des colonnes, soit un objet avec des propriétés correspondant à chaque nom de colonne.

L'utilisation de cette méthode pour récupérer de gros jeux de résultats peut augmenter les ressources du systèmes 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 le récupérer et de les traiter avec PHP.

Exemples

Exemple 1. Récupération de toutes les lignes d'un jeu de résultats

<?php
$sth = $dbh->prepare("SELECT nom, couleur FROM fruit");
$sth->execute();

/* Récupération de toutes les lignes d'un jeu de résultats */
print("Récupération de toutes les lignes d'un jeu de résultats :\n");
$result = $sth->fetchAll();
print_r($result);
?>

L'exemple ci-dessus va afficher :

Récupération de toutes les lignes d'un jeu de résultats :
Array
(
    [0] => Array
        (
            [NOM] => pear
            [0] => pear
            [COULEUR] => green
            [1] => green
        )

    [1] => Array
        (
            [NOM] => watermelon
            [0] => watermelon
            [COULEUR] => pink
            [1] => pink
        )

)

Exemple 2. Récupération de toutes les valeurs d'une seule colonne depuis un jeu de résultats

L'exemple suivant montre comment retourner toutes les valeurs d'une seule colonne depuis un jeu de résultats, même si la requête SQL retourne plusieurs colonnes par lignes.

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Récupération de toutes les valeurs de la première colonne */
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
var_dump($result);
?>

L'exemple ci-dessus va afficher :

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('apple', 'green');
$insert->execute('pear', 'yellow');

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Grouper les valeurs de la première colonne */
var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
?>

L'exemple ci-dessus va afficher :

array(3) {
  ["apple"]=>
    array(2) {
      [0]=>
        string(5) "green"
      [1]=>
        string(3) "red"
    }
  ["pear"]=>
    array(2) {
      [0]=>
        string(5) "green"
      [1]=>
        string(6) "yellow"
    }
  ["watermelon"]=>
    array(1) {
      [0]=>
        string(5) "green"
    }
}

Voir aussi

PDO->query()
PDOStatement->fetch()
PDOStatement->fetchColumn()
PDO->prepare()
PDOStatement->setFetchMode()

Précédent | Sommaire | Suivant
PDOStatement->fetch() | Niveau supérieur | PDOStatement->fetchColumn()


PDOStatement->getAttribute()

(no version information, might be only in CVS)

PDOStatement->getAttribute() -- Récupère un attribut de requête

Description

class PDOStatement {

mixed getAttribute ( int attribute )

}

Récupère un attribut de la requête. Actuellement, aucun attribut générique n'existe, mais uniquement des spécificités du driver :

  • PDO::ATTR_CURSOR_NAME (spécificité de Firebird et d'ODBC) : Récupère le nom du curseur pour UPDATE ... WHERE CURRENT OF.

Valeurs de retour

Retourne la valeur de l'attribut.

Voir aussi

PDO->getAttribute()
PDO->setAttribute()
PDOStatement->setAttribute()

Précédent | Sommaire | Suivant
PDOStatement->fetchObject() | Niveau supérieur | PDOStatement->getColumnMeta()


PDOStatement->getColumnMeta()

(no version information, might be only in CVS)

PDOStatement->getColumnMeta() -- Retourne les méta-données pour une colonne d'un jeu de résultats

Description

class PDOStatement {

mixed getColumnMeta ( int column )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Récupère les méta-informations pour une colonne d'un jeu de résultat dans un tableau associatif.

Avertissement

Tous les drivers PDO ne supportent pas la fonction PDOStatement->getColumnMeta().

Liste de paramètres

column

Le nom de la colonne dans le jeu de résultat.

Valeurs de retour

Retourne un tableau associatif contenant les valeurs suivantes représentant les méta-informations pour une colonne :

Tableau 1. Méta-informations 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ésultat 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 cete colonne, comme 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_* constants.

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éta-informations pour une colonne

L'exemple suivant montre le résultat de la récupération des méta-informations pour une colonne générée par une fonction (COUNT) dans un driver 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()
PDOStatement->rowCount()

Précédent | Sommaire | Suivant
PDOStatement->getAttribute() | Niveau supérieur | PDOStatement->nextRowset()


PDOStatement->nextRowset()

(no version information, might be only in CVS)

PDOStatement->nextRowset() -- Avance à la prochaine ligne de résultats d'un gestionnaire de lignes de résultats multiples

Description

class PDOStatement {

bool nextRowset ( void )

}

Quelques bases de données supportent les procédures stockées qui retournent plus d'une ligne de résultats (aussi connu comme des jeux de résultats). PDOStatement->nextRowset() vous permet d'accéder à la seconde et suivantes lignes de résultats associées avec l'objet PDOStatement. Chaques lignes de résultats ont des jeux différents de colonnes depuis la ligne de résultats.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Récupération de multiples lignes de résultats retournées par une procédure stockée

L'exemple suivant montre comment appeler une procédure stockée, MULTIPLE_RESULTS, qui retourne trois lignes de résultats. Nous utilisons une boucle do / while pour parcourir la méthode PDOStatement->nextRowset(), qui retourne FALSE et termine la boucle lorsque plus aucune ligne de résultats ne peut être retournée.

<?php
$sql = 'CALL multiple_rowsets()';
$stmt = $conn->query($sql);
$i = 1;
do {
    $rowset = $stmt->fetchAll(PDO::FETCH_NUM);
    if ($rowset) {
        printResultSet($rowset, $i);
    }
    $i++;
} while ($stmt->nextRowset());

function printResultSet(&$rowset, $i) {
    print "Jeu de résultats $i:\n";
    foreach ($rowset as $row) {
        foreach ($row as $col) {
            print $col . "\t";
        }
        print "\n";
    }
    print "\n";
}
?>

L'exemple ci-dessus va afficher :

Jeu de résultats 1:
apple    red
banana   yellow

Jeu de résultats 2:
orange   orange    150
banana   yellow    175

Jeu de résultats 3:
lime     green
apple    red
banana   yellow

Voir aussi

PDOStatement->columnCount()
PDOStatement->execute()
PDOStatement->getColumnMeta()
PDO->query()

Précédent | Sommaire | Suivant
PDOStatement->getColumnMeta() | Niveau supérieur | PDOStatement->rowCount()


PDOStatement->rowCount()

(no version information, might be only in CVS)

PDOStatement->rowCount() -- Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()

Description

class PDOStatement {

int rowCount ( void )

}

PDOStatement->rowCount() retourne le nombre de lignes affectées par la dernière requête DELETE, INSERT ou UPDATE exécutée par l'objet PDOStatement correspondant.

Si la dernière requête SQL exécutée par l'objet PDOStatement associé est une requête de type SELECT, quelques bases de données retourneront le nombre de lignes retournées par cette requête. Néanmoins, ce comportement n'est pas garanti pour toutes les bases de données et ne devrait pas être exécuté pour des applications portables.

Exemples

Exemple 1. Retourne le nombre de lignes effacées

PDOStatement->rowCount() retourne le nombre de lignes affectées par une requête DELETE, INSERT, ou UPDATE.

<?php
/* Effacement de toutes les lignes de la table FRUIT */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();

/* Retourne le nombre de lignes effacées */
print("Retourne le nombre de lignes effacées :\n");
$count = $del->rowCount();
print("Effacement de $count lignes.\n");
?>

L'exemple ci-dessus va afficher :

Effacement de 9 lignes.

Exemple 2. Comptage des lignes retournées par une requête SELECT

Pour la plupart des bases de données, PDOStatement->rowCount() ne retourne pas le nombre de lignes affectées par une requête SELECT. À la place, utilisez PDO->query() pour faire une requête SELECT COUNT(*), puis utilisez PDOStatement->fetchColumn() pour récupérer le nombre de lignes retournées. Votre application peut ainsi effectuer la bonne action.

<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
if ($res = $conn->query($sql)) {

   /* Récupère le nombre de lignes qui correspond à la requête SELECT */
   if ($res->fetchColumn() > 0) {

      /* Effectue la vraie requête SELECT et travaille sur le résultat */
      $sql = "SELECT nom FROM fruit WHERE calories > 100";
      foreach ($conn->query($sql) as $row) {
      print "Nom : " .  $row['NOM'] . "\n";
      }
   }
   /* Aucune ligne ne correspond -- faire quelque chose d'autre */
   else {
      print "Aucune ligne ne correspond à la requête.";
   }
}

$res = null;
$conn = null;
?>

L'exemple ci-dessus va afficher :

apple
banana
orange
pear

Voir aussi

PDOStatement->columnCount()
PDOStatement->fetchColumn()
PDO->query()

Précédent | Sommaire | Suivant
PDOStatement->nextRowset() | Niveau supérieur | PDOStatement->setAttribute()


PDOStatement->setAttribute()

(no version information, might be only in CVS)

PDOStatement->setAttribute() -- Définie un attribut de requête

Description

class PDOStatement {

bool setAttribute ( int attribute, mixed value )

}

Définit un attribut de la requête. Actuellement, aucun attribut générique n'est défini, mais uniquement des spécificités du driver :

  • PDO::ATTR_CURSOR_NAME (spécificité de Firebird et d'ODBC) : Définit le nom du curseur pour UPDATE ... WHERE CURRENT OF.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

PDO->getAttribute()
PDO->setAttribute()
PDOStatement->getAttribute()

Précédent | Sommaire | Suivant
PDOStatement->rowCount() | Niveau supérieur | PDOStatement->setFetchMode()


PDOStatement->setFetchMode()

(no version information, might be only in CVS)

PDOStatement->setFetchMode() -- Définit le mode de récupération par défaut pour cette requête

Description

class PDOStatement {

bool setFetchMode ( int mode )

}class PDOStatement {

bool setFetchMode ( int PDO::FETCH_COLUMN, int colno )

}class PDOStatement {

bool setFetchMode ( int PDO::FETCH_CLASS, string classname, array ctorargs )

}class PDOStatement {

bool setFetchMode ( int PDO::FETCH_INTO, object object )

}

Liste de paramètres

mode

Le mode de récupération doit être une des constantes PDO::FETCH_*.

Valeurs de retour

Retourne 1 en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple 1. Définission du mode de récupération

L'exemple suivant montre comment PDOStatement->setFetchMode() modifie le mode de récupération par défaut pour un objet PDOStatement.

<?php
$sql = 'SELECT name, colour, calories FROM fruit';
try {
  $stmt = $dbh->query($sql);
  $result = $stmt->setFetchMode(PDO::FETCH_NUM);
  while ($row = $stmt->fetch()) {
    print $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
  }
}
catch (PDOException $e) {
  print $e->getMessage();
}
?>

L'exemple ci-dessus va afficher :

apple   red     150
banana  yellow  250
orange  orange  300
kiwi    brown   75
lemon   yellow  25
pear    green   150
watermelon      pink    90

Précédent | Sommaire | Suivant
PDOStatement->setAttribute() | Niveau supérieur | Phar archive stream and classes


Paiement par Verisign

Manuel PHP
Précédent Suivant

CLXXI. Paiement par Verisign

Introduction

Cette extension vous permet d'effectuer des transactions avec des cartes de crédit en utilisant les services Verisign Payment Services, anciennement connu sous le nom de Signio (http://www.verisign.com/products-services/payment-processing/online-payment/payflow-pro/index.html).

Lorsque vous utilisez ces fonctions, vous pouvez omettre d'appeler les fonctions pfpro_init() et pfpro_cleanup() : l'extension se chargera de le faire automatiquement. Cependant, elles sont toujours disponibles au cas où vous auriez un grand nombre de transactions à traiter, ou que vous souhaiteriez un contrôle plus fin de la bibliothèque. Vous pouvez effectuer autant de transactions que vous le souhaitez avec pfpro_process() lors d'une connexion.

Ces fonctions ont été ajoutées en PHP 4.0.2.

Note : Ces fonctions ne font que fournir un accès aux services Verisign Payment Services. Assurez-vous bien de lire le "Payflow Pro Developers Guide" pour plus de détails sur les paramètres.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Pré-requis

Vous devez aussi utiliser le SDK approprié sur votre plate-forme : il est disponible l'interface du manager, une fois que vous vous êtes inscrit.

Une fois que vous avez téléchargé le SDK vous devez copier les fichiers depuis le dossier lib de la distribution. Copiez le fichier d'en-têtes pfpro.h dans /usr/local/include et la bibliothèque libpfpro.so dans /usr/local/lib.

Alternativement, vous pouvez extraire l'archive depuis Verisign dans un dossier et faites-lui référence durant la compilation avec l'option --with-pfpro[=DIR] :

Exemple 1. Configuration explicite

tar -zxf pfpro_sunsparc.tar.gz -C /usr/local/

./configure --with-pfpro=/usr/local/verisign/payflowpro/sunsparc

Note : La dernière portion du chemin spécifiée dans l'exemple ci-dessus, dans ce cas sunsparc, est basé sur l'architecture pour lequel votre Verisign SDK a été compilé.

Installation

Ces fonctions ne sont disponibles que si PHP a été compilé avec l'option --with-pfpro[=DIR].

Avertissement

Si vous désirez utiliser cette extension avec l'extension OpenSSL ou avec ModSSL, vous devez la compiler en tant que partagée : --with-pfpro=shared,/usr/local.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
pfpro.defaulthost/PFPRO_VERSION < 3 | "test.signio.com" | PHP_INI_ALL |
pfpro.defaulthost | "test-payflow.verisign.com" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
pfpro.defaultport | "443" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
pfpro.defaulttimeout | "30" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
pfpro.proxyaddress | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
pfpro.proxyport | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
pfpro.proxylogon | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
pfpro.proxypassword | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
pfpro_cleanup -- Éteint la bibliothèque Payflow Pro
pfpro_init -- Initialise la bibliothèque Payflow Pro
pfpro_process_raw -- Envoie une transaction brute à Payflow Pro
pfpro_process -- Effectue une transaction avec Payflow Pro
pfpro_version -- Retourne le numéro de version de Payflow Pro

Précédent | Sommaire | Suivant
var_export | Niveau supérieur | pfpro_cleanup


pfpro_cleanup

(PHP 4 >= 4.0.2, PHP 5)

pfpro_cleanup -- Éteint la bibliothèque Payflow Pro

Description

bool pfpro_cleanup ( void )

Sert à terminer proprement une session avec la bibliothèque Payflow Pro library.

Elle doit être appelée après toutes les transactions, et avant la fin du script. Cependant, vous pouvez omettre cet appel : dans ce cas, cette fonction sera automatiquement appelée à la fin du script.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

pfpro_init()

Précédent | Sommaire | Suivant
Paiement par Verisign | Niveau supérieur | pfpro_init


pfpro_init

(PHP 4 >= 4.0.2, PHP 5)

pfpro_init -- Initialise la bibliothèque Payflow Pro

Description

bool pfpro_init ( void )

Initialise la bibliothèque Payflow Pro.

Vous pouvez omettre cet appel : dans ce cas, pfpro_init() sera appelée automatiquement avant la première transaction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

pfpro_cleanup()

Précédent | Sommaire | Suivant
pfpro_cleanup | Niveau supérieur | pfpro_process_raw


pfpro_process_raw

(PHP 4 >= 4.0.2, PHP 5)

pfpro_process_raw -- Envoie une transaction brute à Payflow Pro

Description

string pfpro_process_raw ( string parameters [, string address [, int port [, int timeout [, string proxy_address [, int proxy_port [, string proxy_logon [, string proxy_password]]]]]]] )

pfpro_process_raw() envoie une transaction brute au serveur Payflow Pro. Il est vivement recommandé d'utiliser pfpro_process() à la place, car les règles de codage sont non standard.

Note : Lisez attentivement le "Payflow Pro Developers Guide" pour connaître tous les détails des paramètres et leur règle d'encodage. Il est recommandé d'utiliser plutôt pfpro_process().

Liste de paramètres

parameters

Une chaîne contenant la transaction brute.

address

Spécifie l'hôte sur lequel on doit se connecter. Par défaut, c'est test.signio.com, et vous voudriez certainement le changer en connect.signio.com afin d'effectuer des transactions en temps réel.

port

Spécifie le port sur lequel on se connecte. Par défaut, c'est 443, le numéro du port standart.

timeout

Spécifie le délai maximal à utiliser, en secondes. Par défaut, c'est 30 secondes. Noter que ce délai maximal ne démarre réellement qu'une fois le lien vers le processus établie et donc, votre script peut potentiellement continuer très longtemps en cas de problème DNS ou de réseau.

proxy_address

Si nécessaire, spécifie le nom de l'hôte de votre proxy SSL.

proxy_port

Si nécessaire, spécifie le port de votre proxy SSL.

proxy_logon

Si nécessaire, spécifie le nom d'utilisateur à utiliser pour l'identification sur votre proxy SSL.

proxy_password

Si nécessaire, spécifie le mot de passe à utiliser pour l'identification sur votre proxy SSL.

Valeurs de retour

Retourne une chaîne contenant la réponse brute.

Exemples

Exemple 1. Exemple avec Payflow Pro

<?php

pfpro_init();

$response = pfpro_process_raw(
"USER=mylogin&PWD[5]=m&ndy&PARTNER=VeriSign&TRXTYPE=S" .
"&TENDER=C&AMT=1.50&ACCT=4111111111111111&EXPDATE=0904");

if (!$response) {
  die("Impossible d'établir un lien vers Verisign.\n");
}

echo "La réponse brute de Verisign est " . $response;

pfpro_cleanup();

?>

Voir aussi

pfpro_process()

Précédent | Sommaire | Suivant
pfpro_init | Niveau supérieur | pfpro_process


pfpro_process

(PHP 4 >= 4.0.2, PHP 5)

pfpro_process -- Effectue une transaction avec Payflow Pro

Description

array pfpro_process ( array parameters [, string address [, int port [, int timeout [, string proxy_address [, int proxy_port [, string proxy_logon [, string proxy_password]]]]]]] )

pfpro_process() effectue une transaction avec Payflow Pro.

Note : Lisez attentivement le "Payflow Pro Developers Guide" pour connaître les détails des autres paramètres.

Liste de paramètres

parameters

Tableau associatif contenant des paires clés/valeurs, qui seront encodées, puis passées au serveur.

address

Indique quel hôte contacter. Il est optionnel. Par défaut, il vaut test.signio.com : vous devrez probablement le remplacer par connect.signio.com pour effectuer de vraies transactions.

port

Spécifie le port de connexion. Par défaut, c'est 443, le port SSL standard.

timeout

Indique le temps de timeout à utiliser. Par défaut, c'est 30 secondes. Notez que ce timeout ne prend effet que lorsqu'une connexion a été établie avec un serveur : votre script peut potentiellement attendre indéfiniment en cas de problèmes DNS ou réseau.

proxy_address

Indique le nom du proxy SSL. Le sixième paramètre proxy_port indique le port à utiliser sur ce proxy.

proxy_port

Si nécessaire, spécifie le port du proxy SSL.

proxy_logon

Si nécessaire, spécifie le nom d'utilisateur à utiliser pour l'identification sur votre proxy SSL.

proxy_password

Si nécessaire, spécifie le mot de passe à utiliser pour l'identification sur votre proxy SSL.

Valeurs de retour

Retourne un tableau associatif de clés/valeurs contenant la réponse de la transaction.

Exemples

Exemple 1. Exemple avec Payflow Pro

<?php

pfpro_init();

$transaction = array('USER'    => 'mylogin',
                     'PWD'     => 'mypassword',
                     'PARTNER' => 'VeriSign',
                     'TRXTYPE' => 'S',
                     'TENDER'  => 'C',
                     'AMT'     => 1.50,
                     'ACCT'    => '4111111111111111',
                     'EXPDATE' => '0909'
                    );

$response = pfpro_process($transaction);

if (!$response) {
  die("Impossible d'établir un lien avec Verisign.\n");
}

echo "La réponse de Verisign était " . $response['RESULT'];
echo "C'est-à-dire : " . $response['RESPMSG'] . "\n";

echo "\nLa requête de transaction : ";
print_r($transaction);

echo "\nLa réponse : ";
print_r($response);

pfpro_cleanup();

?>

Précédent | Sommaire | Suivant
pfpro_process_raw | Niveau supérieur | pfpro_version


pfpro_version

(PHP 4 >= 4.0.2, PHP 5)

pfpro_version -- Retourne le numéro de version de Payflow Pro

Description

string pfpro_version ( void )

pfpro_version() retourne la version de la bibliothèque Payflow Pro. Au moment de rédaction de ce document, le numéro était L211.

Valeurs de retour

Retourne le numéro de la version, sous la forme d'une chaîne de caractères.

Précédent | Sommaire | Suivant
pfpro_process | Niveau supérieur | vpopmail


PostgreSQL

Manuel PHP
Précédent Suivant

CXXVII. PostgreSQL

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 multi-octets 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.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM |
pgsql.max_links | "-1" | PHP_INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.2.0.
pgsql.ignore_notice | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
pgsql.log_notice | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

pgsql.allow_persistent booléen

Autorise ou non les connexions persistantes Postgre.

pgsql.max_persistent entier

Le nombre maximum de connexions persistantes Postgre par processus.

pgsql.max_links entier

Le nombre maximum de connexions Postgre par processus, y compris les connexions persistantes.

pgsql.auto_reset_persistent entier

Détecte les connexions persistantes (ouvertes avec pg_pconnect()) rompues.

pgsql.ignore_notice entier

Active ou non l'affichage des notices PostgreSQL.

pgsql.log_notice entier

Active ou non l'enregistrement en fichier log des messages notices PostgreSQL. La directive PHP pgsql.ignore_notice doit être désactivée pour pouvoir enregistrer les messages de notices en fichier log.

Types de ressources

Il y a deux types de ressource utilisé dans le module PostgreSQL. La première est l'identifiant pour la connexion à la base de données et le second est une ressource qui contient le résultat d'une requête.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

PGSQL_ASSOC (entier)

Passée à pg_fetch_array(). Retourne un tableau associatif des noms et valeurs des champs.

PGSQL_NUM (entier)

Passée à pg_fetch_array(). Retourne un tableau à index numérique des numéros et valeurs des champs.

PGSQL_BOTH (entier)

Passée à pg_fetch_array(). Retourne un tableau des valeurs des champs qui est indexés numériquement (par le numéro des champs) et indexés associativement (par le nom des champs).

PGSQL_CONNECT_FORCE_NEW (entier)

Passée à pg_connect() pour forcer la création d'une nouvelle connexion, plutôt que de réutiliser une connexion identique existante.

PGSQL_CONNECTION_BAD (entier)

Retournée par pg_connection_status() indiquant que la connexion à la base de données est invalide.

PGSQL_CONNECTION_OK (entier)

Retournée par pg_connection_status() indiquant que la connexion à la base de données est valide.

PGSQL_SEEK_SET (entier)

Passée à pg_lo_seek(). Le positionnement commencera au début de l'objet.

PGSQL_SEEK_CUR (entier)

Passée à pg_lo_seek(). Le positionnement commencera à la position courante.

PGSQL_SEEK_END (entier)

Passée à pg_lo_seek(). Le positionnement commencera à la fin de l'objet.

PGSQL_EMPTY_QUERY (entier)

Retournée par pg_result_status(). La chaîne de caractères envoyée au serveur était vide.

PGSQL_COMMAND_OK (entier)

Retournée par pg_result_status(). Commande correctement complétée ne retournant aucune donnée.

PGSQL_TUPLES_OK (entier)

Retournée par pg_result_status(). Commande correctement complétée retournant des données (comme SELECT ou SHOW).

PGSQL_COPY_OUT (entier)

Retournée par pg_result_status(). Copie (à partir du serveur) de transfert de données commencée.

PGSQL_COPY_IN (entier)

Retournée par pg_result_status(). Copie (vers le serveur) de transfert de données commencée.

PGSQL_BAD_RESPONSE (entier)

Retournée par pg_result_status(). La réponse du serveur n'a pas été comprise.

PGSQL_NONFATAL_ERROR (entier)

Retournée par pg_result_status(). Une erreur non fatale (de niveau notice ou warning) s'est produite.

PGSQL_FATAL_ERROR (entier)

Retournée par pg_result_status(). Une erreur fatale s'est produite.

PGSQL_TRANSACTION_IDLE (entier)

Retournée par pg_transaction_Status(). La connexion est actuellement libre, aucune transaction en cours.

PGSQL_TRANSACTION_ACTIVE (entier)

Retournée par pg_transaction_status(). Une commande est en cours sur la connexion. Une requête a été envoyée sur la connexion et n'a toujours pas été complétée.

PGSQL_TRANSACTION_INTRANS (entier)

Retournée par pg_transaction_status(). La connexion est libre, dans un bloc de transaction.

PGSQL_TRANSACTION_INERROR (entier)

Retournée par pg_transaction_status(). La connexion est libre, dans un bloc de transaction échoué.

PGSQL_TRANSACTION_UNKNOWN (entier)

Retournée par pg_transaction_status(). La connexion est mauvaise.

PGSQL_DIAG_SEVERITY (entier)

Passée à pg_result_error_field(). La sévérité; le contenu du champ est ERROR, FATAL ou PANIC (dans un message d'erreur) ou WARNING, NOTICE, DEBUG, INFO ou LOG (dans un message d'avertissement) ou une traduction localisée parmi celles-ci. Toujours présent.

PGSQL_DIAG_SQLSTATE (entier)

Passée à pg_result_error_field(). Le code SQLSTATE pour cette erreur. Le code SQLSTATE identifie le type d'erreur qui s'est produite; cela peut être utilisé par des applications d'entrée pour effectuer des opérations spécifiques (comme la gestion d'erreur) en réponse à une erreur de base de données particulière. Ce champ ne peut être localisé et est toujours présent.

PGSQL_DIAG_MESSAGE_PRIMARY (entier)

Passée à pg_result_error_field(). Le champ d'erreur primaire interprétable pour l'utilisateur (normalement une ligne). Toujours présent.

PGSQL_DIAG_MESSAGE_DETAIL (entier)

Passée à pg_result_error_field(). Détail : un second optionnel message d'erreur apportant plus de détails à propos du problème. Peut être sur plusieurs lignes.

PGSQL_DIAG_MESSAGE_HINT (entier)

Passée à pg_result_error_field(). Conseil : une suggestion optionnelle qui indique que faire à propos du problème. Ceci est prévu d'être différent de l'erreur puisqu'elle offre un conseil (potentiellement inadéquat) plutôt que les faits véridiques. Peut être sur plusieurs lignes.

PGSQL_DIAG_STATEMENT_POSITION (entier)

Passée à pg_result_error_field(). Une chaîne de caractères contenant une valeur entière décimale indiquant une erreur de position du curseur en tant qu'index dans la requête originale. Le premier caractère a l'index 1 et les positions sont mesurées en caractères, non en octets.

PGSQL_DIAG_INTERNAL_POSITION (entier)

Passée à pg_result_error_field(). Ceci est défini étant la même chose que le champ PG_DIAG_STATEMENT_POSITION, mais cela est utilisé lorsque la position du curseur réfère à une commande générée internement plutôt que d'une envoyée par le client. Le champ PG_DIAG_INTERNAL_QUERY apparaîtra toujours lorsque ce champ apparaît.

PGSQL_DIAG_INTERNAL_QUERY (entier)

Passée à pg_result_error_field(). Le texte d'une commande générée internement échouée. Cela peut être, par exemple, une requête SQL envoyée par une fonction PL/pgSQL.

PGSQL_DIAG_CONTEXT (entier)

Passée à pg_result_error_field(). Une indication du contexte dans lequel l'erreur s'est produit. Présentement, ceci inclut une pile d'appel des traceback des fonctions procédurales actives ainsi que des requête générées à l'interne. Le traçage est une entrée par ligne, les plus récentes en premier.

PGSQL_DIAG_SOURCE_FILE (entier)

Passée à pg_result_error_field(). Le nom du fichier de l'emplacement du code source PostgreSQL où l'erreur a été reportée.

PGSQL_DIAG_SOURCE_LINE (entier)

Passée à pg_result_error_field(). Le nombre de ligne de l'emplacement du code source PostgreSQL où l'erreur a été reportée.

PGSQL_DIAG_SOURCE_FUNCTION (entier)

Passée à pg_result_error_field(). Le nom de la fonction de source code PostgreSQL reportant l'erreur.

PGSQL_ERRORS_TERSE (entier)

Passée à pg_set_error_verbosity(). Spécifie que les messages retournés incluent la sévérité, le texte primaire ainsi que la position seulement; ceci devrait entrer sur une seule ligne.

PGSQL_ERRORS_DEFAULT (entier)

Passée à pg_set_error_verbosity(). Le mode par défaut produit des messages qui incluent ce qui est plus haut et des détails en plus, conseil ou des champs contextes (ceci peut être sur plusieurs lignes).

PGSQL_ERRORS_VERBOSE (entier)

Passée à pg_set_error_verbosity(). Le mode verbeux inclut tous les champs disponibles.

PGSQL_STATUS_LONG (entier)

Passée à pg_result_status(). Indique que le code résultat est désiré numérique.

PGSQL_STATUS_STRING (entier)

Passée à pg_result_status(). Indique que le tag de résultat de commande est désiré textuel.

PGSQL_CONV_IGNORE_DEFAULT (entier)

Passée à pg_convert(). Ignore les valeurs par défaut dans la table pendant la conversion.

PGSQL_CONV_FORCE_NULL (entier)

Passée à pg_convert(). Utilise NULL à la place d'une chaîne de caractères vide.

PGSQL_CONV_IGNORE_DEFAULT (entier)

Passée à pg_convert(). Ignore la conversion de NULL à l'intérieur des colonnes NOT NULL.

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é. Si les extensions PHP PostreSQL 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.

Exemples

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 auteurs';
$result = pg_query($query) or die('Échec 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 resultset
pg_free_result($result);

// Ferme la connexion
pg_close($dbconn);
?>

Table des matières
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_convert -- Convertit des tableaux associatifs en une commande PostgreSQL
pg_copy_from -- Insère des lignes dans une table à partir d'un tableau
pg_copy_to -- Copie une table dans un tableau
pg_dbname -- Retourne le nom de la base de données PostgreSQL
pg_delete -- Efface des lignes PostgreSQL
pg_end_copy -- Synchronise avec le serveur PostgreSQL
pg_escape_bytea -- Protège une chaîne pour insertion dans un champ bytea
pg_escape_string -- Protège une chaîne de caractères pour l'insérer dans un champ texte
pg_execute -- 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_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 numérique
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_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_unlink -- Efface un objet de grande taille PostgreSQL
pg_lo_write -- Ecrit un objet de grande taille PostgreSQL
pg_meta_data -- Lit les métadonnées de la table PostgreSQL
pg_num_fields -- Retourne le nombre de champ
pg_num_rows -- Retourne le nombre de lignes PostgreSQL
pg_options -- Retourne les options PostgreSQL
pg_parameter_status -- Consulte un paramètre de configuration courant du serveur
pg_pconnect -- Établit une connexion PostgreSQL persistante
pg_ping -- Ping la connexion à la base
pg_port -- Retourne le numéro de port
pg_prepare -- Envoie une requête pour créer une requête préparée avec les paramètres donnés et attend l'exécution
pg_put_line -- Envoie une chaîne au serveur PostgreSQL
pg_query_params -- Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL
pg_query -- Exécute une requête PostgreSQL
pg_result_error_field -- Retourne un champ individuel d'un rapport d'erreur
pg_result_error -- Lit le message d'erreur associé à un résultat
pg_result_seek -- Modifie la ligne courant dans un résultat
pg_result_status -- Lit le statut du résultat
pg_select -- Effectue une sélection PostgreSQL
pg_send_execute -- Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s)
pg_send_prepare -- Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution
pg_send_query_params -- Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s)
pg_send_query -- Exécute une requête PostgreSQL asynchrone
pg_set_client_encoding -- Choisit l'encodage du client PostgreSQL
pg_set_error_verbosity -- Détermine la le degré des messages retournés par pg_last_error() et pg_result_error()
pg_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 le 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)

Précédent | Sommaire | Suivant
sql_regcase | Niveau supérieur | pg_affected_rows


pg_affected_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_affected_rows -- Retourne le nombre de lignes affectées

Description

int pg_affected_rows ( resource result )

pg_affected_rows() retourne le nombre de lignes affectées par les requêtes de type INSERT, UPDATE et DELETE.

Note : Auparavant, cette fonction s'appelait pg_cmdtuples().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Le nombre de lignes affectées par la requête. S'il n'y a pas de ligne affecté, la fonction retournera 0.

Exemples

Exemple 1. pg_affected_rows() example

<?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()
pg_query_params()
pg_execute()
pg_num_rows()

Précédent | Sommaire | Suivant
PostgreSQL | Niveau supérieur | pg_cancel_query


pg_cancel_query

(PHP 4 >= 4.2.0, PHP 5)

pg_cancel_query -- Annule une requête asynchrone

Description

bool pg_cancel_query ( resource connection )

pg_cancel_query() annule la requête asynchrone, démarrée avec
pg_send_query(),
pg_send_query_params() ou
pg_send_execute().
Vous ne pouvez pas annuler une requête démarrée avec pg_query().

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
pg_affected_rows | Niveau supérieur | pg_client_encoding


pg_client_encoding

(PHP 3 CVS only, PHP 4 >= 4.0.3, PHP 5)

pg_client_encoding -- Lit l'encodage du client

Description

string pg_client_encoding ( [resource connection] )

PostgreSQL supporte la conversion automatique entre le serveur et le client pour certains jeux de caractères. pg_client_encoding() retourne l'encodage du client. La chaîne de retour sera un des encodages standards de PostgreSQL.

Note : Cette fonction requiert PHP 4.0.3 ou plus récent et PostgreSQL version 7.0 ou plus récent. Si la bibliothèque libpq est compilée sans le support de l'encodage multi-octets, pg_client_encoding() retournera toujours SQL_ASCII. Le support de l'encodage dépend de la version de PostgreSQL. Référez-vous à la documentation de PostgreSQL sur les encodages supportés.

Auparavant, cette fonction s'appelait pg_clientencoding().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

L'encodage du client ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec pg_client_encoding()

<?php
// Assume $conn étant une connexion à une base de données ISO-8859-1
$encoding = pg_client_encoding($conn);

echo "L'encodage du client est : ", $encoding, "\n";
?>

L'exemple ci-dessus va afficher :

L'encodage du client est : ISO-8859-1

Voir aussi

pg_set_client_encoding()

Précédent | Sommaire | Suivant
pg_cancel_query | Niveau supérieur | pg_close


pg_close

(PHP 3, PHP 4, PHP 5)

pg_close -- Termine une connexion PostgreSQL

Description

bool pg_close ( [resource connection] )

pg_close() ferme la connexion au serveur PostgreSQL associé à connection.

Note : Il n'est généralement pas nécessaire de fermer une connexion non persistante, car elles sont automatiquement fermées à la fin d'un script.

Si des objets de grande taille ont été ouverts avec cette connexion, ne fermez pas la connexion avant d'avoir refermé les objets.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
pg_client_encoding | Niveau supérieur | pg_connect


pg_connect

(PHP 3, PHP 4, PHP 5)

pg_connect -- Établit une connexion PostgreSQL

Description

resource pg_connect ( string connection_string [, int connect_type] )

pg_connect() ouvre une connexion à une base de données PostgreSQL grâce à la chaîne de connexion connection_string.

Si un deuxième appel à pg_connect() est fait avec les mêmes arguments, aucune nouvelle connexion ne sera établie tant que vous passerez PGSQL_CONNECT_FORCE_NEW à connect_type, mais la connexion précédente sera retournée.

L'ancienne syntaxe $conn = pg_connect("host", "port", "options", "tty", "dbname") est obsolète.

Liste de paramètres

connection_string

La chaîne connection_string peut être vide pour utiliser tous les paramètres par défaut ou elle peut contenir un ou plusieurs paramètres de configuration séparés par des espaces. Chaque paramètre de configuration est sous la forme code = valeur. Les espaces autour du signe égal sont optionnels. Pour écrire une valeur vide ou une valeur contenant des espaces, entourez cette valeur avec des apostrophes, par exemple : code = 'une valeur'. Les apostrophes et les antislashs à l'intérieur de la valeur doivent être échappés par un antislash, c'est-à-dire \' et \\.

Les mot-clés actuellement reconnus sont : host, hostaddr, port, dbname, user, password, connect_timeout, options, tty (ignoré), sslmode, requiressl (obsolète, utilisez sslmode) et service. La liste de ces arguments dépend de la version de votre serveur PostgreSQL.

connect_type

Si PGSQL_CONNECT_FORCE_NEW est passé en argument, alors une nouvelle connexion sera créée, même si la chaîne connection_string est identique à celle de la connexion existante.

Valeurs de retour

Ressource de connexion PostgreSQL en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec pg_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
?>

Voir aussi

pg_pconnect()
pg_close()
pg_host()
pg_port()
pg_tty()
pg_options()
pg_dbname()

Précédent | Sommaire | Suivant
pg_close | Niveau supérieur | pg_connection_busy


pg_connection_busy

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_busy -- Vérifie si la connexion PostgreSQL est occupée

Description

bool pg_connection_busy ( resource connection )

pg_connection_busy() détermine si la connexion est occupée. Si elle est occupée, une requête a déjà été lancée, et est en cours. Si pg_get_result() est utilisée, elle sera alors bloquée.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Retourne TRUE si la connexion est occupée, sinon FALSE.

Exemples

Exemple 1. Exemple avec pg_connection_busy()

<?php
 $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");
 $bs = pg_connection_busy($dbconn);
 if ($bs) {
     echo 'La connexion est occupée';
 } else {
     echo 'La connexion est libre';
 }
?>

Voir aussi

pg_connection_status()
pg_get_result()

Précédent | Sommaire | Suivant
pg_connect | Niveau supérieur | pg_connection_reset


pg_connection_reset

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_reset -- Relance la connexion au serveur PostgreSQL

Description

bool pg_connection_reset ( resource connection )

pg_connection_reset() effectue une reconnexion au serveur, avec les mêmes paramètres que lors de la connexion précédente avec connection. Cette fonction est pratique pour le traitement des erreurs.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
pg_pconnect()
pg_connection_status()

Précédent | Sommaire | Suivant
pg_connection_busy | Niveau supérieur | pg_connection_status


pg_connection_status

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_status -- Lit le statut de la connexion PostgreSQL

Description

int pg_connection_status ( resource connection )

pg_connection_status() retourne le statut de la connexion connection.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

PGSQL_CONNECTION_OK ou PGSQL_CONNECTION_BAD.

Exemples

Exemple 1. Exemple avec pg_connection_status()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");
  $stat = pg_connection_status($dbconn);
  if ($stat === PGSQL_CONNECTION_OK) {
      echo 'Connexion ok';
  } else {
      echo 'Connexion erronée';
  }
?>

Voir aussi

pg_connection_busy()

Précédent | Sommaire | Suivant
pg_connection_reset | Niveau supérieur | pg_convert


pg_convert

(PHP 4 >= 4.3.0, PHP 5)

pg_convert -- Convertit des tableaux associatifs en une commande PostgreSQL

Description

array pg_convert ( resource connection, string table_name, array assoc_array [, int options] )

pg_convert() vérifie et convertit le tableau associatif assoc_array en une requête SQL valide. Pour que pg_convert() fonctionne, il faut que la table table_name existe, et contienne au moins autant de colonnes que le tableau assoc_array a d'éléments. Les noms des champs de table_name doivent correspondre aux index du tableau dans assoc_array. Retourne un tableau avec les valeurs converties en cas de succès, et sinon, FALSE.

Note : S'il y a des champs booléens dans table_name, n'utilisez pas la constante TRUE dans assoc_array. Elle sera convertie en chaîne de caractères 'TRUE' qui ne sera pas une entrée valide pour un champ booléen en PostgreSQL. Utilisez une de ces valeurs à la place : t, true, 1, y, yes.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Nom de la table sur pour laquelle les types seront convertis.

assoc_array

Données à être converties.

options

Un nombre de PGSQL_CONV_IGNORE_DEFAULT, PGSQL_CONV_FORCE_NULL ou PGSQL_CONV_IGNORE_NOT_NULL, combiné.

Valeurs de retour

Un tableau des valeurs converties ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec pg_convert()

<?php
  $dbconn = pg_connect('dbname=foo');

  $tmp = array(
      'auteur' => 'Joe Thackery',
      'annee' => 2005,
      'titre' => 'Ma Vie, par Joe Thackery'
  );

  $vals = pg_convert($dbconn, 'auteurs', $tmp);
?>

Voir aussi

pg_meta_data()

Précédent | Sommaire | Suivant
pg_connection_status | Niveau supérieur | pg_copy_from


pg_copy_from

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_from -- Insère des lignes dans une table à partir d'un tableau

Description

bool pg_copy_from ( resource connection, string table_name, array rows [, string delimiter [, string null_as]] )

pg_copy_from() insère les éléments du tableau rows dans une table. Cette fonction utilise la commande SQL interne COPY FROM.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Nom de la table dans laquelle rows sera copié.

rows

Un tableau de données à être copié à l'intérieur de table_name. Chaque valeur dans rows devient une ligne dans table_name. Chaque valeur dans rows devrait être une chaîne délimitée par des valeurs à insérer à l'intérieur de chaque champ. Les valeurs doivent être terminées par un saut à la ligne.

delimiter

Le marqueur qui sépare les valeurs pour chaque champ dans chaque élément de rows. La valeur par défaut est TAB.

null_as

Comment les valeurs NULL de SQL sont représentées dans rows. La valeur par défaut est \N ("\\N").

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
pg_convert | Niveau supérieur | pg_copy_to


pg_copy_to

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_to -- Copie une table dans un tableau

Description

array pg_copy_to ( resource connection, string table_name [, string delimiter [, string null_as]] )

pg_copy_to() copie la table table_name dans un tableau. Cette fonction utilise la commande interne SQL COPY TO pour insérer les tableaux.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Nom de la table à partir de laquelle les données dans rows seront copiées.

delimiter

Le marqueur qui sépare les valeurs pour chaque champ dans chaque élément de rows. La valeur par défaut est TAB.

null_as

Comment les valeurs NULL de SQL sont représentées dans rows. La valeur par défaut est \N ("\\N").

Valeurs de retour

Un tableau avec un élément pour chaque ligne de données COPY. La fonction retourne FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec pg_copy_to()

<?php
   $db = pg_connect("dbname=publisher") or die("Connexion impossible");

   $rows = pg_copy_to($db, $table_name);

   pg_query($db, "DELETE FROM $table_name");

   pg_copy_from($db, $table_name, $rows);
?>

Voir aussi

pg_copy_from()

Précédent | Sommaire | Suivant
pg_copy_from | Niveau supérieur | pg_dbname


pg_dbname

(PHP 3, PHP 4, PHP 5)

pg_dbname -- Retourne le nom de la base de données PostgreSQL

Description

string pg_dbname ( [resource connection] )

pg_dbname() retourne le nom de la base de données PostgreSQL associée à l'index de connexion connection.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne de type string contenant le nom de la base de données associée à la connexion connection ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec pg_dbname()

<?php
 error_reporting(E_ALL);

 pg_connect ("host=localhost port=5432 dbname=marie");
 echo pg_dbname(); // affiche marie
?>

Précédent | Sommaire | Suivant
pg_copy_to | Niveau supérieur | pg_delete


pg_delete

(PHP 4 >= 4.3.0, PHP 5)

pg_delete -- Efface des lignes PostgreSQL

Description

mixed pg_delete ( resource connection, string table_name, array assoc_array [, int options] )

pg_delete() efface les lignes de la table table_name, spécifiées par le tableau associatif assoc_array. Si option est spécifié, pg_convert() est appliqué à assoc_array avec cette option.

Liste de paramètres

connection

Ressource de connexion PostgreSQL.

table_name

Nom de la table depuis laquelle les lignes seront effacées.

assoc_array

Un tableau où les clés sont les noms des champs de la table table_name et où les valeurs sont les valeurs de ces champs qui sont à effacés.

options

Toute combinaison des valeurs suivantes : PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_EXEC ou PGSQL_DML_STRING. Si PGSQL_DML_STRING fait partie du paramètre options alors, la requête sera retournée.

Exemples

Exemple 1. Exemple avec pg_delete()

<?php
 $db = pg_connect ('dbname=foo');
 // C'est sans problème, car $_POST est convertit automatiquement
 $res = pg_delete($db, 'post_log', $_POST);
 if ($res) {
     echo "Les données POSTées ont été effacées : $res\n";
 } else {
     echo "Les données d'entrées sont erronées.\n";
 }
?>

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Voir aussi

pg_convert()

Précédent | Sommaire | Suivant
pg_dbname | Niveau supérieur | pg_end_copy


pg_end_copy

(PHP 4 >= 4.0.3, PHP 5)

pg_end_copy -- Synchronise avec le serveur PostgreSQL

Description

bool pg_end_copy ( [resource connection] )

pg_end_copy() synchronise le client PostgreSQL (normalement un processus serveur web) avec le serveur PostgreSQL, après une opération de copie faite par pg_put_line(). pg_end_copy() doit être utilisé, autrement le serveur PostgreSQL ne sera plus synchronisé avec le client et émettra une erreur.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
pg_delete | Niveau supérieur | pg_escape_bytea


pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_bytea -- Protège une chaîne pour insertion dans un champ bytea

Description

string pg_escape_bytea ( string data )

pg_escape_bytea() protège les caractères de la chaîne data avec le mode bytea. La chaîne protégée est retournée.

Note : Lorsque vous utilisez une commande SELECT avec des données de type bytea, PostgreSQL retourne des valeurs octales, préfixées avec des anti-slash '\' (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 multi-octets. 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

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.

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

Précédent | Sommaire | Suivant
pg_end_copy | Niveau supérieur | pg_escape_string


pg_escape_string

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_string -- Protège une chaîne de caractères pour l'insérer dans un champ texte

Description

string pg_escape_string ( string data )

pg_escape_string() protège une chaîne de caractères pour l'insérer dans la base de données. Elle retourne la chaîne ainsi protégée au format PostgreSQL. L'utilisation de cette fonction est recommandée, à la place de addslashes(). Si le type de la colonne est bytea, pg_escape_bytea() doit pluôt être utilisée.

Note : Cette fonction requiert PostgreSQL 7.2 ou plus récent.

Liste de paramètres

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.

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 anti-slashes)
$data = file_get_contents('letter.txt');

// Échappement des données
$escaped = pg_escape_string($data);

// Insertion dans la base de données
pg_query("INSERT INTO correspondence (name, data) VALUES ('My letter', '{$escaped}')");
?>

Voir aussi

pg_escape_bytea()

Précédent | Sommaire | Suivant
pg_escape_bytea | Niveau supérieur | pg_execute


pg_execute

(PHP 5 >= 5.1.0RC1)

pg_execute -- Envoie une requête pour exécuter une requête préparée avec les paramètres donnés et attend le résultat

Description

resource pg_execute ( resource connection, string stmtname, array params )

resource pg_execute ( string stmtname, array params )

Envoie une requête pour exécuter une requête préparée avec les paramètres donnés et attend le résultat.

pg_execute() est comme pg_query_params(), mais la commande qui sera exécutée est spécifiée en nommant une requête préalablement préparée, au lieu de donner une chaîne en tant que requête. Cette caractéristique permet aux commandes qui seront utilisées à plusieurs reprises d'être analysées et planifiées qu'une seule fois, plutôt que d'être exécutées chaque fois. La requête doit avoir été préalablement préparée dans la session courante. pg_execute() est supportée seulement avec les versions PostgreSQL 7.4 ou plus récentes; la commande échouera si vous l'utilisez avec des versions antérieures.

Les paramètres sont identiques à la fonction pg_query_params() à l'exception du nom de la requête préparée qui est donnée à la place de la requête sous forme de chaîne.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

stmtname

Le nom de la requête préparée à exécuter. Si une chaîne vide est spécifiée (""), alors la requête qui n'est pas nommée est exécutée. Le nom doit avoir été précédemment préparé en utilisant pg_prepare(), pg_send_prepare() ou une commande SQL PREPARE.

params

Un tableau de valeurs de paramètres pour substituer les variables $1, $2, etc. dans la requête préparée originale. Le nombre d'éléments présents dans le tableau doit concorder avec le nombre de variables à remplacer.

Avertissement

Les éléments sont convertis en chaînes de caractères en appelant cette fonction.

Valeurs de retour

Une ressource de résultats en cas de succès ou FALSE en cas d'échec.

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()
pg_send_prepare()
pg_query_params()

Précédent | Sommaire | Suivant
pg_escape_string | Niveau supérieur | pg_fetch_all_columns


pg_fetch_all

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_all -- Lit toutes les lignes d'un résultat

Description

array pg_fetch_all ( resource result )

pg_fetch_all() retourne un tableau qui contient toutes les lignes du résultat result.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Un tableau array de toutes les lignes dans le jeu de résultats. Chaque ligne est un tableau de valeurs des champs indexée par le nom des champs.

FALSE est retournée s'il n'y a pas de lignes dans le jeu de résultats ou si une erreur survient.

Exemples

Exemple 1. Exemple avec pg_fetch_all()

<?php
$conn = pg_pconnect ("dbname=publisher");
if (!$conn) {
  echo "Une erreur est survenue.\n";
  exit;
}

$result = pg_query ($conn, "SELECT * FROM auteurs");
if (!$result) {
  echo "Une erreur est survenue.\n";
  exit;
}

$arr = pg_fetch_all ($result);

var_dump($arr);

?>

Voir aussi

pg_fetch_row()
pg_fetch_array()
pg_fetch_object()
pg_fetch_result()

Précédent | Sommaire | Suivant
pg_fetch_all_columns | Niveau supérieur | pg_fetch_array


pg_fetch_array

(PHP 3 >= 3.0.1, PHP 4, PHP 5)

pg_fetch_array -- Lit une ligne de résultat PostgreSQL dans un tableau

Description

array pg_fetch_array ( resource result [, int row [, int result_type]] )

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.

Note : row est devenu optionnel depuis PHP 4.1.0.

Note : result_type a été ajouté en PHP 4.0.0.

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre d'autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées de 0 en montant. Si l'argument est omis, la ligne suivante est récupérée.

result_type

Paramètre optionnel qui contrôle comment sera indexé le array retourné. pg_fetch_array() est une constante, qui peut prendre les valeurs suivantes : PGSQL_ASSOC, PGSQL_NUM et PGSQL_BOTH. En utilisant PGSQL_NUM, pg_fetch_array() retourne un tableau avec des indices numériques, en utilisant PGSQL_ASSOC retourne uniquement des indices associatifs alors que, PGSQL_BOTH, la valeur par défaut, retourne à la fois des indices numériques et associatifs.

Valeurs de retour

Un tableau à indice numérique (commençant à 0), associatif (indexé avec le nom des champs) ou les deux. Chaque valeur dans le tableau est représentée comme une chaîne (string). Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Exemples

Exemple 1. Exemple avec pg_fetch_array()

<?php

$conn = pg_pconnect ("dbname=publisher");
if (!$conn) {
  echo "Erreur de connexion.\n";
  exit;
}

$result = pg_query ($conn, "SELECT auteur, email FROM auteurs");
if (!$result) {
  echo "Erreur durant la requête.\n";
  exit;
}

$arr = pg_fetch_array ($result, 0, PGSQL_NUM);
echo $arr[0] . " <- Ligne 1 Auteurs\n";
echo $arr[1] . " <- Ligne 1 E-mail\n";

// Depuis PHP 4.1.0, le paramètre row est optionnel ; NULL peut être passé à la place,
// pour passer un result_type. Les appels successifs à pg_fetch_array
// retournera la ligne suivante.
$arr = pg_fetch_array($result, NULL, PGSQL_ASSOC);
echo $arr["auteur"] . " <- Ligne 2 Auteur\n";
echo $arr["email"] . " <- Ligne 2 E-mail\n";

$arr = pg_fetch_array($result);
echo $arr["auteur"] . " <- Ligne 3 Auteur\n";
echo $arr[1] . " <- Ligne 3 E-mail\n";

?>

Voir aussi

pg_fetch_row()
pg_fetch_object()
pg_fetch_result()

Précédent | Sommaire | Suivant
pg_fetch_all | Niveau supérieur | pg_fetch_assoc


pg_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_assoc -- Lit une ligne de résultat PostgreSQL sous forme de tableau numérique

Description

array pg_fetch_assoc ( resource result [, int row] )

pg_fetch_assoc() retourne un tableau associatif qui contient la ligne en cours dans le résultat result.

pg_fetch_assoc() est équivalent d'appeler pg_fetch_row() avec PGSQL_ASSOC comme troisième paramètre (qui est optionnel). Cela retournera seulement un tableau associatif. Si vous avez besoin d'indices numériques, utilisez pg_fetch_row().

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

pg_fetch_assoc() n'est pas significativement plus lente que pg_fetch_row() et elle apporte un confort d'utilisation appréciable.

Note : row est devenu optionnel depuis PHP 4.1.0.

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées de 0 en montant. Si l'argument est omis, 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 (string). Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Exemples

Exemple 1. Exemple avec pg_fetch_assoc()

<?php
$conn = pg_pconnect ("dbname=publisher");
if (!$conn) {
  echo "Une erreur est survenue.\n";
  exit;
}

$result = pg_query ($conn, "SELECT id, auteur, email FROM auteurs");
if (!$result) {
  echo "Une erreur est survenue.\n";
  exit;
}

while ($row = pg_fetch_assoc($result)) {
  echo $row['id'];
  echo $row['auteur'];
  echo $row['email'];
}
?>

Voir aussi

pg_fetch_row()
pg_fetch_array()
pg_fetch_object()
pg_fetch_result()

Précédent | Sommaire | Suivant
pg_fetch_array | Niveau supérieur | pg_fetch_object


pg_fetch_object

(PHP 3 >= 3.0.1, PHP 4, PHP 5)

pg_fetch_object -- Lit une ligne de résultat PostgreSQL dans un objet

Description

object pg_fetch_object ( resource result [, int row [, int result_type]] )

object pg_fetch_object ( resource result [, int row [, string class_name [, array params]]] )

pg_fetch_object() retourne un objet ainsi que ses propriétés qui correspond aux noms des champs de la ligne. La fonction peut optionnellement instancier un objet d'une classe spécifique et passer les paramètres au constructeur de cette classe.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Du point de vue vitesse, la fonction est identique à pg_fetch_array() et est presque aussi rapide que pg_fetch_row() (la différence est insignifiante).

Note : row est devenu optionnel depuis PHP 4.1.0.

Note : La valeur par défaut de result_type a changé pour passer de PGSQL_BOTH à PGSQL_ASSOC depuis PHP 4.3.0, depuis que les index numériques sont devenus illégaux.

Note : class_name et params ont été ajoutés dans PHP 5.0. L'ancienne syntaxe avec result_type existe toujours pour des compatibilités antérieures.

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées de 0 en montant. Si l'argument est omis, la ligne suivante est récupérée.

result_type

Ignoré et obsolète. Valeur par défaut : PGSQL_ASSOC

class_name

Le nom de la classe à instancier, fixe les propriétés de celles-ci et ses valeurs de retour. Si rien n'est spécifié, un objet de style stdClass est retourné.

params

Paramètre optionnel de type array pour passer des arguments au constructeur de la classe class_name.

Valeurs de retour

Un objet de type object avec les attributs pour chaque champ dans le jeu de résultats. Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Exemples

Exemple 1. Exemple avec pg_fetch_object()

<?php

$database = 'store';

$db_conn = pg_connect("host=localhost port=5432 dbname=$database");
if (!$db_conn) {
  echo "La connexion a la base $database a échouée\n";
  exit;
}

$qu = pg_query($db_conn, "SELECT * FROM livres ORDER BY auteur");

while ($data = pg_fetch_object($qu)) {
  echo $data->auteur . " (";
  echo $data->annee . "): ";
  echo $data->titre . "<br />";
}

pg_free_result($qu);
pg_close($db_conn);

?>

Voir aussi

pg_query()
pg_fetch_array()
pg_fetch_assoc()
pg_fetch_row()
pg_fetch_result()

Précédent | Sommaire | Suivant
pg_fetch_assoc | Niveau supérieur | pg_fetch_result


pg_fetch_result

(PHP 4 >= 4.2.0, PHP 5)

pg_fetch_result -- Retourne les valeurs d'un résultat

Description

string pg_fetch_result ( resource result, int row, mixed field )

string pg_fetch_result ( resource result, mixed field )

pg_fetch_result() retourne la valeur d'une ligne et d'un champ (colonne) en particulier à partir d'un ressource de résultat PostgreSQL.

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées de 0 en montant. Si l'argument est omis, la ligne suivante est récupérée.

field

Une chaîne de type string représentant le nom du champ (colonne) à récupérer, sinon un entier de type int représentant le numéro du champ à récupérer. Les champs sont numérotés de 0 en montant.

Valeurs de retour

Les booléens sont retournés comme des "t" ou "f". Tous les autres types, y compris les tableaux, sont retournés sous forme de chaînes formatées, de la même manière que PostgreSQL vous les afficherait dans le client psql. Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Exemples

Exemple 1. Exemple avec pg_fetch_result()

<?php
$db = pg_connect("dbname=users user=me") || die();

$res = pg_query($db, "SELECT 1 UNION ALL SELECT 2");

$val = pg_fetch_result($res, 1, 0);

echo "Premier champ dans la deuxième ligne est : ", $val, "\n";
?>

L'exemple ci-dessus va afficher :

Premier champ dans la deuxième ligne est : 2

Voir aussi

pg_query()
pg_fetch_array()

Précédent | Sommaire | Suivant
pg_fetch_object | Niveau supérieur | pg_fetch_row


pg_fetch_row

(PHP 3 >= 3.0.1, PHP 4, PHP 5)

pg_fetch_row -- Lit une ligne dans un tableau

Description

array pg_fetch_row ( resource result [, int row] )

pg_fetch_row() lit une ligne dans le résultat associé à l'index result.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Note : row est devenu optionnel depuis PHP 4.1.0.

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées de 0 en montant. Si l'argument est omis, la ligne suivante est récupérée.

Valeurs de retour

Un tableau de type array, indexé de 0 en montant, avec chaque valeur représentée comme une chaîne (string). Les valeurs NULL de la base de données sont retournées NULL.

FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.

Exemples

Exemple 1. Exemple avec pg_fetch_row()

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Une erreur est survenue.\n";
  exit;
}

$result = pg_query($conn, "SELECT auteur, email FROM auteurs");
if (!$result) {
  echo "Une erreur est survenue.\n";
  exit;
}

while ($row = pg_fetch_row($result)) {
  echo "Auteur : $row[0]  E-mail : $row[1]";
  echo "<br />\n";
}

?>

Voir aussi

pg_query()
pg_fetch_array()
pg_fetch_object()
pg_fetch_result()

Précédent | Sommaire | Suivant
pg_fetch_result | Niveau supérieur | pg_field_is_null


pg_field_is_null

(PHP 4 >= 4.2.0, PHP 5)

pg_field_is_null -- Teste si un champ PostgreSQL est à NULL

Description

int pg_field_is_null ( resource result, int row, mixed field )

int pg_field_is_null ( resource result, mixed field )

pg_field_is_null() teste si un champ dans une ressource de résultat est NULL.

Note : Auparavant, cette fonction s'appelait pg_fieldisnull().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne à récupérer. Les lignes sont numérotées de 0 en montant. Si l'argument est omis, la ligne suivante est récupérée.

field

Numéro du champ (commençant à 0) de type int ou le nom du champ de type string.

Valeurs de retour

Retourne 1 si le champ de la ligne donnée est NULL, 0 s'il n'est pas NULL. FALSE est retournée si la ligne n'est pas dans le tableau ou tout autre erreur.

Exemples

Exemple 1. Exemple avec pg_field_is_null()

<?php
    $dbconn = pg_connect("dbname=publisher") or die ("Connexion impossible");
    $res = pg_query($dbconn, "select * from auteurs where auteur = 'Orwell'");
    if ($res) {
        if (pg_field_is_null($res, 0, "annee") == 1) {
            echo "La valeur du champ \"annee\" est null.\n";
        }
        if (pg_field_is_null($res, 0, "annee") == 0) {
            echo "La valeur du champ \"annee\" n'est pas null.\n";
        }
    }
?>

Précédent | Sommaire | Suivant
pg_fetch_row | Niveau supérieur | pg_field_name


pg_field_name

(PHP 4 >= 4.2.0, PHP 5)

pg_field_name -- Retourne le nom d'un champ PostgreSQL

Description

string pg_field_name ( resource result, int field_number )

pg_field_name() retourne le nom du champ qui occupe la colonne numéro field_number dans le résultat result. La numérotation des champs commence à 0.

Note : Auparavant, cette fonction s'appelait pg_fieldname().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_number

Numéro du champ, commençant à 0.

Valeurs de retour

Le nom du champ ou FALSE en cas d'erreur.

Exemples

Exemple 1. Récupération d'informations des champs

<?php
 $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

 $res = pg_query($dbconn, "select * from auteurs where auteur = 'Orwell'");
 $i = pg_num_fields($res);
 for ($j = 0; $j < $i; $j++) {
     echo "colonne $j\n";
     $fieldname = pg_field_name($res, $j);
     echo "Champ : $fieldname\n";
     echo "Taille affichée : ".pg_field_prtlen($res, $fieldname)." caractères\n";
     echo "Taille de stockage : ".pg_field_size($res, $j)." octets\n";
     echo "Type de champ : ".pg_field_type($res, $j)." \n\n";
 }
?>

L'exemple ci-dessus va afficher :

colonne 0
Champ : auteur
Taille affichée : 6 caractères
Taille de stockage : -1 octets
Type de champ : varchar

colonne 1
Champ : annee
Taille affichée : 4 caractère
Taille de stockage : 2 octets
Type de champ : int2

colonne 2
Champ : titre
Taille affichée : 24 caractères
Taille de stockage : -1 octets
Type de champ : varchar

Voir aussi

pg_field_num()

Précédent | Sommaire | Suivant
pg_field_is_null | Niveau supérieur | pg_field_num


pg_field_num

(PHP 4 >= 4.2.0, PHP 5)

pg_field_num -- Retourne le numéro d'une colonne

Description

int pg_field_num ( resource result, string field_name )

pg_field_num() retourne le numéro de la colonne, dont le nom est field_name, dans le résultat result.

Note : Auparavant, cette fonction s'appelait pg_fieldnum().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_name

Le nom du champ.

Valeurs de retour

Le numéro du champ (commençant à 0) ou -1 en cas d'erreur.

Exemples

Exemple 1. Récupération d'informations des champs

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  $res = pg_query($dbconn, "select auteur, annee, titre from auteurs where auteur = 'Orwell'");

  echo "Le numéro de la colonne 'titre' est : ", pg_field_num($res, 'titre');
?>

L'exemple ci-dessus va afficher :

Le numéro de la colonne 'titre' est : 2

Voir aussi

pg_field_name()

Précédent | Sommaire | Suivant
pg_field_name | Niveau supérieur | pg_field_prtlen


pg_field_prtlen

(PHP 4 >= 4.2.0, PHP 5)

pg_field_prtlen -- Retourne la taille imprimée

Description

int pg_field_prtlen ( resource result, int row_number, mixed field_name_or_number )

int pg_field_prtlen ( resource result, mixed field_name_or_number )

pg_field_prtlen() retourne la taille imprimée (nombre de caractères) d'une valeur donnée dans un résultat PostgreSQL. La numérotation des lignes commence à 0. pg_field_prtlen() retourne -1 en cas d'erreur.

Le paramètre field_name_or_number peut être passé soit en tant qu'entier, soit en tant que chaîne de caractères. S'il est passé en tant qu'entier, PHP l'identifie comme le numéro d'un champ, sinon, comme le nom d'un champ.

Voir l'exemple donné à la page de la documentation de la fonction pg_field_name().

Note : Auparavant, cette fonction s'appelait pg_fieldprtlen().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

row

Numéro de la ligne dans le résultat. Les lignes sont numérotées à partir de 0 en montant. Si ce paramètre n'est pas fourni, la ligne en cours est récupérée.

Valeurs de retour

Le nombre de caractères imprimés ou FALSE en cas d'erreur.

Exemples

Exemple 1. Récupération d'informations à propos des champs

<?php
  $dbconn = pg_connect("dbname=editeur") or die("Connexion impossible");

  $res = pg_query($dbconn, "select * from auteurs where auteur = 'Orwell'");
  $i = pg_num_fields($res);
  for ($j = 0; $j < $i; $j++) {
      echo "colonne $j\n";
      $fieldname = pg_field_name($res, $j);
      echo "nom champ : $fieldname\n";
      echo "taille affichage : " . pg_field_prtlen($res, $fieldname) . " caractères\n";
      echo "taille enregistrement : " . pg_field_size($res, $j) . " octets\n";
      echo "type champ : " . pg_field_type($res, $j) . " \n\n";
  }
?>

L'exemple ci-dessus va afficher :

colonne 0
nom champ : auteur
taille affichage : 6 caractères
taille enregistrement : -1 octets
type champ : varchar

colonne 1
nom champ : annee
taille affichage : 4 caractères
taille enregistrement : 2 octets
type champ : int2

colonne 2
nom champ : titre
taille affichage : 24 caractères
taille enregistrement : -1 octets
type champ : varchar

Voir aussi

pg_field_size()

Précédent | Sommaire | Suivant
pg_field_num | Niveau supérieur | pg_field_size


pg_field_size

(PHP 4 >= 4.2.0, PHP 5)

pg_field_size -- Retourne la taille interne de stockage d'un champ donné

Description

int pg_field_size ( resource result, int field_number )

pg_field_size() retourne la taille interne de stockage d'un champ donné, en octets.

Note : Auparavant, cette fonction s'appelait pg_fieldsize().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_number

Numéro du champ, commençant à 0.

Valeurs de retour

La taille du stockage interne d'un champ (en octets). -1 signifie un champ à grandeur variable. FALSE est retourné en cas d'erreur.

Exemples

Exemple 1. Récupération d'informations des champs

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  $res = pg_query($dbconn, "select * from auteurs where auteur = 'Orwell'");
  $i = pg_num_fields($res);
  for ($j = 0; $j < $i; $j++) {
      echo "colonne $j\n";
      $fieldname = pg_field_name($res, $j);
      echo "Nom du champ : $fieldname\n";
      echo "Taille pour l'affichage : " . pg_field_prtlen($res, $fieldname) . " caractères\n";
      echo "Taille pour le stockage : " . pg_field_size($res, $j) . " octets\n";
      echo "Type du champ : " . pg_field_type($res, $j) . " \n\n";
  }
?>

L'exemple ci-dessus va afficher :

colonne 0
Nom du champ : auteur
Taille pour l'affichage : 6 caractères
Taille pour le stockage : -1 octets
Type du champ : varchar

colonne 1
Nom du champ : annee
Taille pour l'affichage : 4 caractères
Taille pour le stockage : 2 octets
Type du champ : int2

colonne 2
Nom du champ : titre
Taille pour l'affichage : 24 caractères
Taille pour le stockage : -1 octets
Type du champ : varchar

Voir aussi

pg_field_prtlen()
pg_field_type()

Précédent | Sommaire | Suivant
pg_field_prtlen | Niveau supérieur | pg_field_table


pg_field_type_oid

(PHP 5 >= 5.1.0RC1)

pg_field_type_oid -- Retourne le type ID (OID) pour le numéro du champ correspondant

Description

int pg_field_type_oid ( resource result, int field_number )

pg_field_type_oid() retourne un entier contenant le OID du type de base du champ field_number donné dans la ressource PostgreSQL result.

Vous pouvez obtenir plus d'informations à propos du type de champ en interrogeant la table système de PostgreSQL pg_type() avec le OID obtenu par cette fonction.

Note : Si le champ utilise un domaine PostgreSQL (plutôt que d'un type basic), c'est le OID du domaine sous-jacent qui est retourné, plutôt que le OID du domaine en tant que tel.

Liste de paramètres

result

Ressource de résultats de PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_number

Numéro du champ, commençant à 0.

Valeurs de retour

Le OID du type de base du champ ou FALSE est retourné en cas d'erreur.

Exemples

Exemple 1. Récupération d'informations des champs

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  // On assume que 'titre' est un type varchar
  $res = pg_query($dbconn, "select titre from auteurs where auteur = 'Orwell'");

  echo "Type du champ titre OID : ", pg_field_type_oid($res, 0);
?>

L'exemple ci-dessus va afficher :

Type du champ titre OID : 1043

Voir aussi

pg_field_type()
pg_field_prtlen()
pg_field_name()

Précédent | Sommaire | Suivant
pg_field_table | Niveau supérieur | pg_field_type


pg_field_type

(PHP 4 >= 4.2.0, PHP 5)

pg_field_type -- Retourne le type d'un champ PostgreSQL donné par index

Description

string pg_field_type ( resource result, int field_number )

pg_field_type() retourne une chaîne contenant le type de base du champ donné par son index field_number.

Note : Si le champ utilise un domaine PostgreSQL (plutôt que d'un type basic), c'est le nom du domaine sous-jacent qui est retourné, plutôt que le nom du domaine en tant que tel.

Note : Auparavant, cette fonction s'appelait pg_fieldtype().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

field_number

Numéro du champ, commençant à 0.

Valeurs de retour

Une chaîne de type string contenant le nom de base du type de champ ou FALSE en cas d'erreur.

Exemples

Exemple 1. Récupération d'informations des champs

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  // On assume que 'titre' est un type varchar
  $res = pg_query($dbconn, "select titre from auteurs where auteur = 'Orwell'");

  echo "Type du champ titre : ", pg_field_type($res, 0);
?>

L'exemple ci-dessus va afficher :

Type du champ titre : varchar

Voir aussi

pg_field_prtlen()
pg_field_name()
pg_field_type_oid()

Précédent | Sommaire | Suivant
pg_field_type_oid | Niveau supérieur | pg_free_result


pg_free_result

(PHP 4 >= 4.2.0, PHP 5)

pg_free_result -- Libère la mémoire

Description

bool pg_free_result ( resource result )

pg_free_result() libère la mémoire et les données associées avec le jeu de résultats PostgreSQL associé.

pg_free_result() n'est vraiment utile que si vous risquez d'utiliser trop de mémoire durant votre script. La mémoire occupée par les résultats est automatiquement libérée à la fin du script.

Note : Auparavant, cette fonction s'appelait pg_freeresult().

Liste de paramètres

result

Ressource de résultats PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (et quelques autres).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
pg_query_params()
pg_execute()

Précédent | Sommaire | Suivant
pg_field_type | Niveau supérieur | pg_get_notify


pg_get_notify

(PHP 4 >= 4.3.0, PHP 5)

pg_get_notify -- Lit le message SQL NOTIFY

Description

array pg_get_notify ( resource connection [, int result_type] )

pg_get_notify() reçoit le message de NOTIFY envoyé par une commande SQL NOTIFY. Pour lire le message associé, utilisez la commande LISTEN.

Liste de paramètres

connection

Ressource de connexion PostgreSQL.

result_type

Un paramètre optionnel qui contrôle la façon dont le tableau sera indexé. result_type est une constante et peut prendre les valeurs suivantes : PGSQL_ASSOC, PGSQL_NUM et PGSQL_BOTH. L'utilisation de PGSQL_NUM, pg_get_notify() retournera un tableau avec des indices numériques, l'utilisation de PGSQL_ASSOC retournera un tableau associatif tandis que PGSQL_BOTH, la valeur par défaut, retournera des indices numériques et associatifs.

Valeurs de retour

Un tableau contenant le nom du message NOTIFY. Sinon, si aucun NOTIFY n'est en attente, alors FALSE sera retourné.

Exemples

Exemple 1. Exemple avec pg_get_notify()

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Une erreur est survenue.\n";
  exit;
}

// ecoute le message 'author_updated' des autres processus
pg_query($conn, 'LISTEN author_updated;');
$notify = pg_get_notify($conn);
if (!$notify) {
  echo "Aucun message\n";
} else {
  print_r($notify);
}
?>

Voir aussi

pg_get_pid()

Précédent | Sommaire | Suivant
pg_free_result | Niveau supérieur | pg_get_pid


pg_get_pid

(PHP 4 >= 4.3.0, PHP 5)

pg_get_pid -- Lit l'identifiant de processus du serveur PostgreSQL

Description

int pg_get_pid ( resource connection )

pg_get_pid() lit l'identifiant de processus du serveur PostgreSQL. L'identifiant de processus est pratique pour vérifier si un message de NOTIFY a été envoyé via pg_get_notify() par un autre processus ou pas.

Liste de paramètres

connection

Une ressource de connexion PostgreSQL

Valeurs de retour

L'identifiant du processus du serveur.

Exemples

Exemple 1. Exemple avec pg_get_pid()

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Une erreur est survenue.\n";
  exit;
}

// PID du serveur. Utilisez alors le PID avec pg_get_notify()
$pid = pg_get_pid($conn);
?>

Voir aussi

pg_get_notify()

Précédent | Sommaire | Suivant
pg_get_notify | Niveau supérieur | pg_get_result


pg_get_result

(PHP 4 >= 4.2.0, PHP 5)

pg_get_result -- Lit un résultat PostgreSQL asynchrone

Description

resource pg_get_result ( [resource connection] )

pg_get_result() lit la ressource de résultat d'une
requête asynchrone exécutée par pg_send_query(),
pg_send_query_params() ou
pg_send_execute().

pg_send_query() et les autres fonctions de requête asynchrone peuvent envoyer plusieurs requêtes à un serveur PostgreSQL et pg_get_result() est utilisé pour obtenir chaque résultat de requête, un par un.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

La resource de résultat ou FALSE s'il n'y a plus de résultat disponible.

Exemples

Exemple 1. Exemple avec pg_get_result()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from auteurs; select count(*) from auteurs;");
  }

  $res1 = pg_get_result($dbconn);
  echo "Premier appel à pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 a $rows1 enregistrements\n\n";

  $res2 = pg_get_result($dbconn);
  echo "Second appel à pg_get_result(): $res2\n";
  $rows2 = pg_num_rows($res2);
  echo "$res2 a $rows2 enregistrements\n";
?>

L'exemple ci-dessus va afficher :

Premier appel à pg_get_result(): Resource id #3
Resource id #3 a 3 enregistrements

Second appel à pg_get_result(): Resource id #4
Resource id #4 a 1 enregistrements

Voir aussi

pg_send_query()

Précédent | Sommaire | Suivant
pg_get_pid | Niveau supérieur | pg_host


pg_host

(PHP 3, PHP 4, PHP 5)

pg_host -- Retourne le nom d'hôte

Description

string pg_host ( [resource connection] )

pg_host() retourne le nom d'hôte associé à l'index de connexion PostgreSQL.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne contenant le nom de l'ordinateur hôte de connection ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec pg_host()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Correctement connecté à : " . pg_host($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Voir aussi

pg_connect()
pg_pconnect()

Précédent | Sommaire | Suivant
pg_get_result | Niveau supérieur | pg_insert


pg_insert

(PHP 4 >= 4.3.0, PHP 5)

pg_insert -- Insère un tableau dans une table

Description

mixed pg_insert ( resource connection, string table_name, array assoc_array [, int options] )

pg_insert() insère le tableau assoc_array dans la table table_name. Si options est spécifiée, pg_convert() s'applique à assoc_array avec l'option spécifiée.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

connection

Une ressource de connexion PostgreSQL.

table_name

Nom de la table dans laquelle les lignes seront insérées. La table table_name doit avoir au moins autant de colonnes que assoc_array a d'éléments.

assoc_array

Un tableau dont les clés sont les noms des champs dans la table table_name, et où les valeurs sont les valeurs de ces champs qui seront insérés.

options

Toutes combinaisons de constantes parmis PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_EXEC, PGSQL_DML_ASYNC ou PGSQL_DML_STRING. Si PGSQL_DML_STRING fait partie du paramètre options, alors la requête sera retournée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Retourne une chaîne de caractères si PGSQL_DML_STRING est passé via le paramètre options.

Exemples

Exemple 1. Exemple avec pg_insert()

<?php
  $db = pg_connect ('dbname=foo');
  // C'est sécuritaire, car $_POST est convertit automatiquement
  $res = pg_insert($db, 'post_log', $_POST);
  if ($res) {
      echo "Les données POSTées ont pu être enregistrées avec succès.\n";
  } else {
      echo "Il y a un problème avec les données.\n";
  }
?>

Voir aussi

pg_convert()

Précédent | Sommaire | Suivant
pg_host | Niveau supérieur | pg_last_error


pg_last_error

(PHP 4 >= 4.2.0, PHP 5)

pg_last_error -- Lit le dernier message d'erreur sur la connexion

Description

string pg_last_error ( [resource connection] )

pg_last_error() retourne le dernier message d'erreur pour une connexion connection.

Les messages d'erreur peuvent être écrasés par des appels internes à l'extension PostgreSQL (libpq) : il se peut que le message retourné ne soit pas approprié, notamment si plusieurs erreurs ont eu lieu dans le module.

Utilisez pg_result_error(),
pg_result_error_field(),
pg_result_status() et
pg_connection_status() pour améliorer la gestion
des erreurs.

Note : Auparavant, cette fonction s'appelait pg_errormessage().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne de caractères contenant le dernier message d'erreur sur la connexion connection ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec pg_last_error()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  // Requête qui échoue
  $res = pg_query($dbconn, "select * from doesnotexist");

  echo pg_last_error($dbconn);
?>

Voir aussi

pg_result_error()
pg_result_error_field()

Précédent | Sommaire | Suivant
pg_insert | Niveau supérieur | pg_last_notice


pg_last_notice

(PHP 4 >= 4.0.6, PHP 5)

pg_last_notice -- Retourne la dernière note du serveur PostgreSQL

Description

string pg_last_notice ( resource connection )

pg_last_notice() retourne la dernière note du serveur PostgreSQL sur la connexion connection spécifiée. Le serveur PostgreSQL envoie des notes dans plusieurs cas, par exemple lors de création d'une colonne SERIAL dans une table.

Avec pg_last_notice(), vous pouvez éviter des requêtes inutiles en vérifiant si des notes sont liées ou pas à votre transaction.

Avertissement

Cette fonction est EXPERIMENTALE et elle n'est pas complètement implémentée. pg_last_notice() a été ajoutée en PHP 4.0.6. Cependant, PHP 4.0.6 avait un problème avec la gestion des notes. L'utilisation du module PostgreSQL avec PHP 4.0.6 n'est pas recommandé, même si vous n'utilisez pas pg_last_notice().

Cette fonction est totalement implémentée en PHP 4.3.0. Les versions plus anciennes de PHP ignorent les données de connexion au serveur.

Le suivi des notes peut être rendu optionnel en mettant à 1 la directive de configuration pgsql.ignore_notice du fichier php.ini, depuis PHP 4.3.0.

L'enregistrement des notes peut être rendu optionnel en mettant la directive de configuration pgsql.log_notice du php.ini à 0, à partir de PHP 4.3.0. À moins que pgsql.ignore_notice ne soit à 0, les notes ne seront pas enregistrées.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Une chaîne de caractères contenant la dernière note sur la connexion connection ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec pg_last_error()

<?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()
pg_last_error()

Précédent | Sommaire | Suivant
pg_last_error | Niveau supérieur | pg_last_oid


pg_last_oid

(PHP 4 >= 4.2.0, PHP 5)

pg_last_oid -- Retourne l'identifiant de la dernière ligne

Description

string pg_last_oid ( resource result )

pg_last_oid() sert à récupérer le OID assigné à une ligne insérée.

Le champ OID est devenu optionnel depuis PostgreSQL 7.2 et ne sera plus présent par défaut dans PostgreSQL 8.1. Lorsque le champ OID n'est pas présent dans la table, le programmeur doit utiliser pg_result_status() pour vérifier si la ligne a été correctement insérée.

Pour obtenir la valeur d'un champ SERIAL dans une ligne insérée, il est nécessaire d'utiliser la fonction CURRVAL de PostgreSQL en nommant la séquence à qui la dernière valeur est requise. Si le nom de la séquence est inconnu, la fonction PostgreSQL 8.0 pg_get_serial_sequence est nécessaire.

PostgreSQL 8.1 a une fonction LASTVAL qui retourne la valeur de la séquence la plus récemment utilisée de la session. Ceci permet d'éviter de nommer la séquence, la table ou la colonne.

Note : Auparavant, cette fonction s'appelait pg_getlastoid().

Liste de paramètres

result

Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Une chaîne de caractères contenant le OID assigné à la plus récente ligne insérée dans la connexion connection spécifiée ou FALSE en cas d'erreur ou de OID indisponible.

Exemples

Exemple 1. Exemple avec pg_last_oid()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

$res1 = pg_query("CREATE TABLE test (a INTEGER) WITH OIDS");

$res2 = pg_query("INSERT INTO test VALUES (1)");

$oid = pg_last_oid($res2);
?>

Voir aussi

pg_query()
pg_result_status()

Précédent | Sommaire | Suivant
pg_last_notice | Niveau supérieur | pg_lo_close


pg_lo_close

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_close -- Ferme un objet de grande taille PostgreSQL

Description

bool pg_lo_close ( resource large_object )

pg_lo_close() ferme un objet de type Inversion Large Object. large_object est un descripteur de fichier, obtenu avec pg_lo_open().

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note : Auparavant, cette fonction s'appelait pg_loclose().

Liste de paramètres

result

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
pg_lo_create()
pg_lo_import()

Précédent | Sommaire | Suivant
pg_last_oid | Niveau supérieur | pg_lo_create


pg_lo_create

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_create -- Crée un objet de grande taille PostgreSQL

Description

int pg_lo_create ( [resource connection] )

pg_lo_create() crée un objet de type Inversion Large Object 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 (lo), il est nécessaire de le faire dans une transaction.

Au lieu d'utiliser l'interface d'objet de grande taille ((qui n'a aucun contrôle d'accès et qui est encombrant à utiliser), essayez la colonne de type bytea de PostgreSQL et pg_escape_bytea().

Note : Auparavant, cette fonction s'appelait pg_locreate().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Un objet large OID ou FALSE en cas d'erreur.

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

Précédent | Sommaire | Suivant
pg_lo_close | Niveau supérieur | pg_lo_export


pg_lo_export

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_export -- Exporte un objet de grande taille vers un fichier

Description

bool pg_lo_export ( resource connection, int oid, string pathname )

bool pg_lo_export ( int oid, string pathname )

pg_lo_export() prend un objet de grande taille de la base de données PostgreSQL et sauvegarde son contenu dans un fichier local au système.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note : Auparavant, cette fonction s'appelait pg_loexport().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

oid

Le OID de l'objet de grande taille dans la base de données.

pathname

Le chemin d'accès complet ainsi que le fichier dans lequel il sera écrit l'objet de grande taille sur le système du client.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
pg_lo_create | Niveau supérieur | pg_lo_import


pg_lo_import

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_import -- Importe un objet de grande taille depuis un fichier

Description

int pg_lo_import ( resource connection, string pathname )

int pg_lo_import ( string pathname )

Dans les versions antérieures à PHP 4.2.0, la syntaxe de cette fonction était différente. Voici la définition :

int pg_lo_import ( string pathname [, resource connection] )

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 fichier en tant que données sources.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note : Auparavant, cette fonction s'appelait pg_loimport().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

pathname

Le chemin d'accès complet ainsi que le fichier dans lequel il sera lu l'objet de grande taille sur le système du client.

Valeurs de retour

Le OID du nouvel objet de grande taille créé ou FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
pg_lo_export | Niveau supérieur | pg_lo_open


pg_lo_open

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_open -- Ouvre un objet de grande taille PostgreSQL

Description

resource pg_lo_open ( resource connection, int oid, string mode )

pg_lo_open() ouvre un objet de type Inversion Large Object et retourne un descripteur de fichier pour cet objet permettant ainsi d'être manipulé.

Avertissement

Ne fermer pas la connexion à la base de données avant de fermer la ressource de l'objet de grande taille.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note : Auparavant, cette fonction s'appelait pg_loopen().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

oid

Le OID de l'objet de grande taille dans la base de données.

mode

Peut être "r" pour lecture seule, "w" pour écriture seule ou "rw" pour lecture et écriture.

Valeurs de retour

Une ressource d'objet de grande taille ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec pg_lo_open()

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   echo "$oid\n";
   $handle = pg_lo_open($database, $oid, "w");
   echo "$handle\n";
   pg_lo_write($handle, "données objet de grande taille");
   pg_lo_close($handle);
   pg_query($database, "commit");
?>

Voir aussi

pg_lo_close()
pg_lo_create()

Précédent | Sommaire | Suivant
pg_lo_import | Niveau supérieur | pg_lo_read_all


pg_lo_read_all

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_read_all -- Lit un objet de grande taille en totalité

Description

int pg_lo_read_all ( resource large_object )

pg_lo_read_all() lit un objet de grande taille en totalité et le passe directement au client, après les en-têtes adéquates. Cette fonction est prévue pour transmettre des sons ou des images.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note : Auparavant, cette fonction s'appelait pg_loreadall().

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

Valeurs de retour

Nombre d'octets lu ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec pg_lo_read_all()

<?php
   header('Content-type: image/jpeg');
   $image_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $image_oid, "r");
   pg_lo_read_all($handle);
   pg_query($database, "commit");
?>

Voir aussi

pg_lo_read()

Précédent | Sommaire | Suivant
pg_lo_open | Niveau supérieur | pg_lo_read


pg_lo_read

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_read -- Lit un objet de grande taille

Description

string pg_lo_read ( resource large_object [, int len] )

pg_lo_read() lit au plus len octets d'un objet de grande taille, et retourne les données sous la forme d'une chaîne.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note : Auparavant, cette fonction s'appelait pg_loread().

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

len

Un nombre maximal d'octets à retourner. Cet argument est optionnel, s'il est omis, il prendra par défaut 8192.

Valeurs de retour

Une chaîne contenant len octets de l'objet de grande taille ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec pg_lo_read()

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   $data = pg_lo_read($handle, 50000);
   pg_query($database, "commit");
   echo $data;
?>

Voir aussi

pg_lo_read_all()

Précédent | Sommaire | Suivant
pg_lo_read_all | Niveau supérieur | pg_lo_seek


pg_lo_seek

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_seek -- Modifie la position dans un objet de grande taille

Description

bool pg_lo_seek ( resource large_object, int offset [, int whence] )

pg_lo_seek() modifie la position du pointeur dans l'objet de grande taille large_object.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

offset

Le nombre d'octets de déplacement.

whence

Une de ces constantes PGSQL_SEEK_SET (positionne à partir du début de l'objet), PGSQL_SEEK_CUR (positionne à partir de la position courante) ou PGSQL_SEEK_END (positionne à partir de la fin de l'objet).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
pg_lo_read | Niveau supérieur | pg_lo_tell


pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_tell -- Retourne la position courante dans un objet de grande taille PostgreSQL

Description

int pg_lo_tell ( resource large_object )

pg_lo_tell() retourne la position courante (à partir du début) du pointeur de lecture sur l'objet de grande taille large_object.

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

Valeurs de retour

La position courante du pointeur (en nombre d'octets) à partir du début de l'objet de grande taille. S'il y a une erreur, la valeur retournée sera négative.

Exemples

Exemple 1. Exemple avec pg_lo_tell()

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Saute les 50000 premiers octets
   pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
   // On vérifie combien d'octets nous avons sauté
   $offset = pg_lo_tell($handle);
   echo "Position du pointeur est : $offset";
   pg_query($database, "commit");
?>

L'exemple ci-dessus va afficher :

Position du pointeur est : 50000

Voir aussi

pg_lo_seek()

Précédent | Sommaire | Suivant
pg_lo_seek | Niveau supérieur | pg_lo_unlink


pg_lo_unlink

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_unlink -- Efface un objet de grande taille PostgreSQL

Description

bool pg_lo_unlink ( resource connection, int oid )

pg_lo_unlink() efface l'objet de grande taille dont l'identifiant est oid, pour la connexion connection. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.

Note : Auparavant, cette fonction s'appelait pg_lounlink().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

oid

Le OID de l'objet de grande taille dans la base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
pg_lo_tell | Niveau supérieur | pg_lo_write


pg_lo_write

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_write -- Ecrit un objet de grande taille PostgreSQL

Description

int pg_lo_write ( resource large_object, string data [, int len] )

pg_lo_write() écrit des données à l'intérieur d'un objet de grande taille à la position courante.

Pour manipuler un objet de grande taille (lo), il est nécessaire de placer les opérations dans un bloc de transaction.

Note : Auparavant, cette fonction s'appelait pg_lowrite().

Liste de paramètres

large_object

Ressource objet de grande taille (LOB) PostgreSQL retournée par pg_lo_open().

data

Les données à être écrites dans l'objet de grande taille. Si len est spécifié et est inférieur à la grandeur de data, seul les len octets y seront écrits.

len

Un nombre maximal d'octets à écrire. Il doit être supérieur à zéro et inférieur à la grandeur de data. Cet argument est optionnel, s'il est omis, il prendra par défaut la grandeur de data.

Valeurs de retour

Le nombre d'octets écrit dans l'objet de grande taille ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec pg_lo_write()

<?php
   $doc_oid = 189762345;
   $data = "Ceci écrasera le début de l'objet de grande taille.";
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "w");
   $data = pg_lo_write($handle, $data);
   pg_query($database, "commit");
?>

Voir aussi

pg_lo_create()
pg_lo_open()

Précédent | Sommaire | Suivant
pg_lo_unlink | Niveau supérieur | pg_meta_data


pg_meta_data

(PHP 4 >= 4.3.0, PHP 5)

pg_meta_data -- Lit les métadonnées de la table PostgreSQL

Description

array pg_meta_data ( resource connection, string table_name )

pg_meta_data() retourne la définition de la table table_name sous forme de tableau.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Le nom de la table.

Valeurs de retour

Un tableau de la table de définition ou FALSE en cas d'erreur.

Exemples

Exemple 1. Récupération des métadonnées d'une table

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  $meta = pg_meta_data($dbconn,'auteurs');
  if (is_array ($meta)) {
       echo '<pre>';
       var_dump ($meta);
       echo '</pre>';
  }
?>

L'exemple ci-dessus va afficher :

array(3) {
["auteur"]=>
array(5) {
  ["num"]=>
  int(1)
  ["type"]=>
  string(7) "varchar"
  ["len"]=>
  int(-1)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
["annee"]=>
array(5) {
  ["num"]=>
  int(2)
  ["type"]=>
  string(4) "int2"
  ["len"]=>
  int(2)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
["titre"]=>
array(5) {
  ["num"]=>
  int(3)
  ["type"]=>
  string(7) "varchar"
  ["len"]=>
  int(-1)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
}

Voir aussi

pg_convert()

Précédent | Sommaire | Suivant
pg_lo_write | Niveau supérieur | pg_num_fields


pg_num_fields

(PHP 4 >= 4.2.0, PHP 5)

pg_num_fields -- Retourne le nombre de champ

Description

int pg_num_fields ( resource result )

pg_num_fields() retourne le nombre de champs (ou colonnes) d'un résultat PostgreSQL.

Note : Auparavant, cette fonction s'appelait pg_numfields().

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Le nombre de champs (ou colonne) dans le jeu de résultats. En cas d'erreur, -1 est retourné.

Exemples

Exemple 1. Exemple avec pg_num_fields()

<?php
$result = pg_query($conn, "SELECT 1, 2");

$num = pg_num_fields($result);

echo $num . " champ(s) retourné(s).\n";
?>

L'exemple ci-dessus va afficher :

2 champ(s) retourné(s).

Voir aussi

pg_num_rows()
pg_affected_rows()

Précédent | Sommaire | Suivant
pg_meta_data | Niveau supérieur | pg_num_rows


pg_num_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_num_rows -- Retourne le nombre de lignes PostgreSQL

Description

int pg_num_rows ( resource result )

pg_num_rows() retourne le nombre de lignes d'un résultat PostgreSQL.

Note : Auparavant, cette fonction s'appelait pg_numrows().

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Le nombre de lignes dans le jeu de résultats. En cas d'erreur, -1 est retourné.

Exemples

Exemple 1. Exemple avec pg_num_rows()

<?php
$result = pg_query($conn, "SELECT 1");

$rows = pg_num_rows($result);

echo $rows . " ligne(s) retournée(s).\n";
?>

L'exemple ci-dessus va afficher :

1 ligne(s) retournée(s).

Voir aussi

pg_num_fields()
pg_affected_rows()

Précédent | Sommaire | Suivant
pg_num_fields | Niveau supérieur | pg_options


pg_options

(PHP 3, PHP 4, PHP 5)

pg_options -- Retourne les options PostgreSQL

Description

string pg_options ( [resource connection] )

pg_options() retourne une chaîne contenant les options de la connexion PostgreSQL connection.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne contenant les options de connection ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec pg_options()

<?php
   $pgsql_conn = pg_connect("dbname=mark host=localhost");
   echo pg_options($pgsql_conn);
?>

Voir aussi

pg_connect()

Précédent | Sommaire | Suivant
pg_num_rows | Niveau supérieur | pg_parameter_status


pg_parameter_status

(PHP 5)

pg_parameter_status -- Consulte un paramètre de configuration courant du serveur

Description

string pg_parameter_status ( resource connection, string param_name )

string pg_parameter_status ( string param_name )

Consulte un paramètre de configuration courant du serveur.

Certaines valeurs de paramètres sont retournées par le serveur automatiquement lors du démarrage de la connexion ou lorsqu'une valeur change. pg_parameter_status() peut être utilisée pour interroger ces configurations. La fonction retourne la valeur courante du paramètre s'il et connu ou FALSE si le paramètre est inconnu.

Les paramètres retournés par PostgreSQL 8.0 sont server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone et integer_datetimes. (server_encoding, TimeZone et integer_datetimes n'étaient pas retournés dans les versions antérieures à 8.0.) Notez que server_version, server_encoding et integer_datetimes ne peuvent changer après le démarrage de PostgreSQL.

Les serveurs PostgreSQL 7.3 ou de versions inférieures ne retournent pas de paramètres de configurations, pg_parameter_status() inclut une logique pour obtenir des valeurs pour server_version et client_encoding quand même. Les applications devraient utiliser pg_parameter_status() au lieu du code ad hoc pour déterminer ces valeurs.

Attention

Sur les versions des serveurs PostgreSQL pre-7.4, le changement de client_encoding avec SET après le démarrage de la connexion ne sera pas réfléchie par pg_parameter_status().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

param_name

Les valeurs possibles de param_name sont server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone et integer_datetimes.

Valeurs de retour

Une chaîne contenant la valeur du paramètre, FALSE en cas d'échec ou du paramètre param_name invalide.

Exemples

Exemple 1. Exemple avec pg_parameter_status()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  echo "Encodage du serveur : ", pg_parameter_status($dbconn, "server_encoding");
?>

L'exemple ci-dessus va afficher :

Encodage du serveur : SQL_ASCII

Précédent | Sommaire | Suivant
pg_options | Niveau supérieur | pg_pconnect


pg_pconnect

(PHP 3, PHP 4, PHP 5)

pg_pconnect -- Établit une connexion PostgreSQL persistante

Description

resource pg_pconnect ( string connection_string [, int connect_type] )

pg_pconnect() retourne une ressource de connexion persistante en cas de succès, ou FALSE en cas d'erreur.

Si un second appel est fait à pg_pconenct() avec le même connection_string comme étant une connexion existante, la connexion existante sera retournée à moins que vous ne passez PGSQL_CONNECT_FORCE_NEW à connect_type.

Pour activer les connexions persistantes, la directive de configuration pgsql.allow_persistent du php.ini doit être mise à "On" (ce qui est sa valeur par défaut). Le nombre maximal de connexions peut être limité grâce à la directive de configuration pgsql.max_persistent dans le fichier php.ini (par défaut, elle vaut -1, c'est à dire pas de limite). Le nombre total de connexions peut être configuré avec la directive pgsql.max_links du fichier php.ini.

pg_close() ne refermera pas les connexions persistantes générées par pg_pconnect().

Liste de paramètres

connection_string

La chaîne connection_string peut être vide pour utiliser tous les paramètres par défaut ou elle peut contenir un ou plusieurs paramètres de configuration séparés par des espaces. Chaque paramètre de configuration est sous la forme code = valeur. Les espaces autour du signe égal sont optionnels. Pour écrire une valeur vide ou une valeur contenant des espaces, entourez cette valeur avec des apostrophes, par exemple : code = 'une valeur'. Les apostrophes et les antislashs à l'intérieur de la valeur doivent être échappés par un antislash, c'est-à-dire \' et \\.

Les mot-clés actuellement reconnus sont : host, hostaddr, port, dbname, user, password, connect_timeout, options, tty (ignoré), sslmode, requiressl (obsolète, utilisez sslmode) et service. La liste de ces arguments dépend de la version de votre serveur PostgreSQL.

connect_type

Si PGSQL_CONNECT_FORCE_NEW est passé en argument, alors une nouvelle connexion sera créée, même si la chaîne connection_string est identique à celle de la connexion existante.

Valeurs de retour

Ressource de connexion PostgreSQL en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec pg_pconnect()

<?php
$dbconn = pg_pconnect("dbname=marie");
// connexion à une base de données nommée "marie"

$dbconn2 = pg_pconnect("host=localhost port=5432 dbname=marie");
// connexion à une base de données nommée "marie" sur l'hôte "localhost" sur le port "5432"

$dbconn3 = pg_pconnect("host=mouton port=5432 dbname=marie user=agneau password=foo");
// connexion à une base de données nommée "marie" sur l'hôte "mouton" avec un
// nom d'utilisateur et un mot de passe

$conn_string = "host=mouton port=5432 dbname=test user=agneau password=bar";
$dbconn4 = pg_pconnect($conn_string);
// connexion à une base de données nommée "test" sur l'hôte "mouton" avec un
// nom d'utilisateur et un mot de passe
?>

Voir aussi

pg_connect()
Connexions Persistantes

Précédent | Sommaire | Suivant
pg_parameter_status | Niveau supérieur | pg_ping


pg_ping

(PHP 4 >= 4.3.0, PHP 5)

pg_ping -- Ping la connexion à la base

Description

bool pg_ping ( [resource connection] )

pg_ping() ping la connexion à la base de données et essaie de se reconnecter si la connexion est perdue.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
pg_pconnect | Niveau supérieur | pg_port


pg_port

(PHP 3, PHP 4, PHP 5)

pg_port -- Retourne le numéro de port

Description

int pg_port ( [resource connection] )

pg_port() retourne le numéro de port de la connexion identifiée connection.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Un entier contenant le numéro du port du serveur de base de données identifié par connection ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec pg_port()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Connecté correctement au port : " . pg_port($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Précédent | Sommaire | Suivant
pg_ping | Niveau supérieur | pg_prepare


pg_prepare

(PHP 5 >= 5.1.0RC1)

pg_prepare -- Envoie une requête pour créer une requête préparée avec les paramètres donnés et attend l'exécution

Description

resource pg_prepare ( resource connection, string stmtname, string query )

resource pg_prepare ( string stmtname, string query )

pg_prepare() crée une requête préparée pour une exécution ultérieure avec pg_execute() ou pg_send_execute(). Cette caractéristique permet aux commandes qui seront utilisées à plusieurs reprises d'être analysées et planifiées qu'une seule fois, plutôt que d'être exécutées chaque fois. pg_prepare() est supportée seulement avec les versions PostgreSQL 7.4 ou plus récentes; la commande échouera si vous l'utilisez avec des versions antérieures.

La fonction crée une requête préparée nommée stmtname à partir de la chaîne query, celle-ci doit contenir qu'une seule commande SQL. stmtname peut être vide ("") pour créer une requête qui n'est pas nommée. Dans ce cas, les requêtes qui existaient et qui se trouvaient sans noms sont automatiquement remplacées; autrement, il y aura une erreur si le nom de la requête est déjà défini dans la session courante. Si des paramètres sont utilisés, ils sont référés à $1, $2, etc. dans query.

Des requêtes préparées à utiliser avec pg_prepare() peuvent être aussi créées en exécutant la requête SQL PREPARE. (Par contre, pg_prepare() est plus flexible puisqu'elle ne nécessite pas que les types des paramètres soit pré-spécifiés.) De plus, bien qu'il n'y a pas de fonction PHP pour supprimer une requête préparée, la requête SQL DEALLOCATE peut être utilisé pour ce motif.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

stmtname

Le nom à donner à la requête préparée. Il doit être unique à chaque session. Si une chaîne vide est spécifiée ("") alors une requête sans nom est créée, écrasant les requêtes sans noms précédemment définies.

query

La requête SQL paramétrisée. Elle doit contenir seulement une seule requête. (Plusieurs requêtes séparées par des points-virgules ne sont pas autorisées.) Si des paramètres sont utilisés, ils sont référés à $1, $2, etc.

Valeurs de retour

Une ressource de résultats en cas de succès ou FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
pg_port | Niveau supérieur | pg_put_line


pg_put_line

(PHP 4 >= 4.0.3, PHP 5)

pg_put_line -- Envoie une chaîne au serveur PostgreSQL

Description

bool pg_put_line ( string data )

bool pg_put_line ( resource connection, string data )

pg_put_line() envoie une chaîne (terminée par NULL) au serveur PostgreSQL. Ceci est nécessaire en conjonction avec une commande COPY FROM PostgreSQL.

COPY est un chargement très rapide des données supporté par PostgreSQL. Les données sont passées sans être analysées et dans une simple transaction.

Une alternative plutôt que d'utiliser la commande brute pg_put_line() est d'utiliser pg_copy_from(). C'est une interface bien plus simple.

Note : Notez que l'application doit explicitement ajouter les deux caractères "\." à la fin de la chaîne pour indiquer au serveur qu'elle a finit d'envoyer des données, avant d'appeler pg_end_copy().

Avertissement

L'utilisation de pg_put_line() cause sur la plupart des objets de grande taille à échouer, incluant pg_lo_read() et pg_lo_tell(). Vous pouvez utiliser pg_copy_from() et pg_copy_to() à la place.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

data

Une ligne de texte à envoyer directement au serveur PostgreSQL. Un caractère d'arrêt NULL est automatiquement ajouté.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
pg_prepare | Niveau supérieur | pg_query_params


pg_query_params

(PHP 5 >= 5.1.0RC1)

pg_query_params -- Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL

Description

resource pg_query_params ( resource connection, string query, array params )

resource pg_query_params ( string query, array params )

Envoie une commande au serveur et attend le résultat, avec les capacités de passer des paramètres séparément de la commande texte SQL.

pg_query_params() est comme pg_query(), mais offre des fonctionnalités additionnelles : les valeurs des paramètres peuvent être spécifiées séparément de la ligne de commande propre. pg_query_params() est supportée seulement avec les versions PostgreSQL 7.4 ou plus récentes; la commande échouera si vous l'utilisez avec des versions antérieures.

Si des paramètres sont utilisés, ils sont référés à $1, $2, etc. dans query. params spécifie les valeurs actuelles des paramètres. Une valeur NULL dans ce tableau signifie que le paramètre correspondant est SQL NULL.

Le principal avantage de pg_query_params() sur pg_query() est que les valeurs des paramètres peuvent être séparées de la requête query, par conséquent, on invite les échappements de caractères ennuyeux et source d'erreurs. Contrairement à pg_query(), pg_query_params() permet seulement une seule commande SQL dans la chaîne donnée. (Il peut y avoir des points-virgules à l'intérieur mais pas plus d'une seule commande.)

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

query

La requête SQL paramétrisée. 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

Une ressource de résultats en cas de succès ou FALSE en cas d'échec.

Exemples

Exemple 1. Using 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()

Précédent | Sommaire | Suivant
pg_put_line | Niveau supérieur | pg_query


pg_query

(PHP 4 >= 4.2.0, PHP 5)

pg_query -- Exécute une requête PostgreSQL

Description

resource pg_query ( string query )

resource pg_query ( resource connection, string query )

pg_query() exécute la requête query sur la base de données spécifiée connection.

Si une erreur se produit et FALSE est retourné, les détails de l'erreur peuvent être récupérés en utilisant la fonction pg_last_error() si la connexion est valide.

Note : Bien que connection puisse être omis, il n'est pas recommandé de le faire, car il peut se révéler difficile de retrouver les bogues dans les scripts.

Note : Auparavant, cette fonction s'appelait pg_exec(). pg_exec() est toujours disponible pour des raisons de compatibilité, mais les utilisateurs sont encouragés à utiliser le nouveau nom.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

query

La requête ou les requêtes SQL à être exécutées. Lorsque plusieurs requêtes sont passées à la fonction, elles sont automatiquement exécutées comme étant une transaction, à moins qu'il y aille les commandes BEGIN/COMMIT incluses dans la requête. Cependant, l'utilisation de transactions multiples dans un seul appel de fonction n'est pas recommandée.

Valeurs de retour

Une ressource de résultats en cas de succès ou FALSE en cas d'échec.

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 auteurs SET auteur=UPPER(auteur) WHERE id=1;";
$query .= "UPDATE auteurs SET auteur=LOWER(auteur) WHERE id=2;";
$query .= "UPDATE auteurs SET auteur=NULL WHERE id=3;";

pg_query($conn, $query);

?>

Voir aussi

pg_connect()
pg_pconnect()
pg_fetch_array()
pg_fetch_object()
pg_num_rows()
pg_affected_rows()

Précédent | Sommaire | Suivant
pg_query_params | Niveau supérieur | pg_result_error_field


pg_result_error_field

(PHP 5 >= 5.1.0RC1)

pg_result_error_field -- Retourne un champ individuel d'un rapport d'erreur

Description

string pg_result_error_field ( resource result, int fieldcode )

pg_result_error_field() retourne un des champs détaillés de message d'erreur qui sont associés à la ressource result. Cette fonction est disponible seulement sur les serveurs PostgreSQL 7.4 ou supérieurs. Le champ d'erreur est spécifié par fieldcode.

Puisque pg_query() et pg_query_params() retourne FALSE si la requête échoue, vous devez utiliser pg_send_query() et pg_get_result() pour obtenir le jeu de résultats.

Si vous avez besoin d'obtenir plus d'informations sur l'erreur lors de
l'échec des requêtes avec pg_query(), utilisez
pg_set_error_verbosity() et
pg_last_error() et analyser ensuite le résultat.

Liste de paramètres

result

Une ressource requête PostgreSQL provenant d'une requête précédemment exécutée.

fieldcode

Les valeurs possibles de fieldcode sont : PGSQL_DIAG_SEVERITY, PGSQL_DIAG_SQLSTATE, PGSQL_DIAG_MESSAGE_PRIMARY, PGSQL_DIAG_MESSAGE_DETAIL, PGSQL_DIAG_MESSAGE_HINT, PGSQL_DIAG_STATEMENT_POSITION, PGSQL_DIAG_INTERNAL_POSITION (PostgreSQL 8.0+ seulement), PGSQL_DIAG_INTERNAL_QUERY (PostgreSQL 8.0+ seulement), PGSQL_DIAG_CONTEXT, PGSQL_DIAG_SOURCE_FILE, PGSQL_DIAG_SOURCE_LINE ou PGSQL_DIAG_SOURCE_FUNCTION.

Valeurs de retour

Retourne une chaîne contenant le contenu du champ d'erreur, NULL si le champ n'existe pas ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec pg_result_error_field()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from nexistepas;");
  }

  $res1 = pg_get_result($dbconn);
  echo pg_result_error_field($res1, PGSQL_DIAG_SQLSTATE);
?>

Voir aussi

pg_result_error()

Précédent | Sommaire | Suivant
pg_query | Niveau supérieur | pg_result_error


pg_result_error

(PHP 4 >= 4.2.0, PHP 5)

pg_result_error -- Lit le message d'erreur associé à un résultat

Description

string pg_result_error ( resource result )

pg_result_error() retourne le message d'erreur associé au résultat result. Par conséquent, l'utilisateur a des chances d'obtenir un message d'erreur plus approprié que via pg_last_error().

La fonction pg_result_error_field() peut donner bien plus de détails sur les erreurs que pg_result_error().

Comme pg_query() retourne FALSE si la requête échoue, vous devez utiliser pg_send_query() et pg_get_result() pour récupérer la ressource de résultat.

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

Valeurs de retour

Retourne une chaîne de caractères s'il y a une erreur associée avec le paramètre result, FALSE autrement.

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()
pg_query()
pg_send_query()
pg_get_result()
pg_last_error()
pg_last_notice()

Précédent | Sommaire | Suivant
pg_result_error_field | Niveau supérieur | pg_result_seek


pg_result_seek

(PHP 4 >= 4.3.0, PHP 5)

pg_result_seek -- Modifie la ligne courant dans un résultat

Description

bool pg_result_seek ( resource result, int offset )

pg_result_seek() choisit la ligne offset comme ligne courante dans le résultat result.

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

offset

Ligne à déplacer la position interne dans le jeu de résultats result. Les lignes sont numérotées à partir de zéro.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
pg_fetch_assoc()
pg_fetch_array()
pg_fetch_object()
pg_fetch_result()

Précédent | Sommaire | Suivant
pg_result_error | Niveau supérieur | pg_result_status


pg_result_status

(PHP 4 >= 4.2.0, PHP 5)

pg_result_status -- Lit le statut du résultat

Description

mixed pg_result_status ( resource result [, int type] )

pg_result_status() retourne le statut du résultat result ou la commande d'exécution de PostgreSQL associée au résultat.

Liste de paramètres

result

Ressource résultat de requête PostgreSQL, retourné par pg_query(), pg_query_params() ou pg_execute() (entre autres).

type

Soit PGSQL_STATUS_LONG pour retourner un statut numérique de result ou PGSQL_STATUS_STRING pour retourner le tag de la commande de result. Si l'argument n'est pas spécifié, PGSQL_STATUS_LONG est la valeur par défaut.

Valeurs de retour

Les valeurs de retour possibles sont PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_COPY_OUT, PGSQL_COPY_IN, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR et PGSQL_FATAL_ERROR si PGSQL_STATUS_LONG est spécifié. Autrement, une chaîne contenant le tag de la commande PostgreSQL est retourné.

Exemples

Exemple 1. Exemple avec pg_result_status()

<?php

// Connexion à la base de données
$conn = pg_pconnect("dbname=publisher");

// Exécution de COPY
$result = pg_query($conn, "COPY auteurs FROM STDIN;");

// Récupération du statut
$status = pg_result_status($result);

// Détermination du statut
if ($status == PGSQL_COPY_IN)
   echo "Le copiage a eu lieu.";
else
   echo "Le copiage a échoué.";

?>

L'exemple ci-dessus va afficher :

Le copiage a eu lieu.

Voir aussi

pg_connection_status()

Précédent | Sommaire | Suivant
pg_result_seek | Niveau supérieur | pg_select


pg_select

(PHP 4 >= 4.3.0, PHP 5)

pg_select -- Effectue une sélection PostgreSQL

Description

mixed pg_select ( resource connection, string table_name, array assoc_array [, int options] )

pg_select() sélectionne les enregistrements par assoc_array qui est au format champ=>valeur. Lorsque la requête réussit, elle retourne un tableau contenant tous les enregistrements et champs qui vérifient la condition spécifiée par assoc_array.

Si options est spécifiée, pg_convert() est appliquée à assoc_array avec les drapeaux spécifiés.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

table_name

Nom de la table dans laquelle on sélectionne les lignes.

assoc_array

Un tableau à qui les clés sont les noms des champs dans la table table_name et à qui les valeurs sont les conditions que la ligne doit vérifier pour être récupérée.

options

N'importe quelle de PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_EXEC, PGSQL_DML_ASYNC ou PGSQL_DML_STRING combinée. Si PGSQL_DML_STRING fait partie de options alors la requête est retournée sous forme de chaîne de caractères.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Retourne une chaîne de caractères si PGSQL_DML_STRING est passé via options.

Exemples

Exemple 1. Exemple avec pg_select()

<?php
  $db = pg_connect ('dbname=foo');
  // C'est sécuritaire, car $_POST est convertit automatiquement
  $rec = pg_select($db, 'post_log', $_POST);
  if ($rec) {
    echo "Lignes lues\n";
    var_dump($rec);
  } else {
    echo "Problème dans les données utilisateur\n";
  }
?>

Voir aussi

pg_convert()

Précédent | Sommaire | Suivant
pg_result_status | Niveau supérieur | pg_send_execute


pg_send_execute

(PHP 5 >= 5.1.0RC1)

pg_send_execute -- Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s)

Description

bool pg_send_execute ( resource connection, string stmtname, array params )

Envoie une requête pour exécuter une requête préparée avec des paramètres donnés, sans attendre le(s) résultat(s).

Cette fonction est similaire à pg_send_query_params(), mais la commande qui sera exécutée est spécifiée en nommant une requête préalablement préparée, au lieu de donner une chaîne en tant que requête. Les paramètres de la fonctions sont gérés de la même manière que pg_execute(). Comme pg_execute(), la fonction ne fonctionnera pas sur les versions antérieures à PostgreSQL 7.4.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

stmtname

Le nom de la requête préparée à exécuter. Si une chaîne vide est spécifiée (""), alors la requête qui n'est pas nommée est exécutée. Le nom doit avoir été précédemment préparé en utilisant pg_prepare(), pg_send_prepare() ou une commande SQL PREPARE.

params

Un tableau de valeurs de paramètres pour substituer les variables $1, $2, etc. dans la requête préparée originale. Le nombre d'éléments présents dans le tableau doit concorder avec le nombre de variables à remplacer.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE en cas d'échec. Utilisez pg_get_result() pour déterminer le résultat de la requête.

Exemples

Exemple 1. Exemple avec pg_send_execute()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  // Prépare une requête pour l'exécution
  if (!pg_connection_busy($dbconn)) {
    pg_send_prepare($dbconn, "my_query", 'SELECT * FROM magasins WHERE nom = $1');
    $res1 = pg_get_result($dbconn);
  }

  // Exécute la requête préparée. Notez qu'il n'est pas nécessaire d'échapper
  // la chaîne "Joe's Widgets"
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
    $res2 = pg_get_result($dbconn);
  }

  // Exécute la même requête préparée, cette fois avec un paramètre différent
  if (!pg_connection_busy($dbconn)) {
    pg_execute($dbconn, "my_query", array("Vêtements Vêtements Vêtements"));
    $res3 = pg_get_result($dbconn);
  }

?>

Voir aussi

pg_prepare()
pg_send_prepare()
pg_execute()

Précédent | Sommaire | Suivant
pg_select | Niveau supérieur | pg_send_prepare


pg_send_prepare

(PHP 5 >= 5.1.0RC1)

pg_send_prepare -- Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution

Description

bool pg_send_prepare ( resource connection, string stmtname, string query )

Envoie une requête pour créer une requête préparée avec les paramètres donnés, sans attendre la fin de son exécution.

Cette fonction est la version asynchrone de pg_prepare() : elle retourne TRUE si elle a été capable de répartir la requête et FALSE si elle n'a pas été capable. Après un appel réussi, appelez pg_get_result() pour déterminer si le serveur a créé correctement la requête préparée. Les paramètres de la fonctions sont gérés de la même manière que pg_execute(). Comme pg_execute(), la fonction ne fonctionnera pas sur les versions antérieures à PostgreSQL 7.4.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

stmtname

Le nom à donner à la requête préparée. Il doit être unique à chaque session. Si une chaîne vide est spécifiée ("") alors une requête sans nom est créée, écrasant les requêtes sans nom précédemment définies.

query

La requête SQL paramétrisée. Elle doit contenir seulement une seule requête. (Plusieurs requêtes séparées par des points-virgules ne sont pas autorisées.) Si des paramètres sont utilisés, ils sont référés à $1, $2, etc.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE en cas d'échec. Utilisez pg_get_result() pour déterminer le résultat de la requête.

Exemples

Exemple 1. Exemple pg_send_prepare()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  // Prépare une requête pour l'exécution
  if (!pg_connection_busy($dbconn)) {
    pg_send_prepare($dbconn, "my_query", 'SELECT * FROM magasins WHERE nom = $1');
    $res1 = pg_get_result($dbconn);
  }

  // Exécute la requête préparée. Notez qu'il n'est pas nécessaire d'échapper
  // la chaîne "Joe's Widgets"
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
    $res2 = pg_get_result($dbconn);
  }

  // Exécute la même requête préparée, cette fois avec un paramètre différent
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Vêtements Vêtements Vêtements"));
    $res3 = pg_get_result($dbconn);
  }

?>

Voir aussi

pg_connect()
pg_pconnect()
pg_execute()
pg_send_execute()
pg_send_query_params()

Précédent | Sommaire | Suivant
pg_send_execute | Niveau supérieur | pg_send_query_params


pg_send_query_params

(PHP 5 >= 5.1.0RC1)

pg_send_query_params -- Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s)

Description

bool pg_send_query_params ( resource connection, string query, array params )

Envoie une commande et sépare les paramètres au serveur sans attendre le(s) résultat(s).

Cette fonction est équivalente à pg_send_query() à l'exception que les paramètres de la requête peuvent être spécifiés séparément de la chaîne de requête query. Les paramètres de la fonctions sont gérés de la même manière que pg_execute(). Comme pg_execute(), la fonction ne fonctionnera pas sur les versions antérieures à PostgreSQL 7.4 et elle n'autorise qu'une seule commande par requête.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

query

La requête SQL paramétrisée. Elle doit contenir seulement une seule requête. (Plusieurs requêtes séparées par des points-virgules ne sont pas autorisées.) Si des paramètres sont utilisés, ils sont référés à $1, $2, etc.

params

Un tableau de valeurs de paramètres pour substituer les variables $1, $2, etc. dans la requête préparée originale. Le nombre d'éléments présents dans le tableau doit concorder avec le nombre de variables à remplacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Utilisez pg_get_result() pour déterminer le résultat de la requête.

Exemples

Exemple 1. Exemple avec pg_send_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()

Précédent | Sommaire | Suivant
pg_send_prepare | Niveau supérieur | pg_send_query


pg_send_query

(PHP 4 >= 4.2.0, PHP 5)

pg_send_query -- Exécute une requête PostgreSQL asynchrone

Description

bool pg_send_query ( resource connection, string query )

pg_send_query() envoie une requête ou des requêtes de manière asynchrone à la connexion connection. Contrairement à pg_query(), elle peut envoyer plusieurs requêtes à la fois au serveur PostgreSQL et obtenir les résultats un par un en utilisant pg_get_result().

L'exécution du script n'est pas bloquée durant l'exécution des requêtes. Utilisez pg_connection_busy() pour vérifier si la connexion est occupée (c'est-à-dire la requête est en train d'être exécutée). Les requêtes peuvent être annulées avec pg_cancel_query().

Bien que l'on puisse envoyer plusieurs requêtes en même temps, il n'est pas possible d'envoyer plusieurs requêtes sur une connexion occupée. Si une requête est envoyée alors que la connexion est occupée, elle attendra que la requête précédente soit terminée et perdra tous ses résultats.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL.

query

La requête ou les requêtes SQL à être exécutées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Utilisez pg_get_result() pour déterminer les résultats de requête.

Exemples

Exemple 1. Exemple avec pg_send_query()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn,"select * from auteurs; select count(*) from auteurs;");
  }

  $res1 = pg_get_result($dbconn);
  echo "Premier appel de pg_get_result() : $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 a $rows1 enregistrements\n\n";

  $res2 = pg_get_result($dbconn);
  echo "Second appel de pg_get_result() : $res2\n";
  $rows2 = pg_num_rows($res2);
  echo "$res2 a $rows2 enregistrements\n";
?>

L'exemple ci-dessus va afficher :

Premier appel de pg_get_result() : Resource id #3
Resource id #3 a 3 enregistrements

Second appel de pg_get_result() : Resource id #4
Resource id #4 a 1 enregistrements

Voir aussi

pg_query()
pg_cancel_query()
pg_get_result()
pg_connection_busy()

Précédent | Sommaire | Suivant
pg_send_query_params | Niveau supérieur | pg_set_client_encoding


pg_set_client_encoding

(PHP 3 CVS only, PHP 4 >= 4.0.3, PHP 5)

pg_set_client_encoding -- Choisit l'encodage du client PostgreSQL

Description

int pg_set_client_encoding ( string encoding )

int pg_set_client_encoding ( resource connection, string encoding )

pg_set_client_encoding() fixe l'encodage du client. Elle retourne 0 en cas de succès et -1 en cas d'erreur.

PostgreSQL convertira automatiquement les données dans l'encodage de la base de données vers l'encodage du client.

Note : Auparavant, cette fonction s'appelait pg_setclientencoding().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

encoding

L'encodage client demandé. Un de ces constantes : SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5 ou WIN1250.

La liste exacte des encodages disponibles dépend de votre version PostgreSQL, alors vérifiez votre manuel PostgreSQL pour une liste plus spécifique.

Valeurs de retour

Retourne 0 en cas de succès ou -1 en cas d'erreur.

Exemples

Exemple 1. Exemple avec pg_set_client_encoding()

<?php

$conn = pg_pconnect("dbname=editeur");
if (!$conn) {
  echo "Une erreur s'est produite.\n";
  exit;
}

// Fixe l'encodage du client à UNICODE. Les données seront automatiquement
// converties de l'encodage serveur à l'encodage client.
pg_set_client_encoding($conn, UNICODE);

$result = pg_query($conn, "SELECT auteur, email FROM auteurs");
if (!$result) {
  echo "Une erreur s'est produite.\n";
  exit;
}

// Écriture de données UTF-8
while ($row = pg_fetch_row($result)) {
  echo "Auteur: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>

Voir aussi

pg_client_encoding()

Précédent | Sommaire | Suivant
pg_send_query | Niveau supérieur | pg_set_error_verbosity


pg_set_error_verbosity

(PHP 5 >= 5.1.0RC1)

pg_set_error_verbosity -- Détermine la le degré des messages retournés par pg_last_error() et pg_result_error()

Description

int pg_set_error_verbosity ( resource connection, int verbosity )

int pg_set_error_verbosity ( int verbosity )

Détermine la le degré des messages retournés par pg_last_error() et pg_result_error().

pg_set_error_verbosity() fixe le degré d'erreur et retourne le paramètre précédant de la connexion. Avec le mode PGSQL_ERRORS_TERSE, les messages retournés inclus la sévérité, le texte primaire et la position seulement; normalement, cela va entrer sur une seule ligne. Le mode par défaut (PGSQL_ERRORS_DEFAULT) produit des messages qui incluent les messages ci-dessus et des détails, des astuces ou les champs en contexte (ces messages peuvent être étendus sur plusieurs lignes). Le mode PGSQL_ERRORS_VERBOSE tous les champs disponibles. Le changement du degré des messages n'affecte pas les messages disponibles qui proviennent des résultats déjà existants, mais seulement les messages des résultats créés par la suite.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

verbosity

Le degré de message d'erreur : PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT ou PGSQL_ERRORS_VERBOSE.

Valeurs de retour

Le degré de message d'erreur précédant : PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT ou PGSQL_ERRORS_VERBOSE.

Exemples

Exemple 1. Exemple avec pg_set_error_verbosity()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from nexistepas;");
  }

  pg_set_error_verbosity($dbconn, PGSQL_ERRORS_VERBOSE);
  $res1 = pg_get_result($dbconn);
  echo pg_result_error($res1);
?>

Voir aussi

pg_last_error()
pg_result_error()

Précédent | Sommaire | Suivant
pg_set_client_encoding | Niveau supérieur | pg_trace


pg_trace

(PHP 4 >= 4.0.1, PHP 5)

pg_trace -- Active le suivi d'une connexion PostgreSQL

Description

bool pg_trace ( string pathname [, string mode [, resource connection]] )

pg_trace() active le suivi des communications entre PHP et le serveur PostgreSQL. Cet historique sera enregistré dans un fichier. Pour comprendre ces lignes, il faut être familié avec le protocole de communication interne à PostgreSQL.

Pour ceux qui le ne sont pas, elles peuvent être utiles pour suivre les requêtes et les erreurs : avec la commande grep '^To backend' trace.log, vous pourrez voir les requêtes réellement envoyées au serveur PostgreSQL. Pour plus d'informations, référez-vous à la Documentation PostgreSQL.

Liste de paramètres

pathname

Le chemin complet et le nom du fichier dans lequel le suivi sera enregistré. Comme fopen().

pathname

Le mode d'accès optionnel, comme fopen(). La valeur par défaut est "w".

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
pg_set_error_verbosity | Niveau supérieur | pg_transaction_status


pg_tty

(PHP 3, PHP 4, PHP 5)

pg_tty -- Retourne le nom de TTY associé à la connexion

Description

string pg_tty ( [resource connection] )

pg_tty() retourne le nom de TTY de la connexion associée à connection.

Note : pg_tty() est obsolète, depuis le serveur ne fait plus attention à la configuration TTY, mais demeurre pour des raisons de compatibilités.

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Une chaîne contenant le débogue TTY de la connexion connection ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec pg_tty()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Débogue TTY serveur est : " . pg_tty($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Précédent | Sommaire | Suivant
pg_transaction_status | Niveau supérieur | pg_unescape_bytea


pg_unescape_bytea

(PHP 4 >= 4.3.0, PHP 5)

pg_unescape_bytea -- Supprime le protection d'une chaîne de type bytea

Description

string pg_unescape_bytea ( string data )

pg_unescape_bytea() supprime la protection des caractères de type bytea. Elle retourne la chaîne de caractères protégée, pouvant contenir des données binaires.

Note : Lorsque vous utilisez une commande SELECT avec des données de type bytea, PostgreSQL retourne des valeurs octales, préfixées avec des anti-slash \ (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 multi-octets. i.e. INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea);. PostgreSQL 7.2.2 ou plus récent ne requiert pas cette manipulation. Toutefois, si le client et le serveur n'utilisent pas le même jeu de caractères, il peut arriver des erreurs. Il faut alors forcer le transtypage manuellement pour éviter cette erreur.

Liste de paramètres

data

Une chaîne de caractères contenant les données bytea PostgreSQL à être converties en chaîne de caractères binaire PHP.

Valeurs de retour

Une chaîne de caractères contenant les données protégées.

Exemples

Exemple 1. Exemple avec pg_unescape_bytea()

<?php
  // Connexion à la base de données
  $dbconn = pg_connect('dbname=foo');

  // Récupération des données bytea
  $res = pg_query("SELECT data FROM galerie WHERE nom='Arbres Pin'");
  $raw = pg_fetch_result($res, 'data');

  // Convertit en binaire et envoie au navigateur
  header('Content-type: image/jpeg');
  echo pg_unescape_bytea($raw);
?>

Voir aussi

pg_escape_bytea()
pg_escape_string()

Précédent | Sommaire | Suivant
pg_tty | Niveau supérieur | pg_untrace


pg_untrace

(PHP 4 >= 4.0.1, PHP 5)

pg_untrace -- Termine le suivi d'une connexion PostgreSQL

Description

bool pg_untrace ( [resource connection] )

pg_untrace() termine le suivi d'une connexion PostgreSQL, initiée avec pg_trace().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Retourne toujours TRUE.

Exemples

Exemple 1. Exemple avec pg_untrace()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   pg_trace('/tmp/trace.log', 'w', $pgsql_conn);
   pg_query("SELECT 1");
   pg_untrace($pgsql_conn);
   // Maintenant le suivi des communications est désactivé
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Voir aussi

pg_trace()

Précédent | Sommaire | Suivant
pg_unescape_bytea | Niveau supérieur | pg_update


pg_update

(PHP 4 >= 4.3.0, PHP 5)

pg_update -- Modifie les lignes d'une table

Description

mixed pg_update ( resource connection, string table_name, array data, array condition [, int options] )

pg_update() modifie les lignes de la table table_name, qui vérifient la condition condition, et leur donne la valeur de data. Si options est spécifié, pg_convert() est appliqué à data avec les options spécifiées.

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

connection

Une ressource de connexion PostgreSQL.

table_name

Le nom de la table dans laquelle les lignes seront mises à jour.

data

Un tableau dont les clés sont les noms des champs dans la table table_name, et où les valeurs sont les lignes correspondantes qui seront mises à jour.

condition

Un tableau dont les clés sont les noms des champs dans la table table_name, et où les valeurs sont les conditions à remplir par les lignes pour être mises à jour.

options

Toutes combinaisons de constantes parmis PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_EXEC ou PGSQL_DML_STRING. Si PGSQL_DML_STRING fait partie du paramètre options, alors la requête sera retournée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Retourne une chaîne de caractères si PGSQL_DML_STRING est passé via le paramètre options.

Exemples

Exemple 1. Exemple avec pg_update()

<?php
  $db = pg_connect ('dbname=foo');
  $data = array('field1'=>'AA', 'field2'=>'BB');

  // C'est sécuritaire, car $_POST est convertit automatiquement
  $res = pg_update($db, 'post_log', $_POST, $data);
  if ($res) {
      echo "Les données ont été modifiées : $res\n";
  } else {
      echo "Problème dans les données utilisateur\n";
  }
?>

Voir aussi

pg_convert()

Précédent | Sommaire | Suivant
pg_untrace | Niveau supérieur | pg_version


pg_version

(PHP 5)

pg_version -- Retourne un tableau avec les versions du client, du protocole et du serveur (si disponible)

Description

array pg_version ( [resource connection] )

pg_version() retourne un tableau avec les versions du client, du protocole et du serveur. Les versions du protocole et du serveur ne sont disponibles que si PHP a été compilé avec PostgreSQL 7.4 ou supérieur.

Pour plus d'informations sur le serveur, utilisez pg_parameter_status().

Liste de paramètres

connection

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

Valeurs de retour

Retourne un tableau avec les clés client, protocol et server_version et valeurs (si disponibles). Retourne FALSE en cas d'erreur ou de connexion invalide.

Exemples

Exemple 1. Exemple avec pg_version()

<?php
  $dbconn = pg_connect("host=localhost port=5432 dbname=marie")
     or die("Connexion impossible");

  $v = pg_version($dbconn);

  echo $v['client'];
?>

L'exemple ci-dessus va afficher :

7.4

Voir aussi

pg_parameter_status()

Précédent | Sommaire | Suivant
pg_update | Niveau supérieur | Fonctions PostgreSQL (PDO_PGSQL)


Fonctions POSIX

Manuel PHP
Précédent Suivant

CXXV. Fonctions POSIX

Introduction

Ce module contient une interface avec les documents au standard IEEE 1003.1 (POSIX.1), qui ne sont pas accessibles autrement. Par exemple, POSIX.1 définit les fonctions open(), read(), write() et close(), qui ont été traditionnellement des fonctions de PHP 3. Certains fonctionnalités spécifiques ne sont pas encore disponibles, bien que ce module tâche de remédier à cette situation.

Avertissement

Des données sensibles peuvent être lues en utilisant les fonctions POSIX, comme posix_getpwnam() et compagnie. Aucune des fonctions POSIX n'est surveillée lorsque le safe mode est activé. Il est donc fortement recommandé de désactiver les fonctions POSIX (à l'aide de l'option de configuration --disable-posix) si vous travaillez dans un tel environnement.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Installation

Le support des fonctions POSIX est activé par défaut. Vous pouvez désactiver ces fonctions en compilant PHP avec l'option --disable-posix.

Constantes pré-définies

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.

POSIX_F_OK (entier)

Vérifie si le fichier existe.

POSIX_R_OK (entier)

Vérifie si le fichier existe et a les permissions de lecture.

POSIX_W_OK (entier)

Vérifie si le fichier existe et a les permissions d'écriture.

POSIX_X_OK (entier)

Vérifie si le fichier existe et a les permissions d'exécution.

POSIX_S_IFBLK (entier)

Bloque les fichiers spéciaux

POSIX_S_IFCHR (entier)

Caractère des fichiers spéciaux

POSIX_S_IFIFO (entier)

FIFO (pipe nommé) des fichiers spéciaux

POSIX_S_IFREG (entier)

Fichier normal Normal file

POSIX_S_IFSOCK (entier)

Socket

Note : Ces constantes sont disponibles depuis PHP 5.1.0. Notez également que quelques unes peuvent ne pas être disponibles sur votre système.

Voir aussi

La section sur le contrôle des processus peut aussi vous interesser.

Table des matières
posix_access -- Détermine l'accessibilité d'un fichier
posix_ctermid -- Retourne le chemin 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é
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 -- etourne l'UID du groupe du processus courant
posix_getgrgid -- Retourne des informations sur un groupe
posix_getgrnam -- Retourne des informations sur un groupe
posix_getgroups -- Retourne les identifiants du groupe du processus courant
posix_getlogin -- Retourne le nom de login
posix_getpgid -- Retourne l'id du groupe de processus
posix_getpgrp -- Retourne l'identifiant du groupe de processus
posix_getpid -- Retourne l'identifiant du processus courant
posix_getppid -- Retourne l'identifiant du processus parent
posix_getpwnam -- Retourne des informations sur un utilisateur
posix_getpwuid -- Retourne des informations sur un utilisateur
posix_getrlimit -- Retourne les limites système
posix_getsid -- Retourne le sid du processus
posix_getuid -- Retourne l'ID de l'utilisateur du processus courant
posix_isatty -- Détermine si un pointeur de fichier est un terminal interactif
posix_kill -- Envoie un signal à un processus
posix_mkfifo -- Crée un fichier FIFO (first in, first out) (un pipe nommé)
posix_mknod -- Crée un fichier spécial ou ordinaire (POSIX.1)
posix_setegid -- Modifie le GID réel du processus courant
posix_seteuid -- Modifie l'identifiant d'utilisateur réel (UID) du processus courant
posix_setgid -- Fixe le GID effectif du processus courant
posix_setpgid -- Fixe l'identifiant de groupe de processus
posix_setsid -- Fait du processus courant un chef de session
posix_setuid -- Fixe l'UID effective du processus courant
posix_strerror -- Lit le message d'erreur associé à un numéro d'erreur POSIX
posix_times -- Utilisation des ressources
posix_ttyname -- Retourne le nom de device du terminal
posix_uname -- Retourne le nom du système

Précédent | Sommaire | Suivant
zend_version | Niveau supérieur | posix_access


posix_access

(PHP 5 >= 5.1.0RC1)

posix_access -- Détermine l'accessibilité d'un fichier

Description

bool posix_access ( string file [, int mode] )

posix_access() vérifie les permissions utilisateurs pour un fichier.

Liste de paramètres

file

Le nom du fichier à tester.

mode

Un masque constitué d'une ou plusieurs constantes parmi POSIX_F_OK, POSIX_R_OK, POSIX_W_OK et POSIX_X_OK. La valeur par défaut est POSIX_F_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, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec posix_access()

Cet exemple vérifie si le fichier $file a les permissions en lecture et en écriture, sinon, il affiche un message d'erreur.

<?php

$file = 'un_fichier';

if (posix_access($file, POSIX_R_OK | POSIX_W_OK)) {
    echo 'Le fichier a les permissions en lecture et en écriture !';

} else {
    $error = posix_get_last_error();

    echo "Erreur $error: " . posix_strerror($error);
}

?>

Notes

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi

posix_get_last_error()
posix_strerror()

Précédent | Sommaire | Suivant
Fonctions POSIX | Niveau supérieur | posix_ctermid


posix_ctermid

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_ctermid -- Retourne le chemin du terminal

Description

string posix_ctermid ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
posix_access | Niveau supérieur | posix_get_last_error


posix_get_last_error

(PHP 4 >= 4.2.0, PHP 5)

posix_get_last_error -- Lit le dernier numéro d'erreur généré par la dernière fonction POSIX qui a échoué

Description

int posix_get_last_error ( void )

Retourne le numéro d'erreur retourné par la dernière fonction POSIX qui a échoué. Si vous le message d'erreur associé au numéro d'erreur, utilisez posix_strerror().

Valeurs de retour

Retourne le numéro de la dernière erreur survenue lors d'un appel à une fonction POSIX. Si aucune erreur n'existe, 0 sera retourné.

Voir aussi

posix_strerror()

Précédent | Sommaire | Suivant
posix_ctermid | Niveau supérieur | posix_getcwd


posix_getcwd

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_getcwd -- Chemin du dossier de travail courant

Description

string posix_getcwd ( void )

Retourne le chemin absolu du dossier de travail courant

Valeurs de retour

Retourne le chemin absolu, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
posix_get_last_error | Niveau supérieur | posix_getegid


posix_getegid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getegid -- Retourne l'ID effectif du groupe du processus courant

Description

int posix_getegid ( void )

Retourne l'ID effectif du groupe du processus courant.

Valeurs de retour

Returns the group ID.

Voir aussi

Reportez-vous à posix_getgrgid() pour transformer cette information en nom de groupe

Précédent | Sommaire | Suivant
posix_getcwd | Niveau supérieur | posix_geteuid


posix_geteuid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_geteuid -- Retourne l'UID effectif de l'utilisateur du processus courant

Description

int posix_geteuid ( void )

Retourne l'UID effectif de l'utilisateur du processus courant. Reportez-vous à posix_getpwuid() pour obtenir le nom d'utilisateur.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Précédent | Sommaire | Suivant
posix_getegid | Niveau supérieur | posix_getgid


posix_getgid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getgid -- etourne l'UID du groupe du processus courant

Description

int posix_getgid ( void )

Retourne l'UID du groupe du processus courant. Reportez-vous à posix_getgrgid() pour accéder au nom du groupe.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Précédent | Sommaire | Suivant
posix_geteuid | Niveau supérieur | posix_getgrgid


posix_getgrgid

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_getgrgid -- Retourne des informations sur un groupe

Description

array posix_getgrgid ( int gid )

Retourne des informations sur un groupe.

Liste de paramètres

gid

L'identifiant du groupe.

Valeurs de retour

Retourne un tableau d'informations sur un groupe, et FALSE en cas d'échec. Si gid n'est pas un nombre, posix_getgrgid() retourne NULL et une alerte E_WARNING est générée.

Historique

Version | Description
4.2.0 | Depuis PHP 4.2.0, les membres sont retournés sous la forme d'un tableau de membres. Avant cela, la fonction ne retournait que le nombre de membres du groupe, et les membres étaient identifiés par leur index numérique.

Exemples

Exemple 1. Exemple avec posix_getgrgid()

<?php

$groupid   = posix_getegid();
$groupinfo = posix_getgrgid($groupid);

print_r($groupinfo);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Voir aussi

posix_getegid()
filegroup()
stat()
safe_mode_gid

Précédent | Sommaire | Suivant
posix_getgid | Niveau supérieur | posix_getgrnam


posix_getgrnam

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_getgrnam -- Retourne des informations sur un groupe

Description

array posix_getgrnam ( string name )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

name

Précédent | Sommaire | Suivant
posix_getgrgid | Niveau supérieur | posix_getgroups


posix_getgroups

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getgroups -- Retourne les identifiants du groupe du processus courant

Description

array posix_getgroups ( void )

Retourne les identifiants du groupe du processus courant.

Valeurs de retour

Retourne un tableau contenant les identifiants du groupe du processus courant.

Voir aussi

posix_getgrgid()

Précédent | Sommaire | Suivant
posix_getgrnam | Niveau supérieur | posix_getlogin


posix_getlogin

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_getlogin -- Retourne le nom de login

Description

string posix_getlogin ( void )

Retourne le nom de login de l'utilisateur qui possède le processus courant.

Valeurs de retour

Retourne le nom du login de l'utilisateur, sous la forme d'une chaîne de caractères.

Voir aussi

posix_getpwnam()

Précédent | Sommaire | Suivant
posix_getgroups | Niveau supérieur | posix_getpgid


posix_getpgid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getpgid -- Retourne l'id du groupe de processus

Description

int posix_getpgid ( int pid )

Retourne l'id du groupe de processus pour le processus pid.

Liste de paramètres

pid

L'identifiant du processus.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Notes

Note : Ceci n'est pas une fonction POSIX, mais elle est répandue sur les systèmes BSD et System V. Si votre système ne supporte pas cette fonction, la fonction PHP retournera toujours FALSE.

Précédent | Sommaire | Suivant
posix_getlogin | Niveau supérieur | posix_getpgrp


posix_getpgrp

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getpgrp -- Retourne l'identifiant du groupe de processus

Description

int posix_getpgrp ( void )

Retourne l'identifiant du groupe de processus du processus courant.

Valeurs de retour

Returns the identifier, as an integer.

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.

Précédent | Sommaire | Suivant
posix_getpgid | Niveau supérieur | posix_getpid


posix_getpid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getpid -- Retourne l'identifiant du processus courant

Description

int posix_getpid ( void )

Retourne l'identifiant du processus courant.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Précédent | Sommaire | Suivant
posix_getpgrp | Niveau supérieur | posix_getppid


posix_getppid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getppid -- Retourne l'identifiant du processus parent

Description

int posix_getppid ( void )

Retourne l'identifiant du processus parent du processus courant.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Précédent | Sommaire | Suivant
posix_getpid | Niveau supérieur | posix_getpwnam


posix_getpwnam

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_getpwnam -- Retourne des informations sur un utilisateur

Description

array posix_getpwnam ( string username )

RRetourne des informations sur un utilisateur.

Liste de paramètres

username

Un nom alphanumérique d'utilisateur.

Valeurs de retour

Les éléments du tableau retourné sont :

Tableau 1. Le tableau descriptif d'un utilisateur

Elé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, encrypté. 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.

Précédent | Sommaire | Suivant
posix_getppid | Niveau supérieur | posix_getpwuid


posix_getpwuid

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_getpwuid -- Retourne des informations sur un utilisateur

Description

array posix_getpwuid ( int uid )

Récupère des informations sur un utilisateur, à partir de son UID.

Liste de paramètres

uid

L'identifiant de l'utilisateur.

Valeurs de retour

Retourne un tableau associatif contenant les éléments suivants :

Tableau 1. Le tableau de description d'un utilisateur

Elé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, encrypté. Souvent, dans les systèmes utilisant les mots de passe "fantômes", un astérisque est retourné.
uid | Cette valeur devrait correspondre au paramètre uid et, donc, il est redondant.
gid | L'ID du groupe de l'utilisateur. Utilisez la fonction posix_getgrgid() pour connaître le nom du groupe, et ses membres.
gecos | GECOS est un terme obsolète qui fait référence aux données de finger, sur un système Honeywell. Le champ, cependant, a survécu et son contenu a été formalisé par POSIX. Le champ contient une liste, séparée par des virgules, qui contient le nom complet de l'utilisateur, son téléphone professionnel, son numéro de bureau et son numéro de téléphone personnel. Sur la plupart des systèmes, seul le nom est disponible.
dir | Cet élément contient le chemin absolu jusqu'au dossier racine de l'utilisateur.
shell | Cet élément contient le chemin absolu jusqu'au dossier d'exécution du shell de l'utilisateur.

Précédent | Sommaire | Suivant
posix_getpwnam | Niveau supérieur | posix_getrlimit


posix_getrlimit

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getrlimit -- Retourne les limites système

Description

array posix_getrlimit ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
posix_getpwuid | Niveau supérieur | posix_getsid


posix_getsid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getsid -- Retourne le sid du processus

Description

int posix_getsid ( int pid )

Retourne le sid du processus pid.

Liste de paramètres

pid

L'identifiant du processus. Si défini à 0, le processus courant sera utilisé.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Notes

Note : Ceci n'est pas une fonction POSIX, mais elle est répandue sur les systèmes BSD et System V. Si votre système ne supporte pas cette fonction, la fonction PHP retournera toujours FALSE.

Précédent | Sommaire | Suivant
posix_getrlimit | Niveau supérieur | posix_getuid


posix_getuid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getuid -- Retourne l'ID de l'utilisateur du processus courant

Description

int posix_getuid ( void )

Retourne l'ID de l'utilisateur du processus courant.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Voir aussi

Reportez-vous à posix_getpwuid() pour accéder au nom d'utilisateur

Précédent | Sommaire | Suivant
posix_getsid | Niveau supérieur | posix_isatty


posix_isatty

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_isatty -- Détermine si un pointeur de fichier est un terminal interactif

Description

bool posix_isatty ( int fd )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
posix_getuid | Niveau supérieur | posix_kill


posix_kill

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_kill -- Envoie un signal à un processus

Description

bool posix_kill ( int pid, int sig )

Envoie le signal sig au processus pid.

Liste de paramètres

pid

L'identifiant du processus.

sig

Une des constantes de signals PCNTL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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.

Précédent | Sommaire | Suivant
posix_isatty | Niveau supérieur | posix_mkfifo


posix_mkfifo

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_mkfifo -- Crée un fichier FIFO (first in, first out) (un pipe nommé)

Description

bool posix_mkfifo ( string pathname, int mode )

posix_mkfifo() crée un fichier spécial FIFO qui existe dans le système de fichiers, et sert de point de communication bidirectionnel pour les processus.

Liste de paramètres

pathname

Chemin vers le fichier FIFO.

mode

Le second paramètre mode doit être au format octal (i.e. 0644). Les droits donnés à la nouvelle pile FIFO dépendent aussi de la configuration de la fonction umask(). Les droits créées sont (mode & ~umask).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Précédent | Sommaire | Suivant
posix_kill | Niveau supérieur | posix_mknod


posix_setegid

(PHP 4 >= 4.0.2, PHP 5)

posix_setegid -- Modifie le GID réel du processus courant

Description

bool posix_setegid ( int gid )

Modifie l'identifiant de groupe réel du processus courant. C'est une fonction de haut niveau, et vous aurez besoin des droits appropriés (généralement ceux du super utilisateur), sur votre système, pour l'utiliser.

Liste de paramètres

gid

L'ID du groupe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
posix_mknod | Niveau supérieur | posix_seteuid


posix_seteuid

(PHP 4 >= 4.0.2, PHP 5)

posix_seteuid -- Modifie l'identifiant d'utilisateur réel (UID) du processus courant

Description

bool posix_seteuid ( int uid )

Modifie l'identifiant d'utilisateur réel du processus courant. C'est une fonction de haut niveau, et vous aurez besoin des droits appropriés (généralement ceux du super utilisateur), sur votre système, pour l'utiliser.

Liste de paramètres

uid

L'ID de l'utilisateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

posix_setgid()

Précédent | Sommaire | Suivant
posix_setegid | Niveau supérieur | posix_setgid


posix_setgid

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_setgid -- Fixe le GID effectif du processus courant

Description

bool posix_setgid ( int gid )

Fixe le GID effectif du processus courant. C'est une fonction privilégiée et vous devez avoir les privilèges appopriés (habituellement root) sur le système pour pouvoir l'exécuter. L'ordre approprié est d'abord posix_setgid(), puis posix_setuid().

Liste de paramètres

gid

L'ID du groupe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
posix_seteuid | Niveau supérieur | posix_setpgid


posix_setpgid

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_setpgid -- Fixe l'identifiant de groupe de processus

Description

bool posix_setpgid ( int pid, int pgid )

Ajoute le processus pid au groupe d'id pgid.

Liste de paramètres

pid

L'ID du processus.

pgid

L'ID du groupe du processus.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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.

Précédent | Sommaire | Suivant
posix_setgid | Niveau supérieur | posix_setsid


posix_setsid

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_setsid -- Fait du processus courant un chef de session

Description

int posix_setsid ( void )

Fait du processus courant un chef de session.

Valeurs de retour

Retourne l'identifiant de session, ou -1 si une erreur survient.

Voir aussi

Reportez-vous à POSIX.1 et setsid(2) dans le manuel de votre système POSIX pour plus d'informations sur le contrôle de tâche.

Précédent | Sommaire | Suivant
posix_setpgid | Niveau supérieur | posix_setuid


posix_setuid

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_setuid -- Fixe l'UID effective du processus courant

Description

bool posix_setuid ( int uid )

Fixe l'UID effective de l'utilisateur du processus courant. Vous devez avoir les privilèges nécessaires (traditionnellement ceux du root) sur votre système pour le faire.

Liste de paramètres

uid

L'ID de l'utilisateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

posix_setgid()

Précédent | Sommaire | Suivant
posix_setsid | Niveau supérieur | posix_strerror


posix_strerror

(PHP 4 >= 4.2.0, PHP 5)

posix_strerror -- Lit le message d'erreur associé à un numéro d'erreur POSIX

Description

string posix_strerror ( int errno )

Retourne le message d'erreur POSIX associé au numéro d'erreur errno.

Liste de paramètres

errno

Un numéro d'erreur POSIX, retourné par la fonction posix_get_last_error(). Si défini à 0, alors, la chaîne de caractères "Success" est retourné.

Valeurs de retour

Retourne le message d'erreur, sous la forme d'une chaîne de caractères.

Voir aussi

posix_get_last_error()

Précédent | Sommaire | Suivant
posix_setuid | Niveau supérieur | posix_times


posix_times

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_times -- Utilisation des ressources

Description

array posix_times ( void )

Retourne des informations sur l'utilisation courante du CPU.

Valeurs de retour

Retourne un tableau avec les informations sur l'utilisation du CPU. Les indices sont :

  • ticks - nombre de ticks depuis le dernier démarrage.

  • utime - temps utilisateur utilisé par le processus courant.

  • stime - temps système utilisé par le processus courant.

  • cutime - temps utilisateur utilisé par le processus courant et ses enfants.

  • cstime - temps système utilisé par le processus courant et ses enfants.

Notes

Avertissement

Cette fonction n'est pas fiable, elle peut retourner des valeurs négatives pour des temps élevés.

Précédent | Sommaire | Suivant
posix_strerror | Niveau supérieur | posix_ttyname


posix_ttyname

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_ttyname -- Retourne le nom de device du terminal

Description

string posix_ttyname ( int fd )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
posix_times | Niveau supérieur | posix_uname


posix_uname

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_uname -- Retourne le nom du système

Description

array posix_uname ( void )

Retourne des informations sur le système.

Posix impose que vous n'ayez pas d'à priori sur le format des chaînes, c'est-à-dire que vous ne devez pas vous attendre à avoir forcément trois chiffres pour la version, par exemple.

Valeurs de retour

Retourne un tableau associatif avec des informations sur le système. Les indices du tableau sont :

  • sysname - nom du système d'exploitation (exemple : Linux)

  • nodename - nom du système (e.g. valiant)

  • release - édition du système d'exploitation (e.g. 2.2.10)

  • version - version du système d'exploitation (e.g. #4 Tue Jul 20 17:01:36 MEST 1999)

  • machine - architecture système (e.g. i586)

  • domainname - DNS domainname (e.g. example.com)

domainname est une extension GNU et ne fait pas partie de POSIX.1, ce champ n'est donc accéssible que sur les systèmes GNU ou lors de l'utilisation de la GNU libc.

Précédent | Sommaire | Suivant
posix_ttyname | Niveau supérieur | Expressions rationnelles


Impression

Manuel PHP
Précédent Suivant

CXXIX. Impression

Introduction

Ces fonctions ne sont disponibles que sous Windows 9.x, ME, NT4 et 2000. Elles ont été ajoutées en PHP 4.0.4.

Installation

Cette extension PECL n'est pas distribuée avec PHP.

Les utilisateurs de Windows doivent activer la bibliothèque php_printer.dll dans le php.ini pour utiliser ces fonctions. Les extensions PECL non fournies par défaut peuvent être téléchargées depuis : http://pecl4win.php.net/

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
printer.default_printer | "" | PHP_INI_ALL |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Types de ressources

Cette extension définit les gestionnaires d'une connexion à une imprimante, d'une brosse, d'une police ou d'un stylo.

Table des matières
printer_abort -- Efface la file d'attente de l'imprimante
printer_close -- Ferme une connexion à une imprimante
printer_create_brush -- Crée une nouvelle brosse
printer_create_dc -- Crée un contexte d'imprimante
printer_create_font -- Crée une nouvelle police
printer_create_pen -- Crée un nouveau stylo
printer_delete_brush -- Efface une brosse
printer_delete_dc -- Efface un contexte d'imprimante
printer_delete_font -- Efface une police
printer_delete_pen -- Efface un stylo
printer_draw_bmp -- Dessine un fichier BMP
printer_draw_chord -- Dessine un arc de cercle
printer_draw_elipse -- Dessine une ellipse
printer_draw_line -- Dessine une ligne
printer_draw_pie -- Dessine un secteur angulaire
printer_draw_rectangle -- Dessine un rectangle
printer_draw_roundrect -- Dessine un rectangle, avec des coins arrondis
printer_draw_text -- Dessine un texte
printer_end_doc -- Ferme le document
printer_end_page -- Ferme la page active
printer_get_option -- Lit les informations de configuration de l'imprimante
printer_list -- Retourne la liste des imprimantes attachées à un serveur
printer_logical_fontheight -- Lit la taille logique de la police
printer_open -- Ouvre une connexion à une imprimante
printer_select_brush -- Sélectionne une brosse
printer_select_font -- Sélectionne une police de caractères
printer_select_pen -- Sélectionne un stylo
printer_set_option -- Configure la connexion à l'imprimante
printer_start_doc -- Commence un nouveau document
printer_start_page -- Commence une nouvelle page
printer_write -- Ecrit des données sur l'imprimante

Précédent | Sommaire | Suivant
PDO::pgsqlLOBUnlink | Niveau supérieur | printer_abort


printer_abort

(PECL)

printer_abort -- Efface la file d'attente de l'imprimante

Description

void printer_abort ( resource handle )

printer_abort efface la file d'attente de l'imprimante.

handle doit être une ressource d'imprimante valide.

Exemple 1. Exemple avec printer_abort()

<?php
$handle = printer_open();
printer_abort($handle);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
Impression | Niveau supérieur | printer_close


printer_close

(PECL)

printer_close -- Ferme une connexion à une imprimante

Description

void printer_close ( resource handle )

printer_close() ferme la connexion avec l'imprimante représentée par la ressource handle. printer_close() ferme aussi le contexte d'imprimante actif.

handle doit être une ressource d'imprimante valide.

Exemple 1. Exemple avec printer_close()

<?php
$handle = printer_open();
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_abort | Niveau supérieur | printer_create_brush


printer_create_brush

(PECL)

printer_create_brush -- Crée une nouvelle brosse

Description

resource printer_create_brush ( int style, string color )

printer_create_brush crée une nouvelle brosse et retourne une ressource de brosse. Une brosse est utilisée pour remplir des surfaces. Pour un exemple, voyez la fonction printer_select_brush(). color doit être une couleur au format RGB hexadécimal, c'est à dire "000000" pour le noir. style doit prendre la valeur de l'une des constantes suivantes :

  • PRINTER_BRUSH_SOLID : crée une brosse avec une couleur pleine.

  • PRINTER_BRUSH_DIAGONAL : crée une brosse avec une direction diagonale ascendante, de droite à gauche ( / ).

  • PRINTER_BRUSH_CROSS : crée une brosse avec une forme de croix ( + ).

  • PRINTER_BRUSH_DIAGCROSS : crée une brosse avec une forme de croix diagonale ( x ).

  • PRINTER_BRUSH_FDIAGONAL : crée une brosse avec une direction diagonale ascendante, de gauche à droite ( \ ).

  • PRINTER_BRUSH_HORIZONTAL : crée une brosse avec une direction horizontale ( - ).

  • PRINTER_BRUSH_VERTICAL : crée une brosse avec une direction horizontale ( | ).

  • PRINTER_BRUSH_CUSTOM : crée une brosse à partir d'un fichier BMP. Le second paramètre est alors utilisé pour spécifier le chemin jusqu'au fichier BMP, au lieu d'être une couleur.

Précédent | Sommaire | Suivant
printer_close | Niveau supérieur | printer_create_dc


printer_create_dc

(PECL)

printer_create_dc -- Crée un contexte d'imprimante

Description

void printer_create_dc ( resource handle )

printer_create_dc() crée un nouveau contexte d'imprimante pour l'imprimante handle. Un contexte d'imprimante est utilisé pour paramétrer les objets graphiques d'un document. handle doit être une ressource d'imprimante valide.

Exemple 1. Exemple avec printer_create_dc()

<?php
$handle = printer_open();
printer_start_doc($handle);
printer_start_page($handle);

printer_create_dc($handle);
/* Exploitation du contexte */
printer_set_option($handle, PRINTER_TEXT_COLOR, "333333");
printer_draw_text($handle, 1, 1, "text");
printer_delete_dc($handle);

/* Création d'un autre contexte */
printer_create_dc($handle);
printer_set_option($handle, PRINTER_TEXT_COLOR, "000000");
printer_draw_text($handle, 1, 1, "text");
/* Exploitation du contexte */

printer_delete_dc($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_create_brush | Niveau supérieur | printer_create_font


printer_create_font

(PECL)

printer_create_font -- Crée une nouvelle police

Description

resource printer_create_font ( string face, int height, int width, int font_weight, bool italic, bool underline, bool strikeout, int orientation )

printer_create_font crée une nouvelle ressource de police. Pour un exemple, voir la fonction printer_select_font(). face est le nom de la police. height est sa taille et width sa largeur. Le paramètre font_weight spécifie le poids de la police (400 est normal), et peut prendre comme valeur l'une des constantes suivantes :

  • PRINTER_FW_THIN : fixe un poids de police mince (100).

  • PRINTER_FW_ULTRALIGHT : fixe un poids de police très léger (200).

  • PRINTER_FW_LIGHT : fixe un poids de police léger (300).

  • PRINTER_FW_NORMAL : fixe un poids de police normal (400).

  • PRINTER_FW_MEDIUM : fixe un poids de police moyen (500).

  • PRINTER_FW_BOLD : fixe un poids de police gras (700).

  • PRINTER_FW_ULTRABOLD : fixe un poids de police très gras (800).

  • PRINTER_FW_HEAVY : fixe un poids de police lourd (900).

italic vaut TRUE pour indiquer que la police est en italique, et FALSE sinon.

underline vaut TRUE pour indiquer que la police est soulignée, et FALSE sinon.

strikeout vaut TRUE pour indiquer que la police est barrée, et FALSE sinon.

orientation spécifie l'orientation. Pour un exemple, voyez la fonction printer_select_font().

Précédent | Sommaire | Suivant
printer_create_dc | Niveau supérieur | printer_create_pen


printer_create_pen

(PECL)

printer_create_pen -- Crée un nouveau stylo

Description

resource printer_create_pen ( int style, int width, string color )

printer_create_pen() crée un nouveau stylo et retourne une ressource. Un stylo est utilisé pour dessiner des lignes et des courbes. Pour un exemple, voyez la fonction printer_select_pen(). color doit être une couleur au format RGB hexadécimal, "000000" pour le noir. width spécifie la largeur du stylo. style doit être l'une des constantes suivantes :

  • PRINTER_PEN_SOLID: crée un stylo plein.

  • PRINTER_PEN_DASH: crée un stylo pointillé avec des tirets.

  • PRINTER_PEN_DOT: crée un stylo pointillé avec des points.

  • PRINTER_PEN_DASHDOT: crée un stylo pointillé avec des tirets et des points.

  • PRINTER_PEN_DASHDOTDOT: crée un stylo pointillé avec des tirets et des doubles points.

  • PRINTER_PEN_INVISIBLE: crée un stylo invisible.

Précédent | Sommaire | Suivant
printer_create_font | Niveau supérieur | printer_delete_brush


printer_delete_brush

(PECL)

printer_delete_brush -- Efface une brosse

Description

void printer_delete_brush ( resource handle )

printer_delete_brush() efface la brosse représentée par sa ressource handle. Pour un exemple, voyez la fonction printer_select_brush(). Retourne NULL en cas de succès, ou FALSE si une erreur survient. handle doit être une ressource de brosse valide.

Précédent | Sommaire | Suivant
printer_create_pen | Niveau supérieur | printer_delete_dc


printer_delete_dc

(PECL)

printer_delete_dc -- Efface un contexte d'imprimante

Description

bool printer_delete_dc ( resource handle )

printer_delete_dc() efface le contexte représenté par sa ressource handle. Pour un exemple, voyez la fonction printer_create_dc(). Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. handle doit être une ressource de contexte d'imprimante valide.

Précédent | Sommaire | Suivant
printer_delete_brush | Niveau supérieur | printer_delete_font


printer_delete_font

(PECL)

printer_delete_font -- Efface une police

Description

void printer_delete_font ( resource handle )

printer_delete_font() efface la police représentée par sa ressource handle. Pour un exemple, voyez la fonction printer_select_font(). Retourne NULL en cas de succès, ou FALSE si une erreur survient. handle doit être une ressource de police valide.

Précédent | Sommaire | Suivant
printer_delete_dc | Niveau supérieur | printer_delete_pen


printer_delete_pen

(PECL)

printer_delete_pen -- Efface un stylo

Description

void printer_delete_pen ( resource handle )

printer_delete_pen() efface le stylo représenté par sa ressource handle. Pour un exemple, voyez la fonction printer_select_pen(). Retourne NULL en cas de succès, ou FALSE si une erreur survient. handle doit être une ressource de stylo valide.

Précédent | Sommaire | Suivant
printer_delete_font | Niveau supérieur | printer_draw_bmp


printer_draw_bmp

(PECL)

printer_draw_bmp -- Dessine un fichier BMP

Description

bool printer_draw_bmp ( resource handle, string filename, int x, int y [, int width, int height] )

printer_draw_bmp() dessine simplement l'image BMP filename, à la position x, y. handle doit être une ressource d'imprimante valide.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec printer_draw_bmp()

<?php
$handle = printer_open();
printer_start_doc($handle, "Mon Document");
printer_start_page($handle);

printer_draw_bmp($handle, "c:\\image.bmp", 1, 1);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_delete_pen | Niveau supérieur | printer_draw_chord


printer_draw_chord

(PECL)

printer_draw_chord -- Dessine un arc de cercle

Description

void printer_draw_chord ( resource handle, int rec_x, int rec_y, int rec_x1, int rec_y1, int rad_x, int rad_y, int rad_x1, int rad_y1 )

printer_draw_chord() dessine simplement un arc de cercle. handle doit être une ressource d'imprimante valide.

rec_x est l'abscisse supérieure gauche du rectangle d'encadrement.

rec_y est l'ordonnée supérieure gauche du rectangle d'encadrement.

rec_x1 est l'abscisse inférieure droite du rectangle d'encadrement.

rec_y1 est l'ordonnée inférieure droite du rectangle d'encadrement.

rad_x est l'abscisse du point de début de l'arc.

rad_y est l'ordonnée du point de début de l'arc.

rad_x1 est l'abscisse du point de fin de l'arc.

rad_y1 est l'ordonnée du point de fin de l'arc.

Exemple 1. Exemple avec printer_draw_chord()

<?php
$handle = printer_open();
printer_start_doc($handle, "Mon Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_chord($handle, 1, 1, 500, 500, 1, 1, 500, 1);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_draw_bmp | Niveau supérieur | printer_draw_elipse


printer_draw_elipse

(PECL)

printer_draw_elipse -- Dessine une ellipse

Description

void printer_draw_elipse ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y )

printer_draw_elipse() dessine une ellipse. handle doit être une ressource d'imprimante valide.

ul_x est l'abscisse supérieure gauche de l'ellipse.

ul_y est l'ordonnée supérieure gauche de l'ellipse.

lr_x est l'abscisse inférieure droite de l'ellipse.

lr_y est l'ordonnée inférieure droite de l'ellipse.

Exemple 1. Exemple avec printer_draw_elipse()

<?php
$handle = printer_open();
printer_start_doc($handle, "Mon Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_elipse($handle, 1, 1, 500, 500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_draw_chord | Niveau supérieur | printer_draw_line


printer_draw_line

(PECL)

printer_draw_line -- Dessine une ligne

Description

void printer_draw_line ( resource printer_handle, int from_x, int from_y, int to_x, int to_y )

printer_draw_line dessine une ligne entre les points de coordonnées from_x, from_y et to_x, to_y en utilisant le stylo courant. printer_handle doit être une ressource d'imprimante valide.

Exemple 1. Exemple avec printer_draw_line()

<?php
$handle = printer_open();
printer_start_doc($handle, "Mon Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 30, "000000");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 1, 10, 1000, 10);
printer_draw_line($handle, 1, 60, 500, 60);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_draw_elipse | Niveau supérieur | printer_draw_pie


printer_draw_pie

(PECL)

printer_draw_pie -- Dessine un secteur angulaire

Description

void printer_draw_pie ( resource handle, int rec_x, int rec_y, int rec_x1, int rec_y1, int rad1_x, int rad1_y, int rad2_x, int rad2_y )

printer_draw_pie() dessine un secteur angulaire. handle doit être une ressource d'imprimante valide.

rec_x est l'abscisse supérieure gauche du rectangle d'encadrement.

rec_y est l'ordonnée supérieure gauche du rectangle d'encadrement.

rec_x1 est l'abscisse inférieure droite du rectangle d'encadrement.

rec_y1 est l'ordonnée inférieure droite du rectangle d'encadrement.

rad_x est l'abscisse du point de début de l'arc.

rad_y est l'ordonnée du point de début de l'arc.

rad_x1 est l'abscisse du point de fin de l'arc.

rad_y1 est l'ordonnée du point de fin de l'arc.

Exemple 1. Exemple avec printer_draw_pie()

<?php
$handle = printer_open();
printer_start_doc($handle, "Mon Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_pie($handle, 1, 1, 500, 500, 1, 1, 500, 1);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_draw_line | Niveau supérieur | printer_draw_rectangle


printer_draw_rectangle

(PECL)

printer_draw_rectangle -- Dessine un rectangle

Description

void printer_draw_rectangle ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y )

printer_draw_rectangle() dessine un rectangle.

handle doit être une ressource d'imprimante valide.

ul_x est l'abscisse du coin supérieur gauche du rectangle.

ul_y est l'ordonnée du coin supérieur gauche du rectangle.

lr_x est l'abscisse du coin inférieur droit du rectangle.

lr_y est l'ordonnée du coin inférieur droit du rectangle.

Exemple 1. Exemple avec printer_draw_rectangle()

<?php
$handle = printer_open();
printer_start_doc($handle, "Mon Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_rectangle($handle, 1, 1, 500, 500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_draw_pie | Niveau supérieur | printer_draw_roundrect


printer_draw_roundrect

(PECL)

printer_draw_roundrect -- Dessine un rectangle, avec des coins arrondis

Description

void printer_draw_roundrect ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y, int width, int height )

printer_draw_roundrect() dessine un rectangle, avec des coins arrondis.

handle doit être une ressource d'imprimante valide.

ul_x est l'abscisse du coin supérieur gauche du rectangle.

ul_y est l'ordonnée du coin supérieur gauche du rectangle.

lr_x est l'abscisse du coin inférieur droit du rectangle.

lr_y est l'ordonnée du coin inférieur droit du rectangle.

width est la largeur de l'ellipse.

height est la longueur de l'ellipse.

Exemple 1. Exemple avec printer_draw_roundrect()

<?php
$handle = printer_open();
printer_start_doc($handle, "Mon Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_roundrect($handle, 1, 1, 500, 500, 200, 200);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_draw_rectangle | Niveau supérieur | printer_draw_text


printer_draw_text

(PECL)

printer_draw_text -- Dessine un texte

Description

void printer_draw_text ( resource printer_handle, string text, int x, int y )

printer_draw_text() dessine le texte text à la position x, y, en utilisant la police de caractères courante. printer_handle doit être une ressource d'imprimante valide.

Exemple 1. Exemple avec printer_draw_text()

<?php
$handle = printer_open();
printer_start_doc($handle, "Mon Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 72, 48, 400, false, false, false, 0);
printer_select_font($handle, $font);
printer_draw_text($handle, "test", 10, 10);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_draw_roundrect | Niveau supérieur | printer_end_doc


printer_end_doc

(PECL)

printer_end_doc -- Ferme le document

Description

bool printer_end_doc ( resource handle )

printer_end_doc ferme le document dans la file d'attente de l'imprimante. Il est maintenant prêt à être imprimé. Pour un exemple, voyez la fonction printer_start_doc(). handle doit être une ressource d'imprimante valide.

Précédent | Sommaire | Suivant
printer_draw_text | Niveau supérieur | printer_end_page


printer_end_page

(PECL)

printer_end_page -- Ferme la page active

Description

bool printer_end_page ( resource handle )

printer_end_page() ferme la page active du document en cours. Pour un exemple, voyez la fonction printer_start_doc(). handle doit être une ressource d'imprimante valide.

Précédent | Sommaire | Suivant
printer_end_doc | Niveau supérieur | printer_get_option


printer_get_option

(PECL)

printer_get_option -- Lit les informations de configuration de l'imprimante

Description

mixed printer_get_option ( resource handle, string option )

printer_get_option() lit la configuration de l'option option. handle doit être une ressource d'imprimante valide. Lisez la documentation de printer_set_option() pour connaître les valeurs possibles du paramètre option. De plus, les valeurs options suivantes sont accessibles en lecture :

  • PRINTER_DEVICENAME retourne le nom de device de l'imprimante.

  • PRINTER_DRIVERVERSION retourne la version du pilote de l'imprimante.

Exemple 1. Exemple avec printer_get_option()

<?php
$handle = printer_open();
echo printer_get_option($handle, PRINTER_DRIVERVERSION);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_end_page | Niveau supérieur | printer_list


printer_list

(PECL)

printer_list -- Retourne la liste des imprimantes attachées à un serveur

Description

array printer_list ( int enumtype [, string name [, int level]] )

printer_list() liste les imprimantes disponibles et leur fonctionnalités. level représente le niveau d'information demandé. Il peut prendre les valeurs de 1, 2, 4 ou 5. enumtype doit être l'une des constantes suivantes :

  • PRINTER_ENUM_LOCAL: liste les imprimantes locales.

  • PRINTER_ENUM_NAME: liste des imprimantes de name, qui peut être un serveur, un domaine ou un fournisseur d'impression.

  • PRINTER_ENUM_SHARED: ce paramètre ne peut être utilisé seul, il doit être combiné avec d'autres paramètres, grâce à l'opérateur OR. PRINTER_ENUM_SHARED détecte les imprimantes localement partagées.

  • PRINTER_ENUM_DEFAULT: (Win9.x uniquement) liste l'imprimante par défaut.

  • PRINTER_ENUM_CONNECTIONS: (WinNT/2000 uniquement) liste les imprimantes avec lesquelles l'utilisateur a établit une connexion.

  • PRINTER_ENUM_NETWORK: (WinNT/2000 uniquement) liste les imprimantes réseau du domaine de l'ordinateur. Valide uniquement si level vaut 1.

  • PRINTER_ENUM_REMOTE: (WinNT/2000 uniquement) liste les imprimantes réseau et les serveurs d'impression du domaine de l'ordinateur. Valide uniquement si level vaut 1.

Exemple 1. Exemple avec printer_list()

<?php
/* liste les imprimantes partagées locales */
var_dump(printer_list(PRINTER_ENUM_LOCAL | PRINTER_ENUM_SHARED));
?>

Précédent | Sommaire | Suivant
printer_get_option | Niveau supérieur | printer_logical_fontheight


printer_logical_fontheight

(PECL)

printer_logical_fontheight -- Lit la taille logique de la police

Description

int printer_logical_fontheight ( resource handle, int height )

printer_logical_fontheight() calcule la taille logique de la police pour la taille de height. handle doit être une ressource d'imprimante valide.

Exemple 1. Exemple avec printer_logical_fontheight()

<?php
$handle = printer_open();
echo printer_logical_fontheight($handle, 72);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_list | Niveau supérieur | printer_open


printer_open

(PECL)

printer_open -- Ouvre une connexion à une imprimante

Description

resource printer_open ( [string devicename] )

printer_open() tente d'ouvrir une connexion à l'imprimante devicename, puis retourne une ressource en cas de succès, et FALSE sinon.

Si aucun paramètre n'est fourni, printer_open() tente d'ouvrir une connexion avec l'imprimante par défaut. Si elle n'est pas détectée dans le fichier php.ini avec la directive printer.default_printer, PHP essaie de la détecter.

printer_open() initialise aussi un contexte d'impression.

Exemple 1. Exemple avec printer_open()

<?php
$handle = printer_open("HP Deskjet 930c");
$handle = printer_open();
?>

Précédent | Sommaire | Suivant
printer_logical_fontheight | Niveau supérieur | printer_select_brush


printer_select_brush

(PECL)

printer_select_brush -- Sélectionne une brosse

Description

void printer_select_brush ( resource printer_handle, resource brush_handle )

printer_select_brush() sélectionne la brosse brush_handle comme brosse active pour la connexion à l'imprimante printer_handle. Une brosse est utilisée pour remplir des surfaces. Si vous dessinez un rectangle, une brosse sera nécessaire pour dessiner le contenu, et un stylo pour dessiner les bords. Si vous n'avez pas sélectionné de brosse avant de dessiner des formes, elles ne seront pas remplies. printer_handle doit être une ressource d'imprimante valide. brush_handle doit être une ressource de brosse valide.

Exemple 1. Exemple avec printer_select_brush()

<?php
$handle = printer_open();
printer_start_doc($handle, "Mon Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);
$brush = printer_create_brush(PRINTER_BRUSH_CUSTOM, "c:\\brush.bmp");
printer_select_brush($handle, $brush);

printer_draw_rectangle($handle, 1, 1, 500, 500);

printer_delete_brush($brush);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "000000");
printer_select_brush($handle, $brush);
printer_draw_rectangle($handle, 1, 501, 500, 1001);
printer_delete_brush($brush);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_open | Niveau supérieur | printer_select_font


printer_select_font

(PECL)

printer_select_font -- Sélectionne une police de caractères

Description

void printer_select_font ( resource printer_handle, resource font_handle )

printer_select_font() sélectionne la police font_handle pour écrire le texte sur la connexion à l'imprimante printer_handle. printer_handle doit être une ressource d'imprimante valide. font_handle doit être une ressource de police de caractères valide.

Exemple 1. Exemple avec printer_select_font()

<?php
$handle = printer_open();
printer_start_doc($handle, "Mon Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 148, 76, PRINTER_FW_MEDIUM, false, false, false, -50);
printer_select_font($handle, $font);
printer_draw_text($handle, "PHP est tout simplement génial", 40, 40);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_select_brush | Niveau supérieur | printer_select_pen


printer_select_pen

(PECL)

printer_select_pen -- Sélectionne un stylo

Description

void printer_select_pen ( resource printer_handle, resource pen_handle )

printer_select_pen() sélectionne le stylo pen_handle comme stylo actif pour la connexion à l'imprimante printer_handle. Un stylo est utilisé pour dessiner des lignes et des courbes. Autrement dit, si vous dessinez une ligne, le stylo sera utilisé. Si vous dessinez un rectangle, il sera utilisé pour dessiner les contours tandis que la brosse sera utilisée pour remplir le contenu. Si vous n'avez pas sélectionné de stylo avant de dessiner des formes, elles ne seront pas tracées. printer_handle doit être une ressource d'imprimante valide. pen_handle doit être une ressource de stylo valide.

Exemple 1. Exemple avec printer_select_pen()

<?php
$handle = printer_open();
printer_start_doc($handle, "Mon Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 30, "2222FF");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 1, 60, 500, 60);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_select_font | Niveau supérieur | printer_set_option


printer_set_option

(PECL)

printer_set_option -- Configure la connexion à l'imprimante

Description

bool printer_set_option ( resource handle, int option, mixed value )

printer_set_option modifie les options suivantes pour la connexion à l'imprimante handle. handle doit être une ressource d'imprimante valide. option peut être l'une des constantes suivantes :

  • PRINTER_COPIES : indique le nombre de copies à imprimer. value doit être un entier.

  • PRINTER_MODE : spécifie le type de data ("text", "raw" ou "emf"), valuedoit être une chaîne de caractères.

  • PRINTER_TITLE : spécifie le nom du document, value doit être une chaîne de caractères.

  • PRINTER_ORIENTATION : spécifie l'orientation du papier, value peut être PRINTER_ORIENTATION_PORTRAIT ou PRINTER_ORIENTATION_LANDSCAPE

  • PRINTER_RESOLUTION_Y : spécifie la résolution en ordonnées, en DPI, value doit être un entier.

  • PRINTER_RESOLUTION_X : spécifie la résolution en abscisse, en DPI, value doit être un entier.

  • PRINTER_PAPER_FORMAT : spécifie un format de papier prédéfini : donnez à value la valeur de PRINTER_FORMAT_CUSTOM si vous souhaitez utiliser un format de papier personnalisé, grâce aux constantes PRINTER_PAPER_WIDTH et PRINTER_PAPER_LENGTH. value peut alors être l'une des constantes suivantes :

    • PRINTER_FORMAT_CUSTOM : vous laisse spécifier le format de papier.

    • PRINTER_FORMAT_LETTER : spécifie le format standard "letter" (8 1/2 par 11 pouces (2.54cm)).

    • PRINTER_FORMAT_LEGAL : spécifie le format standard "legal" (8 1/2 par 14 pouces (2.54cm)).

    • PRINTER_FORMAT_A3 : spécifie le format standard "A3" (297 par 420 millimètres).

    • PRINTER_FORMAT_A4 : spécifie le format standard "A4" (210 par 297 millimètres).

    • PRINTER_FORMAT_A5 : spécifie le format standard "A5" (148 par 210 millimètres).

    • PRINTER_FORMAT_B4 : spécifie le format standard "B4" (250 par 354 millimètres).

    • PRINTER_FORMAT_B5 : spécifie le format standard "B5" (182 par 257 millimètres).

    • PRINTER_FORMAT_FOLIO : spécifie le format standard "FOLIO" (8 1/2 par 13 pouces (2.54cm)).

  • PRINTER_PAPER_LENGTH : si PRINTER_PAPER_FORMAT vaut PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_LENGTH spécifie une longueur personnalisée de papier, en millimètres. value doit être un entier.

  • PRINTER_PAPER_WIDTH : si PRINTER_PAPER_FORMAT vaut PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_WIDTH spécifie une largeur personnalisée de papier, en millimètres. value doit être un entier.

  • PRINTER_SCALE : spécifie le facteur de mise à l'échelle du document. La taille physique de la page imprimée est alors mise à l'échelle avec un facteur égal à value/100. Par exemple, si vous donnez un facteur d'échelle de 50, l'impression sera de la moitié de la taille du document original. value doit être un entier.

  • PRINTER_BACKGROUND_COLOR : spécifie la couleur de fond pour le contexte actuel. value doit être une chaîne de caractères contenant une couleur au format RGB hexadécimal : par exemple, "005533".

  • PRINTER_TEXT_COLOR : spécifie la couleur du texte pour ce contexte d'imprimante. value doit être une chaîne de caractères contenant une couleur au format RGB hexadécimal : par exemple, "005533".

  • PRINTER_TEXT_ALIGN : spécifie l'alignement du texte pour le contexte d'imprimante. value peut être une combinaison, avec l'opérateur OR, des constantes suivantes :

    • PRINTER_TA_BASELINE : le texte sera aligné sur la ligne de base.

    • PRINTER_TA_BOTTOM : le texte sera aligné sur la ligne de fond.

    • PRINTER_TA_TOP : le texte sera aligné sur la ligne de haut.

    • PRINTER_TA_CENTER : le texte sera centré.

    • PRINTER_TA_LEFT : le texte sera aligné à gauche.

    • PRINTER_TA_RIGHT : le texte sera aligné à droite.

Exemple 1. Exemple avec printer_set_option()

<?php
$handle = printer_open();
printer_set_option($handle, PRINTER_SCALE, 75);
printer_set_option($handle, PRINTER_TEXT_ALIGN, PRINTER_TA_LEFT);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_select_pen | Niveau supérieur | printer_start_doc


printer_start_doc

(PECL)

printer_start_doc -- Commence un nouveau document

Description

bool printer_start_doc ( resource handle [, string document] )

printer_start_doc() crée un nouveau document dans la file d'attente de l'imprimante handle. Un document peut contenir plusieurs pages, et il est programmé pour s'imprimer. handle doit être une ressource d'imprimante valide. Le paramètre optionnel document sert à donner un nom au document.

Exemple 1. Exemple avec printer_start_doc()

<?php
$handle = printer_open();
printer_start_doc($handle, "Mon Document");
printer_start_page($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_set_option | Niveau supérieur | printer_start_page


printer_start_page

(PECL)

printer_start_page -- Commence une nouvelle page

Description

bool printer_start_page ( resource handle )

printer_start_page() crée une nouvelle page pour le document actif. Pour un exemple, voyez la fonction printer_start_doc(). handle doit être une ressource d'imprimante valide.

Précédent | Sommaire | Suivant
printer_start_doc | Niveau supérieur | printer_write


printer_write

(PECL)

printer_write -- Ecrit des données sur l'imprimante

Description

bool printer_write ( resource handle, string content )

printer_write() écrit le contenu de la variable content directement sur l'imprimante handle. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

handle doit être une ressource d'imprimante valide.

Exemple 1. Exemple avec printer_write()

<?php
$handle = printer_open();
printer_write($handle, "Texte à imprimer");
printer_close($handle);
?>

Précédent | Sommaire | Suivant
printer_start_page | Niveau supérieur | Exécution de programmes externes


Pspell

Manuel PHP
Précédent Suivant

CXXXII. Pspell

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.sourceforge.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 pour les utilisateurs de Microsoft Windows : Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : aspell-15.dll depuis le dossier bin de l'installation aspell.

Le support Win32 est disponible uniquement dans les versions 4.3.3 et supérieures de PHP. De plus, la version 0.50, au minimum, est nécessaire.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

PSPELL_FAST (entier)

PSPELL_NORMAL (entier)

PSPELL_BAD_SPELLERS (entier)

PSPELL_RUN_TOGETHER (entier)

Table des matières
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 -- Endroit où se trouvent les fichiers de données linguisitiques
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 -- Active la sauvegarde des paires de remplacement
pspell_new_config -- Charge un nouveau dictionnaire
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 une orthographe

Précédent | Sommaire | Suivant
ps_translate | Niveau supérieur | pspell_add_to_personal


pspell_add_to_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_add_to_personal -- Ajoute le mot au dictionnaire personnel

Description

bool pspell_add_to_personal ( int dictionary_link, string word )

pspell_add_to_personal() ajoute un mot au dictionnaire personnel. Si vous utilisez pspell_new_config() avec pspell_config_personal() pour ouvrir le dictionnaire, vous pourrez sauver le dictionnaire personnel ultérieurement avec pspell_save_wordlist(). Notez bien que cette fonction ne fonctionnera pas avec les versions antérieures pspell .11.2 et aspell .32.5.

Exemple 1. Exemple avec pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Précédent | Sommaire | Suivant
Pspell | Niveau supérieur | pspell_add_to_session


pspell_add_to_session

(PHP 4 >= 4.0.2, PHP 5)

pspell_add_to_session -- Ajoute le mot au dictionnaire personnel de la session courante

Description

bool pspell_add_to_session ( int dictionary_link, string word )

pspell_add_to_session() ajoute un mot au dictionnaire personnel associé à la version courante. C'est une fonction similaire à pspell_add_to_personal().

Précédent | Sommaire | Suivant
pspell_add_to_personal | Niveau supérieur | pspell_check


pspell_check

(PHP 4 >= 4.0.2, PHP 5)

pspell_check -- Vérifie un mot

Description

bool pspell_check ( int dictionary_link, string word )

pspell_check() vérifie l'orthographe d'un mot et retourne TRUE si l'orthographe est correcte, FALSE sinon.

Exemple 1. Exemple avec pspell_check()

<?php
$pspell_link = pspell_new ("fr");

if (pspell_check($pspell_link, "testt")) {
    echo 'L\'orthographe est exacte';
} else {
    echo 'Désolé, mauvaise orthographe';
}
?>

Précédent | Sommaire | Suivant
pspell_add_to_session | Niveau supérieur | pspell_clear_session


pspell_clear_session

(PHP 4 >= 4.0.2, PHP 5)

pspell_clear_session -- Remet à zéro la session courante

Description

bool pspell_clear_session ( int dictionary_link )

pspell_clear_session() remet à zéro la session courante. Le dictionnaire personnel est vidé et, par exemple, si vous tentez de l'enregistrer avec pspell_save_wordlist(), rien ne se passera.

Exemple 1. Exemple avec pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create ("en");
pspell_config_personal ($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config ($pspell_config);

pspell_add_to_personal ($pspell_link, "Vlad");
pspell_clear_session ($pspell_link);
pspell_save_wordlist ($pspell_link);  //"Vlad" ne sera pas sauvé
?>

Précédent | Sommaire | Suivant
pspell_check | Niveau supérieur | pspell_config_create


pspell_config_create

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_create -- Crée une configuration utilisée pour ouvrir un dictionnaire

Description

int pspell_config_create ( string language [, string spelling [, string jargon [, string encoding]]] )

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.

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

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

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.

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.

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, plus de vitesse)

  • PSPELL_NORMAL - Mode normal (plus de suggestions)

  • PSPELL_BAD_SPELLERS - Mode lent (beaucoup plus de suggestions, moins de vitesse)

Pour plus d'informations et d'exemples, vérifiez le manuel pspell sur leur site web :http://aspell.net/.

Exemple 1. Exemple avec pspell_config_create()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_personal($pspell_config, "en");
?>

Précédent | Sommaire | Suivant
pspell_clear_session | Niveau supérieur | pspell_config_data_dir


pspell_config_data_dir

(PHP 5)

pspell_config_data_dir -- Endroit où se trouvent les fichiers de données linguisitiques

Description

bool pspell_config_data_dir ( int conf, string directory )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
pspell_config_create | Niveau supérieur | pspell_config_dict_dir


pspell_config_dict_dir

(PHP 5)

pspell_config_dict_dir -- Endroit où se trouve le fichier global des mots

Description

bool pspell_config_dict_dir ( int conf, string directory )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
pspell_config_data_dir | Niveau supérieur | pspell_config_ignore


pspell_config_ignore

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_ignore -- Ignore les mots de moins de N caractères

Description

bool pspell_config_ignore ( int dictionary_link, int n )

pspell_config_ignore() doit être utilisée avec une configuration avant d'appeler pspell_new_config(). Cette fonction permet au vérificateur d'ignorer les mots trop courts. Les mots plus courts que n caractères seront ignorés.

Exemple 1. Exemple avec pspell_config_ignore()

<?php
$pspell_config = pspell_config_create ("en");
pspell_config_ignore($pspell_config, 5);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "abcd");  // Ce mot ne provoquera pas d'erreur
?>

Précédent | Sommaire | Suivant
pspell_config_dict_dir | Niveau supérieur | pspell_config_mode


pspell_config_mode

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_mode -- Change le mode de suggestion

Description

bool pspell_config_mode ( int dictionary_link, int mode )

pspell_config_mode() doit être appelée avant pspell_new_config(). Cette fonction détermine le nombre de suggestions qui seront retournées par pspell_suggest().

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, plus de vitesse)

  • PSPELL_NORMAL - Mode normal (plus de suggestions)

  • PSPELL_BAD_SPELLERS - Mode lent (beaucoup plus de suggestions, moins de vitesse)

Exemple 1. Exemple avec pspell_config_mode()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_mode($pspell_config, PSPELL_FAST);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Précédent | Sommaire | Suivant
pspell_config_ignore | Niveau supérieur | pspell_config_personal


pspell_config_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_personal -- Choisit le fichier qui contient le dictionnaire personnel

Description

bool pspell_config_personal ( int dictionary_link, string file )

pspell_config_personal() doit être appelée dans une configuration avant d'appeler pspell_new_config(). Le dictionnaire personnel sera chargé et utilisé en plus du dictionnaire standard, une fois que vous aurez appelé pspell_new_config(). Si le fichier n'existe pas, il sera créé. Ce fichier sera aussi le fichier où pspell_save_wordlist() sauvera le dictionnaire personnel ; il devra donc être accessible en écriture par PHP. Notez que cette fonction ne fonctionne pas avec les versions antérieures à pspell .11.2 et aspell .32.5.

Exemple 1. Exemple avec pspell_config_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Précédent | Sommaire | Suivant
pspell_config_mode | Niveau supérieur | pspell_config_repl


pspell_config_repl

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_repl -- Choisit le fichier qui contient les paires de remplacement

Description

bool pspell_config_repl ( int dictionary_link, string file )

pspell_config_repl() doit être appelée dans une configuration avant d'appeler pspell_new_config(). 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. Ce fichier devra donc être accessible en écriture par PHP. Notez que cette fonction ne fonctionne pas avec les versions antérieures à pspell .11.2 et aspell .32.5.

Exemple 1. Exemple avec pspell_config_repl()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Précédent | Sommaire | Suivant
pspell_config_personal | Niveau supérieur | pspell_config_runtogether


pspell_config_runtogether

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_runtogether -- Considère deux mots accolés comme un composé

Description

bool pspell_config_runtogether ( int dictionary_link, bool flag )

pspell_config_runtogether() doit être appelée dans une configuration avant d'appeler pspell_new_config(). Cette fonction indique si deux mots accolés doivent être traités comme un composé valide, même s'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.

Exemple 1. Exemple avec pspell_config_runtogether()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_runtogether($pspell_config, true);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Précédent | Sommaire | Suivant
pspell_config_repl | Niveau supérieur | pspell_config_save_repl


pspell_config_save_repl

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_save_repl -- Active la sauvegarde des paires de remplacement

Description

bool pspell_config_save_repl ( int dictionary_link, bool flag )

pspell_config_save_repl() doit être appelée dans une configuration avant d'appeler pspell_new_config(). Elle 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, et, si ce n'est pas le cas, elles ne le seront pas. Ce fichier devra donc être accessible en écriture par PHP. Notez que cette fonction ne fonctionne pas avec les versions antérieures à pspell .11.2 et aspell .32.5.

Précédent | Sommaire | Suivant
pspell_config_runtogether | Niveau supérieur | pspell_new_config


pspell_new_config

(PHP 4 >= 4.0.2, PHP 5)

pspell_new_config -- Charge un nouveau dictionnaire

Description

int pspell_new_config ( int config )

pspell_new_config() ouvre un nouveau dictionnaire et charge les paramètrages spécifiés dans 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().

Le paramètre de configuration est celui qui a été retourné par pspell_config_create() lors de la création de la configuration.

Exemple 1. Exemple avec pspell_new_config()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_personal(pspell_config);
?>

Précédent | Sommaire | Suivant
pspell_config_save_repl | Niveau supérieur | pspell_new_personal


pspell_new_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_new_personal -- Charge un nouveau dictionnaire avec un dictionnaire personnel

Description

int pspell_new_personal ( string personal, string language [, string spelling [, string jargon [, string encoding [, int mode]]]] )

pspell_new_personal() charge un nouveau dictionnaire avec un dictionnaire personnel, et retourne un identifiant de dictionnaire utilisé par d'autres fonctions pspells. Le dictionnaire 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(), et choisir le fichier de destination du dictionnaire personnel avec pspell_config_personal(), choisir le fichier de paire de remplacement avec pspell_config_repl() et ouvrir un nouveau dictionnaire avec pspell_new_config().

Le paramètre personal spécifie 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.

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

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

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.

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.

Le paramètre de mode mode est le mode de travail du vérificateur d'orthographe. Plusieurs modes sont disponibles :

  • PSPELL_FAST - Mode rapide (moins de suggestions, plus de vitesse)

  • PSPELL_NORMAL - Mode normal (plus de suggestions)

  • PSPELL_BAD_SPELLERS - Mode lent (beaucoup plus de suggestions, moins de vitesse)

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

Pour plus d'informations et d'exemples, vérifiez le manuel pspell sur leur site web :http://aspell.net/.

Exemple 1. Exemple avec pspell_new_personal()

<?php
$pspell_link = pspell_new_personal("/var/dictionaries/custom.pws",
                                   "en", "", "", "",
                                    PSPELL_FAST | PSPELL_RUN_TOGETHER);
?>

Précédent | Sommaire | Suivant
pspell_new_config | Niveau supérieur | pspell_new


pspell_new

(PHP 4 >= 4.0.2, PHP 5)

pspell_new -- Charge un nouveau dictionnaire

Description

int pspell_new ( string language [, string spelling [, string jargon [, string encoding [, int mode]]]] )

pspell_new() ouvre un nouveau dictionnaire et retourne un identifiant de dictionnaire, pour être utilisé avec d'autres fonctions pspell.

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 '_'.

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 ``americain'', ``britannique'', et ``canadien''.

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.

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

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, plus de vitesse)

  • PSPELL_NORMAL - Mode normal (plus de suggestions)

  • PSPELL_BAD_SPELLERS - Mode lent (beaucoup plus de suggestions, moins de vitesse)

  • PSPELL_RUN_TOGETHER - Considère que des mots accolés forment un composé autorisé. C'est-à-dire que "lechat" sera un composé valide. Cette option ne modifie que les résutlat retournés par pspell_check(); pspell_suggest() retournera toujours les mêmes suggestions.

mode est un champ de bit, 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 qu'une seule en même temps.

Pour plus d'informations et d'exemples, reportez-vous au site http://aspell.net/ (en anglais).

Exemple 1. Exemple avec pspell_new()

<?php
$pspell_link = pspell_new("en", "", "", "", PSPELL_FAST|PSPELL_RUN_TOGETHER);
?>

Précédent | Sommaire | Suivant
pspell_new_personal | Niveau supérieur | pspell_save_wordlist


pspell_save_wordlist

(PHP 4 >= 4.0.2, PHP 5)

pspell_save_wordlist -- Sauve le dictionnaire personnel dans un fichier

Description

bool pspell_save_wordlist ( int dictionary_link )

pspell_save_wordlist() sauve le dictionnaire personnel de la session courante. Le dictionnaire doit avoir été ouvert avec pspell_new_personal(), et la localisation des fichiers doit avoir été spécifiée avec pspell_config_personal() et (éventuellement) pspell_config_repl(). Notez que cette fonction n'est pas disponible avec les versions antérieures à pspell .11.2 et aspell .32.5.

Exemple 1. Exemple pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/tmp/dicts/newdict");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Précédent | Sommaire | Suivant
pspell_new | Niveau supérieur | pspell_store_replacement


pspell_store_replacement

(PHP 4 >= 4.0.2, PHP 5)

pspell_store_replacement -- Enregistre une paire de remplacement pour un mot

Description

bool pspell_store_replacement ( int dictionary_link, string misspelled, string correct )

pspell_store_replacement() enregistre une paire de remplacement pour un mot de façon à ce que cette suggestion soit retournée par pspell_suggest() plus tard. Pour pouvoir utiliser cette fonction, vous devez utiliser pspell_new_personal() pour ouvrir le dictionnaire. Pour pouvoir sauver tout le temps les paires de remplacement, vous devez utiliser pspell_config_personal() et pspell_config_repl() pour indiquer le lieu de sauvegarde des dictionnaires personnels, et pspell_save_wordlist() pour enregistrer les modifications sur le disque. Ce fichier devra donc être accessible en écriture par PHP. Notez que cette fonction ne fonctionne pas avec les versions antérieures à pspell .11.2 et aspell .32.5.

Exemple 1. Exemple avec pspell_store_replacement()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);

pspell_store_replacement($pspell_link, $misspelled, $correct);
pspell_save_wordlist($pspell_link);
?>

Précédent | Sommaire | Suivant
pspell_save_wordlist | Niveau supérieur | pspell_suggest


pspell_suggest

(PHP 4 >= 4.0.2, PHP 5)

pspell_suggest -- Suggère une orthographe

Description

array pspell_suggest ( int dictionary_link, string word )

pspell_suggest() retourne un tableau de suggestions pour le mot word.

Exemple 1. Exemple avec pspell_suggest()

<?php
$pspell_link = pspell_new("en");

if (!pspell_check($pspell_link, "testt")) {
    $suggestions = pspell_suggest($pspell_link, "testt");

    foreach ($suggestions as $suggestion) {
        echo "Orthographes suggérées : $suggestion<br />";
    }
}
?>

Précédent | Sommaire | Suivant
pspell_store_replacement | Niveau supérieur | qtdom


qtdom

Manuel PHP
Précédent Suivant

CXXXIII. qtdom

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.0.0.

Pré-requis

Vous aurez besoin de la bibliothèque Qt-library >=2.2.0.

Installation

Pour ajouter le support de qtdom dans PHP, ajoutez l'option --with-qtdom lors de la compilation.

Table des matières
qdom_error -- Retourne le message d'erreur de la dernière opération QDOM, ou FALSE si aucune erreur n'est survenue
qdom_tree -- Crée une arbre à partir d'une chaîne XML

Précédent | Sommaire | Suivant
pspell_suggest | Niveau supérieur | qdom_error


qdom_error

(PHP 4 >= 4.0.5, PECL)

qdom_error -- Retourne le message d'erreur de la dernière opération QDOM, ou FALSE si aucune erreur n'est survenue

Description

string qdom_error ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
qtdom | Niveau supérieur | qdom_tree


qdom_tree

(PHP 4 >= 4.0.4, PECL)

qdom_tree -- Crée une arbre à partir d'une chaîne XML

Description

QDomDocument qdom_tree ( string doc )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
qdom_error | Niveau supérieur | Radius


Rar

Manuel PHP
Précédent Suivant

CXXXV. Rar

Introduction

Rar est un mécanisme d'archivage puissant et efficace, créé par Eugene Roshal. Cette extension vous donne la possibilité de lire des archives Rar, mais pas de créer des archives Rar, car ce n'est pas supporté par la bibliothèque, et c'est explicitement interdit par la licence.

Plus d'informations sur Rar et UnRar sont disponibles sur http://www.rarlabs.com/.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Installation

Rar est actuellement disponible via PECL http://pecl.php.net/package/rar.

Vous pouvez utiliser l'installeur PECL pour installer l'extension Rar, avec la commande suivante : pecl -v install rar.

Vous pouvez aussi télécharger le paquet tar.gz, et installer 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 Windows peuvent télécharger l'extension DLL php_rar.dll ici : http://snaps.php.net/win32/PECL_STABLE/.

Types de ressources

Il y a une ressource, utilisée par l'extension Rar : un pointeur de fichier, retourné par rar_open().

Constantes pré-définies

RAR_HOST_MSDOS (entier)

RAR_HOST_OS2 (entier)

RAR_HOST_WIN32 (entier)

RAR_HOST_UNIX (entier)

RAR_HOST_BEOS (entier)

Exemples

Exemple 2. Exemple avec l'extension Rar

<?php

$rar_file = rar_open('exemple.rar')
or die("Impossible d'ouvrir l'archive Rar");

$entries = rar_list($rar_file);

foreach ($entries as $entry) {
   echo 'Nom du fichier : ' . $entry->getName() . "\n";
   echo 'Taille du fichier : ' . $entry->getPackedSize() . "\n";
   echo 'Taille du fichier décompressé : ' . $entry->getUnpackedSize() . "\n";

   $entry->extract('/dossier/extraction/');
}

rar_close($rar_file);

?>

Cet exemple ouvre une archive Rar, et extrait chaque élément du dossier.

Table des matières
rar_close -- Referme une archive Rar, et libère les ressources
rar_entry_get -- Lit un élément dans l'archive Rar
Rar::extract -- Extrait un élément d'une archive Rar
Rar::getAttr -- Lit les attributs d'un élément d'archive Rar
Rar::getCrc -- Lit la somme de contrôle d'un élément d'archive Rar
Rar::getFileTime -- Lit la date de dernière modification d'un élément d'archive Rar
Rar::getHostOs -- Lit l'OS d'un élément d'archive Rar
Rar::getMethod -- Lit la méthode de compression d'un élément d'archive Rar
Rar::getName -- Lit le nom de l'élément d'archive Rar
Rar::getPackedSize -- Lit la taille compressée d'un élément d'archive Rar
Rar::getUnpackedSize -- Lit la taille décompressée d'un élément d'archive Rar
Rar::getVersion -- Lit la version utilisée pour créer le dernier élément Rar
rar_list -- Liste les éléments de l'archive Rar
rar_open -- Ouvre une archive Rar

Précédent | Sommaire | Suivant
radius_strerror | Niveau supérieur | rar_close


rar_close

(no version information, might be only in CVS)

rar_close -- Referme une archive Rar, et libère les ressources

Description

bool rar_close ( resource rar_file )

rar_close() referme l'archive Rar rar_file, et libère les ressources.

rar_close() retourne FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
Rar | Niveau supérieur | rar_entry_get


rar_entry_get

(no version information, might be only in CVS)

rar_entry_get -- Lit un élément dans l'archive Rar

Description

RarEntry rar_entry_get ( resource rar_file, string entry_name )

rar_entry_get() lit l'objet décrivant l'élément d'archive Rar courant.

Exemple 1. Exemple avec rar_entry_get()

<?php

$rar_file = rar_open('example.rar')
    or die("Impossible d'ouvrir l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt')
    or die("Impossible de trouver cet élément");

print_r($entry);

?>

rar_get_entry() retourne un objet ou bien FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
rar_close | Niveau supérieur | Rar::extract


Rar::extract

(no version information, might be only in CVS)

Rar::extract -- Extrait un élément d'une archive Rar

Description

bool Rar::extract ( string dir [, string filepath] )

Rar::extract() extrait les données de l'élément courant dans le dossier dir. Un nouveau fichier est créé dans le dossier dir, avec le nom de l'élément d'archive. Si filepath est spécifié à la place de dir, Rar::extract() extraira les données dans le fichier spécifié.

Exemple 1. Exemple avec Rar::extract()

<?php

$rar_file = rar_open('example.rar')
    or die("Impossible d'ouvrir l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt')
    or die("Impossible de trouver cet élément");

$entry->extract('/dir/to'); // crée le fichier /dir/to/Dir/file.txt
$entry->extract(false, '/dir/to/new_name.txt'); // crée le fichier /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);

?>

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
rar_entry_get | Niveau supérieur | Rar::getAttr


Rar::getAttr

(no version information, might be only in CVS)

Rar::getAttr -- Lit les attributs d'un élément d'archive Rar

Description

int Rar::getAttr ( void )

Rar::getAttr() retourne les attributs de l'élément courant de l'archive Rar.

Exemple 1. Exemple avec Rar::getAttr()

<?php

$rar_file = rar_open('example.rar')
    or die("Impossible d'ouvrir l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt')
    or die("Impossible de trouver cet élément");

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

?>

Rar::getAttr() retourne FALSE en cas d'erreur.

Voir aussi Rar::getHostOs().

Précédent | Sommaire | Suivant
Rar::extract | Niveau supérieur | Rar::getCrc


Rar::getCrc

(no version information, might be only in CVS)

Rar::getCrc -- Lit la somme de contrôle d'un élément d'archive Rar

Description

int Rar::getCrc ( void )

Rar::getCrc() lit la somme de contrôle de l'élément d'archive Rar courant.

Exemple 1. Exemple avec Rar::getCrc()

<?php

?>

Rar::getCrc() retourne FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
Rar::getAttr | Niveau supérieur | Rar::getFileTime


Rar::getFileTime

(no version information, might be only in CVS)

Rar::getFileTime -- Lit la date de dernière modification d'un élément d'archive Rar

Description

string Rar::getFileTime ( void )

Rar::getFileTime() retourne la date de modification de l'élément courant, au format YYYY-MM-DD HH:II:SS.

Exemple 1. Exemple avec Rar::getFileTime()

<?php

$rar_file = rar_open('example.rar')
    or die("Impossible d'ouvrir l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt')
    or die("Impossible de trouver cet élément");

echo "Modification de " . $entry->getName() . " : " . $entry->getFileTime();

?>

Rar::getFileTime() retourne FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
Rar::getCrc | Niveau supérieur | Rar::getHostOs


Rar::getHostOs

(no version information, might be only in CVS)

Rar::getHostOs -- Lit l'OS d'un élément d'archive Rar

Description

int Rar::getHostOs ( void )

Rar::getHostOs() lit l'OS de l'élément d'archive Rar courant.

Exemple 1. Exemple avec Rar::getHostOs()

<?php

$rar_file = rar_open('example.rar')
    or die("Impossible d'ouvrir l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt')
    or die("Impossible de trouver cet élément");

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

?>

Rar::getHostOs() retourne FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
Rar::getFileTime | Niveau supérieur | Rar::getMethod


Rar::getMethod

(no version information, might be only in CVS)

Rar::getMethod -- Lit la méthode de compression d'un élément d'archive Rar

Description

int Rar::getMethod ( void )

Rar::getMethod() retourne un nombre représentant la méthode utilisée lors de la compression Rar de l'élément d'archive courant.

Exemple 1. Exemple avec Rar::getMethod()

<?php

$rar_file = rar_open('example.rar')
    or die("Impossible d'ouvrir l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt')
    or die("Impossible de trouver cet élément");

echo "Numéro de la méthode : " . $entry->getMethod();

?>

Rar::getMethod() retourne FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
Rar::getHostOs | Niveau supérieur | Rar::getName


Rar::getName

(no version information, might be only in CVS)

Rar::getName -- Lit le nom de l'élément d'archive Rar

Description

string Rar::getName ( void )

Rar::getName() retourne le nom complet de l'élément d'archive.

Exemple 1. Exemple avec Rar::getName()

<?php

$rar_file = rar_open('example.rar')
    or die("Impossible d'ouvrir l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt')
    or die("Impossible de trouver cet élément");

echo "Nom de l'élément : " . $entry->getName();

?>

Rar::getName() returns FALSE on error.

Précédent | Sommaire | Suivant
Rar::getMethod | Niveau supérieur | Rar::getPackedSize


Rar::getPackedSize

(no version information, might be only in CVS)

Rar::getPackedSize -- Lit la taille compressée d'un élément d'archive Rar

Description

int Rar::getPackedSize ( void )

Rar::getPackedSize() lit la taille compressée de l'élément d'archive Rar.

Exemple 1. Exemple avec Rar::getPackedSize()

<?php

$rar_file = rar_open('example.rar')
    or die("Impossible d'ouvrir l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt')
    or die("Impossible de trouver cet élément");

echo "Taille compressée de " . $entry->getName() . " = " . $entry->getPackedSize() . " octets";

?>

Rar::getPackedSize() returns FALSE on error.

Précédent | Sommaire | Suivant
Rar::getName | Niveau supérieur | Rar::getUnpackedSize


Rar::getUnpackedSize

(no version information, might be only in CVS)

Rar::getUnpackedSize -- Lit la taille décompressée d'un élément d'archive Rar

Description

int Rar::getUnpackedSize ( void )

Rar::getUnpackedSize() lit la taille décompressée de l'élément d'archive Rar.

Exemple 1. Exemple avec Rar::getUnpackedSize()

<?php

$rar_file = rar_open('example.rar')
    or die("Impossible d'ouvrir l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt')
    or die("Impossible de trouver cet élément");

echo "Taille décompressée de " . $entry->getName() . " = " . $entry->getUnpackedSize() . " octets";

?>

Rar::getUnpackedSize() returns FALSE on error.

Précédent | Sommaire | Suivant
Rar::getPackedSize | Niveau supérieur | Rar::getVersion


Rar::getVersion

(no version information, might be only in CVS)

Rar::getVersion -- Lit la version utilisée pour créer le dernier élément Rar

Description

int Rar::getVersion ( void )

Rar::getVersion lit la version utilisée pour créer le dernier élément Rar.

Exemple 1. Exemple avec Rar::getVersion()

<?php

$rar_file = rar_open('example.rar')
    or die("Impossible d'ouvrir l'archive Rar");

$entry = rar_entry_get($rar_file, 'Dir/file.txt')
    or die("Impossible de trouver cet élément");

echo "Version de Rar (WinRAR) utilisée : " . $entry->getVersion();

?>

Rar::getVersion() retourne FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
Rar::getUnpackedSize | Niveau supérieur | rar_list


rar_list

(no version information, might be only in CVS)

rar_list -- Liste les éléments de l'archive Rar

Description

array rar_list ( resource rar_file )

rar_list() liste les éléments de l'archive Rar rar_file.

Exemple 1. Exemple avec rar_list()

<?php

$rar_file = rar_open('example.rar')
    or die("Impossible d'ouvrir l'archive Rar");

$entries_list = rar_list($rar_file);

print_r($entries_list);

?>

rar_list() retourne un tableau d'éléments, ou FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
Rar::getVersion | Niveau supérieur | rar_open


rar_open

(no version information, might be only in CVS)

rar_open -- Ouvre une archive Rar

Description

resource rar_open ( string filename [, string password] )

rar_open() ouvre l'archive Rar filename et retourne une ressource Rar.

rar_open() retourne une ressource Rar ou bien FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
rar_list | Niveau supérieur | Readline (GNU)


Readline (GNU)

Manuel PHP
Précédent Suivant

CXXXVI. Readline (GNU)

Introduction

Les fonctions readline implémentent une interface avec la bibliothèque GNU Readline. Ces fonctions fournissent une ligne de commande éditable, un peu comme lorsque Bash vous permet d'utiliser les flèches de déplacement pour insérer un caractère ou passer en revue l'historique. À cause de l'interactivité de ces commande, elles ne seront que rarement utiles pour les applications Web, mais peuvent se révéler utiles lorsqu'un script est exécuté depuis une ligne de commande.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Pré-requis

Pour utiliser les fonctions readline, vous devez installer la bibliothèque libreadline. Vous pouvez la trouver sur la page du projet GNU, à http://cnswww.cns.cwru.edu/~chet/readline/rltop.html. Elle est maintenue par Chet Ramey, qui est l'auteur de Bash.

Vous pouvez aussi utiliser ces fonctions avec la bibliothèque libedit, un remplacement de la bibliothèque readline, qui n'est pas GPL. La bibliothèque libedit est sous licence BSD, et elle est disponible depuis http://www.thrysoee.dk/editline/.

Installation

Pour utiliser ces fonctions, vous devez compiler PHP, en version CGI ou CLI. Vous devez aussi utiliser l'option de compilation --with-readline[=DIR]. Si vous souhaitez utiliser la bibliothèque libedit readline, en remplacement, compilez PHP avec l'option --with-libedit[=DIR].

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
readline_add_history -- Ajoute une ligne à l'historique
readline_callback_handler_install -- Initialise l'interface et le terminal de callback de readline, affiche le prompt et retourne immédiatement
readline_callback_handler_remove -- Efface un gestionnaire de callback installé précédemment et restaure les paramètres du terminal
readline_callback_read_char -- Lit un caractère et informe l'interface de callback readline lorsqu'une ligne est reçue
readline_clear_history -- Efface l'historique
readline_completion_function -- Enregistre une fonction de complétion
readline_info -- Lit/modifie diverses variables internes
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

Précédent | Sommaire | Suivant
rar_open | Niveau supérieur | readline_add_history


readline_add_history

(PHP 4, PHP 5)

readline_add_history -- Ajoute une ligne à l'historique

Description

bool readline_add_history ( string line )

Ajoute une ligne à l'historique.

Liste de paramètres

line

La ligne à ajouter à l'historique.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
Readline (GNU) | Niveau supérieur | readline_callback_handler_install


readline_callback_handler_install

(PHP 5 >= 5.1.0RC1)

readline_callback_handler_install -- Initialise l'interface et le terminal de callback de readline, affiche le prompt et retourne immédiatement

Description

bool readline_callback_handler_install ( string prompt, callback callback )

Définie une interface de calback pour readline, affiche le prompt et retourne immédiatement. Appeler cette fonction deux fois sans effacer au préalable l'interface de callback précédente effacera automatiquement et proprement l'ancienne interface.

La fonctionnalité de callback 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, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple d'interface de callback Readline

<?php
function rl_callback($ret)
{
    global $c, $prompting;

    echo "You entered: $ret\n";
    $c++;

    if ($c > 10) {
        $prompting = false;
        readline_callback_handler_remove();
    } else {
        readline_callback_handler_install("[$c] Entrer quelque chose : ", 'rl_callback');
    }
}

$c = 1;
$prompting = true;

readline_callback_handler_install("[$c] Entrer quelque chose : ", 'rl_callback');

while ($prompting) {
    $w = NULL;
    $e = NULL;
    $n = stream_select($r = array(STDIN), $w, $e, null);
    if ($n && in_array(STDIN, $r)) {
        // lit un caractère, appelera la fonction de callback lorsqu'une nouvelle ligne est entrée
        readline_callback_read_char();
    }
}

echo "Le prompt est désactivé. Tout a été effectué.\n";
?>

Voir aussi

readline_callback_handler_remove()
readline_callback_read_char()
stream_select()

Précédent | Sommaire | Suivant
readline_add_history | Niveau supérieur | readline_callback_handler_remove


readline_callback_handler_remove

(PHP 5 >= 5.1.0RC1)

readline_callback_handler_remove -- Efface un gestionnaire de callback installé précédemment et restaure les paramètres du terminal

Description

bool readline_callback_handler_remove ( void )

Efface un gestionnaire de callback installé précédemment et restaure les paramètres du terminal.

Valeurs de retour

Retourne TRUE si un gestionnaire de callback 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 callback readline.

Voir aussi

readline_callback_handler_install()
readline_callback_read_char()

Précédent | Sommaire | Suivant
readline_callback_handler_install | Niveau supérieur | readline_callback_read_char


readline_callback_read_char

(PHP 5 >= 5.1.0RC1)

readline_callback_read_char -- Lit un caractère et informe l'interface de callback readline lorsqu'une ligne est reçue

Description

void readline_callback_read_char ( void )

Lit un caractère de l'entrée utilisateur. Lorsqu'une ligne est reçue, la fonction informe l'interface de callback readline installée en utilisant readline_callback_handler_install() qu'une ligne est prête à être entrée.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Voir la fonction readline_callback_handler_install() pour un exemple concernant l'utilisation de l'interface de callback readline.

Voir aussi

readline_callback_handler_install()
readline_callback_handler_remove()

Précédent | Sommaire | Suivant
readline_callback_handler_remove | Niveau supérieur | readline_clear_history


readline_clear_history

(PHP 4, PHP 5)

readline_clear_history -- Efface l'historique

Description

bool readline_clear_history ( void )

Efface l'historique.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
readline_callback_read_char | Niveau supérieur | readline_completion_function


readline_completion_function

(PHP 4, PHP 5)

readline_completion_function -- Enregistre une fonction de complétion

Description

bool readline_completion_function ( callback function )

Enregistre une nouvelle fonction de complétion. C'est la même fonctionnalité que lorsque vous utilisez la touche de tabulation sous Bash.

Liste de paramètres

function

Vous devez fournir le nom d'une fonction qui accepte un nom partiel de commande, et retourne une liste de fonctions complète possibles.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
readline_clear_history | Niveau supérieur | readline_info


readline_info

(PHP 4, PHP 5)

readline_info -- Lit/modifie diverses variables internes

Description

mixed readline_info ( [string varname [, string newvalue]] )

Lit/modifie diverses variables internes.

Liste de paramètres

varname

Un nom de variable.

newvalue

Si fourni, ce sera la nouvelle valeur à définir.

Valeurs de retour

Appelée sans paramètre, readline_info() retourne une tableau contenant les valeurs des paramètres de Readline. Les éléments seront indexés par les clés suivantes : done, end, erase_empty_line, library_version, line_buffer, mark, pending_input, point, prompt, readline_name, et terminal_name.

Si appelée avec un ou deux paramètres, l'ancienne valeur est retournée.

Précédent | Sommaire | Suivant
readline_completion_function | Niveau supérieur | readline_list_history


readline_list_history

(PHP 4, PHP 5)

readline_list_history -- Liste l'historique

Description

array readline_list_history ( void )

Liste l'historique.

Valeurs de retour

Retourne un tableau avec la liste de toutes les lignes de commandes de l'historique. Les éléments sont indexés numériquement, à partir de 0.

Précédent | Sommaire | Suivant
readline_info | Niveau supérieur | readline_on_new_line


readline_on_new_line

(PHP 5 >= 5.1.0RC1)

readline_on_new_line -- Informe readline que le curseur est passé à une nouvelle ligne

Description

void readline_on_new_line ( void )

Informe readline que le curseur est passé à une nouvelle ligne.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
readline_list_history | Niveau supérieur | readline_read_history


readline_read_history

(PHP 4, PHP 5)

readline_read_history -- Lit l'historique

Description

bool readline_read_history ( [string filename] )

Lit une ligne de l'historique depuis le fichier filename.

Liste de paramètres

filename

Chemin vers le fichier contenant l'historique des commandes.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
readline_on_new_line | Niveau supérieur | readline_redisplay


readline_redisplay

(PHP 5 >= 5.1.0RC1)

readline_redisplay -- Demande à readline de refaire l'affichage

Description

void readline_redisplay ( void )

Demande à readline de refaire l'affichage.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
readline_read_history | Niveau supérieur | readline_write_history


readline_write_history

(PHP 4, PHP 5)

readline_write_history -- Écrit dans l'historique

Description

bool readline_write_history ( [string filename] )

Écrit l'historique dans le fichier filename.

Liste de paramètres

filename

Chemin vers le fichier à sauvegarder.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
readline_redisplay | Niveau supérieur | readline


readline

(PHP 4, PHP 5)

readline -- Lit une ligne

Description

string readline ( [string prompt] )

Retourne une ligne entrée par l'utilisateur. Vous devez ajouter cette ligne à l'historique vous-même, avec la fonction readline_add_history().

Liste de paramètres

prompt

Vous pouvez spécifier une chaîne de caractères à utiliser comme prompt à l'utilisateur.

Valeurs de retour

Retourne une chaîne de caractères depuis l'utilisateur. La ligne retournée a été débarrassée du caractère final de nouvelle ligne.

Exemples

Exemple 1. Exemple avec readline()

<?php
// Lit 3 commandes de l'utilisateur
for ($i=0; $i < 3; $i++) {
        $line = readline("Commande : ");
        readline_add_history($line);
}

// Liste l'historique
print_r(readline_list_history());

// Liste les variables
print_r(readline_info());
?>

Précédent | Sommaire | Suivant
readline_write_history | Niveau supérieur | Recode (GNU)


Recode (GNU)

Manuel PHP
Précédent Suivant

CXXXVII. Recode (GNU)

Introduction

Ce module contient l'interface à la bibliothèque GNU Recode library, version 3.5. La bibliothèque GNU Recode library convertit les fichiers ayant des jeux de caractères différents. Lorsque ce n'est pas possible, elle se débarrasse des caractères illégaux, ou bien effectue une approximation. La bibliothèque reconnaît ou produit près de 150 jeux de caractères différents, et peut quasiment tous les convertir de l'un vers l'autre. La plupart des jeux de caractères de la RFC 1345 sont supportés.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Pré-requis

il faut que vous ayez la bibliothèque GNU Recode 3.5 ou plus récente, installée sur votre système. Vous pouvez télécharger GNU Recode ici.

Avertissement

La bibliothèque GNU Recode 3.6 ajoute des caractères étranges à la fin de la chaîne recodée dans certaines circonstances. Il est plus prudent d'utiliser la version 3.5 de la bibliothèque GNU Recode ou d'utiliser une des alternatives comme les extensions iconv ou mbstring.

Installation

Pour utiliser ces fonctions, vous devez compiler PHP avec l'option--with-recode[=DIR].

Avertissement

Des crashs et des problèmes de démarrage de PHP peuvent être rencontrés lorsque l'extension recode est chargée APRES les extensions MySQL ou imap. Charger l'extension recode avant ces deux extensions corrige le problème. Ceci est dû à un problème technique car la bibliothèque c-client de IMAP et recode ont toutes les deux leur propre fonction hash_lookup() et les extensions mysql et recode ont toutes les deux leur fonction hash_insert.

Avertissement

Les extensions IMAP, recode, YAZ et Cyrus ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
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()

Précédent | Sommaire | Suivant
readline | Niveau supérieur | recode_file


recode_file

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

recode_file -- Recodage de fichier à fichier, en fonction de la demande

Description

bool recode_file ( string request, resource input, resource output )

Recode le fichier identifié par input dans le fichier identifié par output en fonction de la requête de recodage request.

Liste de paramètres

request

Le type de requête recode désiré

input

Un gestionnaire de fichier local pour le paramètre input

output

Un gestionnaire de fichier local pour le paramètre output

Valeurs de retour

Retourne FALSE, en cas d'échec, et TRUE sinon.

Exemples

Exemple 1. Exemple avec recode_file()

<?php
$input = fopen('input.txt', 'r');
$output = fopen('output.txt', 'w');
recode_file("us..flat", $input, $output);
?>

Notes

Cette fonction ne gère pas encore les fichiers distants (URLs). Les deux fichiers doivent faire référence à des fichiers locaux.

Voir aussi

fopen()

Précédent | Sommaire | Suivant
Recode (GNU) | Niveau supérieur | recode_string


recode_string

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

recode_string -- Recode une chaîne en fonction de la requête

Description

string recode_string ( string request, string string )

Recode la chaîne string en fonction de la requête request.

Liste de paramètres

request

Le type de requête recode désiré

string

La chaîne de caractères à recoder

Valeurs de retour

Retourne la chaîne recodée en cas de succès et FALSE sinon.

Exemples

Exemple 1. Exemple avec recode_string()

<?php
echo recode_string("us..flat", "Le caractère suivant est diacritique : &aacute;");
?>

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.

Précédent | Sommaire | Suivant
recode_file | Niveau supérieur | recode


recode

(PHP 4, PHP 5)

recode -- Alias de recode_string()

Description

Cette fonction est un alias de : recode_string().

Précédent | Sommaire | Suivant
recode_string | Niveau supérieur | Fonctions Lecture d'En-tête RPM


Expressions rationnelles

Manuel PHP
Précédent Suivant

CXXVI. Expressions rationnelles

Introduction

Astuce : PHP supporte aussi des expressions rationnelles compatibles Perl, avec l'extension PCRE functions. Ces fonctions supportent des recherches non-gourmandes, des assertions, des sous-masques conditionnels et toute une gamme de fonctionnalités absentes des expressions rationnelles POSIX.

Avertissement

Ces expressions rationnelles ne sont pas compatibles avec les données binaires. Les expressions PCRE le sont.

Les expressions rationnelles sont utilisées pour de complexes manipulations sur les chaînes de caractères. PHP utilise les expressions rationnelles avancées de POSIX (POSIX 1003.2). Pour avoir tous les détails sur ces expressions, reportez-vous aux pages de manuel incluses dans le répertoire de la distribution PHP. Elles sont au format manpage : pour les lire, vous devrez utiliser la ligne de commande man /usr/local/src/regex/regex.7.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Avertissement

Ne changez pas la valeur de TYPE à moins que vous ne sachiez ce que vous faites.

Pour activer le support des expressions rationnelles en PHP vous devez compiler PHP avec l'option --with-regex[=TYPE]. TYPE peut prendre l'une des valeurs suivantes : "system", "apache", "php". La valeur par défaut est "php".

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Exemples

Exemple 1. Expressions rationnelles

<?php
/* Retourne &true; si "abc"
   est trouvé quelque part dans la chaîne $string. */
ereg ("abc", $string);

/* Retourne &true; si  "abc"
   est trouvé au début de la chaîne $string. */
ereg ("^abc", $string);

/* Retourne &true; si  "abc"
   est trouvé à la fin de la chaîne  $string. */
ereg ("abc$", $string);

/* Retourne &true; si  le client
   est Netscape 2, 3 ou MSIE 3. */
eregi ("(ozilla.[23]|MSIE.3)", $HTTP_USER_AGENT);

/* Recherche trois mots séparés par des espaces
   dans les chaînes $regs[1], $regs[2] et $regs[3]. */
ereg ("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string,$regs);

/* Insère une balise <br /> au début de la chaîne $string. */
$string = ereg_replace ("^", "<br />", $string);

/* Insère une balise <br /> à la fin de la chaîne $string. */
$string = ereg_replace ("$", "<br />", $string);

/* Supprime toutes les nouvelles lignes de $string. */
$string = ereg_replace ("\n", "", $string);

?>

Voir aussi

Pour des expressions rationnelles compatibles Perl, voyez l'extension PCRE. Les commandes de recherche plus simples (avec support des caractères jokers) sont fournies par la fonction fnmatch().

Table des matières
ereg_replace -- Remplacement par expression rationnelle
ereg -- Expression rationnelle standard
eregi_replace -- Remplacement par expression rationnelle insensible à la casse
eregi -- Recherche par expression rationnelle insensible à la casse
split -- Scinde une chaîne en un tableau, grâce à une expression rationnelle
spliti -- Scinde une chaîne en un tableau, grâce à une expression rationnelle
sql_regcase -- Prépare une expression rationnelle pour effectuer une recherche insensible à la casse

Précédent | Sommaire | Suivant
posix_uname | Niveau supérieur | ereg_replace


ereg_replace

(PHP 3, PHP 4, PHP 5)

ereg_replace -- Remplacement par expression rationnelle

Description

string ereg_replace ( string pattern, string replacement, string string )

ereg_replace() effectue une recherche par expression rationnelle dans la chaîne string en recherchant les occurrences de pattern, puis les remplace par la chaîne replacement.

La chaîne modifiée est retournée. (Ce qui signifie que la chaîne originale sera retournée si aucune occurrence n'est trouvée.)

Si pattern contient des parenthèses capturantes, replacement pourra contenir des séquences de la forme \\digit, qui seront remplacées par le texte capturé par la n-ième parenthèse capturante. \\0 correspond à la chaîne originale complète. De 0 à 9 parenthèses capturantes peuvent être utilisées. Les parenthèses peuvent être imbriquées, et leur numéro d'ordre est défini par leurs parenthèses ouvrantes.

Si aucune occurrence n'est trouvée, la chaîne string sera retournée intacte.

Par exemple, le code suivant affiche "Ceci est un test" trois fois :

Exemple 1. Exemple avec ereg_replace()

<?php

$string = "Ceci fut un test";
echo str_replace(" fut", " est", $string);
echo ereg_replace("( )fut", "\\1est", $string);
echo ereg_replace("(( )fut)", "\\2est", $string);

?>

Il est à noter que si vous utilisez une valeur entière avec replacement, vous n'obtiendrez pas le résultat escompté, car ereg_replace() interprétera le nombre comme la valeur ordinale d'un caractère et l'appliquera. Par exemple :

Exemple 2. Exemple avec ereg_replace()

<?php
/* Ceci ne fonctionne pas comme attendu */
$num = 4;
$string = "Cette chaîne a quatre mots.";
$string = ereg_replace('quatre', $num, $string);
echo $string;   // Cette chaîne a  mots.

/* Ceci fonctionne comme attendu */
$num = '4';
$string = "Cette chaîne a quatre mots.";
$string = ereg_replace('quatre', $num, $string);
echo $string;   // Cette chaîne a 4 mots.
?>

Exemple 3. Remplacer les URL par des liens cliquables

<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                     "<a href=\"\\0\">\\0</a>", $text);
?>

Astuce : preg_replace(), qui utilise la syntaxe des expressions rationnelles compatibles PERL, est une alternative plus rapide de ereg_replace().

Voir aussi
ereg(),
eregi(),
eregi_replace(),
str_replace() et
preg_match().

Précédent | Sommaire | Suivant
Expressions rationnelles | Niveau supérieur | ereg


ereg

(PHP 3, PHP 4, PHP 5)

ereg -- Expression rationnelle standard

Description

int ereg ( string pattern, string string [, array &regs] )

Note : preg_match(), qui utilise la syntaxe des expressions rationnelles compatibles PERL, est une alternative plus rapide de ereg().

ereg() recherche dans la chaîne string les séquences de caractères qui correspondent au masque pattern, en tenant compte de la casse.

Si au moins une séquence est trouvée (éventuellement dans les parenthèses capturantes de pattern), et que la fonction est appelée avec un troisième argument regs, les résultats seront enregistrés dans regs. $regs[1] contiendra la première parenthèse capturante (celle qui commence le plus tôt), $regs[2] contiendra la deuxième parenthèse capturante (celle qui commence après la première), et ainsi de suite. $regs[0] contient une copie de la chaîne.

Note : Pour les versions de PHP inférieures ou égales à 4.1.0, $regs sera rempli d'exactement dix éléments, même s'il y a plus ou moins de dix parenthèses capturantes. Cela n'a aucun effet sur ereg() pour chercher plus de sous-chaînes. Si aucun résultat n'est trouvé, $regs ne sera pas altéré par ereg().

ereg() retourne la longueur de l'occurrence trouvée si une occurrence a été trouvée dans la chaîne string et FALSE dans le cas contraire ou si une erreur est survenue. Si le paramètre optionnel regs n'est pas passé à la fonction ou si la longueur du paramètre string vaut 0, la fonction retournera 1.

L'exemple suivant prend une date au format ISO (YYYY-MM-DD) et l'affiche sous la forme DD.MM.YYYY :

Exemple 1. Exemple avec ereg()

<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
    echo "$regs[3].$regs[2].$regs[1]";
} else {
    echo "Format de date invalide : $date";
}
?>

Voir aussi
eregi(),
preg_match(),
ereg_replace(),
eregi_replace(),
strpos() et
strstr().

Précédent | Sommaire | Suivant
ereg_replace | Niveau supérieur | eregi_replace


eregi_replace

(PHP 3, PHP 4, PHP 5)

eregi_replace -- Remplacement par expression rationnelle insensible à la casse

Description

string eregi_replace ( string pattern, string replacement, string string )

eregi_replace() est identique à ereg_replace(), hormis le fait qu'elle ne tient pas compte de la casse des caractères alphabétiques.

Exemple 1. Mise en évidence des résultats de la recherche

<?php
$pattern = '(>[^<]*)('. quotemeta($_GET['search']) .')';
$replacement = '\\1<span class="search">\\2</span>';
$body = eregi_replace($pattern, $replacement, $body);
?>

Voir aussi
ereg(),
eregi() et
ereg_replace().

Précédent | Sommaire | Suivant
ereg | Niveau supérieur | eregi


eregi

(PHP 3, PHP 4, PHP 5)

eregi -- Recherche par expression rationnelle insensible à la casse

Description

int eregi ( string pattern, string string [, array &regs] )

eregi() est identique à ereg(), hormis le fait qu'elle ignore la casse des caractères lors de la recherche sur les caractères alphabétiques.

Exemple 1. Exemple avec eregi()

<?php
$string = 'XYZ';
if (eregi('z', $string)) {
    echo "'$string' contient un 'z' ou un 'Z'!";
}
?>

Voir aussi
ereg(),
ereg_replace(),
eregi_replace(),
stripos() et
stristr().

Précédent | Sommaire | Suivant
eregi_replace | Niveau supérieur | split


split

(PHP 3, PHP 4, PHP 5)

split -- Scinde une chaîne en un tableau, grâce à une expression rationnelle

Description

array split ( string pattern, string string [, int limit] )

Astuce : preg_split(), qui utilise la syntaxe des expressions rationnelles compatibles PERL, est une alternative plus rapide à split(). Si vous n'avez pas besoin de la puissance des expressions rationnelles, il est plus rapide d'utiliser explode(), qui n'utilise pas le moteur d'expressions rationnelles.

split() retourne un tableau de chaînes : chacune d'entre elle est une sous-chaîne de string délimitée par les occurrences trouvées de l'expression rationnelle pattern. Si limit est défini, le tableau retourné contiendra un maximum de limit éléments avec le dernier élément contenant le reste de la chaîne string. Si une erreur survient, retourne FALSE.

Pour lire les 5 premiers champs d'une ligne du fichier /etc/passwd:

Exemple 1. Exemple avec split()

<?php
list($user, $pass, $uid, $gid, $extra)= split (":", $passwd_line, 5);
?>

S'il y a n occurrences de pattern, le tableau retourné contiendra n+1 éléments. Par exemple, s'il n'y a aucune occurrence de pattern, un tableau d'un seul élément sera retourné. Bien sûr, cela reste vrai si string est une chaîne vide.

Pour analyser une date qui est délimitée par des /, des points ou des tirets :

Exemple 2. Exemple avec split()

<?php
// Les délimiteurs peuvent être des tirets, points ou slash
$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";
?>

Pour les utilisateurs qui recherchent le moyen d'émuler
la commande Perl @chars = split('', $str),
voyez la fonction preg_split() ou
la fonction str_split().

Notez aussi que pattern est une expression rationnelle. Si vous voulez utiliser n'importe quel caractère spécial des expressions rationnelles, vous devez les échapper. Si vous pensez que split() (ou toute autre expression rationnelle) se comporte bizarrement, lisez d'abord le fichier regex.7, inclus dans le dossier regex/ de la distribution PHP . Il est au format manpage, et vous pourrez le lire avec une commande telle que man /usr/local/src/regex/regex.7.

Voir aussi
preg_split(),
spliti(),
str_split(),
explode(),
implode(),
chunk_split() et
wordwrap().

Précédent | Sommaire | Suivant
eregi | Niveau supérieur | spliti


spliti

(PHP 4 >= 4.0.1, PHP 5)

spliti -- Scinde une chaîne en un tableau, grâce à une expression rationnelle

Description

array spliti ( string pattern, string string [, int limit] )

spliti() est identique à split(), hormis le fait qu'elle ignore la casse.

Scinder une chaîne en utilisant la lettre 'a' comme séparateur :

Exemple 1. Exemple avec spliti()

<?php
$string = "aBBBaCCCADDDaEEEaGGGA";
$chunks = spliti ("a", $string, 5);
print_r($chunks);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] =>
    [1] => BBB
    [2] => CCC
    [3] => DDD
    [4] => EEEaGGGA
)

Voir aussi
preg_split(),
split(),
explode() et
implode().

Précédent | Sommaire | Suivant
split | Niveau supérieur | sql_regcase


sql_regcase

(PHP 3, PHP 4, PHP 5)

sql_regcase -- Prépare une expression rationnelle pour effectuer une recherche insensible à la casse

Description

string sql_regcase ( string string )

sql_regcase() retourne une expression rationnelle valide qui acceptera la chaîne string, et toutes les variantes majuscule/minuscule possibles de cette chaîne. Cette expression sera construite à partir de la chaîne string en remplaçant tous les caractères par des expressions entre crochets (des classes de caractères), contenant la lettre majuscule et minuscule. Si le caractère n'est pas une lettre, les crochets contiendront deux fois le caractère original.

Exemple 1. Exemple avec sql_regcase()

<?php
echo sql_regcase ("Foo - bar.");
?>

L'exemple ci-dessus va afficher :

[Ff][Oo][Oo] - [Bb][Aa][Rr].

Cette expression sert à effectuer des recherches insensibles à la casse avec d'autres logiciels, qui n'acceptent que les recherches sensibles à la casse.

Précédent | Sommaire | Suivant
spliti | Niveau supérieur | PostgreSQL


Sémaphores et gestion de la mémoire partagée

Manuel PHP
Précédent Suivant

CXLVI. Sémaphores et gestion de la mémoire partagée

Introduction

Ce module fourni un système de sémaphores. Ce système utilise les sémaphores System V.

Les sémaphores peuvent être utilisés pour fournir un accès exclusif à certaines ressources de la machine, ou pour limiter le nombre de processus qui utilisent en même temps une ressource.

Ce module fournit aussi un système de mémoire partagée, qui utilise la mémoire partagée System V. Cette mémoire partagée permet d'accéder à des variables globales. Les différents démons httpd et même d'autres programmes (tels que Perl, C...) permettent un tel échange de données global. 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.

Tableau 1. 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 segment de mémoire partagé, par défaut 100.
SHMSEG | Taille maximale de mémoire partagée par processus, par défaut 6.

Ces fonctions permettent d'envoyer et de recevoir des messages de/vers d'autres processus. Elles offrent une interface simple et efficace pour échanger des données entre processus, sans avoir besoin d'utiliser un autre socket UNIX.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

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.

Tableau 2. Options de configuration

Nom | Par défaut | Modifiable | Historique
sysvmsg.value | "42" | PHP_INI_ALL |
sysvmsg.string | "foobar" | PHP_INI_ALL |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

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.

Tableau 3. Constantes des messages System V

Constante | Type | Changelog
MSG_IPC_NOWAIT | entier |
MSG_EAGAIN | entier | Depuis 5.2.0
MSG_ENOMSG | entier | Depuis 5.2.0
MSG_NOERROR | entier |
MSG_EXCEPT | entier |

Table des matières
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_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_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

Précédent | Sommaire | Suivant
SDO_DAS_Relational::executeQuery | Niveau supérieur | ftok


ftok

(PHP 4 >= 4.2.0, PHP 5)

ftok -- Convertit un chemin et un identifiant de projet en une clé System V IPC

Description

int ftok ( string pathname, string proj )

ftok() convertit le paramètre pathname d'un fichier existant, et de l'identifiant de projet proj, en un entier integer à utiliser avec la fonction shmop_open() et d'autres fonctions System V IPC. Le paramètre proj doit être une chaîne d'un seul caractère.

En cas de succès, la valeur retournée sera la clé créée et, sinon, -1 est retourné.

Voir aussi shmop_open() et sem_get().

Précédent | Sommaire | Suivant
Sémaphores et gestion de la mémoire partagée | Niveau supérieur | msg_get_queue


msg_get_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_get_queue -- Crée ou s'attache à une file de messages

Description

resource msg_get_queue ( int key [, int perms] )

msg_get_queue() retourne une ressource qui peut être utilisée avec les files de messages System V message, et la clé key. Le premier appel à la fonction va créer la file de messages, avec les droits optionnels de perms (par défaut : 0666). 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. Si la file de messages existe déjà, le paramètre perms sera ignoré.

Voir aussi
msg_remove_queue(),
msg_receive(),
msg_send(),
msg_stat_queue() et
msg_set_queue().

Précédent | Sommaire | Suivant
ftok | Niveau supérieur | msg_receive


msg_receive

(PHP 4 >= 4.3.0, PHP 5)

msg_receive -- Reçoit un message depuis une file de messages

Description

bool msg_receive ( resource queue, int desiredmsgtype, int &msgtype, int maxsize, mixed &message [, bool unserialize [, int flags [, int &errorcode]]] )

msg_receive() reçoit le premier message de la file queue, type spécifié par desiredmsgtype. Le type de message qui a été reçu sera stocké dans le paramètre msgtype. La taille maximale de message est fixée par maxsize ; si le message de la file est plus grand que cette taille, la fonction échouera (à moins que vous n'utilisiez une option flags, décrite ci-dessous). 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, auquel cas le paramètre optionnel errorcode se verra assigner le numéro d'erreur.

Si desiredmsgtype vaut 0, le premier message de la file est retourné. Si desiredmsgtype vaut plus que 0, alors le premier message de ce type sera retourné. Si desiredmsgtype vaut moins que 0, le premier message de la file ayant un type inférieur ou égaql à la valeur absolue de desiredmsgtype sera retourné. Si aucun message ne correspond aux critères, votre script attendra la venue d'un tel message dans la file. Vous pouvez éviter ce bloquage en précisant l'option MSG_IPC_NOWAIT dans le paramètre flags.

unserialize vaut par défaut TRUE ; quand c'est le cas, le message est traité comme s'il avait été linéarisé avec le même mécanisme que le module de session. Le message sera alors délinéarisé, puis retourné au script. Cela vous permettra de recevoir facilement des tableaux ou des objets complexes dans votre script, émis par d'autres scripts PHP. Si unserialize vaut FALSE, le message sera retourné intact, et sans modifier les valeurs binaires.

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

Tableau 1. Iptions de la fonction msg_receive()

MSG_IPC_NOWAIT | S'il n'y a pas de message du type desiredmsgtype, retourne immédiatement, et n'attend pas. La fonction échouera et retournera un entier correspondant à MSG_ENOMSG.
MSG_EXCEPT | En utilisant cette option en combinaison avec un type desiredmsgtype supérieur à 0, la fonction va lire le premier message qui n'est pas du type demandé par desiredmsgtype.
MSG_NOERROR | Si le message est plus grand que maxsize, cette option va tronquer le message à la taille de maxsize et ne signalera pas d'erreur.

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écrementé de 1 et msg_rtime prend la date et l'heure courante.

msg_receive() retourne TRUE en cas de succès et FALSE en cas d'échec. Si la fonction échoue, le paramètre optionnel errorcode contiendra le numéro d'erreur rencontré.

Voir aussi
msg_remove_queue(),
msg_send(),
msg_stat_queue() et
msg_set_queue().

Précédent | Sommaire | Suivant
msg_get_queue | Niveau supérieur | msg_remove_queue


msg_remove_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_remove_queue -- Détruit une file de messages

Description

bool msg_remove_queue ( resource queue )

msg_remove_queue() détruit la file de messages identifiée par queue. Utiliser uniquement cette fonction lorsque tous les processus ont fini de travailler dans la file de message, et que vous voulez libérer les ressources.

Voir aussi
msg_get_queue(),
msg_receive(),
msg_stat_queue() et
msg_set_queue().

Précédent | Sommaire | Suivant
msg_receive | Niveau supérieur | msg_send


msg_send

(PHP 4 >= 4.3.0, PHP 5)

msg_send -- Envoie un message dans une file

Description

bool msg_send ( resource queue, int msgtype, mixed message [, bool serialize [, bool blocking [, int &errorcode]]] )

msg_send() envoie le messsage message de type msgtype (qui DOIT être plus grand que 0) à la file de messages identifiée par queue.

Si le message est trop grand pour être stocké par la file, votre script attendra jusqu'à ce qu'un autre processus lise dans la file un message, et libère assez de place pour votre message. C'est le mode bloquant : vous pouvez éviter ce mode en utilisant le paramètre blocking avec la valeur FALSE : dans ce cas, msg_send() retournera immédiatement FALSE si le message est trop gros pour la file. Il assignera alors au paramètre errorcode la valeur de MSG_EAGAIN, indiquant que vous devriez essayer d'envoyer à nouveau votre message, un peu plus tard.

Le paramètre optionnel serialize contrôle la méthode d'envoi du message message. serialize faut par défaut TRUE ce qui signifie que le message message sera linéarisé en utilisant le même mécanisme que celui qui est utilisé par les sessions, avant d'être envoyé à la file de message. Cela permet d'envoyer des tableaux et des objets complexes à d'autres scripts PHP, ou bien, si vous utilisez l'extension WDDX, d'échanger des messages avec des clients compatibles WDDX.

Lors de l'émission réussie d'un message, la file est mise à jour comme ceci : msg_lrpid prend la valeur de l'identifiant de processus du processus appelant, msg_qnum est décrementé de 1 et msg_rtime prend la date et l'heure courante.

Voir aussi
msg_remove_queue(),
msg_receive(),
msg_stat_queue() et
msg_set_queue().

Précédent | Sommaire | Suivant
msg_remove_queue | Niveau supérieur | msg_set_queue


msg_set_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_set_queue -- Modifie des informations dans la file de messages

Description

bool msg_set_queue ( resource queue, array data )

msg_set_queue() vous permet de modifier certaines valeurs comme msg_perm.uid, msg_perm.gid, msg_perm.mode et msg_qbytes, qui sont des champs de la strcture qui héberge la file de message. Il suffit de spécifier la valeur à modifier comme index dans le tableau data et la file queue sera modifiée.

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

Voir aussi
msg_remove_queue(),
msg_receive(),
msg_stat_queue() et
msg_get_queue().

Précédent | Sommaire | Suivant
msg_send | Niveau supérieur | msg_stat_queue


msg_stat_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_stat_queue -- Retourne des informations sur la file de messages

Description

array msg_stat_queue ( resource queue )

msg_stat_queue() retourne des informations sur la file de messages identifiée par queue. C'est une fonction pratique pour connaître le processus qui a émis le message qui vient d'être reçu.

La valeur retournée par la fonction est un tableau dont les index et valeurs sont les suivants :

Tableau 1. 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 actuellement disponibles dans la file pour stocker des messages jusqu'à leur lecture.
msg_lspid | Le pid du processus qui a envoyé le dernier message à la file.
msg_lrpid | Le pid du processus qui a reçu le dernier message de la file.

Voir aussi
msg_remove_queue(),
msg_receive(),
msg_get_queue() et
msg_set_queue().

Précédent | Sommaire | Suivant
msg_set_queue | Niveau supérieur | sem_acquire


sem_acquire

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

sem_acquire -- Réserve un sémaphore

Description

bool sem_acquire ( resource sem_identifier )

sem_acquire() se bloque (si nécessaire) jusqu'à ce que le sémaphore puisse être réservé. Un processus qui tente de réserver un sémaphore qu'il a déjà reservé restera en attente indéfinie, si cette acquisition excède le nombre max_acquire de réservation simultanée. sem_identifier est une ressource de sémaphore, obtenue de la fonction sem_get().

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Voir aussi sem_get() et sem_release().

Précédent | Sommaire | Suivant
msg_stat_queue | Niveau supérieur | sem_get


sem_get

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

sem_get -- Retourne un identifiant de sémaphore

Description

resource sem_get ( int key [, int max_acquire [, int perm [, int auto_release]]] )

sem_get() retourne un identifiant qui pourra être utilisé pour accéder à un sémaphore System V. Le sémaphore est créé avec l'identifiant key, si nécessaire, en utilisant les bits de droits du paramètre optionnel perm (par défaut, 0666). Le nombre de processus qui peuvent réserver simultanément le sémaphore est précisé dans le paramètre max_acquire (par défaut, 1). Actuellement, cette valeur n'est affectée que si le processus est le seul processus actuellement attaché au sémaphore.

Le paramètre optionnel auto_release spécifie si le sémaphore doit être automatiquement libéré à la fermeture. Il est disponible depuis PHP 4.3.0.

sem_get() retourne une ressource de sémaphore en cas de succès, et FALSE en cas d'erreur.

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.

Voir aussi
ftok(),
sem_acquire() et
sem_release().

Précédent | Sommaire | Suivant
sem_acquire | Niveau supérieur | sem_release


sem_release

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

sem_release -- Libère un sémaphore

Description

bool sem_release ( resource sem_identifier )

sem_release() libère le sémaphore sem_identifier, s'il a été réservé par le processus courant, sinon génère une erreur.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Après libération du sémaphore, sem_acquire() peut être appelé pour le réserver à nouveau.

Voir aussi sem_get() et sem_acquire().

Précédent | Sommaire | Suivant
sem_get | Niveau supérieur | sem_remove


sem_remove

(PHP 4 >= 4.1.0, PHP 5)

sem_remove -- Détruit un sémaphore

Description

bool sem_remove ( resource sem_identifier )

sem_remove() supprime le sémaphore sem_identifier s'il a été créé par sem_get() et, sinon, émet une alerte.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Après suppression du sémaphore, il n'est plus utilisable.

Voir aussi
sem_get(),
sem_release() et
sem_acquire().

Précédent | Sommaire | Suivant
sem_release | Niveau supérieur | shm_attach


shm_attach

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

shm_attach -- CrÃ©e ou ouvre un segment de mÃ©moire partagÃ©e

Description

int shm_attach ( int key [, int memsize [, int perm]] )

shm_attach() retourne un identifiant qui permettra d'accÃ©der au System V de mÃ©moire partagÃ©e. Au premier appel, la mÃ©moire sera crÃ©Ã©e, avec la taille memsize (par dÃ©faut: sysvshm.init_mem dans php.ini, sinon 10000 octets) et avec les permissions perm (par dÃ©faut : 666).

Aux appels suivants avec la mÃªme clÃ© key, shm_attach() retournera un nouvel identifiant, mais cet identifiant accÃ©dera toujours Ã la mÃªme portion de mÃ©moire partagÃ©e. Dans ce cas, memsize et permseront ignorÃ©s.

Voir aussi ftok() et shm_detach().

Précédent | Sommaire | Suivant
sem_remove | Niveau supérieur | shm_detach


shm_detach

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

shm_detach -- Libère un segment de mémoire partagée

Description

bool shm_detach ( int shm_identifier )

shm_detach() libère le segment de mémoire partagée identifié par shm_identifier et créé par shm_attach(). N'oubliez pas que cette mémoire partagée existe toujours sous Unix, et que les données sont toujours accessibles.

shm_detach() retourne toujours TRUE.

Voir aussi
shm_attach(),
shm_remove() et
shm_remove_var().

Précédent | Sommaire | Suivant
shm_attach | Niveau supérieur | shm_get_var


shm_get_var

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

shm_get_var -- Lit une variable dans la mémoire partagée

Description

mixed shm_get_var ( int shm_identifier, int variable_key )

shm_get_var() retourne la variable repérée par variable_key, dans le segment de mémoire partagée identifié par shm_identifier. shm_identifier est une ressource retournée par shm_attach(). La variable est toujours présente en mémoire partagée.

Précédent | Sommaire | Suivant
shm_detach | Niveau supérieur | shm_put_var


shm_put_var

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

shm_put_var -- Insère ou modifie une variable de la mémoire partagée

Description

bool shm_put_var ( int shm_identifier, int variable_key, mixed variable )

shm_put_var() insère ou modifie la variable variable avec la clé variable_key dans le segment de mémoire shm_identifier. Tous les types de variables sont supportés.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Des alertes (niveau E_WARNING level) seront émises si shm_identifier n'est pas un segment de mémoire système V valide, ou s'il n'y a pas assez de mémoire pour votre requête.

Précédent | Sommaire | Suivant
shm_get_var | Niveau supérieur | shm_remove_var


shm_remove_var

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

shm_remove_var -- Efface une variable de la mémoire partagée

Description

bool shm_remove_var ( int shm_identifier, int variable_key )

shm_remove_var() efface la variable variable_key de la mémoire partagée shm_identifier et libère la mémoire.

Voir aussi shm_remove().

Précédent | Sommaire | Suivant
shm_put_var | Niveau supérieur | shm_remove


shm_remove

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

shm_remove -- Supprime un segment de mémoire partagée sous Unix

Description

bool shm_remove ( int shm_identifier )

shm_remove() supprime le segment de mémoire partagée shm_identifier. Toutes les données seront supprimées.

Voir aussi shm_remove_var().

Précédent | Sommaire | Suivant
shm_remove_var | Niveau supérieur | SESAM


SESAM

Manuel PHP
Précédent Suivant

CXLVII. SESAM

Introduction

SESAM/SQL-Server est une base de données mainframe, développée par Fujitsu Siemens Computers, Allemagne. Elle fonctionne sur les serveurs mainframe, sous BS2000/OSD.

Sur de nombreuses installation BS2000 en production, SESAM/SQL-Server a prouvé ...

  • La facilité de connectivité Java, Web et client/serveur,

  • La disponibilité de plus de 99.99%,

  • La capacité de gérer des dizaines et mêmes des centaines de milliers d'utilisateurs.

Désormais, il existe une interface PHP pour SESAM, qui donne l'accès à cette base aux scripts PHP.

Note : L'accès aux bases SESAM n'est disponible que pour la dernière version CVS de PHP 3. PHP 4 ne supporte pas les bases SESAM.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

sesam_oml string

Nom de la bibliothèque BS2000 PLAM contenant le module du pilote SESAM. Ceci est obligatoire pour utiliser les fonctions SESAM. La bibliothèque BS2000 PLAM doit être à ACCESS=READ,SHARE=YES car elle doit être lisible par le serveur Apache.

sesam_configfile string

Nom du fichier de configuration de l'application SESAM. Ceci est obligatoire pour utiliser les fonctions SESAM. Le fichier BS2000 doit être à ACCESS=READ,SHARE=YES car elle doit être lisible par le serveur Apache.

Le fichier de configuration de l'application contient généralement un fichier de configuration tel que celui-ci (reportez-vous au manuel de référence SESAM).

Exemple 1. Configuration SESAM

CNF=B
NAM=K
NOTYPE

sesam_messagecatalog string

Nom du fichier de messages SESAM. Dans la plupart des cas, cette directive n'est pas nécessaire. Uniquement si le fichier de messages SESAM n'est pas installé dans la table de messages BS2000. Il peut alors être choisi avec cette directive.

Le catalogue de messages doit être à ACCESS=READ,SHARE=YES car elle doit être lisible par le serveur Apache.

Notes sur la configuration

Il n'y a pas de version exécutable indépendante pour l'interface PHP SESAM, et elle doit fonctionner en module Apache intégré. Dans le module PHP, l'interface SESAM est configurée avec des directives Apache.

Tableau 1. Directives de configuration SESAM

Directive Signification
php3_sesam_oml Nom de la bibliothèque BS2000 PLAM qui contient les modules pilotes chargeables SESAM. Elle est nécessaire pour pouvoir utiliser les fonctions SESAM.

Exemple 2. Localisation du fichier BS2000 pour SESAM

php3_sesam_oml $.SYSLNK.SESAM-SQL.030

php3_sesam_configfile Nom du fichier de configuration de l'application SESAM. Elle est nécessaire pour utiliser les fonctions SESAM.

Exemple 3. Configuration de php3_sesam_configfile

php3_sesam_configfile $SESAM.SESAM.CONF.AW

Ce fichier va généralement contenir une configuration comme celle-ci. (reportez-vous au manuel de référence SESAM).

Exemple 4. Configuration SESAM

CNF=B
NAM=K
NOTYPE

php3_sesam_messagecatalog Nom du catalogue de messages SESAM. Dans la plupart des cas, cette directive n'est pas nécessaire. Uniquement dans les cas où le fichier de message n'est pas installé dans la table de message du système BS2000, vous pouvez utiliser cette directive :

Exemple 5. Nom du catalogue de messages SESAM

php3_sesam_messagecatalog $.SYSMES.SESAM-SQL.030

En plus de la configuration de l'interface PHP/SESAM, vous devez configurer le serveur SESAM-Database lui-même, sur votre mainframe habituel. Cela signifie :

  • démarrer le gestionnaire de base SESAM (DBH)

  • connecter les bases avec le gestionnaire de bases SESAM

Pour connecter un script PHP au serveur de bases SESAM, les paramètres CNF et NAM de la configuration SESAM selectionnée doivent correspondre à l'id du gestionnaire de base démarré.

Dans le cas des bases de données distribuées, vous devez démarrer un agent SESAM/SQL-DCN, avec la table de distribution incluant le nom de l'hôte et de la base de données.

La communication entre PHP (fonctionnant sur le sous-système POSIX) et le gestionnaire de base (fonctionnant hors du sous-système POSIX) est réalisée par un pilote spécial appelé SQLSCI et le module de connexion SESAM, qui utilise la mémoire partagée. À cause de la mémoire partagée, et parce que PHP est une partie statique du serveur web, les accès à la base de données sont extrêmement rapides ; car ils ne requièrent pas de connexion distante via ODBC, JDBC ou UTM.

Seul un chargeur de stub (stub loader, SESMOD) est compilé dans PHP. Les modules de connexion SESAM proviennent de la bibliothèque OML PLAM. Dans la configuration, vous devez indiquer à PHP le nom de la bibliothèque PALM, et le fichier de lien à utiliser pour la configuration de SESAM (En SESAM V3.0, SQLSCI est disponible dans la bibliothèque d'outils SESAM (SESAM Tool Library), qui fait partie de la distribution standard).

Les commandes SQL imposent que les guillemets simples soient doublés pour être interprétés litéralement (contrairement à d'autres bases de données qui utilisent un guillemet simple, précédé d'un antislash), il est recommandé d'activer les directives PHP php3_magic_quotes_gpc et php3_magic_quotes_sybase.

Considérations à l'exécution

À cause des limitations du modèle de processus BS2000, le pilote peut être chargé uniquement après que le serveur Apache ait généré le processus fils. Cela ralentit légèrement le traitement de la première requête, mais toutes les requêtes suivantes seront effecutées à pleine vitesse.

Lorsque vous définissez explicitement le catalogue de messages SESAM, ce catalogue sera chargé à chaque fois que le pilote est chargé (i.e., au moment de la requête initiale). Le système d'exploitation BS2000 affiche un message après avoir correctement chargé le catalogue de messages, qui sera envoyé au fichier d'erreurs Apache. BS2000 ne permet pas la suppression de ce message, qui va remplir progressivement ce fichier.

Assurez-vous que la bibliothèque SESAM OML PLAM et le fichier de configuration SESAM sont accessibles par l'utilisateur qui fait tourner le serveur web. Sinon, le serveur ne sera pas capable de charger le pilote, ou d'appeler les fonctions SESAM. L'accès à la base doit être donné à cet utilisateur. Sinon, les connexions SESAM échoueront.

Types de curseurs

Les curseurs de résultats sont alloués pour les requêtes SQL de sélection ; ils peuvent être soit "séquentiels", soit "à défilement" ("scrollable"). Les curseurs à défilement sont beaucoup plus gourmands en mémoire, et le mode par défaut est séquentiel.

Lorsque vous utilisez les curseurs à défilement, le curseur peut être positionné librement dans le résultat. Pour chaque requête à défilement, il existe des valeurs globales de types de défilement (initialisée à : SESAM_SEEK_NEXT) et la position peut être fixée une seule fois par sesam_seek_row() ou bien à chaque appel, avec la fonction sesam_fetch_row(). Lorsque vous lisez une ligne avec un curseur à défilement, le traitement suivant est effectué à partir des valeurs globales de type de défilement et de position :

Tableau 2. Scrolled Cursor Post-Processing

Type de défilement | Action
SESAM_SEEK_NEXT | aucun
SESAM_SEEK_PRIOR | aucun
SESAM_SEEK_FIRST | le type de défilement devient SESAM_SEEK_NEXT
SESAM_SEEK_LAST | le type de défilement devient SESAM_SEEK_PRIOR
SESAM_SEEK_ABSOLUTE | incrémente automatiquement la valeur interne de position
SESAM_SEEK_RELATIVE | aucune. Conserve les valeurs globales par défaut de position, ce qui permet, par exemple, de lire toutes les 10 lignes, en arrière.

Portage

En PHP, il est naturel de commencer les index à zéro (plutôt que 1), et quelques adaptations ont été faites pour l'interface SESAM : à chaque fois qu'un tableau indexé commence à l'index 1 en SESAM natif, l'interface PHP utilisera l'index 0 comme point de départ. Par exemple, lorsque vous lisez des données avec sesam_fetch_row(), la première colonne sera à l'index 0, et les suivantes suivront juqu'au nombre de colonnes (exclus) du résultat ($array["count"]). Lors du portage d'applications depuis d'autres langages évolués vers PHP, soyez attentifs à ce changement. À chaque fois que c'est nécessaire, la description d'une fonction PHP SESAM indique que l'index du tableau commence à 0.

Sécurité

Lorsque vous autorisez l'accès à une base de données SESAM, le serveur web doit avoir le minimum de privilèges possible. Pour la plupart des bases de données, seul le droit de lecture doit être fourni. Suivant votre utilisation, ajoutez d'autres droits d'accès au fur et à mesure de vos besoins. Ne donnez jamais le contrôle total de vos bases à un utilisateur du web ! Limitez l'accès aux scripts PHP qui doivent administrer la base en utilisant un mot de passe et/ou une sécurisation SSL.

Migration d'une autre base SQL

Deux langages SQL ne sont jamais 100 % compatibles. Lorsque vous portez une application SQL depuis une autre interface vers SESAM, certaines adaptations doivent être faites. Les différences suivantes sont les plus courantes :

  • Types de données spécifiques

    Certains types de données spécifiques à une base doivent être remplacés par les types de données standard SQL. (i.e., TEXT doit être remplacé par VARCHAR(taille max)).

  • Mots reservés comme identifiants SQL.

    En SESAM (comme dans le standard SQL), les mots reservés utilisés comme identifiants doivent être entourés de guillemets doubles (ou renommés).

  • Taille d'affichage des données.

    Les types de données SESAM ont une taille de stockage, mais par de taille d'affichage. À la place de int(4) (c'est-à-dire : les entiers jusqu'à '9999'), SESAM requiert simplement int, pour une taille implicite de 31 bits. De même, les seuls types de dates disponible dans SESAM sont : DATE, TIME(3) et TIMESTAMP(3).

  • Les types de données unsigned (non signé), zerofill (complété avec des zéros), ou auto_increment

    Unsigned et zerofill ne sont pas supportés. Auto_increment est automatique (utilisez "INSERT ... VALUES(*, ...)" au lieu de "... VALUES(0,...)" pour profiter des auto-increment implicites de SESAM.

  • int ... DEFAULT '0000'

    Les variables numériques ne doivent pas être initialisées avec des constantes de type chaîne de caractères. Utilisez DEFAULT 0 à la place. Pour initialiser une date, la chaîne doit être préfixée avec le type de date adapté, tel que : CREATE TABLE exmpl (xtime timestamp(3) DEFAULT TIMESTAMP '1970-01-01 00:00:00.000' NOT NULL);

  • $count = xxxx_num_rows();

    Certaines bases de données essaient d'estimer le nombre de lignes d'un résultat, même grossièrement approximativement. SESAM ne connaît pas le nombre de lignes avant de les avoir lues lui-même. Si vous avez vraiment besoin de les compter, utilisez la commande SELECT COUNT(...) WHERE ..., qui vous dira combien de lignes sont disponibles. Une deuxième requête devrait vous retourner tous ces résultats.

  • DROP TABLE lenom;

    Avec SESAM, dans la commande DROP TABLE, le nom de la table doit être suivi du mot-clé RESTRICT ou CASCADE. Avec RESTRICT, une erreur est retournée s'il y a des objets dépendants (par exemple, des vues), tandis qu'avec CASCADE, les objets dépendants seront supprimés en même temps que la table.

Notes sur l'utilisation de types SQL divers

SESAM ne supporte pas le type BLOB. Une future version de SESAM devra le faire.

L'interface PHP effectue automatiquement les conversions suivantes lors de la lecture de lignes de résultats SQL :

Tableau 3. Conversion de type SQL vers PHP

Type SQL | Type PHP
SMALLINT, INTEGER | "integer" (entier)
NUMERIC, DECIMAL, FLOAT, REAL, DOUBLE | "double" (nombre à virgule flottante)
DATE, TIME, TIMESTAMP | "string"(chaîne de caractères)
VARCHAR, CHARACTER | "string"(chaîne de caractères)
Lorsque vous lisez une ligne entière, le résultat est retourné sous la forme d'un tableau. Les champs vides ne sont pas remplis, et vous aurez à vérifier vous-même leur existence ( (utilisez isset() ou empty() pour tester les champs vides). Cela donne plus de contrôle à l'utilisateur sur l'apparence des champs que si les champs vides étaient représentés par des chaînes vides).

Support des "champs multiples" de SESAM

La fonctionnalité spéciale des "champs multiples" de SESAM permet à une colonne de contenir un tableau de champs. Un tel "champs multiples" peut être créé comme ceci :

Exemple 6. Création d'une colonne de champs multiples

CREATE TABLE multi_field_test (
    pkey CHAR(20) PRIMARY KEY,
    multi(3) CHAR(12)
)
et peut être remplie avec :

Exemple 7. Affectation d'une colonne de type "champs multiples"

INSERT INTO multi_field_test (pkey, multi(2..3) )
    VALUES ('Second', <'first_val', 'second_val'>)
Notez que (comme c'est le cas ci-dessus), les sous-champs vides initiaux sont ignorés, et que le tableau est alors compacté, ce qui fait que l'exemple ci-dessus conduit à un tableau multi(1..2) au lieu de multi(2..3).

Lors de la lecture d'une ligne, les "champs multiples" sont mis en colonnes. Dans l'exemple ci-dessus, "pkey" prend l'index 0, et les trois colonnes "multi(1..3)" sont accessibles depuis les index 1 à 3.

Voir aussi

Pour de plus amples détails sur SESAM, reportez-vous à la documentation SESAM/SQL-Server en anglais ou SESAM/SQL-Server en allemand, disponibles toutes deux en ligne, ou en manuels.

Table des matières
sesam_affected_rows -- Lit le nombre de lignes affectées par une requête SESAM immédiate
sesam_commit -- Valide la transaction SESAM en cours
sesam_connect -- Ouvre une connexion SESAM
sesam_diagnostic -- Retourne l'état de la dernière requête SESAM
sesam_disconnect -- Déconnexion d'une base SESAM
sesam_errormsg -- Retourne le message d'erreur SESAM
sesam_execimm -- Exécute immédiatement une requête SQL
sesam_fetch_array -- Lit une ligne dans un tableau associatif
sesam_fetch_result -- Retourne tout ou partie d'un résultat SESAM
sesam_fetch_row -- Lit une ligne dans un tableau
sesam_field_array -- Retourne des informations sur une colonne de résultat
sesam_field_name -- Retourne le nom d'une colonne
sesam_free_result -- Libère les ressources SESAM
sesam_num_fields -- Retourne le nombre de colonnes dans un résultat
sesam_query -- Exécute une requête SESAM
sesam_rollback -- Annule une transaction SESAM
sesam_seek_row -- Déplace un curseur à défilement
sesam_settransaction -- Modifie les paramètres de transaction SESAM

Précédent | Sommaire | Suivant
shm_remove | Niveau supérieur | sesam_affected_rows


sesam_affected_rows

(PHP 3 CVS only)

sesam_affected_rows -- Lit le nombre de lignes affectées par une requête SESAM immédiate

Description

int sesam_affected_rows ( string result_id )

result_id est un identifiant valide de résultat, retourné par sesam_query().

sesam_affected_rows() retourne le nombre de lignes affectées par la requête associée à result_id.

sesam_affected_rows() ne retourne de valeur cohérente que lorsqu'utilisée avec une requête immédiate ( INSERT/ UPDATE/ DELETE), car SESAM ne fournit aucune information de nombre de lignes affectées pour les requêtes de selection.

Exemple 1. Exemple avec sesam_affected_rows()

<?php
$result = sesam_execimm("DELETE FROM PHONE WHERE LASTNAME = '" . strtoupper($name) . "'");
if (!$result) {
    // erreur
}
echo sesam_affected_rows($result) . " entrées avec le nom " . $name . " effacées.\n";
?>

Voir aussi sesam_query() et sesam_execimm().

Précédent | Sommaire | Suivant
SESAM | Niveau supérieur | sesam_commit


sesam_commit

(PHP 3 CVS only)

sesam_commit -- Valide la transaction SESAM en cours

Description

bool sesam_commit ( void )

sesam_commit() retourne TRUE en cas de succès et FALSE sinon.

sesam_commit() valide toutes les modifications de tables en attente sur la base.

Notez qu'il n'y a pas de mode "auto-commit", comme dans d'autres bases de données, car cela peut conduire à une perte accidentelle de données. Les données non valides à la fin d'un script (ou au moment de l'appel de sesam_disconnect()) seront annulées par un appel implicite à sesam_rollback().

Exemple 1. Valider une transaction SESAM

<?php
if(sesam_connect ("moncatalogue", "monschema", "toto")) {
  if(!sesam_execimm("INSERT INTO mytable VALUES (*, 'Small Test', <0, 8, 15>)")) {
     die("Insertion manquée");
  }
  if (!sesam_commit()) {
     die("Insertion réussie");
  }
}
?>

Voir aussi sesam_rollback().

Précédent | Sommaire | Suivant
sesam_affected_rows | Niveau supérieur | sesam_connect


sesam_connect

(PHP 3 CVS only)

sesam_connect -- Ouvre une connexion SESAM

Description

bool sesam_connect ( string catalog, string schema, string user )

sesam_connect() retourne TRUE si une connexion à la base SESAM a été faite, ou FALSE en cas d'erreur.

sesam_connect() établit une connexion au serveur SESAM. La connexion est toujours "persistante", en ce sens que le pilote sera chargé par la première requête avec la bibliothèque SESAM OML PLAM. Les appels suivants réutiliseront le pilote chargé, son catalogue catalog, son schéma schema et son utilisateur user.

Lors de la création d'une base de données, le nom catalog est spécifié dans les directives de configuration SESAM avec la commande //ADD-SQL-DATABASE-CATALOG-LIST ENTRY-1 = *CATALOG(CATALOG-NAME = catalogname,...)

schema référence le schéma de base voulu (voir dans le manuel SESAM).

user spéficie l'un des utilisateurs qui est autorisé à accéder à la combinaison catalog et/ou schema. Notez que user est complètement indépendant de l'utilisateur système et des protections HTTP par mot de passe. Il n'apparaît que dans la configuration SESAM.

Exemple 1. Connexion à une base SESAM

<?php
if (!sesam_connect("moncatalogue", "monschema", "toto")) {
     die("Impossible de se connecter à SESAM");
}
?>

Voir aussi sesam_disconnect().

Précédent | Sommaire | Suivant
sesam_commit | Niveau supérieur | sesam_diagnostic


sesam_diagnostic

(PHP 3 CVS only)

sesam_diagnostic -- Retourne l'état de la dernière requête SESAM

Description

array sesam_diagnostic ( void )

sesam_diagnostic() retourne un tableau associatif avec l'état et les codes de la dernière requête SQL. Les éléments du tableau sont :

Tableau 1. Informations retournées par sesam_diagnostic()

Elément | Contenu
$array["sqlstate"] | code d'erreur à 5 chiffres (voir le manuel SESAM pour obtenir une description des valeurs possibles de SQLSTATE)
$array["rowcount"] | nombre de lignes affectées dans la dernière requête immédiate (update/insert/delete) : uniquement après une requête immédiate.
$array["errmsg"] | message d'erreur lisible : uniquement après une erreur
$array["errcol"] | numéro de colonne de la dernière erreur (indexée à partir de 0, -1 si indéfinies : uniquement après une erreur).
$array["errlin"] | numéro de ligne de la dernière erreur (indexée à partir de 0, -1 si indéfinies : uniquement après une erreur).

Dans l'exemple suivant, une erreur de syntaxe (E SEW42AE ILLEGAL CHARACTER) est affichée avec la requête SQL, et en désignant la position de l'erreur :

Exemple 1. Afficher une erreur SESAM

<?php
// Fonction qui affiche un message d'erreur formaté
// en affichant la position de l'erreur dans le message d'erreur
function PrintReturncode($exec_str)
{
   $err = Sesam_Diagnostic();
   $colspan=4; // 4 colonnes pour : sqlstate, errlin, errcol, rowcount
   if ($err["errlin"] == -1) {
     --$colspan;
   }
   if ($err["errcol"] == -1) {
     --$colspan;
   }
   if ($err["rowcount"] == 0) {
     --$colspan;
   }
   echo "<table border=\"1\">\n";
   echo "<tr><th colspan=\"" . $colspan . "\"><span class=\"spanred\">ERROR:</span> ".
     htmlspecialchars($err["errmsg"])."</th></tr>\n";
   if ($err["errcol"] >= 0) {
     echo "<tr><td colspan=\"".$colspan."\"><pre>\n";
     $errstmt = $exec_str."\n";
     for ($lin=0; $errstmt != ""; ++$lin) {
       if ($lin != $err["errlin"]) { // $lin est moins ou plus grand qu'errlin
         if (! ($i = strchr($errstmt, "\n"))) {
           $i = "";
         }
         $line = substr($errstmt, 0, strlen($errstmt)-strlen($i)+1);
         $errstmt = substr($i, 1);
         if ($line != "\n") {
           print htmlspecialchars($line);
         }
       } else {
         if (! ($i = strchr($errstmt, "\n"))) {
           $i = "";
         }
         $line = substr($errstmt, 0, strlen($errstmt)-strlen($i)+1);
         $errstmt = substr($i, 1);
         for ($col=0; $col < $err["errcol"]; ++$col) {
           echo (substr($line, $col, 1) == "\t") ? "\t" : ".";
         }
         echo "<span class=\"spanred\">\\</span>\n";
         print "<span class=\"normal\">".htmlspecialchars($line)."</span>";
         for ($col=0; $col < $err["errcol"]; ++$col) {
           echo (substr($line, $col, 1) == "\t") ? "\t" : ".";
         }
         echo "<span class=\"spanred\">/</span>\n";
       }
     }
     echo "</pre></td></tr>\n";
   }
   echo "<tr>\n";
   echo " <td>sqlstate=" . $err["sqlstate"] . "</td>\n";
   if ($err["errlin"] != -1) {
     echo " <td>errlin=" . $err["errlin"] . "</td>\n";
   }
   if ($err["errcol"] != -1) {
     echo " <td>errcol=" . $err["errcol"] . "</td>\n";
   }
   if ($err["rowcount"] != 0) {
     echo " <td>rowcount=" . $err["rowcount"] . "</td>\n";
   }
   echo "</tr>\n";
   echo "</table>\n";
}
if (!sesam_connect("moncatalogue", "phoneno", "toto")) {
  die("cannot connect");
}
$stmt = "SELECT * FROM phone\n".
        "  WHERE@ LASTNAME='KRAEMER'\n".
        "  ORDER BY FIRSTNAME";
if (! ($result = sesam_query($stmt))) {
  PrintReturncode($stmt);
}
?>

Voir aussi sesam_errormsg() pour un accès simplifié aux messages d'erreur.

Précédent | Sommaire | Suivant
sesam_connect | Niveau supérieur | sesam_disconnect


sesam_disconnect

(PHP 3 CVS only)

sesam_disconnect -- Déconnexion d'une base SESAM

Description

bool sesam_disconnect ( void )

sesam_disconnect() retourne toujours TRUE.

sesam_disconnect() ferme le lien logique à la base de données SESAM (sans réellement déconnecter et démonter le pilote).

Notez que ceci n'est généralement pas nécessaire, car la connexion ouverte est automatiquement fermée à la fin du script. Les données qui ne seront pas validées seront alors annulées, grâce à un sesam_rollback() implicite.

sesam_disconnect() ne ferme pas les connexions persistantes : elle invalide simplement les catalogues catalog, schéma schema et utilisateur user courants, de manière à ce que les prochains appels à des fonctions SESAM échouent.

Exemple 1. Exemple avec sesam_disconnect()

<?php
if (sesam_connect("moncatalogue", "monschema", "toto")) {
   //... quelques requêtes et d'autres traitements ...
  sesam_disconnect();
}
?>

Voir aussi sesam_connect().

Précédent | Sommaire | Suivant
sesam_diagnostic | Niveau supérieur | sesam_errormsg


sesam_errormsg

(PHP 3 CVS only)

sesam_errormsg -- Retourne le message d'erreur SESAM

Description

string sesam_errormsg ( void )

sesam_errormsg() retourne le message d'erreur SESAM associé à la dernière requête SQL.

Exemple 1. Exemple avec sesam_errormsg()

<?php
if (!sesam_execimm($stmt)) {
  echo sesam_errormsg() . "<br />\n";
}
?>

Voir aussi sesam_diagnostic() pour la liste complète des états de requêtes SQL.

Précédent | Sommaire | Suivant
sesam_disconnect | Niveau supérieur | sesam_execimm


sesam_execimm

(PHP 3 CVS only)

sesam_execimm -- Exécute immédiatement une requête SQL

Description

string sesam_execimm ( string query )

sesam_execimm() retourne un identifiant de résultat SESAM en cas de succès, et FALSE sinon.

sesam_execimm() exécute immédiatement la requête query (i.e., une requête de type UPDATE, INSERT ou DELETE qui ne retourne aucun résultat, et n'a aucune variable d'entrées ou de sorties). Les requêtes de types "SELECT" ne peuvent pas être utilisées avec la fonction sesam_execimm(). sesam_execimm() modifie la valeur affected_rows, pour une lecture ultérieure avec sesam_affected_rows().

Notez que sesam_query() peut gérer les requêtes immédiates et les requêtes de selection. Utilisez sesam_execimm() uniquement si vous connaissez le type de requête auparavant. Une tentative de requête de selection avec sesam_execimm() retournera $err["sqlstate"] == "42SBW".

L'identifiant de résultat retourné ne peut pas être utilisé pour lire quoi que ce soit, mais il peut être passé à sesam_affected_rows() ; il n'est retourné que pour symétrie avec la fonction sesam_query().

Exemple 1. Exemple avec sesam_execimm()

<?php
$stmt = "INSERT INTO mytable VALUES ('une', 'deux')";
$result = sesam_execimm($stmt);
$err = sesam_diagnostic();
echo "sqlstate = " . $err["sqlstate"] . "\n".
       "Nombre de lignes affectées = " . $err["rowcount"] . " == " .
       sesam_affected_rows($result) . "\n";
?>

Voir aussi sesam_query() et sesam_affected_rows().

Précédent | Sommaire | Suivant
sesam_errormsg | Niveau supérieur | sesam_fetch_array


sesam_fetch_array

(PHP 3 CVS only)

sesam_fetch_array -- Lit une ligne dans un tableau associatif

Description

array sesam_fetch_array ( string result_id [, int whence [, int offset]] )

sesam_fetch_array() retourne un tableau qui correspond à la ligne lue dans le résultat result_id, ou FALSE s'il n'y a pas d'autres lignes.

sesam_fetch_array() est une version alternative de sesam_fetch_row(). Au lieu de stocker les données dans un tableau à indice numérique, il enregistre les données dans un tableau associatif, en utilisant les noms des champs comme clés.

result_id est un identifiant de résultat valide retourné par sesam_query() (avec une requête de selection seulement!).

Pour connaître les valeurs valides des options whence et offset, reportez-vous à sesam_fetch_row().

sesam_fetch_array() lit une ligne de données dans le résultat result_id. La ligne est retournée sous forme d'un tableau associatif. Chaque colonne est enregistrée avec son nom comme index. Les noms des colonnes sont convertis en minuscules.

Les colonnes sans nom (par exemple, les résultats d'opérations arithmétiques) et les champs vides ne sont pas stockés dans ce tableau. De plus, si deux colonnes ont le même nom, la dernière colonne écrasera la précédente. Dans cette situation, utilisez de préférence sesam_fetch_row() ou bien, faites un alias de la colonne.

Exemple 1. Alias de colonnes avec SESAM

SELECT TBL1.COL AS FOO, TBL2.COL AS BAR FROM TBL1, TBL2

Une gestion spéciale permet de lire les champs multiples, qui sinon, auraient toutes le même nom. Pour chaque colonne d'un champ multiple, le nom d'index est créé en ajoutant le numéro de sous-index à la suite du nom de la colonne. Ces sous-index sont numérotés à partir de 1.

Exemple 2. Lire les champs multiples de SESAM

CREATE TABLE ... ( ... MULTI(3) INT )
Les index associatifs utilisés pour les valeurs individuelles du champ multiple sont : "multi(1)", "multi(2)", et "multi(3)", respectivement.

Les prochains appels à sesam_fetch_array() liront la prochaine ligne (ou la précédente, ou la n-ième, suivant les attributs de défilement), jusqu'à ce qu'il n'y ait plus de lignes.

Exemple 3. Exemple avec sesam_fetch_array()

<?php
$result = sesam_query("SELECT * FROM phone\n" .
"  WHERE LASTNAME='" . strtoupper($name) . "'\n".
"  ORDER BY FIRSTNAME", 1);
if (! $result) {
   // erreur
}
// Affiche la table
echo "<table border=\"1\">\n";
while (($row = sesam_fetch_array($result)) && count($row) > 0) {
   echo "<tr>\n";
   echo "<td>" . htmlspecialchars($row["firstname"]) . "</td>\n";
   echo "<td>" . htmlspecialchars($row["lastname"]) . "</td>\n";
   echo "<td>" . htmlspecialchars($row["phoneno"]) . "</td>\n";
   echo "</tr>\n";
}
echo "</table>\n";
sesam_free_result($result);
?>

Voir aussi sesam_fetch_row() qui retourne un tableau numérique.

Précédent | Sommaire | Suivant
sesam_execimm | Niveau supérieur | sesam_fetch_result


sesam_fetch_result

(PHP 3 CVS only)

sesam_fetch_result -- Retourne tout ou partie d'un résultat SESAM

Description

mixed sesam_fetch_result ( string result_id [, int max_rows] )

sesam_fetch_result() retourne un tableau avec les lignes du résultat identifié par result_id, éventuellement limité à un maximum de max_rows Notez que les lignes et les colonnes sont indexées à partir de 0.

Tableau 1. Résultat de sesam_fetch_result()

Elément du tableau | Contents
int $arr["count"] | Nombre de colonnes dans le résultat (ou zéro si c'était une requête immédiate).
int $arr["rows"] | Nombre de lignes dans le résultat (entre zéro et max_rows)
bool $arr["truncated"] | TRUE si le nombre de lignes était d'au moins max_rows, FALSE sinon. Notez que même si cette valeur est à TRUE, le prochain appel à sesam_fetch_result() peut ne retourner aucune ligne parce qu'il n'y a plus d'entrées.
mixed $arr[col][row] | les valeurs du résultat à la ligne row et colonne col. Le résultat est un tableau multidimensionnel. row va de 0 à $arr["rows"]-1, et col de 0 à $arr["count"]-1). Les champs peuvent être vides : vous devez vérifier leur existence avec la fonction isset(). Le type retourné dépend du type SQL déclaré pour cette colonne (voir Introduction SESAM pour connaître les conversions utilisées). Les champs multiples SESAM sont traités comme des séquences de colonnes.
Notez que la quantité de mémoire utilisée par des requêtes peut se révéler gigantesque. Utilisez alors max_rows pour limiter le nombre maximum de lignes retournées, à moins que vous ne soyez absolument sûr que votre résultat ne consommera pas toute la mémoire disponible.

Voir aussi sesam_fetch_row() et sesam_field_array() pour vérifier les champs multiples. Voyez sesam_query() pour un exemple complet avec sesam_fetch_result().

Précédent | Sommaire | Suivant
sesam_fetch_array | Niveau supérieur | sesam_fetch_row


sesam_fetch_row

(PHP 3 CVS only)

sesam_fetch_row -- Lit une ligne dans un tableau

Description

array sesam_fetch_row ( string result_id [, int whence [, int offset]] )

sesam_fetch_row() retourne un tableau qui correspond à la ligne lue dans le résultat result_id, ou FALSE s'il n'y a plus de ligne.

Le nombre de colonnes du résultat est retourné dans un élémenent du tableau associatif retourné $array["count"]. Comme certaines lignes peuvent être vides, la fonction count() ne peut être utilisée avec le tableau ainsi retourné par sesam_fetch_row().

result_id est un identifiant de résultat valide retourné par sesam_query() (avec une requête de selection seulement !).

whence est un paramètre optionnel lors d'une opération de lecture sur un curseur à défilement, qui peut prendre une des valeurs suivantes :

Tableau 1. Valeurs valides pour whence

Valeur | Constante | Signification
0 | SESAM_SEEK_NEXT | Lecture séquentielle (après la lecture, la position est déplacée à SESAM_SEEK_NEXT)
1 | SESAM_SEEK_PRIOR | Lecture séquentielle à rebours (après la lecture, la position est déplacée à SESAM_SEEK_PRIOR)
2 | SESAM_SEEK_FIRST | Repositionnement au début (après la lecture, la position est déplacée à SESAM_SEEK_NEXT)
3 | SESAM_SEEK_LAST | Repositionnement à la fin (après la lecture, la position est déplacée à SESAM_SEEK_PRIOR)
4 | SESAM_SEEK_ABSOLUTE | Repositionnement absolu à offset (index commencant à 0. Après la lecture, la position est placée à SESAM_SEEK_ABSOLUTE, et le pointeur interne est auto-incrémenté).
5 | SESAM_SEEK_RELATIVE | Repositionnement relatif à offset, où offset peut être positif ou négatif
Ce paramètre n'est valable que pour les curseurs à défilement.

Lors de l'utilisation de curseurs à défilement, le curseur peut être librement repositionné. Si le paramètre whence est omis, les valeur par défaut seront utilisées (initialisées à : SESAM_SEEK_NEXT, et modifiées par sesam_seek_row()). Si whence est fourni, sa valeur remplacera les valeurs par défaut.

offset est un parmètre optionnel qui n'est utilisé (et nécessaire) que si whence vaut soit SESAM_SEEK_RELATIVE ou SESAM_SEEK_ABSOLUTE. Ce paramètre n'est valable que pour les curseurs à défilement.

sesam_fetch_row() lit une ligne de données dans le résultat result_id. La ligne est retournée sous forme d'un tableau (indexé de 0 à $array["count"]-1). Les champs peuvent être vides : il faut vous assurer de leur existence en utilisant la fonction isset(). Le type de la valeur retournée dépend du type SQL déclaré dans la base (voir introduction SESAM pour connaître les conversions utilisées). Les champs multiples SESAM sont linéarisés, et traités comme autant de colonnes.

Les prochains appels à sesam_fetch_row() liront la prochaine ligne (ou la précédente, ou la n-ième, suivant le type de défilement) dans le résultat, ou FALSE, s'il n'y a plus de lignes.

Exemple 1. Exemple avec sesam_fetch_row()

<?php
$result = sesam_query ("SELECT * FROM phone\n".
                       "  WHERE LASTNAME='".strtoupper($name)."'\n".
                       "  ORDER BY FIRSTNAME", 1);
if (!$result) {
    // erreur
}
// Affiche la table dans l'ordre inverse
echo "<table border=\"1\">\n";
$row = sesam_fetch_row ($result, SESAM_SEEK_LAST);
while (is_array($row)) {
    echo "<tr>\n";
    for($col = 0; $col < $row["count"]; ++$col) {
        echo "<td>" . htmlspecialchars($row[$col]) . "</td>\n";
    }
    echo "</tr>\n";
    // utilise la valeur implicite de SESAM_SEEK_PRIOR
    $row = sesam_fetch_row ($result);
}
echo "</table>\n";
sesam_free_result ($result);
?>

Voir aussi sesam_fetch_array() qui retourne un tableau associatif et sesam_fetch_result() qui retourne plusieurs lignes en même temps.

Précédent | Sommaire | Suivant
sesam_fetch_result | Niveau supérieur | sesam_field_array


sesam_field_array

(PHP 3 CVS only)

sesam_field_array -- Retourne des informations sur une colonne de résultat

Description

array sesam_field_array ( string result_id )

result_id est un identifiant de résultat valide retourné par la fonction sesam_query().

sesam_field_array() retourne un tableau contenant les informations (nom de colonne, type, précision...) sur une colonne dans le résultat associé à result_id.

Tableau 1. Informations retournées par sesam_field_array()

Index | Contenu
int $arr["count"] | Nombre total de colonnes dans le résultat (ou zéro si la requête était immédiate). Les champs multiples de SESAM sont linéarisés, et traités comme autant de colonnes.
string $arr[col]["name"] | Le nom de la colonne col, avec col qui vaut entre 0 et $arr["count"]-1. La valeur retournée peut être une chaîne vide (pour les colonnes dynamiquement générées). Les champs multiples SESAM sont linéarisés, et traités comme autant de colonnes, avec le même nom.
string $arr[col]["count"] | L'attribut "count" décrit le facteur de répétition quand la colonne a été déclarée comme un champ multiple. Généralement, cet attribut est à 1. La première colonne d'un champ multiple contient le nombre de répétitions, tandis que les colonnes suivantes ont un facteur de répétition mis à 1. Ceci peut être utilisé pour detecter les champs multiples. Reportez-vous à l'exemple de la fonction sesam_query() pour avoir un exemple d'utilisation.
string $arr[col]["type"] Type de variable PHP pour les données de la colonne col, où col vaut de 0 à $arr["count"]-1. La valeur retournée peut être l'une de celles-ci :

  • "integer"

  • "double"

  • "string"

, suivant le type de données SQL. Les champs multiples SESAM sont linéarisés et traités comme autant de colonnes ayant le même type PHP.
string $arr[col]["sqltype"] Type de données SQL de la colonne col, où col vaut de 0 à $arr["count"]-1. La valeur retournée peut être l'une de celles-ci :

  • "CHARACTER"

  • "VARCHAR"

  • "NUMERIC"

  • "DECIMAL"

  • "INTEGER"

  • "SMALLINT"

  • "FLOAT"

  • "REAL"

  • "DOUBLE"

  • "DATE"

  • "TIME"

  • "TIMESTAMP"

, décrivant le type de données SQL. Les champs multiples SESAM sont linéarisés et traités comme autant de colonnes du même type.
string $arr[col]["length"] | La taille de l'attribut, au sens SQL, de la colonne col, où col vaut de 0 à $arr["count"]-1. La longueur est utilisée avec les champs "CHARACTER" et "VARCHAR", pour spécifier la taille maximale de la colonne. Les champs multiples SESAM sont linéarisés et traités comme autant de colonnes ayant la même taille SQL.
string $arr[col]["precision"] | La précision de la colonne col, au sens SQL, où col vaut de 0 à $arr["count"]-1. La précision est utilisée avec les champs numériques et de date. Les champs multiples SESAM sont linéarisés et traités comme autant de colonnes ayant la même précision SQL.
string $arr[col]["scale"] | L'échelle de la colonne col, au sens SQL, où col vaut de 0 à $arr["count"]-1. L'échelle est utilisée avec les champs numériques. Les champs multiples SESAM sont linéarisés et traités comme autant de colonnes ayant la même échelle SQL.

Voir aussi sesam_query(), pour un exemple d'utilisation de sesam_field_array().

Précédent | Sommaire | Suivant
sesam_fetch_row | Niveau supérieur | sesam_field_name


sesam_field_name

(PHP 3 CVS only)

sesam_field_name -- Retourne le nom d'une colonne

Description

int sesam_field_name ( string result_id, int index )

sesam_field_name() retourne le nom du champ index dans le résultat identifié par result_id, ou FALSE en cas d'erreur.

Pour les requêtes immédiates, ou les colonnes dynamiques, une chaîne vide est retournée.

Note : Les colonnes sont indexées à partir de 0, et non pas 1.

Voir aussi : sesam_field_array(). Cette fonction fournit une interface simple aux noms et types de colonnes, et permet la detection des champs multiples.

Précédent | Sommaire | Suivant
sesam_field_array | Niveau supérieur | sesam_free_result


sesam_free_result

(PHP 3 CVS only)

sesam_free_result -- Libère les ressources SESAM

Description

int sesam_free_result ( string result_id )

sesam_free_result() libère les ressources reservées par la requête result_id. Retourne FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
sesam_field_name | Niveau supérieur | sesam_num_fields


sesam_num_fields

(PHP 3 CVS only)

sesam_num_fields -- Retourne le nombre de colonnes dans un résultat

Description

int sesam_num_fields ( string result_id )

Après avoir appelé sesam_query() avec une requête de selection, sesam_num_fields() indique le nombre de colonnes du résultat identifié par result_id. Retourne FALSE en cas d'erreur.

Pour les requêtes immédiates, la valeur zéro est retournée. Les champs multiples SESAM comptent autant que leurs tailles respectives, c'est-à-dire qu'un champ multiple de trois colonnes comptera comme trois colonne3.

Voir aussi sesam_query() et sesam_field_array() pour savoir distinguer les champs multiples des colonnes standard.

Précédent | Sommaire | Suivant
sesam_free_result | Niveau supérieur | sesam_query


sesam_query

(PHP 3 CVS only)

sesam_query -- Exécute une requête SESAM

Description

string sesam_query ( string query [, bool scrollable] )

sesam_query() retourne un identifiant de résultat SESAM en cas de succès, ou FALSE en cas d'erreur.

L'identifiant de résultat est utilisé par d'autres fonctions SESAM pour lire les valeurs.

sesam_query() envoie une requête à la base active. Elle peut exécuter aussi bien une requête immédiate (DELETE, UPDATE ou INSERT), ou une requête de selection. Si une requête immédiate est exécutée, aucun curseur n'est alloué, et il ne sera pas possible d'utiliser les fonctions sesam_fetch_row() ou sesam_fetch_result(). Pour les requêtes de selection, un descripteur de résultat et un curseur (scrollable ou séquentiel, suivant le paramètre optionnel scrollable passé) sera alloué. Si scrollable est omis, le curseur sera séquentiel.

Lorsque vous utilisez les curseurs à défilement, le curseur peut être positionné librement dans le résultat. Pour chaque requête à défilement, il existe des valeurs globales de types de défilement (initialisée à :SESAM_SEEK_NEXT) et la position peut être fixée une seule fois par sesam_seek_row() ou bien à chaque appel, avec la fonction sesam_fetch_row().

Pour les requêtes immédiates, le nombre de lignes affectées est sauvé, et est accessible par la fonction sesam_affected_rows().

Exemple 1. Liste toutes les lignes de table "phone" sous forme de table HTML

<?php
if (!sesam_connect("phonedb", "demo", "toto")) {
  die("cannot connect");
}
$result = sesam_query("select * from phone");
if (!$result) {
  $err = sesam_diagnostic();
  die ($err["errmsg"]);
}
echo "<table border=\"1\">\n";
// Ajoute l'en-tête de titre comme nom de colonne
if ($cols = sesam_field_array($result)) {
  echo "<tr><th colspan=\"".$cols["count"]."\">Résultat:</th></tr>\n";
  echo "<tr>\n";
  for ($col = 0; $col < $cols["count"]; ++$col) {
    $colattr = $cols[$col];
    /* étend les en-têtes de la table au-dessus des champs multiples */
    if ($colattr["count"] > 1) {
      echo "<th colspan=\"".$colattr["count"]."\">".$colattr["name"].
           "(1..".$colattr["count"].")</th>\n";
      $col += $colattr["count"] - 1;
    } else {
       echo "<th>" . $colattr["name"] . "</th>\n";
    }
  }
  echo "</tr>\n";
}

do {
  // Lit les résultats par bloc de 100
  $ok = sesam_fetch_result($result,100);
  for ($row=0; $row < $ok["rows"]; ++$row) {
    echo "<tr>\n";
    for ($col = 0; $col < $ok["cols"]; ++$col) {
      if (isset($ok[$col][$row])) {
        echo "<td>" . $ok[$col][$row] . "</td>\n";
      } else {
        echo "<td>-empty-</td>\n";
      }
    }
    echo "</tr>\n";
  }
} while ($ok["truncated"]); // tant qu'il a y encore des données

echo "</table>\n";
// libère les ressources
sesam_free_result($result);
?>

Voir aussi : sesam_fetch_row() et sesam_fetch_result().

Précédent | Sommaire | Suivant
sesam_num_fields | Niveau supérieur | sesam_rollback


sesam_rollback

(PHP 3 CVS only)

sesam_rollback -- Annule une transaction SESAM

Description

bool sesam_rollback ( void )

sesam_rollback() retourne TRUE en cas de succès et FALSE en cas d'erreur.

sesam_rollback() annule toutes les modifications en cours sur la base. Les curseurs de résultats et les descripteurs de résultats seront affectés.

À la fin de chaque script, et dans chaque appel à sesam_disconnect(), un appel implicite à sesam_rollback() est fait, annulant toutes les transactions non validées dans la base.

Exemple 1. Annulation d'une transaction SESAM

<?php
if (sesam_connect ("moncatalogue", "monschema", "toto")) {
  if (sesam_execimm("INSERT INTO matable VALUES (*, 'Petit Test', <0, 8, 15>)")
   && sesam_execimm("INSERT INTO autretable VALUES (*, 'Autre Test', 1)")) {
     sesam_commit();
  } else {
     sesam_rollback();
  }
}
?>

Voir aussi sesam_commit().

Précédent | Sommaire | Suivant
sesam_query | Niveau supérieur | sesam_seek_row


sesam_seek_row

(PHP 3 CVS only)

sesam_seek_row -- Déplace un curseur à défilement

Description

bool sesam_seek_row ( string result_id, int whence [, int offset] )

result_id est un indentifiant de résultat valide (requête de sélection, et curseur à défilement créé avec sesam_query()).

whence modifie la valeur globale par défaut pour le type de défilement, spécifie le type de défilement à utiliser lors des opérations de lectures ultérieurs. Les valeurs valides sont les suivantes :

Tableau 1. Valeurs valides pour whence

Valeur | Constante | Signification
0 | SESAM_SEEK_NEXT | Lecture séquentielle (après la lecture, la position est déplacée à SESAM_SEEK_NEXT)
1 | SESAM_SEEK_PRIOR | Lecture séquentielle à rebours (après la lecture, la position est déplacée à SESAM_SEEK_PRIOR)
2 | SESAM_SEEK_FIRST | Repositionnement au début (après la lecture, la position est déplacée à SESAM_SEEK_NEXT)
3 | SESAM_SEEK_LAST | Repositionnement à la fin (après la lecture, la position est déplacée à SESAM_SEEK_PRIOR)
4 | SESAM_SEEK_ABSOLUTE | Repositionnement absolu à offset (index commencant à 0. Après la lecture, la position est placée à SESAM_SEEK_ABSOLUTE, et le pointeur interne est auto-incrémenté).
5 | SESAM_SEEK_RELATIVE | Repositionnement relatif à offset, où offset peut être positif ou négatif

offset est optionnel. Il ne sert que lorsque whence vaut soit SESAM_SEEK_RELATIVE, soit SESAM_SEEK_ABSOLUTE.

Précédent | Sommaire | Suivant
sesam_rollback | Niveau supérieur | sesam_settransaction


sesam_settransaction

(PHP 3 CVS only)

sesam_settransaction -- Modifie les paramètres de transaction SESAM

Description

bool sesam_settransaction ( int isolation_level, int read_only )

sesam_settransaction() retourne TRUE si les valeurs sont valides et que la modification a été réussie. FALSE sinon.

sesam_settransaction() remplace les valeurs par défaut du niveau d'isolation ("isolation level") et de lecture seule ("read-only") fixées par le fichier de configuration SESAM), afin d'optimiser les requêtes ultérieures et garantir la cohérence de la base. Ces valeurs ne seront utilisées que pour la prochaine transaction.

sesam_settransaction() ne peut être appelée qu'avant le début de la transaction. Elle est inefficace si la transaction a déjà commencé.

Pour simplifier l'utilisation de cette fonction dans les scripts PHP, les constantes suivantes ont été définies en PHP (reportez-vous au manuel SESAM pour avoir des détails sur leur signification) :

Tableau 1. Valeurs valides pour le paramètre isolation_level

Valeur | Constante | Signification
1 | SESAM_TXISOL_READ_UNCOMMITTED | Lecture sans validation
2 | SESAM_TXISOL_READ_COMMITTED | Lecture avec validation
3 | SESAM_TXISOL_REPEATABLE_READ | Lecture récurrente
4 | SESAM_TXISOL_SERIALIZABLE | Sérialisable

Tableau 2. Valeurs valides pour le paramètre read_only

Valeur | Constante | Signification
0 | SESAM_TXREAD_READWRITE | Lecture/écriture
1 | SESAM_TXREAD_READONLY | Lecture seule

Les valeurs modifiées par sesam_settransaction() remplaceront les valeurs par défaut spécifiées dans le fichier de configuration SESAM.

Exemple 1. Modifier les paramètres de configuration SESAM

<?php
sesam_settransaction(SESAM_TXISOL_REPEATABLE_READ, SESAM_TXREAD_READONLY);
?>

Précédent | Sommaire | Suivant
sesam_seek_row | Niveau supérieur | Sauvegarde d'Identifiant de session PostgreSQL


Sessions

Manuel PHP
Précédent Suivant

CXLIX. Sessions

Introduction

Le support des sessions de PHP est un moyen de préserver des données entre plusieurs accès. Cela vous permet de créer des applications personnalisées, et d'augmenter l'attrait de votre site.

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 d'enregistrer un nombre illimité de variables qui doivent être préservées entre les requêtes. 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() ou implicitement avec session_register()) 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 vous ne pourrez pas enregistrer d'objets dans votre session tant que la définition de la classe ne sera pas chargée avant le début de la session, pour recréer les objets de votre session.

Toutes les variables sont sérialisées 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

Quelques types de données ne peuvent pas être linéarisés pour être stockés dans les sessions. Cela inclut les variables de type resource ou les objets avec des références circulaires (i.e. objet qui passe une référence à lui-même à un autre objet).

Note : La gestion des sessions a été ajoutée en PHP 4.0.0.

Note : Notez que lorsque vous travaillez avec les sessions, un enregistrement dans la session ne sera pas créé tant que la variable ne sera pas enregistrée en utilisant la fonction session_register() ou en ajoutant une clé à la variable super-globale $_SESSION. Cela n'est vrai que si vous avez débuté une session en appelant la fonction session_start().

Sessions et sécurité

Lien externe : Session fixation

Utiliser les sessions ne signifie pas que les données de session ne pourront être vues que par un seul utilisateur. Il est important de garder cela en tête lorsque vous stockez et affichez des données importantes. Lorsque vous stockez des données dans une session, il faut se demander quels seront les problèmes posés si quelqu'un d'autre accède à cette information, ou comment votre application est affectée si la session est en fait celle d'un autre.

Par exemple, si quelqu'un usurpe une session, il peut alors poster un message dans un forum sous une fausse identité. Quelle est la gravité de ce problème ? Ou bien, il peut accéder aux commandes d'un client, et même, modifier son panier d'achat. À priori, c'est moins problématique pour un fleuriste que pour un pharmacien. Si vous voulez résoudre ce souci de façon simple, il peut être utile d'activer session.use_only_cookies. Dans ce cas, les cookies devront être activés par le client, sinon, les sessions ne fonctionneront pas.

Par conséquent, lorsque vous manipulez des données importantes, il faut exploiter d'autres méthodes pour décider si une session est valide ou pas. Les sessions ne fournissent pas une méthode fiable d'identification.

Les sessions reposent sur un identifiant de session, ce qui signifie que quelqu'un peut voler cet identifiant, rien qu'en volant l'ID. Ce vol peut être rendu très difficile, comme en utilisant les cookies, mais en aucun cas cela sera impossible. Les sessions dépendent aussi de la discipline de l'utilisateur qui referme son navigateur à la fin de la session pour tout clore proprement. De plus, même les cookies de session peuvent être surveillés sur un réseau, ou bien notés par un proxy car ils transitent en clair sur le réseau. Pour remédier à cela, vous devriez implémenter un chiffrage SSL sur votre plate-forme.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Note : Optionnellement, vous pouvez utiliser l'allocation de mémoire partagée (mm), développé par Ralf S.Engelschall, pour stocker votre session. Vous devez télécharger mm et l'installer. Cette option n'est pas disponible pour les environnements Windows. Notez que le module de stockage de session mm ne garantit pas les verrous de sessions en cas d'accès multiples à la même session. Il peut être plus approprié d'utiliser un système de fichiers basé en mémoire partagée (comme tmpfs sur Solaris/Linux ou /dev/md sur BSD) pour stocker les sessions dans des fichiers, car ils seront proprement verrouillés. Les données de session sont stockées en mémoire ainsi, elles seront effacées lors du redémarrage du serveur web.

Installation

Le support des sessions est activé par défaut. Si vous souhaitez l'exclure de PHP, vous devez utiliser l'option --disable-session lors de l'exécution du script de configuration. Pour utiliser la mémoire vive pour le stockage des sessions, compilez PHP avec l'option --with-mm[=DIR] .

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note : Par défaut, toutes les données relatives à une session particulière seront stockées dans un fichier du répertoire spécifié par session.save_path dans les options du fichier php.ini. Un fichier pour chaque session sera créé. Cela est dû au fait que 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.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
session.save_path | "/tmp" | PHP_INI_ALL |
session.name | "PHPSESSID" | PHP_INI_ALL |
session.save_handler | "files" | PHP_INI_ALL |
session.auto_start | "0" | PHP_INI_ALL |
session.gc_probability | "1" | PHP_INI_ALL |
session.gc_divisor | "100" | PHP_INI_ALL | Disponible depuis PHP 4.3.2.
session.gc_maxlifetime | "1440" | PHP_INI_ALL |
session.serialize_handler | "php" | PHP_INI_ALL |
session.cookie_lifetime | "0" | PHP_INI_ALL |
session.cookie_path | "/" | PHP_INI_ALL |
session.cookie_domain | "" | PHP_INI_ALL |
session.cookie_secure | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.4.
session.cookie_httponly | "" | PHP_INI_ALL | Disponible depuis PHP 5.2.0.
session.use_cookies | "1" | PHP_INI_ALL |
session.use_only_cookies | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
session.referer_check | "" | PHP_INI_ALL |
session.entropy_file | "" | PHP_INI_ALL |
session.entropy_length | "0" | PHP_INI_ALL |
session.cache_limiter | "nocache" | PHP_INI_ALL |
session.cache_expire | "180" | PHP_INI_ALL |
session.use_trans_sid | "0" | PHP_INI_ALL | PHP_INI_ALL en PHP <= 4.2.3. PHP_INI_PERDIR en PHP < 5. Disponible depuis PHP 4.0.3.
session.bug_compat_42 | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
session.bug_compat_warn | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
session.hash_function | "0" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
session.hash_bits_per_character | "4" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | Disponible depuis PHP 4.0.4.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

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. Par défaut, il vaut /tmp. 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. 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.

Avertissement

Si vous laissez cette option configurée avec un dossier accessible en lecture à tout le monde, comme /tmp (par défaut), les autres utilisateurs pourront exploiter ces sessions en obtenant la liste de fichiers dans ce dossier.

Note : Avant PHP 4.3.6, les utilisateurs de Windows doivent changer cette valeur de variable pour que les fonctions de sessions de PHP fonctionnent. Indiquez un chemin de dossier valide, par exemple : c:/temp.

session.name string

Spécifie le nom de la session, qui sera utilisé comme nom de cookie. Il ne doit contenir que des caractères alphanumériques. Par défaut, c'est PHPSESSID. Voir aussi session_name().

session.auto_start boolean

Spécifie si le module de session doit démarrer automatiquement au début de chaque script PHP. Par défaut, c'est 0 (désactivé).

session.serialize_handler string

Définit le nom du gestionnaire qui est utilisé pour linéariser/délinéariser les données. Actuellement, le format interne à PHP (nommé PHP) et WDDX (nommé wddx) sont supportés. WDDX est seulement disponible, si PHP a été compilé avec l'option WDDX. Par défaut, c'est php.

session.gc_probability entier

Spécifie la probabilité, exprimée en pourcentage, en conjonction de session.gc_divisor, que la routine gc (garbage collection) soit démarrée à chaque requête. La valeur par défaut est 1. Voir session.gc_divisor pour plus de détails.

session.gc_divisor entier

session.gc_divisor en conjonction avec session.gc_probability définit la probabilité que la routine gc (garbage collection) soit démarrée à chaque début de session. La probabilité est calculée en utilisant gc_probability/gc_divisor, par exemple 1/100 signifie qu'il y a 1 % de chance pour que la routine gc démarre à chaque requête. La valeur par défaut est 100.

session.gc_maxlifetime entier

Spécifie la durée de vie des données sur le serveur, en nombre de secondes. Après cette durée, les données seront considérées comme obsolètes, et supprimées. Les données deviennent obsolètes lors du démarrage de la session.

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.

Note : Si vous utilisez le gestionnaire de sessions par fichier, qui est fourni par défaut, votre système doit garder la trace des dates de dernier accès aux fichiers (atime). La FAT de Windows ne le fait pas, il vous faudra donc trouver un autre système pour gérer les sessions qui ont expiré. Depuis PHP 4.2.3, on utilise mtime (date de modification) au lieu de atime. Ainsi, vous n'aurez plus de souci avec les systèmes de fichiers qui ne gèrent pas atime.

session.referer_check entier

Contient une sous-chaîne que vous souhaitez retrouver dans tous les en-têtes HTTP Referer. Si cet en-tête a été envoyé par le client et que la sous-chaîne n'a pas été trouvée, l'identifiant de session sera considéré comme invalide. Par défaut, cette option est une chaîne vide.

session.entropy_file string

Est un chemin jusqu'à une source externe (un fichier), qui sera utilisée comme source additionnelle d'entropie pour la création de l'identifiant de session. Des exemples valides sont /dev/random et /dev/urandom, qui sont disponibles sur tous les systèmes Unix.

session.entropy_length entier

Spécifie le nombre d'octets qui seront lus dans le fichier défini ci-dessus. Par défaut, il vaut 0, c'est-à-dire inactif.

session.use_cookies boolean

Spécifie si le module utilisera les cookies pour stocker les données de session sur le client. Par défaut, il vaut 1, c'est-à-dire actif.

session.use_only_cookies boolean

Spécifie si le module doit utiliser seulement les cookies pour stocker les identifiants de sessions du côté du navigateur. En l'activant, vous éviterez les attaques qui utilisent des identifiants de sessions dans les URL. Cette configuration a été ajoutée en PHP 4.3.0.

session.cookie_lifetime entier

Spécifie la durée de vie du cookie en secondes. La valeur de 0 signifie : "Jusqu'à ce que le navigateur soit éteint". La valeur par défaut est 0. Voir aussi session_get_cookie_params() et session_set_cookie_params(). Vu que le cookie est retourné par le navigateur, sa durée de vie n'est pas prolongée. Il doit être envoyé manuellement avec la fonction setcookie().

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 boolean

Spécifie que les cookies ne doivent être émis que sur des connexions sécurisées. Par défaut, cette option est à off. Cette option a été ajoutée en PHP 4.0.4. Voir aussi session_get_cookie_params() et session_set_cookie_params().

session.cookie_httponly boolean

Marque le cookie pour qu'il ne soit accessible que via le protocole HTTP. Cela signifie que le cookie ne sera pas accessible par les langage de script, comme Javascript. Cette configuration permet de limiter les attaques comme les attaques XSS (bien qu'elle n'est pas supporté par tous les navigateurs).

session.cache_limiter string

Spécifie le type de contrôle de cache utilisé pour les pages avec sessions. Les valeurs possibles sont : none, nocache, private, private_no_expire, public. Par défaut, il vaut nocache. Voir aussi session_cache_limiter().

session.cache_expire entier

Spécifie la durée de vie des données de sessions, en minutes. Cette option n'a aucune conséquence sur le contrôle de cache. Par défaut, il vaut 180 (3 heures). Voir aussi session_cache_expire().

session.use_trans_sid boolean

Spécifie si le support du SID est transparent ou pas. Par défaut vaut 0 (désactivé).

Note : En PHP 4.1.2 ou plus ancien, cette option est activée en utilisant l'option de compilation --enable-trans-sid. Depuis PHP 4.2.0, cette option est toujours activée.

Le système de gestion des sessions par URL pose un risque supplémentaire de sécurité : un utilisateur peut envoyer son URL avec l'identifiant de session par email à un ami, ou bien le mettre dans ses signets. Cela diffusera alors l'identifiant de session.

session.bug_compat_42 boolean

Les versions de PHP antérieures à la version 4.2.3 disposaient d'une fonctionnalité/bogue non documentée, qui vous permettait d'initialiser une variable de session dans le contexte global, même si register_globals était désactivé. PHP 4.3.0 et plus récent vous préviendra de l'utilisation de cette fonctionnalité si vous avez aussi activé session.bug_compat_warn. Cette fonctionnalité/bogue peut être désactivée en désactivant cette directive.

session.bug_compat_warn boolean

Les versions de PHP antérieures à la version 4.2.3 disposaient d'une fonctionnalité/bogue non documentée, qui vous permettait d'initialiser une variable de session dans le contexte global, même si register_globals était désactivé. PHP 4.3.0 et plus récent vous préviendra de l'utilisation de cette fonctionnalité si vous avez activé session.bug_compat_42 et session.bug_compat_warn.

session.hash_function ???

session.hash_function vous permet de spécifier la fonction de hachage à utiliser pour générer les identifiants de session. '0' signifie MD5 (128 bits) et '1' signifie SHA-1 (160 bits).

Depuis PHP 6.0.0, il est également possible de spécifier n'importe quel algorithme fourni par l'extension hash (s'il est disponible), comme sha512 ou whirlpool. Une liste complète d'algorithmes peut être obtenue avec la fonction hash_algos().

Note : Cette directive a été ajoutée en PHP 5.

session.hash_bits_per_character entier

session.hash_bits_per_character vous permet de définir le nombre de bits utilisés pour chaque caractère lors des conversions des données binaires en éléments lisibles. Les valeurs possibles sont '4' (0-9, a-f), '5' (0-9, a-v), et '6' (0-9, a-z, A-Z, "-", ",").

Note : Cette directive a été ajoutée en PHP 5.

session.url_rewriter.tags string

Spécifie quelles sont les balises HTML qui doivent être réécrites si le support transparent du SID est activé. Par défaut, il vaut a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=.

Note : Si vous voulez vous conformer aux spécifications HTML/XHTML strictes, supprimez l'entrée form et utilisez le tag <fieldset> autour de votre balise form.

Les options track_vars et register_globals influencent le comportement des sessions, leur stockage et leur restauration.

Note : Depuis PHP 4.0.3, track_vars est toujours activé.

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.

SID (chaîne de caractères)

Constante contenant le nom de la session et l'identifiant en cours, sous la forme "name=ID" ou une chaîne vide si l'identifiant de session a été défini dans un cookie de session.

Exemples

Note : Depuis PHP 4.1.0, $_SESSION est disponible comme variable globale, au même titre que $_POST, $_GET, $_REQUEST, etc. Contrairement à $HTTP_SESSION_VARS, $_SESSION est toujours globale. Par conséquent, vous n'avez pas besoin d'utiliser le mot réservé global avec $_SESSION. Notez que cette documentation a été modifiée pour utiliser $_SESSION. Vous pouvez toujours le remplacer par $HTTP_SESSION_VARS si vous préférez l'ancienne version. Notez également que vous devez démarrer votre session en utilisant la fonction session_start() avant d'utiliser la variable super-globale $_SESSION.

Les clés du tableau $_SESSION sont sujettes aux mêmes limitations que les variables PHP habituelles, c'est-à-dire qu'elles ne peuvent pas commencer par un nombre, mais commencer par une lettre ou un souligné '_'. Pour plus de détails, reportez-vous à la section sur les variables.

Si track_vars est activé et register_globals est désactivé, seuls les éléments du tableau global $_SESSION contiendront les variables enregistrées dans la session. Les variables de sessions relues seront uniquement disponibles dans $_SESSION.

L'utilisation de $_SESSION (ou $HTTP_SESSION_VARS avec PHP 4.0.6 et plus ancien) est recommandé pour une meilleure sécurité et un code plus facilement entretenu. Avec $_SESSION, il n'y a pas besoin d'utiliser les fonctions session_register(), session_unregister() et session_is_registered(). Les variables de sessions sont accessibles comme toute autre variable.

Exemple 1. Enregistrer une variable avec $_SESSION.

<?php
session_start();
// Utilisez $HTTP_SESSION_VARS avec PHP 4.0.6 ou plus ancien
if (!isset($_SESSION['compteur'])) {
    $_SESSION['compteur'] = 0;
} else {
    $_SESSION['compteur']++;
}
?>

Exemple 2. Retirer une variable de session avec $_SESSION et register_globals inactif.

<?php
session_start();
// Utilisez $HTTP_SESSION_VARS avec PHP 4.0.6 ou plus ancien
unset($_SESSION['compteur']);
?>

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.

Si register_globals est activé, alors toutes les variables globales peuvent être enregistrées comme variables de session, et toutes les variables de sessions seront reconstituées comme variables globales. Comme PHP doit savoir quels variables globales sont enregistrées comme variables de sessions, l'utilisateur doit enregistrer les variables avec session_register() tandis que $HTTP_SESSION_VARS et $_SESSION ne nécessitent pas session_register().

Attention

Avant PHP 4.3.0, si vous utilisez $_SESSION et que vous avez désactivé register_globals, n'utilisez pas session_register(), session_is_registered() ou session_unregister().

Désactiver register_globals est recommandé pour des raisons de sécurité et de performances.

Si register_globals est activé, alors les variables globales et les entrées dans le tableau $_SESSION seront des références sur la même valeur pour les valeurs qui auront été enregistrées avant le démarrage de la session (donc, dans les page précédentes). Cependant, si la variable a été enregistrée avec $_SESSION, alors, la variable globale est disponible jusqu'à la prochaine requête.

De plus, si vous enregistrez une nouvelle variable avec la fonction session_register(), l'entrée dans l'environnement global et $_SESSION ne fera pas de référence vers la même valeur jusqu'à la prochaine utilisation de session_start() (ceci s'applique à PHP 4.2.3 et avant seulement). C'est à dire qu'une modification dans les variables globales ne sera pas répercutée dans les entrées de $_SESSION. Il est peu probable que cela ait un impact en pratique et, de plus, cela a été corrigé en PHP 4.3.0.

Passer l'identifiant de session (session ID)

Il y a deux méthodes de propagation de l'identifiant de session :

  • Cookies

  • Par URL

Le module de session supporte les deux méthodes. Les cookies sont optimaux, mais comme ils ne sont pas sûrs (tous les internautes ne les acceptent pas), ils ne sont pas fiables. La seconde méthode place l'identifiant de session directement dans les URL.

PHP est capable de faire cela de manière transparente, lorsqu'il est compilé avec l'option --enable-trans-sid. Si vous activez cette option, les URL relatives seront modifiées pour contenir l'identifiant de session automatiquement. Alternativement, vous pouvez utiliser la constante SID, qui est définie, si le client n'a pas envoyé le cookie approprié. SID est soit de la forme session_name=session_id ou une chaîne vide.

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 3. 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 c'est une fuite d'informations vers un autre site (envoi d'informations importantes).

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.

Table des matières
session_cache_expire -- Retourne la configuration actuelle du cache expire
session_cache_limiter -- Lit et/ou modifie le limiteur de cache de session
session_commit -- Alias de session_write_close()
session_decode -- Décode les données de session
session_destroy -- Détruit une session
session_encode -- Encode les 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_is_registered -- Vérifie si une variable est enregistrée dans la session
session_module_name -- Lit et/ou modifie le module de session courant
session_name -- Lit et/ou modifie le nom de la session
session_regenerate_id -- Remplace l'identifiant de session courant par un nouveau
session_register -- Enregistre une variable dans une session
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 -- Initialise une session
session_unregister -- Supprime une variable de la session
session_unset -- Détruit toutes les variables d'une session
session_write_close -- Ecrit les données de session et ferme la session

Précédent | Sommaire | Suivant
session_pgsql_status | Niveau supérieur | session_cache_expire


session_cache_expire

(PHP 4 >= 4.2.0, PHP 5)

session_cache_expire -- Retourne la configuration actuelle du cache expire

Description

int session_cache_expire ( [int new_cache_expire] )

session_cache_expire() retourne la configuration actuelle du cache expire Si new_cache_expire est fourni dans le fichier php.ini, la configuration actuelle de cache expire sera remplacée par new_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).

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

Note : La directive new_cache_expire n'a de valeur que si session.cache_limiter a une valeur différente de nocache.

Voir aussi session.cache_expire, session.cache_limiter et session_cache_limiter().

Précédent | Sommaire | Suivant
Sessions | Niveau supérieur | session_cache_limiter


session_cache_limiter

(PHP 4 >= 4.0.3, PHP 5)

session_cache_limiter -- Lit et/ou modifie le limiteur de cache de session

Description

string session_cache_limiter ( [string cache_limiter] )

session_cache_limiter() retourne la configuration courante du limiteur de cache. Si cache_limiter est fourni, le limiteur de cache est reconfiguré avec la valeur de cache_limiter.

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 de public, au contraire, permettra le cache. La valeur de private est aussi possible, et est légèrement plus restrictive que public.

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.

Note : private_no_expire a été ajouté en PHP 4.2.0.

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

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 la directive de configuration session.cache_limiter.

Précédent | Sommaire | Suivant
session_cache_expire | Niveau supérieur | session_commit


session_commit

(PHP 4 >= 4.3.11, PHP 5)

session_commit -- Alias de session_write_close()

Description

Cette fonction est un alias de : session_write_close().

Précédent | Sommaire | Suivant
session_cache_limiter | Niveau supérieur | session_decode


session_decode

(PHP 4, PHP 5)

session_decode -- Décode les données de session

Description

bool session_decode ( string data )

session_decode() décode les données de sessions fournies dans le paramètre data, et définit les variables ainsi contenues dans la session.

Voir aussi session_encode().

Précédent | Sommaire | Suivant
session_commit | Niveau supérieur | session_destroy


session_destroy

(PHP 4, PHP 5)

session_destroy -- Détruit une session

Description

bool session_destroy ( void )

session_destroy() détruit toutes les données associées à la session courante. Cette fonction ne détruit pas les variables globales associées à la session, de même, elle ne détruit pas le cookie de session.

Pour détruire complètement une session, comme faire sortir l'utilisateur, 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.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Destruction d'une session avec session_destroy()

<?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 (isset($_COOKIE[session_name()])) {
    setcookie(session_name(), '', time()-42000, '/');
}

// Finalement, on détruit la session.
session_destroy();

?>

Note : Utilisez uniquement la fonction session_unset() pour l'ancien code obsolète qui n'utilise pas les variables $_SESSION.

Voir aussi unset() et setcookie().

Précédent | Sommaire | Suivant
session_decode | Niveau supérieur | session_encode


session_encode

(PHP 4, PHP 5)

session_encode -- Encode les données de session

Description

string session_encode ( void )

session_encode() retourne une chaîne contenant les variables de la session courante encodées et prêtes au stockage.

Voir aussi session_decode().

Précédent | Sommaire | Suivant
session_destroy | Niveau supérieur | session_get_cookie_params


session_get_cookie_params

(PHP 4, PHP 5)

session_get_cookie_params -- Lit la configuration du cookie de session

Description

array session_get_cookie_params ( void )

session_get_cookie_params() retourne la configuration courante du cookie de session. Cette fonction 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 (cet élément a été ajouté en PHP 4.0.4).

  • "httponly" - Le cookie ne sera accessible que via le protocole HTTP (cet élément a été ajouté en PHP 5.2.0.).

Voir aussi les directives de configuration session.cookie_lifetime, session.cookie_path, session.cookie_domain, session.cookie_secure, session.cookie_httponly et session_set_cookie_params().

Précédent | Sommaire | Suivant
session_encode | Niveau supérieur | session_id


session_id

(PHP 4, PHP 5)

session_id -- Lit et/ou modifie l'identifiant courant de session

Description

string session_id ( [string id] )

session_id() est utilisé pour récupérer ou définir l'identifiant de session pour la session courante.

La constante SID peut également être utilisée pour lire le nom de la session courante et l'identifiant de session à fournir dans les URL. Voyez aussi Gestion de session.

Liste de paramètres

id

Si id est fourni, il remplacera l'identifiant courant de session. session_id() doit alors être appelé avant session_start(). Suivant le gestionnaire de sessions que vous utilisez, tous les caractères ne seront pas acceptés dans cette valeur. Par exemple, le gestionnaire de sessions par défaut, basé sur les fichiers, n'accepte que les caractères compris dans l'intervalle a-z, A-Z et 0-9 !

Note : Lorsque vous utilisez les sessions avec les cookies, le fait de spécifier un id pour session_id() fera qu'un nouveau cookie sera toujours envoyé lors de l'appel à session_start(), sans ce soucier si l'identifiant de session courant est identique à celui qui vient d'être défini.

Valeurs de retour

session_id() retourne l'identifiant de session pour la session courante ou une chaîne vide ("") s'il n'y a pas de session courante (aucun identifiant de session n'existe).

Voir aussi

session_regenerate_id()
session_start()
session_set_save_handler()
session.save_handler

Précédent | Sommaire | Suivant
session_get_cookie_params | Niveau supérieur | session_is_registered


session_is_registered

(PHP 4, PHP 5)

session_is_registered -- Vérifie si une variable est enregistrée dans la session

Description

bool session_is_registered ( string name )

session_is_registered() retourne TRUE si la variable de nom name fait partie de la session courante.

Note : Si $_SESSION (ou $HTTP_SESSION_VARS en PHP 4.0.6 et plus ancien) est utilisé, utilisez la fonction isset() pour vérifier la présence de la variable dans $_SESSION.

Attention

Si vous utilisez $_SESSION (ou $HTTP_SESSION_VARS), n'utilisez pas session_register(), session_is_registered() et session_unregister().

Précédent | Sommaire | Suivant
session_id | Niveau supérieur | session_module_name


session_module_name

(PHP 4, PHP 5)

session_module_name -- Lit et/ou modifie le module de session courant

Description

string session_module_name ( [string module] )

session_module_name() retourne le nom du module courant de session. Si module est fourni, cette valeur sera alors utilisée, et remplacera la valeur courante.

Précédent | Sommaire | Suivant
session_is_registered | Niveau supérieur | session_name


session_name

(PHP 4, PHP 5)

session_name -- Lit et/ou modifie le nom de la session

Description

string session_name ( [string name] )

session_name() retourne le nom de la session courante. Si name est fourni, le nom de la session courante sera remplacé par cette valeur.

Le nom de session est utilisé comme nom de cookie ou nom de variable dans les URL. Il ne doit contenir que des caractères alpha-numériques ; il doit être court et descriptif (surtout pour les utilisateurs ayant activé l'alerte cookie). Le nom de session est toujours remis à sa valeur par défaut (session.name, dans php.ini). Il faut donc utiliser session_name() au début de chaque script, et notamment avant session_start() ou session_register().

Avertissement

Les noms de session ne peuvent contenir que des chiffres, au moins une lettre doit être présente. Sinon, un identifiant de session sera généré à chaque fois.

Exemple 1. Exemple avec session_name()

<?php

/* choisi le nom de session  : MaSession */

$previous_name = session_name("MaSession");

echo "L'ancien nom de la session était $previous_name<br />";

?>

Voir aussi la directive de configuration session.name.

Précédent | Sommaire | Suivant
session_module_name | Niveau supérieur | session_regenerate_id


session_regenerate_id

(PHP 4 >= 4.3.2, PHP 5)

session_regenerate_id -- Remplace l'identifiant de session courant par un nouveau

Description

bool session_regenerate_id ( [bool delete_old_session] )

session_regenerate_id() va remplacer l'identifiant de session courant par un nouveau, généré automatiquement, tout en conservant les valeurs de session.

Liste de paramètres

delete_old_session

Si l'on doit effacer l'ancien fichier de session associé ou pas. Par défaut, FALSE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Historique

Version | Description
4.3.3 | Depuis cette version, si les cookies de session sont activés, l'utilisation de session_regenerate_id() provoquera également un nouveau cookie de session avec le nouvel identifiant de session.
5.1.0 | Ajout du paramètre delete_old_session.

Exemples

Exemple 1. Exemple avec session_regenerate_id()

<?php
session_start();

$old_sessionid = session_id();

session_regenerate_id();

$new_sessionid = session_id();

echo "Ancienne session: $old_sessionid<br />";
echo "Nouvelle session: $new_sessionid<br />";

print_r($_SESSION);
?>

Voir aussi

session_id()
session_start()
session_name()

Précédent | Sommaire | Suivant
session_name | Niveau supérieur | session_register


session_register

(PHP 4, PHP 5)

session_register -- Enregistre une variable dans une session

Description

bool session_register ( mixed name [, mixed ...] )

session_register() enregistre toutes les variables de nom name dans la session courante. Le nombre de variables enregistrées est libre. Les noms peuvent être passés comme des chaînes, ou comme des tableaux contenant des chaînes ou des tableaux. Pour chaque nom, session_register() place la variable dans la session courante, pour la sauvegarde de fin de script.

Attention

Si vous voulez que votre script fonctionne indépendamment de la configuration de la directive register_globals, vous devez utiliser la variable $_SESSION. Tous les éléments de $_SESSION sont automatiquement enregistrés. Si votre script utilise session_register(), il ne fonctionnera pas dans les environnements où register_globals est désactivée.

register_globals : note importante : Depuis PHP 4.2.0, la valeur par défaut de la directive de configuration PHP register_globals vaut off et est complètement retirée depuis PHP 6.0.0. La communauté PHP vous recommande de ne pas dépendre de cette directive, mais de trouver d'autres moyens pour accéder aux données, tels que les superglobals.

Attention

Cette fonction enregistre une variable global. Si vous enregistrez une variable globale dans une fonction, vous devez vous assurer de la rendre globale, avec global ou le tableau $GLOBALS[], ou bien utiliser un des tableaux de session ci-dessous.

Attention

Si vous utilisez $_SESSION (ou $HTTP_SESSION_VARS), n'utilisez pas session_register(), session_is_registered() et session_unregister().

session_register() retourne TRUE si toutes les variables ont été enregistrées correctement dans la session.

Si session_start() n'a pas été appelé avant cette fonction, un appel implicite à session_start() sans aucun paramètre sera fait.

Vous pouvez aussi créer une variable de session, simplement en ajoutant l'index approprié dans la variable $_SESSION ou $HTTP_SESSION_VARS (PHP < 4.1.0).

Exemple 1. Exemple avec session_register()

<?php
// L'utilisation de session_register() est déconseillée
$barney = "Un gros dinosaure violet.";
session_register("barney");

// L'utilisation de $_SESSION est encouragée depuis PHP 4.1.0
$_SESSION["zim"] = "Un envahisseur d'une autre planète.";

// L'ancienne méthode avec $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "Il a un caleçon carré !";
?>

Note : Il n'est actuellement pas possible d'enregistrer des ressources dans les sessions. Par exemple, vous ne pouvez pas créer de connexion à une base de données, et stocker la connexion dans une variable de session. Elle ne sera pas valide lors de la prochaine page. Les fonctions PHP qui retournent des ressources sont identifiées avec le type resource dans leurs définitions. Une liste de fonctions qui retournent des ressources sont disponible dans l'annexe types de ressources.

Si $_SESSION (ou $HTTP_SESSION_VARS pour les versions antérieures à PHP 4.0.6) est utilisé, assignez les variables à $_SESSION : i.e. $_SESSION['var'] = 'ABC';

Voir aussi session_is_registered(), session_unregister() et $_SESSION.

Précédent | Sommaire | Suivant
session_regenerate_id | Niveau supérieur | session_save_path


session_save_path

(PHP 4, PHP 5)

session_save_path -- Lit et/ou modifie le chemin de sauvegarde des sessions

Description

string session_save_path ( [string path] )

session_save_path() retourne le chemin du dossier actuellement utilisé pour sauver les données de sessions. Si path est spécifié, le chemin du dossier sera modifié. session_save_path() doit être appelé avant session_start().

Note : Sur certains systèmes d'exploitation, vous aurez à choisir un chemin vers un dossier capable de gérer un grand nombre de petits fichiers efficacement. Par exemple, sous Linux, reiserfs peut se rendre plus efficace que ext2fs.

Voir aussi la directive de configuration session.save_path.

Précédent | Sommaire | Suivant
session_register | Niveau supérieur | session_set_cookie_params


session_set_cookie_params

(PHP 4, PHP 5)

session_set_cookie_params -- Modifie les paramètres du cookie de session

Description

void session_set_cookie_params ( int lifetime [, string path [, string domain [, bool secure [, bool httponly]]]] )

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

Note : Le paramètre secure a été ajouté en PHP 4.0.4, le paramètre httponly en PHP 5.2.0.

Voir aussi les directives de configuration session.cookie_lifetime, session.cookie_path, session.cookie_domain, session.cookie_secure, session.cookie_httponly et session_get_cookie_params().

Précédent | Sommaire | Suivant
session_save_path | Niveau supérieur | session_set_save_handler


session_set_save_handler

(PHP 4, PHP 5)

session_set_save_handler -- Configure les fonctions de stockage de sessions

Description

bool session_set_save_handler ( callback open, callback close, callback read, callback write, callback destroy, callback gc )

session_set_save_handler() configure les fonctions de stockage de sessions, et permet de choisir des fonctions utilisateurs pour sauver et relire toutes les sessions. Cette fonction est très pratique lorsqu'il faut sauver les données de sessions en utilisant une autre technique que le système par fichier fourni par défaut : notamment, stockage en base de données ou dans des démons tels SRM. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Le gestionnaire d'écriture n'est pas exécuté tant que le flot de sortie est ouvert. Par conséquent, l'affichage de messages de débogage durant le gestionnaire d'écriture ne sera donc jamais visible depuis le navigateur. Si vous avez besoin de débogage, nous vous suggérons d'écrire vos messages dans un fichier.

L'exemple suivant fournit un exemple de stockage des sessions semblable au système par défaut (par fichiers). Cet exemple peut facilement être adapté pour réaliser des sauvegardes en base de données, avec votre serveur préféré.

La fonction de lecture doit toujours retourner une chaîne, pour que le gestionnaire fonctionne comme prévu. Vous devez retourner une chaîne vide s'il n'y a pas de données à lire. Les valeurs retournées par les autres gestionnaires sont converties en booléen avant d'être retournées au script. TRUE pour la réussite, FALSE pour l'échec.

Avertissement

Les gestionnaires d'écriture et de fermeture sont appelés après la destruction des objets depuis PHP 5.0.5. Ces destructeurs peuvent utiliser les sessions mais le gestionnaire de session ne peut pas utiliser les objets. Dans les versions antérieures, ils étaient appelés dans l'ordre inverse. Il est possible d'appeler session_write_close() depuis le destructeur pour résoudre ce problème.

Exemple 1. Exemple avec session_set_save_handler()

<?php
function open($save_path, $session_name)
{
    global $sess_save_path;

    $sess_save_path = $save_path;
    return(true);
}

function close()
{
    return(true);
}

function read($id)
{
    global $sess_save_path;

    $sess_file = "$sess_save_path/sess_$id";
    return (string) @file_get_contents($sess_file);
}

function write($id, $sess_data)
{
    global $sess_save_path;

    $sess_file = "$sess_save_path/sess_$id";
    if ($fp = @fopen($sess_file, "w")) {
        $return = fwrite($fp, $sess_data);
        fclose($fp);
        return $return;
    } else {
        return(false);
    }

}

function destroy($id)
{
    global $sess_save_path;

    $sess_file = "$sess_save_path/sess_$id";
    return(@unlink($sess_file));
}

function gc($maxlifetime)
{
    global $sess_save_path;

    foreach (glob("$sess_save_path/sess_*") as $filename) {
        if (filemtime($filename) + $maxlifetime < time()) {
            @unlink($filename);
        }
    }
return true;
}

session_set_save_handler("open", "close", "read", "write", "destroy", "gc");

session_start();

// Utilisez vos sessions comme d'habitude
?>

Voir aussi la directive de configuration session.save_handler.

Précédent | Sommaire | Suivant
session_set_cookie_params | Niveau supérieur | session_start


session_start

(PHP 4, PHP 5)

session_start -- Initialise une session

Description

bool session_start ( void )

session_start() crée une session (ou restaure celle trouvée sur le serveur, via l'identifiant de session passé dans une requête GET, POST ou par un cookie).

session_start() retourne toujours TRUE.

Note : Si vous utilisez des sessions basées sur les cookies, vous devez appeler session_start() avant d'afficher quoi que ce soit au navigateur.

Exemple 1. Exemple de session : page1.php

<?php
// page1.php

session_start();

echo 'Bienvenue à la page numéro 1';

$_SESSION['favcolor'] = 'vert';
$_SESSION['animal']   = 'chat';
$_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 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. Exemple de session : page2.php

<?php
// page2.php

session_start();

echo 'Bienvenue sur la page numéro 2<br />';

echo $_SESSION['favcolor']; // vert
echo $_SESSION['animal'];   // chat
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>';
?>

Si vous avez utilisé une session nommée, vous devez appeler session_name() avant d'appeler session_start().

session_start() va configurer un gestionnaire interne d'affichage, pour assurer la réécriture des URL, lorsque le support transparent du SID est activé. Si vous utilisez ob_gzhandler ou ob_start(), l'ordre des gestionnaires d'affichage est important pour un affichage correct. Par exemple, l'utilisateur doit enregistrer ob_gzhandler avant que la session ne commence.

Note : L'utilisation de zlib.output_compression est recommandée, à la place de ob_gzhandler.

Note : Depuis PHP 4.3.3, l'appel à session_start() alors que la session a déjà débuté, retournera une erreur de niveau E_NOTICE. Le second appel à la fonction sera tout simplement ignoré.

Voir aussi $_SESSION, session.auto_start et session_id().

Précédent | Sommaire | Suivant
session_set_save_handler | Niveau supérieur | session_unregister


session_unregister

(PHP 4, PHP 5)

session_unregister -- Supprime une variable de la session

Description

bool session_unregister ( string name )

session_unregister() supprime la variable name de la session courante.

session_unregister() retourne TRUE si la variable a pu être supprimée réellement.

Note : Si $_SESSION (ou $HTTP_SESSION_VARS pour PHP 4.0.6 et plus ancien) est utilisé, utilisez unset() pour supprimer une variable de session. N'utilisez pas unset() directement sur $_SESSION sinon cela désactivera les fonctions spéciales du tableau superglobal $_SESSION.

Attention

session_unregister() ne supprime pas la variable globale correspondant au nom de name : elle empêche simplement que name soit sauvée de la session à la fin du script. Vous devez appeler unset() vous-même pour effacer la globale correspondante.

Attention

Si vous utilisez $_SESSION (ou $HTTP_SESSION_VARS), n'utilisez pas session_register(), session_is_registered() et session_unregister().

Précédent | Sommaire | Suivant
session_start | Niveau supérieur | session_unset


session_unset

(PHP 4, PHP 5)

session_unset -- Détruit toutes les variables d'une session

Description

void session_unset ( void )

session_unset() détruit toutes les variables de la session courante.

Note : Si vous utilisez $_SESSION (ou $HTTP_SESSION_VARS pour PHP 4.0.6 ou plus ancien), utilisez unset() pour détruire une variable de session, i.e. unset($_SESSION['nomvariable']);.

Attention

Ne détruisez pas $_SESSION avec unset($_SESSION) car cela désactivera la possibilité d'enregistrer des variables de session à partir du tableau superglobal $_SESSION.

Précédent | Sommaire | Suivant
session_unregister | Niveau supérieur | session_write_close


session_write_close

(PHP 4 >= 4.0.4, PHP 5)

session_write_close -- Ecrit les données de session et ferme la session

Description

void session_write_close ( void )

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

Précédent | Sommaire | Suivant
session_unset | Niveau supérieur | Mémoire partagée


Mémoire partagée

Manuel PHP
Précédent Suivant

CL. Mémoire partagée

Introduction

Shmop est un ensemble de fonctions simples pour gérer la mémoire partagée avec PHP (lecture, écriture, création et suppression de segments de mémoire partagée UNIX).

Note : Les versions de Windows plus anciennes que Windows 2000 ne supportent pas la mémoire partagée. Sous Windows, Shmop ne fonctionnera que si PHP fonctionne comme module de serveur web, comme Apache ou IIS (CLI et CGI ne fonctionneront pas).

Note : En PHP 4.0.3, ces fonctions étaient préfixées avec shm au lieu de shmop.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Pour utiliser les fonctions shmop, compilez PHP avec l'option --enable-shmop.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Constantes pré-définies

Cette extension ne définit aucune constante.

Exemples

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

?>

Table des matières
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 -- Ecrire dans un bloc de mémoire partagée

Précédent | Sommaire | Suivant
session_write_close | Niveau supérieur | shmop_close


shmop_close

(PHP 4 >= 4.0.4, PHP 5)

shmop_close -- Ferme un bloc de mémoire partagée

Description

void shmop_close ( int shmid )

shmop_close() sert à fermer un bloc de mémoire partagée.

Liste de paramètres

shmid

Identifiant de mémoire partagée créé par shmop_open().

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Fermeture d'un bloc de mémoire partagée

<?php
shmop_close($shm_id);
?>

Cet exemple ferme le bloc de mémoire partagée identifié par $shm_id.

Voir aussi

shmop_open()

Précédent | Sommaire | Suivant
Mémoire partagée | Niveau supérieur | shmop_delete


shmop_delete

(PHP 4 >= 4.0.4, PHP 5)

shmop_delete -- Détruit un bloc de mémoire partagée

Description

bool shmop_delete ( int shmid )

shmop_delete() sert à détruire un bloc de mémoire partagée.

Liste de paramètres

shmid

Identifiant de mémoire partagée créé par shmop_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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.

Précédent | Sommaire | Suivant
shmop_close | Niveau supérieur | shmop_open


shmop_open

(PHP 4 >= 4.0.4, PHP 5)

shmop_open -- Crée ou ouvre un bloc de mémoire partagée

Description

int shmop_open ( int key, string flags, int mode, int size )

shmop_open() peut créer ou ouvrir un bloc de mémoire partagée.

Liste de paramètres

key

Identifiant système pour le bloc de mémoire partagé. Ce paramètre peut être passé comme un décimal ou un hexadécimal.

flags

Vous pouvez utiliser :

  • "a" pour accès (utilise SHM_RDONLY pour shmat) utilisez cette option pour ouvrir un bloc déjà existant en lecture seule.

  • "c" pour création (utilise IPC_CREATE) utilisez cette option pour créer un nouveau bloc, ou, si un segment avec le même identifiant existe, essayer d'y accéder en lecture et écriture.

  • "w" pour accès en lecture et écriture. Utilisez cette option lorsque vous devez accéder en lecture et écriture à un segment de mémoire partagée. C'est le cas le plus courant.

  • "n" crée un nouveau segment de mémoire partagée (utilise IPC_CREATE|IPC_EXCL). Utilisez cette option lorsque vous voulez créer un nouveau segment de mémoire partagée sauf s'il en existe déjà un corrompu avec la même option. Ceci est très pratique pour des raisons de sécurité, pour éviter des trous de sécurité qui exploiteraient la course aux ressources.

mode

Les permissions que vous donnez à ce bloc. Ce sont les mêmes que pour les fichiers. Ces permissions doivent être passées sous forme d'octal (i.e. 0644).

size

La taille du bloc mémoire partagé que vous voulez créer, en octets

Note : Note : Les troisième et quatrième paramètres doivent être passés à 0 si vous voulez ouvrir un bloc de mémoire partagée déjà existant.

Valeurs de retour

En cas de succès shmop_open() retourne un identifiant que vous pouvez utiliser pour accéder à la mémoire que vous venez de créer. FALSE sera retourné si une erreur survient.

Exemples

Exemple 1. Créer un nouveau bloc de mémoire partagée Shmop

<?php
$shm_key = ftok(__FILE__, 't');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?>

Cet exemple ouvre un nouveau bloc de mémoire partagée, dont l'identifiant est retourné par ftok().

Voir aussi

shmop_close()
shmop_delete()

Précédent | Sommaire | Suivant
shmop_delete | Niveau supérieur | shmop_read


shmop_read

(PHP 4 >= 4.0.4, PHP 5)

shmop_read -- Lit des données à partir d'un bloc

Description

string shmop_read ( int shmid, int start, int count )

shmop_read() lit une chaîne dans une bloc de mémoire partagée.

Liste de paramètres

shmid

L'identifiant du bloc mémoire partagé, créé par la fonction shmop_open()

start

Position depuis laquelle on doit commencer à lire

count

Le nombre d'octets à lire

Valeurs de retour

Retourne les données, ou FALSE si une erreur survient.

Exemples

Exemple 1. Lit un bloc de mémoire partagée

<?php
$shm_data = shmop_read($shm_id, 0, 50);
?>

Cet exemple lit 50 octets dans le bloc de mémoire partagée et les place dans $shm_data.

Voir aussi

shmop_write()

Précédent | Sommaire | Suivant
shmop_open | Niveau supérieur | shmop_size


shmop_size

(PHP 4 >= 4.0.4, PHP 5)

shmop_size -- Lire la taille du bloc de mémoire partagée

Description

int shmop_size ( int shmid )

shmop_size() sert à connaître la taille en octets d'un bloc de mémoire partagée.

Liste de paramètres

shmid

L'identifiant du bloc mémoire partagé créé par la fonction shmop_open()

Valeurs de retour

Retourne un entier, qui représente le nombre d'octets qu'occupe la mémoire partagée.

Exemples

Exemple 1. Lit la taille d'un bloc de mémoire partagée

<?php
$shm_size = shmop_size($shm_id);
?>

Cet exemple lit la taille du bloc identifié par $shm_id, et la place dans $shm_size.

Précédent | Sommaire | Suivant
shmop_read | Niveau supérieur | shmop_write


shmop_write

(PHP 4 >= 4.0.4, PHP 5)

shmop_write -- Ecrire dans un bloc de mémoire partagée

Description

int shmop_write ( int shmid, string data, int offset )

shmop_write() écrit une chaîne dans un bloc de mémoire partagée.

Liste de paramètres

shmid

L'identifiant du bloc mémoire partagé, créé par la fonction shmop_open()

data

Une chaîne à écrire dans le bloc de la mémoire partagée

offset

Spécifie la position à partir de laquelle les données doivent être écrites dans la mémoire partagée.

Valeurs de retour

La taille des données écrites, ou FALSE si une erreur survient.

Exemples

Exemple 1. Ecrit 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()

Précédent | Sommaire | Suivant
shmop_size | Niveau supérieur | Fonctions SimpleXML


Fonctions SimpleXML

Manuel PHP
Précédent Suivant

CLI. Fonctions SimpleXML

Introduction

L'extension SimpleXML fournit des outils très simples et faciles à utiliser pour convertir du XML en un objet qui peut être manipulé avec ses propriétés et les itérateurs de tableaux.

Pré-requis

L'extension SimpleXML requiert PHP 5.

Installation

L'extension SimpleXML est activé par défaut. Pour la désactiver, utilisez l'option de configuration --disable-simplexml.

Exemples

Plusieurs exemples de ce chapitre requièrent une chaîne XML. Plutôt que de la repé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 : example.php

<?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&oacute;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>
  <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. Obtenir <plot>

<?php
include 'example.php';

$xml = new SimpleXMLElement($xmlstr);

echo $xml->movie[0]->plot; // "So this language. It's like..."
?>

Exemple 3. 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';

$xml = new SimpleXMLElement($xmlstr);

/* Pour chaque <movie>, nous affichons un <plot>. */
foreach ($xml->movie as $movie) {
   echo $movie->plot, '<br />';
}

?>

Exemple 4. 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';

$xml = new SimpleXMLElement($xmlstr);

/* Accès au node <rating> du premier <movie>.
 * Affichage des attributs de <rating> également. */
foreach ($xml->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;
    }
}
?>

Exemple 5. 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 transtiper en une chaîne en utilisant (string). Sinon, PHP traitera l'élément comme un objet.

<?php
include 'example.php';

$xml = new SimpleXMLElement($xmlstr);

if ((string) $xml->movie->title == 'PHP: Behind the Parser') {
    echo 'My favorite movie.';
}

htmlentities((string) $xml->movie->title);
?>

Exemple 6. Utilisation de XPath

SimpleXML inclut le support embarqué de XPath. Pour trouver tous les éléments <character> :

<?php
include 'example.php';
$xml = new SimpleXMLElement($xmlstr);

foreach ($xml->xpath('//character') as $character) {
    echo $character->name, 'played by ', $character->actor, '<br />';
}
?>

'//' sert de joker. Pour spécifier un chemin absolu, enlevez un slash.

Exemple 7. 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';
$xml = new SimpleXMLElement($xmlstr);

$xml->movie[0]->characters->character[0]->name = 'Miss Coder';

echo $xml->asXML();
?>

L'exemple précédent affichera un nouveau document XML, tout comme l'original mise à part que le nouveau document XML définit Ms. Coder à Miss Coder.

Exemple 8. Ajout d'éléments et d'attributs

Depuis PHP 5.1.3, SimpleXML a reçu l'abilité d'ajouter facilement des enfants et des attributs.

<?php
include 'example.php';
$xml = new SimpleXMLElement($xmlstr);

$character = $xml->movie[0]->characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $xml->movie[0]->addChild('rating', 'PG');
$rating->addAttribute('type', 'mpaa');

echo $xml->asXML();
?>

Le code ci-dessus sortira un document XML basé sur l'original mais ayant un nouveau personnage et résultat.

Exemple 9. Interopérabilité DOM

PHP possède un mécanisme pour convertir les nodes 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 'Error while parsing the document';
     exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title;
?>

Table des matières
SimpleXMLElement->addAttribute() -- Ajoute un attribut à l'élément SimpleXML
SimpleXMLElement->addChild() -- Ajoute un élément enfant au noeud XML
SimpleXMLElement->asXML() -- Retourne une chaîne XML basée sur un élément SimpleXML
SimpleXMLElement->attributes() -- Identifie les attributs d'un élément
SimpleXMLElement->children() -- Trouve les enfants d'un node
SimpleXMLElement->__construct() -- Crée un nouvel objet SimpleXMLElement
SimpleXMLElement->getDocNamespaces() -- Retourne les espaces de noms déclarés dans un document
SimpleXMLElement->getName() -- Récupère le nom d'un élément XML
SimpleXMLElement->getNamespaces() -- Retourne les espaces de noms utilisés dans un document
SimpleXMLElement->registerXPathNamespace() -- Crée un contexte préfixe/ns pour la prochaine requête XPath
SimpleXMLElement->xpath() -- Exécute une requête Xpath sur des données XML
simplexml_import_dom -- Construit un objet SimpleXMLElement à partir d'une node DOM
simplexml_load_file -- Convertit un fichier XML en objet
simplexml_load_string -- Convertit une chaîne XML en objet

Précédent | Sommaire | Suivant
shmop_write | Niveau supérieur | SimpleXMLElement->addAttribute()


SimpleXMLElement->asXML()

(no version information, might be only in CVS)

SimpleXMLElement->asXML() -- Retourne une chaîne XML basée sur un élément SimpleXML

Description

class SimpleXMLElement {

mixed asXML ( [string filename] )

}

La méthode asXML formate les données de l'objet parent en XML 1.0.

Liste de paramètres

filename

Si spécifié, la fonction écrit les données au fichier au lieu de les retourner.

Valeurs de retour

Si le paramètre filename n'est pas spécifié, la fonction retourne une chaîne de caractères en cas de succès et FALSE en cas d'erreur. Si le paramètre est spécifié, elle retourne TRUE si le fichier a été écrit correctement et FALSE autrement.

Exemples

Exemple 1. Obtenir du XML avec SimpleXML

<?php
$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

echo $xml->asXML(); // <?xml ... <a><b><c>text</c><c>stuff</c> ...

?>

asXML fonctionne aussi avec les résultats Xpath :

Exemple 2. Utilisation de asXML() avec les résultats de Xpath

<?php
// Suite de l'exemple plus haut.

/* On cherche <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo $node->asXML(); // <c>text</c> et <c>stuff</c>
}
?>

Précédent | Sommaire | Suivant
SimpleXMLElement->addChild() | Niveau supérieur | SimpleXMLElement->attributes()


SimpleXMLElement->attributes()

(no version information, might be only in CVS)

SimpleXMLElement->attributes() -- Identifie les attributs d'un élément

Description

class SimpleXMLElement {

SimpleXMLElement attributes ( [string ns [, bool is_prefix]] )

}

Fournit les attributs et les valeurs définies dans une balise XML.

Note : SimpleXML ajoute des propriétés itératives pour presque toutes ses méthodes. Celles-ci ne peuvent être vues en utilisant var_dump() ou tout autre fonction qui examine les objets.

Liste de paramètres

ns

Un espace de noms optionnel pour les attributs récupérés

is_prefix

Par défaut, vaut FALSE

Valeurs de retour

Exemples

Exemple 1. Interprétation d'une chaîne XML

<?php
$string = <<<XML
<a xmlns:b>
 <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"

Précédent | Sommaire | Suivant
SimpleXMLElement->asXML() | Niveau supérieur | SimpleXMLElement->children()


SimpleXMLElement->children()

(no version information, might be only in CVS)

SimpleXMLElement->children() -- Trouve les enfants d'un node

Description

class SimpleXMLElement {

SimpleXMLElement children ( [string ns [, bool is_prefix]] )

}

Cette méthode trouve le fils de l'élément dont il est membre. Le résultat suit les règles normales d'itération.

Note : SimpleXML ajoute des propriétés itératives pour presque toutes ses méthodes. Celles-ci ne peuvent être vues en utilisant var_dump() ou tout autre fonction qui examine les objets.

Liste de paramètres

ns

is_prefix

Par défaut, vaut FALSE

Valeurs de retour

Exemples

Exemple 1. Traverser 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

Précédent | Sommaire | Suivant
SimpleXMLElement->attributes() | Niveau supérieur | SimpleXMLElement->__construct()


SimpleXMLElement->xpath()

(no version information, might be only in CVS)

SimpleXMLElement->xpath() -- Exécute une requête Xpath sur des données XML

Description

class SimpleXMLElement {

array xpath ( string path )

}

La méthode xpath cherche dans la node SimpleXML des enfants qui correspondent au path Xpath.

Liste de paramètres

path

Un chemin XPath

Valeurs de retour

Retourne toujours un tableau d'objets array SimpleXMLElement.

Exemples

Exemple 1. Xpath

<?php
$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

/* On cherche <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo '/a/b/c: ',$node,"\n";
}

/* Les chemins relatifs fonctionnent aussi... */
$result = $xml->xpath('b/c');

while(list( , $node) = each($result)) {
    echo 'b/c: ',$node,"\n";
}
?>

L'exemple ci-dessus va afficher :

/a/b/c: text
/a/b/c: stuff
b/c: text
b/c: stuff

Notez que les deux résultats sont égaux.

Précédent | Sommaire | Suivant
SimpleXMLElement->registerXPathNamespace() | Niveau supérieur | simplexml_import_dom


simplexml_import_dom

(PHP 5)

simplexml_import_dom -- Construit un objet SimpleXMLElement à partir d'une node DOM

Description

SimpleXMLElement simplexml_import_dom ( DOMNode node [, string class_name] )

Cette fonction prend une node d'un document DOM et la transforme en node SimpleXML. Ce nouvel objet peut alors être utilisé comme un élément natif SimpleXML.

Liste de paramètres

node

Un élémént node 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 SimpleXMLElement ou FALSE si une erreur survient.

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; // blah
?>

Voir aussi

dom_import_simplexml()

Précédent | Sommaire | Suivant
SimpleXMLElement->xpath() | Niveau supérieur | simplexml_load_file


simplexml_load_file

(PHP 5)

simplexml_load_file -- Convertit un fichier XML en objet

Description

object simplexml_load_file ( string filename [, string class_name [, int options [, string ns [, bool is_prefix]]]] )

Convertit le document XML filename en un objet de type SimpleXMLElement.

Liste de paramètres

filename

Chemin vers le fichier XML

Note : Libxml 2 supprime la protection des caractères des URI, alors si vous voulez passer par exemple b&c comme paramètre URI à a, vous devez appeler simplexml_load_file(rawurlencode('http://example.com/?a=' . urlencode('b&c'))). Depuis PHP 5.1.0, vous n'avez plus besoin de faire cela puisque PHP le fait pour vous.

class_name

Vous pouvez utiliser ce paramètre optionnel et ainsi, la fonction simplexml_load_file() retournera un objet de la classe spécifiée. Cette classe doit étendre la classe SimpleXMLElement.

options

Depuis PHP 5.1.0 et Libxml 2.6.0, vous pouvez aussi utiliser le paramètre options pour spécifier des paramètres additionnels Libxml.

ns

is_prefix

Valeurs de retour

Retourne un objet de la classe SimpleXMLElement dont les propriétés contiennent les données du document XML. Si une erreur survient, la fonction retournera FALSE.

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

    var_dump($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
SimpleXMLElement->__construct()

Précédent | Sommaire | Suivant
simplexml_import_dom | Niveau supérieur | simplexml_load_string


simplexml_load_string

(PHP 5)

simplexml_load_string -- Convertit une chaîne XML en objet

Description

object simplexml_load_string ( string data [, string class_name [, int options [, string ns [, bool is_prefix]]]] )

Convertit la chaîne XML data et retourne un objet de la classe SimpleXMLElement.

Liste de paramètres

data

Une chaîne XML valide

class_name

Vous pouvez utiliser le paramètre optionnel et, ainsi, la fonction simplexml_load_string() retournera un objet de la classe spécifiée. Cette classe doit étendre la classe SimpleXMLElement.

options

Depuis PHP 5.1.0 et Libxml 2.6.0, vous pouvez aussi utiliser le paramètre options pour spécifier des paramètres additionnels Libxml.

ns

is_prefix

Valeurs de retour

Retourne un objet de la classe SimpleXMLElement dont les propriétés contiennent les données du document XML. Si une erreur survient, la fonction retournera FALSE.

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

var_dump($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
SimpleXMLElement->__construct()

Précédent | Sommaire | Suivant
simplexml_load_file | Niveau supérieur | Fonctions SNMP


Fonctions SNMP

Manuel PHP
Précédent Suivant

CLII. Fonctions SNMP

Introduction

Pré-requis

Afin de pouvoir utiliser les fonctions SNMP sous Unix, vous aurez besoin d'installer le package NET-SNMP . Sous Windows ces fonctions ne sont disponibles que sous NT, et pas sous Win95/98.

Installation

Important : afin d'utiliser le package UCD SNMP, vous devez mettre la variable NO_ZEROLENGTH_COMMUNITY à 1 avant de compiler. Après avoir configuré UCD SNMP, éditez le fichier config.h et recherchez la valeur NO_ZEROLENGTH_COMMUNITY. Décommentez la ligne avec le #define. Cela doit ressembler à ceci :

#define NO_ZEROLENGTH_COMMUNITY 1
Ensuite, compilez PHP avec l'option --with-snmp[=DIR].

Si vous rencontrez des erreurs étranges de "segmentation fault", lors de l'utilisation des commandes SNMP, c'est que vous n'avez pas suivi les recommandations précédentes. Si vous ne voulez pas recompiler UCD SNMP, vous pouvez aussi recompiler PHP avec l'option --enable-ucd-snmp-hack qui évitera cette erreur.

La distribution Windows contient des fichiers nécessaires à SNMP dans le dossier mibs. Ce dossier doit être déplacé dans DRIVE:\usr\mibs, où DRIVE doit être remplacé par la lettre de driver où PHP est installé, c'est-à-dire, par exemple c:\usr\mibs.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

SNMP_OID_OUTPUT_FULL (entier)

Depuis 5.2.0

SNMP_OID_OUTPUT_NUMERIC (entier)

Depuis 5.2.0

SNMP_VALUE_LIBRARY (entier)

SNMP_VALUE_PLAIN (entier)

SNMP_VALUE_OBJECT (entier)

SNMP_BIT_STR (entier)

SNMP_OCTET_STR (entier)

SNMP_OPAQUE (entier)

SNMP_NULL (entier)

SNMP_OBJECT_ID (entier)

SNMP_IPADDRESS (entier)

SNMP_COUNTER (entier)

SNMP_UNSIGNED (entier)

SNMP_TIMETICKS (entier)

SNMP_UINTEGER (entier)

SNMP_INTEGER (entier)

SNMP_COUNTER64 (entier)

Table des matières
snmp_get_quick_print -- Lit la valeur courante de l'option quick_print de la bibliothèque UCD
snmp_get_valueretrieval -- Retourne la méthode avec laquelle les valeurs SNMP seront retournées
snmp_read_mib -- Lit et analyse un fichier MIB dans l'arbre actif MIB
snmp_set_enum_print -- Retourne toutes les valeurs qui sont des énumérations avec leur valeur d'énumération au lieu de l'entier
snmp_set_oid_numeric_print -- Retourne tous les objets y compris leur identifiant d'objet dans celui spécifié
snmp_set_oid_output_format -- Définit le format de sortie OID
snmp_set_quick_print -- Ecrit la valeur courante de l'option quick_print de la bibliothèque UCD
snmp_set_valueretrieval -- Spécifie la méthode avec laquelle les valeurs SNMP seront retournées
snmpget -- Reçoit un objet SNMP
snmpgetnext -- Retourne un objet SNMP
snmprealwalk -- Retourne tous les objets, y compris leur ID d'objet
snmpset -- Configure 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

Précédent | Sommaire | Suivant
simplexml_load_string | Niveau supérieur | snmp_get_quick_print


snmp_get_quick_print

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

snmp_get_quick_print -- Lit la valeur courante de l'option quick_print de la bibliothèque UCD

Description

bool snmp_get_quick_print ( void )

snmp_get_quick_print() retourne la valeur courante, stockée dans la bibliothèque UCD, de l'option quick_print. Par défaut, quick_print est désactivée.

Valeurs de retour

Retourne TRUE si quick_print est actif, FALSE sinon.

Exemples

Exemple 1. Exemple avec snmp_get_quick_print()

<?php
$quickprint = snmp_get_quick_print();
?>

Voir aussi

snmp_set_quick_print() pour une description complète sur ce que fait quick_print.

Précédent | Sommaire | Suivant
Fonctions SNMP | Niveau supérieur | snmp_get_valueretrieval


snmp_get_valueretrieval

(PHP 4 >= 4.3.3, PHP 5)

snmp_get_valueretrieval -- Retourne la méthode avec laquelle les valeurs SNMP seront retournées

Description

int snmp_get_valueretrieval ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

snmp_set_valueretrieval()

Précédent | Sommaire | Suivant
snmp_get_quick_print | Niveau supérieur | snmp_read_mib


snmp_read_mib

(PHP 5)

snmp_read_mib -- Lit et analyse un fichier MIB dans l'arbre actif MIB

Description

bool snmp_read_mib ( string filename )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
snmp_get_valueretrieval | Niveau supérieur | snmp_set_enum_print


snmp_set_enum_print

(PHP 4 >= 4.3.0, PHP 5)

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

void snmp_set_enum_print ( int enum_print )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Notes

Note : snmp_set_enum_print() est uniquement disponible lors de l'utilisation de la bibliothèque UCD SNMP. Cette fonction n'est pas disponible lors de l'utilisation de la bibliothèque SNMP de Windows.

Précédent | Sommaire | Suivant
snmp_read_mib | Niveau supérieur | snmp_set_oid_numeric_print


snmp_set_oid_numeric_print

(PHP 4 >= 4.3.0, PHP 5)

snmp_set_oid_numeric_print -- Retourne tous les objets y compris leur identifiant d'objet dans celui spécifié

Description

void snmp_set_oid_numeric_print ( int oid_numeric_print )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Historique

Version | Description
5.2.0 | Depuis PHP 5.2.0, Cette fonction est un alias de : snmp_set_oid_output_format().

Voir aussi

snmp_set_oid_output_format()

Précédent | Sommaire | Suivant
snmp_set_enum_print | Niveau supérieur | snmp_set_oid_output_format


snmp_set_quick_print

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

snmp_set_quick_print -- Ecrit la valeur courante de l'option quick_print de la bibliothèque UCD

Description

void snmp_set_quick_print ( bool quick_print )

snmp_set_quick_print() fixe la valeur de l'option quick_print de la bibliothèque UCD SNMP. Lorsqu'elle a la valeur de (1), la bibliothèque SNMP retournera des valeurs 'rapides'. Cela signifie que seule, la valeur sera retournée. Lorsqu'elle a la valeur de (0), la bibliothèque va afficher d'autres informations (telles que l'adresse IP (IpAddress) ou OID). De plus, si quick_print n'est pas activée, la bibliothèque affichera aussi des valeurs hexadécimales supplémentaires pour toutes les chaînes de trois caractères ou moins.

Par défaut, UCD SNMP retourne des valeurs détaillées, et quick_print sert à ne retourner que la valeur.

Actuellement, les chaînes sont toujours retournées avec des guillemets supplémentaires. Ceci sera corrigé ultérieurement.

Liste de paramètres

quick_print

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Modifier quick_print est plus fréquent lorsqu'on utilise les valeurs retournées que lorsqu'on les affiche.

Exemple 1. Exemple avec snmp_set_quick_print()

<?php
snmp_set_quick_print(0);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a\n";
snmp_set_quick_print(1);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

'Timeticks: (0) 0:00:00.00'
'0:00:00.00'

Voir aussi

snmp_get_quick_print()

Précédent | Sommaire | Suivant
snmp_set_oid_output_format | Niveau supérieur | snmp_set_valueretrieval


snmp_set_valueretrieval

(PHP 4 >= 4.3.3, PHP 5)

snmp_set_valueretrieval -- Spécifie la méthode avec laquelle les valeurs SNMP seront retournées

Description

void snmp_set_valueretrieval ( int method )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

snmp_get_valueretrieval()

Précédent | Sommaire | Suivant
snmp_set_quick_print | Niveau supérieur | snmpget


snmpget

(PHP 3, PHP 4, PHP 5)

snmpget -- Reçoit un objet SNMP

Description

string snmpget ( string hostname, string community, string object_id [, int timeout [, int retries]] )

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

retries

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

Précédent | Sommaire | Suivant
snmp_set_valueretrieval | Niveau supérieur | snmpgetnext


snmpgetnext

(PHP 5)

snmpgetnext -- Retourne un objet SNMP

Description

string snmpgetnext ( string host, string community, string object_id [, int timeout [, int retries]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
snmpget | Niveau supérieur | snmprealwalk


snmprealwalk

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

snmprealwalk -- Retourne tous les objets, y compris leur ID d'objet

Description

array snmprealwalk ( string host, string community, string object_id [, int timeout [, int retries]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
snmpgetnext | Niveau supérieur | snmpset


snmpset

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

snmpset -- Configure un objet SNMP

Description

bool snmpset ( string hostname, string community, string object_id, string type, mixed value [, int timeout [, int retries]] )

snmpset() sert à définir la valeur de l'objet SNMP spécifié par object_id.

Liste de paramètres

hostname

L'agent SNMP.

community

La communauté de lecture.

object_id

L'objet SNMP.

type

value

timeout

retries

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

snmpget()

Précédent | Sommaire | Suivant
snmprealwalk | Niveau supérieur | snmpwalk


snmpwalk

(PHP 3, PHP 4, PHP 5)

snmpwalk -- Reçoit tous les objets SNMP d'un agent

Description

array snmpwalk ( string hostname, string community, string object_id [, int timeout [, int retries]] )

snmpwalk() est utilisé pour lire toutes les valeurs d'un agent SNMP spécifié par hostname.

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

retries

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

snmpwalkoid()

Précédent | Sommaire | Suivant
snmpset | Niveau supérieur | snmpwalkoid


snmpwalkoid

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

snmpwalkoid -- Demande d'informations d'arbre sur une entité du réseau

Description

array snmpwalkoid ( string hostname, string community, string object_id [, int timeout [, int retries]] )

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.

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

retries

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

Précédent | Sommaire | Suivant
snmpwalk | Niveau supérieur | Fonctions SOAP


Fonctions SOAP

Manuel PHP
Précédent Suivant

CLIII. Fonctions SOAP

Introduction

L'extension SOAP sert à écrire des serveurs et clients SOAP. Elle supporte une partie des spécifications de SOAP 1.1, SOAP 1.2 et WSDL 1.1.

Pré-requis

Cette extension nécessite la bibliothèque GNOME xml. Téléchargez et installez cette bibliothèque. Vous devez avoir au moins la version libxml-2.5.4.

Installation

Cette extension est uniquement disponible si PHP a été configuré avec --enable-soap.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
soap.wsdl_cache_enabled | "1" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
soap.wsdl_cache_dir | "/tmp" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
soap.wsdl_cache_ttl | 86400 | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

soap.wsdl_cache_enabled boolean

Active ou désactive le cache WSDL.

soap.wsdl_cache_dir string

Spécifie le nom du dossier où SOAP place les fichiers mis en cache.

soap.wsdl_cache_ttl int

Nombre de secondes de conservation (time to live) des fichiers dans le système de cache.

Classes pré-définies

SoapClient

Constructeur

  • SoapClient->__construct() - construit un nouvel objet SoapClient

Méthodes

  • SoapClient->__call() - Appelle une fonction SOAP (dépréciée)

  • SoapClient->__doRequest() - Exécute une requête SOAP

  • SoapClient->__getFunctions() - Retourne une liste de fonctions SOAP

  • SoapClient->__getLastRequest() - Retourne la dernière requête SOAP

  • SoapClient->__getLastRequestHeaders() - Retourne les en-têtes de la dernière requête SOAP

  • SoapClient->__getLastResponse() - Retourne la dernière réponse SOAP

  • SoapClient->__getLastResponseHeaders() - Retourne les en-têtes de la dernière réponse SOAP

  • SoapClient->__getTypes() - Retourne une liste des types SOAP

  • SoapClient->__setCookie() - Définit le cookie qui sera envoyé avec la requête SOAP

  • SoapClient->__soapCall() - Appel une fonction SOAP

SoapFault

Constructeur

  • SoapFault->__construct() - construit un nouvel objet SoapFault

SoapHeader

SoapHeader est une classe de bas niveau pour passer et retourner des en-têtes SOAP. C'est juste un gestionnaire de données et il n'a pas de méthodes spéciales excepté son constructeur. Elle peut être utilisée dans la méthode SoapClient->__soapCall() pour passer un en-tête SOAP ou dans un gestionnaire d'en-têtes SOAP pour retourner l'en-tête dans une réponse SOAP.

Constructeur

  • SoapHeader->__construct() - construit un nouvel objet SoapHeader

SoapParam

SoapParam est une classe bas niveau pour nommer les paramètres et retourner les valeurs dans le mode non-WSDL. C'est juste un gestionnaire de données et il n'a pas de méthodes spéciales excepté son constructeur.

Constructeur

  • SoapParam->__construct() - construit un nouvel objet SoapParam

SoapServer

Constructeur

  • SoapServer->__construct() - construit un nouvel objet SoapServer

Méthodes

  • SoapServer->addFunction() - Ajoute une ou plusieurs fonctions qui seront gérées dans les requêtes SOAP

  • SoapServer->fault() -

  • SoapServer->getFunctions() - Retourne une liste de fonctions définies

  • SoapServer->handle() - Gère une requête SOAP

  • SoapServer->setClass() - Définit une classe qui sera gérée dans les requêtes SOAP

  • SoapServer->setPersistence() - Définit le mode persistant de SoapServer

SoapVar

SoapVar est une classe bas niveau pour encoder les paramètres et retourner les valeurs dans le mode non-WSDL. C'est juste un gestionnaire de données et n'a pas de méthodes spaciales excepté le constructeur. C'est particulièrement utile lorsque vous voulez définir la propriété type dans une requête ou une réponse SOAP.

Constructeur

  • SoapVar->__construct() - construit un nouvel objet SoapVar

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_1_1 (entier)

SOAP_1_2 (entier)

SOAP_PERSISTENCE_SESSION (entier)

SOAP_PERSISTENCE_REQUEST (entier)

SOAP_FUNCTIONS_ALL (entier)

SOAP_ENCODED (entier)

SOAP_LITERAL (entier)

SOAP_RPC (entier)

SOAP_DOCUMENT (entier)

SOAP_ACTOR_NEXT (entier)

SOAP_ACTOR_NONE (entier)

SOAP_ACTOR_UNLIMATERECEIVER (entier)

SOAP_COMPRESSION_ACCEPT (entier)

SOAP_COMPRESSION_GZIP (entier)

SOAP_COMPRESSION_DEFLATE (entier)

SOAP_WAIT_ONE_WAY_CALLS (entier)

Ajouté depuis PHP 5.1.0.

UNKNOWN_TYPE (entier)

XSD_STRING (entier)

XSD_BOOLEAN (entier)

XSD_DECIMAL (entier)

XSD_FLOAT (entier)

XSD_DOUBLE (entier)

XSD_DURATION (entier)

XSD_DATETIME (entier)

XSD_TIME (entier)

XSD_DATE (entier)

XSD_GYEARMONTH (entier)

integer XSD_GYEAR (entier)

XSD_GMONTHDAY (entier)

XSD_GDAY (entier)

XSD_GMONTH (entier)

XSD_HEXBINARY (entier)

XSD_BASE64BINARY (entier)

XSD_ANYURI (entier)

XSD_ANYXML (integer)

Ajouté en PHP 5.1.0.

XSD_QNAME (entier)

XSD_NOTATION (entier)

XSD_NORMALIZEDSTRING (entier)

XSD_TOKEN (entier)

XSD_LANGUAGE (entier)

XSD_NMTOKEN (entier)

XSD_NAME (entier)

XSD_NCNAME (entier)

XSD_ID (entier)

XSD_IDREF (entier)

XSD_IDREFS (entier)

XSD_ENTITY (entier)

XSD_ENTITIES (entier)

XSD_INTEGER (entier)

XSD_NONPOSITIVEINTEGER (entier)

XSD_NEGATIVEINTEGER (entier)

XSD_LONG (entier)

XSD_INT (entier)

XSD_SHORT (entier)

XSD_BYTE (entier)

XSD_NONNEGATIVEINTEGER (entier)

XSD_UNSIGNEDLONG (entier)

XSD_UNSIGNEDINT (entier)

XSD_UNSIGNEDSHORT (entier)

XSD_UNSIGNEDBYTE (entier)

XSD_POSITIVEINTEGER (entier)

XSD_NMTOKENS (entier)

XSD_ANYTYPE (entier)

SOAP_ENC_OBJECT (entier)

SOAP_ENC_ARRAY (entier)

XSD_1999_TIMEINSTANT (entier)

XSD_NAMESPACE (chaîne de caractères)

XSD_1999_NAMESPACE (chaîne de caractères)

Table des matières
is_soap_fault -- Vérifie si l'API soap a échoué
SoapClient->__call() -- Appelle une fonction SOAP (dépréciée)
SoapClient->__construct() -- Constructeur SoapClient
SoapClient->__doRequest() -- Effectue une requête SOAP
SoapClient->__getFunctions() -- Retourne une liste de fonctions SOAP
SoapClient->__getLastRequest() -- Retourne la dernière requête SOAP
SoapClient->__getLastRequestHeaders() -- Retourne les en-têtes de la dernière requête SOAP
SoapClient->__getLastResponse() -- Retourne la dernière réponse SOAP
SoapClient->__getLastResponseHeaders() -- Retourne les en-têtes de la dernière réponse SOAP
SoapClient->__getTypes() -- Retourne une liste des types SOAP
SoapClient->__setCookie() -- Définit le cookie qui sera envoyé avec la requête SOAP
SoapClient->__soapCall() -- Appel une fonction SOAP
SoapFault->__construct() -- Constructeur 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->__construct() -- Constructeur SoapServer
SoapServer->fault() -- Provoque une erreur SoapServer indiquant une erreur
SoapServer->getFunctions() -- Retourne la liste des fonctions définies
SoapServer->handle() -- Gère une requête SOAP
SoapServer->setClass() -- Définit la classe qui gère les requêtes SOAP
SoapServer->setPersistence() -- Définit le mode persistant de SoapServer
SoapVar->__construct() -- Constructeur SoapVar
use_soap_error_handler -- Utilisation ou non du gestionnaire d'erreurs SOAP et retourne l'ancienne valeur

Précédent | Sommaire | Suivant
snmpwalkoid | Niveau supérieur | is_soap_fault


is_soap_fault

(PHP 5)

is_soap_fault -- Vérifie si l'API soap a échoué

Description

bool is_soap_fault ( mixed obj )

is_soap_fault() sert à vérifier si l'API soap a échoué, surtout lorsque vous n'aimez pas utiliser les exceptions. Pour l'utiliser, vous devez créer 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

obj

L'objet testé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
SoapFault->__construct()

Précédent | Sommaire | Suivant
Fonctions SOAP | Niveau supérieur | SoapClient->__call()


SoapClient->__call()

(no version information, might be only in CVS)

SoapClient->__call() -- Appelle une fonction SOAP (dépréciée)

Description

class SoapClient {

mixed __call ( string function_name, array arguments [, array options [, array input_headers [, array output_headers]]] )

}

Cette méthode est dépréciée. Utilisez SoapClient->__soapCall() à la place.

Précédent | Sommaire | Suivant
is_soap_fault | Niveau supérieur | SoapClient->__construct()


SoapClient->__construct()

(no version information, might be only in CVS)

SoapClient->__construct() -- Constructeur SoapClient

Description

class SoapClient {

__construct ( mixed wsdl [, array options] )

}

Ce constructeur crée des objets SoapClient dans le mode WSDL ou non-WSDL.

Liste de paramètres

wsdl

URI du fichier WSDL ou NULL s'il travaille en mode non-WSDL.

Note : Durant le stage de développement, vous devriez vouloir désactiver le cache WSDL via l'option de configuration soap.wsdl_cache_ttl de votre php.ini, sinon, les modificiations faites sur le fichier WSDL n'auront aucun effet tant que le cache soap.wsdl_cache_ttl n'aura pas expiré.

options

Un tableau d'options. Si l'on travaille en mode WSDL, ce paramètre est optionnel. En mode non-WSDL, vous devez définir les options location et uri, où location est l'URL à interroger et uri est l'espace de noms cible du service SOAP.

Les options style et use ne fonctionnent que dans le mode non-WSDL. En mode WSDL, ils viennent du fichier WSDL.

L'option soap_version spécifie si l'on doit utiliser le client SOAP version 1.1 ou 1.2.

Pour les identifications HTTP, vous devez utiliser les options login et password. Pour effectuer une connexion HTTP via un proxy, utilisez les options proxy_host, proxy_port, proxy_login et proxy_password. Pour les identifications à l'aide d'un certificat d'un client HTTPS, utilisez les options local_cert et passphrase.

L'option compression permet d'utiliser la compression sur les requêtes et les réponses HTTP SOAP.

L'option encoding définit le jeu d'encodage des caractères internes. Cette option ne modifie pas l'encodage des requêtes SOAP (il est toujours utf-8), mais convertit les chaînes en utilisant ce dernier.

L'option classmap peut être utilisée pour lier quelques types WSDL avec des classes PHP. Cette option doit être un tableau avec les types WSDL en tant que clés et les noms des classes PHP en tant que valeurs.

Définir l'option trace active l'utilisation des méthodes

 SoapClient->__getLastRequest,

 SoapClient->__getLastRequestHeaders,

 SoapClient->__getLastResponse et

 SoapClient->__getLastResponseHeaders.

L'option exceptions est un booléen définissant si les erreurs soap doivent lancer des exceptions du type SoapFault.

L'option connection_timeout définit le délai de connexion en secondes pour la connexion au service SOAP. Cette option ne définit pas un délai de connexion pour les services avec des réponses lentes. Pour limiter la durée d'attente de fin des appels, l'option default_socket_timeout est disponible.

Exemples

Exemple 1. Exemple avec SoapClient

<?php

$client = new SoapClient("some.wsdl");

$client = new SoapClient("some.wsdl", array('soap_version'   => SOAP_1_2));

$client = new SoapClient("some.wsdl", array('login'          => "some_name",
                                            'password'       => "some_password"));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            'proxy_port'     => 8080));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            'proxy_port'     => 8080,
                                            'proxy_login'    => "some_name",
                                            'proxy_password' => "some_password"));

$client = new SoapClient("some.wsdl", array('local_cert'     => "cert_key.pem"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/",
                                     'style'    => SOAP_DOCUMENT,
                                     'use'      => SOAP_LITERAL));

$client = new SoapClient("some.wsdl",
  array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP));

$server = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));

class MyBook {
        public $title;
        public $author;
}

$server = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>

Précédent | Sommaire | Suivant
SoapClient->__call() | Niveau supérieur | SoapClient->__doRequest()


SoapClient->__doRequest()

(no version information, might be only in CVS)

SoapClient->__doRequest() -- Effectue une requête SOAP

Description

class SoapClient {

string __doRequest ( string request, string location, string action, int version [, int one_way] )

}

Effectue une requête SOAP via HTTP.

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 XML SOAP.

location

L'URL de la requête.

action

L'action SOAP.

version

La version SOAP.

one_way

Valeurs de retour

La réponse XML SOAP.

Historique

Version | Description
5.1.3 | Le paramètre one_way a été ajouté.

Exemples

Exemple 1. Quelques exemples

<?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, $version) {
    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));
?>

Précédent | Sommaire | Suivant
SoapClient->__construct() | Niveau supérieur | SoapClient->__getFunctions()


SoapClient->__getFunctions()

(no version information, might be only in CVS)

SoapClient->__getFunctions() -- Retourne une liste de fonctions SOAP

Description

class SoapClient {

array __getFunctions ( void )

}

Retourne une liste de fonctions SOAP.

Note : Cette fonction fonctionne uniquement en mode WSDL.

Valeurs de retour

La liste des fonctions SOAP.

Exemples

Exemple 1. Exemple avec SoapClient->__getFunctions()

<?php
$client = new SoapClient("some.wsdl");
var_dump($client->__getFunctions());
?>

Voir aussi

SoapClient->__construct()

Précédent | Sommaire | Suivant
SoapClient->__doRequest() | Niveau supérieur | SoapClient->__getLastRequest()


SoapClient->__getLastRequest()

(no version information, might be only in CVS)

SoapClient->__getLastRequest() -- Retourne la dernière requête SOAP

Description

class SoapClient {

string __getLastRequest ( void )

}

Note : Cette méthode fonctionne uniquement si l'objet SoapClient a été créé avec l'option trace.

Valeurs de retour

La dernière requête SOAP.

Exemples

Exemple 1. Exemple avec SoapClient->__getLastRequest()

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "REQUEST:\n" . $client->__getLastRequest() . "\n";
?>

Voir aussi

SoapClient->__construct()
SoapClient->__getLastRequestHeaders()
SoapClient->__getLastResponse()
SoapClient->__getLastResponseHeaders()

Précédent | Sommaire | Suivant
SoapClient->__getFunctions() | Niveau supérieur | SoapClient->__getLastRequestHeaders()


SoapClient->__getLastRequestHeaders()

(no version information, might be only in CVS)

SoapClient->__getLastRequestHeaders() -- Retourne les en-têtes de la dernière requête SOAP

Description

class SoapClient {

string __getLastRequestHeaders ( void )

}

Note : Cette méthode fonctionne uniquement si l'objet SoapClient a été créé avec l'option trace.

Valeurs de retour

Les en-têtes de la dernière requête SOAP.

Voir aussi

SoapClient->__construct()
SoapClient->__getLastRequest()
SoapClient->__getLastResponse()
SoapClient->__getLastResponseHeaders()

Précédent | Sommaire | Suivant
SoapClient->__getLastRequest() | Niveau supérieur | SoapClient->__getLastResponse()


SoapClient->__getLastResponse()

(no version information, might be only in CVS)

SoapClient->__getLastResponse() -- Retourne la dernière réponse SOAP

Description

class SoapClient {

string __getLastResponse ( void )

}

Note : Cette méthode fonctionne uniquement si l'objet SoapClient a été créé avec l'option trace.

Valeurs de retour

La dernière réponse SOAP.

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->__construct()
SoapClient->__getLastResponseHeaders()
SoapClient->__getLastRequest()
SoapClient->__getLastRequestHeaders()

Précédent | Sommaire | Suivant
SoapClient->__getLastRequestHeaders() | Niveau supérieur | SoapClient->__getLastResponseHeaders()


SoapClient->__getLastResponseHeaders()

(no version information, might be only in CVS)

SoapClient->__getLastResponseHeaders() -- Retourne les en-têtes de la dernière réponse SOAP

Description

class SoapClient {

string __getLastResponseHeaders ( void )

}

Note : Cette méthode fonctionne uniquement si l'objet SoapClient a été créé avec l'option trace.

Valeurs de retour

Les en-têtes de la dernière réponse SOAP.

Voir aussi

SoapClient->__construct()
SoapClient->__getLastResponse()
SoapClient->__getLastRequest()
SoapClient->__getLastRequestHeaders()

Précédent | Sommaire | Suivant
SoapClient->__getLastResponse() | Niveau supérieur | SoapClient->__getTypes()


SoapClient->__getTypes()

(no version information, might be only in CVS)

SoapClient->__getTypes() -- Retourne une liste des types SOAP

Description

class SoapClient {

array __getTypes ( void )

}

Cette fonction fonctionne uniquement en mode WSDL.

Valeurs de retour

La liste des types SOAP.

Exemples

Exemple 1. Exemple avec SoapClient->__getTypes()

<?php
$client = new SoapClient("some.wsdl");
var_dump($client->__getTypes());
?>

Voir aussi

SoapClient->__construct()

Précédent | Sommaire | Suivant
SoapClient->__getLastResponseHeaders() | Niveau supérieur | SoapClient->__setCookie()


SoapClient->__setCookie()

(no version information, might be only in CVS)

SoapClient->__setCookie() -- Définit le cookie qui sera envoyé avec la requête SOAP

Description

class SoapClient {

void __setCookie ( string name [, string value] )

}

Définit un cookie à envoyer 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.

Précédent | Sommaire | Suivant
SoapClient->__getTypes() | Niveau supérieur | SoapClient->__soapCall()


SoapClient->__soapCall()

(no version information, might be only in CVS)

SoapClient->__soapCall() -- Appel une fonction SOAP

Description

class SoapClient {

mixed __soapCall ( string function_name, array arguments [, array options [, mixed input_headers [, array &output_headers]]] )

}

Ceci est une fonction bas niveau de l'API qui est utilisée pour faire des appels SOAP. Habituellement, en mode WSDL, vous pouvez appeler simplement les fonctions SOAP comme des méthodes SoapClient. Cette méthode est pratique en mode non-WSDL lorsque soapaction est inconnu, uri est différente de la valeur par défaut ou lors de l'envoi et/ou de la réception d'en-têtes SOAP.

En cas d'erreur, un appel à une fonction SOAP peut causer un lancement d'exception par PHP ou retourner un objet SoapFault si les exceptions sont désactivées. Pour vérifier si l'appel à cette fonction n'arrive pas à attraper les exceptions SoapFault, vérifiez le résultat avec la fonction is_soap_fault().

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.

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()
SoapParam->__construct()
SoapVar->__construct()
SoapHeader->__construct()
SoapFault->__construct()
is_soap_fault()

Précédent | Sommaire | Suivant
SoapClient->__setCookie() | Niveau supérieur | SoapFault->__construct()


SoapFault->__construct()

(no version information, might be only in CVS)

SoapFault->__construct() -- Constructeur SoapFault

Description

class SoapFault {

__construct ( string faultcode, string faultstring [, string faultactor [, mixed detail [, string faultname [, SoapHeader headerfault]]]] )

}

Cette classe est très utile lorsque vous voulez envoyer des réponses SOAP depuis le gestionnaire PHP.faultcode, faultstring, faultactor et details 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'en-tête SOAP pour rapporter une erreur dans l'en-tête de réponse.

Exemples

Exemple 1. Quelques exemples

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

Exemple 2. Quelques exemples

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

SoapClient->__construct()
SoapClient->__soapCall()
SoapVar->__construct()
SoapParam->__construct()
SoapFault->__construct()
is_soap_fault()

Précédent | Sommaire | Suivant
SoapClient->__soapCall() | Niveau supérieur | SoapHeader->__construct()


SoapHeader->__construct()

(no version information, might be only in CVS)

SoapHeader->__construct() -- Constructeur SoapHeader

Description

class SoapHeader {

__construct ( string namespace, string name [, mixed data [, bool mustUnderstand [, mixed actor]]] )

}

Construit un nouvel objet SoapHeader.

Liste de paramètres

namespace

L'espace de noms de l'élément d'en-tête SOAP.

name

Le nom de l'élément d'en-tê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'en-tête SOAP.

actor

Valeur de l'attribut actor de l'élément d'en-tête SOAP.

Exemples

Exemple 1. Quelques exemples

<?php
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->__call("echoVoid", null, null,
                new SoapHeader('http://soapinterop.org/echoheader/',
                               'echoMeStringRequest',
                               'hello world'));
?>

Voir aussi

SoapClient->__soapCall()
SoapVar->__construct()
SoapParam->__construct()

Précédent | Sommaire | Suivant
SoapFault->__construct() | Niveau supérieur | SoapParam->__construct()


SoapParam->__construct()

(no version information, might be only in CVS)

SoapParam->__construct() -- Constructeur SoapParam

Description

class 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. Quelques exemples

<?php
$client = new SoapClient(null,array('location' => "http://localhost/soap.php",
                                    'uri'      => "http://test-uri/"));
$client->SomeFunction(new SoapParam($a, "a"),
                      new SoapParam($b, "b"),
                      new SoapParam($c, "c"));
?>

Voir aussi

SoapClient->__soapCall()
SoapVar->__construct()

Précédent | Sommaire | Suivant
SoapHeader->__construct() | Niveau supérieur | SoapServer->addFunction()


SoapServer->addFunction()

(no version information, might be only in CVS)

SoapServer->addFunction() -- Ajoute une ou plusieurs fonctions qui vont gérer les requêtes SOAP

Description

class SoapServer {

void addFunction ( mixed functions )

}

Exporte une ou plusieurs fonctions pour les clients distants.

Liste de paramètres

functions

Pour exporter une fonction, passez son nom dans ce paramètre en tant que chaîne de caractères.

Pour exporter plusieurs fonctions, passez un tableau de noms de fonctions.

Pour exporter toutes les fonctions, passez 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. Quelques exemples

<?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()
SoapServer->setClass()

Précédent | Sommaire | Suivant
SoapParam->__construct() | Niveau supérieur | SoapServer->__construct()


SoapServer->__construct()

(no version information, might be only in CVS)

SoapServer->__construct() -- Constructeur SoapServer

Description

class SoapServer {

__construct ( mixed wsdl [, array options] )

}

Ce constructeur autorise la création des objets SoapServer en mode WSDL ou non-WSDL.

Liste de paramètres

wsdl

Si vous voulez le mode WSDL, vous devez définir l'URI du fichier WSDL dans ce paramètre. Dans les autres situations, vous devez 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.

Exemples

Exemple 1. Quelques exemples

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

?>

Précédent | Sommaire | Suivant
SoapServer->addFunction() | Niveau supérieur | SoapServer->fault()


SoapServer->fault()

(no version information, might be only in CVS)

SoapServer->fault() -- Provoque une erreur SoapServer indiquant une erreur

Description

class SoapServer {

void fault ( string code, string string [, string actor [, mixed details [, string name]]] )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SoapFault->__construct()

Précédent | Sommaire | Suivant
SoapServer->__construct() | Niveau supérieur | SoapServer->getFunctions()


SoapServer->getFunctions()

(no version information, might be only in CVS)

SoapServer->getFunctions() -- Retourne la liste des fonctions définies

Description

class SoapServer {

array getFunctions ( void )

}

Cette méthode retourne la liste de toutes les fonctions ajoutées par SoapServer->addFunction() ou SoapServer->setClass().

Valeurs de retour

La liste de toutes les fonctions.

Exemples

Exemple 1. Quelques exemples

<?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()
SoapServer->addFunction()
SoapServer->setClass()

Précédent | Sommaire | Suivant
SoapServer->fault() | Niveau supérieur | SoapServer->handle()


SoapServer->handle()

(no version information, might be only in CVS)

SoapServer->handle() -- Gère une requête SOAP

Description

class SoapServer {

void handle ( [string soap_request] )

}

Effectue une requête SOAP, appelle les fonctions nécessaire et envoie une réponse en retour.

Liste de paramètres

soap_request

La requête SOAP. Si cet argument est omis, la requête est supposée être dans la variable PHP $HTTP_RAW_POST_DATA.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Quelques exemples

<?php
function test($x)
{
    return $x;
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Voir aussi

SoapServer->__construct()

Précédent | Sommaire | Suivant
SoapServer->getFunctions() | Niveau supérieur | SoapServer->setClass()


SoapServer->setClass()

(no version information, might be only in CVS)

SoapServer->setClass() -- Définit la classe qui gère les requêtes SOAP

Description

class SoapServer {

void setClass ( string class_name [, mixed args [, mixed ...]] )

}

Exporte toutes les méthodes depuis une classe spécifiée.

Cet objet peut être rendu persistant pour une session donnée PHP en utilisant la méthode SoapServer->setPersistence().

Liste de paramètres

class_name

Le nom de la classe exportée.

args

Ce paramètre optionnel sera passé au constructeur de la classe par défaut durant la création de l'objet.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Quelques exemples

<?php

class foo {
    function foo()
    {
    }
}
$server->setClass("foo");

class bar {
    function bar($x, $y)
    {
    }
}
$server->setClass("bar", $arg1, $arg2);

?>

Voir aussi

SoapServer->__construct()
SoapServer->addFunction()
SoapServer->setPersistence()

Précédent | Sommaire | Suivant
SoapServer->handle() | Niveau supérieur | SoapServer->setPersistence()


SoapServer->setPersistence()

(no version information, might be only in CVS)

SoapServer->setPersistence() -- Définit le mode persistant de SoapServer

Description

class SoapServer {

void setPersistence ( int mode )

}

Cette fonction permet de sauvegarder les données entre les requêtes dans une session PHP. Cela ne fonctionne qu'avec un serveur qui exporte les fonctions depuis une classe avec SoapServer->setClass().

Liste de paramètres

mode

Une des constantes SOAP_PERSISTENCE_XXX.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Quelques exemples

<?php

$server->setPersistence(SOAP_PERSISTENCE_SESSION);

$server->setPersistence(SOAP_PERSISTENCE_REQUEST);

?>

Note : La persistance SOAP_PERSISTENCE_SESSION rend persistant seulement l'objet de la classe donnée et non les données statiques de la classe. Vous pouvez utiliser $this->bar au lieu de self::$bar.

Voir aussi

SoapServer->__construct()
SoapServer->setClass()

Précédent | Sommaire | Suivant
SoapServer->setClass() | Niveau supérieur | SoapVar->__construct()


SoapVar->__construct()

(no version information, might be only in CVS)

SoapVar->__construct() -- Constructeur SoapVar

Description

class SoapVar {

__construct ( mixed data, int encoding [, string type_name [, string type_namespace [, string node_name [, string node_namespace]]]] )

}

Construit un nouvel objet SoapVar.

Liste de paramètres

data

Les données à passer ou à retourner.

encoding

L'ID d'encodage, une des constantes XSD_....

type_name

Le nom du type.

type_namespace

Le type de l'espace de noms.

node_name

Le nom du noeud XML.

node_namespace

L'espace de noms du noeud XML.

Exemples

Exemple 1. Quelques exemples

<?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()
SoapParam->__construct()

Précédent | Sommaire | Suivant
SoapServer->setPersistence() | Niveau supérieur | use_soap_error_handler


use_soap_error_handler

(PHP 5)

use_soap_error_handler -- Utilisation ou non du gestionnaire d'erreurs SOAP et retourne l'ancienne valeur

Description

bool use_soap_error_handler ( [bool handler] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SoapVar->__construct() | Niveau supérieur | Sockets


Sockets

Manuel PHP
Précédent Suivant

CLIV. Sockets

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.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.3.0.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Les fonctions de socket décrites ici font partie d'une extension PHP qui doit être activée lors de la compilation en utilisant l'option --enable-sockets, avec la commande configure.

Note : Le support des adresses IPv6 a été ajouté en PHP 5.0.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

socket_accept(), socket_create_listen() et socket_create() retournent des ressources sur les sockets.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

AF_UNIX (entier)

AF_INET (entier)

AF_INET6 (entier)

SOCK_STREAM (entier)

SOCK_DGRAM (entier)

SOCK_RAW (entier)

SOCK_SEQPACKET (entier)

SOCK_RDM (entier)

MSG_OOB (entier)

MSG_WAITALL (entier)

MSG_PEEK (entier)

MSG_DONTROUTE (entier)

SO_DEBUG (entier)

SO_REUSEADDR (entier)

SO_KEEPALIVE (entier)

SO_DONTROUTE (entier)

SO_LINGER (entier)

SO_BROADCAST (entier)

SO_OOBINLINE (entier)

SO_SNDBUF (entier)

SO_RCVBUF (entier)

SO_SNDLOWAT (entier)

SO_RCVLOWAT (entier)

SO_SNDTIMEO (entier)

SO_RCVTIMEO (entier)

SO_TYPE (entier)

SO_ERROR (entier)

SOL_SOCKET (entier)

PHP_NORMAL_READ (entier)

PHP_BINARY_READ (entier)

SOL_TCP (entier)

SOL_UDP (entier)

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

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

/* Cree une 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 de la socket...";
socket_close($socket);
echo "OK.\n\n";
?>

Table des matières
socket_accept -- Accepte une connexion sur une socket
socket_bind -- Lie un nom à une socket
socket_clear_error -- Efface toutes les erreurs précédemment générées par une socket
socket_close -- Ferme une socket
socket_connect -- Crée une connexion sur une socket
socket_create_listen -- Ouvre une 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 une socket
socket_get_option -- Lit les options de la socket
socket_getpeername -- Interroge l'autre extrémité de la communication
socket_getsockname -- Interroge la socket locale
socket_last_error -- Lit la dernière erreur générée par une socket
socket_listen -- Attend une connexion sur une socket
socket_read -- Lit des données d'une socket
socket_recv -- Reçoit des données d'une socket connectée
socket_recvfrom -- Reçoit des données d'une socket, connectée ou pas
socket_select -- Exécute l'appel système select() un tableau de sockets avec une durée d'expiration
socket_send -- Envoie des données à une socket connectée
socket_sendto -- Envoie une message à une socket, qu'elle soit connectée ou pas
socket_set_block -- Met la socket en mode bloquant
socket_set_nonblock -- Sélectionne le mode non bloquant d'un descripteur de fichier
socket_set_option -- Modifie les options de socket
socket_shutdown -- Eteint une socket en lecture et/ou écriture
socket_strerror -- Retourne une chaîne décrivant un message d'erreur
socket_write -- Ecrit dans une socket

Précédent | Sommaire | Suivant
use_soap_error_handler | Niveau supérieur | socket_accept


socket_accept

(PHP 4 >= 4.1.0, PHP 5)

socket_accept -- Accepte une connexion sur une socket

Description

resource socket_accept ( resource socket )

Une fois que la socket socket a été créée avec la fonction socket_create(), liée à un nom avec la fonction socket_bind(), et mise en attente de connexion avec la fonction socket_listen(), socket_accept() va accepter les connexions sur cette socket. Une fois qu'une connexion est faite, une nouvelle ressource de socket est retournée. Elle peut être utilisée pour les communications. S'il y a plusieurs connexions en attente, la première sera utilisée. S'il n'y a pas de connexion en attente, socket_accept() se bloquera jusqu'à ce qu'une connexion se présente. Si socket a été rendue non-bloquante, grâce à socket_set_blocking() ou socket_set_nonblock(), FALSE sera retourné.

La ressource de socket retournée par socket_accept() ne doit pas être utilisée pour accepter de nouvelles connexions. La socket originale socket, qui est en attente, reste ouverte et peut être réutilisée.

socket_listen() retourne une nouvelle ressource de socket en cas de succès ou FALSE en cas d'erreur. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur, humainement lisible.

Voir aussi
socket_bind(),
socket_connect(),
socket_listen(),
socket_create() et
socket_strerror().

Précédent | Sommaire | Suivant
Sockets | Niveau supérieur | socket_bind


socket_bind

(PHP 4 >= 4.1.0, PHP 5)

socket_bind -- Lie un nom à une socket

Description

bool socket_bind ( resource socket, string address [, int port] )

Lie le nom donné par address à l'interface de connexion décrite par socket. Ceci doit être effectué avant qu'une connexion puisse être établie en utilisant socket_connect() ou socket_listen().

Liste de paramètres

socket

Une ressource de socket valide créée par la fonction socket_create().

address

Si la socket est de la famille AF_INET, le paramètre address est une IP numérique (i.e. 127.0.0.1).

Si la socket est de la famille AF_UNIX, le paramètre address le chemin d'une socket de domaine Unix (i.e. /tmp/my.sock).

port (Optional)

Le paramètre port est uniquement utilisé lors de la connexion à une socket AF_INET 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, FALSE en cas d'échec.

Le code erreur peut être récupéré avec la fonction socket_last_error(). Ce code peut être passé à la fonction socket_strerror() pour récupérer le message textuel de l'erreur.

Exemples

Exemple 1. Utilisation de socket_bind() pour définir l'adresse de la source

<?php
// Création d'une nouvelle 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 la 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 une socket avec une adresse fausse, qui n'appartient pas à la machine.

Voir aussi

socket_connect()
socket_listen()
socket_create()
socket_last_error()
socket_strerror()

Précédent | Sommaire | Suivant
socket_accept | Niveau supérieur | socket_clear_error


socket_clear_error

(PHP 4 >= 4.2.0, PHP 5)

socket_clear_error -- Efface toutes les erreurs précédemment générées par une socket

Description

void socket_clear_error ( [resource socket] )

socket_clear_error() efface tous les codes d'erreur qui ont été enregistrés pour la socket socket, ou bien pour la socket générale.

socket_clear_error() permet de remettre à zéro les codes d'erreur d'une socket ou de la socket globale. Cela peut être utile pour détecter l'avènement d'une erreur durant une partie de l'application.

Voir aussi socket_last_error() et socket_strerror().

Précédent | Sommaire | Suivant
socket_bind | Niveau supérieur | socket_close


socket_close

(PHP 4 >= 4.1.0, PHP 5)

socket_close -- Ferme une socket

Description

void socket_close ( resource socket )

socket_close() ferme la socket socket et détruit toutes les ressources qui y sont liées.

Note : socket_close() ne peut pas être utilisée sur les ressources de fichiers créées par fopen(), popen(), fsockopen(), ou psockopen(); cette fonction est destinée à traiter les sockets créées par les fonctions socket_create() ou socket_accept().

Voir aussi
socket_bind(),
socket_listen(),
socket_create() et
socket_strerror().

Précédent | Sommaire | Suivant
socket_clear_error | Niveau supérieur | socket_connect


socket_connect

(PHP 4 >= 4.1.0, PHP 5)

socket_connect -- Crée une connexion sur une socket

Description

bool socket_connect ( resource socket, string address [, int port] )

socket_connect() créée une nouvelle connexion en utilisant la ressource socket socket, qui doit être une ressource de socket valide, créée par la fonction socket_create().

Le paramètre d'adresse address peut être soit une adresse IP numérique (i.e. 127.0.0.1), si la socket est de la famille AF_INET; ou bien le chemin d'une socket de domaine Unix, si la socket est de la famille AF_UNIX.

Le paramètre port n'est utilisé que lors de la connexion à une socket de type AF_INET, et désigne le port sur l'hôte distant, sur lequel une connexion doit être faite.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

Voir aussi
socket_bind(),
socket_listen(),
socket_create(),
socket_last_error() et
socket_strerror().

Précédent | Sommaire | Suivant
socket_close | Niveau supérieur | socket_create_listen


socket_create_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_create_listen -- Ouvre une socket sur un port pour accepter les connexions

Description

resource socket_create_listen ( int port [, int backlog] )

socket_create_listen() sert à simplifier la création de nouvelles sockets destinées à être mises en attente, et accepter de nouvelles connexions.

socket_create_listen() créée une nouvelle ressource de socket, de type AF_INET, mise en attente sur toutes les interfaces locales, pour le port port.

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.

socket_create_listen() retourne une nouvelle ressource de socket en cas de succès et FALSE en cas d'erreur. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

Note : Si vous voulez créer une socket qui n'écoute que certaines interfaces, vous devez utiliser socket_create(), socket_bind() et socket_listen().

Voir aussi
socket_create(),
socket_bind(),
socket_listen(),
socket_last_error() et
socket_strerror().

Précédent | Sommaire | Suivant
socket_connect | Niveau supérieur | socket_create_pair


socket_create_pair

(PHP 4 >= 4.1.0, PHP 5)

socket_create_pair -- Crée une paire de sockets identiques et les stocke dans un tableau

Description

bool socket_create_pair ( int domain, int type, int protocol, array &fd )

socket_create_pair() crée une paire de sockets identiques et les stocke dans &fd. Cette fonction est utilisée couramment dans IPC (InterProcess Communication).

Le paramètre domain spécifie la famille du protocole à utiliser par la socket.

Tableau 1. Famille d'adresses / protocoles valides

Domaine | Description
AF_INET | Protocole IPv4. TCP et UDP sont les protocoles communs de cette famille. Supporté uniquement sous Windows.
AF_INET6 | Protocole IPv6. TCP et UDP sont les protocoles communs de cette famille. Le support a été ajouté en PHP 5.0.0. Supporté uniquement sous Windows.
AF_UNIX | Protocole de communication locale. Le rendement élevé et des moindres coûts supplémentaires lui font une grande force d'IPC (Interprocess Communication).

Le paramètre type spécifie le type de communication à utiliser par la socket.

Tableau 2. 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 sockets 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, traceroute, etc.).
SOCK_RDM | Fournit une couche fiable de datagramme qui ne garantie pas l'ordre des données. Ce type de sockets est le plus susceptible de ne pas être implémenté sur votre système d'exploitation.

Le paramètre protocol définit un protocole spécifique dans le domaine spécifié domain pour être utilisé lors d'une communication sur une socket retournée. 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.

Tableau 3. 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, incertaine avec les longueurs d'enregistrement fixes. De ce fait, UDP requiert une quantité minimum de protocole.
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.

Exemple 1. Exemple avec socket_create_pair()

<?php
$sockets = array();
/* Création de la paire de sockets */
if (socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $sockets) === false) {
   echo "socket_create_pair a échoué. Raison : ".socket_strerror(socket_last_error());
}
/* Envoi et réception de 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 From Parent.';
$strtwo = 'Message From Child.';
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]);
}
?>

Précédent | Sommaire | Suivant
socket_create_listen | Niveau supérieur | socket_create


socket_create

(PHP 4 >= 4.1.0, PHP 5)

socket_create -- Crée une socket

Description

resource socket_create ( int domain, int type, int protocol )

socket_create() crée un point de communication (une socket) et retourne une ressource de socket. Une connexion typique réseau est composée de deux sockets : une qui joue le rôle de client et l'autre celui du serveur.

Le paramètre domain spécifie la famille de protocoles à utiliser par la socket.

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

Le paramètre type sélectionne le type de communication à utiliser par la socket.

Tableau 2. 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, traceroute, etc.).
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.

Le paramètre protocol définit le protocole spécifique pour le domaine domain à utiliser lors de communications sur une socket retournée. 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.

Tableau 3. 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.

socket_create() retourne une ressource de socket en cas de succès et FALSE sinon. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

Note : Si une valeur invalide est spécifiée au paramètre domain ou au paramètre type, la fonction socket_create() prendra comme paramètres par défaut respectivement AF_INET et SOCK_STREAM et générera un message d'alerte (E_WARNING).

Voir aussi
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_last_error() et
socket_strerror().

Précédent | Sommaire | Suivant
socket_create_pair | Niveau supérieur | socket_get_option


socket_get_option

(PHP 4 >= 4.3.0, PHP 5)

socket_get_option -- Lit les options de la socket

Description

mixed socket_get_option ( resource socket, int level, int optname )

socket_get_option() retourne la valeur de l'option spécifiée par le paramètre optname pour la socket spécifiée par le paramètre socket. socket_get_option() retourne FALSE en cas d'erreur.

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

Tableau 1. Options disponibles pour les sockets

Option | Description
SO_DEBUG | Reporte si les informations de débogage sont enregistrées ou pas.
SO_ACCEPTCONN | Reporte si l'écoute des sockets est activée ou pas.
SO_BROADCAST | Reporte si la transmission des annonces globales est supportée ou pas.
SO_REUSEADDR | Reporte si les adresses locales peuvent être réutilisées ou pas.
SO_KEEPALIVE | Reporte si les connexions sont persistantes avec des transmissions périodiques de messages ou pas. Si la socket connectée échoue en réponse à ces messages, la connexion est interrompue et le processus écrira à cette socket une notification avec un signal SIGPIPE.
SO_LINGER | Reporte si la socket socket s'attarde sur la fonction socket_close() si des données sont présentes ou pas.
SO_OOBINLINE | Reporte si la socket socket part sur des données en ligne out-of-band ou pas.
SO_SNDBUF | Reporte les informations sur la taille du tampon envoyé.
SO_RCVBUF | Reporte les informations sur la taille du tampon reçu.
SO_ERROR | Reporte les informations sur le statut de l'erreur et le vide.
SO_TYPE | Reporte le type de la socket socket.
SO_DONTROUTE | Reporte si les messages sortants dévient les équipements standard de cheminement.
SO_RCVLOWAT | Reporte le nombre minimal d'octets au processus pour les opérations entrantes sur la socket socket. (Par défaut, 1)
SO_RCVTIMEO | Reporte la valeur du délai d'exécution pour les opérations entrantes.
SO_SNDLOWAT | Reporte le nombre minimal d'octets au processus pour les opérations sortantes sur la socket socket.
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é.

Note : Cette fonction était appelée socket_getopt() avant PHP 4.3.0.

Précédent | Sommaire | Suivant
socket_create | Niveau supérieur | socket_getpeername


socket_getpeername

(PHP 4 >= 4.1.0, PHP 5)

socket_getpeername -- Interroge l'autre extrémité de la communication

Description

bool socket_getpeername ( resource socket, string &addr [, int &port] )

Si la 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 la 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.

Note : socket_getsockname() ne doit pas être utilisée avec les sockets AF_UNIX créées 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.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. socket_getpeername() peut aussi retourner FALSE si le type de la socket n'est ni AF_INET AF_INET6, ni AF_UNIX, auquel cas le dernier code d'erreur socket n'est pas modifié.

Voir aussi
socket_getsockname(),
socket_last_error() et
socket_strerror().

Précédent | Sommaire | Suivant
socket_get_option | Niveau supérieur | socket_getsockname


socket_getsockname

(PHP 4 >= 4.1.0, PHP 5)

socket_getsockname -- Interroge la socket locale

Description

bool socket_getsockname ( resource socket, string &addr [, int &port] )

Si la 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 la 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.

Note : socket_getsockname() ne doit pas être utilisée avec les sockets AF_UNIX créées avec socket_connect(). Seules les sockets suivant un appel de socket_bind() retourneront des valeurs logiques.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. socket_getsockname() peut aussi retourner FALSE si le type de la socket n'est ni AF_INET, ni AF_INET, ni AF_UNIX, auquel cas le dernier code d'erreur socket n'est pas modifié.

Voir aussi
socket_getpeername(),
socket_last_error() et
socket_strerror().

Précédent | Sommaire | Suivant
socket_getpeername | Niveau supérieur | socket_last_error


socket_last_error

(PHP 4 >= 4.1.0, PHP 5)

socket_last_error -- Lit la dernière erreur générée par une socket

Description

int socket_last_error ( [resource socket] )

socket_last_error() retourne un code d'erreur socket.

Si un paramètre est passé à cette fonction, la dernière erreur qui aura été générée par cette socket sera retournée. Si la ressource de socket est omise, le dernier code d'erreur généré est retourné. Ce comportement est particulièrement pratique pour des fonctions comme socket_create() qui ne retourne pas de socket en cas d'échec, et socket_select() qui peut échouer sans raison directement liée à la socket. Le code d'erreur peut être transmis à socket_strerror() qui retourne un message d'erreur lisible.

<?php
  if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
    die("Impossible de créer la socket, le code d'erreur est : " . socket_last_error() .
        ", le message d'erreur est : " . socket_strerror(socket_last_error()));
  }
?>

Note : socket_last_error() n'efface pas le code d'erreur. Utilisez plutôt la fonction socket_clear_error() pour cela.

Précédent | Sommaire | Suivant
socket_getsockname | Niveau supérieur | socket_listen


socket_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_listen -- Attend une connexion sur une socket

Description

bool socket_listen ( resource socket [, int backlog] )

Une fois que la socket socket a été créée avec la fonction socket_create() et liée à un nom avec la fonction socket_bind(), elle peut être mise en attente de connexion entrante.

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.

socket_listen() ne fonctionne qu'avec des sockets de type SOCK_STREAM et SOCK_SEQPACKET.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Le code d'erreur généré peut être obtenu en appelant la fonction socket_last_error(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

Voir aussi
socket_accept(),
socket_bind(),
socket_connect(),
socket_create() et
socket_strerror().

Précédent | Sommaire | Suivant
socket_last_error | Niveau supérieur | socket_read


socket_read

(PHP 4 >= 4.1.0, PHP 5)

socket_read -- Lit des données d'une socket

Description

string socket_read ( resource socket, int length [, int type] )

socket_read() lit des données dans la socket socket, qui doit être une ressource créée par socket_accept(). Elle lit un maximum de length octets. Sinon, vous pouvez utiliser \r, \n ou \0 pour terminer la lecture (suivant la valeur choisie pour type, voir ci-dessous).

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.

Le paramètre optionnel type peut prendre l'une des valeurs constantes suivantes :

  • PHP_BINARY_READ : utilise la fonction système recv(). Capable de lire les données binaires. (valeur par défaut en PHP >= 4.1.0)

  • PHP_NORMAL_READ : la lecture s'arrête aux \n et \r (valeur par défaut en PHP <= 4.0.6).

Voir aussi
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_last_error(),
socket_strerror() et
socket_write().

Précédent | Sommaire | Suivant
socket_listen | Niveau supérieur | socket_recv


socket_recv

(PHP 4 >= 4.1.0, PHP 5)

socket_recv -- Reçoit des données d'une socket connectée

Description

int socket_recv ( resource socket, string &buf, int len, int flags )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
socket_read | Niveau supérieur | socket_recvfrom


socket_recvfrom

(PHP 4 >= 4.1.0, PHP 5)

socket_recvfrom -- Reçoit des données d'une socket, connectée ou pas

Description

int socket_recvfrom ( resource socket, string &buf, int len, int flags, string &name [, int &port] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

socket_recvfrom() a été protégée des données binaires depuis PHP 4.3.0.

Précédent | Sommaire | Suivant
socket_recv | Niveau supérieur | socket_select


socket_select

(PHP 4 >= 4.1.0, PHP 5)

socket_select -- Exécute l'appel système select() un tableau de sockets avec une durée d'expiration

Description

int socket_select ( array &read, array &write, array &except, int tv_sec [, int tv_usec] )

socket_select() accepte un tableau de sockets et attend qu'elles changent de statut. Ceux qui sont familiers avec les sockets de BSD reconnaîtront dans ces tableaux de sockets les jeux de pointeurs de fichiers. Trois tableaux indépendants de ressources de sockets sont surveillés.

Les sockets listées dans le paramètre read seront surveillées en lecture : pour savoir quand elles sont disponibles en lecture (plus précisément, si une lecture ne va pas bloquer, en particulier, une ressource de socket a déjà atteint une fin de fichier, auquel cas socket_read() retournera une chaîne de taille zéro).

Les sockets listées dans write seront surveillées en écriture : pour voir si une écriture ne va pas bloquer.

Les sockets listées dans except seront surveillées pour leurs exceptions.

Avertissement

En sortie de fonction, les tableaux sont modifiées pour indiquer quelles 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().

Exemple 1. 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 (false === ($num_changed_sockets = socket_select($read, $write = NULL, $except = NULL, 0))) {
  /* Gestion des erreurs */
} elseif ($num_changed_sockets > 0) {
  /* Au moins une des sockets a été modifiée */
}
?>

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 2. Passer NULL à socket_select()

<?php
$e = NULL;
socket_select($r, $w, $e, 0);
?>

Les paramètres tv_sec et tv_usec ensembles forment le paramètre timeout (durée de vie). Le timeout est la durée maximale de temps avant que socket_select() ne se termine. tv_sec peut être zéro, ce qui fera que socket_select() retournera immédiatement. C'est très pratique pour faire du polling (sondage). Si tv_sec est NULL (pas de timeout), socket_select() peut se bloquer indéfiniment.

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(). Ce code d'erreur peut être passé à la fonction socket_strerror() pour obtenir un message d'erreur humainement lisible.

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

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.

  • Une socket ne doit pas être ajoutée à 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(), toutes les sockets dans tous les tableaux doivent être vérifiées. Toute socket qui est disponible en écriture ou en lecture doit être utilisée pour écrire ou lire.

  • Si vous écrivez ou lisez avec une socket retournée dans un tableau, soyez conscient qu'elle 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 une socket.

Voir aussi
socket_read(),
socket_write(),
socket_last_error() et
socket_strerror().

Précédent | Sommaire | Suivant
socket_recvfrom | Niveau supérieur | socket_send


socket_send

(PHP 4 >= 4.1.0, PHP 5)

socket_send -- Envoie des données à une socket connectée

Description

int socket_send ( resource socket, string buf, int len, int flags )

La fonction socket_send() envoie len octets à la socket socket depuis le buffer buf.

Le paramètre flags peut être la combinaison des valeurs suivantes :

Tableau 1. Valeurs possibles pour flags

0x1 | Traite les données OOB (out-of-band).
0x2 | Traite le message entrant (peek).
0x4 | Ignore le routage, utilise une interface directe.
0x8 | Les données complètent l'enregistrement.
0x100 | Les données complètent la transaction.

Voir aussi socket_sendmsg() et socket_sendto().

Précédent | Sommaire | Suivant
socket_select | Niveau supérieur | socket_sendto


socket_sendto

(PHP 4 >= 4.1.0, PHP 5)

socket_sendto -- Envoie une message à une socket, qu'elle soit connectée ou pas

Description

int socket_sendto ( resource socket, string buf, int len, int flags, string addr [, int port] )

socket_sendto() envoie len octets issus du buffer buf via la socket socket, vers le port port, à l'adresse addr

Le paramètre flags peut prendre l'une des valeurs suivantes :

Tableau 1. Valeurs possibles pour flags

0x1 | Traite les données OOB (out-of-band).
0x2 | Traite le message entrant (peek).
0x4 | Ignore le routage, utilise une interface directe.
0x8 | Les données complètent l'enregistrement.
0x100 | Les données complètent la transaction.

Exemple 1. Exemple avec socket_sendto()

<?php

$sh = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
if (socket_bind($sh, '127.0.0.1', 4242)) {
    echo "Socket connectée correctement";
}

$buf = 'Test Message';
$len = strlen($buf);

if (socket_sendto($sh, $buf, $len, 0x100, '192.168.0.2', 4242) !== FALSE) {
    echo "Message envoyé correctement";
}

socket_close($sh);
?>

Voir aussi socket_send() et socket_sendmsg().

Précédent | Sommaire | Suivant
socket_send | Niveau supérieur | socket_set_block


socket_set_block

(PHP 4 >= 4.2.0, PHP 5)

socket_set_block -- Met la socket en mode bloquant

Description

bool socket_set_block ( resource socket )

socket_set_block() supprime l'option O_NONBLOCK de la socket spécifiée par socket.

Exemple 1. Exemple avec socket_set_block()

<?php

$port = 9090;
if (($socket = socket_create_listen($port)) === false) {
    echo "socket_create_listen() a échoué. Raison : ".socket_strerror(socket_last_error());
}

if (socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1) === false) {
    echo "socket_set_option() a échoué. Raison : ".socket_strerror(socket_last_error($socket));
}

if (socket_set_nonblock($socket) === false) { // $socket est maintenant non bloquant
    echo "socket_set_nonblock() a échoué. Raison : ".socket_strerror(socket_last_error($socket));
}

if (socket_set_block($socket) === false) {     // $socket est maintenant non bloquant
    echo "socket_set_block() a échoué. Raison : ". socket_strerror(socket_last_error($socket));
}

?>

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi socket_set_nonblock() et socket_set_option()

Précédent | Sommaire | Suivant
socket_sendto | Niveau supérieur | socket_set_nonblock


socket_set_nonblock

(PHP 4 >= 4.1.0, PHP 5)

socket_set_nonblock -- Sélectionne le mode non bloquant d'un descripteur de fichier

Description

bool socket_set_nonblock ( resource socket )

La fonction socket_set_nonblock() configure l'option O_NONBLOCK pour la socket spécifiée par le paramètre socket.

Exemple 1. Exemple avec socket_set_nonblock()

<?php
$port = 9090;
if (($socket = socket_create_listen($port)) === false) {
    echo "socket_create_listen() a échoué. Raison : ".socket_strerror(socket_last_error());
}

if (socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1) === false) {
    echo "socket_set_option() a échoué. Raison : ".socket_strerror(socket_last_error($socket));
}

if (socket_set_nonblock($socket) === false) {
    echo "socket_set_nonblock() a échoué. Raison : ".socket_strerror(socket_last_error($socket));
}
?>

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi socket_set_block() et socket_set_option()

Précédent | Sommaire | Suivant
socket_set_block | Niveau supérieur | socket_set_option


socket_set_option

(PHP 4 >= 4.3.0, PHP 5)

socket_set_option -- Modifie les options de socket

Description

bool socket_set_option ( resource socket, int level, int optname, mixed optval )

socket_set_option() configure l'option spécifiée par optname, au niveau de protocole level à la valeur pointée par optval pour la socket spécifiée par socket. socket_set_option() retourne FALSE en cas d'échec.

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

Les options disponibles sont les mêmes que pour socket_get_option().

Note : Cette fonction était appelée socket_setopt() avant PHP 4.3.0.

Précédent | Sommaire | Suivant
socket_set_nonblock | Niveau supérieur | socket_shutdown


socket_shutdown

(PHP 4 >= 4.1.0, PHP 5)

socket_shutdown -- Eteint une socket en lecture et/ou écriture

Description

bool socket_shutdown ( resource socket [, int how] )

socket_shutdown() vous permet d'empêcher les données entrantes ou sortantes ou les deux (par défaut) d'être émises via la socket socket

La valeur de how peut être l'une des suivantes :

Tableau 1. Valeurs possibles pour how

0 | Empêche la lecture de la socket
1 | Empêche l'écriture de la socket
2 | Empêche l'écriture et la lecture de la socket

Précédent | Sommaire | Suivant
socket_set_option | Niveau supérieur | socket_strerror


socket_strerror

(PHP 4 >= 4.1.0, PHP 5)

socket_strerror -- Retourne une chaîne décrivant un message d'erreur

Description

string socket_strerror ( int errno )

socket_strerror() prend un code d'erreur comme paramètre errno. Cette valeur est souvent retournée par la fonction socket_last_error(). La fonction retourne le message d'erreur correspondant. Cela rend plus facile la compréhension des problèmes survenus. Par exemple, au lieu d'avoir à rechercher un fichier système dans lequel il y a l'explication de '-111', vous avez juste à le passer à socket_strerror(), qui vous dira ce qui s'est passé.

Exemple 1. Exemple avec socket_strerror()

<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SQL_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 de root) :

socket_bind() a échoué : raison : Permission denied

Voir aussi
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen() et
socket_create().

Précédent | Sommaire | Suivant
socket_shutdown | Niveau supérieur | socket_write


socket_write

(PHP 4 >= 4.1.0, PHP 5)

socket_write -- Ecrit dans une socket

Description

int socket_write ( resource socket, string buffer [, int length] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

socket_write() écrit dans la socket socket les données du buffer buffer.

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.

socket_write() retourne le nombre d'octets qui ont pu être écrits dans la socket, ou bien 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.

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.

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.

Voir aussi
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_read() et
socket_strerror().

Précédent | Sommaire | Suivant
socket_strerror | Niveau supérieur | Fonctions Standard PHP Library (SPL)


Fonctions Standard PHP Library (SPL)

Manuel PHP
Précédent Suivant

CLV. Fonctions Standard PHP Library (SPL)

Introduction

SPL est une collection d'interfaces et de classes qui résolvent des problèmes standards.

Astuce : Une documentation plus détaillée de SPL peut être consultée ici.

Installation

Cette extension est valable et compilée par défaut dans PHP 5.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Avertissement

SPL utilise des constantes de classe depuis PHP 5.1. Les versions antérieures utilisaient des constantes globales sous la forme RIT_LEAVES_ONLY.

RecursiveIteratorIterator::LEAVES_ONLY (entier)

RecursiveIteratorIterator::SELF_FIRST (entier)

RecursiveIteratorIterator::CHILD_FIRST (entier)

CachingIterator::CALL_TOSTRING (entier)

CachingIterator::CATCH_GET_CHILD (entier)

Table des matières
ArrayIterator::current -- Retourne l'entrée courante du tableau
ArrayIterator::key -- Retourne la clé courante du tableau
ArrayIterator::next -- Se déplace vers la prochaine entrée
ArrayIterator::rewind -- Revient à la position initiale
ArrayIterator::seek -- Avance à une position
ArrayIterator::valid -- Vérifie si un tableau contient d'autres entrées
ArrayObject::append -- Ajoute la valeur à la fin
ArrayObject::__construct -- Construit un nouvel objet tableau
ArrayObject::count -- Retourne le nombre d'éléments dans l'itérateur
ArrayObject::getIterator -- Créé un nouvel itérateur à partir d'une instance ArrayObject
ArrayObject::offsetExists -- Retourne si $index existe
ArrayObject::offsetGet -- Retourne la valeur à l'$index spécifié
ArrayObject::offsetSet -- Définie $newval comme valeur à l'$index spécifié
ArrayObject::offsetUnset -- Efface la valeur à l'$index spécifié
CachingIterator::hasNext -- Vérifie si l'itérateur interne a un élément suivant valide
CachingIterator::next -- Déplace l'itérateur à la position suivante
CachingIterator::rewind -- Replace l'itérateur au début
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
CachingRecursiveIterator::getChildren -- Retourne le fils de l'itérateur interne comme un CachingRecursiveIterator
CachingRecursiveIterator::hasChildren -- Vérifie si l'élément courant de l'itérateur interne a un fils
DirectoryIterator::__construct -- Construit un nouvel itérateur de dossier à partir d'un chemin
DirectoryIterator::current -- Retourne this (requis pour l'interface Iterator)
DirectoryIterator::getATime -- Récupère la date et l'heure du dernier accès à un fichier
DirectoryIterator::getCTime -- Récupère l'heure de modification de l'inode d'un fichier
DirectoryIterator::getChildren -- Retourne un itérateur pour l'entrée courante si c'est un répertoire
DirectoryIterator::getFilename -- Retourne le nom de l'entrée courante du dossier
DirectoryIterator::getGroup -- Récupère le groupe d'un fichier
DirectoryIterator::getInode -- Récupère l'inode d'un fichier
DirectoryIterator::getMTime -- Récupère l'heure de la dernière modification d'un fichier
DirectoryIterator::getOwner -- Récupère le propriétaire d'un fichier
DirectoryIterator::getPath -- Retourne le chemin du dossier
DirectoryIterator::getPathname -- Retourne le chemin et le nom de l'entrée courante du dossier
DirectoryIterator::getPerms -- Récupère les permissions d'un fichier
DirectoryIterator::getSize -- Récupère la taille d'un fichier
DirectoryIterator::getType -- Récupère le type d'un fichier
DirectoryIterator::isDir -- Retourne TRUE si le fichier est un dossier
DirectoryIterator::isDot -- Retourne TRUE si l'entrée courante est '.' ou '..'
DirectoryIterator::isExecutable -- Retourne TRUE si le fichier est exécutable
DirectoryIterator::isFile -- Retourne TRUE si l'entrée est un fichier valide
DirectoryIterator::isLink -- Retourne TRUE si le fichier est un lien symbolique
DirectoryIterator::isReadable -- Retourne TRUE si le fichier est accessible en lecture
DirectoryIterator::isWritable -- Retourne TRUE si le fichier peut être modifié
DirectoryIterator::key -- Retourne l'entrée courante du dossier
DirectoryIterator::next -- Se déplace vers la prochaine entrée
DirectoryIterator::rewind -- Revient au début du dossier
DirectoryIterator::valid -- Vérifie si le répertoire contient encore des entrées
FilterIterator::current -- Récupère la valeur de l'élément courant
FilterIterator::getInnerIterator -- Récupère l'itérateur interne
FilterIterator::key -- Récupère la clé courante
FilterIterator::next -- Déplace l'itérateur à la position suivante
FilterIterator::rewind -- Replace l'itérateur au début
FilterIterator::valid -- Vérifie si l'élément courant est valide
LimitIterator::getPosition -- Retourne la position 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
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
RecursiveDirectoryIterator::getChildren -- Retourne un itérateur pour l'entrée courante si c'est un dossier
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
RecursiveIteratorIterator::current -- Accède à la valeur de l'élément courant
RecursiveIteratorIterator::getDepth -- Récupère la profondeur courante de la récursivité de l'itérateur
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::rewind -- Replace l'itérateur au début
RecursiveIteratorIterator::valid -- Vérifie si la position courante est valide
SimpleXMLIterator::current -- Retourne l'entrée courante de SimpleXML
SimpleXMLIterator::getChildren -- Retourne un itérateur pour l'entrée courante, si c'est un objet SimpleXML
SimpleXMLIterator::hasChildren -- Indique si l'entrée courante de SimpleXML est un objet
SimpleXMLIterator::key -- Retourne la clé courante SimpleXML
SimpleXMLIterator::next -- Va à l'entrée SimpleXML suivante
SimpleXMLIterator::rewind -- Replace le pointeur SimpleXML au début
SimpleXMLIterator::valid -- Vérifie si une ressource SimpleXML contient d'autres entrées
class_implements -- Retourne les interfaces implémentées dans une classe donnée
class_parents -- Retourne la classe parente d'une classe
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 donnée en tant qu'__autoload()
spl_autoload_unregister -- Efface d'une fonction donnée de l'implémentation __autoload()
spl_autoload -- Implémentation par défaut d'__autoload()
spl_classes -- Retourne les classes SPL disponibles
spl_object_hash -- Retourne l'identifiant de hashage pour un objet donné

Précédent | Sommaire | Suivant
socket_write | Niveau supérieur | ArrayIterator::current


ArrayIterator::current

(no version information, might be only in CVS)

ArrayIterator::current -- Retourne l'entrée courante du tableau

Description

mixed ArrayIterator::current ( void )

ArrayIterator::current() retourne l'entrée courante du tableau.

Exemple 1. Exemple avec ArrayIterator::current()

<?php
     $array = array('1' => 'un',
'2' => 'deux',
'3' => 'trois');

$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 => un
2 => deux
3 => trois

Précédent | Sommaire | Suivant
Fonctions Standard PHP Library (SPL) | Niveau supérieur | ArrayIterator::key


ArrayIterator::key

(no version information, might be only in CVS)

ArrayIterator::key -- Retourne la clé courante du tableau

Description

mixed ArrayIterator::key ( void )

ArrayIterator::key() retourne la clé courante du tableau.

Exemple 1. Exemple avec ArrayIterator::key()

<?php
$array = array('key' => 'value');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

echo $iterator->key(); //key
?>

Précédent | Sommaire | Suivant
ArrayIterator::current | Niveau supérieur | ArrayIterator::next


ArrayIterator::next

(no version information, might be only in CVS)

ArrayIterator::next -- Se déplace vers la prochaine entrée

Description

void ArrayIterator::next ( void )

ArrayIterator::next() déplace l'itérateur vers la prochaine entrée.

Exemple 1. Exemple avec ArrayIterator::next()

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zéro';
$arrayobject[] = 'un';

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

L'exemple ci-dessus va afficher :

0 => zéro
1 => un

Précédent | Sommaire | Suivant
ArrayIterator::key | Niveau supérieur | ArrayIterator::rewind


ArrayIterator::rewind

(no version information, might be only in CVS)

ArrayIterator::rewind -- Revient à la position initiale

Description

void ArrayIterator::rewind ( void )

ArrayIterator::rewind() remet l'itérateur au début du cycle.

Exemple 1. Exemple avec ArrayIterator::rewind()

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'un';
$arrayobject[] = 'deux';

$iterator = $arrayobject->getIterator();

$iterator->next();
echo $iterator->key(); //1

$iterator->rewind(); //retour au début
echo $iterator->key(); //0
?>

Précédent | Sommaire | Suivant
ArrayIterator::next | Niveau supérieur | ArrayIterator::seek


ArrayIterator::seek

(no version information, might be only in CVS)

ArrayIterator::seek -- Avance à une position

Description

void ArrayIterator::seek ( int position )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ArrayIterator::rewind | Niveau supérieur | ArrayIterator::valid


ArrayIterator::valid

(no version information, might be only in CVS)

ArrayIterator::valid -- Vérifie si un tableau contient d'autres entrées

Description

bool ArrayIterator::valid ( void )

ArrayIterator::valid() vérifie si un tableau contient d'autres entrées.

Exemple 1. Exemple avec ArrayIterator::valid()

<?php
$array = array('1' => 'un');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

var_dump($iterator->valid()); //bool(true)

$iterator->next(); // élément suivant

//bool(false) car il n'y a qu'un seul élément
var_dump($iterator->valid());
?>

Précédent | Sommaire | Suivant
ArrayIterator::seek | Niveau supérieur | ArrayObject::append


ArrayObject::append

(no version information, might be only in CVS)

ArrayObject::append -- Ajoute la valeur à la fin

Description

void ArrayObject::append ( mixed newval )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ArrayIterator::valid | Niveau supérieur | ArrayObject::__construct


ArrayObject::__construct

(no version information, might be only in CVS)

ArrayObject::__construct -- Construit un nouvel objet tableau

Description

ArrayObject ArrayObject::__construct ( mixed input )

ArrayObject::__construct() construit un nouvel objet tableau. Le paramètre input accepte un tableau ou un autre objet ArrayObject.

Exemple 1. Exemple avec ArrayObject::__construct()

<?php
$array = array('1' => 'un',
                       '2' => 'deux',
                       '3' => 'trois');

$arrayobject = new ArrayObject($array);

var_dump($arrayobject);
?>

L'exemple ci-dessus va afficher :

object(ArrayObject)#1 (3) {
    [1]=>
    string(3) "un"
    [2]=>
    string(3) "deux"
    [3]=>
    string(5) "trois"
}

Précédent | Sommaire | Suivant
ArrayObject::append | Niveau supérieur | ArrayObject::count


ArrayObject::count

(no version information, might be only in CVS)

ArrayObject::count -- Retourne le nombre d'éléments dans l'itérateur

Description

int ArrayObject::count ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ArrayObject::__construct | Niveau supérieur | ArrayObject::getIterator


ArrayObject::getIterator

(no version information, might be only in CVS)

ArrayObject::getIterator -- Créé un nouvel itérateur à partir d'une instance ArrayObject

Description

ArrayIterator ArrayObject::getIterator ( void )

ArrayObject::getIterator() retourne un itérateur à partir d'un objet de classe ArrayObject.

Exemple 1. Exemple avec ArrayObject::getIterator()

<?php
$array = array('1' => 'un',
                       '2' => 'deux',
                       '3' => 'trois');

$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 => un
2 => deux
3 => trois

Précédent | Sommaire | Suivant
ArrayObject::count | Niveau supérieur | ArrayObject::offsetExists


ArrayObject::offsetExists

(no version information, might be only in CVS)

ArrayObject::offsetExists -- Retourne si $index existe

Description

bool ArrayObject::offsetExists ( mixed index )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ArrayObject::getIterator | Niveau supérieur | ArrayObject::offsetGet


ArrayObject::offsetGet

(no version information, might be only in CVS)

ArrayObject::offsetGet -- Retourne la valeur à l'$index spécifié

Description

mixed ArrayObject::offsetGet ( mixed index )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ArrayObject::offsetExists | Niveau supérieur | ArrayObject::offsetSet


ArrayObject::offsetSet

(no version information, might be only in CVS)

ArrayObject::offsetSet -- Définie $newval comme valeur à l'$index spécifié

Description

void ArrayObject::offsetSet ( mixed index, mixed newval )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ArrayObject::offsetGet | Niveau supérieur | ArrayObject::offsetUnset


ArrayObject::offsetUnset

(no version information, might be only in CVS)

ArrayObject::offsetUnset -- Efface la valeur à l'$index spécifié

Description

void ArrayObject::offsetUnset ( mixed index )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ArrayObject::offsetSet | Niveau supérieur | CachingIterator::hasNext


CachingIterator::hasNext

(no version information, might be only in CVS)

CachingIterator::hasNext -- Vérifie si l'itérateur interne a un élément suivant valide

Description

bool CachingIterator::hasNext ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ArrayObject::offsetUnset | Niveau supérieur | CachingIterator::next


CachingIterator::next

(no version information, might be only in CVS)

CachingIterator::next -- Déplace l'itérateur à la position suivante

Description

void CachingIterator::next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
CachingIterator::hasNext | Niveau supérieur | CachingIterator::rewind


CachingIterator::rewind

(no version information, might be only in CVS)

CachingIterator::rewind -- Replace l'itérateur au début

Description

void CachingIterator::rewind ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
CachingIterator::next | Niveau supérieur | CachingIterator::__toString


CachingIterator::__toString

(no version information, might be only in CVS)

CachingIterator::__toString -- Retourne la représentation de l'élément courant sous forme de chaîne

Description

string CachingIterator::__toString ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
CachingIterator::rewind | Niveau supérieur | CachingIterator::valid


CachingIterator::valid

(no version information, might be only in CVS)

CachingIterator::valid -- Vérifie si l'élément courant est valide

Description

bool CachingIterator::valid ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
CachingIterator::__toString | Niveau supérieur | CachingRecursiveIterator::getChildren


CachingRecursiveIterator::getChildren

(no version information, might be only in CVS)

CachingRecursiveIterator::getChildren -- Retourne le fils de l'itérateur interne comme un CachingRecursiveIterator

Description

CachingRecursiveIterator CachingRecursiveIterator::getChildren ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
CachingIterator::valid | Niveau supérieur | CachingRecursiveIterator::hasChildren


CachingRecursiveIterator::hasChildren

(no version information, might be only in CVS)

CachingRecursiveIterator::hasChildren -- Vérifie si l'élément courant de l'itérateur interne a un fils

Description

bolean CachingRecursiveIterator::hasChildren ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
CachingRecursiveIterator::getChildren | Niveau supérieur | DirectoryIterator::__construct


DirectoryIterator::__construct

(no version information, might be only in CVS)

DirectoryIterator::__construct -- Construit un nouvel itérateur de dossier à partir d'un chemin

Description

DirectoryIterator DirectoryIterator::__construct ( string path )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
CachingRecursiveIterator::hasChildren | Niveau supérieur | DirectoryIterator::current


DirectoryIterator::current

(no version information, might be only in CVS)

DirectoryIterator::current -- Retourne this (requis pour l'interface Iterator)

Description

DirectoryIterator DirectoryIterator::current ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::__construct | Niveau supérieur | DirectoryIterator::getATime


DirectoryIterator::getATime

(no version information, might be only in CVS)

DirectoryIterator::getATime -- Récupère la date et l'heure du dernier accès à un fichier

Description

int DirectoryIterator::getATime ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::current | Niveau supérieur | DirectoryIterator::getCTime


DirectoryIterator::getCTime

(no version information, might be only in CVS)

DirectoryIterator::getCTime -- Récupère l'heure de modification de l'inode d'un fichier

Description

int DirectoryIterator::getCTime ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::getATime | Niveau supérieur | DirectoryIterator::getChildren


DirectoryIterator::getChildren

(no version information, might be only in CVS)

DirectoryIterator::getChildren -- Retourne un itérateur pour l'entrée courante si c'est un répertoire

Description

RecursiveDirectoryIterator DirectoryIterator::getChildren ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::getCTime | Niveau supérieur | DirectoryIterator::getFilename


DirectoryIterator::getFilename

(no version information, might be only in CVS)

DirectoryIterator::getFilename -- Retourne le nom de l'entrée courante du dossier

Description

string DirectoryIterator::getFilename ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::getChildren | Niveau supérieur | DirectoryIterator::getGroup


DirectoryIterator::getGroup

(no version information, might be only in CVS)

DirectoryIterator::getGroup -- Récupère le groupe d'un fichier

Description

int DirectoryIterator::getGroup ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::getFilename | Niveau supérieur | DirectoryIterator::getInode


DirectoryIterator::getInode

(no version information, might be only in CVS)

DirectoryIterator::getInode -- Récupère l'inode d'un fichier

Description

int DirectoryIterator::getInode ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::getGroup | Niveau supérieur | DirectoryIterator::getMTime


DirectoryIterator::getMTime

(no version information, might be only in CVS)

DirectoryIterator::getMTime -- Récupère l'heure de la dernière modification d'un fichier

Description

int DirectoryIterator::getMTime ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::getInode | Niveau supérieur | DirectoryIterator::getOwner


DirectoryIterator::getOwner

(no version information, might be only in CVS)

DirectoryIterator::getOwner -- Récupère le propriétaire d'un fichier

Description

int DirectoryIterator::getOwner ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::getMTime | Niveau supérieur | DirectoryIterator::getPath


DirectoryIterator::getPath

(no version information, might be only in CVS)

DirectoryIterator::getPath -- Retourne le chemin du dossier

Description

string DirectoryIterator::getPath ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::getOwner | Niveau supérieur | DirectoryIterator::getPathname


DirectoryIterator::getPathname

(no version information, might be only in CVS)

DirectoryIterator::getPathname -- Retourne le chemin et le nom de l'entrée courante du dossier

Description

string DirectoryIterator::getPathname ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::getPath | Niveau supérieur | DirectoryIterator::getPerms


DirectoryIterator::getPerms

(no version information, might be only in CVS)

DirectoryIterator::getPerms -- Récupère les permissions d'un fichier

Description

int DirectoryIterator::getPerms ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::getPathname | Niveau supérieur | DirectoryIterator::getSize


DirectoryIterator::getSize

(no version information, might be only in CVS)

DirectoryIterator::getSize -- Récupère la taille d'un fichier

Description

int DirectoryIterator::getSize ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::getPerms | Niveau supérieur | DirectoryIterator::getType


DirectoryIterator::getType

(no version information, might be only in CVS)

DirectoryIterator::getType -- Récupère le type d'un fichier

Description

string DirectoryIterator::getType ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::getSize | Niveau supérieur | DirectoryIterator::isDir


DirectoryIterator::isDir

(no version information, might be only in CVS)

DirectoryIterator::isDir -- Retourne TRUE si le fichier est un dossier

Description

bool DirectoryIterator::isDir ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::getType | Niveau supérieur | DirectoryIterator::isDot


DirectoryIterator::isDot

(no version information, might be only in CVS)

DirectoryIterator::isDot -- Retourne TRUE si l'entrée courante est '.' ou '..'

Description

bool DirectoryIterator::isDot ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::isDir | Niveau supérieur | DirectoryIterator::isExecutable


DirectoryIterator::isExecutable

(no version information, might be only in CVS)

DirectoryIterator::isExecutable -- Retourne TRUE si le fichier est exécutable

Description

bool DirectoryIterator::isExecutable ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::isDot | Niveau supérieur | DirectoryIterator::isFile


DirectoryIterator::isFile

(no version information, might be only in CVS)

DirectoryIterator::isFile -- Retourne TRUE si l'entrée est un fichier valide

Description

bool DirectoryIterator::isFile ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::isExecutable | Niveau supérieur | DirectoryIterator::isLink


DirectoryIterator::isLink

(no version information, might be only in CVS)

DirectoryIterator::isLink -- Retourne TRUE si le fichier est un lien symbolique

Description

bool DirectoryIterator::isLink ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::isFile | Niveau supérieur | DirectoryIterator::isReadable


DirectoryIterator::isReadable

(no version information, might be only in CVS)

DirectoryIterator::isReadable -- Retourne TRUE si le fichier est accessible en lecture

Description

bool DirectoryIterator::isReadable ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::isLink | Niveau supérieur | DirectoryIterator::isWritable


DirectoryIterator::isWritable

(no version information, might be only in CVS)

DirectoryIterator::isWritable -- Retourne TRUE si le fichier peut être modifié

Description

bool DirectoryIterator::isWritable ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::isReadable | Niveau supérieur | DirectoryIterator::key


DirectoryIterator::key

(no version information, might be only in CVS)

DirectoryIterator::key -- Retourne l'entrée courante du dossier

Description

string DirectoryIterator::key ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::isWritable | Niveau supérieur | DirectoryIterator::next


DirectoryIterator::next

(no version information, might be only in CVS)

DirectoryIterator::next -- Se déplace vers la prochaine entrée

Description

void DirectoryIterator::next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::key | Niveau supérieur | DirectoryIterator::rewind


DirectoryIterator::rewind

(no version information, might be only in CVS)

DirectoryIterator::rewind -- Revient au début du dossier

Description

void DirectoryIterator::rewind ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::next | Niveau supérieur | DirectoryIterator::valid


DirectoryIterator::valid

(no version information, might be only in CVS)

DirectoryIterator::valid -- Vérifie si le répertoire contient encore des entrées

Description

string DirectoryIterator::valid ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::rewind | Niveau supérieur | FilterIterator::current


FilterIterator::current

(no version information, might be only in CVS)

FilterIterator::current -- Récupère la valeur de l'élément courant

Description

mixed FilterIterator::current ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DirectoryIterator::valid | Niveau supérieur | FilterIterator::getInnerIterator


FilterIterator::getInnerIterator

(no version information, might be only in CVS)

FilterIterator::getInnerIterator -- Récupère l'itérateur interne

Description

Iterator FilterIterator::getInnerIterator ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
FilterIterator::current | Niveau supérieur | FilterIterator::key


FilterIterator::key

(no version information, might be only in CVS)

FilterIterator::key -- Récupère la clé courante

Description

mixed FilterIterator::key ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
FilterIterator::getInnerIterator | Niveau supérieur | FilterIterator::next


FilterIterator::next

(no version information, might be only in CVS)

FilterIterator::next -- Déplace l'itérateur à la position suivante

Description

void FilterIterator::next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
FilterIterator::key | Niveau supérieur | FilterIterator::rewind


FilterIterator::rewind

(no version information, might be only in CVS)

FilterIterator::rewind -- Replace l'itérateur au début

Description

void FilterIterator::rewind ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
FilterIterator::next | Niveau supérieur | FilterIterator::valid


FilterIterator::valid

(no version information, might be only in CVS)

FilterIterator::valid -- Vérifie si l'élément courant est valide

Description

bool FilterIterator::valid ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
FilterIterator::rewind | Niveau supérieur | LimitIterator::getPosition


LimitIterator::getPosition

(no version information, might be only in CVS)

LimitIterator::getPosition -- Retourne la position courante

Description

int LimitIterator::getPosition ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
FilterIterator::valid | Niveau supérieur | LimitIterator::next


LimitIterator::next

(no version information, might be only in CVS)

LimitIterator::next -- Déplace l'itérateur à la position suivante

Description

void LimitIterator::next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
LimitIterator::getPosition | Niveau supérieur | LimitIterator::rewind


LimitIterator::rewind

(no version information, might be only in CVS)

LimitIterator::rewind -- Replace l'itérateur au début

Description

void LimitIterator::rewind ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
LimitIterator::next | Niveau supérieur | LimitIterator::seek


LimitIterator::seek

(no version information, might be only in CVS)

LimitIterator::seek -- Place l'itérateur à une position donnée

Description

void LimitIterator::seek ( int position )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
LimitIterator::rewind | Niveau supérieur | LimitIterator::valid


LimitIterator::valid

(no version information, might be only in CVS)

LimitIterator::valid -- Vérifie si l'élément courant est valide

Description

bool LimitIterator::valid ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
LimitIterator::seek | Niveau supérieur | ParentIterator::getChildren


ParentIterator::getChildren

(no version information, might be only in CVS)

ParentIterator::getChildren -- Retourne le fils de l'itérateur interne contenu dans ParentIterator

Description

ParentIterator ParentIterator::getChildren ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
LimitIterator::valid | Niveau supérieur | ParentIterator::hasChildren


ParentIterator::hasChildren

(no version information, might be only in CVS)

ParentIterator::hasChildren -- Vérifie si l'élément courant de l'itérateur interne a un fils

Description

bool ParentIterator::hasChildren ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ParentIterator::getChildren | Niveau supérieur | ParentIterator::next


ParentIterator::next

(no version information, might be only in CVS)

ParentIterator::next -- Déplace l'itérateur à la position suivante

Description

void ParentIterator::next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ParentIterator::hasChildren | Niveau supérieur | ParentIterator::rewind


ParentIterator::rewind

(no version information, might be only in CVS)

ParentIterator::rewind -- Replace l'itérateur au début

Description

void ParentIterator::rewind ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ParentIterator::next | Niveau supérieur | RecursiveDirectoryIterator::getChildren


RecursiveDirectoryIterator::getChildren

(no version information, might be only in CVS)

RecursiveDirectoryIterator::getChildren -- Retourne un itérateur pour l'entrée courante si c'est un dossier

Description

object RecursiveDirectoryIterator::getChildren ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
ParentIterator::rewind | Niveau supérieur | RecursiveDirectoryIterator::hasChildren


RecursiveDirectoryIterator::hasChildren

(no version information, might be only in CVS)

RecursiveDirectoryIterator::hasChildren -- Vérifie si l'entrée courante est un dossier et n'est pas '.' ou '..'

Description

bool RecursiveDirectoryIterator::hasChildren ( [bool allow_links] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
RecursiveDirectoryIterator::getChildren | Niveau supérieur | RecursiveDirectoryIterator::key


RecursiveDirectoryIterator::key

(no version information, might be only in CVS)

RecursiveDirectoryIterator::key -- Retourne le chemin et le nom de l'entrée courante du dossier

Description

string RecursiveDirectoryIterator::key ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
RecursiveDirectoryIterator::hasChildren | Niveau supérieur | RecursiveDirectoryIterator::next


RecursiveDirectoryIterator::next

(no version information, might be only in CVS)

RecursiveDirectoryIterator::next -- Se déplace vers la prochaine entrée

Description

void RecursiveDirectoryIterator::next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
RecursiveDirectoryIterator::key | Niveau supérieur | RecursiveDirectoryIterator::rewind


RecursiveDirectoryIterator::rewind

(no version information, might be only in CVS)

RecursiveDirectoryIterator::rewind -- Revient à la position initiale dans le dossier

Description

void RecursiveDirectoryIterator::rewind ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
RecursiveDirectoryIterator::next | Niveau supérieur | RecursiveIteratorIterator::current


RecursiveIteratorIterator::current

(no version information, might be only in CVS)

RecursiveIteratorIterator::current -- Accède à la valeur de l'élément courant

Description

mixed RecursiveIteratorIterator::current ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
RecursiveDirectoryIterator::rewind | Niveau supérieur | RecursiveIteratorIterator::getDepth


RecursiveIteratorIterator::getDepth

(no version information, might be only in CVS)

RecursiveIteratorIterator::getDepth -- Récupère la profondeur courante de la récursivité de l'itérateur

Description

int RecursiveIteratorIterator::getDepth ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
RecursiveIteratorIterator::current | Niveau supérieur | RecursiveIteratorIterator::getSubIterator


RecursiveIteratorIterator::getSubIterator

(no version information, might be only in CVS)

RecursiveIteratorIterator::getSubIterator -- L'itérateur secondaire actif courant

Description

RecursiveIterator RecursiveIteratorIterator::getSubIterator ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
RecursiveIteratorIterator::getDepth | Niveau supérieur | RecursiveIteratorIterator::key


RecursiveIteratorIterator::key

(no version information, might be only in CVS)

RecursiveIteratorIterator::key -- Accède à la clé courante

Description

mixed RecursiveIteratorIterator::key ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
RecursiveIteratorIterator::getSubIterator | Niveau supérieur | RecursiveIteratorIterator::next


RecursiveIteratorIterator::next

(no version information, might be only in CVS)

RecursiveIteratorIterator::next -- Déplace l'itérateur à la position suivante

Description

void RecursiveIteratorIterator::next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
RecursiveIteratorIterator::key | Niveau supérieur | RecursiveIteratorIterator::rewind


RecursiveIteratorIterator::rewind

(no version information, might be only in CVS)

RecursiveIteratorIterator::rewind -- Replace l'itérateur au début

Description

void RecursiveIteratorIterator::rewind ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
RecursiveIteratorIterator::next | Niveau supérieur | RecursiveIteratorIterator::valid


RecursiveIteratorIterator::valid

(no version information, might be only in CVS)

RecursiveIteratorIterator::valid -- Vérifie si la position courante est valide

Description

bolean RecursiveIteratorIterator::valid ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
RecursiveIteratorIterator::rewind | Niveau supérieur | SimpleXMLIterator::current


SimpleXMLIterator::current

(no version information, might be only in CVS)

SimpleXMLIterator::current -- Retourne l'entrée courante de SimpleXML

Description

mixed SimpleXMLIterator::current ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
RecursiveIteratorIterator::valid | Niveau supérieur | SimpleXMLIterator::getChildren


SimpleXMLIterator::getChildren

(no version information, might be only in CVS)

SimpleXMLIterator::getChildren -- Retourne un itérateur pour l'entrée courante, si c'est un objet SimpleXML

Description

object SimpleXMLIterator::getChildren ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SimpleXMLIterator::current | Niveau supérieur | SimpleXMLIterator::hasChildren


SimpleXMLIterator::hasChildren

(no version information, might be only in CVS)

SimpleXMLIterator::hasChildren -- Indique si l'entrée courante de SimpleXML est un objet

Description

bool SimpleXMLIterator::hasChildren ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SimpleXMLIterator::getChildren | Niveau supérieur | SimpleXMLIterator::key


SimpleXMLIterator::key

(no version information, might be only in CVS)

SimpleXMLIterator::key -- Retourne la clé courante SimpleXML

Description

mixed SimpleXMLIterator::key ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SimpleXMLIterator::hasChildren | Niveau supérieur | SimpleXMLIterator::next


SimpleXMLIterator::next

(no version information, might be only in CVS)

SimpleXMLIterator::next -- Va à l'entrée SimpleXML suivante

Description

void SimpleXMLIterator::next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SimpleXMLIterator::key | Niveau supérieur | SimpleXMLIterator::rewind


SimpleXMLIterator::rewind

(no version information, might be only in CVS)

SimpleXMLIterator::rewind -- Replace le pointeur SimpleXML au début

Description

void SimpleXMLIterator::rewind ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SimpleXMLIterator::next | Niveau supérieur | SimpleXMLIterator::valid


SimpleXMLIterator::valid

(no version information, might be only in CVS)

SimpleXMLIterator::valid -- Vérifie si une ressource SimpleXML contient d'autres entrées

Description

bool SimpleXMLIterator::valid ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SimpleXMLIterator::rewind | Niveau supérieur | class_implements


class_implements

(PHP 5)

class_implements -- Retourne les interfaces implémentées dans une classe donnée

Description

array class_implements ( mixed class [, bool autoload] )

Cette fonction retourne un tableau avec les noms des interfaces que la classe class ainsi que ses parents implémentent.

Liste de paramètres

class

Un objet (instance) ou une chaîne de caractères (nom de la classe).

autoload

Si TRUE, autorise cette fonction à charger la classe automatiquement grâce à la méthode magique __autoload. Par défaut, l'argument vaut TRUE.

Valeurs de retour

Retourne un tableau ou FALSE en cas d'erreur.

Historique

Version | Description
5.1.0 | Ajout de l'option pour passer le paramètre class en tant que chaîne de caractères. Ajout du paramètre autoload.

Exemples

Exemple 1. Exemple avec class_implements()

<?php

interface foo { }
class bar implements foo {}

print_r(class_implements(new bar));

// Depuis PHP 5.1.0, vous pouvez aussi spécifier le paramètre comme une chaîne de caractères
print_r(class_implements('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// Utilisez __autoload pour charger la classe 'non_chargée'
print_r(class_implements('non_chargée', true));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [foo] => foo
)

Array
(
    [interface_de_non_chargée] => interface_de_non_chargée
)

Voir aussi

class_parents()

Précédent | Sommaire | Suivant
SimpleXMLIterator::valid | Niveau supérieur | class_parents


class_parents

(PHP 5)

class_parents -- Retourne la classe parente d'une classe

Description

array class_parents ( mixed class [, bool autoload] )

class_parents() retourne un tableau avec le nom des classes parentes de la classe class.

Liste de paramètres

class

Un objet (instance) ou une chaîne de caractères (nom de la classe).

autoload

Si TRUE, autorise cette fonction à charger la classe automatiquement grâce à la méthode magique __autoload. Par défaut, l'argument vaut TRUE.

Valeurs de retour

Retourne un tableau ou FALSE en cas d'erreur.

Historique

Version | Description
5.1.0 | Ajout de l'option pour passer le paramètre en tant que chaîne de caractères

Exemples

Exemple 1. Exemple avec class_parents()

<?php

class foo { }
class bar extends foo {}

print_r(class_parents(new bar));

// Depuis PHP 5.1.0, vous pouvez aussi spécifier le paramètre comme une chaîne de caractères
print_r(class_implements('bar'));

function __autoload($class_name) {
require_once $class_name . '.php';
}

// Utilisez __autoload pour charger la classe 'non_chargée'
print_r(class_implements('non_chargée', true));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
   [foo] => foo
)

Array
(
   [parent_de_non_chargée] => parent_de_non_chargée
)

Voir aussi

class_implements()

Précédent | Sommaire | Suivant
class_implements | Niveau supérieur | iterator_count


iterator_count

(PHP 5 >= 5.1.0RC1)

iterator_count -- Compte de nombre d'éléments dans un itérateur

Description

int iterator_count ( IteratorAggregate iterator )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
class_parents | Niveau supérieur | iterator_to_array


iterator_to_array

(PHP 5 >= 5.1.0RC1)

iterator_to_array -- Copie un itérateur dans un tableau

Description

array iterator_to_array ( IteratorAggregate iterator )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
iterator_count | Niveau supérieur | spl_autoload_call


spl_classes

(PHP 5)

spl_classes -- Retourne les classes SPL disponibles

Description

array spl_classes ( void )

spl_classes() retourne un tableau avec la liste des classes SPL actuellement disponibles.

Exemple 1. Exemple avec spl_classes()

<?php

print_r(spl_classes());

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [ArrayObject] => ArrayObject
    [ArrayIterator] => ArrayIterator
    [CachingIterator] => CachingIterator
    [CachingRecursiveIterator] => CachingRecursiveIterator
    [DirectoryIterator] => DirectoryIterator
    [FilterIterator] => FilterIterator
    [LimitIterator] => LimitIterator
    [ParentIterator] => ParentIterator
    [RecursiveDirectoryIterator] => RecursiveDirectoryIterator
    [RecursiveIterator] => RecursiveIterator
    [RecursiveIteratorIterator] => RecursiveIteratorIterator
    [SeekableIterator] => SeekableIterator
    [SimpleXMLIterator] => SimpleXMLIterator
)

Précédent | Sommaire | Suivant
spl_autoload | Niveau supérieur | spl_object_hash


Fonctions SQLite

Manuel PHP
Précédent Suivant

CLVI. Fonctions SQLite

Introduction

Cette extension fait l'interface avec le moteur de base SQLite Embeddable SQL Database Engine. SQLite est une bibliothèque C qui implémente un moteur de bases de données SQL embarqué. Les programmes qui utilisent SQLite peuvent disposer d'un accès à une base de données SQL, sans avoir à faire tourner d'autre processus serveur.

SQLite n'est pas un logiciel client pour se connecter à un grand nom des bases de données. SQLite est le serveur. La bibliothèque SQLite lit et écrit directement dans les fichiers de bases de données sur le disque.

Note : Pour plus d'informations sur SQLite, voyez le site web http://sqlite.org/.

Installation

Lisez le fichier d'installation, qui est fourni avec la distribution. Ou bien, utilisez simplement l'installeur PEAR : pear install sqlite. SQLite est déjà fourni avec PHP et vous n'avez pas besoin de télécharger d'autres logiciels.

Les utilisateurs de Windows peuvent télécharger la version DLL de l'extension SQLite ici : php_sqlite.dll.

Dans la version 5 de PHP, l'extension SQLite ainsi que le moteur sont intégrés et compilés par défaut. Cependant, depuis PHP 5.1.0, vous devez activer manuellement cette extension dans le php.ini (parcequ'il est maintenant inclus en tant que partagé). De plus, depuis PHP 5.1.0, SQLite dépend de PDO, alors il doit être aussi activé, en ajoutant les lignes suivantes au php.ini (dans l'ordre) :

extension=php_pdo.dll
extension=php_sqlite.dll

Sous les systèmes Lunix ou Unix, si vous compilez PDO en tant qu'extension partagée, vous devez également compilez SQLite en tant qu'extension partagée en utilisant l'option de configuration --with-sqlite=shared.

SQLite 3 est supportée à travers PDO SQLite.

Installation sur Windows pour les comptes sans privilèges : Sur les systèmes d'exploitation Windows, les comptes sans privilèges n'ont pas la variable d'environnement TMP d'initialisée par défaut. Cela fera créer des fichiers temporaires par sqlite dans le dossier de windows, ce qui n'est pas voulu. Alors, vous devriez initialiser la variable d'environnement TMP pour le serveur web ou dans le compte utilisateur où le serveur web fonctionne. Si Apache est votre serveur web, vous pouvez accomplir cela via une directive SetEnv dans votre fichier httpd.conf. Par exemple :

SetEnv TMP c:/temp

Si vous êtes incapable d'établir cette configuration à ce niveau du serveur, vous pouvez implémenter cette configuration dans votre script :

putenv('TMP=C:/temp');

La configuration doit référer à un répertoire à l'intérieur duquel le serveur web a la permission de créer des fichiers et bien sûr d'y écrire et supprimer les fichiers créés. Autrement, vous recevrez le message d'erreur suivant : malformed database schema - unable to open a temporary database file for storing temporary tables

Pré-requis

Afin de disposer de ces fonctions, vous devez compiler PHP avec le support SQLite, ou charger dynamiquement l'extension SQLite depuis votre fichier php.ini.

Types de ressources

Il y a deux ressources, utilisées par l'extension SQLite. La première est une connexion à la base et la seconde est un résultat de 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.

Les fonctions sqlite_fetch_array() et sqlite_current() utilisent des constantes pour spécifier les différents types de résultats. Les constantes sont les suivantes :

Constantes de résultats SQLite

SQLITE_ASSOC (entier)

Les colonnes sont retournées dans le tableau, en utilisant le nom de la colonne comme nom d'index.

SQLITE_BOTH (entier)

Les colonnes sont retournées dans le tableau, en utilisant simultanément le nom de la colonne comme nom d'index et un index numérique.

SQLITE_NUM (entier)

Les colonnes sont retournées dans le tableau, en utilisant une indexation numérique. L'index commence à 0, pour identifier le premier champ.

Un certain nombre de fonctions peuvent retourner des codes d'état. Les constantes suivantes sont définies :

Constantes codes d'état SQLite

SQLITE_OK (entier)

Résultat réussi.

SQLITE_ERROR (entier)

Erreur SQL ou base de données manquante.

SQLITE_INTERNAL (entier)

Une erreur interne de logique dans SQLite.

SQLITE_PERM (entier)

Permission d'accès refusée.

SQLITE_ABORT (entier)

Routine de procédure de rappel a demandé un abandon.

SQLITE_BUSY (entier)

Le fichier de base de données est verrouillé.

SQLITE_LOCKED (entier)

Une table dans la base de données est verrouillée.

SQLITE_NOMEM (entier)

Allocation de mémoire échouée.

SQLITE_READONLY (entier)

Essai d'écrire dans une base de données en lecture seule.

SQLITE_INTERRUPT (entier)

Opération terminée de manière interne.

SQLITE_IOERR (entier)

Erreur disque I/O s'est produite.

SQLITE_CORRUPT (entier)

L'image disque de la base de données est malformée.

SQLITE_NOTFOUND (entier)

(Interne) Table ou enregistrement non trouvé.

SQLITE_FULL (entier)

Insertion échouée car la base de données est pleine.

SQLITE_CANTOPEN (entier)

Impossible d'ouvrir le fichier de base de données.

SQLITE_PROTOCOL (entier)

Erreur du protocole de verrou de base de données.

SQLITE_EMPTY (entier)

(Interne) Une table de la base de données est vide.

SQLITE_SCHEMA (entier)

Le schéma de base de données a changé.

SQLITE_TOOBIG (entier)

Trop de données pour une ligne de la table.

SQLITE_CONSTRAINT (entier)

Arrêt dû à une violation de contrainte.

SQLITE_MISMATCH (entier)

Type de données incorrect.

SQLITE_MISUSE (entier)

Bibliothèque utilisée incorrectement.

SQLITE_NOLFS (entier)

Utilisation de fonctionnalités de l'OS non supportées sur l'hôte.

SQLITE_AUTH (entier)

Autorisation échouée.

SQLITE_ROW (entier)

Processus interne a une autre ligne prête.

SQLITE_DONE (entier)

Processus interne a terminé l'exécution.

Classes pré-définies

SQLiteDatabase

Représente une base de données SQLite ouverte.

Constructeur

  • __construct - construit un nouvel objet SQLiteDatabase

Méthodes

  • query - Exécute une requête

  • queryExec - Exécute une requête de résultat

  • arrayQuery - Exécute une requête et retourne les résultats dans un tableau

  • singleQuery - Exécute une requête et retourne soit un tableau pour une seule colonne, soit la valeur de la première ligne

  • unbufferedQuery - Exécute une requête non bufférisée

  • lastInsertRowid - Retourne l'identifiant de la dernière ligne insérée

  • changes - Retourne le nombre de lignes modifiées par la dernière requête

  • createAggregate - Enregistre une UDF agrégeante pour les requêtes SQLite

  • createFunction - Enregistre une fonction utilisateur "classique" UDF pour SQLite

  • busyTimeout - Configure ou désactive le délai d'attente d'une base SQLite occupée

  • lastErorr - Retourne le dernier code erreur de la dernière erreur rencontrée

  • fetchColumnTypes - Retourne un tableau de types de colonnes depuis une table particulière

SQLiteResult

Représente un jeu de résultats SQLite bufférisé.

Méthodes

  • fetch - Récupère la ligne suivante depuis un jeu de résultats en tant que tableau

  • fetchObject - Récupère la ligne suivante depuis un jeu de résultats en tant qu'objet

  • fetchSingle - Récupère la première ligne depuis le jeu de résultats en tant que chaîne de caractères

  • fetchAll - Récupère toutes les lignes depuis le jeu de résultats en tant que tableau de tableaux

  • column - Récupère une colonne depuis la ligne courante du jeu de résultats

  • numFields - Retourne le numéro du champ depuis un jeu de résultats

  • fieldName - Retourne le nom d'un champ particulier depuis le jeu de résultats

  • current - Récupère la ligne courante depuis le jeu de résultat en tant que tableau

  • key - Retourne l'index de la ligne courante

  • next - Déplace le pointeur sur le numéro de ligne suivante

  • valid - Retourne si oui ou non il reste des lignes de disponibles

  • rewind - Déplace le pointeur sur le numéro de la première ligne d'un jeu de résultats

  • prev - Déplace le pointeur sur le numéro de ligne précédent du jeu de résultats

  • hasPrev - Retourne si oui ou non une ligne précédente est disponible

  • numRows - Retourne le nombre de lignes dans le jeu de résultats

  • seek - Déplace le pointeur vers un numéro de ligne précis

SQLiteUnbuffered

Représente un jeu de résultats SQLite non-bufférisé. Les jeux de résultats non-bufférisés sont séquentiels, déplacement du pointeur uniquement vers le numéro suivant.

Méthodes

  • fetch - Récupère la ligne suivante depuis un jeu de résultats en tant que tableau

  • fetchObject - Récupère la ligne suivante depuis un jeu de résultats en tant qu'objet

  • fetchSingle - Récupère la première colonne depuis un jeu de résultats en tant que chaîne de caractères

  • fetchAll - Récupère toutes les lignes depuis le jeu de résultats en tant que tableau de tableaux

  • column - Récupère une colonne depuis la ligne courante d'un jeu de résultats

  • numFields - Retourne le nombre de champs dans le jeu de résultats

  • fieldName - Retourne le nom d'un champ en particulier depuis le jeu de résultats

  • current - Récupère la ligne courante depuis le jeu de résultats en tant que tableau

  • next - Déplace le pointeur vers un numéro de ligne suivant

  • valid - Retourne si oui ou non il reste des lignes de disponibles

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration SQLite

Nom | Par défaut | Modifiable | Historique
sqlite.assoc_case | "0" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

sqlite.assoc_case int

Utilise des index à casse libre (0), majuscule (1) ou minuscule (2).

Cette option sert principalement lorsque vous avez besoin de la compatibilité avec d'autres systèmes de bases de données, où les noms des colonnes sont toujours retournés en majuscule ou en minuscule, indépendamment de la casse réelle de la colonne dans la base.

La bibliothèque SQLite retourne le nom de la colonne sans y toucher (c'est la casse qui sera utilisée dans votre base). Lorsque sqlite.assoc_case vaut 0 cette casse sera conservée. Lorsque cette option vaut 1 ou 2, PHP va modifier la casse des noms, et mettre le nom de la colonne respectivement en majuscules ou minuscules.

Utiliser cette option implique une légère perte de performances, mais c'est BEAUCOUP plus rapide que de faire la gestion des caractères vous-même.

Table des matières
sqlite_array_query -- Exécute une requête SQL avec SQLite et retourne un tableau
sqlite_busy_timeout -- Configure le délai d'attente d'une base SQLite occupée
sqlite_changes -- Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite
sqlite_close -- Ferme la connexion à SQLite
sqlite_column -- Lit la valeur d'une colonne dans un résultat SQLite
sqlite_create_aggregate -- Enregistre une UDF agregeante pour les requêtes SQLite
sqlite_create_function -- Enregistre une fonction utilisateur "classique" UDF pour SQLite
sqlite_current -- Lit une ligne de résultat SQLite dans un tableau
sqlite_error_string -- Retourne le message d'erreur SQLite
sqlite_escape_string -- Protège une chaîne de caractères pour utilisation avec SQLite
sqlite_exec -- Exécute une requête sans résultats sur une base de données
sqlite_factory -- Ouvre une base SQLite et crée un objet pour elle
sqlite_fetch_all -- Retourne toutes les lignes d'un jeu de résultats en tant que tableau de tableaux
sqlite_fetch_array -- Lit la prochaine ligne de résultat SQLite dans un tableau
sqlite_fetch_column_types -- Retourne un tableau des types de colonnes d'une certaine table
sqlite_fetch_object -- Retourne la ligne suivante du jeu de résultats en tant qu'objet
sqlite_fetch_single -- Lit la première ligne d'un résultat SQLite sous forme de chaîne
sqlite_fetch_string -- Alias de sqlite_fetch_single()
sqlite_field_name -- Retourne le nom du champ SQLite
sqlite_has_more -- Indique s'il reste des lignes SQLite à lire
sqlite_has_prev -- Retourne si oui ou non une ligne précédente est disponible
sqlite_key -- Retourne l'index de la ligne courante
sqlite_last_error -- Retourne le dernier code d'erreur SQLite
sqlite_last_insert_rowid -- Retourne le numéro de ligne de la dernière ligne insérée
sqlite_libencoding -- Retourne l'encodage utilisé par la bibliothèque SQLite
sqlite_libversion -- Retourne la version de la bibliothèque SQLite
sqlite_next -- Déplace le pointeur SQLite vers la prochaine ligne
sqlite_num_fields -- Retourne le nombre de champs dans un résultat SQLite
sqlite_num_rows -- Retourne le nombre de lignes d'un résultat SQLite
sqlite_open -- Ouvre une base SQLite et la crée si elle n'existe pas
sqlite_popen -- Ouvre une connexion SQlite persistante et crée la base si elle n'existe pas
sqlite_prev -- Se positionne sur le numéro de ligne précédent du jeu de résultats
sqlite_query -- Exécute une requête SQLite et lit le résultat
sqlite_rewind -- Place le pointeur de résultat SQLite au début
sqlite_seek -- Déplace le pointeur de résultat SQLite vers une ligne
sqlite_single_query -- Exécute une requête et retourne soit un tableau pour une colonne unique, soit la valeur de la première ligne
sqlite_udf_decode_binary -- Décode des données binaires, passées à une UDF SQLite
sqlite_udf_encode_binary -- Encode les données binaires d'une UDF SQLite avant de les retourner
sqlite_unbuffered_query -- Exécute une requête SQLite non bufférisée
sqlite_valid -- Retourne si oui ou non il reste des lignes disponibles

Précédent | Sommaire | Suivant
spl_object_hash | Niveau supérieur | sqlite_array_query


sqlite_array_query

(PHP 5)

sqlite_array_query

(no version information, might be only in CVS)

SQLiteDatabase->arrayQuery -- Exécute une requête SQL avec SQLite et retourne un tableau

Description

array sqlite_array_query ( resource dbhandle, string query [, int result_type [, bool decode_binary]] )

array sqlite_array_query ( string query, resource dbhandle [, int result_type [, bool decode_binary]] )

Style orienté objet (méthode)

class SQLiteDatabase {

array arrayQuery ( string query [, int result_type [, bool decode_binary]] )

}

sqlite_array_query() exécute la requête donnée et retourne un tableau du jeu de résultats entier. Il est similaire d'appeler sqlite_query() et ensuite sqlite_fetch_array() pour chaque ligne dans le jeu de résultats. sqlite_array_query() est de manière significative plus rapide que les fonctions mentionnées ci-dessus.

Astuce : sqlite_array_query() est plus convenable pour les requêtes retournant 45 lignes ou moins. Si vous avez plus de données que cela, il est recommandé que vous écriviez vos scripts avec la fonction sqlite_unbuffered_query() plutôt pour une performance optimale.

Liste de paramètres

query

La requête qui sera exécutée.

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Note : Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Valeurs de retour

Retourne un tableau du jeu de résultats entier; sinon FALSE

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Exemples

Exemple 1. Style procédural

<?php
$dbhandle = sqlite_open('sqlitedb');
$result = sqlite_array_query($dbhandle, 'SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Exemple 2. Style orienté objet

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$result = $dbhandle->arrayQuery('SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Nom : ' . $entry['name'] . '  E-mail : ' . $entry['email'];
}
?>

Voir aussi

sqlite_query()
sqlite_fetch_array()
sqlite_fetch_string()

Précédent | Sommaire | Suivant
Fonctions SQLite | Niveau supérieur | sqlite_busy_timeout


sqlite_busy_timeout

(PHP 5)

sqlite_busy_timeout

(no version information, might be only in CVS)

SQLiteDatabase->busyTimeout -- Configure le délai d'attente d'une base SQLite occupée

Description

void sqlite_busy_timeout ( resource dbhandle, int milliseconds )

Style orienté objet (méthode)

class SQLiteDatabase {

void busyTimeout ( int milliseconds )

}

Spécifie la durée maximale, en millisecondes, que SQLite attendra pour qu'une base de données dbhandle soit utilisable.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

milliseconds

Le nombre de millisecondes. Lorsque mis à 0, les gestionnaires d'occupation seront désactivés et SQLite retournera immédiatement un code d'état SQLITE_BUSY si un autre processus/thread a verouillé la base de données pour une mise à jour.

PHP initialise la durée maximale d'utilisation à 60 secondes lorsque la base de données est ouverte.

Note : Il y a mille (1000) millisecondes dans une seconde.

Exemples

Exemple 1. Style procédural

<?php
$dbhandle = sqlite_open('sqlitedb');
sqlite_busy_timeout($dbhandle, 10000); // fixe le timeout à 10 secondes
sqlite_busy_timeout($dbhandle, 0); // désactive le gestionnaire
?>

Exemple 2. Style orienté objet

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$dbhandle->busyTimeout(10000); // 10 secondes
$dbhandle->busyTimeout(0); // désactive
?>

Voir aussi

sqlite_open()

Précédent | Sommaire | Suivant
sqlite_array_query | Niveau supérieur | sqlite_changes


sqlite_changes

(PHP 5)

sqlite_changes

(no version information, might be only in CVS)

SQLiteDatabase->changes -- Retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite

Description

int sqlite_changes ( resource dbhandle )

Style orienté objet (méthode)

class SQLiteDatabase {

int changes ( void )

}

sqlite_changes() retourne le nombre de lignes qui ont été modifiées par la dernière requête SQLite, exécutée dans la base db.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

Exemples

Exemple 1. Style procédural

<?php
$dbhandle = sqlite_open('mysqlitedb');
$query = sqlite_query($dbhandle, "UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!$query) {
    exit('Erreur dans la requête.');
} else {
    echo 'Nombre de lignes modifiées : ', sqlite_changes($dbhandle);
}
?>

Exemple 2. Style orienté objet

<?php
$dbhandle = new SQLiteDatabase('mysqlitedb');
$query = $dbhandle->query("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!$query) {
    exit('Erreur dans la requête.');
} else {
    echo 'Nombre de lignes modifiées : ', $dbhandle->changes();
}
?>

Voir aussi

sqlite_open()

Précédent | Sommaire | Suivant
sqlite_busy_timeout | Niveau supérieur | sqlite_close


sqlite_close

(PHP 5)

sqlite_close -- Ferme la connexion à SQLite

Description

void sqlite_close ( resource dbhandle )

sqlite_close() referme la connexion à la base SQLite, identifiée par la ressource dbhandle. Si la connexion à la base était persistante, elle sera fermée et supprimée de la liste des connexions persistantes.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale.

Exemples

Exemple 1. Exemple avec sqlite_close()

<?php
$dbhandle = sqlite_open('sqlitedb');
sqlite_close($dbhandle);
?>

Voir aussi

sqlite_open()
sqlite_popen()

Précédent | Sommaire | Suivant
sqlite_changes | Niveau supérieur | sqlite_column


sqlite_column

(PHP 5)

sqlite_column

(no version information, might be only in CVS)

SQLiteResult->column

(no version information, might be only in CVS)

SQLiteUnbuffered->column -- Lit la valeur d'une colonne dans un résultat SQLite

Description

mixed sqlite_column ( resource result, mixed index_or_name [, bool decode_binary] )

class SQLiteResult {

mixed column ( mixed index_or_name [, bool decode_binary] )

}class SQLiteUnbuffered {

mixed column ( mixed index_or_name [, bool decode_binary] )

}

sqlite_column() lit la valeur de la colonne nommée index_or_name (si c'est une chaîne), ou d'index index_or_name (si c'est un entier), dans le résultat SQLite result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

index_or_name

L'index de la colonne ou le nom à récupérer.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Notes

Note : Utilisez cette fonction lorsque vous manipulez un grand résultat avec de nombreuses colonnes, ou des colonnes qui contiennent de grandes quantités de données.

Voir aussi

sqlite_fetch_string()

Précédent | Sommaire | Suivant
sqlite_close | Niveau supérieur | sqlite_create_aggregate


sqlite_create_aggregate

(PHP 5)

sqlite_create_aggregate

(no version information, might be only in CVS)

SQLiteDatabase->createAggregate -- Enregistre une UDF agregeante pour les requêtes SQLite

Description

void sqlite_create_aggregate ( resource dbhandle, string function_name, callback step_func, callback finalize_func [, int num_args] )

Style orienté objet (méthode)

class SQLiteDatabase {

void createAggregate ( string function_name, callback step_func, callback finalize_func [, int num_args] )

}

sqlite_create_aggregate() est similaire à sqlite_create_function(), car elle enregistre une fonction qui sera utilisée pour calculer un résultat agrégé sur plusieurs lignes d'une requête.

La différence principale entre cette fonction et sqlite_create_function() est que deux fonctions sont nécessaires pour gérer les agrégations : step_func est appelée pour chaque ligne du résultat. Votre fonction PHP doit accumuler le résultat, et le stocker dans le contexte d'agrégation. Une fois que toutes les lignes ont été appelées, finalize_func sera appelée, et elle doit alors lire les données dans ce contexte d'agrégation, et en retourner le résultat. Les fonctions de callback doivent retourner un type compréhensible par SQLite (i.e. type scalaire).

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

function_name

Le nom de la fonction utilisée dans les requêtes SQL.

step_func

Fonction de procédure de rappel appelée pour chaque ligne du jeu de résultats.

finalize_func

Fonction de procédure de rappel pour le contexte d'agrégation des données de chaque ligne.

num_args

Conseil à l'analyseur SQLite si la fonction de procédure de rappel accepte un nombre prédéterminé d'arguments.

Exemples

Exemple 1. Exemple d'UDF SQLite : taille maximale de chaîne

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten'
   );
$db = sqlite_open(':memory:');
sqlite_query($db, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($db, "INSERT INTO strings VALUES('$str')");
}

function max_len_step(&$context, $string)
{
  if (strlen($string) > $context) {
    $context = strlen($string);
  }
}

function max_len_finalize(&$context)
{
  return $context;
}

sqlite_create_aggregate($db, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));

?>

Dans cet exemple, nous créons une fonction d'agrégation qui va calculer la taille de la plus longue chaîne dans l'une des colonnes de la table. Pour chaque ligne, la fonction max_len_step est appelée, et reçoit le paramètre context. Le contexte est une autre variable PHP, et il peut contenir un tableau ou même un objet. Dans notre exemple, nous l'utilisons pour stocker la taille maximale de la colonne courante. Si string est plus grand que la valeur maximale que nous avons enregistrée, nous modifions notre contexte en conséquence.

Une fois que toutes les lignes ont été traitées, SQLite appelle la fonction max_len_finalize pour déterminer le résultat de l'agrégation. Nous pourrions alors effectuer plusieurs calculs en fonction des données que nous avons récoltées dans context. Dans notre exemple simple, nous avons calculé le résultat au fur et à mesure de la progression de la requête, ce qui nous permet de n'avoir qu'à retourner la valeur de notre contexte.

Note : L'exemple ci-dessus ne fonctionnera pas correctement si une colonne contient une donnée binaire. Reportez-vous à la fonction sqlite_udf_decode_binary() pour plus de détails, et d'un exemple pour travailler avec des chaînes binaires.

Astuce : Il n'est pas recommandé de stocker une copie des valeurs dans le contexte, puis de les traiter à la fin, car cela conduirait SQLite à consommer beaucoup de mémoire : imaginez simplement la quantité de mémoire que prendrons vos millions de lignes de 32 caractères en fin de requête.

Astuce : Vous pouvez utiliser sqlite_create_function() et sqlite_create_aggregate() pour remplacer des fonctions natives SQLite.

Voir aussi

sqlite_create_function()
sqlite_udf_encode_binary()
sqlite_udf_decode_binary()

Précédent | Sommaire | Suivant
sqlite_column | Niveau supérieur | sqlite_create_function


sqlite_create_function

(PHP 5)

sqlite_create_function

(no version information, might be only in CVS)

SQLiteDatabase->createFunction -- Enregistre une fonction utilisateur "classique" UDF pour SQLite

Description

void sqlite_create_function ( resource dbhandle, string function_name, callback callback [, int num_args] )

Style orienté objet (méthode)

class SQLiteDatabase {

void createFunction ( string function_name, callback callback [, int num_args] )

}

sqlite_create_function() vous permet d'enregistrer une fonction PHP dans SQLite comme UDF (Fonction Définie par l'Utilisateur, User Defined Function), pour qu'elle soit accessible depuis les requêtes SQL.

Les UDF peuvent être utilisées dans n'importe quelle requête SQL qui peut appeler des fonctions, telles que SELECT et UPDATE, ou même des triggers.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

function_name

Le nom de la fonction utilisée dans les requêtes SQL.

callback

Fonction de procédure de rappel pour gérer les fonctions SQL définies.

Note : Les fonctions de procédure de rappel devraient retourner un type compris par SQLite (c'est-à-dire, voir type scalaire).

num_args

Conseil à l'analyseur SQLite si la fonction de procédure de rappel accepte un nombre prédéterminé d'arguments.

Note : Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Exemples

Exemple 1. Exemple avec sqlite_create_function()

<?php
function md5_and_reverse($string)
{
    return strrev(md5($string));
}

if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    sqlite_create_function($dbhandle, 'md5rev', 'md5_and_reverse', 1);

    $sql  = 'SELECT md5rev(filename) FROM files';
    $rows = sqlite_array_query($dbhandle, $sql);
} else {
    echo 'Erreur pendant l\'ouverture de la base db : ' . $sqliteerror;
    exit;
}
?>

Dans cet exemple, nous avons une fonction qui calcule la somme de contrôle MD5 d'une chaîne, et l'inverse. Lorsque la requête SQL s'exécute, elle retourne le nom du fichier, transformé par cette opération. Les données retournées dans $rows contiennent le résultat.

La beauté de cette technique est que vous n'avez pas à traiter vous-même les données avec une boucle, une fois que vous avez lu les données.

PHP enregistre une fonction spéciale appelée PHP lorsque la base est ouverte. Cette fonction est utilisée pour appeler toute fonction PHP sans avoir à l'enregistrer au préalable.

Exemple 2. Exemple d'utilisation d'une fonction PHP dans SQLite

<?php
$rows = sqlite_array_query($db, "SELECT php('md5', filename) from files");
?>

Cet exemple va appeler la fonction md5() sur chaque colonne filename dans la base, et retourner le contenu dans le tableau $rows.

Note : Pour des raisons de performances, PHP ne va pas automatiquement coder ou décoder les données binaires passées à votre UDF. Vous devez le faire manuellement. Voyez les fonctions sqlite_udf_encode_binary() et sqlite_udf_decode_binary() pour plus de détails.

Astuce : Il n'est pas recommandé d'utiliser des UDF pour traiter des données binaires, à moins que les performances ne soient pas un problème pour votre application.

Astuce : Vous pouvez utiliser sqlite_create_function() et sqlite_create_aggregate() pour remplacer des fonctions natives SQLite.

Voir aussi

sqlite_create_aggregate()

Précédent | Sommaire | Suivant
sqlite_create_aggregate | Niveau supérieur | sqlite_current


sqlite_current

(PHP 5)

sqlite_current

(no version information, might be only in CVS)

SQLiteResult->current

(no version information, might be only in CVS)

SQLiteUnbuffered->current -- Lit une ligne de résultat SQLite dans un tableau

Description

array sqlite_current ( resource result [, int result_type [, bool decode_binary]] )

Style orienté objet (méthode)

class SQLiteResult {

array current ( [int result_type [, bool decode_binary]] )

}class SQLiteUnbuffered {

array current ( [int result_type [, bool decode_binary]] )

}

sqlite_current() est identique à sqlite_fetch_array() hormis le fait qu'elle ne fait pas progresser le pointeur de résultat avant de lire des données. Elle ne fait que retourner les données qui sont disponibles à la position courante.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Valeurs de retour

Retourne un tableau de la ligne courante du jeu de résultats: FALSE si la position courante est au delà de la dernière ligne.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Voir aussi

sqlite_seek()
sqlite_next()
sqlite_fetch_array()

Précédent | Sommaire | Suivant
sqlite_create_function | Niveau supérieur | sqlite_error_string


sqlite_error_string

(PHP 5)

sqlite_error_string -- Retourne le message d'erreur SQLite

Description

string sqlite_error_string ( int error_code )

sqlite_error_string() retourne un message d'erreur lisible, pour le numéro d'erreur error_code, retourné par sqlite_last_error().

Voir aussi

sqlite_last_error()

Précédent | Sommaire | Suivant
sqlite_current | Niveau supérieur | sqlite_escape_string


sqlite_escape_string

(PHP 5)

sqlite_escape_string -- Protège une chaîne de caractères pour utilisation avec SQLite

Description

string sqlite_escape_string ( string item )

sqlite_escape_string() va ajouter des guillemets dans la chaîne item, pour qu'elle puisse être utilisée correctement dans une requête SQL. Cela inclut notamment le doublement des guillemets simples ('), et la vérification des caractères binaires non sécuritaires, de la chaîne de requête.

Si item contient le caractère NUL et qu'il commence avec un caractère dont la valeur ordinale est 0x01, PHP va appliquer un schéma de codage, pour que vous puissiez stocker puis relire correctement ces données.

Bien que ce codage sécurise l'insertion des données, il va rendre la recherche de texte par simple comparaison, ou en utilisant la clause LIKE, inutilisable dans vos requêtes pour les colonnes qui contiennent ces données binaires. En pratique, cela ne devrait pas être un problème, car votre utilisation de la base devrait faire que vous n'utiliserez pas ces colonnes (en fait, il est mieux de stocker des données binaires dans d'autres systèmes, comme des fichiers).

Avertissement

addslashes() NE doit PAS être utilisée pour protéger vos requêtes dans SQLite. Cela va conduire à d'étranges résultats lors de la lecture de vos données.

Note : N'utilisez pas cette fonction pour coder les valeurs retournées par des fonctions utilisateurs, créées avec les fonctions sqlite_create_function() ou sqlite_create_aggregate() : utilisez plutôt sqlite_udf_encode_binary().

Voir aussi

sqlite_udf_encode_binary()

Précédent | Sommaire | Suivant
sqlite_error_string | Niveau supérieur | sqlite_exec


sqlite_exec

(PHP 5)

sqlite_exec

(no version information, might be only in CVS)

SQLiteDatabase->exec -- Exécute une requête sans résultats sur une base de données

Description

bool sqlite_exec ( resource dbhandle, string query [, string &error_msg] )

bool sqlite_exec ( string query, resource dbhandle )

Style orienté objet (méthode)

class SQLiteDatabase {

bool queryExec ( string query [, string &error_msg] )

}

sqlite_exec() exécute une requête SQL query sur une base de données spécifiée par la ressource dbhandle.

Avertissement

SQLite doit exécuter de multiples requêtes séparées par des points-virgules ; vous pouvez donc l'utiliser pour exécuter un script SQL que vous avez chargé depuis un fichier ou que vous avez intégré dans un script.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsque utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

query

La requête à être exécutée.

error_msg

La variable spécifiée sera remplie si une erreur se produit. Ceci est important car les erreurs de syntaxes SQL ne peuvent être récupérées en utilisant la fonction sqlite_last_error().

Note : Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Valeurs de retour

Cette fonction retourne un résultat booléen; TRUE en cas de succès, FALSE en cas d'erreur. Si vous avez besoin d'exécuter une requête qui doit retourner des lignes, reportez-vous à la fonction sqlite_query().

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Historique

Version | Description
5.1.0 | Ajout du paramètre error_msg

Exemples

Exemple 1. Style procédural

<?php
$dbhandle = sqlite_open('mysqlitedb');
$query = sqlite_exec($dbhandle, "UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'", $error);
if (!$query) {
    exit("Erreur dans la requête : '$error'");
} else {
    echo 'Nombre de lignes modifiées : ', sqlite_changes($dbhandle);
}
?>

Exemple 2. Style orienté objet

<?php
$dbhandle = new SQLiteDatabase('mysqlitedb');
$query = $dbhandle->exec("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'", $error);
if (!$query) {
    exit("Erreur dans la requête : '$error'");
} else {
    echo 'Nombre de lignes modifiées : ', $dbhandle->changes();
}
?>

Voir aussi

sqlite_query()
sqlite_unbuffered_query()
sqlite_array_query()

Précédent | Sommaire | Suivant
sqlite_escape_string | Niveau supérieur | sqlite_factory


sqlite_factory

(PHP 5)

sqlite_factory -- Ouvre une base SQLite et crée un objet pour elle

Description

SQLiteDatabase sqlite_factory ( string filename [, int mode [, string &error_message]] )

sqlite_factory() fonctionne de la même façon que sqlite_open() dans le fait qu'il ouvre une base de données SQLite ou tente de la créer si elle n'existe pas. Cependant, un objet SQLiteDatabase est retourné plutôt qu'une ressource. Lisez la page de référence sur sqlite_open() pour son utilisation.

Liste de paramètres

filename

Le nom du fichier de la base de données SQLite.

mode

Le mode du fichier. Devrait être utilisé pour ouvrir une base de données en mode lecture seule. Actuellement, ce paramètre est ignoré par la bibliothèque sqlite. La valeur par défaut pour le mode est 0666 en octal et cela est la valeur recommandée.

error_message

Passée par référence et est affectée afin de contenir la description du message d'erreur qui explique pourquoi la base de données ne pouvait pas être ouverte s'il y avait une erreur.

Valeurs de retour

Retourne un objet SQLiteDatabase en cas de succès, NULL en cas d'erreur.

Exemples

Exemple 1. Exemple avec sqlite_factory()

<?php
$dbhandle = sqlite_factory('sqlitedb');
$dbhandle->query('SELECT user_id, username FROM users');

/* équivalent dans les fonctionnalités à : */

$dbhandle = new SQLiteDatabase('sqlitedb');
$dbhandle->query('SELECT user_id, username FROM users');

?>

Voir aussi

sqlite_open()
sqlite_popen()

Précédent | Sommaire | Suivant
sqlite_exec | Niveau supérieur | sqlite_fetch_all


sqlite_fetch_all

(PHP 5)

sqlite_fetch_all

(no version information, might be only in CVS)

SQLiteResult->fetchAll

(no version information, might be only in CVS)

SQLiteUnbuffered->fetchAll -- Retourne toutes les lignes d'un jeu de résultats en tant que tableau de tableaux

Description

array sqlite_fetch_all ( resource result [, int result_type [, bool decode_binary]] )

Style orienté objet (méthode)

class SQLiteResult {

array fetchAll ( [int result_type [, bool decode_binary]] )

}class SQLiteUnbuffered {

array fetchAll ( [int result_type [, bool decode_binary]] )

}

Retourne un tableau des lignes restantes dans le jeu de résultats. Si appelée juste après sqlite_query(), elle retourne toutes les lignes. Si appelée après sqlite_fetch_array(), elle retourne le reste. S'il n'y a plus de lignes disponibles dans le jeu de résultats, elle retourne un tableau vide.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Valeurs de retour

Retourne un tableau de la ligne courante du jeu de résultats : FALSE si la position courante est au-delà de la dernière ligne.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Exemples

Exemple 1. Style procédural

<?php
$dbhandle = sqlite_open('sqlitedb');
$query = sqlite_query($dbhandle, 'SELECT name, email FROM users LIMIT 25');
$result = sqlite_fetch_all($query, SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Nom : ' . $entry['name'] . '  E-mail : ' . $entry['email'];
}
?>

Exemple 2. Style orienté objet

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');

$query = $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // jeu de résultats bufférisé
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // jeu de résultats non bufférisé

$result = $query->fetchAll(SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Nom : ' . $entry['name'] . '  E-mail : ' . $entry['email'];
}
?>

Voir aussi

sqlite_fetch_array()

Précédent | Sommaire | Suivant
sqlite_factory | Niveau supérieur | sqlite_fetch_array


sqlite_fetch_array

(PHP 5)

sqlite_fetch_array

(no version information, might be only in CVS)

SQLiteResult->fetch

(no version information, might be only in CVS)

SQLiteUnbuffered->fetch -- Lit la prochaine ligne de résultat SQLite dans un tableau

Description

array sqlite_fetch_array ( resource result [, int result_type [, bool decode_binary]] )

Style orienté objet (méthode)

class SQLiteResult {

array fetch ( [int result_type [, bool decode_binary]] )

}class SQLiteUnbuffered {

array fetch ( [int result_type [, bool decode_binary]] )

}

sqlite_fetch_array() lit la prochaine ligne dans le résultat result. S'il n'y a pas d'autres lignes, sqlite_fetch_array() retourne FALSE et, sinon, elle retourne un tableau représentant les données lues.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Valeurs de retour

Retourne un tableau de la ligne suivante du jeu de résultats: FALSE si la position suivante est au delà de la dernière ligne.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Exemples

Exemple 1. Style procédural

<?php
$dbhandle = sqlite_open('sqlitedb');
$query = sqlite_query($dbhandle, 'SELECT name, email FROM users LIMIT 25');
while ($entry = sqlite_fetch_array($query, SQLITE_ASSOC)) {
    echo 'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Exemple 2. Style orienté objet

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');

$query = $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // jeu de résultat bufférisé
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // jeu de résultat non bufférisé

while ($entry = $query->fetch(SQLITE_ASSOC)) {
    echo 'Name: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Voir aussi

sqlite_array_query()
sqlite_fetch_string()

Précédent | Sommaire | Suivant
sqlite_fetch_all | Niveau supérieur | sqlite_fetch_column_types


sqlite_fetch_column_types

(PHP 5)

sqlite_fetch_column_types

(no version information, might be only in CVS)

SQLiteDatabase->fetchColumnTypes -- Retourne un tableau des types de colonnes d'une certaine table

Description

array sqlite_fetch_column_types ( string table_name, resource dbhandle [, int result_type] )

Style orienté objet (méthode)

class SQLiteDatabase {

array fetchColumnTypes ( string table_name [, int result_type] )

}

sqlite_fetch_column_types() retourne un tableau de types de colonnes depuis la table table_name spécifiée.

Liste de paramètres

table_name

Le nom de la table à interroger.

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utiliez la méthode orientée objet.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_ASSOC est la valeur par défaut pour cette fonction.

Valeurs de retour

Retourne un tableau des types de données des colonnes; FALSE en cas d'erreur.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Historique

Version | Description
5.1.0 | Ajout de result_type

Exemples

Exemple 1. Style procédural

<?php
$db = sqlite_open('mysqlitedb');
sqlite_query($db, 'CREATE TABLE foo (bar varchar(10), arf text)');
$cols = sqlite_fetch_column_types('foo', $db, SQLITE_ASSOC);

foreach ($cols as $column => $type) {
    echo "Colonne : $column  Type : $type";
}
?>

Exemple 2. Style orienté objet

<?php
$db = new SQLiteDatabase('mysqlitedb');
$db->query('CREATE TABLE foo (bar varchar(10), arf text)');
$cols = $db->fetchColumnTypes('foo', SQLITE_ASSOC);

foreach ($cols as $column => $type) {
    echo "Colonne : $column  Type : $type";
}
?>

L'exemple ci-dessus va afficher :

Colonne : bar  Type : VARCHAR
Colonne : arf  Type : TEXT

Précédent | Sommaire | Suivant
sqlite_fetch_array | Niveau supérieur | sqlite_fetch_object


sqlite_fetch_object

(PHP 5)

sqlite_fetch_object

(no version information, might be only in CVS)

SQLiteResult->fetchObject

(no version information, might be only in CVS)

SQLiteUnbuffered->fetchObject -- Retourne la ligne suivante du jeu de résultats en tant qu'objet

Description

object sqlite_fetch_object ( resource result [, string class_name [, array ctor_params [, bool decode_binary]]] )

Style orienté objet (méthode)

class SQLiteResult {

object fetchObject ( [string class_name [, array ctor_params [, bool decode_binary]]] )

}class SQLiteUnbuffered {

object fetchObject ( [string class_name [, array ctor_params [, bool decode_binary]]] )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
sqlite_fetch_column_types | Niveau supérieur | sqlite_fetch_single


sqlite_fetch_single

(PHP 5)

sqlite_fetch_single

(no version information, might be only in CVS)

SQLiteResult->fetchSingle

(no version information, might be only in CVS)

SQLiteUnbuffered->fetchSingle -- Lit la première ligne d'un résultat SQLite sous forme de chaîne

Description

string sqlite_fetch_single ( resource result [, bool decode_binary] )

Style orienté objet (méthode)

class SQLiteResult {

string fetchSingle ( [bool decode_binary] )

}class SQLiteUnbuffered {

string fetchSingle ( [bool decode_binary] )

}

sqlite_fetch_single() est identique à sqlite_fetch_array() hormis le fait qu'elle retourne uniquement la valeur de la première colonne du résultat.

C'est la méthode optimale pour lire des données, si vous n'êtes intéressé que par les valeurs de la première colonne.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

decode_binary

Lorsque decode_binary vaut TRUE (par défaut), PHP va décoder les données binaires, si elles ont été codées avec la fonction sqlite_escape_string(). Vous allez généralement laisser cette valeur à sa valeur par défaut, à moins que vous ne travailliez avec des bases opérées par d'autres applications.

Exemples

Exemple 1. Exemple avec sqlite_fetch_single()

<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    $sql = 'SELECT id FROM sometable WHERE id = 42';
    $res = sqlite_query($db, $sql);

    if (sqlite_num_rows($res) > 0) {
        echo sqlite_fetch_single($res); // 42
    }

    sqlite_close($db);
}
?>

Voir aussi

sqlite_fetch_array()

Précédent | Sommaire | Suivant
sqlite_fetch_object | Niveau supérieur | sqlite_fetch_string


sqlite_fetch_string

(PHP 5)

sqlite_fetch_string -- Alias de sqlite_fetch_single()

Description

Cette fonction est un alias de : sqlite_fetch_single().

Précédent | Sommaire | Suivant
sqlite_fetch_single | Niveau supérieur | sqlite_field_name


sqlite_field_name

(PHP 5)

sqlite_field_name

(no version information, might be only in CVS)

SQLiteResult->fieldName

(no version information, might be only in CVS)

SQLiteUnbuffered->fieldName -- Retourne le nom du champ SQLite

Description

string sqlite_field_name ( resource result, int field_index )

Style orienté objet (méthode)

class SQLiteResult {

string fieldName ( int field_index )

}class SQLiteUnbuffered {

string fieldName ( int field_index )

}

sqlite_field_name() retourne le nom du champ identifié par son index numérique field_index, dans le résultat result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

field_index

Nombre ordinal de la colonne dans le jeu de résultats.

Valeurs de retour

Retourne le nom du champ dans un jeu de résultats SQLite, donné par le nombre ordinal de la colonne; FALSE en cas d'erreur.

Les noms de colonnes retournés par SQLITE_ASSOC et SQLITE_BOTH suivent les règles concernant la case définie par l'option de configuration sqlite.assoc_case.

Précédent | Sommaire | Suivant
sqlite_fetch_string | Niveau supérieur | sqlite_has_more


sqlite_has_more

(PHP 5)

sqlite_has_more -- Indique s'il reste des lignes SQLite à lire

Description

bool sqlite_has_more ( resource result )

Recherche si d'autres lignes sont disponibles dans le jeu de résultats donné.

Liste de paramètres

result

La ressource de résultat SQLite.

Valeurs de retour

Retourne TRUE s'il y a d'autres lignes de résultat à lire dans la ressource result ou FALSE sinon.

Voir aussi

sqlite_num_rows()
sqlite_changes()

Précédent | Sommaire | Suivant
sqlite_field_name | Niveau supérieur | sqlite_has_prev


sqlite_has_prev

(PHP 5)

sqlite_has_prev

(no version information, might be only in CVS)

SQLiteResult->hasPrev -- Retourne si oui ou non une ligne précédente est disponible

Description

bool sqlite_has_prev ( resource result )

Style orienté objet (méthode)

class SQLiteResult {

bool hasPrev ( void )

}

Recherche si d'autres lignes précédentes sont disponibles dans le jeu de résultats donné.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note : Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne TRUE s'il y a d'autres lignes précédentes de résultat à lire dans la ressource result ou FALSE sinon.

Voir aussi

sqlite_prev()
sqlite_has_more()
sqlite_num_rows()

Précédent | Sommaire | Suivant
sqlite_has_more | Niveau supérieur | sqlite_key


sqlite_key

(no version information, might be only in CVS)

sqlite_key

(no version information, might be only in CVS)

SQLiteResult->key -- Retourne l'index de la ligne courante

Description

int sqlite_key ( resource result )

Style orienté objet (méthode)

class SQLiteResult {

int key ( void )

}

sqlite_key() retourne l'index de la ligne courante d'un jeu de résultats bufférisé result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note : Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne l'index de la ligne courante du jeu de résultats bufférisé result.

Historique

Version | Description
5.0.4 | Dans les versions antérieures à PHP 5.0.4, sqlite_key() était uniquement capable d'être appelé en tant que méthode de l'objet SQLiteResult et non de façon procédurale.

Voir aussi

sqlite_next()
sqlite_current()
sqlite_rewind()

Précédent | Sommaire | Suivant
sqlite_has_prev | Niveau supérieur | sqlite_last_error


sqlite_last_error

(PHP 5)

sqlite_last_error

(no version information, might be only in CVS)

SQLiteDatabase->lastError -- Retourne le dernier code d'erreur SQLite

Description

int sqlite_last_error ( resource dbhandle )

Style orienté objet (méthode)

class SQLiteDatabase {

int lastError ( void )

}

Retourne le code d'erreur de la dernière opération SQL effectuée sur la base dbhandle (l'identiant de base de données) ou 0 lorsque aucune erreur n'est survenue. Une description lisible de cette erreur peut être obtenue avec la fonction sqlite_error_string().

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

Voir aussi

sqlite_error_string()

Précédent | Sommaire | Suivant
sqlite_key | Niveau supérieur | sqlite_last_insert_rowid


sqlite_last_insert_rowid

(PHP 5)

sqlite_last_insert_rowid

(no version information, might be only in CVS)

SQLiteDatabase->lastInsertRowid -- Retourne le numéro de ligne de la dernière ligne insérée

Description

int sqlite_last_insert_rowid ( resource dbhandle )

Style orienté objet (méthode)

class SQLiteDatabase {

int lastInsertRowid ( void )

}

sqlite_last_insert_rowid() retourne le numéro de ligne inséré dans la base dbhandle, si elle a été créée avec un champ auto-incrémenté.

Astuce : Vous pouvez créer des champs auto-incrémentés en SQLite, en utilisant l'attribut INTEGER PRIMARY KEY dans vos tables.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

Précédent | Sommaire | Suivant
sqlite_last_error | Niveau supérieur | sqlite_libencoding


sqlite_libencoding

(PHP 5)

sqlite_libencoding -- Retourne l'encodage utilisé par la bibliothèque SQLite

Description

string sqlite_libencoding ( void )

La libraire SQLite peut être compilée avec le support de ISO-8859-1 ou UTF-8. sqlite_libencoding() vous permet de savoir quel encodage est utilisé.

Avertissement

La distribution par défaut de PHP compile libsqlite avec l'encodage ISO-8859-1. Cependant, c'est un leurre. Au lieu d'utiliser ISO-8859-1, elle va utiliser votre configuration locale pour les comparaisons et les tris. Il vaut donc mieux penser que ce n'est pas ISO-8859-1, mais plutôt '8-bit'.

Lorsqu'elle est compilée avec le support UTF-8, SQLite gère le codage et l'encodage des séquences multi-octets UTF-8, mais ne fait pas totalement le travail lorsqu'elle opère avec les données (aucune normalisation n'est faite, par exemple), et certaines comparaisons peuvent être erronées.

Avertissement

Il n'est pas recommandé d'utiliser PHP en configuration de serveur web avec une version de SQLite qui utilise l'encodage UTF-8, car libsqlite va interrompre le processus si elle détecte un problème avec l'encodage UTF-8.

Voir aussi

sqlite_lib_version()

Précédent | Sommaire | Suivant
sqlite_last_insert_rowid | Niveau supérieur | sqlite_libversion


sqlite_libversion

(PHP 5)

sqlite_libversion -- Retourne la version de la bibliothèque SQLite

Description

string sqlite_libversion ( void )

sqlite_libversion() retourne la version de la bibliothèque SQLite.

Voir aussi

sqlite_libencoding()

Précédent | Sommaire | Suivant
sqlite_libencoding | Niveau supérieur | sqlite_next


sqlite_next

(PHP 5)

sqlite_next

(no version information, might be only in CVS)

SQLiteResult->next

(no version information, might be only in CVS)

SQLiteUnbuffered->next -- Déplace le pointeur SQLite vers la prochaine ligne

Description

bool sqlite_next ( resource result )

Style orienté objet (méthode)

class SQLiteResult {

bool next ( void )

}class SQLiteUnbuffered {

bool next ( void )

}

sqlite_next() avance le pointeur de résultat à la prochaine ligne du résultat result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Valeurs de retour

Retourne TRUE en cas de succès ou FALSE s'il n'y a plus de lignes.

Voir aussi

sqlite_seek()
sqlite_current()
sqlite_rewind()

Précédent | Sommaire | Suivant
sqlite_libversion | Niveau supérieur | sqlite_num_fields


sqlite_num_fields

(PHP 5)

sqlite_num_fields

(no version information, might be only in CVS)

SQLiteResult->numFields

(no version information, might be only in CVS)

SQLiteUnbuffered->numFields -- Retourne le nombre de champs dans un résultat SQLite

Description

int sqlite_num_fields ( resource result )

Style orienté objet (méthode)

class SQLiteResult {

int numFields ( void )

}class SQLiteUnbuffered {

int numFields ( void )

}

Retourne le nombre de champs dans le résultat SQLite result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Voir aussi

sqlite_changes()
sqlite_num_rows()

Précédent | Sommaire | Suivant
sqlite_next | Niveau supérieur | sqlite_num_rows


sqlite_num_rows

(PHP 5)

sqlite_num_rows

(no version information, might be only in CVS)

SQLiteResult->numRows -- Retourne le nombre de lignes d'un résultat SQLite

Description

int sqlite_num_rows ( resource result )

Style orienté objet (méthode)

class SQLiteResult {

int numRows ( void )

}

sqlite_num_rows() retourne le nombre de lignes dans le résultat SQLite result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note : Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Exemples

Exemple 1. Style procédural

<?php
$db = sqlite_open('mysqlitedb');
$result = sqlite_query($db, "SELECT * FROM mytable WHERE name='John Doe'");
$rows = sqlite_num_rows($result);

echo "Nombre de lignes : $rows";
?>

Exemple 2. Style orienté objet

<?php
$db = new SQLiteDatabase('mysqlitedb');
$result = $db->query("SELECT * FROM mytable WHERE name='John Doe'");
$rows = $result->numRows();

echo "Nombre de lignes : $rows";
?>

Voir aussi

sqlite_changes()
sqlite_query()
sqlite_num_fields()

Précédent | Sommaire | Suivant
sqlite_num_fields | Niveau supérieur | sqlite_open


sqlite_open

(PHP 5)

sqlite_open -- Ouvre une base SQLite et la crée si elle n'existe pas

Description

resource sqlite_open ( string filename [, int mode [, string &error_message]] )

Style orienté objet (constructeur) :

class SQLiteDatabase {

__construct ( string filename [, int mode [, string &error_message]] )

}

Ouvre une base de données SQLite ou crée la base de données si elle n'existe pas.

Liste de paramètres

filename

Le nom du fichier de la base de données SQLite. Si le fichier n'existe pas, SQLite tentera de le créer. PHP doit avoir les permissions d'écriture du fichier si des données y sont insérées, le schéma de la base de données est modifié ou pour créer une base de données si elle n'existe pas.

mode

Le mode du fichier. Devrait être utilisé pour ouvrir une base de données en mode lecture seule. Actuellement, ce paramètre est ignoré par la bibliothèque sqlite. La valeur par défaut pour le mode est 0666 en octal et cela est la valeur recommandée.

error_message

Passée par référence et est affectée afin de contenir la description du message d'erreur qui explique pourquoi la base de données ne pouvait pas être ouverte s'il y avait une erreur.

Valeurs de retour

Retourne une ressource (de base de données) en cas de succès, FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec sqlite_open()

<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
  sqlite_query($db,'CREATE TABLE foo (bar varchar(10))');
  sqlite_query($db,"INSERT INTO foo VALUES ('fnord')");
  $result = sqlite_query($db,'select bar from foo');
  var_dump(sqlite_fetch_array($result));
} else {
  die ($sqliteerror);
}
?>

Notes

Astuce : Sur les plates-formes Unix, SQLite est sensible aux scripts qui utilisent la fonction système fork(). Si vous avez un tel script, il est recommandé que vous refermiez la ressource avant de faire le fork, et de l'ouvrir à nouveau dans le processus fils. Pour plus d'informations sur ce problème, voyez The C language interface to the SQLite library dans la section intitulée Multi-Threading And SQLite (en anglais).

Astuce : Il n'est pas recommandé d'utiliser des bases de données SQLite montées sur des partitions NFS. Comme NFS est très mauvais pour assurer le verrouillage des fichiers, vous pourriez ne pas ouvrir les bases, et, si vous réussissez, le verrouillage de la base sera indéfini.

Note : Depuis SQLite version 2.8.2, vous pouvez spécifier :memory: comme valeur de filename pour créer une base qui sera installée en mémoire vive, sur le serveur. C'est très pratique pour des traitements temporaires, car la base en mémoire sera détruire dès que le script sera terminé. Cela peut aussi être utile, lorsqu'utilisé conjointement avec la commande SQL ATTACH DATABASE, pour charger d'autres bases, et faire des requêtes liées.

Note : SQLite prend en compte le safe mode et l'option open_basedir.

Voir aussi

sqlite_popen()
sqlite_close()
sqlite_factory()

Précédent | Sommaire | Suivant
sqlite_num_rows | Niveau supérieur | sqlite_popen


sqlite_popen

(PHP 5)

sqlite_popen -- Ouvre une connexion SQlite persistante et crée la base si elle n'existe pas

Description

resource sqlite_popen ( string filename [, int mode [, string &error_message]] )

sqlite_popen() fonctionne exactement comme sqlite_open(), hormis le fait qu'elle utilise le mécanisme de ressources persistantes de PHP. Pour des détails sur la signification des paramètres, voyez la fonction sqlite_open().

sqlite_popen() va d'abord vérifier qu'il reste une connexion persistante déjà ouverte pour le fichier filename. Si elle peut en trouver une, elle l'utilisera et, sinon, elle ouvrira une nouvelle connexion.

L'intérêt de cette méthode est que vous évitez de relire la base, les schémas de tables et d'index, pour chaque page exécutée par un serveur web SAPI persistant (tous les SAPI, sauf les CGI et CLI).

Note : Si vous utilisez une connexion persistante et que la base de données est modifiée par un autre processus (via une table de cron, par exemple), et que le processus recrée la base en l'écrasant, soit par effacement et reconstruction, ou par déplacement d'une nouvelle version à la place de l'ancienne, vous pourriez obtenir des comportements inattendus lorsque vous utiliserez une vielle connexion persistante sur une nouvelle base.

Pour éviter cette situation, faites en sorte que vos processus parallèles ouvrent les bases et fassent leurs modifications dans une transaction.

Liste de paramètres

filename

Le nom du fichier de la base de données SQLite. Si le fichier n'existe pas, SQLite tentera de le créer. PHP doit avoir les permissions d'écriture du fichier si des données y sont insérées, le schéma de la base de données est modifié, ou pour créer une base de données si elle n'existe pas.

mode

Le mode du fichier. Devrait être utilisé pour ouvrir une base de données en mode lecture seule. Actuellement, ce paramètre est ignoré par la bibliothèque sqlite. La valeur par défaut pour le mode est 0666 en octal : c'est la valeur recommandée.

error_message

Passée par référence et est affectée afin de contenir la description du message d'erreur qui explique pourquoi la base de données ne pouvait pas être ouverte s'il y avait une erreur.

Valeurs de retour

Retourne une ressource (de base de données) en cas de succès, FALSE en cas d'erreur.

Voir aussi

sqlite_open()
sqlite_close()
sqlite_factory()

Précédent | Sommaire | Suivant
sqlite_open | Niveau supérieur | sqlite_prev


sqlite_prev

(PHP 5)

sqlite_prev

(no version information, might be only in CVS)

SQLiteResult->prev -- Se positionne sur le numéro de ligne précédent du jeu de résultats

Description

bool sqlite_prev ( resource result )

Style orienté objet (méthode)

class SQLiteResult {

bool prev ( void )

}

sqlite_prev() se positionne sur la ligne précédente du jeu de résultats result.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note : Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne TRUE en cas de succès ou FALSE s'il n'y a plus de ligne précédente.

Voir aussi

sqlite_has_prev()
sqlite_rewind()
sqlite_next()

Précédent | Sommaire | Suivant
sqlite_popen | Niveau supérieur | sqlite_query


sqlite_query

(PHP 5)

sqlite_query

(no version information, might be only in CVS)

SQLiteDatabase->query -- Exécute une requête SQLite et lit le résultat

Description

resource sqlite_query ( resource dbhandle, string query [, int result_type [, string &error_msg]] )

resource sqlite_query ( string query, resource dbhandle [, int result_type [, string &error_msg]] )

Style orienté objet (méthode)

class SQLiteDatabase {

SQLiteResult query ( string query [, int result_type [, string &error_msg]] )

}

Exécute la requête SQL query dans une base SQLite.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

query

La requête à être exécutée.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

error_msg

La variable spécifiée sera remplie si une erreur se produit. Ceci est important car les erreurs de syntaxes SQL ne peuvent être récupérées en utilisant la fonction sqlite_last_error().

Note : Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Valeurs de retour

Retourne une ressource de résultat ou FALSE en cas d'échec. Pour les requêtes qui retournent des lignes, la ressource de résultat peut être utilisée avec les fonctions comme sqlite_fetch_array() et sqlite_seek().

Indépendamment du type, cette fonction retournera FALSE si la requête échoue.

sqlite_query() retourne un résultat bufférisé. C'est très pratique pour des résultats de petite taille, où vous aurez besoin d'accéder aléatoirement aux lignes. Les résultats bufférisés allouent la mémoire nécessaire pour stocker tout le résultat, et ne se termineront qu'une fois toutes ces données lues. Si vous n'avez besoin que d'un accès séquentiel aux données, il est recommandé d'utiliser sqlite_unbuffered_query().

Historique

Version | Description
5.1.0 | Ajout du paramètre error_msg

Notes

Avertissement

SQLite va exécute les requêtes multiples, séparées par des points-virgules, ce qui vous permet d'exécuter plusieurs requêtes SQL en une seule fois.

Lorsque vous exécutez des requêtes multiples, la valeur retournée par cette fonction sera FALSE si une erreur s'est produite, mais indéfini dans les autres cas (cela peut être TRUE en cas de succès, ou bien elle peut retourner un résultat).

Voir aussi

sqlite_unbuffered_query()
sqlite_array_query()

Précédent | Sommaire | Suivant
sqlite_prev | Niveau supérieur | sqlite_rewind


sqlite_rewind

(PHP 5)

sqlite_rewind

(no version information, might be only in CVS)

SQLiteResult->rewind -- Place le pointeur de résultat SQLite au début

Description

bool sqlite_rewind ( resource result )

Style orienté objet (méthode)

class SQLiteResult {

bool rewind ( void )

}

sqlite_rewind() replace le pointeur à la première ligne du jeu de résultats donné.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note : Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne FALSE s'il n'y a plus de ligne dans le jeu de résultats, TRUE sinon.

Voir aussi

sqlite_next()
sqlite_current()
sqlite_seek()

Précédent | Sommaire | Suivant
sqlite_query | Niveau supérieur | sqlite_seek


sqlite_seek

(PHP 5)

sqlite_seek

(no version information, might be only in CVS)

SQLiteResult->seek -- Déplace le pointeur de résultat SQLite vers une ligne

Description

bool sqlite_seek ( resource result, int rownum )

Style orienté objet (méthode)

class SQLiteResult {

bool seek ( int rownum )

}

sqlite_seek() déplace le pointeur de résultat à la ligne rownum.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note : Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

rownum

Nombre ordinal de la ligne où se déplacer. Le numéro de la première ligne est 0

Note : Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne FALSE si la ligne n'existe pas, TRUE sinon.

Voir aussi

sqlite_next()
sqlite_current()
sqlite_rewind()

Précédent | Sommaire | Suivant
sqlite_rewind | Niveau supérieur | sqlite_single_query


sqlite_single_query

(PHP 5)

sqlite_single_query

(no version information, might be only in CVS)

SQLiteDatabase->singleQuery -- Exécute une requête et retourne soit un tableau pour une colonne unique, soit la valeur de la première ligne

Description

array sqlite_single_query ( resource db, string query [, bool first_row_only [, bool decode_binary]] )

Style orienté objet (méthode)

class SQLiteDatabase {

array singleQuery ( string query [, bool first_row_only [, bool decode_binary]] )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
sqlite_seek | Niveau supérieur | sqlite_udf_decode_binary


sqlite_udf_decode_binary

(PHP 5)

sqlite_udf_decode_binary -- Décode des données binaires, passées à une UDF SQLite

Description

string sqlite_udf_decode_binary ( string data )

sqlite_udf_decode_binary() décode des données binaires, qui auraient été encodées avec sqlite_udf_encode_binary() ou sqlite_escape_string().

Vous devez appeler cette fonction sur les paramètres passés à votre UDF, si vous devez manipuler des données binaires, car le codage binaire de PHP va masquer le contenu original de la donnée.

PHP ne fait pas cette opération de codage/décodage automatiquement, car cela réduirait considérablement les performances.

Exemples

Exemple 1. Exemple de fonction d'agrégation SQLite, compatible avec les données binaires

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten'
   );
$db = sqlite_open(':memory:');
sqlite_query($db, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($db, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string)
{
  $string = sqlite_udf_decode_binary($string);
  if (strlen($string) > $context) {
    $context = strlen($string);
  }
}

function max_len_finalize(&$context)
{
  return $context;
}

sqlite_create_aggregate($db, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));

?>

Voir aussi

sqlite_udf_encode_binary()
sqlite_create_function()
sqlite_create_aggregate()

Précédent | Sommaire | Suivant
sqlite_single_query | Niveau supérieur | sqlite_udf_encode_binary


sqlite_udf_encode_binary

(PHP 5)

sqlite_udf_encode_binary -- Encode les données binaires d'une UDF SQLite avant de les retourner

Description

string sqlite_udf_encode_binary ( string data )

sqlite_udf_encode_binary() applique le codage aux données binaires data pour qu'elles puissent être correctement retournées depuis la requête (car la bibliothèque libsqlite n'est pas compatible avec les données binaires).

S'il y a des chances que vos données ne soient pas compatibles, (par exemple, si elles contiennent le caractère NUL au milieu de la chaîne, et non pas seulement à la fin, ou si le premier caractère est un caractère 0x01) alors vous devrez appeler cette fonction pour protéger vos données.

PHP ne fait pas cette opération de codage/décodage automatiquement, pour des raisons de performances.

Note : N'utilisez pas la fonction sqlite_escape_string() pour protéger les données dans vos UDF, car cela conduira à doubler la protection. Utilisez plutôt cette fonction à la place.

Voir aussi

sqlite_udf_decode_binary()
sqlite_escape_string()
sqlite_create_function()
sqlite_create_aggregate()

Précédent | Sommaire | Suivant
sqlite_udf_decode_binary | Niveau supérieur | sqlite_unbuffered_query


sqlite_unbuffered_query

(PHP 5)

sqlite_unbuffered_query

(no version information, might be only in CVS)

SQLiteDatabase->unbufferedQuery -- Exécute une requête SQLite non bufférisée

Description

resource sqlite_unbuffered_query ( resource dbhandle, string query [, int result_type [, string &error_msg]] )

resource sqlite_unbuffered_query ( string query, resource dbhandle [, int result_type [, string &error_msg]] )

Style orienté objet (méthode)

class SQLiteDatabase {

SQLiteUnbuffered unbufferedQuery ( string query [, int result_type [, string &error_msg]] )

}

sqlite_unbuffered_query() est identique à sqlite_query() hormis le fait que le résultat retourné est une séquence croissante, qui ne peut être lue que dans un seul sens.

Cette fonction est idéale pour générer des tables HTML, où vous n'avez besoin que d'une ligne en même temps, et que vous n'avez pas à faire d'accès aléatoire aux lignes.

Note : Les fonctions telles que sqlite_seek() et sqlite_rewind() ne fonctionnent pas avec les résultats non bufférisés de cette fonction.

Liste de paramètres

dbhandle

La ressource de base de données SQLite; retournée par sqlite_open() lorsqu'utilisée de manière procédurale. Ce paramètre n'est pas requis si vous utilisez la méthode orientée objet.

query

La requête à être exécutée.

result_type

Le paramètre optionnel result_type accepte une constante et détermine comment le tableau retourné doit être indexé. L'utilisation de SQLITE_ASSOC retournera uniquement un tableau associatif (nom des champs) tandis que SQLITE_NUM retournera un tableau indexé numériquement (numéro ordinal des champs). SQLITE_BOTH retournera des indices numériques et associatifs. SQLITE_BOTH est la valeur par défaut pour cette fonction.

error_msg

La variable spécifiée sera remplie si une erreur se produit. Ceci est important car les erreurs de syntaxes SQL ne peuvent être récupérées en utilisant la fonction sqlite_last_error().

Note : Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Valeurs de retour

Retourne une ressource de résultat ou FALSE en cas d'échec.

sqlite_unbuffered_query() retourne un jeu de résultats séquentiel d'avancement seul qui ne peut être utilisé que pour lire chaque ligne, l'une après l'autre.

Historique

Version | Description
5.1.0 | Ajout du paramètre error_msg

Voir aussi

sqlite_query()

Précédent | Sommaire | Suivant
sqlite_udf_encode_binary | Niveau supérieur | sqlite_valid


sqlite_valid

(PHP 5)

sqlite_valid

(no version information, might be only in CVS)

SQLiteResult->valid

(no version information, might be only in CVS)

SQLiteUnbuffered->valid -- Retourne si oui ou non il reste des lignes disponibles

Description

bool sqlite_valid ( resource result )

Style orienté objet (méthode)

class SQLiteResult {

bool valid ( void )

}class SQLiteUnbuffered {

bool valid ( void )

}

Recherche si d'autres lignes sont disponibles à partir de la ressource de résultat donnée.

Liste de paramètres

result

La ressource de résultat SQLite. Ce paramètre n'est pas requis lorsque vous utilisez la méthode orientée objet.

Note : Cette fonction ne fonctionnera pas sur des résultats non bufférisés.

Valeurs de retour

Retourne TRUE s'il y a encore des lignes disponibles de la ressource result ou FALSE autrement.

Voir aussi

sqlite_num_rows()
sqlite_changes()

Précédent | Sommaire | Suivant
sqlite_unbuffered_query | Niveau supérieur | Fonctions SQLite (PDO_SQLITE)


Shell2 sécurisé

Manuel PHP
Précédent Suivant

CLVIII. Shell2 sécurisé

Introduction

La liaison à la bibliothèque libssh2 fournit un accès à des ressources (shell, exécution distante, tunneling, transfert de fichiers) sur une machine distante en utilisant un transport crypté sécurisé.

Installation

Les binaires Windows peuvent être trouvés sur http://snaps.php.net/. Pour l'installation, téléchargez php_ssh2.dll dans le dossier spécifié par votre directive extension_dir du fichier php.ini. Activez-le en ajoutant extension=php_ssh2.dll dans votre fichier php.ini et redémarrez votre serveur web.

extension_dir=c:/php5/exts/
extension=php_ssh2.dll

Linux, BSD, et autres variantes *nix peuvent compiler cette extension en suivant les étapes suivantes :

  • Téléchargez et installez OpenSSL. Si vous installez OpenSSL via le système de paquetages de votre distribution, assurez-vous d'installer également les bibliothèques de développement. Elles seront typiquement paquetées sous le nom openssl-dev, openssl_devel, ou quelque chose comme cela.

  • Téléchargez et installez libssh2. Typiquement, cela signifie d'exécuter les commandes suivantes depuis les fichiers sources libssh2 : ./configure && make all install.

  • Exécutez l'installeur Pear depuis PECL/ssh2: pear install ssh2

  • Copiez le fichier ssh2.so depuis le dossier indiqué par le processus de compilation dans le dossier spécifié à l'intérieur du fichier spécifié par votre fichier php.ini, extension_dir.

  • Ajoutez extension=ssh2.so dans votre php.ini.

  • Redémarrez votre serveur web pour recharger votre configuration php.ini.

Versions de développement : Il n'y a actuellement aucune version stable de PECL/ssh2, pour forcer l'installation d'une version beta de PECL/ssh2, exécutez : pear install ssh2-beta

Compiler PECL/ssh2 sans utiliser les commandes PEAR : Plutôt que d'utiliser pear install ssh2 pour automatiquement télécharger et installer PECL/ssh2, vous pouvez télécharger l'archive depuis PECL. Depuis la racine de l'archive décompressée, exécutez : phpize && ./configure --with-ssh2 && make pour générer ssh2.so. Une fois compilé, continuez l'installation depuis l'étape 4 ci-dessus.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/ssh2.

Note : Vous avez besoin de la version 0.4 ou supérieure de la bibliothèque libssh2 (ou supérieure, lisez les notes de versions).

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

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

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

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

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

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

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

Largeur par défaut du terminal demandé par la fonction ssh2_shell().

SSH2_DEFAULT_TERM_HEIGHT (integer)

Hauteur par défaut du terminal demandé par la fonction ssh2_shell().

SSH2_DEFAULT_TERM_UNIT (integer)

Unité par défaut du terminal demandé par la fonction ssh2_shell().

SSH2_STREAM_STDIO (integer)

Flag pour que la fonction ssh2_fetch_stream() demande un sous-canal STDIO.

SSH2_STREAM_STDERR (integer)

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

Table des matières
ssh2_auth_hostbased_file -- Identification en utilisant une clé d'hôte publique
ssh2_auth_none -- Identification en tant que "none"
ssh2_auth_password -- Identification via SSH en utilisant un mot de passe en clair
ssh2_auth_pubkey_file -- Identification en utilisant une clé publique
ssh2_connect -- Connexion à un serveur SSH
ssh2_exec -- Exécute une commande sur un serveur distant
ssh2_fetch_stream -- Parcours un flux étendu de données
ssh2_fingerprint -- Récupère l'empreinte d'un serveur distant
ssh2_methods_negotiated -- Retourne une liste de méthodes négociées
ssh2_publickey_add -- Ajoute une clé publique autorisée
ssh2_publickey_init -- Initialise un Publickey Subsystem (sous-système de clé publique)
ssh2_publickey_list -- Liste les clés publiques actuellement autorisées
ssh2_publickey_remove -- Supprime un clé publique autorisée
ssh2_scp_recv -- Demande un fichier via SCP
ssh2_scp_send -- Envoie un fichier via SCP
ssh2_sftp_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ésoud 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 intéractif
ssh2_tunnel -- Ouvre un tunnel à travers un serveur distant

Précédent | Sommaire | Suivant
PDO::sqliteCreateFunction | Niveau supérieur | ssh2_auth_hostbased_file


ssh2_auth_hostbased_file

(PECL)

ssh2_auth_hostbased_file -- Identification en utilisant une clé d'hôte publique

Description

bool ssh2_auth_hostbased_file ( resource session, string username, string hostname, string pubkeyfile, string privkeyfile [, string passphrase [, string local_username]] )

Identification en utilisant une clé d'hôte publique lue depuis un fichier. Si privkeyfile est chiffré (et il doit l'être), la phrase secrète doit être fournie. Si local_username est omis, alors la valeur de username sera utilisée pour cela.

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

Note : ssh2_auth_hostbased_file() nécessite libssh2 >= 0.7 et PHP/SSH2 >= 0.7

Précédent | Sommaire | Suivant
Shell2 sécurisé | Niveau supérieur | ssh2_auth_none


ssh2_auth_none

(PECL)

ssh2_auth_none -- Identification en tant que "none"

Description

mixed ssh2_auth_none ( resource session, string username )

ssh2_auth_none() tente une identification en tant que "none", qui, habituellement, échoue (et doit échouer). La particularité de cette fonctionnalité est la suivante : le serveur doit retourner un tableau de méthodes d'identification autorisées. Si le serveur accepte l'identification "none" en tant que méthode d'identification pour l'utilisateur username, cette fonction retournera TRUE.

Exemple 1. Utilisation de ssh2_auth_none() pour récupérer 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 basée sur les mots de passe\n";
}
?>

Précédent | Sommaire | Suivant
ssh2_auth_hostbased_file | Niveau supérieur | ssh2_auth_password


ssh2_auth_password

(PECL)

ssh2_auth_password -- Identification via SSH en utilisant un mot de passe en clair

Description

bool ssh2_auth_password ( resource session, string username, string password )

ssh2_auth_password() tente une identification via SSH en utilisant un mot de passe en clair.

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

Précédent | Sommaire | Suivant
ssh2_auth_none | Niveau supérieur | ssh2_auth_pubkey_file


ssh2_auth_pubkey_file

(PECL)

ssh2_auth_pubkey_file -- Identification en utilisant une clé publique

Description

bool ssh2_auth_pubkey_file ( resource session, string username, string pubkeyfile, string privkeyfile [, string passphrase] )

ssh2_auth_pubkey_file() tente une identification en utilisant une clé publique lue depuis un fichier. Si privkeyfile est crypté (et doit l'être), la phrase-pass doit être fournie.

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

Précédent | Sommaire | Suivant
ssh2_auth_password | Niveau supérieur | ssh2_connect


ssh2_connect

(PECL)

ssh2_connect -- Connexion à un serveur SSH

Description

resource ssh2_connect ( string host [, int port [, array methods [, array callbacks]]] )

ssh2_connect() établit une connexion à un serveur SSH distant et retourne une ressource de connexion en cas de succès, FALSE sinon.

methods doit être un tableau associatif avec plus de quatre paramètres, comme décrit ci-dessous.

Tableau 1. methods doit être un tableau associatif avec n'importe quel ou tous les paramètres suivants.

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

Tableau 2. 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 cryptage à 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**

Crypt and MAC method "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.

Tableau 3. callbackss doit être un tableau associatif contenant n'importe quel ou tous les paramètres suivants.

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

Exemple 1. Ouverture d'une connexion forcant 3des-cbc lors de l'envoi de paquets, n'importe quel force aes cipher lors de la réception de paquets, aucune compression dans les deux directions, et change de clés Group1.

<?php
/* Notification à l'utilisateur si le serveur termine la connexion */
function my_ssh_disconnect($reason, $message, $language) {
  printf("Le serveur s'est déconnecté avec le code [%d] et le 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('Echec de la connexion');
?>

Une fois connecté, le client doit vérifier la clé hôte du serveur en utilisant la fonctionssh2_fingerprint(), puis s'identifier en utilisant soit un mot de passe, soit une clé publique.

Voir aussi
ssh2_fingerprint(),
ssh2_auth_none(),
ssh2_auth_password() et
ssh2_auth_pubkey_file().

Précédent | Sommaire | Suivant
ssh2_auth_pubkey_file | Niveau supérieur | ssh2_exec


ssh2_exec

(PECL)

ssh2_exec -- Exécute une commande sur un serveur distant

Description

resource ssh2_exec ( resource session, string command [, string pty [, array env [, int width [, int height [, int width_height_type]]]]] )

ssh2_exec() exécute une commande sur le serveur distant et lui alloue un canal. Retourne un flux en cas de succès, FALSE sinon.

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(),
ssh2_shell() et
ssh2_tunnel().

Précédent | Sommaire | Suivant
ssh2_connect | Niveau supérieur | ssh2_fetch_stream


ssh2_fetch_stream

(PECL)

ssh2_fetch_stream -- Parcours un flux étendu de données

Description

resource ssh2_fetch_stream ( resource channel, int streamid )

ssh2_fetch_stream() parcourt un sous-flux alternatif associé à un flux de canal SSH2.

ssh2_fetch_stream() parcourt un sous-flux alternatif associé à un flux de canal SSH2 identifié par streamid. 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).

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(),
ssh2_exec() et
ssh2_connect().

Précédent | Sommaire | Suivant
ssh2_exec | Niveau supérieur | ssh2_fingerprint


ssh2_fingerprint

(PECL)

ssh2_fingerprint -- Récupère l'empreinte d'un serveur distant

Description

string ssh2_fingerprint ( resource session [, int flags] )

ssh2_fingerprint() retourne l'empreinte d'un serveur distant depuis une session active ; par défaut en une empreinte MD5 encodée en valeurs hexadécimales ASCII.

flags peut être soit SSH2_FINGERPRINT_MD5 ou SSH2_FINGERPRINT_SHA1 associé logiquement avec SSH2_FINGERPRINT_HEX ou SSH2_FINGERPRINT_RAW. Par défaut, vaut SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX.

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("La clé hôte ne correspond pas !\n" .
      "Attaque Man-In-The-Middle possible ?");
}
?>

Précédent | Sommaire | Suivant
ssh2_fetch_stream | Niveau supérieur | ssh2_methods_negotiated


ssh2_methods_negotiated

(PECL)

ssh2_methods_negotiated -- Retourne une liste de méthodes négociées

Description

array ssh2_methods_negotiated ( resource session )

ssh2_methods_negotiated() retourne une liste de méthodes négociées.

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

Précédent | Sommaire | Suivant
ssh2_fingerprint | Niveau supérieur | ssh2_publickey_add


ssh2_scp_recv

(PECL)

ssh2_scp_recv -- Demande un fichier via SCP

Description

bool ssh2_scp_recv ( resource session, string remote_file, string local_file )

ssh2_scp_recv() copie un fichier depuis un serveur distant vers le système de fichiers local.

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

Précédent | Sommaire | Suivant
ssh2_publickey_remove | Niveau supérieur | ssh2_scp_send


ssh2_scp_send

(PECL)

ssh2_scp_send -- Envoie un fichier via SCP

Description

bool ssh2_scp_send ( resource session, string local_file, string remote_file [, int create_mode] )

ssh2_scp_send() copie un fichier depuis le système de fichiers local vers un serveur distant.

ssh2_scp_send() copie un fichier depuis le système de fichiers local vers un serveur distant. Le fichier sera créé avec le mode spécifié par create_mode.

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

Précédent | Sommaire | Suivant
ssh2_scp_recv | Niveau supérieur | ssh2_sftp_lstat


ssh2_sftp_lstat

(PECL)

ssh2_sftp_lstat -- Statue un lien symbolique

Description

array ssh2_sftp_lstat ( resource sftp, string path )

ssh2_sftp_lstat() statue un lien symbolique sur le système de fichiers distant sans suivre le lien.

ssh2_sftp_lstat() statue un lien symbolique sur le système de fichiers distant sans suivre le lien. Cette fonction est similaire à l'utilisation de la fonction lstat() avec le gestionnaire ssh2.sftp:// en PHP 5 et retourne les mêmes valeurs. Voir la documentation de la fonction stat() pour les détails concerant les valeurs retournées.

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(),
lstat() et
stat().

Précédent | Sommaire | Suivant
ssh2_scp_send | Niveau supérieur | ssh2_sftp_mkdir


ssh2_sftp_mkdir

(PECL)

ssh2_sftp_mkdir -- Crée un dossier

Description

bool ssh2_sftp_mkdir ( resource sftp, string dirname [, int mode [, bool recursive]] )

ssh2_sftp_mkdir() crée un dossier sur le système de fichiers distant.

ssh2_sftp_mkdir() crée un dossier sur le système de fichiers distant avec les permissions définies à mode. Si recursive vaut TRUE, tous les dossiers requis pour dirname seront également automatiquement créés. Cette fonction est similaire à la fonction mkdir() avec le gestionnaire ssh2.sftp://.

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

Précédent | Sommaire | Suivant
ssh2_sftp_lstat | Niveau supérieur | ssh2_sftp_readlink


ssh2_sftp_readlink

(PECL)

ssh2_sftp_readlink -- Retourne la cible d'un lien symbolique

Description

string ssh2_sftp_readlink ( resource sftp, string link )

ssh2_sftp_readlink() retourne la cible d'un lien symbolique.

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

Précédent | Sommaire | Suivant
ssh2_sftp_mkdir | Niveau supérieur | ssh2_sftp_realpath


ssh2_sftp_realpath

(PECL)

ssh2_sftp_realpath -- Résoud le chemin réel d'un chemin fourni

Description

string ssh2_sftp_realpath ( resource sftp, string filename )

ssh2_sftp_realpath() traduit un nom de fichier filename en son chemin réellement effectif sur le système de fichiers distant.

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(),
ssh2_sftp_symlink() et
ssh2_sftp_readlink().

Précédent | Sommaire | Suivant
ssh2_sftp_readlink | Niveau supérieur | ssh2_sftp_rename


ssh2_sftp_rename

(PECL)

ssh2_sftp_rename -- Renomme un fichier distant

Description

bool ssh2_sftp_rename ( resource sftp, string from, string to )

ssh2_sftp_rename() renomme un fichier sur le système de fichier distant.

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

Précédent | Sommaire | Suivant
ssh2_sftp_realpath | Niveau supérieur | ssh2_sftp_rmdir


ssh2_sftp_rmdir

(PECL)

ssh2_sftp_rmdir -- Efface un dossier

Description

bool ssh2_sftp_rmdir ( resource sftp, string dirname )

ssh2_sftp_rmdir() efface un dossier depuis le système de fichiers distant.

ssh2_sftp_rmdir() efface un dossier depuis le système de fichiers distant. Cette fonction est similaire à l'utilisation de la fonction rmdir() avec le gestionnaire ssh2.sftp://.

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

Précédent | Sommaire | Suivant
ssh2_sftp_rename | Niveau supérieur | ssh2_sftp_stat


ssh2_sftp_stat

(PECL)

ssh2_sftp_stat -- Statue un fichier sur un système de fichiers distant

Description

array ssh2_sftp_stat ( resource sftp, string path )

ssh2_sftp_stat() statue un fichier distant. Si le fichier est un lien symbolique, la fonction suivra le lien et statuera la cible.

ssh2_sftp_stat() statue un fichier distant. Si le fichier est un lien symbolique, la fonction suivra le lien et statuera la cible. Cette fonction est similaire à l'utilisation de la fonction stat() avec le gestionnaire ssh2.sftp:// en PHP 5 et retourne les mêmes valeurs. Voir la documentation de la fonction stat() pour les détails concernant les valeurs retournées.

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(),
lstat() et
stat().

Précédent | Sommaire | Suivant
ssh2_sftp_rmdir | Niveau supérieur | ssh2_sftp_symlink


ssh2_sftp_symlink

(PECL)

ssh2_sftp_symlink -- Crée un lien symbolique

Description

bool ssh2_sftp_symlink ( resource sftp, string target, string link )

ssh2_sftp_symlink() crée un lien symbolique sur le système de fichiers distant.

ssh2_sftp_symlink() crée un lien symbolique sur le système de fichiers distant pointant vers target.

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 symlink() et ssh2_sftp_readlink().

Précédent | Sommaire | Suivant
ssh2_sftp_stat | Niveau supérieur | ssh2_sftp_unlink


ssh2_sftp_unlink

(PECL)

ssh2_sftp_unlink -- Efface un fichier

Description

bool ssh2_sftp_unlink ( resource sftp, string filename )

ssh2_sftp_unlink() efface un fichier sur le système de fichier distant.

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

Précédent | Sommaire | Suivant
ssh2_sftp_symlink | Niveau supérieur | ssh2_sftp


ssh2_sftp

(PECL)

ssh2_sftp -- Initialise un sous-système SFTP

Description

resource ssh2_sftp ( resource session )

ssh2_sftp() demande un sous-système SFTP depuis un serveur déjà connecté SSH2.

Cette méthode retourne une ressource SSH2 SFTP pour utilisation avec toutes les méthodes ssh2_sftp_*() ainsi que le gestionnaire ouvert ssh2.sftp://.

Exemple 1. Ouverture d'un fichier via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);

$stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r');
?>

Voir aussi ssh2_scp_send() et ssh2_scp_recv().

Précédent | Sommaire | Suivant
ssh2_sftp_unlink | Niveau supérieur | ssh2_shell


ssh2_shell

(PECL)

ssh2_shell -- Demande un shell intéractif

Description

resource ssh2_shell ( resource session [, string term_type [, array env [, int width [, int height [, int width_height_type]]]]] )

ssh2_shell() ouvre un shell sur le serveur distant et lui alloue un flux.

ssh2_shell() ouvre un shell sur le serveur distant et lui alloue un flux. term_type doit correspondre à une des entrées du fichier /etc/termcap du système cible et vaut par défaut vanilla. env doit être passé en tant qu'un tableau associatif de paire nom/valeur à définir dans l'environnement cible.

width et height définissent la hauteur et la largeur du terminal virtuel alloué au processus du shell. width_height_type doit être soit SSH2_TERM_UNIT_CHARS, soit SSH2_TERM_UNIT_PIXELS.

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(),
ssh2_tunnel() et
ssh2_fetch_stream().

Précédent | Sommaire | Suivant
ssh2_sftp | Niveau supérieur | ssh2_tunnel


ssh2_tunnel

(PECL)

ssh2_tunnel -- Ouvre un tunnel à travers un serveur distant

Description

resource ssh2_tunnel ( resource session, string host, int port )

ssh2_tunnel() ouvre un socket vers un hôte/port arbitraire via un serveur connecté SSH.

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

Précédent | Sommaire | Suivant
ssh2_shell | Niveau supérieur | Fonctions statistics


Flux

Manuel PHP
Précédent Suivant

CLX. Flux

Introduction

Les flux ("streams" en anglais) ont été introduits en PHP 4.3.0 comme méthode de généralisation des fichiers, sockets, connexions réseau, données compressées et autres opérations du même type, qui partagent des opérations communes. Dans sa définition la plus simple, un flux est une ressource qui présente des capacités de flux : c'est-à-dire que ces objets peuvent être lus ou recevoir des écritures de manière linéaire, et dispose aussi de moyen d'accéder à des positions arbitraires dans le flux.

Un gestionnaire (dit 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 Annexe N), et, de plus, des gestionnaires spécifiques peuvent être ajoutés dans les scripts PHP avec la fonction stream_register_wrapper(), ou bien directement par une autre extension, en utilisant l'API C de Chapitre 44. 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 Annexe N 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 Annexe N pour une description des cibles des flux intégrés.

Filtres de flux

Un filtre est une fonction finale qui effectue des opérations sur les données qui sont lues ou écrites dans un flux. Un nombre arbitraire de filtres peuvent être ajoutés sur un flux. Des filtres personnalisés peuvent aussi être ajoutés avec la fonction stream_register_filter(), ou bien dans une extension avec l'API C de Chapitre 44. 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 à des gestionnaires est disponible dans la liste des gestionnaires intégrés (voyez Annexe N).

De plus, les paramètres peuvent être envoyés à un contexte en utilisant la fonction stream_context_set_params(). Actuellement, le seul paramètre de contexte supporté par PHP est notification. La valeur de ce paramètre doit être le nom d'une fonction qui sera appelée lorsqu'un événement survient pour un flux. La fonction d'alerte est appelée durant la réception de l'événement, et doit accepter 6 paramètres :

void my_notifier ( int notification_code, int severity, string message, int message_code, int bytes_transferred, int bytes_max )

notification_code et severity sont des valeurs numériques qui correspondent aux constantes STREAM_NOTIFY_* listées ci-dessous. Si un message descriptif est disponible dans un flux, les paramètres message et message_code en seront équipés. La signification de ces valeurs est dépendante du gestionnaire. bytes_transferred et bytes_max seront fournies si possible.

Installation

Les flux font partie de PHP depuis la version 4.3.0. Aucune étape supplémentaire n'est requise pour les activer.

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).
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 le flag 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 la socket. Les connexions orientées transports (comme TCP) doivent utiliser ce flag sinon la socket serveur ne sera pas activé. Utiliser ce flag 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 de connexion (UDP, par exemple).
STREAM_SOCK_RAW + | Fournit un socket raw, 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 séquencés.
STREAM_SOCK_STREAM + | Fournit un flux séquencé, deux chemins 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. Ajouté en PHP 5.2.1.
STREAM_SHUT_WR | Utilisé avec stream_socket_shutdown() pour désactiver les transmissions futures. Ajouté en PHP 5.2.1.
STREAM_SHUT_RDWR | Utilisé avec stream_socket_shutdown() pour désactiver les réceptions et transmissions futures. Ajouté en PHP 5.2.1.

Note : Les constantes marquées avec une * sont uniquement disponibles depuis PHP 5.0.0.

Note : Les constantes marquées avec une + sont disponibles depuis PHP 5.1.0 et sont faites pour être utilisées avec la fonction stream_socket_pair(). Notez que quelques-unes de ces constantes peuvent ne pas être disponibles sur votre système.

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

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("Valeur de Foo") . "&bar=" . urlencode("Valeur de Bar");

fputs($sock, "POST /form_action.php HTTP/1.0\r\n");
fputs($sock, "Host: secure.example.com\r\n");
fputs($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($sock, "Content-length: " . strlen($data) . "\r\n");
fputs($sock, "Accept: */*\r\n");
fputs($sock, "\r\n");
fputs($sock, "$data\r\n");
fputs($sock, "\r\n");

$headers = "";
while ($str = trim(fgets($sock, 4096))) {
  $headers .= "$str\n";
}

echo "\n";

$body = "";
while (!feof($sock)) {
  $body .= fgets($sock, 4096);
}

fclose($sock);
?>

Exemple 3. Ecrire 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);
?>

Table des matières
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 compartiment au corps
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_set_option -- Configure une option pour un flux/gestionnaire/contexte
stream_context_set_params -- Configure les paramètres pour un flux/gestionnaire/contexte
stream_copy_to_stream -- Copie des données depuis un flux vers un autre
stream_encoding -- Définit le jeu de caractères pour l'encodage du flux
stream_filter_append -- Attache un filtre à un flux en fin de liste
stream_filter_prepend -- Attache un filtre à un flux en début de liste
stream_filter_register -- Enregistre un filtre de flux
stream_filter_remove -- Supprime un filtre d'un flux
stream_get_contents -- Lit le reste d'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_register_wrapper -- Alias de stream_wrapper_register()
stream_resolve_include_path -- Détermine quel fichier sera ouvert lors des appels à la fonction fopen() avec un chemin relatif
stream_select -- Retourne l'équivalent de l'appel système select() sur un tableau de flux avec un délai d'expiration spécifié par tv_sec et tv_usec
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 la bufferisation de fichier pour un flux
stream_socket_accept -- Accepte une connexion sur une socket créée par stream_socket_server()
stream_socket_client -- Ouvre une connexion socket Internet ou Unix
stream_socket_enable_crypto -- Active ou non le cryptage sur une socket déjà connectée
stream_socket_get_name -- Lit le nom des sockets locale ou distante
stream_socket_pair -- Crée une paire de sockets connectées et indissociables
stream_socket_recvfrom -- Lit des données depuis une socket, connectée ou pas
stream_socket_sendto -- Envoie une message à la socket, connectée ou pas
stream_socket_server -- Crée une socket serveur Unix ou Internet
stream_socket_shutdown -- Arrête une connexion full-duplex
stream_wrapper_register -- Enregistre une enveloppe URL, implémentée comme une classe PHP
stream_wrapper_restore -- Restaure un gestionnaire d'URL supprimé
stream_wrapper_unregister -- Supprime un gestionnaire d'URL

Précédent | Sommaire | Suivant
stats_variance | Niveau supérieur | stream_bucket_append


stream_context_create

(PHP 4 >= 4.3.0, PHP 5)

stream_context_create -- Crée un contexte de flux

Description

resource stream_context_create ( [array options [, array params]] )

stream_context_create crée et retourne un contexte de flux, avec les paramètres fournis par options.

Le paramètre options doit être un tableau associatif, au format $arr['wrapper']['option'] = $value. Par défaut, c'est un tableau vide.

params doit être un tableau associatif de format $arr['parameter'] = $value. Référez-vous à la documentation de la fonction stream_context_set_params() pour une liste des paramètres de flux standards.

Note : L'argument params a été ajouté en PHP 6.0.0.

Exemple 1. Exemple avec stream_context_create()

<?php

$opts = array (
  'http'=>array (
    'method' => 'GET',
    'header' => "Accept-language: en\r\n" .
                "Cookie: foo=bar\r\n"
    )
);

$context = stream_context_create($opts);

// Envoie une requête HTTP à www.example.com
// avec des en-têtes supplémentaires
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);

?>

Voir aussi stream_context_set_params() et la liste des gestionnaires avec des options de contexte (Annexe N).

Précédent | Sommaire | Suivant
stream_bucket_prepend | Niveau supérieur | stream_context_get_default


stream_context_get_default

(PHP 5 >= 5.1.0RC1)

stream_context_get_default -- Lit le contexte par défaut des flux

Description

resource stream_context_get_default ( [array options] )

stream_context_get_default() retourne le contexte par défaut qui est utilisé avec les fonctions de fichiers comme fopen(), file_get_contents(), etc, lorsqu'elles sont utilisées sans paramètre de contexte. Les options du contexte par défaut peuvent être spécifiées optionnellement avec la même syntaxe que pour stream_context_create().

options doit être un tableau associatif de tableaux associatifs, au format $arr['wrapper']['option'] = $value.

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() et les gestionnaires supportés par les contextes (Annexe N).

Précédent | Sommaire | Suivant
stream_context_create | Niveau supérieur | stream_context_get_options


stream_context_get_options

(PHP 4 >= 4.3.0, PHP 5)

stream_context_get_options -- Lit la valeur des options pour un flux/gestionnaire/contexte

Description

array stream_context_get_options ( resource stream_or_context )

stream_context_get_options() retourne un tableau contenant la liste des options pour le flux ou le contexte stream|context.

Précédent | Sommaire | Suivant
stream_context_get_default | Niveau supérieur | stream_context_set_option


stream_context_set_option

(PHP 4 >= 4.3.0, PHP 5)

stream_context_set_option -- Configure une option pour un flux/gestionnaire/contexte

Description

bool stream_context_set_option ( resource stream_or_context, string wrapper, string option, mixed value )

bool stream_context_set_option ( resource stream_or_context, array options )

stream_context_set_option() configure l'option option avec la nouvelle valeur value le flux ou le gestionnaire ou le contexte wrapper.

Précédent | Sommaire | Suivant
stream_context_get_options | Niveau supérieur | stream_context_set_params


stream_context_set_params

(PHP 4 >= 4.3.0, PHP 5)

stream_context_set_params -- Configure les paramètres pour un flux/gestionnaire/contexte

Description

bool stream_context_set_params ( resource stream_or_context, array params )

stream_context_set_params() configure les paramètres pour un flux, un gestionnaire ou un contexte. params doit être un tableau associatif avec la structure suivante : $params['nom_parametre'] = "valeur_parametre";.

Tableau 1. Paramètres

Paramètres | Usage
notification | Nom de la fonction utilisateur appelée dès qu'un flux génère une notification.
options | Tableau d'options, comme dans la fonction stream_context_create().

Précédent | Sommaire | Suivant
stream_context_set_option | Niveau supérieur | stream_copy_to_stream


stream_copy_to_stream

(PHP 5)

stream_copy_to_stream -- Copie des données depuis un flux vers un autre

Description

int stream_copy_to_stream ( resource source, resource dest [, int maxlength [, int offset]] )

Fait une copie jusqu'à maxlength octets de données depuis la position courante du pointeur (ou depuis la position offset, si spécifié) dans le flux source vers le paramètre dest. Si maxlength n'est pas spécifié, tout le reste du flux source sera copié.

Liste de paramètres

source

Le flux de source

dest

Le flux de destination

maxlength

Nombre maximal d'octets à copier

offset

L'offset où démarrer la copie de données

Valeurs de retour

Retourne le nombre total d'octets copiés.

Historique

Version | Description
5.1.0 | Ajout du paramètre offset

Exemples

Exemple 1. Exemple avec stream_copy_to_stream()

<?php
$src = fopen('http://www.example.com', 'r');
$dest1 = fopen('first1k.txt', 'w');
$dest2 = fopen('remainder.txt', 'w');

echo stream_copy_to_stream($src, $dest1, 1024) . " octets copiés vers first1k.txt\n";
echo stream_copy_to_stream($src, $dest2) . " octets copiés vers remainder.txt\n";

?>

Voir aussi

copy()

Précédent | Sommaire | Suivant
stream_context_set_params | Niveau supérieur | stream_encoding


stream_filter_append

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_append -- Attache un filtre à un flux en fin de liste

Description

resource stream_filter_append ( resource stream, string filtername [, int read_write [, mixed params]] )

stream_filter_append() ajoute le filtre filtername à la liste de filtres attachés au flux stream. Ce filtre sera ajouté avec les paramètres spécifiés dans params à la fin de cette liste et sera donc appelé en dernier durant les opérations de flux. Pour ajouter un filtre au début de la liste, utilisez la fonction stream_filter_prepend().

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. Voyez la fonction stream_filter_append() pour un exemple de l'utilisation de ce paramètre.

Depuis PHP 5.0.1, cette fonction retourne une ressource qui peut être utilisée pour se référer à cette instance de filtre durant l'appel à la fonction stream_filter_remove(). Dans les versions antérieures à PHP 5.1.0, cette fonction retourne FALSE en cas de succès, FALSE sinon.

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

*/
?>

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

Voir aussi
stream_filter_register(),
stream_filter_prepend() et
stream_get_filters().

Précédent | Sommaire | Suivant
stream_encoding | Niveau supérieur | stream_filter_prepend


stream_filter_prepend

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_prepend -- Attache un filtre à un flux en début de liste

Description

resource stream_filter_prepend ( resource stream, string filtername [, int read_write [, mixed params]] )

stream_filter_prepend() ajoute le filtre filtername à la liste de filtres attachés au flux stream. Ce filtre sera ajouté avec les paramètres spécifiés dans params à la fin de cette liste et sera donc appelé en dernier durant les opérations de flux. Pour ajouter un filtre à la fin de la liste, utilisez la fonction stream_filter_prepend().

Par défaut, stream_filter_prepend() 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. Voyez la fonction stream_filter_append() pour un exemple de l'utilisation de ce paramètre.

Depuis PHP 5.0.1, cette fonction retourne une ressource qui peut être utilisée pour se référer à cette instance de filtre durant l'appel à la fonction stream_filter_remove(). Dans les versions antérieures à PHP 5.1.0, cette fonction retourne FALSE en cas de succès, FALSE sinon.

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

Voir aussi stream_register_filter() et stream_filter_append().

Précédent | Sommaire | Suivant
stream_filter_append | Niveau supérieur | stream_filter_register


stream_filter_register

(PHP 5)

stream_filter_register -- Enregistre un filtre de flux

Description

bool stream_filter_register ( string filtername, string classname )

stream_filter_register() vous permet d'implémenter votre propre filtre de flux, à utiliser avec les fonctions d'accès aux données externes (comme fopen(), fread(), etc.).

Pour ce faire, vous devez définir une classe qui étend la classe php_user_fitler avec les membres et méthodes définies ci-dessous. 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 telles que désiré. Vous devez implémenter les méthodes telles que décrit ci-dessous, sous peine de comportements indéfinis.

stream_filter_register() retourne FALSE si le nom de filtre filtername est déjà utilisé.

int filter ( resource in, resource out, int &consumed, bool closing )

Cette méthode est appelée à chaque fois que des données sont lues ou écrites dans le flux attaché (avec des fonctions comme fread() ou fwrite()). Le paramètre in est une ressource qui pointe sur une bucket brigade qui contient un ou plusieurs objet bucket contenant les données à filtrer. out est une autre ressource qui pointe sur une bucket brigade dans laquelle les données seront placées. consumed, qui doit toujours être déclaré par référence, doit être incrémenté de la taille de données que votre filtre lit et modifie. Dans la plupart des cas, cela signifie que vous devrez incrémenter consumed avec $bucket->datalen pour chaque $bucket. Si le flux est en cours de fermeture (et, par conséquent, cela sera le dernier passage dans la chaîne de filtres), le paramètre closing vaudra TRUE La méthode filter doit retourner l'une des trois valeurs suivantes :

Valeur retournée | Signification
PSFS_PASS_ON | Indique la réussite ; les données sont dans le paramètre out, une bucket brigade.
PSFS_FEED_ME | Indique que le filtre n'a aucune donnée à retourner, et requiert d'autres données du flux.
PSFS_ERR_FATAL (défaut) | Indique que le flux a rencontré une erreur fatale, et ne peut continuer. Si aucune valeur n'est retournée par cette méthode, PSFS_ERR_FATAL est utilisé.

bool onCreate ( void )

Cette méthode est appelée durant l'instanciation du filtre. Si votre filtre alloue ou initialise d'autres ressources (comme des buffers), c'est le moment de le faire. Votre implémentation de cette méthode doit retourner FALSE en cas d'erreur et TRUE en cas de succès.

Lorsque votre filtre est instancié pour la première fois et que yourfilter->onCreate() est appelé, un nombre de propriétés est disponible comme montré dans la table ci-dessous.

Propriété | Contenu
FilterClass->filtername | Une chaîne contenant le nom du filtre est instanciée. Les filtres peuvent être enregistrés sous de noms multiples ainsi qu'avec des jokers. Utilisez cette propriété pour déterminer qu'elle est le nom utilisé.
FilterClass->params | Le contenu du paramètre passé params à la fonction stream_filter_append() ou la fonction stream_filter_prepend().

void onClose ( void )

Cette méthode est appelée durant l'extinction du filtre (généralement, lorsque le flux est fermé), et est exécutée après l'appel de la fonction flush. Si aucune ressource n'a été allouée ou créée durant onCreate(), c'est le moment de les libérer.

L'exemple ci-dessous implémente un filtre appelé rot13, sur le flux foo-bar.txt, qui réalise un chiffrement de type ROT-13 sur toutes les lettres lues ou écrites dans le flux.

Exemple 1. Filtre sur les lettres majuscules sur le flux foo-bar.txt

<?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(),
stream_filter_prepend() et
stream_filter_append().

Précédent | Sommaire | Suivant
stream_filter_prepend | Niveau supérieur | stream_filter_remove


stream_filter_remove

(PHP 5 >= 5.1.0RC1)

stream_filter_remove -- Supprime un filtre d'un flux

Description

bool stream_filter_remove ( resource stream_filter )

stream_filter_append() supprime le dernier filtre ajouté au flux stream_filter avec stream_filter_prepend() ou stream_filter_append(). Toutes les données qui sont dans les buffers seront transmises au filtre, avant de le supprimer.

Exemple 1. Filtrage dynamique d'un flux

<?php
/* Ouvre un fichier de test pour lecture et écriture */
$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);

/* Affichage prévu
   ---------------

Prpv rfg un test

 */
?>

Voir aussi
stream_filter_register(),
stream_filter_append() et
stream_filter_prepend().

Précédent | Sommaire | Suivant
stream_filter_register | Niveau supérieur | stream_get_contents


stream_get_contents

(PHP 5)

stream_get_contents -- Lit le reste d'un flux dans une chaîne

Description

string stream_get_contents ( resource handle [, int maxlength [, int offset]] )

Identique à file_get_contents(), sauf que stream_get_contents() opère sur un pointeur de fichier déjà ouvert et retourne le contenu restant, allant jusqu'à maxlength octets, dans une chaîne et commençant à la position offset.

Liste de paramètres

handle (resource)

Une ressource de flux (e.g. retournée par la fonction fopen())

maxlength (entier)

Le nombre maximal d'octets à lire. Par défaut, -1 (lit tout le contenu restant du buffer).

offset (entier)

Se déplace à la position spécifiée avant la lecture. Ajouté en PHP 5.1.0.

Valeurs de retour

Retourne une chaîne de caractères ou FALSE en cas d'échec.

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

?>

Voir aussi

fgets()
fread()
fpassthru()

Note : Cette fonction gère les chaînes binaires.

Précédent | Sommaire | Suivant
stream_filter_remove | Niveau supérieur | stream_get_filters


stream_get_filters

(PHP 5)

stream_get_filters -- Liste les filtres enregistrés

Description

array stream_get_filters ( void )

stream_get_filters retourne un tableau indexé contenant la liste des filtres de flux disponibles sur le système.

Exemple 1. Exemple avec stream_get_filters()

<?php
$streamlist = stream_get_filters();
print_r($streamlist);
?>

L'affichage sera semblable a ce qui suit. Note : il peut y avoir plus ou moins de filtres suivant votre version de PHP

Array (
  [0] => string.rot13
  [1] => string.toupper
  [2] => string.tolower
  [3] => string.base64
  [4] => string.quoted-printable
)

Voir aussi stream_filter_register() et stream_get_wrappers().

Précédent | Sommaire | Suivant
stream_get_contents | Niveau supérieur | stream_get_line


stream_get_line

(PHP 5)

stream_get_line -- Lit une ligne dans un flux

Description

string stream_get_line ( resource handle, int length [, string ending] )

stream_get_line() lit une ligne de taille maximale length dans le flux handle. La lecture se termine lorsque length ont été lus, ou que la chaîne ending est trouvée dans le flux (et qui n'est pas incluse dans la valeur retournée), ou la fin du fichier (le premier des trois).

Si une erreur survient, stream_get_line() retourne FALSE.

stream_get_line() est presque identique à fgets() hormis le fait qu'elle autorise d'autres délimiteur de fin de ligne que \n, \r et \r\n, et ne retourne pas le délimiteur lui-même.

Voir aussi
fread(),
fgets() et
fgetc().

Précédent | Sommaire | Suivant
stream_get_filters | Niveau supérieur | stream_get_meta_data


stream_get_meta_data

(PHP 4 >= 4.3.0, PHP 5)

stream_get_meta_data -- Lit les en-têtes et données méta des flux

Description

array stream_get_meta_data ( resource stream )

stream_get_meta_data retourne les informations disponibles sur le flux stream. Ce flux peut être n'importe quel flux créé par fopen(), fsockopen() et pfsockopen(). 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.

Les éléments suivants ont été ajoutés en PHP 4.3 :

  • 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 Annexe N pour plus d'informations sur les gestionnaires.

  • wrapper_data (mixed) - des données spécifiques au gestionnaire liés à ce flux. Voyez Annexe N pour plus d'informations sur les gestionnaires et leurs données.

  • filters (tableau) - un tableau contenant les noms de tous les filtres qui ont été attachés à ce flux. La documentation sur les filtres peut être trouvée sur l'annexe concernant les filtres.

Note : Cette fonction a été introduite en PHP 4.3, mais avant cette version, socket_get_status() était utilisée pour lire les 4 premiers éléments, uniquement pour les sockets.

En PHP 4.3 et plus récent, socket_get_status() est un alias de la fonction de cette fonction.

Note : Cette fonction n'est pas utilisable avec les sockets créées par les fonctions de l'extension socket.

Les éléments suivants ont été ajoutés en PHP 5.0:

  • mode (chaîne de caractères) - le type d'accès requis pour ce flux ( oir le tableau 1 de la référence de la fonction fopen())

  • seakable (booléen) - si on peut rechercher dans le flux courant.

  • uri (chaîne de caractères) - l'URI/nom de fichier associé à ce flux.

Précédent | Sommaire | Suivant
stream_get_line | Niveau supérieur | stream_get_transports


stream_get_transports

(PHP 5)

stream_get_transports -- Liste les gestionnaires de transports de sockets disponibles

Description

array stream_get_transports ( void )

stream_get_transports() retourne un tableau indexé contenant les noms des transports de sockets disponibles pour le système.

Exemple 1. Exemple avec stream_get_transports()

<?php
$xportlist = stream_get_transports();
print_r($xportlist);
?>

L'affichage sera identique au suivant. Note : il peut y avoir plus ou moins de transports dans votre version de PHP.

Array (
  [0] => tcp
  [1] => udp
  [2] => unix
  [3] => udg
)
?>

Voir aussi stream_get_filters() et stream_get_wrappers().

Précédent | Sommaire | Suivant
stream_get_meta_data | Niveau supérieur | stream_get_wrappers


stream_get_wrappers

(PHP 5)

stream_get_wrappers -- Liste les gestionnaires de flux

Description

array stream_get_wrappers ( void )

stream_get_wrappers retourne un tableau indexé contenant le nom de tous les gestionnaires de flux disponibles sur le système.

Exemple 1. Exemple avec stream_get_wrappers()

<?php
print_r(stream_get_wrappers());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => php
    [1] => file
    [2] => http
    [3] => ftp
    [4] => compress.bzip2
    [5] => compress.zlib
)

Exemple 2. Vérification de l'existence d'un gestionnaire de flux

<?php
// Vérification de l'existence d'un gestionnaire de flux bzip2
if (in_array('compress.bzip2', stream_get_wrappers())) {
    echo 'compress.bzip2:// support actif.';
} else {
    echo 'compress.bzip2:// support inactif.';
}
?>

Voir aussi stream_wrapper_register().

Précédent | Sommaire | Suivant
stream_get_transports | Niveau supérieur | stream_register_wrapper


stream_register_wrapper

(PHP 4 >= 4.3.0, PHP 5)

stream_register_wrapper -- Alias de stream_wrapper_register()

Description

Cette fonction est un alias de stream_wrapper_register(). Elle est incluse pour assurer la compatibilité avec PHP 4.3.0 et PHP 4.3.1 uniquement. stream_wrapper_register() doit être utilisée à la place.

Précédent | Sommaire | Suivant
stream_get_wrappers | Niveau supérieur | stream_resolve_include_path


stream_select

(PHP 4 >= 4.3.0, PHP 5)

stream_select -- Retourne l'équivalent de l'appel système select() sur un tableau de flux avec un délai d'expiration spécifié par tv_sec et tv_usec

Description

int stream_select ( array &read, array &write, array &except, int tv_sec [, int tv_usec] )

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.

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

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

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 quel flux ont actuellement changé de statut.

Les paramètres tv_sec et tv_usec forment le délai d'expiration, tv_sec spécifie le nombre de secondes tandis que tv_usec, le nombre de microsecondes. Le paramètre timeout représente la limite supérieure du temps que stream_select() doit attendre avant de se terminer. Si tv_sec et tv_usec sont tous les deux définis à 0, stream_select() n'attendra pas de données - à la place, elle se terminera immédiatement, indiquant le statut courant du flux. Si tv_sec vaut NULL, stream_select() peut se bloquer indéfiniment, se terminant uniquement lorsqu'un événement sur un des flux surveillés survient (ou si un signal interrompt l'appel système).

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

Avertissement

Utiliser comme délai d'expiration une valeur de 0 vous permet de renvoyer instantanément le statut des flux, sinon, ce n'est pas une bonne idée d'utiliser une valeur de 0 dans une boucle, ce qui ferait que votre script consommerait beaucoup trop de temps processeur.

Il est préférable de spécifier une valeur de délai d'expiration de quelques secondes. Même si vous avez besoin d'exécuter d'autres codes en même temps, l'utilisation d'un délai d'expiration de moins de 200000 microsecondes devrait vous aider à réduire le temps processeur de votre script.

Souvenez-vous que le délai d'expiration représente le temps maximal qui s'écoulera ; stream_select() se terminera dès que les flux désirés seront prêts à être utilisés.

Vous n'êtes pas obligé de passer tous les tableaux à la fonction stream_select(). Vous pouvez en omettre certains, en utilisant un tableau vide ou la valeur NULL. N'oubliez pas que ces tableaux sont passés par référence et qu'ils seront modifiés lorsque stream_select() s'achèvera.

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 terminera 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é  */
}
?>

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 : Notes aux utilisateurs de Windows : stream_select() utilisé sur une pipe retournée par proc_open() peut causer la perte de données sous Windows 98.

Utiliser la fonction stream_select() sur un descripteur de fichier retourné par proc_open() échoura et retournera FALSE sous Windows.

Voir aussi stream_set_blocking().

Précédent | Sommaire | Suivant
stream_resolve_include_path | Niveau supérieur | stream_set_blocking


stream_set_blocking

(PHP 4 >= 4.3.0, PHP 5)

stream_set_blocking -- Configure le mode bloquant d'un flux

Description

bool stream_set_blocking ( resource stream, int mode )

stream_set_blocking() configure le mode bloquant du flux stream. Si mode vaut 0, stream sera configuré en mode non-bloquant, et s'il vaut 1, 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.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

stream_set_blocking() était appelée
set_socket_blocking() et plus tard
socket_set_blocking() mais ces appellations
sont obsolètes.

Note : Avant PHP 4.3, cette fonction ne fonctionnait que sur les flux utilisant des sockets. Depuis PHP 4.3, cette fonction peut fonctionner avec n'importe quel flux qui supporte le mode non-bloquant (actuellement, les fichiers réguliers et les flux de sockets).

Voir aussi stream_select().

Précédent | Sommaire | Suivant
stream_select | Niveau supérieur | stream_set_timeout


stream_set_timeout

(PHP 4 >= 4.3.0, PHP 5)

stream_set_timeout -- Configure la durée d'expiration d'un flux

Description

bool stream_set_timeout ( resource stream, int seconds [, int microseconds] )

stream_set_timeout() configure la durée d'expiration du flux stream, exprimé comme la durée de seconds secondes et microseconds micro-secondes.

Lorsque le flux se termine, la clé 'timed_out' du tableau retourné par stream_get_meta_data() est défini à TRUE, cependant, aucune erreur/alerte n'est générée.

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

}
?>

Note : Depuis PHP 4.3, cette fonction peut (potentiellement) fonctionner avec n'importe quel flux. Avant PHP 4.3, les flux utilisant des sockets sont les seuls qui soient supportés dans le coeur de PHP, même si les autres extensions pourraient supporter cette fonction.

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

Précédent | Sommaire | Suivant
stream_set_blocking | Niveau supérieur | stream_set_write_buffer


stream_set_write_buffer

(PHP 4 >= 4.3.0, PHP 5)

stream_set_write_buffer -- Configure la bufferisation de fichier pour un flux

Description

int stream_set_write_buffer ( resource stream, int buffer )

fwrite() est habituellement configurée avec un buffer de 8 ko. Cela signifie que si deux processus veulent écrire dans le même flux de sortie (par exemple, un fichier), ils font une pause tous les 8 ko pour laisser l'autre écrire aussi. stream_set_write_buffer() configure la taille du buffer des opérations d'écriture pour le flux stream avec la nouvelle valeur de buffer octets. Si buffer vaut 0, les opérations d'écriture ne seront pas bufferisées. Cela signifie que chaque appel à fwrite() doit être terminé pour qu'un autre processus soit autorisé à écrire dans le fichier.

stream_set_write_buffer() retourne 0 en cas de succès, et EOF si la requête échoue.

L'exemple ci-dessous illustre l'utilisation de stream_set_write_buffer() pour créer un flux non bufferisé.

Exemple 1. Exemple avec stream_set_write_buffer()

$fp = fopen($file, "w");
if ($fp) {
  stream_set_write_buffer($fp, 0);
  fputs($fp, $output);
  fclose($fp);
}

Voir aussi fopen() et fwrite().

Précédent | Sommaire | Suivant
stream_set_timeout | Niveau supérieur | stream_socket_accept


stream_socket_accept

(PHP 5)

stream_socket_accept -- Accepte une connexion sur une socket créée par stream_socket_server()

Description

resource stream_socket_accept ( resource server_socket [, float timeout [, string &peername]] )

stream_socket_accept() accepte une connexion sur une socket créée précédemment avec stream_socket_server(). Si timeout est spécifié, le délai d'expiration de la socket sera remplacé par cette valeur, exprimée en secondes. L'adresse du client qui est connecté est retourné dans peername, si cette valeur est accessible pour ce type de transport.

peername peut aussi être déterminé plus tard avec stream_socket_get_name().

Si stream_socket_accept() échoue, elle retournera FALSE.

Avertissement

Cette fonction ne doit pas être utilisée avec un serveur de socket UDP. Il est recommandé d'utiliser à la place stream_socket_recvfrom() et stream_socket_sendto().

Voir aussi
stream_socket_server(),
stream_socket_get_name(),
stream_set_blocking(),
stream_set_timeout(),
fgets(),
fgetss(),
fputs(),
fclose(),
feof() et
l'extension CURL.

Précédent | Sommaire | Suivant
stream_set_write_buffer | Niveau supérieur | stream_socket_client


stream_socket_client

(PHP 5)

stream_socket_client -- Ouvre une connexion socket Internet ou Unix

Description

resource stream_socket_client ( string remote_socket [, int &errno [, string &errstr [, float timeout [, int flags [, resource context]]]]] )

stream_socket_client() initie un flux ou une connexion datagramme avec la destination remote_socket. Le type de socket créée est déterminé par le transport spécifié avec le formatage URL suivant : transport://target. Pour une socket Internet, (AF_INET) comme TCP et UDP, la cible de remote_socket sera une adresse IP ou un nom d'hôte. Pour une socket Unix, la cible doit être un fichier de socket du système.

Le paramètre optionnel timeout sert à imposer un délai d'expiration, en secondes, à l'appel système.

flags est un 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_ASYNC_CONNECT (défaut), STREAM_CLIENT_ASYNC_CONNECT et STREAM_CLIENT_PERSISTENT.

Note : Si vous n'avez pas besoin de mettre de délai d'expiration pour les opérations via la socket, utilisez la fonction stream_set_timeout(), car timeout de stream_socket_client() ne s'applique que lors de la connexion à la socket.

stream_socket_client() retourne une ressource de flux,
qui peut être utilisée avec d'autres fonctions de fichiers, comme
fgets(), fgetss(),
fputs(), fclose() et
feof()).

Si l'appel échoue, stream_socket_client() va retourner FALSE et si les paramètres optionnels errno et errstr sont fournis, ils recevront l'erreur exacte qui est survenue dans le système lors de l'appel à connect(). Si la valeur retournée dans errno est 0 et que la fonction a retourné FALSE, c'est une indication que l'erreur est survenue avant l'appel à connect(). Cela est probablement dû à un problème d'initialisation de la socket. Notez que errno eterrstr doivent être passés par référence.

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 Annexe P pour une liste de transports natifs.

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

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 {
    fputs($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);
}
?>
L'exemple ci-dessous vous montre comment lire la date et l'heure sur un service UDP de type "daytime" (port 13) sur votre propre machine :

Exemple 2. Utilisation de connexions UDP

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

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 cette 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 la 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.

Voir aussi
stream_socket_server(),
stream_set_blocking(),
stream_set_timeout(),
fgets(),
fgetss(),
fputs(),
fclose(),
feof() et
l'extension CURL.

Précédent | Sommaire | Suivant
stream_socket_accept | Niveau supérieur | stream_socket_enable_crypto


stream_socket_enable_crypto

(PHP 5 >= 5.1.0RC1)

stream_socket_enable_crypto -- Active ou non le cryptage sur une socket déjà connectée

Description

mixed stream_socket_enable_crypto ( resource stream, bool enable [, int crypto_type [, resource session_stream]] )

Lorsqu'appelé avec le paramètre crypto_type, stream_socket_enable_crypto() active le cryptage sur le flux stream en utilisant la méthode spécifiée.

Valeurs possibles pour le paramètre crypto_type

  • STREAM_CRYPTO_METHOD_SSLv2_CLIENT

  • STREAM_CRYPTO_METHOD_SSLv3_CLIENT

  • STREAM_CRYPTO_METHOD_SSLv23_CLIENT

  • STREAM_CRYPTO_METHOD_TLS_CLIENT

  • STREAM_CRYPTO_METHOD_SSLv2_SERVER

  • STREAM_CRYPTO_METHOD_SSLv3_SERVER

  • STREAM_CRYPTO_METHOD_SSLv23_SERVER

  • STREAM_CRYPTO_METHOD_TLS_SERVER

Une fois les paramètres de cryptage définis, le crytage peut être activé et désactivé dynamiquement en passant TRUE ou FALSE dans le paramètre enable.

Si ce flux doit être défini avec les paramètres d'un flux actif crypté, passez la ressource de ce flux au paramètre session_stream.

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

Exemple 1. Exemple avec stream_socket_enable_crypto()

<?php
$fp = stream_socket_client("tcp://monproto.example.com:31337", $errno, $errstr, 30);
if (!$fp) {
  die("Impossible de se connecter : $errstr ($errno)");
}

/* Activation du cryptage durant l'identification */
stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp, "USER Linus\r\n");
fwrite($fp, "PASS secret\r\n");

/* Désactivation du cryptage pour le reste */
stream_socket_enable_crypto($fp, false);

while ($motd = fgets($fp)) {
  echo $motd;
}
fclose($fp);
?>

Référence CXII, OpenSSL et Annexe P.

Précédent | Sommaire | Suivant
stream_socket_client | Niveau supérieur | stream_socket_get_name


stream_socket_get_name

(PHP 5)

stream_socket_get_name -- Lit le nom des sockets locale ou distante

Description

string stream_socket_get_name ( resource handle, bool want_peer )

stream_socket_get_name() retourne le nom de la socket locale ou distante pour la connexion handle. Si want_peer vaut TRUE, le nom de la socket distante est retourné. S'il vaut FALSE, c'est celui de la socket locale.

Voir aussi stream_socket_accept().

Précédent | Sommaire | Suivant
stream_socket_enable_crypto | Niveau supérieur | stream_socket_pair


stream_socket_pair

(PHP 5 >= 5.1.0RC1)

stream_socket_pair -- Crée une paire de sockets connectées et indissociables

Description

array stream_socket_pair ( int domain, int type, int protocol )

stream_socket_pair() crée une paire de sockets connectées et indissociables. Cette fonction est communément utilisée en IPC (InterProcess Communication).

Liste de paramètres

domain

La famille de protocole à utiliser : STREAM_PF_INET, STREAM_PF_INET6 ou STREAM_PF_UNIX

type

Le type de communication à utiliser : STREAM_SOCK_DGRAM, STREAM_SOCK_RAW, STREAM_SOCK_RDM, STREAM_SOCK_SEQPACKET ou STREAM_SOCK_STREAM

protocol

Le protocole à utiliser : STREAM_IPPROTO_ICMP, STREAM_IPPROTO_IP, STREAM_IPPROTO_RAW, STREAM_IPPROTO_TCP ou STREAM_IPPROTO_UDP

Note : Consultez la liste des constantes de flux pour plus de détails sur chaque constante.

Valeurs de retour

Retourne un tableau contenant les ressources des deux sockets en cas de succès, ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec stream_socket_pair()

Cet exemple montre une utilisation basique de stream_socket_pair() dans une communication inter-processus.

<?php

$sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP);
$pid     = pcntl_fork();

if ($pid == -1) {
  die('Impossible de forker');

} else if ($pid) {
  /* parent */
  fclose($sockets[0]);

  fwrite($sockets[1], "PID enfant : $pid\n");
  echo fgets($sockets[1]);

  fclose($sockets[1]);

} else {
  /* enfant */
  fclose($sockets[1]);

  fwrite($sockets[0], "message de l'enfant\n");
  echo fgets($sockets[0]);

  fclose($sockets[0]);
}

     ?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

PID enfant : 1378
message de l'enfant

Précédent | Sommaire | Suivant
stream_socket_get_name | Niveau supérieur | stream_socket_recvfrom


stream_socket_recvfrom

(PHP 5)

stream_socket_recvfrom -- Lit des données depuis une socket, connectée ou pas

Description

string stream_socket_recvfrom ( resource socket, int length [, int flags [, string &address]] )

stream_socket_recvfrom() accepte les données depuis une socket distante, jusqu'à un total de length octets. Si le paramètre address est fourni, il recevra l'adresse de la socket distante.

La valeur de flags peut être la combinaison des constantes suivantes :

Tableau 1. Valeurs possibles pour flags

STREAM_OOB | Traite les données en mode OOB (out-of-band).
STREAM_PEEK | Lit des données depuis la socket, mais n'utilise pas le buffer. Les prochains appels à fread() ou stream_socket_recvfrom() liront les mêmes données.

Exemple 1. Exemple avec stream_socket_recvfrom()

<?php
/* Ouvre une 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);
?>

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ée (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(),
stream_socket_client() et
stream_socket_server().

Précédent | Sommaire | Suivant
stream_socket_pair | Niveau supérieur | stream_socket_sendto


stream_socket_sendto

(PHP 5)

stream_socket_sendto -- Envoie une message à la socket, connectée ou pas

Description

int stream_socket_sendto ( resource socket, string data [, int flags [, string address]] )

stream_socket_sendto() envoie les données data à la socket socket. L'adresse de la socket est spécifiée lorsque la socket est créée, et sera utilisée si une autre adresse n'est pas spécifiée dans le paramètre address.

La valeur de flags peut être la combinaison des constantes suivantes :

Tableau 1. Valeurs possibles pour flags

STREAM_OOB Traite les données en mode OOB (out-of-band).

Exemple 1. Exemple avec stream_socket_sendto()

<?php
/* Ouvre une 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(),
stream_socket_client() et
stream_socket_server().

Précédent | Sommaire | Suivant
stream_socket_recvfrom | Niveau supérieur | stream_socket_server


stream_socket_server

(PHP 5)

stream_socket_server -- Crée une socket serveur Unix ou Internet

Description

resource stream_socket_server ( string local_socket [, int &errno [, string &errstr [, int flags [, resource context]]]] )

stream_socket_server() crée un flux ou un datagramme sur la socket spécifiée local_socket. Le type de socket créée est déterminé par le transport spécifié avec le formatage URL suivant : transport://target. Pour une 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 une socket Unix, la cible doit être un fichier de socket du système. flags est un champ de bits qui peut être la combinaison de n'importe quelle option de connexion. La valeur par défaut est STREAM_SERVER_BIND | STREAM_SERVER_LISTEN.

Note : Pour les sockets UDP, vous devez utiliser STREAM_SERVER_BIND comme valeur pour le paramètre flags.

stream_socket_server() ne fait que créer une socket et, pour accepter des connexions, vous devez utiliser stream_socket_accept().

Si l'appel échoue, stream_socket_server() va retourner FALSE et si les paramètres optionnels errno et errstr sont fournis, ils recevront l'erreur exacte qui est survenue dans le système lors des appels à connect(), bind(), et listen(). Si la valeur retournée dans errno est 0 et que la fonction a retourné FALSE, c'est une indication que l'erreur est survenue avant l'appel à bind(). Cela est probablement dû à un problème d'initialisation de la socket. Notez que errno et errstr doivent toujours être passés par référence.

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(). Voir Annexe P pour une liste complète des transports disponibles.

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 de type "daytime" (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 une 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);
}
?>

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(),
stream_set_blocking(),
stream_set_timeout(),
fgets(),
fgetss(),
fwrite(),
fclose(),
feof() et
l'extension CURL.

Précédent | Sommaire | Suivant
stream_socket_sendto | Niveau supérieur | stream_socket_shutdown


stream_wrapper_register

(PHP 4 >= 4.3.2, PHP 5)

stream_wrapper_register -- Enregistre une enveloppe URL, implémentée comme une classe PHP

Description

bool stream_wrapper_register ( string protocol, string classname )

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.

Pour implémenter une enveloppe, il faut définir une classe avec la liste des membres définie ci-dessous. Lorsque quelqu'un ouvre le flux, PHP va créer une instance de la classe classname et appeler les méthodes de cette instance. Il faut implémenter ces méthodes exactement comme décrit ci-dessous : sinon, les comportements seront indéfinis.

Note : Depuis PHP 5.0.0, l'instance de la classe classname contiendra une propriété context, faisant référence à la ressource de contexte qui peut être accédée avec la fonction stream_context_get_options(). Si aucun contexte n'est passé à la fonction de création du flux, context sera défini à NULL.

stream_wrapper_register() retourne FALSE si le protocole protocol a déjà un gestionnaire attitré.

bool stream_open ( string path, string mode, int options, string opened_path )

Cette méthode est appelée immédiatement après la création de votre flux. path spécifie l'URL qui doit être passée à la fonction fopen() et ce que cet objet est supposé y lire. Vous pouvez utiliser parse_url() pour l'analyser.

mode est le mode d'ouverture du fichier, comme expliqué dans fopen(). Vous êtes responsable de la vérification de la validité du paramètre mode avec le chemin path fourni.

options contient des options supplémentaires, utilisées par les API de flux. Il peut contenir une ou plusieurs des options suivantes, combinées avec l'opérateur OR.

Option | Description
STREAM_USE_PATH | Si path est relatif, recherche la ressources en utilisant la configuration de l'include_path.
STREAM_REPORT_ERRORS | Si cette option est activée, la classe est responsable de la génération d'erreurs avec trigger_error() durant l'ouverture du flux. Si cette option n'est pas activée, il ne faut générer aucune erreur.

Si le paramètre path est ouvert avec succès, et que STREAM_USE_PATH est activé dans le paramètre options, il faut affecter à opened_path le chemin complet de la ressource ou du fichier qui a été réellement ouvert.

Si la ressource demandée a été ouverte, il faut retourner TRUE, ou, sinon, FALSE

void stream_close ( void )

Cette méthode est appelée lorsque le flux est fermé, grâce à la fonction fclose(). Vous devez libérer toutes les ressources verrouillées ou réservées par le flux.

string stream_read ( int count )

Cette méthode est appelée suite à l'utilisation des fonctions fread() et fgets(). Vous devez lire jusqu'à count octets de données à partir de la position courante d'écriture ou de lecture, sous la forme de chaîne de caractères. S'il y a moins que count octets disponibles, vous devez en retourner autant que possible. Si aucune autre donnée n'est disponible, FALSE sera retourné ou une chaîne vide. Vous devez aussi tenir à jour la position du pointeur d'écriture/lecture dans le flux, en ajoutant ou retranchant le nombre d'octets lus.

int stream_write ( string data )

Cette méthode est appelée lorsque la fonction fwrite() est utilisée. Vous devez stocker les données data dans le flux. S'il n'y a pas assez de place, essayez d'en stocker le maximum. Vous devriez aussi retourner le nombre d'octets que vous avez réussi à écrire, ou bien 0 si aucun n'a pu être stocké. Vous devez aussi tenir à jour la position du pointeur d'écriture/lecture dans le flux, en ajoutant ou retranchant le nombre d'octets écrits.

bool stream_eof ( void )

Cette méthode est appelée lorsque la fonction feof() est utilisée. Vous devez retourner TRUE si la position de lecture se situe à la fin du fichier et s'il n'y a plus de données disponibles pour la lecture, ou bien FALSE sinon.

int stream_tell ( void )

Cette méthode est appelée lorsque la fonction ftell() est utilisée. Vous devez retourner la position actuelle du pointeur de lecture/écriture dans le flux.

bool stream_seek ( int offset, int whence )

Cette méthode est appelée lorsque la fonction fseek() est utilisée. Vous devez modifier la position du pointeur de lecture/écriture en fonction des paramètres d'offset offset et de direction whence. Reportez-vous à la fonction fseek() pour plus de détails sur ces paramètres. Retournez TRUE si la position a été modifiée, et FALSE sinon.

bool stream_flush ( void )

Cette méthode est appelée lorsque la fonction fflush() est utilisée. Si vous avez mis des données dans un système de cache pour votre flux, mais qu'elles ne sont pas encore stockées de manière pérenne, c'est le moment de le faire. Retournez TRUE si les données cachées ont pu être stockées avec succès (il n'y a plus de données à stocker), ou bien FALSE si les données n'ont pu être stockées.

array stream_stat ( void )

Cette méthode est appelée en réponse à la fonction fstat() sur un flux, et retourne un tableau, avec les valeurs appropriées pour le flux.

bool unlink ( string path )

Cette méthode est appelée en réponse à la fonction unlink() avec une URL, et doit tenter de supprimer l'objet identifié par path. La fonction doit retourner TRUE en cas de succès, et FALSE en cas d'échec. Afin de retourner le bon message d'erreur, ne définissez pas cette méthode si votre gestionnaire ne le supporte pas.

Note : La méthode enveloppe d'utilisateur unlink n'est pas supportée avant PHP 5.0.0.

bool rename ( string path_from, string path_to )

Cette méthode est appelée en réponse à la fonction rename() avec une URL associée avec l'enveloppe et doit tenter de renommer l'objet identifié par path_from en path_to. Cela doit retourner TRUE en cas de succès ou FALSE en cas d'erreur. Afin de pouvoir retourner le message d'erreur approprié, ne définissez pas cette méthode si votre enveloppe ne supporte pas le renommage.

Note : La méthode enveloppe d'utilisateur rename n'est pas supportée avant PHP 5.0.0.

bool mkdir ( string path, int mode, int options )

Cette méthode est appelée en réponse à la fonction mkdir() avec une URL associée avec l'enveloppe et doit tenter de créer le répertoire spécifié par path. Cela doit retourner TRUE en cas de succès ou FALSE en cas d'erreur. Afin de pouvoir retourner le message d'erreur approprié, ne définissez pas cette méthode si votre enveloppe ne supporte pas la création de répertoire. Les valeurs possibles pour le paramètre options sont STREAM_REPORT_ERRORS et STREAM_MKDIR_RECURSIVE.

Note : La méthode enveloppe d'utilisateur mkdir n'est pas supportée avant PHP 5.0.0.

bool rmdir ( string path, int options )

Cette méthode est appelée en réponse à la fonction rmdir() avec une URL associée avec l'enveloppe et doit tenter de supprimer le répertoire spécifié par path. Cela doit retourner TRUE en cas de succès ou FALSE en cas d'erreur. Afin de pouvoir retourner le message d'erreur approprié, ne définissez pas cette méthode si votre enveloppe ne supporte pas la suppression de répertoire. La valeur possible pour le paramètre options est STREAM_REPORT_ERRORS.

Note : La méthode enveloppe d'utilisateur rmdir n'est pas supportée avant PHP 5.0.0.

bool dir_opendir ( string path, int options )

Cette méthode est appelée immédiatement lorsque votre flux est créé, pour examiner le contenu d'un dossier avec opendir(). path spécifie l'URL qui est passée à opendir() et que cet objet doit explorer. Vous pouvez utiliser parse_url() pour la scinder en morceaux.

array url_stat ( string path, int flags )

Cette méthode est appelée en réponse à la fonction stat() avec une URL associée avec l'enveloppe et doit retourner autant d'éléments en commun avec la fonction système que possible. Les valeurs non connues ou non disponibles doivent être définies en une valeur rationnelle (habituellement, 0).

flags représente les options additionnelles définies par l'API. Il peut prendre une ou plusieurs des valeurs suivantes séparées par OR.

Option | Description
STREAM_URL_STAT_LINK | Pour les ressources avec la possibilité de relier d'autres ressources (comme par exemple HTTP Location: forward ou un lien symbolique d'un système de fichiers). Cette option spécifie que seul les informations à propos du lien lui-même peuvent être retournées, et non pas les ressources pointées par le lien. Cette option est définie en réponse à l'appel à la fonction lstat(), is_link(), ou filetype().
STREAM_URL_STAT_QUIET | Si cette option est définie, votre enveloppe ne devra contenir aucune erreur. Si cette option n'est pas définie, vous êtes responsable du traitement des erreurs en utilisant la fonction trigger_error() pendant l'évaluation du chemin.

string dir_readdir ( void )

Cette méthode est appelée en réponse à la fonction readdir() et doit retourner une chaîne représentant le prochain fichier ouvert par dir_opendir().

bool dir_rewinddir ( void )

Cette méthode est appelée en réponse à rewinddir() et doit remettre à zéro les résultats de dir_readdir(). i.e. : le prochain appel à dir_readdir() doit retourner la première ligne située dans le dossier ouvert par dir_opendir().

bool dir_closedir ( void )

Cette méthode est appelée en réponse à closedir(). Vous devez libérer toutes les ressources qui ont été réservées durant l'ouverture et l'utilisation du dossier.

L'exemple ci-dessous implémente un gestionnaire de protocole pour le protocole var://, qui permet l'écriture et la lecture de variables globales en utilisant un flux de fichier standard, et les fonctions classiques telles que fread(). Le protocole var:// implémenté ci-dessous, étant donné l'URL var://foo va écrire ou lire les données dans $GLOBALS["foo"].

Exemple 1. Une classe de flux pour accéder aux 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;
        }
    }
}

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

?>

Précédent | Sommaire | Suivant
stream_socket_shutdown | Niveau supérieur | stream_wrapper_restore


stream_wrapper_restore

(PHP 5 >= 5.1.0RC1)

stream_wrapper_restore -- Restaure un gestionnaire d'URL supprimé

Description

bool stream_wrapper_restore ( string protocol )

stream_wrapper_restore() restaure le gestionnaire protocol précédemment supprimé avec stream_wrapper_unregister().

Précédent | Sommaire | Suivant
stream_wrapper_register | Niveau supérieur | stream_wrapper_unregister


stream_wrapper_unregister

(PHP 5 >= 5.1.0RC1)

stream_wrapper_unregister -- Supprime un gestionnaire d'URL

Description

bool stream_wrapper_unregister ( string protocol )

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

Précédent | Sommaire | Suivant
stream_wrapper_restore | Niveau supérieur | Chaînes de caractères (Strings)


Chaînes de caractères (Strings)

Manuel PHP
Précédent Suivant

CLXI. Chaînes de caractères (Strings)

Introduction

Ces fonctions permettent de manipuler des chaînes de caractères de différentes façons. Certaines fonctionnalités plus spécialisées sont disponibles dans les sections d'expressions rationnelles et de gestion des URL.

Pour plus de détails sur le comportement des chaînes de caractères, notamment avec les guillemets simples et doubles, les séquences d'échappement, reportez-vous à la section Chaînes de caractères dans la section Types.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

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 entier

CRYPT_STD_DES entier

CRYPT_EXT_DES entier

CRYPT_MD5 entier

CRYPT_BLOWFISH entier

HTML_SPECIALCHARS (entier)

HTML_ENTITIES (entier)

ENT_COMPAT (entier)

ENT_QUOTES (entier)

ENT_NOQUOTES (entier)

CHAR_MAX (entier)

LC_CTYPE (entier)

LC_NUMERIC (entier)

LC_TIME (entier)

LC_COLLATE (entier)

LC_MONETARY (entier)

LC_ALL (entier)

LC_MESSAGES (entier)

STR_PAD_LEFT (entier)

STR_PAD_RIGHT (entier)

STR_PAD_BOTH (entier)

Voir aussi

Pour des fonctions encore plus puissantes de gestion et manipulation des chaînes, reportez-vous aux expressions rationnelles POSIX et expressions rationnelles Perl.

Table des matières
addcslashes -- Ajoute des slash dans une chaîne, à la mode du langage C
addslashes -- Ajoute des anti-slash dans une chaîne
bin2hex -- Convertit des données binaires en représentation hexadécimale
chop -- Alias de rtrim()
chr -- Retourne un caractère spécifique
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 -- Chiffrage indéchiffrable (hashing)
echo -- Affiche une chaîne de caractères
explode -- Coupe une chaîne en segments
fprintf -- Ecrit 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
html_entity_decode -- Convertit toutes les entités HTML en caractères normaux
htmlentities -- Convertit tous les caractères éligibles en entités HTML
htmlspecialchars_decode -- Convertit les entités HTML spéciales en caractères
htmlspecialchars -- Convertit les caractères spéciaux en entités HTML
implode -- Rassemble les éléments d'un tableau en une chaîne
join -- Alias de implode()
levenshtein -- Calcule la distance Levenshtein entre deux chaînes
localeconv -- Lit la configuration locale
ltrim -- Supprime les espaces (ou d'autres caractères) de début de chaîne
md5_file -- Calcule le md5 d'un fichier
md5 -- Calcule le md5 d'une chaîne
metaphone -- Calcule la clé metaphone
money_format -- Met un nombre au format monétaire
nl_langinfo -- Rassemble des informations sur la langue et la configuration locale
nl2br -- Insère un retour à la ligne HTML à chaque nouvelle ligne
number_format -- Formate un nombre pour l'affichage
ord -- Retourne le code ASCII d'un caractère
parse_str -- Analyse une requête HTTP
print -- Affiche une chaîne de caractères
printf -- Affiche une chaîne de caractères formatée
quoted_printable_decode -- Convertit une chaîne quoted-printable en chaîne 8 bits
quotemeta -- Echappe les méta-caractères
rtrim -- Supprime les espaces (ou d'autres caractères) de fin de chaîne
setlocale -- Modifie les informations de localisation
sha1_file -- Calcule le sha1 d'un fichier
sha1 -- Calcule le sha1 d'une chaîne de caractères
similar_text -- Calcule la similarité de deux chaînes
soundex -- Calcule la clé soundex
sprintf -- Retourne une chaîne formatée
sscanf -- Analyse une chaîne à l'aide d'un format
str_getcsv -- Analyse une chaîne de caractères CSV dans un tableau
str_ireplace -- Version insensible à la casse de str_replace()
str_pad -- Complète une chaîne jusqu'à une taille donnée
str_repeat -- Répète une chaîne
str_replace -- Remplace toutes les occurrences dans une chaîne
str_rot13 -- Effectue une transformation ROT13
str_shuffle -- Mélange les caractères d'une chaîne de caractères
str_split -- Convertit une chaîne de caractères en tableau
str_word_count -- Compte le nombre de mots utilisés dans une chaîne
strcasecmp -- Comparaison insensible à la casse de chaînes binaires
strchr -- Alias de strstr()
strcmp -- Comparaison binaire de chaînes
strcoll -- Comparaison de chaînes localisées
strcspn -- Trouve un segment de chaîne ne contenant pas certains caractères
strip_tags -- Supprime les balises HTML et PHP d'une chaîne
stripcslashes -- Décode une chaîne encodée avec addcslashes()
stripos -- Recherche la première occurrence dans une chaîne, sans tenir compte de la casse
stripslashes -- Supprime les anti-slash 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 une chaîne de caractères dans un ensemble de caractères
strpos -- Trouve la position d'un caractère dans une chaîne
strrchr -- Trouve la dernière occurrence d'un caractère dans une chaîne
strrev -- Inverse une chaîne
strripos -- Trouve la position de la dernière occurrence d'une chaîne dans une autre de façon insensible à la casse
strrpos -- Trouve la position de la dernière occurrence d'un caractère dans une chaîne
strspn -- Trouve le premier segment de chaîne
strstr -- Trouve la première occurrence dans une chaîne
strtok -- Coupe une chaîne en segments
strtolower -- Renvoie une chaîne en minuscules
strtoupper -- Renvoie une chaîne en majuscules
strtr -- Remplace des caractères dans une chaîne
substr_compare -- Compare deux chaînes depuis un offset jusqu'à une longueur en caractères
substr_count -- Compte le nombre d'occurrences de segments dans une chaîne
substr_replace -- Remplace un segment dans une chaîne
substr -- Retourne un segment de chaîne
trim -- Supprime les espaces (ou d'autres caractères) en début et fin de chaîne
ucfirst -- Met le premier caractère en majuscule
ucwords -- Met en majuscule la première lettre de tous les mots
vfprintf -- Ecrit 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

Précédent | Sommaire | Suivant
stream_wrapper_unregister | Niveau supérieur | addcslashes


addcslashes

(PHP 4, PHP 5)

addcslashes -- Ajoute des slash dans une chaîne, à la mode du langage C

Description

string addcslashes ( string str, string charlist )

addcslashes() retourne la chaîne str, après avoir ajouté des anti-slash devant tous les caractères qui sont présents dans la liste charlist. Si charlist contient les caractères \n, \r etc., ils seront convertis à la mode du langage C, alors que les autres caractères non-alphanumériques ayant un code ASCII inférieur à 26, et supérieur à 126 sont remplacés par leur représentation octale.

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. En PHP, \0 (NULL), \r (retour chariot), \n (nouvelle ligne) et \t (tabulation horizontale) sont prédéfinis comme séquences d'échappement, tandis qu'en C, ce sont toutes les séquences cités ci-dessus qui sont des séquences d'échappement.

charlist peut s'écrire "\0..\37", ce qui identifie tous les caractères ASCII dont le code est entre 0 et 37.

Exemple 1. Exemple avec addcslashes()

<?php
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
?>

Lorsque vous définissez une séquence de caractères dans le paramètre charlist, assurez-vous que vous connaissez bien tous les caractères qui viennent entre vos limites d'intervalles.

Exemple 2. Exemple avec addcslashes() et charlist

<?php
  echo addcslashes('foo[ ]', 'A..z');
// affiche :  \f\o\o\[ \]
// Toutes les majuscules et minuscules seront échappées
// ... mais aussi les caractères [\]^_` et les tabulations
// retours chariots, nouvelles lignes....
?>
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.

Exemple 3. Exemple avec addcslashes() et charlist (2)

<?php
echo addcslashes("zoo['.']", 'z..A'); // \zoo['\.']
?>

Voir aussi
stripcslashes(),
stripslashes(),
addslashes(),
htmlspecialchars() et
quotemeta().

Précédent | Sommaire | Suivant
Chaînes de caractères (Strings) | Niveau supérieur | addslashes


addslashes

(PHP 3, PHP 4, PHP 5)

addslashes -- Ajoute des anti-slash dans une chaîne

Description

string addslashes ( string str )

addslashes() retourne la chaîne str, après avoir échappé tous les caractères qui doivent l'être, pour être utilisée dans une requête de base de données. Ces caractères sont les guillemets simples ('), guillemets doubles ("), anti-slash (\) et NUL (le caractère NULL).

Un exemple d'utilisation d'addslashes() est lorsque vous entrez des données dans une base de données. Par exemple, pour insérer le nom O'reilly dans la base, vous aurez besoin de le protéger. La plupart des base de données le font avec \ ce qui donnerait O\'reilly. Cela ne servirait qu'à insérer le nom dans la base de données, le \ ajouté ne sera pas inséré. Si la directive PHP magic_quotes_sybase est activée, ' sera protégé par un autre '.

La directive PHP magic_quotes_gpc est à on par défaut, et elle appelle addslashes() sur toutes les données GET, POST et COOKIE. N'utilisez pas addslashes() sur des données déjà protégées avec magic_quotes_gpc sinon vous doublerez les protections. La fonction get_magic_quotes_gpc() est utile pour vérifier ce paramètre.

Exemple 1. Exemple avec addslashes()

<?php

$str = "Votre nom est-il O'reilly ?";
echo addslashes($str); // Votre nom est-il O\'reilly ?

?>

Voir aussi
stripslashes(),
stripcslashes(),
addcslashes(),
htmlspecialchars(),
quotemeta() et
get_magic_quotes_gpc().

Précédent | Sommaire | Suivant
addcslashes | Niveau supérieur | bin2hex


bin2hex

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

bin2hex -- Convertit des données binaires en représentation hexadécimale

Description

string bin2hex ( string str )

bin2hex() retourne la chaîne str dont tous les caractères sont représentés par leur équivalent hexadécimal. La chaîne retournée est une chaîne ASCII. La conversion supporte les caractères binaires, et utilise les bits de poids forts en premier.

Voir aussi pack() et unpack().

Précédent | Sommaire | Suivant
addslashes | Niveau supérieur | chop


chop

(PHP 3, PHP 4, PHP 5)

chop -- Alias de rtrim()

Description

Cette fonction est un alias de : rtrim().

Note : chop() est différente de son équivalent Perl chop(), qui supprime le dernier caractère dans la chaîne.

Précédent | Sommaire | Suivant
bin2hex | Niveau supérieur | chr


chr

(PHP 3, PHP 4, PHP 5)

chr -- Retourne un caractère spécifique

Description

string chr ( int ascii )

chr retourne une chaîne d'un seul caractère, dont le code ASCII est donné par le paramètre ascii.

Exemple 1. Exemple avec chr()

<?php

// 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("La chaîne se finit par un caractère d'échappement : %c", 27);

?>

Vous pouvez trouvez une table des codes ASCII ici : http://www.asciitable.com.

Cette fonction est l'inverse de ord(). Voir aussi sprintf(), et le caractère de formatage %c.

Précédent | Sommaire | Suivant
chop | Niveau supérieur | chunk_split


chunk_split

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

chunk_split -- Scinde une chaîne

Description

string chunk_split ( string body [, int chunklen [, string end]] )

chunk_split() scinde la chaîne body en segments de chunklen octets de longueur. Cette fonction est très pratique pour convertir les résultats de base64_encode() au format de la RFC 2045. Elle insère le paramètre end (par défaut, "\r\n") tous les chunklen caractères (par défaut, 76). Elle retourne la nouvelle chaîne, et ne modifie pas la chaîne originale.

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
explode(),
split(),
wordwrap() et
RFC 2045.

Précédent | Sommaire | Suivant
chr | Niveau supérieur | convert_cyr_string


convert_cyr_string

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

convert_cyr_string -- Convertit une chaîne d'un jeu de caractères cyrillique à l'autre

Description

string convert_cyr_string ( string str, string from, string to )

convert_cyr_string() retourne la chaîne str, après l'avoir traduite depuis le jeu de caractères cyrillique from vers to. Les paramètres from et to sont des caractères qui représentent les jeux de caractères d'origine et de destination. Les types suivants sont supportés :

  • k : koi8-r

  • w : windows-1251

  • i : iso8859-5

  • a : x-cp866

  • d : x-cp866

  • m : x-mac-cyrillic

Note : Cette fonction gère les chaînes binaires.

Précédent | Sommaire | Suivant
chunk_split | Niveau supérieur | convert_uudecode


convert_uudecode

(PHP 5)

convert_uudecode -- Décode une chaîne au format uuencode

Description

string convert_uudecode ( string data )

convert_uudecode() décode une chaîne au format uuencode.

Exemple 1. Exemple avec convert_uudecode()

<?php
/* Pouvez-vous imaginer ce que cela va afficher ? :) */
echo convert_uudecode("+22!L;W9E(%!(4\"$`\n`");
?>

Voir aussi convert_uuencode().

Précédent | Sommaire | Suivant
convert_cyr_string | Niveau supérieur | convert_uuencode


convert_uuencode

(PHP 5)

convert_uuencode -- Encode une chaîne de caractères en utilisant l'algorithme uuencode

Description

string convert_uuencode ( string data )

convert_uuencode() encode une chaîne de caractères en utilisant l'algorithme uuencode.

Uuencode traduit toutes les chaînes (y compris les binaires) en caractères imprimables, pour assurer leur transmission sur Internet. Les données au format uuencode sont environ 35 % plus grandes que les originales.

Exemple 1. Exemple avec convert_uuencode()

<?php
$some_string = "test\ntexte texte\r\n";

echo convert_uuencode($some_string);
?>

Voir aussi convert_uudecode() et base64_encode().

Précédent | Sommaire | Suivant
convert_uudecode | Niveau supérieur | count_chars


count_chars

(PHP 4, PHP 5)

count_chars -- Retourne des statistiques sur les caractères utilisés dans une chaîne

Description

mixed count_chars ( string string [, int mode] )

count_chars() compte le nombre d'occurrences de tous les octets présents dans la chaîne string et retourne différentes statistiques. Le paramètre optionnel mode vaut par défaut 0. 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.

Exemple 1. Exemple avec count_chars()

<?php
$data = "Deux D et un F.";

foreach (count_chars($data, 1) as $i => $val) {
    echo "Il y avait $val occurrence(s) de \"" , chr($i) , "\" dans la phrase.\n";
}
?>

L'exemple ci-dessus va afficher :

Il y avait 4 occurrence(s) de " " dans la phrase.
Il y avait 1 occurrence(s) de "." dans la phrase.
Il y avait 2 occurrence(s) de "D" dans la phrase.
Il y avait 1 occurrence(s) de "F" dans la phrase.
Il y avait 2 occurrence(s) de "e" dans la phrase.
Il y avait 1 occurrence(s) de "n" dans la phrase.
Il y avait 1 occurrence(s) de "t" dans la phrase.
Il y avait 2 occurrence(s) de "u" dans la phrase.
Il y avait 1 occurrence(s) de "x" dans la phrase.

Voir aussi strpos() et substr_count().

Précédent | Sommaire | Suivant
convert_uuencode | Niveau supérieur | crc32


crc32

(PHP 4 >= 4.0.1, PHP 5)

crc32 -- Calcule la somme de contrôle CRC32

Description

int crc32 ( string str )

crc32() génère la somme de contrôle cyclique CRC32, calculée sur 32 bits, et appliquée à la chaîne str. Cette fonction est généralement utilisée pour valider l'intégrité de données durant une transmission.

Comme le type d'entier de PHP est signé, et que de nombreuses sommes de contrôle CRC32 aboutissent à un nombre négatif, vous devez utiliser le format "%u" de la fonction sprintf() ou printf() pour obtenir la représentation littérale de la somme de contrôle CRC32.

Cet exemple illustre comment afficher la somme de contrôle avec la fonction printf() :

Exemple 1. Afficher une somme de contrôle CRC32

<?php

$checksum = crc32("Le vif zéphyr jubile sur les kumquats du clown gracieux.");
printf("%u\n", $checksum);

?>

Voir aussi md5() et sha1().

Précédent | Sommaire | Suivant
count_chars | Niveau supérieur | crypt


crypt

(PHP 3, PHP 4, PHP 5)

crypt -- Chiffrage indéchiffrable (hashing)

Description

string crypt ( string str [, string salt] )

crypt() retourne la chaîne str chiffrée avec l'algorithme standard Unix DES, ou bien un des algorithmes disponibles sur la machine. L'argument optionnel salt sera utilisé comme base pour le chiffrement. Reportez-vous aux pages de manuel Unix pour plus de détails sur la fonction crypt.

Si l'argument salt n'est pas fourni, PHP en générera un lui-même, à chaque appel à cette fonction.

Certains systèmes supportent plus d'un type de chiffrement. En fait, il arrive que le chiffrement DES standard soit remplacé par un algorithme de chiffrement MD5. Le choix du type de chiffrement est effectué en se basant sur la valeur du salt. À l'installation, PHP détermine les possibilités de la fonction crypt(), et acceptera des salt pour d'autres types de chiffrements. Si aucun salt n'est fourni, PHP va en générer un de deux caractères, à 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 qui vous dira si un salt de deux caractères s'applique à votre système, ou bien si c'est un salt de 12 caractères.

Si vous utilisez le salt généré, pensez bien que le salt est généré une seule fois. Si vous appelez cette fonction plusieurs fois, cela peut avoir des impacts sur la sécurité et l'apparence du résultat.

crypt(), lorsqu'elle est utilisée avec le chiffrement standard DES, retourne le salt dans les deux premiers caractères de la chaîne retournée. Elle n'utilise que les 8 premiers caractères de str, ce qui fait que toutes les chaînes plus longues, qui ont les mêmes premiers 8 octets retourneront le même résultat (tant que le salt est toujours le même).

Sur les systèmes où crypt() supporte plusieurs types de chiffrements, les constantes suivantes sont mises à 0 ou 1, suivant que le type correspondant est disponible :

  • CRYPT_STD_DES : chiffrement DES standard à 2 caractères

  • CRYPT_EXT_DES : chiffrement DES étendu à 9 caractères

  • CRYPT_MD5 : chiffrement MD5 à 12 caractères commençant par $1$

  • CRYPT_BLOWFISH : chiffrement Blowfish à 16 caractères commençant par $2$ ou $2a$.

Note : Il n'existe pas de fonction de déchiffrement, car la fonction crypt() utilise un algorithme à un seul sens (injection).

Exemple 1. Exemple avec crypt()

<?php
// laissons le salt initialisé par PHP
$mot_de_passe = crypt("monmotdepasse");

/*
  Il vaut mieux passer le résultat complet de crypt() comme salt nécessaire
  pour le chiffrement du mot de passe, pour éviter les problèmes entre les
  algorithmes utilisés (comme nous le disons ci-dessus, le chiffrement
  standard DES utilise un salt de 2 caractères, mais un chiffrement
  MD5 utilise un salt de 12).
*/
if (crypt($utilisateur_input,$mot_de_passe_input) == $mot_de_passe) {
   echo "Mot de passe correct!";
}
?>

Exemple 2. Utilisation de crypt() avec htpasswd

<?php
// Définition du mot de passe
$password = 'monmotdepasse';

// Récupération du hash, on laisse le salt se générer automatiquement
$hash = crypt($password);
?>

Exemple 3. Utilisation de crypt() avec différents types de cryptage

<?php
if (CRYPT_STD_DES == 1) {
    echo 'DES standard : ' . crypt('rasmuslerdorf', 'rl') . "\n";
}

if (CRYPT_EXT_DES == 1) {
    echo 'DES étendu : ' . crypt('rasmuslerdorf', '_J9..rasm') . "\n";
}

if (CRYPT_MD5 == 1) {
    echo 'MD5 :          ' . crypt('rasmuslerdorf', '$1$rasmusle$') . "\n";
}

if (CRYPT_BLOWFISH == 1) {
    echo 'Blowfish :     ' . crypt('rasmuslerdorf', '$2a$07$rasmuslerd...........$') . "\n";
}
?>

L'exemple ci-dessus va afficher :

DES standard : rl.3StKT.4T8M
DES étendu : _J9..rasmBYk8r9AiWNc
MD5 :          $1$rasmusle$rISCgZzpwk3UhDidwXvin0
Blowfish :     $2a$07$rasmuslerd............nIdrcHdxcUxWomQX9j6kvERCFjTg7Ra

Voir aussi md5() et l'extension Mcrypt.

Précédent | Sommaire | Suivant
crc32 | Niveau supérieur | echo


echo

(PHP 3, PHP 4, PHP 5)

echo -- Affiche une chaîne de caractères

Description

void echo ( string arg1 [, string ...] )

Affiche tous les paramètres.

echo() n'est pas vraiment une fonction (c'est techniquement une structure du langage), cela fait que vous n'êtes pas obligé d'utiliser des parenthèses. echo() (contrairement à d'autres structures de langage) ne se comporte pas comme une fonction, il ne peut donc pas être utilisé dans le contexte d'une fonction. De même, si vous voulez passer plusieurs paramètres à echo(), les paramètres ne doivent pas être entourrés de parenthèses.

Exemple 1. Exemples avec echo()

<?php
echo "Bonjour le monde";

echo "Cet echo() se
répartit sur plusieurs lignes. Il affiche aussi les
nouvelles lignes";

echo "Cet echo() se\nrépartit sur plusieurs lignes. Il affiche aussi les\nnouvelles lignes";

echo "L'échappement de caractères se fait : \"comme ceci\".";

// Vous pouvez utiliser des variables avec echo()
$foo = "foobar";
$bar = "barbaz";

echo "foo vaut \"$foo\""; // foo vaut "foobar"

// Vous pouvez aussi utiliser des tableaux
$bar = array("clé" => "foo");

echo "c'est {$bar['clé']} !"; // c'est foo !

// Les guillemets simples annulent le remplacement des variables
echo 'foo vaut $foo'; // foo vaut $foo

// Si vous n'utilisez pas d'autres caractères,
// vous pouvez afficher plusieurs variables
// en les séparant par des virgules
echo $foo;          // foobar
echo $foo,$bar;     // foobarbarbaz

// Des personnes préfèrent passer plusieurs
// paramètres en utilisant la concaténation
echo 'Cette ', 'chaîne ', 'a été ', 'faite ', 'avec plusieurs paramètres.', chr(10);
echo 'Cette ' . 'chaîne ' . 'a été ' . 'faite ' . 'à l\'aide de la concaténation.' . "\n";

echo <<<END
Cette syntaxe s'intitule le "here document" et
permet d'afficher plusieurs lignes avec de
l'interpolation de variables. Notez que la fin de
la syntaxe doit apparaître sur une nouvelle ligne,
avec uniquement un point-virgule, et pas d'espace
de plus !
END;

// parce que echo() ne se comporte pas comme une fonction, le code suivant n'est pas valide.
($some_var) ? echo('Oui') : echo('Non');

// Cependant, les lignes suivantes sont valides :
($some_var) ? print 'Oui' : print 'Non'; // print est aussi une structure de langage, mais
                                   // il se comporte comme une fonction, donc,
                                   // il peut être utilisé dans ce contexte.
echo $some_var ? 'Oui' : 'Non';
?>

echo() dispose aussi d'une version courte, où vous pouvez faire suivre la balise PHP ouvrante d'un signe égal (=). Cette syntaxe n'est possible que si la directive de configuration short_open_tag a été activée.

Exemple 2. Afficher sans l'aide de echo()

J'ai <?=$foo?> fous.

Pour une brève discussion à propos des différences entre print() et echo(), consultez cet article des FAQTs Knowledge Base : http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40

Note : Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les variables fonctions.

Voir aussi
print(),
printf() et
flush().

Précédent | Sommaire | Suivant
crypt | Niveau supérieur | explode


explode

(PHP 3, PHP 4, PHP 5)

explode -- Coupe une chaîne en segments

Description

array explode ( string delimiter, string string [, int limit] )

explode retourne un tableau de chaînes. Ce sont les sous-chaînes extraites de string, en utilisant le séparateur delimiter. Si limit est fourni, le tableau retourné aura un maximum de limit éléments, et le dernier élément du tableau contiendra le reste de la chaîne string.

Si delimiter est une chaîne vide (""), explode() retournera FALSE. Si delimiter contient une valeur qui n'est pas contenue dans string, alors explode() retournera un tableau, contenant la chaîne string entière.

Si le paramètre limit a une valeur négative, tous les éléments exceptés le dernier limit sont retournés. Cette fonctionalité a été ajoutée depuis PHP 5.1.0.

Bien que implode() puisse, pour des raisons historiques, accepter ces paramètres dans n'importe quel ordre, explode() ne le peut pas. Vous devez vous assurer que le paramètre delimiter soit placé avant le paramètre string.

Note : Le paramètre limit a été ajouté en PHP 4.0.1.

Exemple 1. Exemple avec explode()

<?php
// Exemple 1
$pizza  = "pièce1 pièce2 pièce3 pièce4 pièce5 pièce6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // pièce1
echo $pieces[1]; // pièce2

// 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 avec le paramètre limit

<?php
$str = 'un|deux|trois|quatre';

// limite positive
print_r(explode('|', $str, 2));

// limite négative (depuis PHP 5.1)
print_r(explode('|', $str, -1));
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => un
    [1] => deux|trois|quatre
)
Array
(
    [0] => un
    [1] => deux
    [2] => trois
)

Note : Cette fonction gère les chaînes binaires.

Voir aussi
preg_split(),
str_split(),
strtok() et
implode().

Précédent | Sommaire | Suivant
echo | Niveau supérieur | fprintf


fprintf

(PHP 5)

fprintf -- Ecrit une chaîne formatée dans un flux

Description

int fprintf ( resource handle, string format [, mixed args [, mixed ...]] )

fprintf() écrit la chaîne produite avec le format format dans le flux représenté par handle. Le format format est décrit dans la documentation de la fonction sprintf().

Retourne la longueur de la chaîne affichée.

Exemples

Exemple 1. Entiers avec zéros initiaux fprintf()

<?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. Format monétaire avec fprintf()

<?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(),
sprintf(),
sscanf(),
fscanf(),
vsprintf() et
number_format().

Précédent | Sommaire | Suivant
explode | Niveau supérieur | get_html_translation_table


get_html_translation_table

(PHP 4, PHP 5)

get_html_translation_table -- Retourne la table de traduction des entités utilisée par htmlspecialchars() et htmlentities()

Description

array get_html_translation_table ( [int table [, int quote_style]] )

get_html_translation_table() retourne la table de traduction des entités utilisée en interne par les fonctions htmlspecialchars() et htmlentities().

Il existe deux constantes (HTML_ENTITIES et HTML_SPECIALCHARS), qui vous permettent de spécifier la table que vous souhaitez. Le paramètre table vaut par défaut HTML_SPECIALCHARS. Et comme dans les fonctions htmlspecialchars() et htmlentities(), vous pouvez optionnellement spécifier le type de guillemets que vous voulez utiliser. Le comportement par défaut est le mode ENT_COMPAT. Pour la description de ces modes, reportez-vous à htmlspecialchars().

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 la plus courante d'encodage.

Exemple 1. Exemple avec la table de traduction des caractères en entités HTML

<?php
$trans = get_html_translation_table(HTML_ENTITIES);
$str = "Hallo & <Frau> & Krämer";
$encoded = strtr($str, $trans);
?>
La variable $encoded contient maintenant "Hallo &amp; &lt;Frau&gt; &amp; Kr&auml;mer".

Voir aussi
htmlspecialchars(),
htmlentities() et
html_entity_decode().

Précédent | Sommaire | Suivant
fprintf | Niveau supérieur | hebrev


hebrev

(PHP 3, PHP 4, PHP 5)

hebrev -- Convertit un texte logique hébreux en texte visuel

Description

string hebrev ( string hebrew_text [, int max_chars_per_line] )

hebrev convertit le texte logique hébreux hebrew_text en texte visuel. Le paramètre optionnel max_chars_per_line indique le nombre maximum de caractères par ligne dans le résultat. hebrev() essaie d'éviter de scinder les mots.

Voir aussi hebrevc().

Précédent | Sommaire | Suivant
get_html_translation_table | Niveau supérieur | hebrevc


hebrevc

(PHP 3, PHP 4, PHP 5)

hebrevc -- Convertit un texte logique hébreux en texte visuel, avec retours à la ligne

Description

string hebrevc ( string hebrew_text [, int max_chars_per_line] )

hebrevc() est similaire à hebrev() à la différence qu'elle convertit les nouvelles lignes (\n) en "<br>\n". Le paramètre optionnel max_chars_per_line indique le nombre maximum de caractères par lignes dans le résultat. hebrevc() essaie d'éviter de scinder les mots.

Voir aussi hebrev().

Précédent | Sommaire | Suivant
hebrev | Niveau supérieur | html_entity_decode


html_entity_decode

(PHP 4 >= 4.3.0, PHP 5)

html_entity_decode -- Convertit toutes les entités HTML en caractères normaux

Description

string html_entity_decode ( string string [, int quote_style [, string charset]] )

html_entity_decode() est la fonction contraire de htmlentities() : elle convertit les entités HTML de la chaîne string en caractères normaux.

Le paramètre optionnel quote_style vous permet de définir ce qu'il adviendra des guillemets simples et doubles. Ce paramètre prend l'une des valeurs suivantes (et la valeur par défaut est ENT_COMPAT) :

Tableau 1. Constantes disponibles pour quote_style

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.

Le jeu de caractères ISO-8859-1 est utilisé par défaut, comme paramètre charset. Ce paramètre permet de choisir le jeu de caractères utilisé dans la conversion.

Les jeux de caractères suivants sont disponibles et supportés par PHP 4.3.0 et plus récent.

Tableau 2. Jeux de caractères supportés

Jeux de caractères | Alias | Description
ISO-8859-1 | ISO8859-1 | Europe occidentale, Latin-1
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 multi octets, compatible avec l'ASCII
cp866 | ibm866, 866 | Jeu de caractères Cyrillic spécifique à DOS. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1251 | Windows-1251, win-1251, 1251 | Jeu de caractères Cyrillic spécifique à Windows. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1252 | Windows-1252, 1252 | Jeu de caractères spécifique de Windows pour l'Europe occidentale.
KOI8-R | koi8-ru, koi8r | Russe. Ce jeu de caractères est supporté depuis PHP 4.3.2.
BIG5 | 950 | Chinois traditionnel, principalement utilisé à Taiwan.
GB2312 | 936 | Chinois simplifié, officiel.
BIG5-HKSCS |  | Big5 avec les extensions de Hong Kong, chinois traditionnel.
Shift_JIS | SJIS, 932 | Japonais
EUC-JP | EUCJP | Japonais

Note : Les autres jeux de caractères ne sont pas reconnus, et le ISO-8859-1 sera utilisé à la place.

Note : Cette fonction ne supporte pas les jeux de caractères multi-octets dans PHP < 5.

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

// Pour les utilisateurs ayant des versions antérieures à PHP 4.3.0 :
function unhtmlentities ($string)
{
   // Remplace les entités numériques
   $string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);
   $string = preg_replace('~&#([0-9]+);~e', 'chr("\\1")', $string);
   // Remplace les entités litérales
   $trans_tbl = get_html_translation_table (HTML_ENTITIES);
   $trans_tbl = array_flip ($trans_tbl);
   return strtr ($string, $trans_tbl);
}

$c = unhtmlentities($a);
echo $c; // J'ai "sorti" le <strong>chien</strong> tout à l'heure
?>

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 le jeu de caractères par défaut ISO 8859-1.

Voir aussi
htmlentities(),
get_html_translation_table(),
htmlspecialchars() et
urldecode().

Précédent | Sommaire | Suivant
hebrevc | Niveau supérieur | htmlentities


htmlentities

(PHP 3, PHP 4, PHP 5)

htmlentities -- Convertit tous les caractères éligibles en entités HTML

Description

string htmlentities ( string string [, int quote_style [, string charset]] )

htmlentities est identique à la fonction htmlspecialchars(), sauf que tous les caractères qui ont des équivalents en entités HTML sont effectivement traduits.

Comme htmlspecialchars(), cette fonction prend un deuxième argument optionnel, qui indique comment doivent être traités les guillemets doubles et simples. Vous pouvez utiliser l'une des constantes suivantes la valeur par défaut étant ENT_COMPAT :

Tableau 1. Constantes disponibles pour quote_style

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

Le support du paramètre optionnel quote a été ajouté en PHP 4.0.3.

Comme htmlspecialchars(), cette fonction prend un troisième argument optionnel qui définit le jeu de caractères utilisé durant la conversion. Le support de cet argument a été ajouté en PHP 4.1.0. Actuellement, le jeu de caractères ISO-8859-1 est utilisé par défaut.

Les jeux de caractères suivants sont disponibles et supportés par PHP 4.3.0 et plus récent.

Tableau 2. Jeux de caractères supportés

Jeux de caractères | Alias | Description
ISO-8859-1 | ISO8859-1 | Europe occidentale, Latin-1
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 multi octets, compatible avec l'ASCII
cp866 | ibm866, 866 | Jeu de caractères Cyrillic spécifique à DOS. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1251 | Windows-1251, win-1251, 1251 | Jeu de caractères Cyrillic spécifique à Windows. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1252 | Windows-1252, 1252 | Jeu de caractères spécifique de Windows pour l'Europe occidentale.
KOI8-R | koi8-ru, koi8r | Russe. Ce jeu de caractères est supporté depuis PHP 4.3.2.
BIG5 | 950 | Chinois traditionnel, principalement utilisé à Taiwan.
GB2312 | 936 | Chinois simplifié, officiel.
BIG5-HKSCS |  | Big5 avec les extensions de Hong Kong, chinois traditionnel.
Shift_JIS | SJIS, 932 | Japonais
EUC-JP | EUCJP | Japonais

Note : Les autres jeux de caractères ne sont pas reconnus, et le ISO-8859-1 sera utilisé à la place.

Si vous voulez réaliser l'opération inverse, vous devez utiliser la fonction html_entity_decode().

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

Voir aussi
html_entity_decode(),
get_html_translation_table(),
htmlspecialchars(),
nl2br() et
urlencode().

Précédent | Sommaire | Suivant
html_entity_decode | Niveau supérieur | htmlspecialchars_decode


htmlspecialchars_decode

(PHP 5 >= 5.1.0RC1)

htmlspecialchars_decode -- Convertit les entités HTML spéciales en caractères

Description

string htmlspecialchars_decode ( string string [, int quote_style] )

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

quote_style

Le style de guillemets. Une des constantes suivantes :

Tableau 1. Constantes quote_style

Nom de la Constante | Description
ENT_COMPAT | Convertira les guillemets et laissera les apostrophes (valeur par défaut)
ENT_QUOTES | Convertira les guillemets et les apostrophes
ENT_NOQUOTES | Laissera les guillemets et les apostrophes non convertis

Valeurs de retour

Retourne la chaîne de caractères décodée.

Exemples

Exemple 1. Exemple avec htmlspecialchars_decode()

<?php
$str = '<p>this -&gt; &quot;</p>';

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()
html_entity_decode()
get_html_translation_table()

Précédent | Sommaire | Suivant
htmlentities | Niveau supérieur | htmlspecialchars


htmlspecialchars

(PHP 3, PHP 4, PHP 5)

htmlspecialchars -- Convertit les caractères spéciaux en entités HTML

Description

string htmlspecialchars ( string string [, int quote_style [, string charset]] )

Certains caractères ont des significations spéciales en HTML, et doivent être remplacés par des entités HTML pour être affichés. htmlspecialchars() remplace tous ces caractères par leur équivalent dans la chaîne string. Cette conversion est très pratique pour la programmation web. Si vous devez remplacer tous les caractères, utilisez plutôt htmlentities() à la place.

htmlspecialchars() est pratique pour éviter que des données fournies par les utilisateurs contiennent des balises HTML, comme pour un forum ou un chat. Cette fonction prend un deuxième argument optionnel, qui indique comment doivent être traités les guillemets doubles et simples. Vous pouvez utiliser l'une des constantes suivantes : ENT_COMPAT, la constante par défaut, va convertir les guillemets doubles et ignorer les guillemets simples; ENT_QUOTES va convertir les guillemets doubles et les guillemets simples; ENT_NOQUOTES va ignorer les guillemets doubles et les guillemets simples.

Les remplacements effectués sont :

  • "&" (et commercial) devient "&amp;"

  • """ (guillemets doubles) devient "&quot;" lorsque ENT_NOQUOTES n'est pas utilisée.

  • "'" (single quote) devient "&#039;" uniquement lorsque ENT_QUOTES est utilisée.

  • "<" (inférieur à) devient "&lt;"

  • ">" (supérieur à) devient "&gt;"

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

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(). Le support pour le second argument optionnel a été ajouté en PHP 3.0.17 et PHP 4.0.3.

Cette fonction prend un troisième argument optionnel qui définit le jeux de caractères utilisé durant la conversion. Le jeu de caractères par défaut est ISO-8859-1. Le support de cet argument a été ajouté en PHP 4.1.0.

Les jeux de caractères suivants sont disponibles et supportés par PHP 4.3.0 et plus récent.

Tableau 1. Jeux de caractères supportés

Jeux de caractères | Alias | Description
ISO-8859-1 | ISO8859-1 | Europe occidentale, Latin-1
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 multi octets, compatible avec l'ASCII
cp866 | ibm866, 866 | Jeu de caractères Cyrillic spécifique à DOS. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1251 | Windows-1251, win-1251, 1251 | Jeu de caractères Cyrillic spécifique à Windows. Ce jeu de caractères est supporté depuis PHP 4.3.2.
cp1252 | Windows-1252, 1252 | Jeu de caractères spécifique de Windows pour l'Europe occidentale.
KOI8-R | koi8-ru, koi8r | Russe. Ce jeu de caractères est supporté depuis PHP 4.3.2.
BIG5 | 950 | Chinois traditionnel, principalement utilisé à Taiwan.
GB2312 | 936 | Chinois simplifié, officiel.
BIG5-HKSCS |  | Big5 avec les extensions de Hong Kong, chinois traditionnel.
Shift_JIS | SJIS, 932 | Japonais
EUC-JP | EUCJP | Japonais

Note : Les autres jeux de caractères ne sont pas reconnus, et le ISO-8859-1 sera utilisé à la place.

Voir aussi
get_html_translation_table(),
htmlspecialchars_decode(),
strip_tags(),
htmlentities() et
nl2br().

Précédent | Sommaire | Suivant
htmlspecialchars_decode | Niveau supérieur | implode


implode

(PHP 3, PHP 4, PHP 5)

implode -- Rassemble les éléments d'un tableau en une chaîne

Description

string implode ( string glue, array pieces )

implode retourne une chaîne contenant la représentation en chaîne de caractères de tous les éléments du tableau pieces, dans le même ordre, avec la chaîne glue, placée entre deux éléments.

Exemple 1. Exemple avec implode()

<?php
$array = array('nom', 'email', 'telephone');
$comma_separated = implode(",", $array);

echo $comma_separated; // nom,email,telephone
?>

Note : implode() peut, pour des raisons historiques, accepter les paramètres dans un sens ou dans l'autre. Pour des raisons de cohérence avec explode(), toutefois, il est préférable d'utiliser l'ordre des arguments tels que documenté.

Note : Depuis PHP 4.3.0, le paramètre glue de implode() est optionnel et, par défaut, il vaut la chaîne vide ''. Ce n'est pas l'utilisation recommandée de la fonction implode(). Nous vous recommandons de toujours utiliser les deux paramètres pour être compatible avec les anciennes versions.

Note : Cette fonction gère les chaînes binaires.

Voir aussi explode() et split().

Précédent | Sommaire | Suivant
htmlspecialchars | Niveau supérieur | join


join

(PHP 3, PHP 4, PHP 5)

join -- Alias de implode()

Description

Cette fonction est un alias de : implode().

Précédent | Sommaire | Suivant
implode | Niveau supérieur | levenshtein


levenshtein

(PHP 3 >= 3.0.17, PHP 4 >= 4.0.1, PHP 5)

levenshtein -- Calcule la distance Levenshtein entre deux chaînes

Description

int levenshtein ( string str1, string str2 [, int cost_ins, int cost_rep, int cost_del] )

levenshtein() calcule la distance Levenshtein entre deux chaînes de caractères. Elle retournera -1 si l'un des deux arguments contient plus de 255 caractères.

La distance Levenshtein est définie comme le nombre minimal de caractères qu'il faut remplacer, insérer ou modifier pour transformer la chaîne str1 en str2. La complexité de l'algorithme est en O(m*n), où n et m sont les tailles respectives de str1 et str2 : c'est plutôt bien, en comparaison de similar_text(), qui est en O(max(n,m)**3), mais cela reste très coûteux.

Dans sa forme la plus simple, levenshtein() va prendre uniquement deux chaînes de caractères comme paramètres, et calculer simplement le nombre d'insertions, de remplacements et d'effacements nécessaires pour transformer str1 en str2.

La deuxième variante de la fonction prend trois paramètres supplémentaires qui représentent les coûts d'insertions, de remplacements et d'effacements. C'est une version plus générale de la première fonction, mais qui est un peu moins efficace.

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 des 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éfinission 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(),
similar_text() et
metaphone().

Précédent | Sommaire | Suivant
join | Niveau supérieur | localeconv


localeconv

(PHP 4 >= 4.0.5, PHP 5)

localeconv -- Lit la configuration locale

Description

array localeconv ( void )

localeconv() retourne un tableau associatif contenant les informations de formats localisées pour les nombres et la monnaie.

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 formatté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 3, l'élément précédent doit être utilisé.

Exemple 1. Exemple avec localeconv()

<?php
if (false !== setlocale(LC_ALL, 'fr_FR@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] => 0
    [p_sep_by_space] => 1
    [n_cs_precedes] => 0
    [n_sep_by_space] => 1
    [p_sign_posn] => 1
    [n_sign_posn] => 1
    [grouping] => Array
        (
        )

    [mon_grouping] => Array
        (
            [0] => 3
            [1] => 3
        )

)

Voir aussi setlocale().

Précédent | Sommaire | Suivant
levenshtein | Niveau supérieur | ltrim


ltrim

(PHP 3, PHP 4, PHP 5)

ltrim -- Supprime les espaces (ou d'autres caractères) de début de chaîne

Description

string ltrim ( string str [, string charlist] )

ltrim() retourne la chaîne str, après avoir supprimé les caractères invisibles de début de chaîne. Si le second paramètre charlist a été omis, ltrim() supprimera les caractères suivants :

  • " " (ASCII 32 (0x20)), un espace ordinaire.

  • "\t" (ASCII 9 (0x09)), une tabulation.

  • "\n" (ASCII 10 (0x0A)), une nouvelle ligne (line feed).

  • "\r" (ASCII 13 (0x0D)), un retour chariot (carriage return).

  • "\0" (ASCII 0 (0x00)), le caractère NUL.

  • "\x0B" (ASCII 11 (0x0B)), une tabulation verticale.

Il est aussi possible de spécifier les caractères à supprimer en utilisant le paramètre charlist. Listez simplement les caractères que vous voulez supprimer dans ce paramètre. Avec .., vous pourrez spécifier des intervalles de caractères.

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
"

Note : Le second paramètre a été ajouté en PHP 4.1.0.

Voir aussi trim() et rtrim().

Précédent | Sommaire | Suivant
localeconv | Niveau supérieur | md5_file


md5_file

(PHP 4 >= 4.2.0, PHP 5)

md5_file -- Calcule le md5 d'un fichier

Description

string md5_file ( string filename [, bool raw_output] )

md5_file() calcule le MD5 du fichier filename en utilisant l'algorithme RSA Data Security, Inc. MD5 Message-Digest Algorithm, puis retourne la valeur ainsi calculée. Le résultat est un nombre de 32 caractères hexadécimaux.

Liste de paramètres

filename

Le nom du fichier

raw_output

Lorsque TRUE, retourne le prétraitement en format binaire brut avec une grandeur de 16. Par défaut, cette valeur est à FALSE.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, FALSE autrement.

Historique

Version | Description
5.0.0 | Ajout du paramètre raw_output
5.1.0 | La fonction a changé pour utiliser les flux API. Cela signifie que vous pouvez l'utiliser avec des enveloppes, comme md5_file('http://example.com/..')

Voir aussi

md5()
sha1_file()
crc32()

Précédent | Sommaire | Suivant
ltrim | Niveau supérieur | md5


md5

(PHP 3, PHP 4, PHP 5)

md5 -- Calcule le md5 d'une chaîne

Description

string md5 ( string str [, bool raw_output] )

md5 calcule le MD5 de la chaîne de caractères str en utilisant l'algorithme RSA Data Security, Inc. MD5 Message-Digest Algorithm, et retourne le résultat. Le résultat est un nombre de 32 caractères hexadécimaux.

Note : Le paramètre raw_output a été ajouté en PHP 5.0.0 et vaut par défaut FALSE.

Exemple 1. Exemple avec md5()

<?php
$str = 'pomme';

if (md5($str) === 'ede0f9c3a1d2093e3f48fcafd3c70915') {
    echo "Voulez-vous une golden ou une spartan?";
    exit;
}
?>

Voir aussi
crc32(),
md5_file() et
sha1().

Précédent | Sommaire | Suivant
md5_file | Niveau supérieur | metaphone


metaphone

(PHP 4, PHP 5)

metaphone -- Calcule la clé metaphone

Description

string metaphone ( string str [, int phones] )

metaphone() calcule la clé metaphone de la chaîne de caractères str.

metaphone() est similaire à la fonction soundex() : elle créée une clé similaire pour des mots dont la prononciation est proche. C'est une fonction qui est plus précise que soundex() car elle prend en compte la prononciation anglaise. La clé metaphone générée est de taille variable.

metaphone() fonctionne en anglais, et n'utilise pas les spécificités de la langue française. Les résultats sur des termes français peuvent être des plus aléatoires.

Metaphone a été développée par Lawrence Philips philips@verity.com. Cette méthode est décrite dans le livre ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

Précédent | Sommaire | Suivant
md5 | Niveau supérieur | money_format


money_format

(PHP 4 >= 4.3.0, PHP 5)

money_format -- Met un nombre au format monétaire

Description

string money_format ( string format, float number )

money_format() retourne le nombre number avec le format financier. 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.

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.

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

Configuration. 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 de 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 : DM1.234,56).

%

Retourne le caractère %.

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.

Les caractères placés avant et après la chaîne de formatage seront laissés intacts.

Exemple 1. Exemple avec money_format()

Voici plusieurs exemples d'utilisation de la fonction money_format() avec différentes chaînes de formatage, et configurations locales.

<?php

$number = 1234.56;

// Affichons ce nombre au format international pour en_US
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number)."\n";
// USD 1,234.56

// Et au format italien national avec 2 decimales
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $number)."\n";
// L. 1.234,56

// Utilisation d'un nombre négatif
$number = -1234.5672;

// Format US national, avec les parenthèeses pour les nombres négatifs
// et 10 chiffres de précision à gauche
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $number)."\n";
// ($        1,234.57)

// Format similaire au précédent, en ajoutant 2 décimales
// pour la précision à droite, et en utilisant le caractère de remplissage '*'
echo money_format('%=*(#10.2n', $number)."\n";
// ($********1,234.57)

// Utilisons maintenant la justification à gauche, avec un champ de 14 caractères
// de long, sans groupage de chiffres, et en utilisant le format international
// pour de_DE
setlocale(LC_MONETARY, 'de_DE');
echo money_format('%=*^-14#8.2i', 1234.56)."\n";
// DEM 1234,56****

// Ajoutons encore à l'exemple précédent
setlocale(LC_MONETARY, 'en_GB');
$fmt = 'La valeur finale est %i (après 10 % de remise)';
echo money_format($fmt, 1234.56)."\n";
// La valeur finale est GBP 1,234.56 (après 10 % de remise)

?>

Voir aussi
setlocale(),
number_format(),
sprintf(),
printf() et
sscanf().

Précédent | Sommaire | Suivant
metaphone | Niveau supérieur | nl_langinfo


nl_langinfo

(PHP 4 >= 4.1.0, PHP 5)

nl_langinfo -- Rassemble des informations sur la langue et la configuration locale

Description

string nl_langinfo ( int item )

nl_langinfo() est utilisée pour accéder à chaque élément de la configuration locale. Contrairement à la fonction localeconv() qui renvoie tous les éléments, nl_langinfo() vous permet de sélectionner un élément précis.

Si le paramètre item n'est pas valide, FALSE sera retourné.

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.

Tableau 1. Constantes nl_langinfo()

Constante | Description
Constantes de la catégorie LC_TIME
ABDAY_(1-7) | Nom court du n-ème jour de la semaine.
DAY_(1-7) | Nom du n-ème jour de la semaine (DAY_1 = Dimanche).
ABMON_(1-12) | Nom abbrévié du n-ème mois de l'année.
MON_(1-12) | Nom du n-ème 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-heure avec ante/post meridian.
ERA | Alternative era.
ERA_YEAR | Année dans le format alternatif era.
ERA_D_T_FMT | Date et heure dans le format alternatif era (chaîne pouvant être utilisée dans la fonction strftime()).
ERA_D_FMT | Date dans le format alternatif era (chaîne pouvant être utilisée dans la fonction strftime()).
ERA_T_FMT | Heure dans le format alternatif era (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 regex pour chercher l'entrée "yes".
NOEXPR | Chaîne regex 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.

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi setlocale() et localeconv().

Précédent | Sommaire | Suivant
money_format | Niveau supérieur | nl2br


nl2br

(PHP 3, PHP 4, PHP 5)

nl2br -- Insère un retour à la ligne HTML à chaque nouvelle ligne

Description

string nl2br ( string string )

nl2br() retourne string après avoir inséré '<br />' devant toutes les nouvelles lignes.

Note : Depuis PHP 4.0.5, nl2br() est désormais compatible XHTML. Toutes les versions antérieures à 4.0.5 retourneront l'argument string avec '<br>' inséré devant les nouvelles lignes, au lieu de '<br />'.

Exemple 1. Exemple avec nl2br()

<?php
echo nl2br("foo n'est pas\n bar");
?>

L'exemple ci-dessus va afficher :

foo n'est pas<br />
 bar

Voir aussi
htmlspecialchars(),
htmlentities(),
wordwrap() et
str_replace().

Précédent | Sommaire | Suivant
nl_langinfo | Niveau supérieur | number_format


number_format

(PHP 3, PHP 4, PHP 5)

number_format -- Formate un nombre pour l'affichage

Description

string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] )

number_format() retourne une chaîne représentant number formaté. number_format() accepte un, deux ou 4 paramètres (mais pas trois).

Si seul le paramètre number est donné, il sera formaté sans partie décimale, mais avec une virgule entre chaque millier.

Si les deux paramètres number et decimals sont fournis, number sera formaté avec decimals décimales, un point (".") comme séparateur décimal et une virgule entre chaque millier.

Avec quatre paramètres, number sera formaté avec decimals décimales, dec_point comme séparateur décimal, et thousands_sep comme séparateur de milliers.

Seul le premier caractère du paramètre thousands_sep est utilisé. Par exemple, si vous utilisez bar comme séparateur de milliers, sur le nombre 1000, number_format() retournera 1b000.

Exemple 1. Exemple avec number_format()

En notation française, on utilise généralement deux chiffres après la virgule, une virgule comme séparateur décimal, et un espace comme séparateur de milliers. Cela donne :

<?php

$nombre = 1234.56;

// Notation anglaise (par défaut)
$english_format_number = number_format($nombre);
// 1,235

// Notation française
$nombre_format_francais = number_format($nombre, 2, ',', ' ');
// 1 234,56

$nombre = 1234.5678;

// Notation anglaise sans séparateur des centaines
$english_format_number = number_format($nombre, 2, '.', '');
// 1234.57

?>

Voir aussi
money_format(),
sprintf(),
printf() et
sscanf().

Précédent | Sommaire | Suivant
nl2br | Niveau supérieur | ord


ord

(PHP 3, PHP 4, PHP 5)

ord -- Retourne le code ASCII d'un caractère

Description

int ord ( string string )

ord retourne le code ASCII du premier caractère de string. Cette fonction est le contraire de chr().

Exemple 1. Exemple avec ord()

<?php
if (ord($str) == 10) {
  echo "Le premier caractère de \$str est une nouvelle ligne\n";
}
?>

Vous pouvez trouver une table des codes ASCII ici : http://www.asciitable.com.

Voir aussi chr().

Précédent | Sommaire | Suivant
number_format | Niveau supérieur | parse_str


parse_str

(PHP 3, PHP 4, PHP 5)

parse_str -- Analyse une requête HTTP

Description

void parse_str ( string str [, array &arr] )

parse_str() analyse la chaîne de caractères str comme s'il s'agissait d'une requête HTTP, passée via l'URL. Toutes les variables qu'elle y repère sont alors créées, avec leurs valeurs respectives. Si le second paramètre arr est fourni, les variables y seront stockées, sous forme d'index de tableau.

Note : Le support du paramètre optionnel arr a été ajouté en PHP 4.0.3.

Note : Pour accéder à l'URL appelante QUERY_STRING, vous devez utiliser la variable $_SERVER['QUERY_STRING']. Il est aussi intéressant de lire la section sur les variables externes à PHP.

Note : La configuration de magic_quotes_gpc affecte l'affichage de cette fonction car parse_str() utilise le même mécanisme que PHP utilise pour propager les variables $_GET, $_POST, etc.

Exemple 1. Exemple avec parse_str()

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
?>

Voir aussi
parse_url(),
pathinfo(),
http_build_query(),
get_magic_quotes_gpc() et
urldecode().

Précédent | Sommaire | Suivant
ord | Niveau supérieur | print


print

(PHP 3, PHP 4, PHP 5)

print -- Affiche une chaîne de caractères

Description

int print ( string arg )

print affiche la chaîne de caractères arg. print retourne toujours 1.

print() n'est pas vraiment une fonction (c'est techniquement une structure de langage). Cela fait que vous n'êtes pas obligé d'utiliser des parenthèses.

Exemple 1. Exemples avec print()

<?php
  print("Bonjour le monde");

  print "print() fonctionne aussi sans les parenthèses.";

  print "Ce print() se
répartit sur plusieurs lignes. Il affiche aussi les
nouvelles lignes";

  print "Ce print() se\nrépartit sur plusieurs lignes. Il affiche aussi les\nnouvelles lignes";

  print "L'échappement de caractères se fait : \"comme ceci\".";

// Vous pouvez utiliser des variables avec print
$foo = "foobar";
$bar = "barbaz";

print "foo vaut $foo"; // foo vaut foobar

// Vous pouvez aussi utiliser des tableaux
$bar = array("clé" => "foo");

print "c'est {$bar['clé']} !"; // c'est foo !

// Les guillemets simples annulent le remplacement des variables
print 'foo vaut $foo'; // foo vaut $foo

// Si vous n'utilisez pas d'autres caractères, vous
// pouvez afficher simplement vos variables comme ceci
print $foo; // foobar

print <<<END
Cette syntaxe s'intitule le "here document" et
permet d'afficher plusieurs lignes avec de
l'interpolation de variables. Notez que la fin de
la syntaxe doit apparaître sur une nouvelle ligne,
avec uniquement un point-virgule, et pas d'espace
de plus !
END;
?>

Pour une brève discussion à propos des différences entre print() et echo(), consultez cet article des FAQTs Knowledge Base : http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40

Note : Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les variables fonctions.

Voir aussi
echo(),
printf() et
flush().

Précédent | Sommaire | Suivant
parse_str | Niveau supérieur | printf


printf

(PHP 3, PHP 4, PHP 5)

printf -- Affiche une chaîne de caractères formatée

Description

int printf ( string format [, mixed args [, mixed ...]] )

printf() affiche les arguments args formatés sous forme de chaîne de caractères grâce à args. Les options de formatage sont documentées avec la fonction sprintf().

Retourne la longueur de la chaîne retournée.

Voir aussi
print(),
sprintf(),
vprintf(),
sscanf(),
fscanf() et
flush().

Précédent | Sommaire | Suivant
print | Niveau supérieur | quoted_printable_decode


quoted_printable_decode

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

quoted_printable_decode -- Convertit une chaîne quoted-printable en chaîne 8 bits

Description

string quoted_printable_decode ( string str )

quoted_printable_decode() retourne la chaîne de caractères str, après l'avoir convertie du format quoted printable binaire 8 bits (en accord avec la RFC2045, section 6.7, et non pas la RFC2821, section 4.5.2, pour que les virgules additionelles 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.

Précédent | Sommaire | Suivant
printf | Niveau supérieur | quotemeta


quotemeta

(PHP 3, PHP 4, PHP 5)

quotemeta -- Echappe les méta-caractères

Description

string quotemeta ( string str )

quotemeta retourne la chaîne str après avoir introduit un anti-slash (\) devant tous les caractères suivants :

. \ + * ? [ ^ ] ( $ )

Note : Cette fonction gère les chaînes binaires.

Voir aussi
addslashes(),
addcslashes(),
htmlentities(),
htmlspecialchars(),
nl2br(),
stripslashes() et
stripcslashes().

Précédent | Sommaire | Suivant
quoted_printable_decode | Niveau supérieur | rtrim


rtrim

(PHP 3, PHP 4, PHP 5)

rtrim -- Supprime les espaces (ou d'autres caractères) de fin de chaîne

Description

string rtrim ( string str [, string charlist] )

rtrim() retourne la chaîne str, après avoir supprimé tous les caractères blancs 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 NUL.

  • "\x0B" (ASCII 11 (0x0B)), une tabulation verticale.

Il est aussi possible de spécifier les caractères à supprimer en utilisant le paramètre charlist. Listez simplement les caractères que vous voulez supprimer dans ce paramètre. Avec .., vous pourrez spécifier des intervalles de caractères.

Exemple 1. Exemple avec rtrim()

<?php

$text = "        Voici quelques mots :) ...  ";
$trimmed = rtrim($text);
// $trimmed = "        Voici quelques mots :) ..."
$trimmed = rtrim($text,"     .");
// $trimmed = "        Voici quelques mots :)"
$clean = rtrim($binary,"\0x00..\x1F");
// supprime tous les caractères de contrôle ASCII au début de la chaîne de caractères.
// (de 0 à 31 inclus)

?>

Note : Le second paramètre a été ajouté en PHP 4.1.0.

Voir aussi trim() et ltrim().

Précédent | Sommaire | Suivant
quotemeta | Niveau supérieur | setlocale


setlocale

(PHP 3, PHP 4, PHP 5)

setlocale -- Modifie les informations de localisation

Description

string setlocale ( int category, string locale [, string ...] )

string setlocale ( int category, array locale )

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

category est une constante (ou une chaîne) qui spécifie la catégorie de fonctions affectées par la configuration de localisation :

  • LC_ALL pour toutes les constantes suivantes

  • LC_COLLATE pour la comparaison de chaînes de caractères. Voir strcoll()

  • LC_CTYPE pour la classification et la conversion de caractères. Voir strtoupper()

  • LC_MONETARY pour localeconv()

  • LC_NUMERIC pour le séparateur décimal. Voir localeconv()

  • LC_TIME pour le format de date et d'heure avec strftime()

  • LC_MESSAGES pour les réponses système (disponible si PHP a été compilé avec libintl)

Note : Depuis PHP 4.2.0, passer category en tant que chaîne est déconseillé, utilisez les constantes mentionnées plus haut à la place. Les passer en tant que chaînes (entre guillemets) provoquera l'affichage d'un message d'avertissement.

Si locale est NULL ou la chaîne vide "", les noms de locales seront pris dans l'environnement, à partir des variables de même nom que les catégories ci-dessus, ou depuis "LANG".

Si locale est NULL ou vaut "0", la configuration locale ne sera pas modifiée, et la configuration courante sera retournée.

Si locale est un tableau ou bien est suivi par des paramètres additionnels, alors chaque élément du tableau ou chaque paramètre tente d'être défini comme nouvelle locale jusqu'à ce qu'un réussisse. Cela est pratique si la locale est connue sous différents noms sur des systèmes différents ou bien pour prévoir une autre valeur en cas de non disponibilité de la locale choisie.

Note : La possibilité de passer plusieurs locales est disponible depuis PHP 4.3.0.

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.

Avertissement

L'information locale est maintenue par processus, non par thread. Si vous faites fonctionner PHP sur un serveur multi-threadé comme IIS ou Apache sur Windows, vous pourriez obtenir des changements soudains des configurations locales pendant qu'un script fonctionne, même si celui-ci n'appelle jamais la fonction setlocale(). Ceci survient à cause des autres scripts qui fonctionnent dans des threads différents du même processus. Ces scripts changent les configurations locales dans le processus au complet en utilisant la fonction setlocale().

Astuce : Les utilisateurs de Windows trouverons des informations utiles à propos du paramètre locale sur le site web MSDN de Microsoft. Les valeurs de locales supportées peuvent être trouvées ici et les chaînes de pays/région ici. Les systèmes Windows supportent les codes à trois lettres pour les pays/régions spécifiés par ISO 3166-Alpha-3, qui peut être trouvé sur le site web Unicode.

Exemple 1. Exemple avec setlocale()

<?php
/* Configure le script en hollandais */
setlocale (LC_ALL, 'nl_NL');

/* Affiche : vrijdag 22 december 1978 */
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* Essai de différentes valeurs possible pour l'allemand depuis &php; 4.3.0 */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "L'identifiant de l'allemand sur ce système est '$loc_de'";
?>

Exemple 2. Exemple avec setlocale() pour Windows

<?php
/* Configure le script en hollandais */
setlocale(LC_ALL, 'nld_nld');

/* Affiche : vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* Essai de différentes valeurs possible pour l'allemand depuis &php; 4.3.0 */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "L'identifiant de l'allemand sur ce système est '$loc_de'";
?>

Précédent | Sommaire | Suivant
rtrim | Niveau supérieur | sha1_file


sha1_file

(PHP 4 >= 4.3.0, PHP 5)

sha1_file -- Calcule le sha1 d'un fichier

Description

string sha1_file ( string filename [, bool raw_output] )

Calcule le sha1 du fichier 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

raw_output

Lorsque TRUE, retourne le prétraitement en format binaire brut avec une grandeur de 20. Par défaut, cette valeur est à FALSE.

Valeurs de retour

Retourne une chaîne de caractères en cas de succès, FALSE autrement.

Historique

Version | Description
5.0.0 | Ajout du paramètre raw_output
5.1.0 | La fonction a changé pour utiliser les flux API. Cela signifie que vous pouvez l'utiliser avec des enveloppes, comme sha1_file('http://example.com/..')

Voir aussi

sha1()
md5_file()
crc32()

Précédent | Sommaire | Suivant
setlocale | Niveau supérieur | sha1


sha1

(PHP 4 >= 4.3.0, PHP 5)

sha1 -- Calcule le sha1 d'une chaîne de caractères

Description

string sha1 ( string str [, bool raw_output] )

sha1() calcule le sha1 de la chaîne de caractères str en utilisant US Secure Hash Algorithm 1, puis retourne cette valeur. Un sha1 est un nombre hexadécimal de 40 caractères. Si le paramètre optionnel raw_output est passé à TRUE, le sha1 est retourné sous forme binaire brute avec une taille de 20.

Note : Le paramètre optionnel raw_output a été ajouté en PHP 5.0.0 et vaut FALSE par défaut.

Exemple 1. Exemple avec sha1()

<?php
$str = 'pomme';

if (sha1($str) === '752c14ea195c460bac3c3b7896975ee9fd15eeb7') {
    echo "Voulez-vous une golden ou une spartan ?";
    exit;
}
?>

Voir aussi
sha1_file(),
crc32() et
md5()

Précédent | Sommaire | Suivant
sha1_file | Niveau supérieur | similar_text


similar_text

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

similar_text -- Calcule la similarité de deux chaînes

Description

int similar_text ( string first, string second [, float &percent] )

similar_text() calcule la similarité entre les deux chaînes first et second, selon la méthode d'Oliver [1993]. 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.

Le troisième argument percent est une référence, où similar_text() va calculer la similarité en pourcentage automatiquement. Sinon, elle retourne le nombre de caractères identiques dans les deux chaînes.

Voir aussi levenshtein() et soundex().

Précédent | Sommaire | Suivant
sha1 | Niveau supérieur | soundex


soundex

(PHP 3, PHP 4, PHP 5)

soundex -- Calcule la clé soundex

Description

string soundex ( string str )

soundex calcule la clé soundex de la chaîne str.

La clé soundex possède la propriété qui fait que deux mots prononcés similairement auront la même clé soundex. Cette fonction est donc utilisée pour simplifier les recherches dans les bases de données, où vous connaissez la prononciation d'un mot ou nom, mais pas son orthographe exacte. Cette fonction retourne une chaîne de 4 caractères, commençant par une lettre.

L'implémentation de la fonction soundex de PHP a été décrite par Donald Knuth dans "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley (1973), pp. 391-392.

Notez bien que soundex() prend en compte la prononciation à l'anglaise, et non pas à la française. Les résultats pourront donc être très différents de ce que l'on peut attendre. Des versions en langue française de soundex existent, mais elles ne sont pas intégrées dans PHP.

Exemple 1. Exemples avec 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(),
metaphone() et
similar_text().

Précédent | Sommaire | Suivant
similar_text | Niveau supérieur | sprintf


sprintf

(PHP 3, PHP 4, PHP 5)

sprintf -- Retourne une chaîne formatée

Description

string sprintf ( string format [, mixed args [, mixed ...]] )

sprintf retourne une chaîne formatée, avec le format format, en utilisant les arguments args.

La chaîne de format est composée de zéro, une ou plusieurs directives : les caractères ordinaires (à l'exception de %) qui sont copiés directement dans le résultat, et des spécifications de conversion, qui exploitent chacune un des arguments passés après la chaîne de format. Ces formats s'appliquent à sprintf() et printf().

Chaque spécification de conversion est constituée d'un signe de pourcentage (%), suivi d'un ou plusieurs des éléments suivants, dans cet ordre :

  1. Un spécificateur d'espacement optionnel qui dit quel spécificateur doit être utilisé pour espacer les résultats à la bonne taille de la chaîne. Cela peut être un caractère espace ou 0 (caractère zéro). Par défaut, l'espacement est effectué avec le caractère espace. Un caractère d'espacement alternatif peut être spécifié en le préfixant avec un guillemet simple ('). Voir les exemples ci-dessous.

  2. Un remplisseur optionnel qui indique quel caractère sera utilisé pour compléter le résultat jusqu'à la longueur requise. Ce peut être le caractère d'espace, ou le caractère 0. Par défaut, le remplissage se fait avec des espaces. Un autre caractère de remplissage peut être spécifié en le préfixant avec un guillemet simple (') : voir les exemples ci-dessous.

  3. Un spécificateur d'alignement qui indique si le résultat doit être aligné à gauche ou à droite. Par défaut, le résultat est aligné à gauche. Le caractère - fera que le résultat sera aligné à droite.

  4. Un nombre optionnel, spécificateur de taille indique le nombre minimum de caractères que cette conversion doit fournir en résultat.

  5. Un spécificateur de précision qui indique le nombre de décimales qui doivent être affichées pour les nombres à virgule flottante. Lorsque vous utilisez ce spécificateur dans une chaîne, il agit comme un point de coupure, définissant une limite maximale de caractères de la chaîne.

  6. Un spécificateur de type qui indique le type avec lequel l'argument sera traité. Plusieurs types possibles :

    % : un caractère de pourcentage littéral. Aucun argument n'est nécessaire.
    b : l'argument est traité comme un entier, et présenté comme un nombre binaire.
    c : l'argument est traité comme un entier, et présenté comme le caractère de code ASCII correspondant.
    d : l'argument est traité comme un entier, et présenté comme un nombre décimal signé.
    e : l'argument est traité comme une notation scientifique (e.g. 1.2e+2). Le spécificateur de précision représente le nombre de chiffres après la virgule depuis PHP 5.2.1. Dans les versions antérieures, il a été pris comme nombre des chiffres significatifs (au moins un).
    u : l'argument est traité comme un entier, et présenté comme un nombre décimal non signé.
    f : l'argument est traité comme un nombre à virgule flottante (type float), et présenté comme un nombre à virgule flottante (tenant compte de la locale utilisée).
    F : l'argument est traité comme un nombre à virgule flottante (type float), et présenté comme un nombre à virgule flottante (ne tenant pas compte de la locale utilisée). Disponible depuis PHP 4.3.10 et PHP 5.0.3.
    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.
    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).

Depuis PHP 4.0.6, la chaîne de format supporte le numérotage et l'échange d'arguments. Par exemple :

Exemple 1. Echange d'arguments

<?php
$format = 'Il y a %d singes dans le %s';
printf($format, $num, $location);
?>
Ainsi, cet exemple peut 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 :

Exemple 2. Echange d'arguments (2)

<?php
$format = 'Le %s a %d singes';
printf($format, $num, $location);
?>
Ici, nous voyons bien le problème. L'ordre des arguments a été changé, et ne correspond plus à l'ordre des arguments dans le script PHP. Nous souhaitons laisser le code PHP intact, mais simplement indiquer dans la chaîne de formatage l'ordre dans lequel les arguments doivent être utilisés. La chaîne de format peut être réécrite ainsi :

Exemple 3. Echange d'arguments (3)

<?php
$format = 'Le %2\$s a %1\$d singes';
printf($format, $num, $location);
?>
Un des avantages est que vous pouvez désormais exploiter plusieurs fois les arguments sans les répéter. Ainsi :

Exemple 4. Echange d'arguments (4)

<?php
$format = 'Le %2\$s a %1\$d singes.
           C'est un beau %2$s, avec %1$d singes.';
printf($format, $num, $location);
?>

Voir aussi
printf(),
sscanf(),
fscanf(),
vsprintf() et
number_format().

Exemples

Exemple 5. sprintf() : exemples divers

<?php
$n =  43951789;
$u = -43951789;
$c = 65; // ASCII 65 est un '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 6. sprintf() : spécificateurs chaînes de caractères

<?php
$s = 'monkey';
$t = 'many monkeys';

printf("[%s]\n",      $s); // affichage d'une chaîne standard
printf("[%10s]\n",    $s); // justification à droite avec des espaces
printf("[%-10s]\n",   $s); // justification à gauche avec des espaces
printf("[%010s]\n",   $s); // l'espacement nul fonctionne aussi sur les chaînes
printf("[%'#10s]\n",  $s); // utilisation du caractère personnalisé de séparation '#'
printf("[%10.10s]\n", $t); // justification à gauche mais avec une coupure à 10 caractères
?>

L'exemple ci-dessus va afficher :

[monkey]
[    monkey]
[monkey    ]
[0000monkey]
[####monkey]
[many monke]

Exemple 7. sprintf() : entier sans espace

<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>

Exemple 8. sprintf() : formatage de devises

<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money affichera "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted affichera "123.10"
?>

Exemple 9. sprintf() : notation scientifique

<?php
$number = 362525200;

echo sprintf("%.3e", $number); // affiche 3.625e+8
?>

Précédent | Sommaire | Suivant
soundex | Niveau supérieur | sscanf


sscanf

(PHP 4 >= 4.0.1, PHP 5)

sscanf -- Analyse une chaîne à l'aide d'un format

Description

mixed sscanf ( string str, string format [, mixed &...] )

sscanf() est l'inverse de la fonction printf(). sscanf() lit des données dans la chaîne str, et l'interprète en fonction du format format, qui est décrit dans la documentation de la fonction sprintf(). Si seuls deux paramètres sont fournis, les valeurs trouvées seront retournées sous forme de tableau. Sinon, les valeurs seront placées dans un tableau. Si l'argument optionnel est passé, la fonction retournera le nombre de valeurs assignées. Le paramètre optionnel doit être passé par référence.

Tous les caractères blancs dans la chaîne format correspondent à un caractère blanc dans la chaîne str. Cela signifie que même une tabulation \t dans la chaîne de format peut correspondre à un simple espace dans la chaîne str.

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. Exemple avec sscanf() : utilisation des paramètres optionnels

<?php
// lit les informations d'auteur, et génère une entrée DocBook
$auth = "24    Lewis Carroll";
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);
echo "<author id=\"$id\">
    <firstname>$first</firstname>
    <surname>$last</surname>
</author>\n";
?>

Voir aussi
fscanf(),
printf() et
sprintf().

Précédent | Sommaire | Suivant
sprintf | Niveau supérieur | str_getcsv


str_ireplace

(PHP 5)

str_ireplace -- Version insensible à la casse de str_replace()

Description

mixed str_ireplace ( mixed search, mixed replace, mixed subject [, int &count] )

str_ireplace() retourne une chaîne de caractères ou un tableau dont toutes les occurrences de search dans subject (en ignorant la casse), ont été remplacées par la valeur de replace. Si vous n'avez pas besoin de règles de recherche complexes, il est recommandé d'utiliser cette fonction qui est plus rapide que eregi_replace() ou preg_replace(), exploitant l'option i.

Si subject est un tableau, le remplacement est effectué sur chacun des éléments du sujet subject, et la valeur retournée est un aussi un tableau.

Si search et replace sont des tableaux, alors str_replace() prendra une valeur de chaque tableau, et l'utilisera pour faire le remplacement dans subject. Si replace a moins de valeurs que search, alors une chaîne vide sera utilisée pour effectuer les remplacements. Si search est un tableau et que replace est une chaîne, alors la chaîne de remplacement sera utilisée pour chaque élément de search.

Exemple 1. Exemple avec str_ireplace()

<?php
$bodytag = str_ireplace("%body%", "black", "<body text=%BODY%>");
?>

Cette fonction est compatible avec les données binaires.

Note : Depuis PHP 5.0, le nombre de valeurs de needle trouvées et remplacées sera retourné dans le paramètre count passé par référence. Avant PHP 5.0.0, ce paramètre n'est pas disponible.

Voir aussi
str_replace(),
preg_replace() et
strtr().

Précédent | Sommaire | Suivant
str_getcsv | Niveau supérieur | str_pad


str_pad

(PHP 4 >= 4.0.1, PHP 5)

str_pad -- Complète une chaîne jusqu'à une taille donnée

Description

string str_pad ( string input, int pad_length [, string pad_string [, int pad_type]] )

str_pad retourne la chaîne input, complétée à droite, à gauche ou dans les deux sens, avec la chaîne pad_string jusqu'à ce qu'elle atteigne la taille de pad_length. Si le paramètre optionnel pad_string est omis, input sera complétée avec des espaces. Sinon, cette chaîne sera utilisée.

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.

Si la valeur de pad_length est négative, ou inférieure à la taille courante de la chaîne input, input est retournée inchangée.

Exemple 1. Exemple avec str_pad()

<?php
$input = "Alien";
echo str_pad($input, 10);                      // affiche "Alien     "
echo str_pad($input, 10, "-=", STR_PAD_LEFT);  // affiche "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH);   // affiche "__Alien___"
echo str_pad($input, 6 , "___");               // affiche "Alien_"
?>

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.

Précédent | Sommaire | Suivant
str_ireplace | Niveau supérieur | str_repeat


str_repeat

(PHP 4, PHP 5)

str_repeat -- Répète une chaîne

Description

string str_repeat ( string input, int multiplier )

str_repeat retourne la chaîne input répétée multiplier fois. multiplier doit être positif ou nul. Si multiplier vaut 0, la fonction retourne la chaîne vide.

Exemple 1. Exemple avec str_repeat()

<?php
  echo str_repeat("-=", 10);
?>

L'exemple ci-dessus va afficher :

-=-=-=-=-=-=-=-=-=-=

Voir aussi for, str_pad() et substr_count().

Précédent | Sommaire | Suivant
str_pad | Niveau supérieur | str_replace


str_replace

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

str_replace -- Remplace toutes les occurrences dans une chaîne

Description

mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )

str_replace() retourne une chaîne ou un tableau, dont toutes les occurrences de search dans subject ont été remplacées par replace. Si vous n'avez pas besoin de règles de remplacement compliquées, utilisez cette fonction de préférence à ereg_replace() et preg_replace().

Depuis PHP 4.0.5, chaque paramètre de str_replace() peut être un tableau.

Avertissement

Avant PHP 4.3.3, un bogue existait lors de l'utilisation de tableaux avec les paramètres search et replace en même temps. Les index de search qui étaient vides étaient ignorés, mais le pointeur interne de replace n'étais pas incrémenté. Cela a été corrigé en PHP 4.3.3, tout script s'appuyant sur ce bogue, doit supprimer les entrées vides avant d'appeler cette fonction pour imiter le comportement d'origine.

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.

Si search et replace sont des tableaux, alors str_replace() prendra une valeur de chaque tableau, et l'utilisera pour faire le remplacement dans subject. Si replace a moins de valeurs que search, alors une chaîne vide sera utilisée pour effectuer les remplacements. Si search est un tableau et que replace est une chaîne, alors la chaîne de remplacement sera utilisée pour chaque élément de search. Cependant, l'inverse n'aurait aucun sens.

Si search ou replace sont des tableaux, les éléments sont traités du premier, au dernier.

Exemple 1. Exemple avec str_replace()

<?php
// Génère : <body text='black'>
echo $bodytag = str_replace("%body%", "black", "<body text='%body%'>");

// Génère : Bnjr l mnd
$voyelles = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
echo $consonnes = str_replace($voyelles, "", "Bonjour le monde");

// Génère : Vous devriez manger des pizzas, des glaces et des gâteaux tous les jours.
$phrase  = "Vous devriez manger des fruits, des légumes et des fibres tous les jours.";
$regime = array("fruits", "légumes", "fibres");
$bonne_chere   = array("pizzas", "glaces", "gâteaux");

echo $newphrase = str_replace($regime, $bonne_chere, $phrase);

// Utilisation du compteur d'occurences en PHP 5.0.0
$str = str_replace("a", "", "La disparition est un lipogramme en E.", $count);
echo $count; // 3

// Ordre des remplacements
$str     = "Ligne 1\nLigne 2\rLigne 3\r\nLigne 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);

 ?>

Note : Cette fonction gère les chaînes binaires.

Note : Depuis PHP 5.0, le nombre de valeurs de search trouvées et remplacées seront retournées dans le paramètre count passé par référence. Avant PHP 5.0.0, ce paramètre n'est pas disponible.

Voir aussi
str_ireplace(),
substr_replace(),
preg_replace() et
strtr().

Précédent | Sommaire | Suivant
str_repeat | Niveau supérieur | str_rot13


str_rot13

(PHP 4 >= 4.2.0, PHP 5)

str_rot13 -- Effectue une transformation ROT13

Description

string str_rot13 ( string str )

str_rot13() effectue un encodage ROT13 de la chaîne str et retourne le résultat. L'encodage ROT13 décale toutes les lettres de 13 dans l'alphabet, et laisse tous les autres caractères inchangés. L'encodage et le décodage est fait par la même fonction : passer le résultat de str_rot13() à nouveau comme argument, retournera la chaîne originale.

Exemple 1. Exemple avec str_rot13()

<?php

echo str_rot13('PHP 4.3.0'); // CUC 4.3.0

?>

Note : Le comportement de cette fonction était bogué jusqu'en PHP 4.3.0. Avant cela, str était modifié, comme s'il était passé par référence.

Précédent | Sommaire | Suivant
str_replace | Niveau supérieur | str_shuffle


str_shuffle

(PHP 4 >= 4.3.0, PHP 5)

str_shuffle -- Mélange les caractères d'une chaîne de caractères

Description

string str_shuffle ( string str )

str_shuffle() mélange les caractères d'une chaîne. Une permutation parmi toutes celles possibles est créée.

Exemple 1. Exemple str_shuffle()

<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);

// Cela va afficher une ligne comme : bfdaec
echo $shuffled;
?>

Voir aussi shuffle() et rand().

Précédent | Sommaire | Suivant
str_rot13 | Niveau supérieur | str_split


str_split

(PHP 5)

str_split -- Convertit une chaîne de caractères en tableau

Description

array str_split ( string string [, int split_length] )

Convertit une chaîne de caractères en tableau. Si le paramètre optionnel split_length est spécifié, le tableau retourné sera découpé en sous-parties, chacune de taille split_length, sinon, chaque sous-partie aura la taille d'un caractère.

Cette fonction retourne FALSE si split_length est inférieur à 1. Si la longueur de split_length est supérieure à celle de string, la chaîne entière est retournée dans le premier (et seul) élément du tableau.

Exemple 1. Exemples d'utilisation de str_split()

<?php

$str = "Salut Dave";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => S
    [1] => a
    [2] => l
    [3] => u
    [4] => t
    [5] =>
    [6] => D
    [7] => a
    [8] => v
    [9] => e
)

Array
(
    [0] => Sal
    [1] => ut
    [2] => Dav
    [3] => e
)

Voir aussi chunk_split(),
preg_split(),
explode(),
count_chars(),
str_word_count() et
for.

Précédent | Sommaire | Suivant
str_shuffle | Niveau supérieur | str_word_count


str_word_count

(PHP 4 >= 4.3.0, PHP 5)

str_word_count -- Compte le nombre de mots utilisés dans une chaîne

Description

mixed str_word_count ( string string [, int format [, string charlist]] )

str_word_count() compte le nombre de mots dans la chaîne string. Si le paramètre optionnel format n'est pas spécifié, alors la valeur retournée sera un entier, représentant le nombre de mots trouvés. Si format est spécifié, la valeur retournée sera un tableau, qui dépend du format format. Les valeurs possibles pour format sont listées plus bas.

Dans cette fonction, la notion de "mot" dépend de la configuration de localisation. C'est une chaîne qui contient tous les caractères alphabétiques, et qui peut contenir, mais pas commencer par "'" et "-".

Liste de paramètres

string

La chaîne de caractères

format

Spécifie la valeur de retour de cette fonction. Les valeurs actuellement supportées sont :

  • 0 - retourne le nombre de mots trouvés

  • 1 - retourne un tableau contenant tous les mots trouvés à l'intérieur de string

  • 2 - retourne un tableau associatif, où la clé indique la position numérique du mot à l'intérieur de string et la valeur est le mot actuel

charlist

Une liste des caractères additionnels qui seront considérés comme un 'mot'

Valeurs de retour

Retourne un tableau ou un entier, dépendamment du format choisi.

Historique

Version | Description
5.1.0 | Ajout du paramètre charlist

Exemples

Exemple 1. Exemple avec str_word_count()

<?php

$str = "Salut l'ami, vous
        avez          une b3lle mine !";

print_r(str_word_count($str, 1));
print_r(str_word_count($str, 2));
print_r(str_word_count($str, 1, 'àáãç3'));

echo str_word_count($str);

?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Salut
    [1] => l'ami
    [2] => vous
    [3] => avez
    [4] => une
    [5] => b
    [6] => lle
    [7] => mine
)

Array
(
    [0] => Salut
    [6] => l'ami
    [13] => vous
    [26] => avez
    [40] => une
    [44] => b
    [46] => lle
    [50] => mine
)

Array
(
    [0] => Salut
    [1] => l'ami
    [2] => vous
    [3] => avez
    [4] => une
    [5] => belle
    [6] => mine
)

8

Voir aussi

explode()
preg_split()
split()
count_chars()
substr_count()

Précédent | Sommaire | Suivant
str_split | Niveau supérieur | strcasecmp


strcasecmp

(PHP 3 >= 3.0.2, PHP 4, PHP 5)

strcasecmp -- Comparaison insensible à la casse de chaînes binaires

Description

int strcasecmp ( string str1, string str2 )

strcasecmp() retourne < 0 si str1 est inférieure à str2; > 0 si str1 est plus grande que str2, et 0 si les deux chaînes sont égales.

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(),
substr(),
stristr(),
strncasecmp() et
strstr().

Précédent | Sommaire | Suivant
str_word_count | Niveau supérieur | strchr


strchr

(PHP 3, PHP 4, PHP 5)

strchr -- Alias de strstr()

Description

Cette fonction est un alias de : strstr().

Précédent | Sommaire | Suivant
strcasecmp | Niveau supérieur | strcmp


strcmp

(PHP 3, PHP 4, PHP 5)

strcmp -- Comparaison binaire de chaînes

Description

int strcmp ( string str1, string str2 )

strcmp() retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

Notez que cette comparaison est sensible à la casse.

Voir aussi
preg_match(),
strcasecmp(),
substr(),
stristr(),
strncasecmp(),
strncmp() et
strstr().

Précédent | Sommaire | Suivant
strchr | Niveau supérieur | strcoll


strcoll

(PHP 4 >= 4.0.5, PHP 5)

strcoll -- Comparaison de chaînes localisées

Description

int strcoll ( string str1, string str2 )

strcoll() retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales. Si la configuration de localisation courante est C ou POSIX, cette fonction est équivalente à strcmp().

Notez que cette comparaison est sensible à la casse, et que, contrairement à strcmp(), elle n'est pas compatible avec les chaînes binaires.

Note : Le paramètre strcoll() a été ajouté dans PHP 4.0.5 mais n'est activé dans la version win32 que depuis PHP 4.2.3.

Voir aussi
preg_match(),
strcmp(),
strcasecmp(),
substr(),
stristr(),
strncasecmp(),
strncmp(),
strstr() et
setlocale().

Précédent | Sommaire | Suivant
strcmp | Niveau supérieur | strcspn


strcspn

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

strcspn -- Trouve un segment de chaîne ne contenant pas certains caractères

Description

int strcspn ( string str1, string str2 [, int start [, int length]] )

strcspn() retourne la taille du premier segment de str1 qui contient aucun des caractères de str2.

Depuis PHP 4.3.0, strcspn() accepte deux paramètres de type entier optionnels qui peuvent être utilisés pour définir la position de départ start et la longueur length de la chaîne à examiner.

Note : Cette fonction gère les chaînes binaires.

Voir aussi strspn().

Précédent | Sommaire | Suivant
strcoll | Niveau supérieur | strip_tags


strip_tags

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

strip_tags -- Supprime les balises HTML et PHP d'une chaîne

Description

string strip_tags ( string str [, string allowable_tags] )

strip_tags() retourne la chaîne str après avoir supprimé 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().

Le paramètre optionnel allowable_tags permet d'indiquer les balises qui doivent être conservées.

Note : allowable_tags a été ajouté en PHP 3.0.13 et PHP 4.0b3. Depuis PHP 4.3.0, les commentaires HTML sont aussi supprimés. Ce comportement est inclus en interne et ne peut pas être modifié avec le paramètre allowable_tags.

Avertissement

Comme strip_tags() ne valide actuellement pas le HTML, les balises partielles ou rompues peuvent conduire à la suppression de plus de textes/données que désiré.

Avertissement

strip_tags() ne modifie pas les attributs des balises que vous autorisez via le paramètre allowable_tags, y compris les attributs style et onmouseover, que des utilisateurs mal intentionnés peuvent utiliser.

Exemple 1. Exemple avec strip_tags()

<?php
$text = '<p>Test paragraphe.</p><!-- Commentaire --> Autre texte';

echo strip_tags($text);
echo "\n";

// Permet la balise <p>
echo strip_tags($text, '<p>');
?>

L'exemple ci-dessus va afficher :

Test paragraphe. Autre texte
<p>Test paragraphe</p>. Autre texte

strip_tags() est protégé des données binaires depuis PHP 5.0.0.

Voir aussi htmlspecialchars().

Précédent | Sommaire | Suivant
strcspn | Niveau supérieur | stripcslashes


stripcslashes

(PHP 4, PHP 5)

stripcslashes -- Décode une chaîne encodée avec addcslashes()

Description

string stripcslashes ( string str )

stripcslashes() retourne la chaîne str après avoir supprimé tous les anti-slash. stripcslashes() respecte les séquences spéciales du C, telles que \n, \r..., les nombres octaux et hexadécimaux.

Voir aussi addcslashes().

Précédent | Sommaire | Suivant
strip_tags | Niveau supérieur | stripos


stripos

(PHP 5)

stripos -- Recherche la première occurrence dans une chaîne, sans tenir compte de la casse

Description

int stripos ( string haystack, string needle [, int offset] )

Retourne la position numérique de la première occurrence de needle dans la chaîne haystack. Contrairement à strpos(), stripos() est insensible à la casse. Et, contrairement à strrpos(), cette fonction peut prendre une chaîne complète comme paramètre needle et cette chaîne complète sera utilisée pour la recherche.

Si le paramètre needle n'est pas trouvé, strpos() retournera FALSE.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemple 1. Exemples 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 '$mystring'";
}

// 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 '$mystring'";
    echo " à la position $pos";
}
?>

Si needle n'est pas une chaîne, il est converti en entier, et utilisé comme caractère de code ASCII correspondant.

Le paramètre optionnel offset vous permet de spécifier à partir de quel caractère dans haystack vous souhaitez commencer la recherche. La position retournée sera toujours relative au début de la chaîne haystack.

Note : Cette fonction gère les chaînes binaires.

Voir aussi
strpos(),
strrpos(),
strrchr(),
substr(),
stristr(),
strstr(),
strripos() et
str_ireplace().

Précédent | Sommaire | Suivant
stripcslashes | Niveau supérieur | stripslashes


stripslashes

(PHP 3, PHP 4, PHP 5)

stripslashes -- Supprime les anti-slash d'une chaîne

Description

string stripslashes ( string str )

stripslashes() retourne une chaîne dont les anti-slash on été supprimés. \' devient ', etc. Les doubles anti-slash sont réduits à un seul anti-slash. stripslashes() est la fonction inverse de addslashes().

Note : Si magic_quotes_sybase est activée, aucun anti-slash n'est supprimé mais deux apostrophes sont remplacées par une seule à la place.

Un exemple d'utilisation de stripslashes() est lorsque la directive PHP magic_quotes_gpc est à on (valeur par défaut) et que vous insérez des données dans une base de données qui requiert la protection des valeurs. Par exemple, si vous affichez simplement et directement des données provenant d'un formulaire HTML.

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 multi-dimensionnel, 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);

// Affichage
print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => f'oo
    [1] => b'ar
    [2] => Array
        (
            [0] => fo'o
            [1] => b'ar
        )

)

Pour plus d'informations sur les "magic quotes", lisez la documentation sur get_magic_quotes_gpc().

Voir aussi addslashes() et get_magic_quotes_gpc().

Précédent | Sommaire | Suivant
stripos | Niveau supérieur | stristr


stristr

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

stristr -- Version insensible à la casse de strstr()

Description

string stristr ( string haystack, string needle )

stristr() retourne une sous-chaîne de haystack, allant de la première occurrence de needle jusqu'à la fin de la chaîne. needle et haystack sont traitées sans tenir compte de la casse.

Si needle est introuvable, stristr() retourne FALSE.

Si needle n'est pas une chaîne, elle sera convertie en entier, et utilisée comme code ascii du caractère correspondant.

Exemple 1. Exemple avec stristr()

<?php
$email = 'USER@EXAMPLE.com';
echo stristr($email, 'e');
// Affiche ER@EXAMPLE.com
?>

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

Note : Cette fonction gère les chaînes binaires.

Voir aussi
strstr(),
strrchr(),
substr() et
preg_match().

Précédent | Sommaire | Suivant
stripslashes | Niveau supérieur | strlen


strlen

(PHP 3, PHP 4, PHP 5)

strlen -- Calcule la taille d'une chaîne

Description

int strlen ( string string )

Retourne la taille de la chaîne string.

Liste de paramètres

string

La chaîne de caractères à mesurer.

Valeurs de retour

La taille de la chaîne string et 0 si le paramètre string est vide.

Exemples

Exemple 1. Exemple avec strlen()

<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7
?>

Voir aussi

count()
mb_strlen()

Précédent | Sommaire | Suivant
stristr | Niveau supérieur | strnatcasecmp


strnatcasecmp

(PHP 4, PHP 5)

strnatcasecmp -- Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)

Description

int strnatcasecmp ( string str1, string str2 )

strnatcasecmp() implémente l'algorithme de comparaison qui ordonne les chaînes tel qu'un homme le ferait. Cette fonction est similaire à la fonction strnatcmp(), mais la comparaison n'est pas sensible à la casse. Pour plus de détails, reportez-vous à Natural Order String Comparison de Martin Pool (en anglais).

strnatcasecmp() retourne < 0 si str1 est inférieure à str2 ; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

Voir aussi
preg_match(),
strcasecmp(),
substr(),
stristr(),
strcmp(),
strncmp(),
strncasecmp(),
strnatcmp() et
strstr().

Précédent | Sommaire | Suivant
strlen | Niveau supérieur | strnatcmp


strnatcmp

(PHP 4, PHP 5)

strnatcmp -- Comparaison de chaînes avec l'algorithme d'"ordre naturel"

Description

int strnatcmp ( string str1, string str2 )

strnatcmp() 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. Un exemple de la différence de traitement avec l'algorithme standard est présenté ci-dessous :

Exemple 1. Exemple avec strnatcmp()

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

strnatcmp() retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

Notez que cette comparaison est sensible à la casse.

Voir aussi
preg_match(),
strcasecmp(),
substr(),
stristr(),
strcmp(),
strncmp(),
strncasecmp(),
strnatcasecmp(),
strstr(),
natsort() et
natcasesort().

Précédent | Sommaire | Suivant
strnatcasecmp | Niveau supérieur | strncasecmp


strncasecmp

(PHP 4 >= 4.0.2, PHP 5)

strncasecmp -- Compare en binaire des chaînes de caractères

Description

int strncasecmp ( string str1, string str2, int len )

strncasecmp() est similaire à strcasecmp(), à la différence près qu'elle permet de limiter le nombre de caractères utilisés pour comparer str1 et str2, avec le paramètre len. Si une des chaînes est plus courte que len, alors la longueur de cette chaîne sera utilisée pour effectuer la comparaison.

strncasecmp() retourne < 0 si str1 est plus petite que str2; > 0 si str1 est plus grande que str2, et 0 si elles sont égales.

Voir aussi
preg_match(),
strcasecmp(),
strcmp(),
substr(),
stristr() et
strstr().

Précédent | Sommaire | Suivant
strnatcmp | Niveau supérieur | strncmp


strncmp

(PHP 4, PHP 5)

strncmp -- Comparaison binaire des n premiers caractères

Description

int strncmp ( string str1, string str2, int len )

strncmp est identique à la fonction strcmp(), avec la différence que vous pouvez spécifier le nombre maximum de caractères à utiliser pour la comparaison de str1 avec str2 grâce au paramètre len.

strncmp() retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

Notez que cette comparaison est sensible à la casse.

Voir aussi
preg_match(),
strncasecmp(),
strcasecmp(),
substr(),
stristr(),
strcmp() et
strstr().

Précédent | Sommaire | Suivant
strncasecmp | Niveau supérieur | strpbrk


strpbrk

(PHP 5)

strpbrk -- Recherche une chaîne de caractères dans un ensemble de caractères

Description

string strpbrk ( string haystack, string char_list )

strpbrk() recherche la chaîne haystack dans l'ensemble de caractères char_list et retourne une chaîne commençant au caractère trouvé (ou FALSE s'il n'est pas trouvé).

Note : Le paramètre char_list est sensible à la casse.

Exemple 1. Exemple avec strpbrk()

<?php

$text = 'Ceci est un texte Simple.';

// Ceci affichera "i est un texte simple." car 'i' correspond en premier
echo strpbrk($text, 'mi');

// Ceci affichera "Simple." car les caractères sont sensibles à la casse
echo strpbrk($text, 'S');
?>

Précédent | Sommaire | Suivant
strncmp | Niveau supérieur | strpos


strpos

(PHP 3, PHP 4, PHP 5)

strpos -- Trouve la position d'un caractère dans une chaîne

Description

int strpos ( string haystack, mixed needle [, int offset] )

strpos() retourne la position numérique de la première occurrence de needle dans la chaîne de caractères haystack. Contrairement à la fonction strrpos() avant PHP 5, celle-ci peut prendre une chaîne de caractères complète comme paramètre needle et cette chaîne sera utilisée en totalité.

Si needle n'est pas trouvée, la fonction retourne FALSE.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Note : Cette fonction gère les chaînes binaires.

Exemple 1. Exemple avec strpos()

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Notez l'utilisation de ===.  Un simple == ne donnerait pas le résultat escompté
// car la lettre 'a' est à la position 0 (la première).
if ($pos === false) {
    echo "La chaîne '$findme' n'a pas été trouvée dans la chaîne '$mystring'";
} else {
    echo "La chaîne '$findme' a été trouvée dans la chaîne '$mystring'";
    echo " et à la position $pos";
}

// On peut chercher le caractère, en ignorant tout avant une position
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, pas 0
?>

Si needle n'est pas une chaîne, il est converti en entier, et utilisé comme caractère de code ASCII correspondant.

Le paramètre optionnel offset vous permet de spécifier à partir de quel caractère dans haystack vous souhaitez commencer la recherche. La position retournée sera toujours relative au début de la chaîne haystack.

Voir aussi
strrpos(),
stripos(),
strripos(),
strrchr(),
substr(),
stristr() et
strstr().

Précédent | Sommaire | Suivant
strpbrk | Niveau supérieur | strrchr


strrchr

(PHP 3, PHP 4, PHP 5)

strrchr -- Trouve la dernière occurrence d'un caractère dans une chaîne

Description

string strrchr ( string haystack, string needle )

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

strrchr() retourne FALSE si needle n'est pas trouvé.

Si needle contient plus d'un caractère, seul le premier sera utilisé. Ce comportement est différent de celui de strchr().

Si needle n'est pas une chaîne, il est converti en entier, et utilisée comme caractère de code ASCII correspondant.

Exemple 1. Exemple avec strrchr()

<?php
// Lit le dernier dossier dans le chemin $PATH
$dir = substr(strrchr($PATH, ":"), 1);

// Lit tout, après la dernière nouvelle ligne
$text = "Ligne 1\nLigne 2\nLigne 3";
$last = substr(strrchr($text, 10), 1 );

?>

strrchr() a été protégée des données binaires depuis PHP 4.3.0.

Voir aussi
strstr(),
substr(),
stristr() et
strstr().

Précédent | Sommaire | Suivant
strpos | Niveau supérieur | strrev


strrev

(PHP 3, PHP 4, PHP 5)

strrev -- Inverse une chaîne

Description

string strrev ( string string )

strrev retourne la chaîne string, après avoir changé l'ordre des caractères.

Exemple 1. Inverser une chaîne avec strrev()

<?php
echo strrev("Bonjour le monde!");
// affiche "ednom el ruojnoB"
?>

Précédent | Sommaire | Suivant
strrchr | Niveau supérieur | strripos


strripos

(PHP 5)

strripos -- Trouve la position de la dernière occurrence d'une chaîne dans une autre de façon insensible à la casse

Description

int strripos ( string haystack, string needle [, int offset] )

Retourne la position numérique de la dernière occurrence de needle dans la chaîne de caractères haystack. Contrairement à strrpos(), strripos() est insensible à la casse. Notez aussi que les positions dans les chaînes commencent à 0, et non à 1.

Notez que needle peut être une chaîne constituée d'un ou de plusieurs caractères.

Si needle n'est pas trouvé, la fonction retourne FALSE.

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Exemple 1. Un exemple simple 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)

Le paramètre offset peu être spécifié pour commencer à chercher un nombre arbitraire de caractères dans la chaîne.

Les valeurs négatives commenceront la recherche aux caractères offset à partir du début de la chaîne de caractères.

Voir aussi
strrpos(),
strrchr(),
substr(),
stripos() et
stristr().

Précédent | Sommaire | Suivant
strrev | Niveau supérieur | strrpos


strrpos

(PHP 3, PHP 4, PHP 5)

strrpos -- Trouve la position de la dernière occurrence d'un caractère dans une chaîne

Description

int strrpos ( string haystack, string needle [, int offset] )

strrpos() retourne la position numérique de la dernière occurrence du caractère needle dans la chaîne haystack. Notez que needle doit être un caractère unique en PHP 4. Si une chaîne est passée dans ce paramètre, seul le premier caractère sera utilisé.

Si needle n'est pas trouvé, strrpos() retournera FALSE.

Il est facile de confondre le résultat "caractère trouvé à la position 0" et "caractère non trouvé". Voici comment faire la différence :

Exemple 1. Exemple avec strrpos()

<?php
// À partir de PHP 4.0b3 :
$pos = strrpos($machaine, "b");
if ($pos === false) { // note : trois signes égal
  // pas trouvé
}

// en versions plus anciennes que 4.0b3 :
$pos = strrpos($machaine, "b");
if (is_bool($pos) && !$pos) {
  // pas trouvé
}
?>

Si needle n'est pas une chaîne, il est converti en entier, et utilisé comme caractère de code ASCII correspondant.

Note : Depuis PHP 5.0.0, offset peut être spécifié pour commencer à rechercher un nombre de caractères arbitraires dans la chaîne. Les valeurs négatives vont stopper la recherche à partir d'un point arbitraire avant la fin de la chaîne.

Note : Le paramètre needle peut être composé de plus d'un caractère à partir de PHP 5.0.0.

Voir aussi
strpos(),
strripos(),
strrchr(),
substr(),
stristr() et
strstr().

Précédent | Sommaire | Suivant
strripos | Niveau supérieur | strspn


strspn

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

strspn -- Trouve le premier segment de chaîne

Description

int strspn ( string str1, string str2 [, int start [, int length]] )

strspn() retourne la taille du segment initial de la chaîne str1 qui est entièrement constitué de caractères contenus dans str2.

Exemple 1. Exemple avec strspn()

<?php
echo strspn("42 est la réponse, mais quelle est la question ...", "1234567890");
?>
va afficher 2, car la chaîne "42" est le plus long segment initial de "42 est la réponse, mais quelle est la question ...", dont tous les caractères sont contenus dans "1234567890".

De plus, elle accepte deux paramètres optionnels entiers qui peuvent être utilisés pour définir la position de départ et la longueur de la chaîne à examiner.

Depuis PHP 4.3.0, strspn() accepte deux paramètres de type entier optionnels qui peuvent être utilisés pour définir la position start et la longueur length de la chaîne à examiner.

Exemple 2. Exemple avec les paramètres optionnels

<?php
echo strspn("foo", "o", 1, 2); // 2
?>

Note : Cette fonction gère les chaînes binaires.

Voir aussi strcspn().

Précédent | Sommaire | Suivant
strrpos | Niveau supérieur | strstr


strstr

(PHP 3, PHP 4, PHP 5)

strstr -- Trouve la première occurrence dans une chaîne

Description

string strstr ( string haystack, string needle )

strstr() retourne une sous-chaîne de haystack, allant de la première occurrence de needle jusqu'à la fin de la chaîne.

Si needle est introuvable, strstr() retourne FALSE.

Si needle n'est pas une chaîne, elle sera convertie en entier, et utilisée comme code ascii du caractère correspondant.

Note : strstr() est sensible à la casse. Pour une fonctionnalité identique, mais insensible à la casse, reportez-vous à stristr().

Exemple 1. Exemple avec strstr()

<?php
$email = 'user@example.com';
$domaine = strstr($email, '@');
echo $domaine; // @example.com
?>

Note : Si vous voulez juste déterminer si un needle particulier se trouve dans la chaîne haystack, utilisez la fonction strpos() qui est plus rapide et qui consomme moins de ressources.

strstr() a été protégée des données binaires depuis PHP 4.3.0.

Voir aussi
preg_match(),
preg_match(),
stristr(),
strpos(),
strrchr() et
substr().

Précédent | Sommaire | Suivant
strspn | Niveau supérieur | strtok


strtok

(PHP 3, PHP 4, PHP 5)

strtok -- Coupe une chaîne en segments

Description

string strtok ( string str, string token )

strtok() coupe la chaîne str en segment, chaque segment étant délimité par token. Par exemple, si vous avez une chaîne telle que "Voici un bon exemple", vous pouvez en extraire les différents mots en utilisant cette fonction :

Exemple 1. Exemple avec strtok()

<?php

$string = "Ceci est\tun bon\nexemple";
// Utilisez aussi les nouvelles lignes et les tabulations
// comme séparateur de mots
$tok = strtok($string," \n\t");

while ($tok !== false) {
  echo "Mot = $tok<br />";
  $tok = strtok(" \n\t");
}
?>

Notez que seul le premier appel à strtok() nécessite les deux arguments. Tous les appels ultérieurs à strtok() ne nécessitent que le délimiteur. Pour initialiser à nouveau strtok(), ou pour recommencer, fournissez à nouveau le paramètre str. La chaîne str sera découpée dès que l'un des caractères de token est trouvé.

Le comportement de cette fonction avec la chaîne vide a changé depuis PHP 4.1.0. L'ancien comportement était de retourner une chaîne vide, tandis que le nouveau comportement, plus correct, retourne FALSE

Exemple 2. Ancien comportement de strtok()

<?php

$first_token  = strtok('/chose', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);

?>

L'exemple ci-dessus va afficher :

string(0) ""
string(9) "chose"

Exemple 3. Nouveau comportement de strtok()

<?php

$first_token  = strtok('/chose', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);

?>

L'exemple ci-dessus va afficher :

string(9) "chose"
bool(false)

Avertissement

Cette fonction peut retourner FALSE, mais elle peut aussi retourner une valeur équivalent à FALSE, utilisable dans une condition if simple. Utilisez l'opérateur === pour tester la valeur de retour exacte de cette fonction.

Voir aussi split() et explode().

Précédent | Sommaire | Suivant
strstr | Niveau supérieur | strtolower


strtolower

(PHP 3, PHP 4, PHP 5)

strtolower -- Renvoie une chaîne en minuscules

Description

string strtolower ( string str )

strtolower() retourne string, après avoir converti tous les caractères alphabétiques en minuscules.

Notez que la notion d'"alphabétique" est déterminée par la configuration de localisation. Cela signifie que pour la configuration par défaut "C", les caractères tels que les voyelles accentuées (comme é, è ou à) ne seront pas convertis.

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.

?>

Note : Cette fonction gère les chaînes binaires.

Voir aussi
strtoupper(),
ucfirst(),
ucwords() et
mb_strtolower().

Précédent | Sommaire | Suivant
strtok | Niveau supérieur | strtoupper


strtoupper

(PHP 3, PHP 4, PHP 5)

strtoupper -- Renvoie une chaîne en majuscules

Description

string strtoupper ( string string )

strtoupper() retourne string, après avoir converti tous les caractères alphabétiques en majuscules.

Notez que la notion d'"alphabétique" est déterminée par la configuration de localisation. Cela signifie que pour la configuration par défaut "C", les caractères tels que les voyelles accentuées (comme é, è ou à) ne seront pas converties.

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

Note : Cette fonction gère les chaînes binaires.

Voir aussi
strtolower(),
ucfirst(),
ucwords() et
mb_strtoupper().

Précédent | Sommaire | Suivant
strtolower | Niveau supérieur | strtr


strtr

(PHP 3, PHP 4, PHP 5)

strtr -- Remplace des caractères dans une chaîne

Description

string strtr ( string str, string from, string to )

string strtr ( string str, array replace_pairs )

strtr() retourne la chaîne str, après avoir remplacé chaque caractère du paramètre from par son équivalent dans le paramètre to.

Si from et to sont de tailles différentes, les caractères en trop dans l'un ou l'autre seront ignorés.

Exemple 1. Exemple avec strtr()

<?php
$addr = strtr($addr, "äâö", "aao");
?>

strtr() peut être appelée avec uniquement deux arguments. Dans ce cas, elle se comporte d'une autre façon : from doit alors être un tableau associatif de paires, qui seront remplacées dans la chaîne str. strtr() commence toujours par rechercher la chaîne la plus longue, et ne travaille pas sur des segments qu'elle a déjà modifié.

Exemple 2. Exemple de strtr() avec deux arguments

<?php
$trans = array("bonjour" => "salut", "salut" => "bonjour");
echo strtr("salut à tous, j'ai dit bonjour", $trans);
?>

L'exemple ci-dessus va afficher :

bonjour à tous, j'ai dit salut

Note : Les paramètres optionnels to et from ont été ajoutés en PHP 4.0.0.

Voir aussi ereg_replace().

Précédent | Sommaire | Suivant
strtoupper | Niveau supérieur | substr_compare


substr_compare

(PHP 5)

substr_compare -- Compare deux chaînes depuis un offset jusqu'à une longueur en caractères

Description

int substr_compare ( string main_str, string str, int offset [, int length [, bool case_insensitivity]] )

substr_compare() compare main_str à partir de la position offset avec str pendant length caractères.

Cette fonction retourne < 0 si main_str à partir de offset est inférieur à str, > 0 s'il est plus grand que str, et 0 si ils sont égaux. Si length est égal ou plus grand que la taille de main_str et que length est configuré, substr_compare() affiche une alerte et retourne FALSE.

Si case_insensitivity est à TRUE, la comparaison n'est pas sensible à la casse.

Exemple 1. Exemple avec substr_compare()

<?php
echo substr_compare("abcde", "bc", 1, 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
?>

Précédent | Sommaire | Suivant
strtr | Niveau supérieur | substr_count


substr_count

(PHP 4, PHP 5)

substr_count -- Compte le nombre d'occurrences de segments dans une chaîne

Description

int substr_count ( string haystack, string needle [, int offset [, int length]] )

substr_count() retourne le nombre d'occurrences de needle dans la chaîne haystack. Notez que needle est sensible à la casse.

Note : Cette fonction ne compte pas les chaînes de caractères qui se recouvrent. Voyez l'exemple ci-dessous !

Liste de paramètres

haystack

La chaîne de caractères pour rechercher à l'intérieur

needle

La chaîne de caractères que l'on recherche

offset

Le décalage où on commence à compter

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.

Valeurs de retour

Cette fonction retourne un entier.

Historique

Version | Description
5.1.0 | Ajout des paramètres offset et length

Exemples

Exemple 1. Exemple avec substr_count()

<?php
$text = 'Ceci est un test';
echo strlen($text); // 16

echo substr_count($text, 'est'); // 2

// la chaîne de caractères est réduite à 'st un test', alors elle affiche 1
echo substr_count($text, 'est', 6);

// le texte est réduit à 'st u', alors elle affiche 0
echo substr_count($text, 'est', 6, 4);

// génère une erreur parce que 8+10 > 16
echo substr_count($text, 'est', 8, 10);

// affiche seulement 1, parce que elle ne compte pas les chaînes de caractères
// qui se recouvrent
$text2 = 'gcdgcdgcd';
echo substr_count($text2, 'gcdgcd');
?>

Voir aussi

count_chars()
strpos()
substr()
strstr()

Précédent | Sommaire | Suivant
substr_compare | Niveau supérieur | substr_replace


substr_replace

(PHP 4, PHP 5)

substr_replace -- Remplace un segment dans une chaîne

Description

mixed substr_replace ( mixed string, string replacement, int start [, int length] )

substr_replace() remplace un segment de la chaîne string par la chaîne replacement. Le segment est délimité par start et éventuellement par length. La chaîne de résultat est retournée. Si string est un tableau, alors un tableau est retourné.

Si start est positif, le remplacement se fera à partir du start-ième caractère de string.

Si start est négatif, le remplacement se fera à partir du start-ième caractère en partant de la fin de la chaîne string.

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 la longueur du segment remplacé, mais compté dans l'ordre inverse de la chaîne string. 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.

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

Note : Cette fonction gère les chaînes binaires.

Voir aussi str_replace() et substr().

Précédent | Sommaire | Suivant
substr_count | Niveau supérieur | substr


substr

(PHP 3, PHP 4, PHP 5)

substr -- Retourne un segment de chaîne

Description

string substr ( string string, int start [, int length] )

substr() retourne le segment de string défini par start et length.

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.

Exemple 1. Exemple avec substr()

<?php
echo substr('abcdef', 1);     // bcdef
echo substr('abcdef', 1, 3);  // bcd
echo substr('abcdef', 0, 4);  // abcd
echo substr('abcdef', 0, 8);  // abcdef
echo substr('abcdef', -1, 1); // f

// Accéder à un simple caractère dans une chaîne
// peut également être réalisé en utilisant des accolades
$string = 'abcdef';
echo $string{0};                 // a
echo $string{3};                 // d
echo $string{strlen($string)-1}; // f

?>

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.

Exemple 2. Exemple de start négatif

<?php
$rest = substr("abcdef", -1);    // retourne "f"
$rest = substr("abcdef", -2);    // retourne "ef"
$rest = substr("abcdef", -3, 1); // retourne "d"
?>

Si length est fourni et est positif, la chaîne retournée contiendra au plus length caractères, en commençant à partir du caractère start (en fonction de la taille de la chaîne string). Si string est plus petite que start, substr() retournera FALSE.

Si length est fourni et négatif, alors le même nombre de caractères sera omis, en partant de la fin de la chaîne string. Si start représente une position hors de la chaîne, une chaîne vide sera retournée.

Exemple 3. Utiliser une valeur négative avec length

<?php
$rest = substr("abcdef", 0, -1);  // retourne "abcde"
$rest = substr("abcdef", 2, -1);  // retourne "cde"
$rest = substr("abcdef", 4, -4);  // retourne ""
$rest = substr("abcdef", -3, -1); // retourne "de"
?>

Voir aussi
strrchr(),
substr_replace(),
preg_match(),
trim(),
mb_substr() et
wordwrap().

Précédent | Sommaire | Suivant
substr_replace | Niveau supérieur | trim


trim

(PHP 3, PHP 4, PHP 5)

trim -- Supprime les espaces (ou d'autres caractères) en début et fin de chaîne

Description

string trim ( string str [, string charlist] )

trim() retourne la chaîne str, après avoir supprimé les caractères invisibles en début et fin de chaîne. Si le second paramètre charlist est omis, trim() supprimera les caractères suivants :

  • " " (ASCII 32 (0x20)), un espace ordinaire.

  • "\t" (ASCII 9 (0x09)), une tabulation.

  • "\n" (ASCII 10 (0x0A)), une nouvelle ligne (line feed).

  • "\r" (ASCII 13 (0x0D)), un retour chariot (carriage return).

  • "\0" (ASCII 0 (0x00)), le caractère NUL.

  • "\x0B" (ASCII 11 (0x0B)), une tabulation verticale.

Liste de paramètres

str

La chaîne de caractères qui sera coupé.

charlist

Optionnellement, les caractères supprimés peuvent aussi être spécifiés en utilisant le paramètre charlist. 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.

Historique

Version | Description
4.1.0 | Le paramètre optionnel charlist a été ajouté.

Exemples

Exemple 1. Exemple avec trim()

<?php

$text = "\t\tVoici quelques mots :) ...  ";

echo trim($text);         // "Voici quelques mots :) ..."
echo trim($text, " \t."); // "Voici quelques mots :)"

// supprime tous les caractères de contrôle ASCII au début de la chaîne de caractères.
// (de 0 à 31 inclus)
$clean = trim($binary, "\x00..\x1F");

?>

Exemple 2. Suppression de caractères dans un tableau avec trim()

<?php
function trim_value(&$value)
{
    $value = trim($value);
}

$fruit = array('pomme','banane ', ' canneberge ');
var_dump($fruit);

array_walk($fruit, 'trim_value');
var_dump($fruit);

?>

L'exemple ci-dessus va afficher :

array(3) {
  [0]=>
  string(5) "pomme"
  [1]=>
  string(7) "banane "
  [2]=>
  string(11) " canneberge "
}
array(3) {
  [0]=>
  string(5) "pomme"
  [1]=>
  string(6) "banane"
  [2]=>
  string(9) "canneberge"
}

Voir aussi

ltrim()
rtrim()

Précédent | Sommaire | Suivant
substr | Niveau supérieur | ucfirst


ucfirst

(PHP 3, PHP 4, PHP 5)

ucfirst -- Met le premier caractère en majuscule

Description

string ucfirst ( string str )

ucfirst retourne la chaîne str après avoir remplacé le premier caractère par sa majuscule, si le premier caractère est alphabétique.

Notez que la notion d'"alphabétique" est déterminée par la configuration de localisation. Cela signifie que pour la configuration par défaut "C", les caractères tels que les voyelles accentuées (comme é, è ou à) ne seront pas converties.

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
strtolower(),
strtoupper() et
ucwords().

Précédent | Sommaire | Suivant
trim | Niveau supérieur | ucwords


ucwords

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ucwords -- Met en majuscule la première lettre de tous les mots

Description

string ucwords ( string str )

ucwords retourne la chaîne str après avoir mis en majuscule la première lettre de tous les mots, si ce caractère est alphabétique.

La définition d'un mot est : toute séquence de caractères qui suit immédiatement un caractère blanc (espace, tabulation, nouvelle ligne, retour chariot, tabulation verticale).

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

Note : Cette fonction gère les chaînes binaires.

Voir aussi
strtoupper(),
strtolower() et
ucfirst().

Précédent | Sommaire | Suivant
ucfirst | Niveau supérieur | vfprintf


vfprintf

(PHP 5)

vfprintf -- Ecrit une chaîne formatée dans un flux

Description

int vfprintf ( resource handle, string format, array args )

vfprintf() écrit une chaîne produite en accord avec le paramètre format dans le flux handle. format est décrit dans la page de documentation de la fonction sprintf().

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.

Retourne la longueur de la chaîne produite.

Voir aussi
printf(),
sprintf(),
sscanf(),
fscanf(),
vsprintf() et
number_format().

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

Précédent | Sommaire | Suivant
ucwords | Niveau supérieur | vprintf


vprintf

(PHP 4 >= 4.1.0, PHP 5)

vprintf -- Affiche une chaîne formatée

Description

int vprintf ( string format, array args )

vprintf() affiche le tableau args, sous forme de chaîne formatée grâce à format Le format est le même que celui utilisé par sprintf().

vprintf() fonctionne comme printf() mais accepte un tableau comme argument, au lieu d'une liste d'arguments.

Retourne la longueur de la chaîne affiché.

Voir aussi
printf(),
sprintf() et
vsprintf().

Précédent | Sommaire | Suivant
vfprintf | Niveau supérieur | vsprintf


vsprintf

(PHP 4 >= 4.1.0, PHP 5)

vsprintf -- Retourne une chaîne formatée

Description

string vsprintf ( string format, array args )

vsprintf() retourne une chaîne formatée à partir du tableau de valeurs args, et en utilisant le format format. Le format est le même que celui utilisé par sprintf().

vsprintf() fonctionne comme sprintf() mais accepte un tableau comme argument, au lieu d'une liste d'arguments.

Voir aussi sprintf() et vprintf().

Précédent | Sommaire | Suivant
vprintf | Niveau supérieur | wordwrap


wordwrap

(PHP 4 >= 4.0.2, PHP 5)

wordwrap -- Effectue la césure d'une chaîne

Description

string wordwrap ( string str [, int width [, string break [, bool cut]]] )

wordwrap() retourne la chaîne str, après avoir inséré break tous les width caractères.

Par défaut, wordwrap() va automatiquement insérer une nouvelle ligne en utilisant \n tous les 75 caractères, si width ou break ne sont pas fournis.

Si le paramètre cut est mis à 1, la césure de la chaîne sera toujours à la taille width. Si vous avez un mot qui est plus long que la taille de césure, il sera coupé en morceaux. (Voir le second exemple.)

Note : Le paramètre optionnel cut a été ajouté en PHP 4.0.3.

Exemple 1. Exemple avec wordwrap()

<?php
$text = "Portez ce vieux whisky au juge blond qui fume.";
$newtext = wordwrap( $text, 20 );

echo "$newtext\n";
?>

L'exemple ci-dessus va afficher :

Portez ce vieux
whisky au juge
blond qui fume.

Exemple 2. Exemple avec wordwrap() avec césure

<?php
$text = "Un mot très très loooooooooooooooooong.";
$newtext = wordwrap($text, 8, "\n", 1);

echo "$newtext\n";
?>

L'exemple ci-dessus va afficher :

Un mot
très
très
looooooo
oooooooo
ooong.

Voir aussi nl2br() et chunk_split().

Précédent | Sommaire | Suivant
vsprintf | Niveau supérieur | Shockwave Flash


Shockwave Flash

Manuel PHP
Précédent Suivant

CLXII. Shockwave Flash

Introduction

PHP a la capacité de créer des animations Shockwave Flash grâce au module de Paul Haeberli : libswf module.

Note : Le support de SWF a été ajouté en PHP 4 RC2.

La bibliothèque libswf ne propose pas de support pour Windows. Le développement de cette bibliothèque a été stoppé, et la source n'est pas disponible pour assurer le portage vers les autres systèmes.

Pour une version plus à jour d'extension SWF, regardez donc les fonctions MING.

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

Vous avez besoin de la bibliothèque libswf pour compiler PHP avec le support de cette extension. Vous pouvez télécharger cette bibliothèque ftp://ftp.sgi.com/sgi/graphics/grafica/flash/.

Installation

Une fois que vous avez libswf, tout ce qui reste à faire est de configurer PHP avec --with-swf[=DIR] où DIR est le dossier qui accueille les dossiers de include et lib. Le dossier include doit contenir le fichier swf.h file et le dossier lib doit contenir le fichier libswf.a. Si vous décompressez la distribution de libswf, les deux fichiers seront dans le même dossier. Par conséquent, vous devrez les mettre dans le dossier ad hoc manuellement.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

MOD_COLOR (entier)

MOD_MATRIX (entier)

TYPE_PUSHBUTTON (entier)

TYPE_MENUBUTTON (entier)

BSHitTest (float)

BSDown (float)

BSOver (float)

BSUp (float)

OverDowntoIdle (entier)

IdletoOverDown (entier)

OutDowntoIdle (entier)

OutDowntoOverDown (entier)

OverDowntoOutDown (entier)

OverUptoOverDown (entier)

OverUptoIdle (entier)

IdletoOverUp (entier)

ButtonEnter (entier)

ButtonExit (entier)

MenuEnter (entier)

MenuExit (entier)

Exemples

Une fois que vous avez réussi à installer PHP avec Shockwave Flash, vous pouvez créer des animations Flash avec PHP. Vous serez surpris du résultat. Essayez donc ceci :

Exemple 1. Exemple SWF

<?php
  swf_openfile ("test.swf", 256, 256, 30, 1, 1, 1);
  swf_ortho2 (-100, 100, -100, 100);
  swf_defineline (1, -70, 0, 70, 0, .2);
  swf_definerect (4, 60, -10, 70, 0, 0);
  swf_definerect (5, -60, 0, -70, 10, 0);
  swf_addcolor (0, 0, 0, 0);

  swf_definefont (10, "Mod");
  swf_fontsize (5);
  swf_fontslant (10);
  swf_definetext (11, "This be Flash wit PHP!", 1);

  swf_pushmatrix ();
  swf_translate (-50, 80, 0);
  swf_placeobject (11, 60);
  swf_popmatrix ();

  for ($i = 0; $i < 30; $i++) {
    $p = $i/(30-1);
    swf_pushmatrix ();
    swf_scale (1-($p*.9), 1, 1);
    swf_rotate (60*$p,  'z');
    swf_translate (20+20*$p, $p/1.5, 0);
    swf_rotate (270*$p,  'z');
    swf_addcolor ($p, 0, $p/1.2, -$p);
    swf_placeobject (1, 50);
    swf_placeobject (4, 50);
    swf_placeobject (5, 50);
    swf_popmatrix ();
    swf_showframe ();
  }

  for ($i = 0; $i < 30; $i++) {
    swf_removeobject (50);
    if (($i%4) == 0) {
        swf_showframe ();
    }
  }

  swf_startdoaction ();
  swf_actionstop ();
  swf_enddoaction ();

  swf_closefile ();
?>

Table des matières
swf_actiongeturl -- Retourne l'URL d'une animation Shockwave Flash
swf_actiongotoframe -- Joue un cadre puis stoppe
swf_actiongotolabel -- Joue le cadre Flash spécifié
swf_actionnextframe -- Avance d'un cadre
swf_actionplay -- Joue l'animation Flash à partir du cadre courant
swf_actionprevframe -- Recule d'un cadre
swf_actionsettarget -- Fixe le contexte des actions
swf_actionstop -- Arrête l'animation Flash
swf_actiontogglequality -- Choisit le niveau de qualité de l'animation Flash
swf_actionwaitforframe -- Ignore les actions si le cadre Flash n'est pas chargé
swf_addbuttonrecord -- Contrôle la situation, l'apparence et la zone active du bouton Flash courant
swf_addcolor -- Fixe la couleur globale d'addition Flash (? : the global add color)
swf_closefile -- Ferme le fichier courant Shockwave Flash
swf_definebitmap -- Définit une image bitmap
swf_definefont -- Définit une police Flash
swf_defineline -- Définit une ligne
swf_definepoly -- Définit un polygone Flash
swf_definerect -- Définit un rectangle
swf_definetext -- Définit une chaîne de texte
swf_endbutton -- Termine la définition du bouton Flash courant
swf_enddoaction -- Termine l'action courante
swf_endshape -- Complète la définition de la forme Flash courante
swf_endsymbol -- Termine la définition de symbole
swf_fontsize -- Change la taille de la police
swf_fontslant -- Change l'inclinaison de la police courante
swf_fonttracking -- Change l'espacement des caractères
swf_getbitmapinfo -- Lit les informations sur une image
swf_getfontinfo -- Retourne des informations sur la police
swf_getframe -- Retourne le numéro de cadre courant
swf_labelframe -- Nomme le cadre courant
swf_lookat -- Définit une transformation de vue
swf_modifyobject -- Modifie un objet Flash
swf_mulcolor -- Fixe la couleur globale de multiplication (? : the global multiply color)
swf_nextid -- Retourne le prochain identifiant d'objet libre
swf_oncondition -- Décrit la transition utilisée pour déclencher une liste d'actions
swf_openfile -- Ouvre un nouveau fichier Shockwave Flash
swf_ortho2 -- Définit une projection orthogonale à 2 dimensions entre les coordonnées utilisateur et le port courant
swf_ortho -- Définit une projection orthogonale entre les coordonnées utilisateur et le port courant
swf_perspective -- Définit une projection orthogonale à 3 dimensions entre les coordonnées utilisateur et le port courant
swf_placeobject -- Place un objet sur la scène
swf_polarview -- Définit le point de vue de l'utilisateur en coordonnées polaires
swf_popmatrix -- Dépile la matrice de transformation
swf_posround -- Active l'approximation des translations d'objets Flash
swf_pushmatrix -- Empile la matrice de transformations courante dans la pile
swf_removeobject -- Enlève un objet
swf_rotate -- Rotation de la transformation courante
swf_scale -- Homothétie
swf_setfont -- Change la police courante
swf_setframe -- Fixe le cadre courant
swf_shapearc -- Dessine un arc de cercle
swf_shapecurveto3 -- Dessine une courbe Bézier cubique
swf_shapecurveto -- Dessine une courbe de Bézier quadratique entre deux points
swf_shapefillbitmapclip -- Choisit le mode de remplissage Flash par texture
swf_shapefillbitmaptile -- Choisit le mode de remplissage par texture Flash répétée
swf_shapefilloff -- Désactive le remplissage de formes Flash
swf_shapefillsolid -- Fixe la couleur pour le style courant de remplissage Flash
swf_shapelinesolid -- Fixe le style courant de ligne
swf_shapelineto -- Dessine une ligne
swf_shapemoveto -- Change la position courante
swf_showframe -- Affiche le cadre courant
swf_startbutton -- Commence la définition d'un bouton
swf_startdoaction -- Commence la description d'une liste d'actions pour le cadre courant
swf_startshape -- Commence une forme complexe
swf_startsymbol -- Définit un symbole
swf_textwidth -- Retourne la longueur d'une chaîne
swf_translate -- Déplace la transformation courante
swf_viewport -- Sélectionne une nouvelle zone pour un dessin ultérieur

Précédent | Sommaire | Suivant
wordwrap | Niveau supérieur | swf_actiongeturl


swf_actiongeturl

(PHP 4, PECL)

swf_actiongeturl -- Retourne l'URL d'une animation Shockwave Flash

Description

void swf_actiongeturl ( string url, string target )

Lit l'URL url, avec la destination target.

Liste de paramètres

url

L'RUL, sous la forme d'une chaîne de caractères.

target

La cible, sous la forme d'une chaîne de caractères.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
Shockwave Flash | Niveau supérieur | swf_actiongotoframe


swf_actiongotoframe

(PHP 4, PECL)

swf_actiongotoframe -- Joue un cadre puis stoppe

Description

void swf_actiongotoframe ( int framenumber )

swf_actiongotoframe() se déplace jusqu'au cadre framenumber, le joue, puis s'arrête.

Liste de paramètres

framenumber

Le numéro du cadre.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_actiongeturl | Niveau supérieur | swf_actiongotolabel


swf_actiongotolabel

(PHP 4, PECL)

swf_actiongotolabel -- Joue le cadre Flash spécifié

Description

void swf_actiongotolabel ( string label )

swf_actiongotolabel() affiche le cadre appelé label, puis s'arrête.

Liste de paramètres

label

Le libellé du cadre.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_actiongotoframe | Niveau supérieur | swf_actionnextframe


swf_actionnextframe

(PHP 4, PECL)

swf_actionnextframe -- Avance d'un cadre

Description

void swf_actionnextframe ( void )

Avance d'un cadre le cadre courant.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_actiongotolabel | Niveau supérieur | swf_actionplay


swf_actionplay

(PHP 4, PECL)

swf_actionplay -- Joue l'animation Flash à partir du cadre courant

Description

void swf_actionplay ( void )

Joue l'animation Flash à partir du cadre courant.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_actionnextframe | Niveau supérieur | swf_actionprevframe


swf_actionprevframe

(PHP 4, PECL)

swf_actionprevframe -- Recule d'un cadre

Description

void swf_actionprevframe ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_actionplay | Niveau supérieur | swf_actionsettarget


swf_actionsettarget

(PHP 4, PECL)

swf_actionsettarget -- Fixe le contexte des actions

Description

void swf_actionsettarget ( string target )

Fixe le contexte des actions. Vous pouvez utiliser cette fonction pour contrôler d'autres animations Flash qui seraient en fonctionnement.

Liste de paramètres

target

La cible, sous la forme d'une chaîne de caractères.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_actionprevframe | Niveau supérieur | swf_actionstop


swf_actionstop

(PHP 4, PECL)

swf_actionstop -- Arrête l'animation Flash

Description

void swf_actionstop ( void )

Arrête l'animation Flash au cadre courant.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_actionsettarget | Niveau supérieur | swf_actiontogglequality


swf_actiontogglequality

(PHP 4, PECL)

swf_actiontogglequality -- Choisit le niveau de qualité de l'animation Flash

Description

void swf_actiontogglequality ( void )

Modifie le niveau de qualité de l'animation : haut ou bas.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_actionstop | Niveau supérieur | swf_actionwaitforframe


swf_actionwaitforframe

(PHP 4, PECL)

swf_actionwaitforframe -- Ignore les actions si le cadre Flash n'est pas chargé

Description

void swf_actionwaitforframe ( int framenumber, int skipcount )

swf_actionwaitforframe() vérifie que le cadre framenumber a bien été chargé. Si ce n'est pas le cas, elle ignore les actions skipcount. Cela est très utile pour les séquences du type "Chargement...".

Liste de paramètres

framenumber

Le numéro du cadre.

skipcount

Le numéro des actions à ignorer.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_actiontogglequality | Niveau supérieur | swf_addbuttonrecord


swf_addbuttonrecord

(PHP 4, PECL)

swf_addbuttonrecord -- Contrôle la situation, l'apparence et la zone active du bouton Flash courant

Description

void swf_addbuttonrecord ( int states, int shapeid, int depth )

Permet de modifier les caractéristiques d'un bouton Flash.

Liste de paramètres

states

Définit les états du bouton autorisés : ce peut être BSHitTest, BSDown, BSOver ou BSUp.

shapeid

shapeid est l'apparence du bouton, c'est-à-dire l'objet qui représente le bouton.

depth

La profondeur de placement du bouton, dans le cadre courant.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Exemple avec swf_addbuttonrecord()

<?php
swf_startButton($objid, TYPE_MENUBUTTON);
swf_addButtonRecord(BSDown|BSOver, $buttonImageId, 340);
swf_onCondition(MenuEnter);
swf_actionGetUrl("http://www.example.com", "_level1");
swf_onCondition(MenuExit);
swf_actionGetUrl("", "_level1");
swf_endButton();
?>

Précédent | Sommaire | Suivant
swf_actionwaitforframe | Niveau supérieur | swf_addcolor


swf_addcolor

(PHP 4, PECL)

swf_addcolor -- Fixe la couleur globale d'addition Flash (? : the global add color)

Description

void swf_addcolor ( float r, float g, float b, float a )

swf_mulcolor() fixe la valeur globale de multiplication (the global multiply color...) à la couleur rgba. Cette couleur est utilisée (implicitement) par swf_placeobject(), swf_modifyobject() et swf_addbuttonrecord().

La couleur d'un objet sera ajoutée à rgba lorsque l'objet est placé sur la scène.

Liste de paramètres

r

La valeur pour le rouge

g

La valeur pour le vert

b

La valeur pour le bleu

a

La valeur pour l'alpha

Ces paramètres peuvent avoir une valeur positive ou négative.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_addbuttonrecord | Niveau supérieur | swf_closefile


swf_closefile

(PHP 4, PECL)

swf_closefile -- Ferme le fichier courant Shockwave Flash

Description

mixed swf_closefile ( [int return_file] )

Ferme le fichier courant, qui a été ouvert avec swf_openfile().

Liste de paramètres

return_file

Si le paramètre return_file a été fourni, il contiendra le fichier SWF fermé.

Valeurs de retour

Si return_file est fourni, retourne le contenu du SWF, sinon, retourn NULL.

Exemples

Exemple 1. Création d'un fichier Flash simple, basé sur une entrée de l'utilisateur, et sauvegarde dans une base.

<?php

// La variable $text est fournie par l'utilisateur

// Variables globales pour l'accès à la base de données
// utilisée dans la fonction swf_savedata())
$DBHOST = "localhost";
$DBUSER = "sterling";
$DBPASS = "secret";

swf_openfile("php://stdout", 256, 256, 30, 1, 1, 1);

    swf_definefont(10, "Ligon-Bold");
        swf_fontsize(12);
        swf_fontslant(10);

    swf_definetext(11, $text, 1);

    swf_pushmatrix();
        swf_translate(-50, 80, 0);
        swf_placeobject(11, 60);
    swf_popmatrix();

    swf_showframe();

    swf_startdoaction();
        swf_actionstop();
    swf_enddoaction();

$data = swf_closefile(1);

$data ?
  swf_savedata($data) :
  die("Error could not save SWF file");

// void swf_savedata(string data)
// Sauve le fichier généré dans la base de données
// pour accès ultérieur
function swf_savedata($data)
{
    global $DBHOST,
           $DBUSER,
           $DBPASS;

    $dbh = @mysql_connect($DBHOST, $DBUSER, $DBPASS);

    if (!$dbh) {
        die (sprintf("Error [%d]: %s",
                      mysql_errno(), mysql_error()));
    }

    $stmt = "INSERT INTO swf_files (file) VALUES ('$data')";

    $sth = @mysql_query($stmt, $dbh);

    if (!$sth) {
        die (sprintf("Error [%d]: %s",
                      mysql_errno(), mysql_error()));
    }

    @mysql_free_result($sth);
    @mysql_close($dbh);
}
?>

Précédent | Sommaire | Suivant
swf_addcolor | Niveau supérieur | swf_definebitmap


swf_definebitmap

(PHP 4, PECL)

swf_definebitmap -- Définit une image bitmap

Description

void swf_definebitmap ( int objid, string image_name )

swf_definebitmap() définit une bitmap à partir d'une image au format GIF, JPEG, RGB ou FI.

Liste de paramètres

objid

L'identifiant de l'objet SWF.

image_name

Une image GIF, JPEG, RGB ou FI. L'image sera convertie en Flash JPEG ou Flash color map.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_closefile | Niveau supérieur | swf_definefont


swf_definefont

(PHP 4, PECL)

swf_definefont -- Définit une police Flash

Description

void swf_definefont ( int fontid, string fontname )

swf_definefont() définit la police fontname et lui affecte l'identifiant fontid. Cette police devient alors la police courante.

Liste de paramètres

fontid

L'identifiant à donner à la police.

fontname

La police définie comme police curante.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_definebitmap | Niveau supérieur | swf_defineline


swf_defineline

(PHP 4, PECL)

swf_defineline -- Définit une ligne

Description

void swf_defineline ( int objid, float x1, float y1, float x2, float y2, float width )

Définit une ligne.

Liste de paramètres

objid

L'identifiant de l'objet.

x1

X : coordonnée du point de départ.

y1

Y : coordonnée du point de départ.

x2

X : coordonnée du point de fin.

y2

Y : coordonnée du point de fin.

width

L'épaisseur de la ligne.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_definefont | Niveau supérieur | swf_definepoly


swf_definepoly

(PHP 4, PECL)

swf_definepoly -- Définit un polygone Flash

Description

void swf_definepoly ( int objid, array coords, int npoints, float width )

Définit un polygone, dont les coordonnées des sommets sont placées dans le tableau coords).

Liste de paramètres

objid

L'identifiant de l'objet.

coords

Un tableau de coordonnées x et y.

npoints

Le nombre de points contenus dans le tableau coords.

width

La largeur des bords du polygone. Si width vaut 0.0, le polygone sera rempli.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_defineline | Niveau supérieur | swf_definerect


swf_definerect

(PHP 4, PECL)

swf_definerect -- Définit un rectangle

Description

void swf_definerect ( int objid, float x1, float y1, float x2, float y2, float width )

Définit un rectangle.

Liste de paramètres

objid

L'identifiant de l'objet.

x1

X : coordonnée du point en haut, à gauche.

y1

Y : coordonnée du point en haut, à gauche.

x2

X : coordonnée du point en bas, à droite.

y2

Y : coordonnée du point en bas, à droite.

width

L'épaisseur des bords est donnée par le paramètre width. width, 0.0 le rectangle sera rempli.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_definepoly | Niveau supérieur | swf_definetext


swf_definetext

(PHP 4, PECL)

swf_definetext -- Définit une chaîne de texte

Description

void swf_definetext ( int objid, string str, int docenter )

Définit une chaîne de texte.

Liste de paramètres

objid

L'identifiant de l'objet.

str

Le texte, sous la forme d'une chaîne de caractères.

docenter

docenter indique si la chaîne doit être centrée (valeur de 1), ou pas.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_definerect | Niveau supérieur | swf_endbutton


swf_endbutton

(PHP 4, PECL)

swf_endbutton -- Termine la définition du bouton Flash courant

Description

void swf_endbutton ( void )

swf_endbutton() termine la définition du bouton courant.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_definetext | Niveau supérieur | swf_enddoaction


swf_enddoaction

(PHP 4, PECL)

swf_enddoaction -- Termine l'action courante

Description

void swf_enddoaction ( void )

Termine l'action courante, démarrée par swf_startdoaction().

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_endbutton | Niveau supérieur | swf_endshape


swf_endshape

(PHP 4, PECL)

swf_endshape -- Complète la définition de la forme Flash courante

Description

void swf_endshape ( void )

swf_endshape() complète la définition de la forme courante.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_enddoaction | Niveau supérieur | swf_endsymbol


swf_endsymbol

(PHP 4, PECL)

swf_endsymbol -- Termine la définition de symbole

Description

void swf_endsymbol ( void )

swf_endsymbol() termine la définition de symbole, qui a été commencée avec swf_startsymbol().

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_endshape | Niveau supérieur | swf_fontsize


swf_fontsize

(PHP 4, PECL)

swf_fontsize -- Change la taille de la police

Description

void swf_fontsize ( float size )

Remplace la taille de la police par la taille size.

Liste de paramètres

size

La taille de la police, sous la forme d'un entier.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_endsymbol | Niveau supérieur | swf_fontslant


swf_fontslant

(PHP 4, PECL)

swf_fontslant -- Change l'inclinaison de la police courante

Description

void swf_fontslant ( float slant )

swf_fontslant() fixe l'inclinaison de la police courante à slant.

Liste de paramètres

slant

Les valeurs positives créeront une inclinaison vers la droite, les négatives, vers la gauche.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_fontsize | Niveau supérieur | swf_fonttracking


swf_fonttracking

(PHP 4, PECL)

swf_fonttracking -- Change l'espacement des caractères

Description

void swf_fonttracking ( float tracking )

swf_fonttracking() change l'espacement, et lui affecte la valeur de tracking. Cette fonction sert à accroître l'espace entre les lettres et le texte. Les valeurs positives accroissent cet espace, les négatives le réduisent.

Liste de paramètres

tracking

L'espacement entre les caractères.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_fontslant | Niveau supérieur | swf_getbitmapinfo


swf_getbitmapinfo

(PHP 4, PECL)

swf_getbitmapinfo -- Lit les informations sur une image

Description

array swf_getbitmapinfo ( int bitmapid )

Retourne un tableau d'informations sur l'image bitmap repérée par bitmapid.

Liste de paramètres

bitmapid

L'identifiant de l'image bitmap.

Valeurs de retour

Le tableau contient les éléments suivants :

  • "size" - la taille en octets de l'image.

  • "width" - la largueur en pixels de l'image.

  • "height" - la hauteur en pixels de l'image.

Précédent | Sommaire | Suivant
swf_fonttracking | Niveau supérieur | swf_getfontinfo


swf_getfontinfo

(PHP 4, PECL)

swf_getfontinfo -- Retourne des informations sur la police

Description

array swf_getfontinfo ( void )

swf_getfontinfo() retourne la hauteur du A majuscule, et du x minuscule.

Valeurs de retour

Retourne un tableau associatif avec les paramètres suivants :

  • Aheight : la hauteur du A majuscule, en pixels.

  • xheight : la hauteur du x minuscule, en pixels.

Précédent | Sommaire | Suivant
swf_getbitmapinfo | Niveau supérieur | swf_getframe


swf_getframe

(PHP 4, PECL)

swf_getframe -- Retourne le numéro de cadre courant

Description

int swf_getframe ( void )

swf_getframe() retourne le numéro de cadre courant.

Valeurs de retour

Retourne le numéro du cadre courant, sous la forme d'un entier.

Précédent | Sommaire | Suivant
swf_getfontinfo | Niveau supérieur | swf_labelframe


swf_labelframe

(PHP 4, PECL)

swf_labelframe -- Nomme le cadre courant

Description

void swf_labelframe ( string name )

swf_labelframe() donne le nom name au cadre courant.

Liste de paramètres

name

Le nom du cadre.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_getframe | Niveau supérieur | swf_lookat


swf_lookat

(PHP 4, PECL)

swf_lookat -- Définit une transformation de vue

Description

void swf_lookat ( float view_x, float view_y, float view_z, float reference_x, float reference_y, float reference_z, float twist )

Définit une transformation de vue.

Liste de paramètres

view_x

X : coordonnée de la position de la vue.

view_y

Y : coordonnée de la position de la vue.

view_z

Z : coordonnée de la position de la vue.

reference_x

X : coordonnée du point de référence.

reference_y

Y : coordonnée du point de référence.

reference_z

Z : coordonnée du point de référence.

twist

Contrôle la rotation autour de l'axe Z.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_labelframe | Niveau supérieur | swf_modifyobject


swf_modifyobject

(PHP 4, PECL)

swf_modifyobject -- Modifie un objet Flash

Description

void swf_modifyobject ( int depth, int how )

Modifie la position et/ou la couleur de l'objet situé à la profondeur de depth.

Liste de paramètres

depth

La profondeur, sous la forme d'un entier.

how

Détermine ce qui doit être modifié. how peut prendre les valeurs de MOD_MATRIX, MOD_COLOR ou la combinaison des deux.

MOD_COLOR utilise la couleur courante de multiplication (spécifiée par swf_mulcolor()) et la couleur courante d'addition (spécifiée par swf_addcolor()) pour colorer l'objet, et MOD_MATRIX utilise la matrice courante pour positionner l'objet.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_lookat | Niveau supérieur | swf_mulcolor


swf_mulcolor

(PHP 4, PECL)

swf_mulcolor -- Fixe la couleur globale de multiplication (? : the global multiply color)

Description

void swf_mulcolor ( float r, float g, float b, float a )

swf_mulcolor() fixe la valeur globale de multiplication (the global multiply color...) à la couleur rgba. Cette couleur est utilisée (implicitement) par swf_placeobject(), swf_modifyobject() et swf_addbuttonrecord().

La couleur d'un objet sera multipliée par rgba lorsque l'objet est placé sur la scène.

Liste de paramètres

r

La valeur pour le rouge

g

La valeur pour le vert

b

La valeur pour le bleu

a

La valeur pour l'alpha

Ces paramètres peuvent être positifs ou négatifs.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_modifyobject | Niveau supérieur | swf_nextid


swf_nextid

(PHP 4, PECL)

swf_nextid -- Retourne le prochain identifiant d'objet libre

Description

int swf_nextid ( void )

swf_nextid() retourne le prochain identifiant d'objet libre.

Valeurs de retour

Retourne l'identifiant, sous la forme d'un entier.

Précédent | Sommaire | Suivant
swf_mulcolor | Niveau supérieur | swf_oncondition


swf_oncondition

(PHP 4, PECL)

swf_oncondition -- Décrit la transition utilisée pour déclencher une liste d'actions

Description

void swf_oncondition ( int transition )

swf_oncondition() décrit une transition qui va déclencher une liste d'actions.

Liste de paramètres

transition

Il y a plusieurs types de transitions possibles, les suivantes sont destinées aux boutons de type TYPE_MENUBUTTON :

  • IdletoOverUp

  • OverUptoIdle

  • OverUptoOverDown

  • OverDowntoOverUp

  • IdletoOverDown

  • OutDowntoIdle

  • MenuEnter (IdletoOverUp|IdletoOverDown)

  • MenuExit (OverUptoIdle|OverDowntoIdle)

Pour les types TYPE_PUSHBUTTON voici les options :

  • IdletoOverUp

  • OverUptoIdle

  • OverUptoOverDown

  • OverDowntoOverUp

  • OverDowntoOutDown

  • OutDowntoOverDown

  • OutDowntoIdle

  • ButtonEnter (IdletoOverUp|OutDowntoOverDown)

  • ButtonExit (OverUptoIdle|OverDowntoOutDown)

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_nextid | Niveau supérieur | swf_openfile


swf_openfile

(PHP 4, PECL)

swf_openfile -- Ouvre un nouveau fichier Shockwave Flash

Description

void swf_openfile ( string filename, float width, float height, float framerate, float r, float g, float b )

Crée un nouveau fichier. swf_openfile() doit être la première fonction à appeler, sous peine d'erreur mémoire (segmentation fault).

Liste de paramètres

filename

Le chemin vers le fichier SWF. Si vous voulez envoyer la sortie à l'écran, définissez ce paramètre à php://stdout.

width

La largeur de la vidéo

height

La hauteur de la vidéo

framerate

L'échantillonnage du cadre

r

Valeur du rouge pour l'arrière-plan

g

Valeur du vert pour l'arrière-plan

b

Valeur du bleu pour l'arrière-plan

Valeurs de retour

Aucune valeur n'est retournée.

Historique

Version | Description
4.0.1 | Le support de php://stdout a été ajouté.

Précédent | Sommaire | Suivant
swf_oncondition | Niveau supérieur | swf_ortho2


swf_ortho2

(PHP 4, PECL)

swf_ortho2 -- Définit une projection orthogonale à 2 dimensions entre les coordonnées utilisateur et le port courant

Description

void swf_ortho2 ( float xmin, float xmax, float ymin, float ymax )

Définit une projection orthogonale à 2 dimensions entre les coordonnées utilisateur et le port courant. C'est la projection par défaut des animations Flash.

Si vous souhaitez une perspective, utilisez plutôt swf_perspective().

Liste de paramètres

xmin

xmax

ymin

ymax

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_openfile | Niveau supérieur | swf_ortho


swf_ortho

(PHP 4 >= 4.0.1, PECL)

swf_ortho -- Définit une projection orthogonale entre les coordonnées utilisateur et le port courant

Description

void swf_ortho ( float xmin, float xmax, float ymin, float ymax, float zmin, float zmax )

Définit une projection orthogonale entre les coordonnées utilisateur et le port courant.

Liste de paramètres

xmin

xmax

ymin

ymax

zmin

zmax

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_ortho2 | Niveau supérieur | swf_perspective


swf_perspective

(PHP 4, PECL)

swf_perspective -- Définit une projection orthogonale à 3 dimensions entre les coordonnées utilisateur et le port courant

Description

void swf_perspective ( float fovy, float aspect, float near, float far )

Définit une projection orthogonale à 3 dimensions entre les coordonnées utilisateur et le port courant.

Note : Diverses distorsions peuvent apparaître lors de ce genre de projections, car Flash ne dispose que d'une matrice à 2 dimensions. Certaines distorsions font vraiment tâche d'encre.

Liste de paramètres

fovy

L'angle de vue de la direction y.

aspect

Le paramètre aspect doit être choisi pour correspondre au ratio de la vue utilisée.

near

Le plan adjacent proche.

far

Le plan adjacent distant.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_ortho | Niveau supérieur | swf_placeobject


swf_placeobject

(PHP 4, PECL)

swf_placeobject -- Place un objet sur la scène

Description

void swf_placeobject ( int objid, int depth )

Place l'objet objid dans le cadre courant, à la profondeur depth.

swf_placeobject() utilise la couleur courante de multiplication (spécifiée par swf_mulcolor()) et la couleur courante d'addition (spécifiée par swf_addcolor()) pour colorer l'objet, et utilise la matrice courante pour positionner l'objet.

Liste de paramètres

objid

L'identifiant de l'objet.

depth

Doivent être compris entre 1 et 65535.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_perspective | Niveau supérieur | swf_polarview


swf_polarview

(PHP 4, PECL)

swf_polarview -- Définit le point de vue de l'utilisateur en coordonnées polaires

Description

void swf_polarview ( float dist, float azimuth, float incidence, float twist )

swf_polarview() définit la position de l'utilisateur en coordonnées polaires.

Liste de paramètres

dist

La distance entre le point de vue et l'origine.

azimuth

Définit l'angle azimutal dans le plan x,y mesuré en distance depuis l'axe y.

incidence

Définit l'angle d'incidence dans le plan y,z, mesuré en distance depuis l'axe z.

twist

L'angle de rotation du point de vue sur la ligne de vue, en utilisant la règle de la main droite.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_placeobject | Niveau supérieur | swf_popmatrix


swf_popmatrix

(PHP 4, PECL)

swf_popmatrix -- Dépile la matrice de transformation

Description

void swf_popmatrix ( void )

swf_popmatrix() dépile la matrice de transformation.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_polarview | Niveau supérieur | swf_posround


swf_posround

(PHP 4, PECL)

swf_posround -- Active l'approximation des translations d'objets Flash

Description

void swf_posround ( int round )

swf_posround() active ou désactive l'approximation lors des translations, lorsque des objets sont placés ou déplacés. Il y a des situations où le texte devient plus lisible lorsque l'approximation a été activée.

Liste de paramètres

round

Active l'approximation (1) ou la désactive (0).

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_popmatrix | Niveau supérieur | swf_pushmatrix


swf_pushmatrix

(PHP 4, PECL)

swf_pushmatrix -- Empile la matrice de transformations courante dans la pile

Description

void swf_pushmatrix ( void )

swf_pushmatrix() empile la matrice de transformations courante dans la pile.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_posround | Niveau supérieur | swf_removeobject


swf_removeobject

(PHP 4, PECL)

swf_removeobject -- Enlève un objet

Description

void swf_removeobject ( int depth )

Enlève l'objet situé à la profondeur depth de la scène.

Liste de paramètres

depth

La profondeur, sous la forme d'un entier.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_pushmatrix | Niveau supérieur | swf_rotate


swf_rotate

(PHP 4, PECL)

swf_rotate -- Rotation de la transformation courante

Description

void swf_rotate ( float angle, string axis )

swf_rotate() fait subir la rotation d'angle angle, autour de l'axe axis.

Liste de paramètres

angle

L'angle de rotation.

axis

Les valeurs possibles pour axis sont : 'x' (abscisses), 'y' (ordonnées) ou 'z' (cote).

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_removeobject | Niveau supérieur | swf_scale


swf_scale

(PHP 4, PECL)

swf_scale -- Homothétie

Description

void swf_scale ( float x, float y, float z )

swf_scale() fait une mise à l'échelle.

Liste de paramètres

x

Facteur X.

y

Facteur Y.

z

Facteur Z.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_rotate | Niveau supérieur | swf_setfont


swf_setfont

(PHP 4, PECL)

swf_setfont -- Change la police courante

Description

void swf_setfont ( int fontid )

swf_setfont() remplace la police courante par la police repérée par l'identifiant fontid.

Liste de paramètres

fontid

L'identifiant de la police.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_scale | Niveau supérieur | swf_setframe


swf_setframe

(PHP 4, PECL)

swf_setframe -- Fixe le cadre courant

Description

void swf_setframe ( int framenumber )

swf_setframe() sélectionne le cadre framenumber comme cadre actif.

Liste de paramètres

framenumber

Le numéro du cadre à définir.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_setfont | Niveau supérieur | swf_shapearc


swf_shapearc

(PHP 4, PECL)

swf_shapearc -- Dessine un arc de cercle

Description

void swf_shapearc ( float x, float y, float r, float ang1, float ang2 )

Dessine un arc de cercle.

Liste de paramètres

x

X : coordonnée du centre.

y

Y : coordonnée du centre.

r

Le radius de l'arc.

ang1

L'angle de départ.

ang2

L'angle de fin.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_setframe | Niveau supérieur | swf_shapecurveto3


swf_shapecurveto3

(PHP 4, PECL)

swf_shapecurveto3 -- Dessine une courbe Bézier cubique

Description

void swf_shapecurveto3 ( float x1, float y1, float x2, float y2, float x3, float y3 )

Dessine une courbe de Bézier cubique, en utilisant les points de coordonnées fournis.

La position finale devient alors la position courante.

Liste de paramètres

x1

X : coordonnée du premier point de contrôle.

y1

Y : coordonnée du premier point de contrôle.

x2

X : coordonnée du second point de contrôle.

y2

Y : coordonnée du second point de contrôle.

x3

X : coordonnée du point final.

y3

Y : coordonnée du point final.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_shapearc | Niveau supérieur | swf_shapecurveto


swf_shapecurveto

(PHP 4, PECL)

swf_shapecurveto -- Dessine une courbe de Bézier quadratique entre deux points

Description

void swf_shapecurveto ( float x1, float y1, float x2, float y2 )

Dessine la courbe de Bézier quadratique entre les points de coordonnées fournis.

La position finale devient la position courante.

Liste de paramètres

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.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_shapecurveto3 | Niveau supérieur | swf_shapefillbitmapclip


swf_shapefillbitmapclip

(PHP 4, PECL)

swf_shapefillbitmapclip -- Choisit le mode de remplissage Flash par texture

Description

void swf_shapefillbitmapclip ( int bitmapid )

Choisit le mode de remplissage par texture : les espaces vides seront remplis avec la bitmap bitmapid.

Liste de paramètres

bitmapid

L'identifiant du bitmap.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_shapecurveto | Niveau supérieur | swf_shapefillbitmaptile


swf_shapefillbitmaptile

(PHP 4, PECL)

swf_shapefillbitmaptile -- Choisit le mode de remplissage par texture Flash répétée

Description

void swf_shapefillbitmaptile ( int bitmapid )

swf_shapefillbitmaptile() active le mode de remplissage par texture : les espaces vides seront remplis avec la bitmap bitmapid, répétée autant de fois qu'il le faut (mode carrelage).

Liste de paramètres

bitmapid

L'identifiant du bitmap.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_shapefillbitmapclip | Niveau supérieur | swf_shapefilloff


swf_shapefilloff

(PHP 4, PECL)

swf_shapefilloff -- Désactive le remplissage de formes Flash

Description

void swf_shapefilloff ( void )

swf_shapefilloff() désactive le remplissage de la forme courante.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_shapefillbitmaptile | Niveau supérieur | swf_shapefillsolid


swf_shapefillsolid

(PHP 4, PECL)

swf_shapefillsolid -- Fixe la couleur pour le style courant de remplissage Flash

Description

void swf_shapefillsolid ( float r, float g, float b, float a )

swf_shapefillsolid() fixe la couleur pour le style courant de remplissage à rgba.

Liste de paramètres

r

La valeur pour le rouge

g

La valeur pour le vert

b

La valeur pour le bleu

a

La valeur pour l'alpha

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_shapefilloff | Niveau supérieur | swf_shapelinesolid


swf_shapelinesolid

(PHP 4, PECL)

swf_shapelinesolid -- Fixe le style courant de ligne

Description

void swf_shapelinesolid ( float r, float g, float b, float a, float width )

swf_shapelinesolid() permet de choisir le style de ligne, à savoir la couleur et la largeur.

Liste de paramètres

r

La valeur pour le rouge

g

La valeur pour le vert

b

La valeur pour le bleu

a

La valeur pour l'alpha

width

L'épaisseur de la ligne. Si défini à 0.0, aucune ligne ne sera tracée.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_shapefillsolid | Niveau supérieur | swf_shapelineto


swf_shapelineto

(PHP 4, PECL)

swf_shapelineto -- Dessine une ligne

Description

void swf_shapelineto ( float x, float y )

swf_shapelineto() dessine une ligne entre la position courante et le point de coordonnées fournis. La position fianle devient alors la position courante.

Liste de paramètres

x

X : coordonnée de la cible.

y

Y : coordonnée de la cible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_shapelinesolid | Niveau supérieur | swf_shapemoveto


swf_shapemoveto

(PHP 4, PECL)

swf_shapemoveto -- Change la position courante

Description

void swf_shapemoveto ( float x, float y )

swf_shapemoveto() fixe la position courante au point de coordonnées fournis.

Liste de paramètres

x

X : coordonnée de la cible.

y

Y : coordonnée de la cible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_shapelineto | Niveau supérieur | swf_showframe


swf_showframe

(PHP 4, PECL)

swf_showframe -- Affiche le cadre courant

Description

void swf_showframe ( void )

swf_showframe() affiche le cadre courant.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_shapemoveto | Niveau supérieur | swf_startbutton


swf_startbutton

(PHP 4, PECL)

swf_startbutton -- Commence la définition d'un bouton

Description

void swf_startbutton ( int objid, int type )

Commence la définition d'un bouton.

Liste de paramètres

objid

L'identifiant de l'objet.

type

Peut prendre les valeurs de TYPE_MENUBUTTON ou TYPE_PUSHBUTTON. La constante TYPE_MENUBUTTON permet au focus de traverser lorsque la souris est cliquée, alors que TYPE_PUSHBUTTON ne le permet pas.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_showframe | Niveau supérieur | swf_startdoaction


swf_startdoaction

(PHP 4, PECL)

swf_startdoaction -- Commence la description d'une liste d'actions pour le cadre courant

Description

void swf_startdoaction ( void )

swf_startdoaction() commence la description d'une liste d'actions pour le cadre courant. Cette fonction doit être appelée avant que les actions ne soient définies pour le cadre courant.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_startbutton | Niveau supérieur | swf_startshape


swf_startshape

(PHP 4, PECL)

swf_startshape -- Commence une forme complexe

Description

void swf_startshape ( int objid )

Commence une forme complexe.

Liste de paramètres

objid

L'identifiant de l'objet.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_startdoaction | Niveau supérieur | swf_startsymbol


swf_startsymbol

(PHP 4, PECL)

swf_startsymbol -- Définit un symbole

Description

void swf_startsymbol ( int objid )

swf_startsymbol() définit un identifiant d'objet comme symbole. Les symboles sont des petites animations Flash qui peuvent être jouées simultanément.

Liste de paramètres

objid

L'identifiant de l'objet que vous voulez définir comme symbole.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_startshape | Niveau supérieur | swf_textwidth


swf_textwidth

(PHP 4, PECL)

swf_textwidth -- Retourne la longueur d'une chaîne

Description

float swf_textwidth ( string str )

swf_textwidth() retourne la longueur de la chaîne str, en pixels, en utilisant la police courante.

Liste de paramètres

str

La chaîne de caractères.

Valeurs de retour

Retourne la longueur de la ligne, sous la forme d'un nombre à virgule flottante.

Précédent | Sommaire | Suivant
swf_startsymbol | Niveau supérieur | swf_translate


swf_translate

(PHP 4, PECL)

swf_translate -- Déplace la transformation courante

Description

void swf_translate ( float x, float y, float z )

Déplace la transformation courante.

Liste de paramètres

x

Valeur X.

y

Valeur Y.

z

Valeur Z.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_textwidth | Niveau supérieur | swf_viewport


swf_viewport

(PHP 4, PECL)

swf_viewport -- Sélectionne une nouvelle zone pour un dessin ultérieur

Description

void swf_viewport ( float xmin, float xmax, float ymin, float ymax )

swf_viewport() sélectionne une nouvelle zone pour y dessiner ultérieurement. La zone est définie de xmin à xmax et de ymin à ymax. Si cette fonction n'est pas appelée, les valeurs par défaut sont celles de l'écran courant.

Liste de paramètres

xmin

xmax

ymin

ymax

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
swf_translate | Niveau supérieur | Swish Functions


Sybase

Manuel PHP
Précédent Suivant

CLXIV. Sybase

Introduction

Pré-requis

Installation

Pour activer le support des bases de données Sybase-DB, vous devez compiler PHP avec l'option --with-sybase[=DIR]. DIR est le dossier d'installation de Sybase et, par défaut, il vaut /home/sybase. Pour activer le support de Sybase-CT, vous devez compiler PHP avec l'option --with-sybase-ct[=DIR]. DIR est le dossier d'installation de Sybase et, par défaut, il vaut /home/sybase.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Sybase

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
sybase.allow_persistent | "1" | PHP_INI_ALL | PHP_INI_ALL dans PHP <= 4.0.2. PHP_INI_SYSTEM dans PHP <= 4.0.3.
sybase.max_persistent | "-1" | PHP_INI_ALL | PHP_INI_ALL dans PHP <= 4.0.2. PHP_INI_SYSTEM dans PHP <= 4.0.3.
sybase.max_links | "-1" | PHP_INI_ALL | PHP_INI_ALL dans PHP <= 4.0.2. PHP_INI_SYSTEM dans PHP <= 4.0.3.
sybase.interface_file | "/usr/sybase/interfaces" | PHP_INI_SYSTEM |
sybase.min_error_severity | "10" | PHP_INI_ALL |
sybase.min_message_severity | "10" | PHP_INI_ALL |
sybase.compatability_mode | "0" | PHP_INI_ALL |
magic_quotes_sybase | "0" | PHP_INI_ALL |

Voici un éclaircissement sur l'utilisation des directives de configuration.

sybase.allow_persistent booléen

Activation ou non des connexions persistantes.

sybase.max_persistent entier

Le nombre maximum de connexions Sybase persistantes par processus. -1 signifie illimité.

sybase.max_links entier

Le nombre maximum de connexions Sybase par processus. -1 signifie illimité.

sybase.min_error_severity entier

Le niveau minimal d'erreur à afficher.

sybase.min_message_severity entier

Le niveau minimal de message d'erreur à afficher.

sybase.compatability_mode booléen

Mode de compatibilité avec les anciennes versions de PHP 3.0. Si activé (on), cela va faire que PHP assigne automatiquement des types aux résultats, en fonctions de leur type Sybase, au lieu de les traiter comme des chaînes de caractères. Ce mode de compatibilité ne va pas rester des années, alors essayez de modifier votre code, et de désactiver cette fonctionnalité.

magic_quotes_sybase booléen

Si magic_quotes_sybase est aussi activé, un guillemets simple est échappé avec un guillemet simple au lieu d'un anti-slash, si magic_quotes_gpc ou magic_quotes_runtime est activé.

Note : Si la directive magic_quotes_sybase est activée, elle remplacera complètement magic_quotes_gpc. Ce qui fait que même si magic_quotes_gpc retourne TRUE, les guillemets doubles, les anti-slashes ou les caractères NULL ne seront pas protégés.

Sybase-CT

Tableau 2. Options de configuration

Nom | Par défaut | Modifiable | Historique
sybct.allow_persistent | "1" | PHP_INI_SYSTEM | PHP_INI_ALL dans PHP <= 4.0.2. Disponible depuis PHP 4.0.2.
sybct.max_persistent | "-1" | PHP_INI_SYSTEM | PHP_INI_ALL dans PHP <= 4.0.2. Disponible depuis PHP 4.0.2.
sybct.max_links | "-1" | PHP_INI_SYSTEM | PHP_INI_ALL dans PHP <= 4.0.2. Disponible depuis PHP 4.0.2.
sybct.min_server_severity | "10" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
sybct.min_client_severity | "10" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
sybct.hostname | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
sybct.deadlock_retry_count | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

sybct.allow_persistent booléen

Autorise ou pas les connexions persistantes Sybase-CT. Par défaut vaut On.

sybct.max_persistent entier

Le nombre maximum de connexions Sybase-CT persistantes par processus. -1 signifie illimité. C'est aussi la valeur par défaut.

sybct.max_links entier

Le nombre maximum de connexions Sybase-CT par processus, y compris les connexions persistantes. -1 signifie illimité.

sybct.min_server_severity entier

Les messages du serveur ayant une criticité supérieure ou égale à la valeur de cette option seront rapportés comme alertes. Cette valeur peut aussi être modifiée depuis les scripts en appelant la fonction sybase_min_server_severity(). Par défaut, cette option vaut 10.

sybct.min_client_severity entier

Les messages de la bibliothèque cliente ayant une criticité supérieure ou égale à la valeur de cette option seront rapportés comme alertes. Cette valeur peut aussi être modifiée depuis les scripts en appelant la fonction sybase_min_client_severity(). Par défaut, cette option vaut 10.

sybct.login_timeout entier

Le nombre maximal de secondes à attendre pour effectuer avec succès une connexion avant d'échouer. Notez que si max_execution_time est dépassé avant que ce nombre de secondes, votre script se terminera avant de pouvoir exécuter une action sur l'échec de connexion. Par défaut, ce nombre vaut une minute.

sybct.timeout entier

Le nombre maximal de secondes à ettendre pour effectuer avec succès une requête avant d'échouer. Notez que si max_execution_time est dépassé avant que ce nombre de secondes, votre script se terminera avant de pouvoir exécuter une action sur l'échec de connexion. Par défaut, aucune limite n'est fixé.

sybct.hostname chaîne de caractères

Le nom de l'hôte à partir duquel vous prétendez être connecté, afin qu'il soit affiché par sp_who. Par défaut, il n'y a pas de valeur.

sybct.deadlock_retry_count int

Permet de définir le nombre de tentatives de résolution des blocages. La valeur par défaut est -1, ou forever, c'est à dire indéfiniment.

Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Types de ressources

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
sybase_affected_rows -- Retourne le nombre de lignes affectées par la dernière requête Sybase
sybase_close -- Ferme une connexion Sybase
sybase_connect -- Ouvre une connexion à un serveur Sybase
sybase_data_seek -- Déplace le pointeur interne de lignes Sybase
sybase_deadlock_retry_count -- Configure le nombre de tentatives lors de blocages (deadlock)
sybase_fetch_array -- Retourne une ligne Sybase sous la forme d'un tableau
sybase_fetch_assoc -- Lit une ligne de résultat Sybase sous forme de tableau associatif
sybase_fetch_field -- Lit les informations d'un champ Sybase
sybase_fetch_object -- Retourne une ligne Sybase sous la forme d'un objet
sybase_fetch_row -- Retourne une ligne Sybase sous la forme d'un tableau numérique
sybase_field_seek -- Modifie l'index d'un champ Sybase
sybase_free_result -- Libère un résultat Sybase de la mémoire
sybase_get_last_message -- Retourne le dernier message du serveur
sybase_min_client_severity -- Fixe la sévérité minimale du client Sybase
sybase_min_error_severity -- Fixe la sévérité minimale du client pour les erreurs
sybase_min_message_severity -- Fixe la sévérité minimale du client pour les messages
sybase_min_server_severity -- Fixe la sévérité minimale du client pour le serveur Sybase
sybase_num_fields -- Retourne le nombre de champs dans un résultat Sybase
sybase_num_rows -- Retourne le nombre de lignes dans un résultat Sybase
sybase_pconnect -- Ouvre une connexion persistante à un serveur Sybase
sybase_query -- Envoie une requête à une base Sybase
sybase_result -- Lit une valeur dans un résultat
sybase_select_db -- Sélectionne une base de données Sybase
sybase_set_message_handler -- Configure le gestionnaire de messages Sybase
sybase_unbuffered_query -- Envoie une requête à Sybase et ne bloque pas

Précédent | Sommaire | Suivant
SwishSearch->setStructure | Niveau supérieur | sybase_affected_rows


sybase_affected_rows

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

sybase_affected_rows -- Retourne le nombre de lignes affectées par la dernière requête Sybase

Description

int sybase_affected_rows ( [resource link_identifier] )

sybase_affected_rows() retourne le nombre de lignes affectées par la dernière requête INSERT, UPDATE ou DELETE sur le serveur associé à l'identifiant de connexion link_identifier. Si le lien n'est pas précisé, le dernier lien ouvert sera utilisé.

Exemple 1. Requête d'effacement

<?php
/* connexion à la base */
sybase_connect('SYBASE', '', '') or
die("Impossible de se connecter");
sybase_select_db("db");

sybase_query("DELETE FROM sometable WHERE id < 10");
printf("Nombre de lignes effacées : %d\n", sybase_affected_rows());
?>

L'exemple ci-dessus va afficher :

Nombre de lignes effacées : 10

Cette commande ne sert à rien sur les requêtes SELECT : uniquement sur des requêtes qui modifient les lignes. Pour connaître le nombre de lignes retournées par un SELECT, utilisez sybase_num_rows().

Voir aussi sybase_num_rows().

Précédent | Sommaire | Suivant
Sybase | Niveau supérieur | sybase_close


sybase_close

(PHP 3, PHP 4, PHP 5)

sybase_close -- Ferme une connexion Sybase

Description

bool sybase_close ( [resource link_identifier] )

sybase_close() termine la connexion avec le serveur Sybase associé à l'identifiant de connexion link_identifier.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notez qu'il n'est pas utile de fermer les connexions non persistantes, car elles seront terminées à la fin du script.

sybase_close() ne ferme pas les connexions persistantes générées par sybase_pconnect().

Voir aussi sybase_connect() et sybase_pconnect().

Précédent | Sommaire | Suivant
sybase_affected_rows | Niveau supérieur | sybase_connect


sybase_connect

(PHP 3, PHP 4, PHP 5)

sybase_connect -- Ouvre une connexion à un serveur Sybase

Description

resource sybase_connect ( [string servername [, string username [, string password [, string charset [, string appname]]]]] )

sybase_connect() retourne un identifiant positif de lien Sybase en cas de succès, et FALSE en cas d'erreur.

sybase_connect() établit une connexion à un serveur Sybase. Le nom de serveur servername doit être valide, défini dans le fichier d'interface.

Si un deuxième appel à sybase_connect() est fait avec les mêmes arguments, une nouvelle connexion ne sera pas établie, mais ce sera l'identifiant de la connexion déjà ouverte qui sera retourné.

La connexion sera fermée dès la fin du script, à moins qu'elle ne soit pas explicitement fermée avec sybase_close().

Exemple 1. Exemple avec sybase_connect()

<?php
$link = sybase_connect('SYBASE', '', '')
or die("Impossible de se connecter !");
print ("Connexion établie");
sybase_close($link);
?>

Voir aussi sybase_pconnect() et sybase_close().

Précédent | Sommaire | Suivant
sybase_close | Niveau supérieur | sybase_data_seek


sybase_data_seek

(PHP 3, PHP 4, PHP 5)

sybase_data_seek -- Déplace le pointeur interne de lignes Sybase

Description

bool sybase_data_seek ( resource result_identifier, int row_number )

sybase_data_seek() déplace le pointeur interne de lignes du résultat Sybase associé à result_identifier jusqu'à la ligne row_number. Le prochain appel à sybase_fetch_row() sans préciser la ligne, retournera la ligne row_number.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi sybase_fetch_row().

Précédent | Sommaire | Suivant
sybase_connect | Niveau supérieur | sybase_deadlock_retry_count


sybase_deadlock_retry_count

(PHP 4 >= 4.3.0, PHP 5)

sybase_deadlock_retry_count -- Configure le nombre de tentatives lors de blocages (deadlock)

Description

void sybase_deadlock_retry_count ( int retry_count )

sybase_deadlock_retry_count() permet de configurer à retry_count le nombre d'essais que Sybase va tenter lorqu'il rencontre un blocage de verrou (deadlocks). Par défaut, tous les blocages sont testés un nombre infini de fois, ou bien jusqu'à ce que le script soit interrompu (par exemple, par la fonction set_time_limit()) ou que la requête réussisse.

Note : Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

Tableau 1. Valeurs pour le paramètre retry_count

-1 | Essai jusqu'à réussir (par défaut)
0 | Ne pas réessayer
n | Réessaye n fois

Précédent | Sommaire | Suivant
sybase_data_seek | Niveau supérieur | sybase_fetch_array


sybase_fetch_array

(PHP 3, PHP 4, PHP 5)

sybase_fetch_array -- Retourne une ligne Sybase sous la forme d'un tableau

Description

array sybase_fetch_array ( resource result )

sybase_fetch_array() retourne un tableau qui contient la ligne demandée, ou FALSE s'il ne reste plus de ligne.

sybase_fetch_array() est une version évoluée de sybase_fetch_row(). En plus d'enregistrer les données dans un tableau à index numérique, cette fonction peut aussi les enregistrer dans un tableau associatif, en utilisant les noms des champs comme clés.

Il est très important de noter que sybase_fetch_array() N'est PAS nettement plus lente que sybase_fetch_row(), tandis qu'elle fournit un confort d'utilisation notable.

Note : Lors de sélection de champs avec des noms identiques (par exemple, dans un join), les index associatifs auront un nombre séquentiel ajouté au début. Voir l'exemple pour plus de détails.

Exemple 1. Cas des colonnes de noms identiques avec Sybase

<?php
$dbh= sybase_connect('SYBASE', '', '');
$q= sybase_query(
   'SELECT * FROM p, a WHERE p.person_id= a.person_id',
   $dbh
);
var_dump(sybase_fetch_array($q));
sybase_close($dbh);
?>

L'exemle ci-dessus va produire l'affichage suivant (en supposant que les tables ont toutes les deux des colonnes appelées person_id) :

array(4) {
   [0]=>
   int(1)
   ["person_id"]=>
   int(1)
   [1]=>
   int(1)
   ["person_id1"]=>
   int(1)
}

Voir aussi
sybase_fetch_row(),
sybase_fetch_assoc() et
sybase_fetch_object().

Précédent | Sommaire | Suivant
sybase_deadlock_retry_count | Niveau supérieur | sybase_fetch_assoc


sybase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

sybase_fetch_assoc -- Lit une ligne de résultat Sybase sous forme de tableau associatif

Description

array sybase_fetch_assoc ( resource result )

sybase_fetch_assoc() retourne un tableau contenant la ligne lue, ou bien FALSE s'il n'y a plus de lignes.

Note : Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

sybase_fetch_assoc() est une alternative de sybase_fetch_row() qui utilise les noms de colonnes plutôt que des entiers commes index dans le tableau de résultat. Les colonnes de différentes tables ayant le même nom sont retournées sous la forme name, name1, name2, ..., nameN.

Il est important de noter qu'utiliser sybase_fetch_assoc() n'est pas significativement plus lent que sybase_fetch_row(), tout en procurant un niveau de confort accru.

Voir aussi
sybase_fetch_array(),
sybase_fetch_object() et
sybase_fetch_row().

Précédent | Sommaire | Suivant
sybase_fetch_array | Niveau supérieur | sybase_fetch_field


sybase_fetch_field

(PHP 3, PHP 4, PHP 5)

sybase_fetch_field -- Lit les informations d'un champ Sybase

Description

object sybase_fetch_field ( resource result [, int field_offset] )

sybase_fetch_field() retourne un objet contenant les informations du champ.

sybase_fetch_field() sert à obtenir des informations à propos des champs dans le résultat result. Si l'offset du champ n'est pas précisé, le champ suivant est traité.

Les propriétés des objets sont :

  • name - column name. nom de la colonne. Si la colonne est un résultat de fonction, le nom de cette fonction devient computed#N, où #N est un numéro de série.

  • column_source - la table d'origine de la colonne.

  • max_length - taille maximale de la colonne

  • numeric - 1 si la colonne est de type numérique.

  • type - type de données de la colonne

Voir aussi sybase_field_seek().

Précédent | Sommaire | Suivant
sybase_fetch_assoc | Niveau supérieur | sybase_fetch_object


sybase_fetch_object

(PHP 3, PHP 4, PHP 5)

sybase_fetch_object -- Retourne une ligne Sybase sous la forme d'un objet

Description

object sybase_fetch_object ( resource result [, mixed object] )

sybase_fetch_object() retourne un objet qui contient la ligne demandée, en cas de succès, et FALSE en cas d'erreur.

sybase_fetch_object() est similaire à sybase_fetch_array(), avec une différence : c'est un objet qui est retourné à la place d'un tableau. Indirectement, cela signifie que vous ne pourrez accéder aux valeurs que par les propriétés, et non plus avec des offsets (les nombres sont interdits comme nom de propriété).

Utilisez le second paramètre object pour spécifier le type d'objet que vous voulez retourner. Si ce paramètre est omis, l'objet résultant sera de classe stdClass.

Note : Depuis PHP 4.3.0, cette fonction ne retourne plus les membres numériques.

Ancienne méthode :

object(stdclass)(3) {
   [0]=>
   string(3) "foo"
   ["foo"]=>
   string(3) "foo"
   [1]=>
   string(3) "bar"
   ["bar"]=>
   string(3) "bar"
}
Nouvelle méthode :
object(stdclass)(3) {
   ["foo"]=>
   string(3) "foo"
   ["bar"]=>
   string(3) "bar"
}

Exemple 1. sybase_fetch_object() retourne l'objet Foo

<?php
class Foo {
   var $foo, $bar, $baz;
}

// {...]
$qrh= sybase_query('SELECT foo, bar, baz FROM example');
$foo= sybase_fetch_object($qrh, 'Foo');
$bar= sybase_fetch_object($qrh, new Foo());
// {...]
?>

Au niveau de la vitesse, cette fonction est identique à sybase_fetch_array(), et presque aussi rapide que sybase_fetch_row() (la différence est insignifiante).

Voir aussi sybase_fetch_array() et sybase_fetch_row().

Précédent | Sommaire | Suivant
sybase_fetch_field | Niveau supérieur | sybase_fetch_row


sybase_fetch_row

(PHP 3, PHP 4, PHP 5)

sybase_fetch_row -- Retourne une ligne Sybase sous la forme d'un tableau numérique

Description

array sybase_fetch_row ( resource result )

sybase_fetch_row() retourne un tableau qui contient la ligne demandée, en cas de succès, et FALSE en cas d'erreur.

sybase_fetch_row() lit une ligne dans le résultat associé à l'identifiant de résultat result. La ligne retournée est sous la forme d'un tableau. Chaque champ est enregistré dans un index du tableau, les index commençant à 0.

Les prochains appels à sybase_fetch_row() retourneront la ligne suivante du résultat, ou FALSE, s'il ne reste plus de ligne.

Tableau 1. Types de données

PHP | Sybase
string | VARCHAR, TEXT, CHAR, IMAGE, BINARY, VARBINARY, DATETIME
int | NUMERIC (sans précision), DECIMAL (sans précision), INT, BIT, TINYINT, SMALLINT
float | NUMERIC (avec précision), DECIMAL (avec précision), REAL, FLOAT, MONEY
NULL | NULL

Voir aussi
sybase_result(),
sybase_fetch_array(),
sybase_fetch_assoc(),
sybase_fetch_object() et
sybase_data_seek(),
sybase_fetch_assoc().

Précédent | Sommaire | Suivant
sybase_fetch_object | Niveau supérieur | sybase_field_seek


sybase_field_seek

(PHP 3, PHP 4, PHP 5)

sybase_field_seek -- Modifie l'index d'un champ Sybase

Description

bool sybase_field_seek ( resource result, int field_offset )

sybase_field_seek() modifie l'index d'un champ. Le prochain appel à la fonction sybase_fetch_field() sans préciser l'index du champ retournera ce champ.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi sybase_fetch_field().

Précédent | Sommaire | Suivant
sybase_fetch_row | Niveau supérieur | sybase_free_result


sybase_free_result

(PHP 3, PHP 4, PHP 5)

sybase_free_result -- Libère un résultat Sybase de la mémoire

Description

bool sybase_free_result ( resource result )

sybase_free_result() n'est vraiment utile que si vous risquez d'utiliser trop de mémoire durant votre script. La mémoire occupée par les résultats est automatiquement libérée à la fin du script. Vous devez utiliser sybase_free_result() avec un identifiant de résultat et la mémoire utilisée par celui-ci sera libérée.

Précédent | Sommaire | Suivant
sybase_field_seek | Niveau supérieur | sybase_get_last_message


sybase_get_last_message

(PHP 3, PHP 4, PHP 5)

sybase_get_last_message -- Retourne le dernier message du serveur

Description

string sybase_get_last_message ( void )

sybase_get_last_message() retourne le dernier message rapporté par le serveur.

Voir aussi sybase_min_message_severity().

Précédent | Sommaire | Suivant
sybase_free_result | Niveau supérieur | sybase_min_client_severity


sybase_min_client_severity

(PHP 3, PHP 4, PHP 5)

sybase_min_client_severity -- Fixe la sévérité minimale du client Sybase

Description

void sybase_min_client_severity ( int severity )

sybase_min_client_severity() fixe la sévérité minimale du client.

Note : Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

Voir aussi sybase_min_server_severity().

Précédent | Sommaire | Suivant
sybase_get_last_message | Niveau supérieur | sybase_min_error_severity


sybase_min_error_severity

(PHP 3, PHP 4, PHP 5)

sybase_min_error_severity -- Fixe la sévérité minimale du client pour les erreurs

Description

void sybase_min_error_severity ( int severity )

sybase_min_error_severity() fixe la sévérité minimale du client pour les erreurs.

Note : Cette fonction n'est disponible qu'avec la bibliothèque DB Sybase, et non pas avec la bibliothèque CT.

Voir aussi sybase_min_message_severity().

Précédent | Sommaire | Suivant
sybase_min_client_severity | Niveau supérieur | sybase_min_message_severity


sybase_min_message_severity

(PHP 3, PHP 4, PHP 5)

sybase_min_message_severity -- Fixe la sévérité minimale du client pour les messages

Description

void sybase_min_message_severity ( int severity )

sybase_min_message_severity() fixe la sévérité minimale du client pour les messages.

Note : Cette fonction n'est disponible qu'avec la bibliothèque DB Sybase, et non pas avec la bibliothèque CT.

Voir aussi sybase_min_error_severity().

Précédent | Sommaire | Suivant
sybase_min_error_severity | Niveau supérieur | sybase_min_server_severity


sybase_min_server_severity

(PHP 3, PHP 4, PHP 5)

sybase_min_server_severity -- Fixe la sévérité minimale du client pour le serveur Sybase

Description

void sybase_min_server_severity ( int severity )

sybase_min_server_severity() fixe la sévérité minimale du client pour le serveur.

Note : Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

Voir aussi sybase_min_client_severity().

Précédent | Sommaire | Suivant
sybase_min_message_severity | Niveau supérieur | sybase_num_fields


sybase_num_fields

(PHP 3, PHP 4, PHP 5)

sybase_num_fields -- Retourne le nombre de champs dans un résultat Sybase

Description

int sybase_num_fields ( resource result )

sybase_num_fields() retourne le nombre de champs du résultat result.

Voir aussi
sybase_db_query(),
sybase_query(),
sybase_fetch_field() et
sybase_num_rows().

Précédent | Sommaire | Suivant
sybase_min_server_severity | Niveau supérieur | sybase_num_rows


sybase_num_rows

(PHP 3, PHP 4, PHP 5)

sybase_num_rows -- Retourne le nombre de lignes dans un résultat Sybase

Description

int sybase_num_rows ( resource result )

sybase_num_rows() retourne le nombre de lignes du résultat result.

Voir aussi
sybase_num_fields(),
sybase_query() et
sybase_fetch_row().

Précédent | Sommaire | Suivant
sybase_num_fields | Niveau supérieur | sybase_pconnect


sybase_pconnect

(PHP 3, PHP 4, PHP 5)

sybase_pconnect -- Ouvre une connexion persistante à un serveur Sybase

Description

resource sybase_pconnect ( [string servername [, string username [, string password [, string charset [, string appname]]]]] )

sybase_pconnect() retourne un identifiant de connexion positif en cas de succès, et FALSE en cas d'erreur.

sybase_connect() se comporte comme sybase_connect() avec deux différences majeures :

Premièrement, lors de la connexion, la fonction va chercher une connexion (persistante) déjà ouverte, avec le même hôte, nom de compte et mot de passe. Si une telle connexion est trouvée, un identifiant de cette connexion est retourné, plutôt que d'en ouvrir une nouvelle.

Deuxièmement, la connexion au serveur Sybase ne sera pas terminée lors de la fin du script. Au contraire, le lien sera maintenu pour des connexions ultérieures. sybase_close() ne fermera pas un lien créé par sybase_pconnect().

Ce type de lien est dit 'persistant'.

Voir aussi sybase_connect().

Précédent | Sommaire | Suivant
sybase_num_rows | Niveau supérieur | sybase_query


sybase_query

(PHP 3, PHP 4, PHP 5)

sybase_query -- Envoie une requête à une base Sybase

Description

mixed sybase_query ( string query [, resource link_identifier] )

sybase_query() retourne un identifiant de résultat positif en cas de succès, FALSE si une erreur survient, ou TRUE si la requête a été effectuée avec succès mais n'a retourné aucune colonne.

sybase_query() envoie une requête à la base de données courante, sur le serveur associé à l'identifiant de connexion. Si l'identifiant de connexion n'est pas précisé, la fonction essaiera d'utiliser la dernière connexion ouverte. Si aucune connexion n'a été ouverte, la fonction va tenter d'ouvrir une connexion avec la fonction sybase_connect().

Voir aussi sybase_select_db() et sybase_connect().

Précédent | Sommaire | Suivant
sybase_pconnect | Niveau supérieur | sybase_result


sybase_result

(PHP 3, PHP 4, PHP 5)

sybase_result -- Lit une valeur dans un résultat

Description

string sybase_result ( resource result, int row, mixed field )

sybase_result() retourne le contenu d'une cellule. L'argument field peut être l'index du champ, ou bien le nom du champ, ou encore le nom de la table " point " le nom du champ. Si la colonne a été aliasée ('SELECT foo AS bar FROM...'), utilisez l'alias à la place du nom de la colonne.

Lorsque vous travaillez sur des résultats de grande taille, vous devriez utiliser les autres fonctions qui lisent une ligne entière (voir plus loin). Étant donné que ces fonctions lisent une ligne entière, elles sont BEAUCOUP plus rapide que sybase_result(). De plus, l'utilisation d'index numérique est beaucoup plus rapide que les noms des champs, ou les noms des tables et des champs.

Fonctions de substitution, à haute efficacité : sybase_fetch_row(), sybase_fetch_array() et sybase_fetch_object().

Précédent | Sommaire | Suivant
sybase_query | Niveau supérieur | sybase_select_db


sybase_select_db

(PHP 3, PHP 4, PHP 5)

sybase_select_db -- Sélectionne une base de données Sybase

Description

bool sybase_select_db ( string database_name [, resource link_identifier] )

sybase_select_db() change la base de données courante et active sur le serveur associé avec l'identifiant de connexion link_identifier. Si link_identifier n'est pas précisé, le dernier lien ouvert est utilisé. Si aucun lien n'a été ouvert, la fonction va tenter d'en établir un en appelant sybase_connect().

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Tous les prochains appels à sybase_query() seront faits dans la base de données courante et active.

Voir aussi
sybase_connect(),
sybase_pconnect() et
sybase_query().

Précédent | Sommaire | Suivant
sybase_result | Niveau supérieur | sybase_set_message_handler


sybase_set_message_handler

(PHP 4 >= 4.3.0, PHP 5)

sybase_set_message_handler -- Configure le gestionnaire de messages Sybase

Description

bool sybase_set_message_handler ( callback handler [, resource connection] )

sybase_set_message_handler() configure la fonction handler pour qu'il soit le gestionnaire des messages générés par le serveur Sybase. Vous pouvez spécifier le nom d'une fonction globale, ou bien utiliser un tableau pour spécifier un objet et un nom de méthode.

Note : Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

Le gestionnaire attend 5 arguments, dans l'ordre suivant : numéro de message, sévérité, état, numéro de ligne et description. Les 4 premiers paramètres sont des entiers et le dernier est une chaîne de caractères. Si ce gestionnaire retourne la valeur FALSE, PHP retournera un message d'erreur classique.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Le paramètre connection a été ajouté dans PHP 4.3.5.

Exemple 1. Fonction de callback pour sybase_set_message_handler()

<?php
function msg_handler($msgnumber, $severity, $state, $line, $text)
{
   var_dump($msgnumber, $severity, $state, $line, $text);
}

sybase_set_message_handler('msg_handler');
?>

Exemple 2. Classe de callback pour sybase_set_message_handler()

<?php
class Sybase {
   function handler($msgnumber, $severity, $state, $line, $text)
   {
      var_dump($msgnumber, $severity, $state, $line, $text);
   }
}

$sybase = new Sybase();
sybase_set_message_handler(array($sybase, 'handler'));
?>

Exemple 3. Gestion des messages non traités de sybase_set_message_handler()

<?php
// Retournez FALSE si vous voulez indiquer que vous ne savez pas
// traiter ce message. Cette erreur est alors affichée sous la forme
// d'une alerte, comme s'il n'y avait pas de gestionnaire installé.
function msg_handler($msgnumber, $severity, $state, $line, $text)
{
   if (257 == $msgnumber) {
      return FALSE;
   }
   var_dump($msgnumber, $severity, $state, $line, $text);
}

sybase_set_message_handler('msg_handler');
?>

Précédent | Sommaire | Suivant
sybase_select_db | Niveau supérieur | sybase_unbuffered_query


sybase_unbuffered_query

(PHP 4 >= 4.3.0, PHP 5)

sybase_unbuffered_query -- Envoie une requête à Sybase et ne bloque pas

Description

resource sybase_unbuffered_query ( string query, resource link_identifier [, bool store_result] )

sybase_unbuffered_query() retourne une ressource Sybase en cas de réussite, et FALSE sinon.

Note : Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.

sybase_unbuffered_query() envoie la requête query au serveur Sybase actif, représenté par link_identifier. Si link_identifier n'est pas spécifié, la dernière connexion ouverte sera utilisée. Si aucune connexion n'a été ouverte, la fonction essaiera d'établir un lien avec sybase_connect(), et de l'utiliser.

Contrairement à sybase_query(),
sybase_unbuffered_query() lit uniquement la première
ligne lue. sybase_fetch_array() et les fonctions
similaires lisent les lignes nécessaires. sybase_data_seek()
lit jusqu'à la prochaine ligne. Ce comportement fournit des performances
accrues pour les résultats de grande taille.

sybase_num_rows() ne retournera le nombre de lignes correct que si toutes les lignes du résultat ont été lues. Pour Sybase, le nombre de ligne n'est pas connu, et doit être calculé par le programme client.

Note : Si vous ne lisez pas toutes les lignes du résultat avant d'exécuter une nouvelle requête, PHP va générer une alerte, et annuler toutes les lignes qui restent à lire. Pour éviter cela, utilise la fonction sybase_free_result() qui va annuler les lignes restantes.

Le paramètre optionnel store_result peut valoir FALSE pour indiquer que les lignes ne doivent pas être ramenées en mémoire, afin de réduire la consommation, surtout dans le cas de très grands résultats.

Exemple 1. Exemple avec sybase_unbuffered_query()

<?php
$dbh= sybase_connect('SYBASE', '', '');
$q= sybase_unbuffered_query('select firstname, lastname from huge_table', $dbh, FALSE);
sybase_data_seek($q, 10000);
$i= 0;
while ($row= sybase_fetch_row($q)) {
   echo $row[0].' '.$row[0];
   if ($i++ > 40000) break;
}
sybase_free_result($q);
sybase_close($dbh);
?>

Voir aussi sybase_query().

Précédent | Sommaire | Suivant
sybase_set_message_handler | Niveau supérieur | Fonctions TCP Wrappers


Fonctions TCP Wrappers

Manuel PHP
Précédent Suivant

CLXV. Fonctions TCP Wrappers

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

Tcpwrap est actuellement disponible dans PECL http://pecl.php.net/package/tcpwrap.

Si PEAR est disponible sur votre système *nix vous pouvez utiliser l'installateur PEAR pour installer l'extension tcpwrap, avec la commande suivante : pear -v install tcpwrap.

Vous pouvez toujours télécharger le tar.gz et installer tcpwrap à la main :

Exemple 1. Installation à la main de tcpwrap

gunzip tcpwrap-xxx.tgz
tar -xvf tcpwrap-xxx.tar
cd tcpwrap-xxx
phpize
./configure && make && make install

Table des matières
tcpwrap_check -- Vérification Tcpwrap

Précédent | Sommaire | Suivant
sybase_unbuffered_query | Niveau supérieur | tcpwrap_check


tcpwrap_check

(PECL)

tcpwrap_check -- Vérification Tcpwrap

Description

bool tcpwrap_check ( string daemon, string address [, string user [, bool nodns]] )

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

Précédent | Sommaire | Suivant
Fonctions TCP Wrappers | Niveau supérieur | Tidy


Tidy

Manuel PHP
Précédent Suivant

CLXVI. Tidy

Introduction

Tidy est une interface avec la bibliothèque Tidy HTML, pour nettoyer et manipuler les documents HTML, et les traiter sous forme de balises hiérarchisées.

Pré-requis

Pour utiliser Tidy, vous devez disposer de la bibliothèque libtidy, qui est téléchargeable sur le site de http://tidy.sourceforge.net/.

Installation

Tidy est actuellement disponible pour PHP 4.3.x et PHP 5 en tant qu'extension PECL. L'extension est disponible sur http://pecl.php.net/package/tidy.

Note : Tidy 1.0 fonctionne juste avec PHP 4.3.x, alors que Tidy 2.0 ne fonctionne que avec PHP 5.

Si PEAR est disponible sur votre système *nix vous pouvez utiliser l'installeur PEAR pour avoir l'extension tidy, avec la commande suivante : pear install tidy.

Vous pouvez aussi télécharger l'archive tar.gz et installer tidy à la main :

Exemple 1. Installation de tidy à la main pour PHP 4.3.x

gunzip tidy-xxx.tgz
tar -xvf tidy-xxx.tar
cd tidy-xxx
phpize
./configure && make && make install

Les utilisateurs de windows peuvent télécharger la dll de l'extension sur http://pecl4win.php.net/ext.php/php_tidy.dll.

En PHP 5 vous avez uniquement besoin de compiler en utilisant l'option --with-tidy.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
tidy.default_config | "" | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
tidy.clean_output | "0" | PHP_INI_PERDIR | Disponible depuis PHP 5.0.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

tidy.default_config string

Chemin par défaut pour le fichier de configuration Tidy.

tidy.clean_output boolean

Activer ou désactiver la réparation du HTML par Tidy

Avertissement

N'activez pas tidy.clean_output si vous générez autre chose que du HTML, comme des images dynamiques.

Types de ressources

Cette extension ne définit aucune ressource.

Classes pré-définies

tidyNode

Méthodes

  • tidyNode->hasChildren - Retourne TRUE si le noeud courant a des enfants

  • tidyNode->hasSiblings - Retourne TRUE si le noeud courant a des frères

  • tidyNode->isAsp - Retourne TRUE si le noeud courant est du ASP

  • tidyNode->isComment - Retourne TRUE si le noeud courant est un commentaire

  • tidyNode->isHtml - Retourne TRUE si le noeud courant est du code de l'HTML

  • tidyNode->isJste - Retourne TRUE si le noeud courant est du JSTE

  • tidyNode->isPhp - Retourne TRUE si le noeud courant est du PHP

  • tidyNode->isText - Retourne TRUE si le noeud courant est du texte (aucun marquage)

Propriétés

  • value - la valeur du noeud (par exemple, le texte html)

  • name - le nom de la balise (par exemple, html, a, etc.)

  • type - le type du noeud (une des constantes au-dessus, par exemple, TIDY_NODETYPE_PHP)

  • line* - la ligne où le noeud commence

  • column* - la colonne où le noeud commence

  • proprietary* - TRUE si le noeud réfère à une balise propriétaire

  • id - le ID de la balise (une des constantes au-dessus, par exemple, TIDY_TAG_FRAME)

  • attribute - un tableau avec les attributs du noeud courant ou NULL s'il n'y en a pas

  • child - un tableau avec les enfants tidyNode ou NULL s'il n'y en a pas

Note : Les propriétés marquées d'un * sont seulement disponibles à partir de PHP 5.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.

Chaque TIDY_TAG_XXX représente un tag HTML. Par exemple, TIDY_TAG_A représente le tag <a href="XX">link</a>. Chaque TIDY_ATTR_XXX représente un attribut HTML. Par exemple, TIDY_ATTR_HREF représentera l'attribut href dans l'exemple précédent.

Les constantes suivantes sont définies par cette extension :

Tableau 2. constantes des tags tidy

constante
TIDY_TAG_UNKNOWN
TIDY_TAG_A
TIDY_TAG_ABBR
TIDY_TAG_ACRONYM
TIDY_TAG_ALIGN
TIDY_TAG_APPLET
TIDY_TAG_AREA
TIDY_TAG_B
TIDY_TAG_BASE
TIDY_TAG_BASEFONT
TIDY_TAG_BDO
TIDY_TAG_BGSOUND
TIDY_TAG_BIG
TIDY_TAG_BLINK
TIDY_TAG_BLOCKQUOTE
TIDY_TAG_BODY
TIDY_TAG_BR
TIDY_TAG_BUTTON
TIDY_TAG_CAPTION
TIDY_TAG_CENTER
TIDY_TAG_CITE
TIDY_TAG_CODE
TIDY_TAG_COL
TIDY_TAG_COLGROUP
TIDY_TAG_COMMENT
TIDY_TAG_DD
TIDY_TAG_DEL
TIDY_TAG_DFN
TIDY_TAG_DIR
TIDY_TAG_DIV
TIDY_TAG_DL
TIDY_TAG_DT
TIDY_TAG_EM
TIDY_TAG_EMBED
TIDY_TAG_FIELDSET
TIDY_TAG_FONT
TIDY_TAG_FORM
TIDY_TAG_FRAME
TIDY_TAG_FRAMESET
TIDY_TAG_H1
TIDY_TAG_H2
TIDY_TAG_H3
TIDY_TAG_H4
TIDY_TAG_H5
TIDY_TAG_H6
TIDY_TAG_HEAD
TIDY_TAG_HR
TIDY_TAG_HTML
TIDY_TAG_I
TIDY_TAG_IFRAME
TIDY_TAG_ILAYER
TIDY_TAG_IMG
TIDY_TAG_INPUT
TIDY_TAG_INS
TIDY_TAG_ISINDEX
TIDY_TAG_KBD
TIDY_TAG_KEYGEN
TIDY_TAG_LABEL
TIDY_TAG_LAYER
TIDY_TAG_LEGEND
TIDY_TAG_LI
TIDY_TAG_LINK
TIDY_TAG_LISTING
TIDY_TAG_MAP
TIDY_TAG_MARQUEE
TIDY_TAG_MENU
TIDY_TAG_META
TIDY_TAG_MULTICOL
TIDY_TAG_NOBR
TIDY_TAG_NOEMBED
TIDY_TAG_NOFRAMES
TIDY_TAG_NOLAYER
TIDY_TAG_NOSAVE
TIDY_TAG_NOSCRIPT
TIDY_TAG_OBJECT
TIDY_TAG_OL
TIDY_TAG_OPTGROUP
TIDY_TAG_OPTION
TIDY_TAG_P
TIDY_TAG_PARAM
TIDY_TAG_PLAINTEXT
TIDY_TAG_PRE
TIDY_TAG_Q
TIDY_TAG_RP
TIDY_TAG_RT
TIDY_TAG_RTC
TIDY_TAG_RUBY
TIDY_TAG_S
TIDY_TAG_SAMP
TIDY_TAG_SCRIPT
TIDY_TAG_SELECT
TIDY_TAG_SERVER
TIDY_TAG_SERVLET
TIDY_TAG_SMALL
TIDY_TAG_SPACER
TIDY_TAG_SPAN
TIDY_TAG_STRIKE
TIDY_TAG_STRONG
TIDY_TAG_STYLE
TIDY_TAG_SUB
TIDY_TAG_TABLE
TIDY_TAG_TBODY
TIDY_TAG_TD
TIDY_TAG_TEXTAREA
TIDY_TAG_TFOOT
TIDY_TAG_TH
TIDY_TAG_THEAD
TIDY_TAG_TITLE
TIDY_TAG_TR
TIDY_TAG_TR
TIDY_TAG_TT
TIDY_TAG_U
TIDY_TAG_UL
TIDY_TAG_VAR
TIDY_TAG_WBR
TIDY_TAG_XMP

Tableau 3. Constantes des attributs tidy

constante
TIDY_ATTR_UNKNOWN
TIDY_ATTR_ABBR
TIDY_ATTR_ACCEPT
TIDY_ATTR_ACCEPT_CHARSET
TIDY_ATTR_ACCESSKEY
TIDY_ATTR_ACTION
TIDY_ATTR_ADD_DATE
TIDY_ATTR_ALIGN
TIDY_ATTR_ALINK
TIDY_ATTR_ALT
TIDY_ATTR_ARCHIVE
TIDY_ATTR_AXIS
TIDY_ATTR_BACKGROUND
TIDY_ATTR_BGCOLOR
TIDY_ATTR_BGPROPERTIES
TIDY_ATTR_BORDER
TIDY_ATTR_BORDERCOLOR
TIDY_ATTR_BOTTOMMARGIN
TIDY_ATTR_CELLPADDING
TIDY_ATTR_CELLSPACING
TIDY_ATTR_CHAR
TIDY_ATTR_CHAROFF
TIDY_ATTR_CHARSET
TIDY_ATTR_CHECKED
TIDY_ATTR_CITE
TIDY_ATTR_CLASS
TIDY_ATTR_CLASSID
TIDY_ATTR_CLEAR
TIDY_ATTR_CODE
TIDY_ATTR_CODEBASE
TIDY_ATTR_CODETYPE
TIDY_ATTR_COLOR
TIDY_ATTR_COLS
TIDY_ATTR_COLSPAN
TIDY_ATTR_COMPACT
TIDY_ATTR_CONTENT
TIDY_ATTR_COORDS
TIDY_ATTR_DATA
TIDY_ATTR_DATAFLD
TIDY_ATTR_DATAPAGESIZE
TIDY_ATTR_DATASRC
TIDY_ATTR_DATETIME
TIDY_ATTR_DECLARE
TIDY_ATTR_DEFER
TIDY_ATTR_DIR
TIDY_ATTR_DISABLED
TIDY_ATTR_ENCODING
TIDY_ATTR_ENCTYPE
TIDY_ATTR_FACE
TIDY_ATTR_FOR
TIDY_ATTR_FRAME
TIDY_ATTR_FRAMEBORDER
TIDY_ATTR_FRAMESPACING
TIDY_ATTR_GRIDX
TIDY_ATTR_GRIDY
TIDY_ATTR_HEADERS
TIDY_ATTR_HEIGHT
TIDY_ATTR_HREF
TIDY_ATTR_HREFLANG
TIDY_ATTR_HSPACE
TIDY_ATTR_HTTP_EQUIV
TIDY_ATTR_ID
TIDY_ATTR_ISMAP
TIDY_ATTR_LABEL
TIDY_ATTR_LANG
TIDY_ATTR_LANGUAGE
TIDY_ATTR_LAST_MODIFIED
TIDY_ATTR_LAST_VISIT
TIDY_ATTR_LEFTMARGIN
TIDY_ATTR_LINK
TIDY_ATTR_LONGDESC
TIDY_ATTR_LOWSRC
TIDY_ATTR_MARGINHEIGHT
TIDY_ATTR_MARGINWIDTH
TIDY_ATTR_MAXLENGTH
TIDY_ATTR_MEDIA
TIDY_ATTR_METHOD
TIDY_ATTR_MULTIPLE
TIDY_ATTR_NAME
TIDY_ATTR_NOHREF
TIDY_ATTR_NORESIZE
TIDY_ATTR_NOSHADE
TIDY_ATTR_NOWRAP
TIDY_ATTR_OBJECT
TIDY_ATTR_OnAFTERUPDATE
TIDY_ATTR_OnBEFOREUNLOAD
TIDY_ATTR_OnBEFOREUPDATE
TIDY_ATTR_OnBLUR
TIDY_ATTR_OnCHANGE
TIDY_ATTR_OnCLICK
TIDY_ATTR_OnDATAAVAILABLE
TIDY_ATTR_OnDATASETCHANGED
TIDY_ATTR_OnDATASETCOMPLETE
TIDY_ATTR_OnDBLCLICK
TIDY_ATTR_OnERRORUPDATE
TIDY_ATTR_OnFOCUS
TIDY_ATTR_OnKEYDOWN
TIDY_ATTR_OnKEYPRESS
TIDY_ATTR_OnKEYUP
TIDY_ATTR_OnLOAD
TIDY_ATTR_OnMOUSEDOWN
TIDY_ATTR_OnMOUSEMOVE
TIDY_ATTR_OnMOUSEOUT
TIDY_ATTR_OnMOUSEOVER
TIDY_ATTR_OnMOUSEUP
TIDY_ATTR_OnRESET
TIDY_ATTR_OnROWENTER
TIDY_ATTR_OnROWEXIT
TIDY_ATTR_OnSELECT
TIDY_ATTR_OnSUBMIT
TIDY_ATTR_OnUNLOAD
TIDY_ATTR_PROFILE
TIDY_ATTR_PROMPT
TIDY_ATTR_RBSPAN
TIDY_ATTR_READONLY
TIDY_ATTR_REL
TIDY_ATTR_REV
TIDY_ATTR_RIGHTMARGIN
TIDY_ATTR_ROWS
TIDY_ATTR_ROWSPAN
TIDY_ATTR_RULES
TIDY_ATTR_SCHEME
TIDY_ATTR_SCOPE
TIDY_ATTR_SCROLLING
TIDY_ATTR_SELECTED
TIDY_ATTR_SHAPE
TIDY_ATTR_SHOWGRID
TIDY_ATTR_SHOWGRIDX
TIDY_ATTR_SHOWGRIDY
TIDY_ATTR_SIZE
TIDY_ATTR_SPAN
TIDY_ATTR_SRC
TIDY_ATTR_STANDBY
TIDY_ATTR_START
TIDY_ATTR_STYLE
TIDY_ATTR_SUMMARY
TIDY_ATTR_TABINDEX
TIDY_ATTR_TARGET
TIDY_ATTR_TEXT
TIDY_ATTR_TITLE
TIDY_ATTR_TOPMARGIN
TIDY_ATTR_TYPE
TIDY_ATTR_USEMAP
TIDY_ATTR_VALIGN
TIDY_ATTR_VALUE
TIDY_ATTR_VALUETYPE
TIDY_ATTR_VERSION
TIDY_ATTR_VLINK
TIDY_ATTR_VSPACE
TIDY_ATTR_WIDTH
TIDY_ATTR_WRAP
TIDY_ATTR_XML_LANG
TIDY_ATTR_XML_SPACE
TIDY_ATTR_XMLNS

Tableau 4. Constantes de types de noeud tidy

constante | description
TIDY_NODETYPE_ROOT | noeud racine
TIDY_NODETYPE_DOCTYPE | doctype
TIDY_NODETYPE_COMMENT | commentaire HTML
TIDY_NODETYPE_PROCINS | Instruction de processus
TIDY_NODETYPE_TEXT | Texte
TIDY_NODETYPE_START | début de tag
TIDY_NODETYPE_END | fin de tag
TIDY_NODETYPE_STARTEND | tag 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

Exemples

Ce simple exemple montre l'utilisation de base de Tidy.

Exemple 2. Utilisation de base de Tidy

<?php
ob_start();
?>
<html>Un document html</html>
<?
$html = ob_get_clean();

// Specify configuration
$config = array(
           'indent'         => true,
           'output-xhtml'   => true,
           'wrap'           => 200);

// Tidy
$tidy = new tidy;
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();

// Output
echo $tidy;
?>

Table des matières
ob_tidyhandler -- Fonction de callback ob_start pour réparer le buffer
tidy_access_count -- Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document
tidy_clean_repair -- Effectue les opérations de nettoyage et de réparation préparées pour un fichier HTML
tidy_config_count -- Retourne le nombre d'erreurs de configuration Tidy rencontrées dans le document
tidy::__construct -- Construit un nouvel objet Tidy
tidy_diagnose -- Etablit le diagnostic pour le document analysé et réparé
tidy_error_count -- Retourne le nombre d'erreurs Tidy rencontrées dans le document
tidy_get_body -- Retourne un objet TidyNode, commencé à partir de la balise <body>
tidy_get_config -- Lit la configuration Tidy courante
tidy_get_error_buffer -- Retourne les alertes et erreurs qui sont survenues lors de l'analyse du document
tidy_get_head -- Retourne un objet TidyNode à partir de la balise <head>
tidy_get_html_ver -- Détecte le version du code HTML utilisée dans un document
tidy_get_html -- Retourne un objet TidyNode commençant à la balise <html>
tidy_get_opt_doc -- Retourne la documentation pour le nom de l'option donnée
tidy_get_output -- Retourne une chaîne représentant les balises telles qu'analysées par Tidy
tidy_get_release -- Retourne la date de publication (version) de la bibliothèque Tidy
tidy_get_root -- Retourne un objet tidyNode représentant la racine du document HTML
tidy_get_status -- Retourne le statut du document spécifié
tidy_getopt -- Retourne la valeur de l'option de configuration Tidy
tidy_is_xhtml -- Indique si le document est un document XHTML
tidy_is_xml -- Indique si le document est un document XML générique (non HTML/XHTML)
tidy_load_config -- Charge un fichier de configuration ASCII Tidy avec l'encodage spécifié
tidy_node->get_attr -- Retourne la valeur de l'attribut spécifié
tidy_node->get_nodes -- Retourne un tableau avec les noeuds placés sous le noeud courant, avec l'identifiant spécifié
tidy_node->next -- Retourne le prochain frère du noeud courant
tidy_node->prev -- Retourne le frère précédent de ce noeud
tidy_parse_file -- Analyse les balises d'un fichier ou d'une URI
tidy_parse_string -- Analyse un document HTML contenu dans une chaîne
tidy_repair_file -- Répare un fichier et le renvoie en tant que chaîne
tidy_repair_string -- Répare une chaîne HTML en utilisant un fichier de configuration optionnel
tidy_reset_config -- Redonne les valeurs de configuration par défaut de Tidy
tidy_save_config -- Sauve la configuration courante dans un fichier
tidy_set_encoding -- Modifie le jeu de caractères pour les entrées/sorties de l'analyseur Tidy
tidy_setopt -- Modifie la valeur de l'option de configuration Tidy
tidy_warning_count -- Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié
tidyNode->hasChildren -- Retourne true si le noeud a des enfants
tidyNode->hasSiblings -- Retourne true si le noeud a des frères
tidyNode->isAsp -- Retourne TRUE si ce noeud Tidy est du code ASP
tidyNode->isComment -- Retourne true si le noeud représente un commentaire
tidyNode->isHtml -- Retourne true si le noeud est une partie d'un document HTML
tidyNode->isJste -- Renvoie true; si ce node est JSTE
tidyNode->isPhp -- Retourne TRUE si ce noeud est en PHP
tidyNode->isText -- Retourne true si le noeud représente du texte (aucun marquage)
tidyNode::getParent -- returns the parent node of the current node

Précédent | Sommaire | Suivant
tcpwrap_check | Niveau supérieur | ob_tidyhandler


ob_tidyhandler

(PHP 5)

ob_tidyhandler -- Fonction de callback ob_start pour réparer le buffer

Description

string ob_tidyhandler ( string input [, int mode] )

ob_tidyhandler() est prévue pour être utilisée en tant que fonction de callback avec ob_start() afin de réparer le buffer.

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

Précédent | Sommaire | Suivant
Tidy | Niveau supérieur | tidy_access_count


tidy_access_count

(PHP 5)

tidy_access_count -- Retourne le nombre d'alertes d'accessibilité Tidy rencontrées dans le document

Description

int tidy_access_count ( tidy object )

tidy_access_count() retourne le nombre d'alertes d'accessibilité trouvées dans le document spécifié.

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.

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électionner 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

?>

Voir aussi tidy_error_count() et tidy_warning_count().

Précédent | Sommaire | Suivant
ob_tidyhandler | Niveau supérieur | tidy_clean_repair


tidy_clean_repair

(PHP 5)

tidy_clean_repair -- Effectue les opérations de nettoyage et de réparation préparées pour un fichier HTML

Description

Style procédural

bool tidy_clean_repair ( tidy object )

Style orienté objet (méthode)

bool tidy->cleanRepair ( void )

Cette fonction nettoie et répare l'objet object Tidy passé en argument.

Exemple 1. Exemple avec tidy_clean_repair()

<?php
$html = '<p>test</I>';

$tidy = tidy_parse_string($html);
tidy_clean_repair($tidy);

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_repair_file() et tidy_repair_string().

Précédent | Sommaire | Suivant
tidy_access_count | Niveau supérieur | tidy_config_count


tidy_config_count

(PHP 5)

tidy_config_count -- Retourne le nombre d'erreurs de configuration Tidy rencontrées dans le document

Description

int tidy_config_count ( tidy object )

tidy_config_count() retourne le nombre d'erreurs rencontrées dans la configuration de l'objet object Tidy spécifié.

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

Précédent | Sommaire | Suivant
tidy_clean_repair | Niveau supérieur | tidy::__construct


tidy::__construct

(no version information, might be only in CVS)

tidy::__construct -- Construit un nouvel objet Tidy

Description

tidy tidy::__construct ( [string filename [, mixed config [, string encoding [, bool use_include_path]]]] )

tidy::__construct() construit un nouvel objet Tidy.

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

Le paramètre config peut prendre la forme d'un tableau ou d'une chaîne de caractères. Sous forme de chaîne, il représente le nom du fichier de configuration et sinon, c'est un tableau avec les options de configuration. Lisez http://tidy.sourceforge.net/docs/quickref.html pour en savoir plus sur chaque option.

Le paramètre encoding spécifie le jeu de caractères utilisé pour les documents en entrées et sorties. Les valeurs possibles de encoding sont : ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

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_parse_file() et tidy_parse_string().

Précédent | Sommaire | Suivant
tidy_config_count | Niveau supérieur | tidy_diagnose


tidy_diagnose

(PHP 5)

tidy_diagnose -- Etablit le diagnostic pour le document analysé et réparé

Description

Style procédural

bool tidy_diagnose ( tidy object )

Style orienté objet (méthode)

bool tidy->diagnose ( void )

tidy_diagnose() lance un diagnostic sur l'objet object Tidy donné, en ajoutant quelques informations concernant le document dans la pile d'erreurs.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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_get_error_buffer($tidy) . "\n";

$tidy->diagnose();
echo tidy_get_error_buffer($tidy);

?>

L'exemple ci-dessus va afficher :

line 5 column 1 - Warning: <p> isn't allowed in <head> elements
line 5 column 1 - Warning: inserting missing 'title' element

line 5 column 1 - Warning: <p> isn't allowed in <head> elements
line 5 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_get_error_buffer().

Précédent | Sommaire | Suivant
tidy::__construct | Niveau supérieur | tidy_error_count


tidy_error_count

(PHP 5)

tidy_error_count -- Retourne le nombre d'erreurs Tidy rencontrées dans le document

Description

int tidy_error_count ( tidy object )

tidy_error_count() retourne le nombre d'erreurs Tidy rencontrées dans le document spécifié.

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

Précédent | Sommaire | Suivant
tidy_diagnose | Niveau supérieur | tidy_get_body


tidy_get_body

(PHP 5)

tidy_get_body -- Retourne un objet TidyNode, commencé à partir de la balise <body>

Description

Style procédural

tidyNode tidy_get_body ( tidy object )

Style orienté objet (méthode)

tidyNode tidy->body ( void )

tidy_get_body() retourne un objet TidyNode commençant à partir de la balise <body>.

Exemple 1. Exemple avec tidy_get_body()

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

Note : Cette fonction n'est disponible qu'avec le Zend Engine 2, c'est à dire PHP >= 5.0.0.

Voir aussi tidy_get_head() et tidy_get_html().

Précédent | Sommaire | Suivant
tidy_error_count | Niveau supérieur | tidy_get_config


tidy_get_config

(PHP 5)

tidy_get_config -- Lit la configuration Tidy courante

Description

Style procédural

array tidy_get_config ( tidy object )

Style orienté objet (méthode)

array tidy->getConfig ( void )

tidy_get_config() retourne un tableau avec les options de configuration utilisées par l'objet object Tidy spécifié.

Pour une explication de chaque option, voyez http://tidy.sourceforge.net/docs/quickref.html.

Exemple 1. Exemple avec tidy_get_config()

<?php
$html = '<p>test</p>';
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap', 200);

$tidy = tidy_parse_string($html, $config);

print_r(tidy_get_config($tidy));
?>

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

Précédent | Sommaire | Suivant
tidy_get_body | Niveau supérieur | tidy_get_error_buffer


tidy_get_error_buffer

(PHP 5)

tidy_get_error_buffer -- Retourne les alertes et erreurs qui sont survenues lors de l'analyse du document

Description

Style procédural

string tidy_get_error_buffer ( tidy object )

Style orienté objet (propriété) :

class tidy {

string errorBuffer

}

tidy_get_error_buffer() retourne les erreurs et les avertissements rencontrés lors de l'analyse du document spécifié.

Exemple 1. Exemple avec tidy_get_error_buffer()

<?php
$html = '<p>paragraph</p>';

$tidy = tidy_parse_string($html);
echo tidy_get_error_buffer($tidy);
?>

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(),
tidy_error_count() et
tidy_warning_count().

Précédent | Sommaire | Suivant
tidy_get_config | Niveau supérieur | tidy_get_head


tidy_get_head

(PHP 5)

tidy_get_head -- Retourne un objet TidyNode à partir de la balise <head>

Description

Style procédural

tidyNode tidy_get_head ( tidy object )

Style orienté objet (méthode)

tidyNode tidy->head ( void )

tidy_get_head() retourne un objet tidyNode à partir de la balise <head>.

Exemple 1. Exemple avec tidy_get_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>

Note : Cette fonction n'est disponible qu'avec le Zend Engine 2, c'est à dire PHP >= 5.0.0.

Voir aussi tidy_get_body() et tidy_get_html().

Précédent | Sommaire | Suivant
tidy_get_error_buffer | Niveau supérieur | tidy_get_html_ver


tidy_get_html_ver

(PHP 5)

tidy_get_html_ver -- Détecte le version du code HTML utilisée dans un document

Description

Style procédural

int tidy_get_html_ver ( tidy object )

Style orienté objet (méthode)

int tidy->getHtmlVer ( void )

tidy_get_html_ver() retourne la version détectée du code HTML pour l'objet object Tidy spécifié.

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.

Précédent | Sommaire | Suivant
tidy_get_head | Niveau supérieur | tidy_get_html


tidy_get_html

(PHP 5)

tidy_get_html -- Retourne un objet TidyNode commençant à la balise <html>

Description

Style procédural

tidyNode tidy_get_html ( tidy object )

Style orienté objet (méthode)

tidyNode tidy->html ( void )

tidy_get_html() retourne un objet tidyNode commençant à la balise <html>.

Exemple 1. Exemple avec tidy_get_html()

<?php
$html = '
<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>paragraph</p>
 </body>
</html>';

$tidy = tidy_parse_string($html);

$html = tidy_get_html($tidy);
echo $html->value;
?>

L'exemple ci-dessus va afficher :

<html>
 <head>
  <title>test</title>
 </head>
 <body>
  <p>paragraph</p>
 </body>
</html>

Note : Cette fonction n'est disponible qu'avec le Zend Engine 2, c'est à dire PHP >= 5.0.0.

Voir aussi tidy_get_body() et tidy_get_head().

Précédent | Sommaire | Suivant
tidy_get_html_ver | Niveau supérieur | tidy_get_opt_doc


tidy_get_output

(PHP 5)

tidy_get_output -- Retourne une chaîne représentant les balises telles qu'analysées par Tidy

Description

string tidy_get_output ( tidy object )

tidy_get_output() retourne une chaîne avec le HTML réparé.

Exemple 1. Exemple avec tidy_get_output()

<?php

$html = '<p>paragraphe</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>paragraphe</p>
</body>
</html>

Précédent | Sommaire | Suivant
tidy_get_opt_doc | Niveau supérieur | tidy_get_release


tidy_get_release

(PHP 5)

tidy_get_release -- Retourne la date de publication (version) de la bibliothèque Tidy

Description

Style procédural

string tidy_get_release ( void )

Style orienté objet (méthode)

string tidy->getRelease ( void )

tidy_get_release() retourne une chaîne avec la date de publication de la bibliothèque tidy.

Précédent | Sommaire | Suivant
tidy_get_output | Niveau supérieur | tidy_get_root


tidy_get_root

(PHP 5)

tidy_get_root -- Retourne un objet tidyNode représentant la racine du document HTML

Description

Style procédural

tidyNode tidy_get_root ( tidy object )

Style orienté objet (méthode)

tidyNode tidy->root ( void )

tidy_get_root() retourne un objet tidyNode représentant la racine de l'arbre Tidy analysé.

Exemple 1. Affichage des noeuds

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

Note : Cette fonction n'est disponible qu'avec le Zend Engine 2, c'est à dire PHP >= 5.0.0.

Précédent | Sommaire | Suivant
tidy_get_release | Niveau supérieur | tidy_get_status


tidy_get_status

(PHP 5)

tidy_get_status -- Retourne le statut du document spécifié

Description

Style procédural

int tidy_get_status ( tidy object )

Style orienté objet (méthode)

int tidy->getStatus ( void )

tidy_get_status() retourne le statut de l'objet object Tidy spécifié. Elle retourne 0 si aucune erreur/avertissement n'a été rencontrée, 1 pour les avertissements d'accessibilité, et 2 pour les erreurs.

Exemple 1. Exemple avec tidy_get_status()

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

Précédent | Sommaire | Suivant
tidy_get_root | Niveau supérieur | tidy_getopt


tidy_getopt

(PHP 5)

tidy_getopt -- Retourne la valeur de l'option de configuration Tidy

Description

Style procédural

mixed tidy_getopt ( tidy object, string option )

Style orienté objet (méthode)

mixed tidy->getOpt ( string option )

tidy_getopt() retourne la valeur de l'option spécifiée option pour l'objet object. Le type retourné dépend du type de l'option spécifiée option. Vous pouvez trouver une liste de chaque option de configuration ainsi que leur type à : http://tidy.sourceforge.net/docs/quickref.html.

Exemple 1. Exemple avec tidy_getopt()

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

$config = array('accessibility-check' => 3,
                'alt-text' => 'du texte');

$tidy = new tidy();
$tidy->parseString($html, $config);

var_dump($tidy->getOpt('accessibility-check')); //integer
var_dump($tidy->getOpt('lower-literals')); //boolean
var_dump($tidy->getOpt('alt-text')); //string

?>

L'exemple ci-dessus va afficher :

int(3)
bool(true)
string(9) "some text"

Précédent | Sommaire | Suivant
tidy_get_status | Niveau supérieur | tidy_is_xhtml


tidy_is_xhtml

(PHP 5)

tidy_is_xhtml -- Indique si le document est un document XHTML

Description

Style procédural

bool tidy_is_xhtml ( tidy object )

Style orienté objet (méthode)

bool tidy->isXhtml ( void )

tidy_is_xhtml() retourne TRUE si l'objet object Tidy 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.

Précédent | Sommaire | Suivant
tidy_getopt | Niveau supérieur | tidy_is_xml


tidy_is_xml

(PHP 5)

tidy_is_xml -- Indique si le document est un document XML générique (non HTML/XHTML)

Description

Style procédural

bool tidy_is_xml ( tidy object )

Style orienté objet (méthode)

bool tidy->isXml ( void )

tidy_is_xml() retourne TRUE si l'objet object Tidy est un 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.

Précédent | Sommaire | Suivant
tidy_is_xhtml | Niveau supérieur | tidy_load_config


tidy_load_config

(no version information, might be only in CVS)

tidy_load_config -- Charge un fichier de configuration ASCII Tidy avec l'encodage spécifié

Description

void tidy_load_config ( string filename, string encoding )

tidy_load_config() charge le fichier de configuration Tidy avec le jeu de caractères encoding.

Note : Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.

Précédent | Sommaire | Suivant
tidy_is_xml | Niveau supérieur | tidy_node->get_attr


tidy_node->get_attr

(no version information, might be only in CVS)

tidy_node->get_attr -- Retourne la valeur de l'attribut spécifié

Description

tidy_attr tidy_node->get_attr ( int attrib_id )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
tidy_load_config | Niveau supérieur | tidy_node->get_nodes


tidy_node->get_nodes

(no version information, might be only in CVS)

tidy_node->get_nodes -- Retourne un tableau avec les noeuds placés sous le noeud courant, avec l'identifiant spécifié

Description

array tidy_node->get_nodes ( int node_id )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
tidy_node->get_attr | Niveau supérieur | tidy_node->next


tidy_node->next

(no version information, might be only in CVS)

tidy_node->next -- Retourne le prochain frère du noeud courant

Description

tidy_node tidy_node->next ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
tidy_node->get_nodes | Niveau supérieur | tidy_node->prev


tidy_node->prev

(no version information, might be only in CVS)

tidy_node->prev -- Retourne le frère précédent de ce noeud

Description

tidy_node tidy_node->prev ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
tidy_node->next | Niveau supérieur | tidy_parse_file


tidy_parse_file

(PHP 5)

tidy_parse_file -- Analyse les balises d'un fichier ou d'une URI

Description

Style procédural

tidy tidy_parse_file ( string filename [, mixed config [, string encoding [, bool use_include_path]]] )

Style orienté objet (méthode)

bool tidy->parseFile ( string filename [, mixed config [, string encoding [, bool use_include_path]]] )

tidy_parse_file() analyse le fichier spécifié.

Le paramètre config peut prendre la forme d'un tableau ou d'une chaîne de caractères. Sous forme de chaîne, il représente le nom du fichier de configuration et sinon, c'est un tableau avec les options de configuration. Lisez http://tidy.sourceforge.net/docs/quickref.html pour en savoir plus sur chaque option.

Le paramètre encoding spécifie le jeu de caractères utilisé pour les documents en entrées et sorties. Les valeurs possibles de encoding sont : ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

Exemple 1. Exemple avec tidy_parse_file()

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

Note : Les paramètres optionnels config et encoding ont été ajoutés en Tidy 2.0.

Voir aussi
tidy_parse_string(),
tidy_repair_file() et
tidy_repair_string().

Précédent | Sommaire | Suivant
tidy_node->prev | Niveau supérieur | tidy_parse_string


tidy_parse_string

(PHP 5)

tidy_parse_string -- Analyse un document HTML contenu dans une chaîne

Description

Style procédural

tidy tidy_parse_string ( string input [, mixed config [, string encoding]] )

Style orienté objet (méthode)

bool tidy->parseString ( string input [, mixed config [, string encoding]] )

tidy_parse_string() analyse un document contenu dans une chaîne.

Le paramètre config peut prendre la forme d'un tableau ou d'une chaîne de caractères. Sous forme de chaîne, il représente le nom du fichier de configuration et sinon, c'est un tableau avec les options de configuration. Lisez http://tidy.sourceforge.net/docs/quickref.html pour en savoir plus sur chaque option.

Le paramètre encoding spécifie le jeu de caractères utilisé pour les documents en entrées et sorties. Les valeurs possibles de encoding sont : ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

Exemple 1. Exemple avec tidy_parse_string()

<?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>
      error<br />
      another line
    </p>
  </body>
</html>

Note : Les paramètres optionnels config et encoding ont été ajoutés en Tidy 2.0.

Voir aussi
tidy_parse_file(),
tidy_repair_file() et
tidy_repair_string().

Précédent | Sommaire | Suivant
tidy_parse_file | Niveau supérieur | tidy_repair_file


tidy_repair_file

(PHP 5)

tidy_repair_file -- Répare un fichier et le renvoie en tant que chaîne

Description

string tidy_repair_file ( string filename [, mixed config [, string encoding [, bool use_include_path]]] )

tidy_repair_file() répare le fichier fourni et le renvoie sous la forme d'une chaîne.

Exemple 1. Exemple avec tidy_repair_file()

<?php
$file = 'file.html';

$repaired = tidy_repair_file($file);
rename($file, $file . '.bak');

file_put_contents($file, $repaired);
?>

Note : Les paramètres optionnels config et encoding ont été ajoutés en Tidy 2.0.

Voir aussi
tidy_parse_file(),
tidy_parse_string() et
tidy_repair_string().

Précédent | Sommaire | Suivant
tidy_parse_string | Niveau supérieur | tidy_repair_string


tidy_repair_string

(PHP 5)

tidy_repair_string -- Répare une chaîne HTML en utilisant un fichier de configuration optionnel

Description

string tidy_repair_string ( string data [, mixed config [, string encoding]] )

tidy_repair_string() répare la chaîne fournie.

Exemple 1. Exemple avec tidy_repair_string()

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

Note : Les paramètres optionnels config et encoding ont été ajoutés en Tidy 2.0.

Voir aussi
tidy_parse_file(),
tidy_parse_string() et
tidy_repair_file().

Précédent | Sommaire | Suivant
tidy_repair_file | Niveau supérieur | tidy_reset_config


tidy_reset_config

(no version information, might be only in CVS)

tidy_reset_config -- Redonne les valeurs de configuration par défaut de Tidy

Description

bool tidy_reset_config ( void )

tidy_reset_config() restaure la configuration par défaut de Tidy.

Note : Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.

Précédent | Sommaire | Suivant
tidy_repair_string | Niveau supérieur | tidy_save_config


tidy_save_config

(no version information, might be only in CVS)

tidy_save_config -- Sauve la configuration courante dans un fichier

Description

bool tidy_save_config ( string filename )

tidy_save_config() sauve la configuration courante dans le fichier filename. Seules les valeurs différentes des valeurs par défaut sont sauvées.

Voir aussi
tidy_get_config(),
tidy_getopt(),
tidy_reset_config() et
tidy_setopt().

Note : Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.

Précédent | Sommaire | Suivant
tidy_reset_config | Niveau supérieur | tidy_set_encoding


tidy_set_encoding

(no version information, might be only in CVS)

tidy_set_encoding -- Modifie le jeu de caractères pour les entrées/sorties de l'analyseur Tidy

Description

bool tidy_set_encoding ( string encoding )

tidy_set_encoding() configure l'encodage pour les documents en entrée et en sortie. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. La valeurs possibles de encoding sont ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 et shiftjis.

Note : Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.

Précédent | Sommaire | Suivant
tidy_save_config | Niveau supérieur | tidy_setopt


tidy_setopt

(no version information, might be only in CVS)

tidy_setopt -- Modifie la valeur de l'option de configuration Tidy

Description

bool tidy_setopt ( string option, mixed value )

tidy_setopt() configure l'option option avec la nouvelle valeur value. Vous trouverez une liste des options de configuration sur : http://tidy.sourceforge.net/docs/quickref.html.

Exemple 1. Exemple avec tidy_setopt()

<?php
$html = '<p>test</i>';

$tidy = tidy_parse_string($html);

tidy_setopt('indent', FALSE);
?>

Voir aussi
tidy_getopt(),
tidy_get_config(),
tidy_reset_config() et
tidy_save_config().

Note : Cette fonction n'est disponible qu'avec Tidy 1.0. Elle a été abandonnée en Tidy 2.0 et a donc été supprimée.

Précédent | Sommaire | Suivant
tidy_set_encoding | Niveau supérieur | tidy_warning_count


tidy_warning_count

(PHP 5)

tidy_warning_count -- Retourne le nombre d'alertes Tidy rencontrées dans le document spécifié

Description

int tidy_warning_count ( tidy object )

tidy_warning_count() retourne le nombre d'avertissements tidy rencontrés pour le document spécifié.

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_access_count() et tidy_error_count().

Précédent | Sommaire | Suivant
tidy_setopt | Niveau supérieur | tidyNode->hasChildren


tidyNode->hasChildren

(no version information, might be only in CVS)

tidyNode->hasChildren -- Retourne true si le noeud a des enfants

Description

bool tidyNode->hasChildren ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Note : Cette fonction était appelée tidy_node->has_children() dans PHP 4/Tidy 1.

Précédent | Sommaire | Suivant
tidy_warning_count | Niveau supérieur | tidyNode->hasSiblings


tidyNode->hasSiblings

(no version information, might be only in CVS)

tidyNode->hasSiblings -- Retourne true si le noeud a des frères

Description

bool tidyNode->hasSiblings ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Note : Cette fonction était appelée tidy_node->has_siblings() dans PHP 4/Tidy 1.

Précédent | Sommaire | Suivant
tidyNode->hasChildren | Niveau supérieur | tidyNode->isAsp


tidyNode->isAsp

(no version information, might be only in CVS)

tidyNode->isAsp -- Retourne TRUE si ce noeud Tidy est du code ASP

Description

bool tidyNode->isAsp ( void )

tidyNode->isAsp() retourne TRUE si le noeud courant est du code ASP, FALSE sinon.

Note : Cette fonction était nommée tidy_node->is_asp() en PHP 4/Tidy 1.

Précédent | Sommaire | Suivant
tidyNode->hasSiblings | Niveau supérieur | tidyNode->isComment


tidyNode->isComment

(no version information, might be only in CVS)

tidyNode->isComment -- Retourne true si le noeud représente un commentaire

Description

bool tidyNode->isComment ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Note : Cette fonction était appelée tidy_node->is_comment() dans PHP 4/Tidy 1.

Précédent | Sommaire | Suivant
tidyNode->isAsp | Niveau supérieur | tidyNode->isHtml


tidyNode->isHtml

(no version information, might be only in CVS)

tidyNode->isHtml -- Retourne true si le noeud est une partie d'un document HTML

Description

bool tidyNode->isHtml ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Note : Cette fonction était appelée tidy_node->is_html() dans PHP 4/Tidy 1.

Précédent | Sommaire | Suivant
tidyNode->isComment | Niveau supérieur | tidyNode->isJste


tidyNode->isJste

(no version information, might be only in CVS)

tidyNode->isJste -- Renvoie true; si ce node est JSTE

Description

bool tidyNode->isJste ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Note : Cette fonction était appelée tidy_node->is_jste() dans PHP 4/Tidy 1.

Précédent | Sommaire | Suivant
tidyNode->isHtml | Niveau supérieur | tidyNode->isPhp


tidyNode->isPhp

(no version information, might be only in CVS)

tidyNode->isPhp -- Retourne TRUE si ce noeud est en PHP

Description

bool tidyNode->isPhp ( void )

tidyNode->isPhp() retourne TRUE si le noeud courant est du code PHP, FALSE sinon.

Exemple 1. Récupération du code PHP depuis un document HTML

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>Titre</title>'; ?>
</head>
<body>

<?php
echo 'Bonjour le monde !';
?>

</body></html>
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_php($tidy->html());

function get_php($node) {

    // vérifie si le noeud courant est du code PHP
    if($node->isPHP()) {
        echo "\n\n# PHP node #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // vérifie si le noeud courant a des enfants
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_php($child);
        }
    }
}

?>

L'exemple ci-dessus va afficher :

# PHP node #1
<?php echo '<title>Titre</title>'; ?>

# PHP node #2
<?php
echo 'Bonjour le monde !';
?>

Note : Cette fonction était nommée tidy_node->is_php() en PHP 4/Tidy 1.

Précédent | Sommaire | Suivant
tidyNode->isJste | Niveau supérieur | tidyNode->isText


tidyNode->isText

(no version information, might be only in CVS)

tidyNode->isText -- Retourne true si le noeud représente du texte (aucun marquage)

Description

bool tidyNode->isText ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Note : Cette fonction était appelée tidy_node->is_text() dans PHP 4/Tidy 1.

Précédent | Sommaire | Suivant
tidyNode->isPhp | Niveau supérieur | tidyNode::getParent


Analyseur de code PHP

Manuel PHP
Précédent Suivant

CLXVII. Analyseur de code PHP

Introduction

Les fonctions du tokenizer fournissent une interface avec l'analyseur interne de PHP, intégré dans le moteur Zend. En utilisant ces fonctions, vous pouvez écrire votre propre système d'analyse des sources PHP, ou bien des outils de modification du code, sans avoir à refaire toute l'analyse lexicale.

Voir aussi l'annexe sur les tokens.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

À partir de PHP 4.3.0, ces fonctions sont activées par défaut. Pour les anciennes versions, vous devez compiler PHP avec l'option --enable-tokenizer. Vous pouvez désactiver le support de l'extension tokenizer avec l'option --disable-tokenizer.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note : Le support automatique du tokenizer est disponible depuis PHP 4.3.0.

Constantes pré-définies

Lorsque l'extension est compilée dans PHP ou chargée dynamiquement au démarrage, les jetons listés dans la Annexe R sont définis comme des constantes.

Exemples

Voici un exemple simple de script PHP qui utilise le tokenizer pour lire un fichier, supprimer tous les commentaires de la source, et afficher uniquement du code.

Exemple 1. Suppression de commentaires avec le tokenizer

<?php
/* T_ML_COMMENT n'existe pas en PHP 5.
 * Les trois lignes suivantes définissent l'ordre
 * pour préserver une compatibilité ascendante.
 *
 * Les deux lignes suivantes la constante T_DOC_COMMENT uniquement présente en PHP 5,
 * que nous appelerons 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("somefile.php");
$tokens = token_get_all($source);

foreach ($tokens as $token) {
  if (is_string($token)) {
    // simple 1-character token
    echo $token;
  } else {
    // token array
    list($id, $text) = $token;
    switch ($id) {
      case T_COMMENT:
      case T_ML_COMMENT: // nous avons définie cette constante
      case T_DOC_COMMENT: // et celle-là
        // aucune action sur les commentaires
        break;
      default:
        // rien d'autre -> affiche "as is"
        echo $text;
        break;
    }
  }
}
?>
Table des matières
token_get_all -- Scinde un code source en éléments de base
token_name -- Lit le nom d'un élément de code source

Précédent | Sommaire | Suivant
tidyNode::getParent | Niveau supérieur | token_get_all


token_get_all

(PHP 4 >= 4.2.0, PHP 5)

token_get_all -- Scinde un code source en éléments de base

Description

array token_get_all ( string source )

token_get_all() analyse la chaîne donnée source en utilisant l'analyseur lexical du moteur Zend.

Pour une liste des descripteurs, voir Annexe R, ou utilisez la fonction token_name() pour traduire une valeur token dans une représentation sous forme de chaîne de caractères.

Liste de paramètres

source

Le source PHP à analyser.

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 bien un tableau contenant un identifiant de token dans l'élément 0 et la représentation de ce code source dans l'élément 1.

Exemples

Exemple 1. Exemple avec token_get_all()

<?php
$tokens = token_get_all('<?php echo; ?>'); /* => array(
                                                  array(T_OPEN_TAG, '<?php'),
                                                  array(T_ECHO, 'echo'),
                                                  ';',
                                                  array(T_CLOSE_TAG, '?>') ); */
/* Notez que dans l'exemple suivant, la chaîne est parsée
comme T_INLINE_HTML plutôt que l'attendu T_COMMENT (T_COMMENT dans PHP inférieur
à la version 5), car il n'y a pas d'ouverture/fermeture de balises utilisées dans le "code".
Cela revient à mettre un commentaire à l'extérieur des balises <?php ?> dans
un fichier normal. */
$tokens = token_get_all('/* comment */'); // => array(array(T_INLINE_HTML, '/* comment */'));
?>

Précédent | Sommaire | Suivant
Analyseur de code PHP | Niveau supérieur | token_name


token_name

(PHP 4 >= 4.2.0, PHP 5)

token_name -- Lit le nom d'un élément de code source

Description

string token_name ( int token )

token_name() retourne le nom symbolique pour une valeur PHP token value.

Liste de paramètres

token

La valeur token.

Valeurs de retour

Le nom symbolique du token donné. Le nom retourné correspond au nom correspondant à la constante token

Exemples

Exemple 1. Exemple avec token_name()

<?php
// 260 est la valeur token pour le token T_REQUIRE
echo token_name(260);        // -> "T_REQUIRE"

// une constante token correspondant à son propre nom
echo token_name(T_FUNCTION); // -> "T_FUNCTION"
?>

Voir aussi

List of Parser Tokens

Précédent | Sommaire | Suivant
token_get_all | Niveau supérieur | Unicode Functions


Fonctions ODBC (unifiés)

Manuel PHP
Précédent Suivant

CVIII. Fonctions ODBC (unifiés)

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 : 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. iODBC est mis à jour sur OpenLink Software. Plus d'informations sur iODBC, ainsi qu'un HOWTO (en anglais), sont disponibles sur www.iodbc.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. Depuis PHP 4, 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. Depuis PHP 4, 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).

Pour désactiver le support unifié ODBC dans PHP 3 ajoutez --disable-unified-odbc dans votre ligne de configuration. Cela n'est possible que si iODBC, Adabas, Solid, Velocis ou une interface ODBC personnalisée est activée.

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.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
odbc.default_db * | NULL | PHP_INI_ALL |
odbc.default_user * | NULL | PHP_INI_ALL |
odbc.default_pw * | NULL | PHP_INI_ALL |
odbc.allow_persistent | "1" | PHP_INI_SYSTEM |
odbc.check_persistent | "1" | PHP_INI_SYSTEM |
odbc.max_persistent | "-1" | PHP_INI_SYSTEM |
odbc.max_links | "-1" | PHP_INI_SYSTEM |
odbc.defaultlrl | "4096" | PHP_INI_ALL |
odbc.defaultbinmode | "1" | PHP_INI_ALL |

Note : Les entrées marquées avec une étoile ne sont pas encore implémentées.

Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

odbc.default_db chaîne de caractères

La source de données ODBC si aucune n'est spécifiée dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.default_user chaîne de caractères

Nom d'utilisateur à utiliser si aucun n'est spécifié dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.default_pw chaîne de caractères

Mot de passe à utiliser si aucun n'est spécifié dans les fonctions odbc_connect() ou odbc_pconnect().

odbc.allow_persistent booléen

Est-ce que les connexions ODBC persistantes sont autorisées ou pas ?

odbc.check_persistent booléen

Vérifie que la connexion est valide avant de l'utiliser.

odbc.max_persistent entier

Nombre maximum de connexions persistantes par processus.

odbc.max_links entier

Le nombre maximum de connexions ODBC par processus, y compris les connexions persistantes.

odbc.defaultlrl entier

Gestion des champs de type LONG. Spécifie le nombre d'octets retournés dans les variables.

Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..

odbc.defaultbinmode entier

Gestion des données binaires.

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.

ODBC_TYPE (entier)

ODBC_BINMODE_PASSTHRU (entier)

ODBC_BINMODE_RETURN (entier)

ODBC_BINMODE_CONVERT (entier)

SQL_ODBC_CURSORS (entier)

SQL_CUR_USE_DRIVER (entier)

SQL_CUR_USE_IF_NEEDED (entier)

SQL_CUR_USE_ODBC (entier)

SQL_CONCURRENCY (entier)

SQL_CONCUR_READ_ONLY (entier)

SQL_CONCUR_LOCK (entier)

SQL_CONCUR_ROWVER (entier)

SQL_CONCUR_VALUES (entier)

SQL_CURSOR_TYPE (entier)

SQL_CURSOR_FORWARD_ONLY (entier)

SQL_CURSOR_KEYSET_DRIVEN (entier)

SQL_CURSOR_DYNAMIC (entier)

SQL_CURSOR_STATIC (entier)

SQL_KEYSET_SIZE (entier)

SQL_CHAR (entier)

SQL_VARCHAR (entier)

SQL_LONGVARCHAR (entier)

SQL_DECIMAL (entier)

SQL_NUMERIC (entier)

SQL_BIT (entier)

SQL_TINYINT (entier)

SQL_SMALLINT (entier)

SQL_INTEGER (entier)

SQL_BIGINT (entier)

SQL_REAL (entier)

SQL_FLOAT (entier)

SQL_DOUBLE (entier)

SQL_BINARY (entier)

SQL_VARBINARY (entier)

SQL_LONGVARBINARY (entier)

SQL_DATE (entier)

SQL_TIME (entier)

SQL_TIMESTAMP (entier)

SQL_TYPE_DATE (entier)

SQL_TYPE_TIME (entier)

SQL_TYPE_TIMESTAMP (entier)

SQL_BEST_ROWID (entier)

SQL_ROWVER (entier)

SQL_SCOPE_CURROW (entier)

SQL_SCOPE_TRANSACTION (entier)

SQL_SCOPE_SESSION (entier)

SQL_NO_NULLS (entier)

SQL_NULLABLE (entier)

SQL_INDEX_UNIQUE (entier)

SQL_INDEX_ALL (entier)

SQL_ENSURE (entier)

SQL_QUICK (entier)

Table des matières
odbc_autocommit -- Active le mode auto-validation
odbc_binmode -- Modifie la gestion des colonnes de données binaires
odbc_close_all -- Ferme toutes les connexions ODBC
odbc_close -- Ferme une connexion ODBC
odbc_columnprivileges -- Liste les colonnes et leurs droits associés
odbc_columns -- Liste les colonnes d'une table
odbc_commit -- Valide une transaction ODBC
odbc_connect -- Connexion à une source
odbc_cursor -- Lecture du pointeur de fiche courante (cursorname)
odbc_data_source -- Retourne des informations sur la connexion courante
odbc_do -- Synonyme de odbc_exec()
odbc_error -- Lit le dernier code d'erreur
odbc_errormsg -- Lit le dernier message d'erreur
odbc_exec -- Prépare et exécute une requête SQL
odbc_execute -- Exécute une requête SQL préparée
odbc_fetch_array -- Lit une ligne de résultat dans un tableau associatif
odbc_fetch_into -- Lit une ligne de résultat, et la place dans un tableau
odbc_fetch_object -- Lit une ligne de résultat dans un objet
odbc_fetch_row -- Lit une ligne de résultat
odbc_field_len -- Lit la longueur d'un champ
odbc_field_name -- Lit le nom de la colonne
odbc_field_num -- Numéro de colonne
odbc_field_precision -- Alias de odbc_field_len()
odbc_field_scale -- Lit l'échelle d'un champ
odbc_field_type -- Type de données d'un champ
odbc_foreignkeys -- Liste les clés étrangères
odbc_free_result -- Libère les ressources associées à un résultat
odbc_gettypeinfo -- Liste les types de données supportés par une source
odbc_longreadlen -- Gestion des colonnes de type LONG
odbc_next_result -- Vérifie si plusieurs résultats sont disponibles
odbc_num_fields -- Nombre de colonnes dans un résultat
odbc_num_rows -- Nombre de lignes dans un résultat
odbc_pconnect -- Ouvre une connexion persistante à une source de données
odbc_prepare -- Prépare une commande pour l'exécution
odbc_primarykeys -- Liste les colonnes utilisées dans une clé primaire
odbc_procedurecolumns -- Liste les paramètres des procédures
odbc_procedures -- Liste les procédures stockées
odbc_result_all -- Affiche le résultat sous la forme d'une table HTML
odbc_result -- Lit un champ de résultat UODBC
odbc_rollback -- Annule une transaction
odbc_setoption -- Modifie les paramètres ODBC
odbc_specialcolumns -- Retourne l'ensemble optimal de colonnes, qui permet de définir uniquement une ligne dans une table
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

Précédent | Sommaire | Suivant
ociwritetemporarylob | Niveau supérieur | odbc_autocommit


odbc_autocommit

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_autocommit -- Active le mode auto-validation

Description

mixed odbc_autocommit ( resource connection_id [, bool OnOff] )

Sans le paramètre onoff, odbc_autocommit() retourne le statut d'auto-validation de la connexion connection_id. Une valeur différente de 0 si le mode est activé, 0 s'il ne l'est pas, ou FALSE si une erreur survient.

Si onoff vaut TRUE, l'auto-validation est activée. S'il est FALSE, l'auto-validation est désactivée. Retourne TRUE en cas de succès, FALSE si une erreur survient.

Par défaut, l'auto-validation est activée. Désactiver l'auto-validation est équivalent à démarrer une transaction.

Voir aussi odbc_commit() et odbc_rollback().

Précédent | Sommaire | Suivant
Fonctions ODBC (unifiés) | Niveau supérieur | odbc_binmode


odbc_binmode

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_binmode -- Modifie la gestion des colonnes de données binaires

Description

bool odbc_binmode ( resource result_id, int mode )

Types ODBC SQL affectés: BINARY, VARBINARY, LONGVARBINARY.

  • ODBC_BINMODE_PASSTHRU: Mode Passthru

  • ODBC_BINMODE_RETURN: Retourne tel quel.

  • ODBC_BINMODE_CONVERT: Convertit en char et retourne la valeur.

Lorsqu'une donnée SQL est convertie en caractère C, les 8 bits du caractère source sont représentés par deux caractères ASCII. Ces caractères sont des représentations ASCII des nombres au format hexadécimal. Par exemple, le binaire 00000001 est converti en "01" et le binaire 11111111 est converti en "FF".

Tableau 1. Conversion des LONGVARBINARY

mode | longueur | résultat
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_RETURN | 0 | passthru
ODBC_BINMODE_CONVERT | 0 | passthru
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_RETURN | 0 | Tel quel
ODBC_BINMODE_CONVERT | 0 | Caractère

Si odbc_fetch_into() est utilisé, passthru signifie qu'une chaîne vide sera retournée pour ces colonnes.

Si result_id vaut 0, ces paramètres seront appliqués aux nouveaux résultats.

Note : La valeur par défaut de longreadlen est 4096 et celle de odbc_binmode est ODBC_BINMODE_RETURN. La gestion des colonnes binaires est aussi modifiée par odbc_longreadlen().

Précédent | Sommaire | Suivant
odbc_autocommit | Niveau supérieur | odbc_close_all


odbc_close_all

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_close_all -- Ferme toutes les connexions ODBC

Description

void odbc_close_all ( void )

odbc_close_all() ferme toutes les connexions ODBC à des sources de données.

Note : odbc_close_all() échouera s'il y a des transactions en cours sur cette connexion. Dans ce cas, la connexion restera ouverte.

Précédent | Sommaire | Suivant
odbc_binmode | Niveau supérieur | odbc_close


odbc_close

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_close -- Ferme une connexion ODBC

Description

void odbc_close ( resource connection_id )

odbc_close() ferme la connexion avec la source de données représentée par l'identifiant de connexion connection_id.

Note : odbc_close() échouera s'il y a des transactions en cours sur cette connexion. Dans ce cas, la connexion restera ouverte.

Précédent | Sommaire | Suivant
odbc_close_all | Niveau supérieur | odbc_columnprivileges


odbc_columnprivileges

(PHP 4, PHP 5)

odbc_columnprivileges -- Liste les colonnes et leurs droits associés

Description

resource odbc_columnprivileges ( resource connection_id, string qualifier, string owner, string table_name, string column_name )

odbc_columnprivileges() liste les colonnes et leurs droits associés pour la table table_name. odbc_columnprivileges() retourne un identifiant de résultat ODBC, ou bien FALSE en cas d'erreur.

Le résultat possède les colonnes suivantes :

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • GRANTOR

  • GRANTEE

  • PRIVILEGE

  • IS_GRANTABLE

Le résultat est ordonné par TABLE_QUALIFIER, TABLE_OWNER et TABLE_NAME.

Le paramètre column_name accepte des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

Précédent | Sommaire | Suivant
odbc_close | Niveau supérieur | odbc_columns


odbc_columns

(PHP 4, PHP 5)

odbc_columns -- Liste les colonnes d'une table

Description

resource odbc_columns ( resource connection_id [, string qualifier [, string schema [, string table_name [, string column_name]]]] )

odbc_columns() liste toutes les colonnes de la source de données. odbc_columns() retourne un identifiant de résultat ODBC contenant les informations ou bien FALSE en cas d'erreur.

Le résultat possède les colonnes suivantes :

  • TABLE_QUALIFIER

  • TABLE_SCHEM

  • TABLE_NAME

  • COLUMN_NAME

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • RADIX

  • NULLABLE

  • REMARKS

Le résultat est ordonné par TABLE_QUALIFIER, TABLE_SCHEM et TABLE_NAME.

Les paramètres owner, column_name et table_name acceptent des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

Voir aussi odbc_columnprivileges() pour connaître les droits associés.

Précédent | Sommaire | Suivant
odbc_columnprivileges | Niveau supérieur | odbc_commit


odbc_commit

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_commit -- Valide une transaction ODBC

Description

bool odbc_commit ( resource connection_id )

odbc_commit() valide toutes les transactions en cours sur la connexion connection_id. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
odbc_columns | Niveau supérieur | odbc_connect


odbc_connect

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_connect -- Connexion à une source

Description

resource odbc_connect ( string dsn, string user, string password [, int cursor_type] )

odbc_connect() retourne un identifiant de connexion ODBC ou 0 (FALSE) en cas d'erreur.

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. Le quatrième paramètre 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.

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.

Les constantes suivantes sont définies comme types de pointeur :

  • SQL_CUR_USE_IF_NEEDED

  • SQL_CUR_USE_ODBC

  • SQL_CUR_USE_DRIVER

  • SQL_CUR_DEFAULT

Pour les connexions persistantes, reportez-vous à odbc_pconnect().

Précédent | Sommaire | Suivant
odbc_commit | Niveau supérieur | odbc_cursor


odbc_cursor

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_cursor -- Lecture du pointeur de fiche courante (cursorname)

Description

string odbc_cursor ( resource result_id )

odbc_cursor() lit le pointeur de fiche courante (cursorname) pour le résultat result_id.

Précédent | Sommaire | Suivant
odbc_connect | Niveau supérieur | odbc_data_source


odbc_data_source

(PHP 4 >= 4.3.0, PHP 5)

odbc_data_source -- Retourne des informations sur la connexion courante

Description

array odbc_data_source ( resource connection_id, int fetch_type )

odbc_data_source() retourne FALSE en cas d'erreur, et un tableau en cas de réussite.

odbc_data_source() retourne une liste de DNS disponibles (après l'avoir appelée plusieurs fois). 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.

Précédent | Sommaire | Suivant
odbc_cursor | Niveau supérieur | odbc_do


odbc_do

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_do -- Synonyme de odbc_exec()

Description

resource odbc_do ( resource conn_id, string query )

odbc_do() exécute la requête query sur la connexion connection_id.

Précédent | Sommaire | Suivant
odbc_data_source | Niveau supérieur | odbc_error


odbc_error

(PHP 4 >= 4.0.5, PHP 5)

odbc_error -- Lit le dernier code d'erreur

Description

string odbc_error ( [resource connection_id] )

odbc_error() retourne un état ODBC sur 6 chiffres, ou une chaîne vide s'il n'y avait plus d'erreurs. Si connection_id est spécifié, le dernier état ODBC de cette connexion est retourné. Si connection_id est omis, c'est le dernier état de n'importe quelle connexion qui est retourné.

Cette fonction retourne beaucoup de valeurs significatives uniquement si la dernière requête odbc échoue (i.e. odbc_exec() retourne FALSE).

Voir aussi odbc_errormsg() et odbc_exec().

Précédent | Sommaire | Suivant
odbc_do | Niveau supérieur | odbc_errormsg


odbc_errormsg

(PHP 4 >= 4.0.5, PHP 5)

odbc_errormsg -- Lit le dernier message d'erreur

Description

string odbc_errormsg ( [resource connection_id] )

odbc_errormsg() retourne une chaîne contenant le dernier message d'erreur ODBC, ou une chaîne vide s'il n'y avait pas d'erreur. Si connection_id est spécifié, le dernier état ODBC de cette connexion est retourné. Si connection_id est omis, c'est le dernier état de n'importe quelle connexion qui est retourné.

Cette fonction retourne beaucoup de valeurs significatives uniquement si la dernière requête odbc échoue (i.e. odbc_exec() retourne FALSE).

Voir aussi odbc_error() et odbc_exec().

Précédent | Sommaire | Suivant
odbc_error | Niveau supérieur | odbc_exec


odbc_exec

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_exec -- Prépare et exécute une requête SQL

Description

resource odbc_exec ( resource connection_id, string query_string [, int flags] )

odbc_exec() retourne FALSE en cas d'erreur, ou bien retourne un identifiant de résultat ODBC en cas d'exécution réussie.

odbc_exec() envoie une commande SQL à la source de données représentée par connection_id. Ce paramètre doit être un identifiant valide de connexion, retourné par odbc_connect() ou odbc_pconnect().

Voir aussi odbc_prepare() et odbc_execute() pour les exécutions multiples de requêtes SQL.

Précédent | Sommaire | Suivant
odbc_errormsg | Niveau supérieur | odbc_execute


odbc_execute

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_execute -- Exécute une requête SQL préparée

Description

bool odbc_execute ( resource result_id [, array parameters_array] )

odbc_execute() exécute une requête SQL préparée par odbc_prepare(). Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Le tableau de paramètres parameters_array ne sert que si vous avez besoin de paramètrer votre requête.

Les valeurs du paramètre parameter_array seront substituées dans les variables de requêtes de la requête préparée. Les éléments de ce tableau seront convertis en chaînes de caractères en appelant cette fonction.

Tout paramètre de parameter_array qui commence et termine par des guillemets simples sera considéré comme un nom de fichier à lire et envoyé à la base de données, avec la variable de requête appropriée.

Note : Depuis PHP 4.1.1, cette fonction de lecture de fichier a les limitations suivantes :

  • La lecture du fichier n'est sujette à aucune restriction de la page du safe mode ou de la directive open-basedir. Cela a été corrigé en PHP 4.2.0.

  • Les fichiers distants ne sont pas supportés.

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

Précédent | Sommaire | Suivant
odbc_exec | Niveau supérieur | odbc_fetch_array


odbc_fetch_array

(PHP 4 >= 4.0.2, PHP 5)

odbc_fetch_array -- Lit une ligne de résultat dans un tableau associatif

Description

array odbc_fetch_array ( resource result [, int rownumber] )

Lit une ligne de résultat dans un tableau associatif depuis une requête ODBC. Voir le changelog ci-dessous pour savoir depuis quand cette fonction est disponible.

Liste de paramètres

result

La ressource de résultat depuis la fonction odbc_exec().

rownumber

Choisit optionnellement quel numéro de ligne doit être récupéré.

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.

Historique

Version | Description
4.3.3 | Cette fonction existe lorsque PHP est compilé avec le support IBM DB2 ou UnixODBC.
4.3.2 | Cette fonction existe lorsque PHP est compilé pour Windows.
4.0.2 | Cette fonction existe lorsque PHP est compilé avecle support DBMaker.

Voir aussi

odbc_fetch_row()
odbc_fetch_object()
odbc_num_rows()

Précédent | Sommaire | Suivant
odbc_execute | Niveau supérieur | odbc_fetch_into


odbc_fetch_into

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_fetch_into -- Lit une ligne de résultat, et la place dans un tableau

Description

int odbc_fetch_into ( resource result_id, array &result_array [, int rownumber] )

bool odbc_fetch_into ( resource result_id [, int rownumber, array &result_array] )

odbc_fetch_into() retourne le nombre de colonnes dans le résultat, ou FALSE en cas d'erreur. result_array doit avoir été passé par référence, mais il 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.

Exemple 1. Exemple avec odbc_fetch_into() (avant PHP 4.0.6)

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

ou

<?php
$rc = odbc_fetch_into($res_id, $row, $my_array);
$rc = odbc_fetch_into($res_id, 1, $my_array);
?>

Jusqu'en PHP 4.0.5, le paramètre result_array n'a plus besoin d'être passé par référence.

Depuis PHP 4.0.6, le paramètre rownumber ne peut pas être passé comme une constante, mais comme une variable.

Depuis PHP 4.2.0, les paramètres result_array et rownumber ont été inversés. Cela permet à rownumber d'être à nouveau une constante. Cette modification est la dernière pour cette fonction.

Exemple 2. Exemple avec odbc_fetch_into() (après PHP 4.0.6)

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

ou

<?php
$row = 1;
$rc = odbc_fetch_into($res_id, $row, $my_array);
?>

Exemple 3. Exemple avec odbc_fetch_into() en PHP 4.2.0

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

ou

<?php
$rc = odbc_fetch_into($res_id,$my_array, 2);
?>

Précédent | Sommaire | Suivant
odbc_fetch_array | Niveau supérieur | odbc_fetch_object


odbc_fetch_object

(PHP 4 >= 4.0.2, PHP 5)

odbc_fetch_object -- Lit une ligne de résultat dans un objet

Description

object odbc_fetch_object ( resource result [, int rownumber] )

Lit une ligne de résultat dans un objet depuis une requête ODBC. Voir le changelog ci-dessous pour savoir depuis quand cette fonction est disponible.

Liste de paramètres

result

La ressource de résultat depuis la fonction odbc_exec().

rownumber

Choisit optionnellement le numéro de ligne à récupérer.

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.

Historique

Version | Description
4.3.3 | Cette fonction existe lorsque PHP est compilé avec le support IBM DB2 ou UnixODBC.
4.3.2 | Cette fonction existe lorsque PHP est compilé pour Windows.
4.0.2 | Cette fonction existe lorsque PHP est compilé avec le support DBMaker.

Voir aussi

odbc_fetch_row()
odbc_fetch_array()
odbc_num_rows()

Précédent | Sommaire | Suivant
odbc_fetch_into | Niveau supérieur | odbc_fetch_row


odbc_fetch_row

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_fetch_row -- Lit une ligne de résultat

Description

bool odbc_fetch_row ( resource result_id [, int row_number] )

Si odbc_fetch_row() a réussi, TRUE est retourné. S'il n'y avait plus de ligne, ou en cas d'erreur, FALSE est retourné.

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

Si row_number est omis, row_number va tenter de lire la prochaine ligne dans le résultat. Des appels répétés à odbc_fetch_row() avec et sans paramètre row_number peuvent être combinés librement.

Pour passer en revue toutes les lignes d'un résultat plusieurs fois, vous pouvez appeler odbc_fetch_row() avec row_number = 1, puis continuer à appeler odbc_fetch_row() sans le paramètre row_number pour passer en revue tout le résultat. Si un pilote ne supporte pas la lecture des lignes par numéro, le paramètre sera ignoré.

Précédent | Sommaire | Suivant
odbc_fetch_object | Niveau supérieur | odbc_field_len


odbc_field_len

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_field_len -- Lit la longueur d'un champ

Description

int odbc_field_len ( resource result_id, int field_number )

odbc_field_len() retourne la longueur du champ référencé par le nombre field_number, dans la connexion ODBC result_id. Les numéros de champs commencent à 1.

Voir aussi odbc_field_scale() pour connaître l'échelle d'un nombre à virgule flottante.

Précédent | Sommaire | Suivant
odbc_fetch_row | Niveau supérieur | odbc_field_name


odbc_field_name

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_field_name -- Lit le nom de la colonne

Description

string odbc_field_name ( resource result_id, int field_number )

odbc_field_name() lit le nom de la colonne dont l'index est field_number. La numérotation des colonnes commence à 1. FALSE est retourné en cas d'erreur.

Précédent | Sommaire | Suivant
odbc_field_len | Niveau supérieur | odbc_field_num


odbc_field_num

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_field_num -- Numéro de colonne

Description

int odbc_field_num ( resource result_id, string field_name )

odbc_field_num() retourne le numéro de la colonne nommée field_name. Ce numéro correspond à l'index du champ dans le résultat ODBC. La numérotation commence à 1. FALSE est retourné en cas d'erreur.

Précédent | Sommaire | Suivant
odbc_field_name | Niveau supérieur | odbc_field_precision


odbc_field_precision

(PHP 4, PHP 5)

odbc_field_precision -- Alias de odbc_field_len()

Description

int odbc_field_precision ( resource result_id, int field_number )

odbc_field_precision() retourne la précision du champ référencé par son numéro field_number, dans le résultat ODBC result_id.

Voir aussi : odbc_field_scale() pour connaître l'échelle d'un nombre à virgule flottante.

Précédent | Sommaire | Suivant
odbc_field_num | Niveau supérieur | odbc_field_scale


odbc_field_scale

(PHP 4, PHP 5)

odbc_field_scale -- Lit l'échelle d'un champ

Description

int odbc_field_scale ( resource result_id, int field_number )

odbc_field_scale() retourne l'échelle du champ référencé par son numéro de champ field_number dans le résultat ODBC result_id.

Précédent | Sommaire | Suivant
odbc_field_precision | Niveau supérieur | odbc_field_type


odbc_field_type

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_field_type -- Type de données d'un champ

Description

string odbc_field_type ( resource result_id, int field_number )

odbc_field_type() retourne le type de données SQL d'un champ, identifié par son index. La numérotation des champs commence à 1.

Précédent | Sommaire | Suivant
odbc_field_scale | Niveau supérieur | odbc_foreignkeys


odbc_foreignkeys

(PHP 4, PHP 5)

odbc_foreignkeys -- Liste les clés étrangères

Description

resource odbc_foreignkeys ( resource connection_id, string pk_qualifier, string pk_owner, string pk_table, string fk_qualifier, string fk_owner, string fk_table )

odbc_foreignkeys() liste les clés étrangères utilisées dans la table pk_table. odbc_foreignkeys() retourne un identifiant de résultat, ou FALSE en cas d'erreur.

Le résultat possède les colonnes suivantes :

  • PKTABLE_QUALIFIER

  • PKTABLE_OWNER

  • PKTABLE_NAME

  • PKCOLUMN_NAME

  • FKTABLE_QUALIFIER

  • FKTABLE_OWNER

  • FKTABLE_NAME

  • FKCOLUMN_NAME

  • KEY_SEQ

  • UPDATE_RULE

  • DELETE_RULE

  • FK_NAME

  • PK_NAME

Si pk_table contient un nom de table, odbc_foreignkeys() retourne la clé primaire de la table pk_table, et toutes les clés étrangères qui y font référence.

Si fk_table contient un nom de table, odbc_foreignkeys() retourne la liste des clés étrangères de la table fk_table, et les clés primaires (d'autres tables) qui y font référence.

Si pk_table et fk_table contiennent des noms de tables, odbc_foreignkeys() retourne la liste des clés étrangères de la table fk_table qui utilisent la clé primaire de la table pk_table. Cette liste devrait ne contenir qu'une clé au mieux.

Précédent | Sommaire | Suivant
odbc_field_type | Niveau supérieur | odbc_free_result


odbc_free_result

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_free_result -- Libère les ressources associées à un résultat

Description

bool odbc_free_result ( resource result_id )

odbc_free_result() retourne toujours TRUE.

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. Mais, si vous êtes sûr que vous n'aurez plus besoin d'un résultat jusqu'à la fin de votre script, vous pouvez appeler odbc_free_result(), et la mémoire associée à result_id sera libérée.

Note : Si l'auto-validation 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.

Précédent | Sommaire | Suivant
odbc_foreignkeys | Niveau supérieur | odbc_gettypeinfo


odbc_gettypeinfo

(PHP 4, PHP 5)

odbc_gettypeinfo -- Liste les types de données supportés par une source

Description

resource odbc_gettypeinfo ( resource connection_id [, int data_type] )

odbc_gettypeinfo() liste les types de données qui sont supportées par une source. odbc_gettypeinfo() retourne un identifiant de résultat, ou FALSE en cas d'erreur. L'argument optionnel data_type peut être utilisé pour restreindre les informations à un seul type de données.

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.

Précédent | Sommaire | Suivant
odbc_free_result | Niveau supérieur | odbc_longreadlen


odbc_longreadlen

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_longreadlen -- Gestion des colonnes de type LONG

Description

bool odbc_longreadlen ( resource result_id, int length )

Types ODBC SQL affectés: LONG, LONGVARBINARY.

Le nombre d'octets retournés à PHP est contrôlé par le paramètre length. Si sa valeur est 0, les colonnes de type LONG seront transformées en chaînes vides.

Note : La gestion des types LONGVARBINARY est aussi affectée par odbc_binmode().

Précédent | Sommaire | Suivant
odbc_gettypeinfo | Niveau supérieur | odbc_next_result


odbc_next_result

(PHP 4 >= 4.0.5, PHP 5)

odbc_next_result -- Vérifie si plusieurs résultats sont disponibles

Description

bool odbc_next_result ( resource result_id )

odbc_next_result() retourne TRUE 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.

Cette fonction retourne FALSE si une erreur survient.

L'argument est un identifiant de résultat valide retourné par la fonction odbc_exec().

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 deuxième 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 le quatrième jeu de résultats";
var_dump(odbc_next_result($r_Results));
?>

L'exemple ci-dessus va afficher :

Dump first result set array(1) {
   ["A"]=>
   string(1) "A"
}
bool(false)
Get second results set bool(true)
Dump second result set array(1) {
   ["B"]=>
   string(1) "B"
}
bool(false)
Get third results set bool(true)
Dump third result set array(1) {
   ["C"]=>
   string(1) "C"
}
bool(false)
Try for a fourth result set bool(false)

Précédent | Sommaire | Suivant
odbc_longreadlen | Niveau supérieur | odbc_num_fields


odbc_num_fields

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_num_fields -- Nombre de colonnes dans un résultat

Description

int odbc_num_fields ( resource result_id )

odbc_num_fields() retourne le nombre de colonnes dans un résultat ODBC. odbc_num_fields() retournera -1 en cas d'erreur. L'argument est un identifiant de résultat valide, retourné par odbc_exec().

Précédent | Sommaire | Suivant
odbc_next_result | Niveau supérieur | odbc_num_rows


odbc_num_rows

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_num_rows -- Nombre de lignes dans un résultat

Description

int odbc_num_rows ( resource result_id )

odbc_num_rows() retourne le nombre de lignes dans un résultat ODBC. odbc_num_rows() retournera -1 en cas d'erreur. Pour les commandes INSERT, UPDATE et DELETE, odbc_num_rows() retourne le nombre de ligne affectées. Pour les commandes SELECT, cela PEUT être le nombre de lignes disponibles, mais ce n'est pas certain.

Note: odbc_num_rows() après un SELECT retournera -1 avec de nombreux pilotes.

Précédent | Sommaire | Suivant
odbc_num_fields | Niveau supérieur | odbc_pconnect


odbc_pconnect

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_pconnect -- Ouvre une connexion persistante à une source de données

Description

resource odbc_pconnect ( string dsn, string user, string password [, int cursor_type] )

odbc_pconnect() retourne un identifiant de connexion ODBC ou 0 (FALSE) en cas d'erreur. 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.

Note : Les connexions persistantes n'ont aucun effet si PHP est utilisé comme CGI.

Pour plus de détails sur le paramètre optionnel cursor_type, voyez odbc_connect(). Pour plus de détails sur les connexions persistantes, reportez-vous à la FAQ PHP.

Précédent | Sommaire | Suivant
odbc_num_rows | Niveau supérieur | odbc_prepare


odbc_prepare

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_prepare -- Prépare une commande pour l'exécution

Description

resource odbc_prepare ( resource connection_id, string query_string )

odbc_prepare() prépare une commande pour l'exécution. Cette fonction retournera FALSE en cas d'erreur.

odbc_prepare() retourne un identifiant de résultat ODBC si la commande SQL a été préparée avec succès. 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.

Dans le code suivant, $res ne sera valide uniquement si les trois paramètres pour myproc sont des paramètres IN :

<?php
 $a = 1;
 $b = 2;
 $c = 3;
 $stmt = odbc_prepare($conn, 'CALL myproc(?,?,?)');
 $res = odbc_execute($stmt, array($a, $b, $c));
 ?>
Si vous devez appeler une procédure stockée utilisant des paramètres INOUT ou OUT, il est recommandé d'utiliser l'extension native de votre base de données (par exemple, mssql pour MS SQL Server ou oci8 pour Oracle).

Précédent | Sommaire | Suivant
odbc_pconnect | Niveau supérieur | odbc_primarykeys


odbc_primarykeys

(PHP 4, PHP 5)

odbc_primarykeys -- Liste les colonnes utilisées dans une clé primaire

Description

resource odbc_primarykeys ( resource connection_id, string qualifier, string owner, string table )

odbc_primarykeys() liste les colonnes utilisées dans une clé primaire de la table table. odbc_primarykeys() retourne un identifiant de résultat, ou FALSE en cas d'erreur.

Le résultat possède les colonnes suivantes :

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • COLUMN_NAME

  • KEY_SEQ

  • PK_NAME

Précédent | Sommaire | Suivant
odbc_prepare | Niveau supérieur | odbc_procedurecolumns


odbc_procedurecolumns

(PHP 4, PHP 5)

odbc_procedurecolumns -- Liste les paramètres des procédures

Description

resource odbc_procedurecolumns ( resource connection_id [, string qualifier, string owner, string proc, string column] )

odbc_procedurecolumns() liste 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. odbc_procedurecolumns() retourne un identifiant de résultat, ou FALSE en cas d'erreur.

Le résultat possède les colonnes suivantes :

  • PROCEDURE_QUALIFIER

  • PROCEDURE_OWNER

  • PROCEDURE_NAME

  • COLUMN_NAME

  • COLUMN_TYPE

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • RADIX

  • NULLABLE

  • REMARKS

Le résultat est ordonné par PROCEDURE_QUALIFIER, PROCEDURE_OWNER, PROCEDURE_NAME et COLUMN_TYPE.

Les paramètres owner, proc et column acceptent des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

Précédent | Sommaire | Suivant
odbc_primarykeys | Niveau supérieur | odbc_procedures


odbc_procedures

(PHP 4, PHP 5)

odbc_procedures -- Liste les procédures stockées

Description

resource odbc_procedures ( resource connection_id [, string qualifier, string owner, string name] )

odbc_procedures() liste toutes les procédures stockées dans la source de données. odbc_procedures() retourne un identifiant de résultat ODBC contenant les informations ou FALSE en cas d'erreur.

Le résultat possède les colonnes suivantes :

  • PROCEDURE_QUALIFIER

  • PROCEDURE_OWNER

  • PROCEDURE_NAME

  • NUM_INPUT_PARAMS

  • NUM_OUTPUT_PARAMS

  • NUM_RESULT_SETS

  • REMARKS

  • PROCEDURE_TYPE

Les paramètres owner et name acceptent des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

Précédent | Sommaire | Suivant
odbc_procedurecolumns | Niveau supérieur | odbc_result_all


odbc_result_all

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_result_all -- Affiche le résultat sous la forme d'une table HTML

Description

int odbc_result_all ( resource result_id [, string format] )

odbc_result_all() retourne le nombre de lignes dans le résultat, ou FALSE en cas d'erreur.

odbc_result_all() affiche toutes les lignes d'un résultat. L'affichage se fait au format HTML. Avec l'option format, il est possible de modifier l'aspect global de la table.

Précédent | Sommaire | Suivant
odbc_procedures | Niveau supérieur | odbc_result


odbc_result

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_result -- Lit un champ de résultat UODBC

Description

mixed odbc_result ( resource result_id, mixed field )

odbc_result() retourne le contenu d'un champ, FALSE si une erreur survient, NULL si le contenu des données est vide ou TRUE pour des données binaires.

field 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. Par exemple :

Exemple 1. Exemple avec odbc_result()

<?php
$item_3 = odbc_result($Query_ID, 3 );
$item_val = odbc_result($Query_ID, "val");
?>

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.

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

Précédent | Sommaire | Suivant
odbc_result_all | Niveau supérieur | odbc_rollback


odbc_rollback

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_rollback -- Annule une transaction

Description

bool odbc_rollback ( resource connection_id )

odbc_rollback() annule toutes les transactions sur la connexion connection_id. odbc_rollback() retourne TRUE en cas de succès, et FALSE en cas d'échec.

Précédent | Sommaire | Suivant
odbc_result | Niveau supérieur | odbc_setoption


odbc_setoption

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_setoption -- Modifie les paramètres ODBC

Description

bool odbc_setoption ( resource id, int function, int option, int param )

odbc_setoption() donne accès aux options ODBC pour une connexion particulière ou un résultat de requête. Elle a été écrite pour aider à la résolution de problèmes liés aux pilotes ODBC récalcitrants. Vous aurez sûrement à utiliser odbc_setoption() si vous êtes un programmeur ODBC et que vous comprenez les divers effets des options disponibles. Vous aurez aussi besoin d'un bon manuel de référence pour comprendre les options et leur usage. Différentes versions de pilotes supportent différentes versions d'options.

Étant donné que les effets peuvent varier d'un pilote à l'autre, l'utilisation de odbc_setoption() dans des scripts voués à être livrés au public est très fortement déconseillée. De plus, certaines options ODBC ne sont pas disponibles car elles doivent être fixées avant l'établissement de la connexion. Cependant, si dans un cas bien spécifique, odbc_setoption() vous permet d'utiliser PHP sans que votre patron ne vous pousse à utiliser un produit commercial, alors cela n'a pas d'importance.

id est un identifiant de connexion, ou un identifiant de résultat, pour lequel vous souhaitez modifier des options. Pour SQLSetConnectOption(), c'est un identifiant de connexion. Pour SQLSetStmtOption(), c'est un identifiant de résultat.

function est la fonction ODBC à utiliser. La valeur doit être de 1 pour utiliser SQLSetConnectOption() et 2 pour SQLSetStmtOption().

Le paramètre option est l'option à modifier.

Le paramètre param est la valeur de l'option option.

Exemple 1. Exemple de modification d'option ODBC

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

Précédent | Sommaire | Suivant
odbc_rollback | Niveau supérieur | odbc_specialcolumns


odbc_specialcolumns

(PHP 4, PHP 5)

odbc_specialcolumns -- Retourne l'ensemble optimal de colonnes, qui permet de définir uniquement une ligne dans une table

Description

resource odbc_specialcolumns ( resource connection_id, int type, string qualifier, string owner, string table, int scope, int nullable )

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

odbc_specialcolumns() retourne un identifiant de résultat, ou FALSE en cas d'erreur.

Le résultat possède les colonnes suivantes :

  • SCOPE

  • COLUMN_NAME

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • PSEUDO_COLUMN

Le résultat est ordonné par SCOPE.

Précédent | Sommaire | Suivant
odbc_setoption | Niveau supérieur | odbc_statistics


odbc_statistics

(PHP 4, PHP 5)

odbc_statistics -- Calcul des statistiques sur une table

Description

resource odbc_statistics ( resource connection_id, string qualifier, string owner, string table_name, int unique, int accuracy )

odbc_statistics() effectue quelques statistiques sur une table et ses index. odbc_statistics() retourne un identifiant de résultat, ou FALSE en cas d'erreur.

Le résultat possède les colonnes suivantes :

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • NON_UNIQUE

  • INDEX_QUALIFIER

  • INDEX_NAME

  • TYPE

  • SEQ_IN_INDEX

  • COLUMN_NAME

  • COLLATION

  • CARDINALITY

  • PAGES

  • FILTER_CONDITION

Le résultat est ordonné par NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME et SEQ_IN_INDEX.

Précédent | Sommaire | Suivant
odbc_specialcolumns | Niveau supérieur | odbc_tableprivileges


odbc_tableprivileges

(PHP 4, PHP 5)

odbc_tableprivileges -- Liste les tables et leurs privilèges

Description

resource odbc_tableprivileges ( resource connection_id, string qualifier, string owner, string name )

odbc_tableprivileges() liste les tables de la source et leurs droits associés. odbc_tableprivileges() retourne un identifiant de résultat ODBC, ou bien FALSE en cas d'erreur.

Le résultat possède les colonnes suivantes :

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • GRANTOR

  • GRANTEE

  • PRIVILEGE

  • IS_GRANTABLE

Le résultat est ordonné par TABLE_QUALIFIER, TABLE_OWNER et TABLE_NAME.

Les paramètres owner et name acceptent des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

Précédent | Sommaire | Suivant
odbc_statistics | Niveau supérieur | odbc_tables


odbc_tables

(PHP 3 >= 3.0.17, PHP 4, PHP 5)

odbc_tables -- Liste les tables d'une source

Description

resource odbc_tables ( resource connection_id [, string qualifier [, string owner [, string name [, string types]]]] )

odbc_tables() liste toutes les tables de la source et retourne un identifiant de résultat ODBC contenant les informations ou bien FALSE en cas d'erreur.

Le résultat contient les colonnes suivantes :

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • TABLE_TYPE

  • REMARKS

Le résultat est ordonné grâce aux options TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER et TABLE_NAME.

Les paramètres owner et name acceptent des masques de recherche ('%' pour remplacer zéro ou plus caractères, et '_' pour n'en remplacer qu'un seul).

Pour supporter les énumérations de qualificateurs propriétaires et types de table, la sémantique suivante pour les paramètres qualifier, owner, name et table_type est disponible :

  • Si qualifier est un signe de pourcentage (%), et owner et name sont des chaînes vides, alors le résultat contient la liste des qualifiés valides pour la source (toutes les colonnes hormis TABLE_QUALIFIER contiennent NULL).

  • Si owner est un signe de pourcentage (%), et qualifier et name sont des chaînes vides, alors le résultat contient la liste des propriétaires de la source (toutes les colonnes hormis TABLE_OWNER contiennent NULL).

  • Si table_type est un signe de pourcentage (%), et qualifier, owner et name sont des chaînes vides, alors le résultat contient la liste des types de tables de la source (toutes les colonnes hormis TABLE_TYPE contiennent NULL).

Si table_type n'est pas une chaîne vide, il doit contenir une liste de valeurs, séparées par des virgules, qui representent 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.

Voir aussi odbc_tableprivileges() pour connaître les droits associés.

Précédent | Sommaire | Suivant
odbc_tableprivileges | Niveau supérieur | Fonctions ODBC et DB2 (PDO_ODBC)


URL

Manuel PHP
Précédent Suivant

CLXIX. URL

Introduction

Fonctions permettant de traiter les URL : encoder, décoder et analyser.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

Les constantes suivantes sont prévues pour être utilisées avec la fonction parse_url() et sont disponibles depuis PHP 5.1.2.

PHP_URL_SCHEME (entier)

PHP_URL_HOST (entier)

PHP_URL_PORT (entier)

PHP_URL_USER (entier)

PHP_URL_PASS (entier)

PHP_URL_PATH (entier)

PHP_URL_QUERY (entier)

PHP_URL_FRAGMENT (entier)

Table des matières
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 1738
urldecode -- Décode une chaîne encodée URL
urlencode -- Encode une chaîne en URL

Précédent | Sommaire | Suivant
unicode_semantics | Niveau supérieur | base64_decode


base64_decode

(PHP 3, PHP 4, PHP 5)

base64_decode -- Décode une chaîne en MIME base64

Description

string base64_decode ( string encoded_data )

base64_decode() décode encoded_data et retourne les données décodées ou FALSE en cas d'échec. Les informations initiales peuvent être binaires.

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() et la RFC 2045 section 6.8.

Précédent | Sommaire | Suivant
URL | Niveau supérieur | base64_encode


base64_encode

(PHP 3, PHP 4, PHP 5)

base64_encode -- Encode une chaîne en MIME base64

Description

string base64_encode ( string data )

base64_encode() retourne data encodé en base64. Cet encodage est fait pour permettre aux informations binaires d'être manipulées par les systèmes qui ne gèrent pas correctement les 8 bits, comme les corps de mail.

Une chaîne encodée base64 prend environ 33 % de plus que les données initiales.

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(),
chunk_split(),
convert_uuencode() et
la RFC 2045 section 6.8.

Précédent | Sommaire | Suivant
base64_decode | Niveau supérieur | get_headers


get_headers

(PHP 5)

get_headers -- Retourne tous les en-têtes envoyés par le serveur en réponse à une requête HTTP

Description

array get_headers ( string url [, int format] )

get_headers() retourne un tableau avec les en-têtes envoyés par le serveur en réponse à une requête HTTP. Retourne FALSE en cas d'échec et une alerte de niveau E_WARNING sera émise.

Si le paramètre optionnel format est défini à 1, get_headers() analyse la réponse et définit les index du tableau.

Note : Depuis PHP 5.1.3, cette fonction utilise le contexte de flux de défaut, qui peut être fixé/changé avec la fonction stream_context_get_default().

Exemple 1. Exemple avec get_headers()

<?php
$url = 'http://www.example.com';

print_r(get_headers($url));

print_r(get_headers($url, 1));
?>

L'exemple ci-dessus va afficher :

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
)

Précédent | Sommaire | Suivant
base64_encode | Niveau supérieur | get_meta_tags


get_meta_tags

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

get_meta_tags -- Extrait toutes les balises méta d'un fichier HTML

Description

array get_meta_tags ( string filename [, bool use_include_path] )

get_meta_tags() ouvre le fichier filename et l'analyse ligne par ligne à la recherche de balises <meta>. Le fichier peut être un fichier local ou une URL. L'analyse cesse lors de la rencontre de la balise </head>.

En donnant la valeur de TRUE au paramètre optionnel use_include_path fera que get_meta_tags() recherchera aussi le fichier dans l'include_path.

Exemple 1. Exemple de balises meta

<meta name="author" content="name">
 <meta name="keywords" content="php documentation">
  <meta name="DESCRIPTION" content="a php manual">
   <meta name="geo.position" content="49.33;-86.59">
   </head> <!-- cesse l'analyse ici -->
Attention au format des nouvelles lignes : PHP utilise une fonction native pour analyser le fichier, et les fichiers Mac ne seront pas reconnus.

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 minuscule. Si deux balises méta possèdent le même nom, seule la dernière sera retournée.

Exemple 2. Résultat de get_meta_tags()

<?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'];  // un manuel PHP
echo $tags['geo_position']; // 49.33;-86.59
?>

Note : Depuis PHP 4.0.5, get_meta_tags() supporte les attributs HTML sans guillemets.

Voir aussi htmlentities() et urlencode().

Précédent | Sommaire | Suivant
get_headers | Niveau supérieur | http_build_query


http_build_query

(PHP 5)

http_build_query -- Génère une chaîne de requête en encodage URL

Description

string http_build_query ( array formdata [, string numeric_prefix [, string arg_separator]] )

http_build_query() génère une chaîne en encodage URL, construite à partir du tableau indexé ou associatif formdata. formdata peut être un tableau ou un objet contenant une structure monodimensionnelle simple, ou un tableau de tableaux (qui peuvent aussi contenir des tableaux). 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.

Note : arg_separator.output est utilisée pour séparer les arguments tant que le paramètre arg_separator n'est pas fourni.

Exemple 1. Utilisation simple de http_build_query()

<?php
$data = array('foo'=>'bar',
    'baz'=>'boom',
    'cow'=>'milk',
    'php'=>'hypertext processor');

echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor
echo http_build_query($data, '', '&amp;'); // foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor
?>

Exemple 2. http_build_query() avec tableau indexé.

<?php
$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');

echo http_build_query($data);
/* affiche :
0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
*/

echo http_build_query($data, 'myvar_');
/* affiche :
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor
*/
?>

Exemple 3. http_build_query() avec tableau complexe

<?php
$data = array('user'=>array('name'=>'Bob Smith',
    'age'=>47,
    'sex'=>'M',
    'dob'=>'5/12/1956'),
    'pastimes'=>array('golf', 'opera', 'poker', 'rap'),
    'children'=>array('bobby'=>array('age'=>12,
    'sex'=>'M'),
    'sally'=>array('age'=>8,
    'sex'=>'F')),
    'CEO');

echo http_build_query($data, 'flags_');
?>

cet exemple va afficher : (sur plusieurs lignes pour la lisibilité)

user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%2F12%2F1956&
pastimes[0]=golf&pastimes[1]=opera&pastimes[2]=poker&pastimes[3]=rap&
children[bobby][age]=12&children[bobby][sex]=M&children[sally][age]=8&
children[sally][sex]=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 myClass {
    var $foo;
    var $baz;

     function myClass() {
         $this->foo = 'bar';
         $this->baz = 'boom';
     }
}

$data = new myClass();

echo http_build_query($data); // foo=bar&baz=boom
?>

Note : Le paramètre arg_separator a été ajouté en PHP 5.1.2.

Voir aussi
parse_str(),
parse_url(),
urlencode() et
array_walk().

Précédent | Sommaire | Suivant
get_meta_tags | Niveau supérieur | parse_url


parse_url

(PHP 3, PHP 4, PHP 5)

parse_url -- Analyse une URL et retourne ses composants

Description

mixed parse_url ( string url [, int component] )

Cette fonction analyse une URL et retourne un tableau associatif contenant tous les éléments qui y sont présents.

Cette fonction n'est pas faite pour valider l'URL fournie, elle ne fait que la découper en parties listées ci-dessous. Les URLs partielles sont également acceptées, la fonction parse_url() fera de son mieux pour les analyser correctement.

Liste de paramètres

url

L'URL à analyser

component

Peut être une des constantes parmis 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.

Valeurs de retour

Pour les URLs vraiment mal formées, parse_url() peut retourner FALSE et émettre un E_WARNING. Sinon, un tableau associatif est retourné, dont les éléments peuvent être (au moins un) :

  • scheme - e.g. http

  • host

  • port

  • user

  • pass

  • path

  • query - après le marqueur de question ?

  • fragment - après la hachure #

Si le paramètre component est spécifié, une chaîne de caractères est retournée au lieu d'un tableau.

Historique

Version | Description
5.1.2 | Ajout du paramètre component

Exemples

Exemple 1. Exemple avec parse_url()

<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';

print_r(parse_url($url));

echo parse_url($url, PHP_URL_PATH);
?>

L'exemple ci-dessus va afficher :

Array
(
     [scheme] => http
     [host] => hostname
     [user] => username
     [pass] => password
     [path] => /path
     [query] => arg=value
     [fragment] => anchor
)
/path

Notes

Note : Cette fonction ne fonctionne pas avec les URLs relatives.

Note : parse_url() a été créée tout spécialement pour analyser les URLs et non les URIs. 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()
parse_str()
http_build_query()
dirname()
basename()

Précédent | Sommaire | Suivant
http_build_query | Niveau supérieur | rawurldecode


rawurldecode

(PHP 3, PHP 4, PHP 5)

rawurldecode -- Décode une chaîne URL

Description

string rawurldecode ( string str )

rawurldecode() retourne la chaîne str dont les séquences de caractères %xy, avec xy deux valeurs hexadécimales, auront été remplacées par le caractère ASCII correspondant.

Exemple 1. Exemple avec rawurldecode()

<?php

echo rawurldecode('foo%20bar%40baz'); // foo bar@baz

?>

Note : rawurldecode() ne décode pas le symbole d'addition ("+") contrairement à la fonction urldecode().

Voir aussi
rawurlencode(),
urldecode() et
urlencode().

Précédent | Sommaire | Suivant
parse_url | Niveau supérieur | rawurlencode


rawurlencode

(PHP 3, PHP 4, PHP 5)

rawurlencode -- Encode une chaîne en URL, selon la RFC 1738

Description

string rawurlencode ( string str )

rawurlencode() 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 1738 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). Par exemple, si vous voulez mettre un mot de passe dans une URL de FTP :

Exemple 1. Exemple avec rawurlencode()

echo '<a href="ftp://user:', rawurlencode('foo @+%/'),
         '@ftp.example.com/x.txt">';

Ou, si vous transmettez un chemin dans une URL :

Exemple 2. Exemple avec rawurlencode()

<?php
echo '<a href="http://example.com/department_list_script/',
         rawurlencode('ventes et marketing/Bruxelles'), '">';
 ?>

Voir aussi
rawurldecode(),
urldecode() et
urlencode(), et la
RFC 1738.

Précédent | Sommaire | Suivant
rawurldecode | Niveau supérieur | urldecode


urldecode

(PHP 3, PHP 4, PHP 5)

urldecode -- Décode une chaîne encodée URL

Description

string urldecode ( string str )

urldecode() décode toutes les séquences %## et les remplace par leur valeur. La chaîne ainsi décodée est retournée.

Exemple 1. Exemple avec urldecode()

<?php
     $a = explode ('&', $QUERY_STRING);
     $i = 0;
     while ($i < count ($a)) {
         $b = split ('=', $a[$i]);
         echo 'La valeur du paramètre ', htmlspecialchars(urldecode($b[0])),
         ' est ', htmlspecialchars(urldecode($b[1])), "<br  />\n";
         $i++;
      }
?>

Voir aussi
urlencode(),
rawurlencode() et
rawurldecode().

Précédent | Sommaire | Suivant
rawurlencode | Niveau supérieur | urlencode


urlencode

(PHP 3, PHP 4, PHP 5)

urlencode -- Encode une chaîne en URL

Description

string urlencode ( string str )

urlencode() retourne une chaîne dont les caractères non alpha-numé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 1738 (voir rawurlencode()) : pour des raisons historiques, les espaces sont remplacés par des signes plus (+). urlencode() est pratique pour transmettre des informations via une URL. C'est aussi un moyen de passer des informations d'une page à l'autre.

Exemple 1. Exemple avec urlencode()

<?php
echo '<a href="moncgi?foo=', urlencode ($userinput), '">';
 ?>

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

Exemple 2. Exemple avec urlencode() et htmlentities()

<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="moncgi?' . htmlentities($query_string) . '">';
 ?>

Voir aussi
urldecode(),
htmlentities(),
rawurldecode() et
rawurlencode().

Précédent | Sommaire | Suivant
urldecode | Niveau supérieur | Fonctions de gestion des variables


Fonctions de gestion des variables

Manuel PHP
Précédent Suivant

CLXX. Fonctions de gestion des variables

Introduction

Pour plus de détails sur le comportement des variables, reportez-vous à la section Variables du chapitre Référence du langage.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
unserialize_callback_func | NULL | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

unserialize_callback_func string

La fonction de callback de unserialize() sera appelée (avec le nom de la classe non définie en paramètre), si PHP ne trouve pas la classe spécifiée, ou si la fonction n'implémente pas la classe manquante. Ne configurez cette option que si vous souhaitez vraiment implémenter une telle fonction.

Voir aussi unserialize().

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
debug_zval_dump -- Extrait une représentation sous forme de chaîne d'une valeur interne à Zend pour affichage
doubleval -- Alias de floatval()
empty -- Détermine si une variable contient une valeur non nulle
floatval -- Convertit une chaîne en nombre à virgule flottante
get_defined_vars -- Liste toutes les variables définies
get_resource_type -- Retourne le type de ressource
gettype -- Retourne le type de la variable
import_request_variables -- Importe les variables de GET/POST/Cookie dans l'environnement global
intval -- Retourne la valeur numérique entière équivalente d'une variable
is_array -- Détermine si une variable est un tableau
is_binary -- Finds whether a variable is a native binary string
is_bool -- Détermine si une variable est un booléen
is_buffer -- Finds whether a variable is a native unicode or binary string
is_callable -- Détermine si l'argument peut être appelé comme fonction
is_double -- Alias de is_float()
is_float -- Détermine si une variable est de type nombre décimal
is_int -- Détermine si une variable est de type nombre entier
is_integer -- Alias de is_int()
is_long -- Alias de is_int()
is_null -- Indique si une variable vaut NULL
is_numeric -- Détermine si une variable est un type numérique
is_object -- Détermine si une variable est de type objet
is_real -- Alias de is_float()
is_resource -- Détermine si une variable est une ressource
is_scalar -- Indique si une variable est un scalaire
is_string -- Détermine si une variable est de type chaîne de caractères
is_unicode -- Finds whether a variable is a unicode string
isset -- Détermine si une variable est affectée
print_r -- Affiche des informations lisibles pour une variable
serialize -- Linéarise une variable
settype -- Affecte un type à une variable
strval -- Retourne la valeur de la variable, au format chaîne
unserialize -- Crée une variable PHP à partir d'une valeur linéarisée
unset -- Détruit une variable
var_dump -- Affiche les informations d'une variable
var_export -- Retourne le code PHP utilisé pour générer une variable

Précédent | Sommaire | Suivant
urlencode | Niveau supérieur | debug_zval_dump


debug_zval_dump

(PHP 4 >= 4.2.0, PHP 5)

debug_zval_dump -- Extrait une représentation sous forme de chaîne d'une valeur interne à Zend pour affichage

Description

void debug_zval_dump ( mixed variable )

debug_zval_dump() extrait une représentation sous forme de chaîne d'une valeur interne à Zend pour affichage.

Liste de paramètres

variable

La variable à évaluer.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Exemple avec debug_zval_dump()

<?php
$var1 = 'Bonjour le monde !';
$var2 = '';

$var2 =& $var1;

debug_zval_dump(&$var1);
?>

L'exemple ci-dessus va afficher :

string(18) "Bonjour le monde !" refcount(3)

Faites attention avec refcount : La valeur refcount retournée par cette fonction n'est pas significative dans certaines circonstances. Par exemple, un développeur peut s'attendre avec l'exemple ci-dessus d'avoir un refcount de 2. La troisième référence est créée lors de l'appel à la fonction debug_zval_dump().

Ce comportement est encore plus fin lorsqu'une variable n'est pas passée par référence à la fonction debug_zval_dump(). Pour illustrer ceci, voici une version modifiée de l'exemple ci-dessus :

Exemple 2.

<?php
$var1 = 'Bonjour le monde !';
$var2 = '';

$var2 =& $var1;

debug_zval_dump($var1); // non passée par référence, cette fois-ci
?>

L'exemple ci-dessus va afficher :

string(18) "Bonjour le monde !" refcount(1)

Pourquoi refcount(1) ? Parce qu'une copie de $var1 a été faite, lors de l'appel de la fonction.

Cette fonction devient encore plus confuse lorsqu'une variable avec un refcount de 1 est passée (par copie/valeur) :

Exemple 3.

<?php
$var1 = 'Bonjour le monde !';

debug_zval_dump($var1);
?>

L'exemple ci-dessus va afficher :

string(18) "Bonjour le monde !" refcount(2)

Un refcount de 2, ici, est vraiment inattendu. Tout spécialement si on considère les exemples ci-dessus. Donc, que se passe-t-il ?

Lorsqu'une variable a une seule référence (faire $var1 avant qu'elle ne soit utilisée en tant qu'argument de la fonction debug_zval_dump()), le moteur PHP optimise la façon dont elle est passée à la fonction. En interne, PHP traite $var1 comme une référence (et donc, le refcount est incrémenté), et avec le cas où le passage par référence intervient, une copie est alors faite, mais uniquement au moment de l'écriture. Ceci est connu comme "la copie à l'écriture".

Donc, si debug_zval_dump() intervient pour écrire son unique paramètre (et il ne le fait pas), alors une copie est faite. Jusque-là, le paramètre demeure une référence, faisant que le refcount est incrémenté à 2 pour l'appel à la fonction.

Voir aussi

var_dump()
debug_backtrace()
Explication sur les références
Comptage des références et des alias (par Andi Gutmans)
Explication sur les références (par Derick Rethans)

Précédent | Sommaire | Suivant
Fonctions de gestion des variables | Niveau supérieur | doubleval


doubleval

(PHP 3, PHP 4, PHP 5)

doubleval -- Alias de floatval()

Description

Cette fonction est un alias de : floatval().

Historique

Version | Description
4.2.0 | doubleval() est devenue un alias de floatval(). Avant ce temps, seulement doubleval() existait.

Précédent | Sommaire | Suivant
debug_zval_dump | Niveau supérieur | empty


empty

(PHP 3, PHP 4, PHP 5)

empty -- Détermine si une variable contient une valeur non nulle

Description

bool empty ( mixed var )

Détermine si une variable contient une valeur non nulle.

Liste de paramètres

var

Variable à vérifier.

Note : empty() ne vérifie que les variables, toute autre chose retournera une erreur d'analyse. En d'autres termes, ce qui suit ne fonctionne pas : empty(trim($name)).

empty() est l'opposé de (boolean) var, excepté le fait qu'aucune alerte n'est générée lorsqu'une variable n'est pas définie.

Valeurs de retour

Retourne FALSE si var a une valeur non-vide et différente de zéro.

Ce qui suit est considéré comme étant vide :

"" (une chaîne vide)
0 (0 en tant qu'entier)
"0" (0 en tant que chaîne de caractères)
NULL
FALSE
array() (un tableau vide)
var $var; (une variable déclarée, mais sans valeur dans une classe)

Historique

Version | Description
PHP 5 | Depuis PHP 5, les objets n'ayant pas de propriété ne sont plus considérés comme vide.
PHP 4 | Depuis PHP 4, la chaîne de caractères "0" est considérée comme vide.

Exemples

Exemple 1. Une comparaison simple empty() / isset().

<?php
$var = 0;

// Evalué à vrai car $var est vide
if (empty($var)) {
  echo '$var vaut soit 0, vide, ou pas définie du tout';
}

// Evalué à vrai car $var est défini
if (isset($var)) {
  echo '$var est définie même si elle est vide';
}
?>

Notes

Note : Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les variables fonctions.

Voir aussi

isset()
unset()
array_key_exists()
count()
strlen()
Les tables de comparaison des types

Précédent | Sommaire | Suivant
doubleval | Niveau supérieur | floatval


floatval

(PHP 4 >= 4.2.0, PHP 5)

floatval -- Convertit une chaîne en nombre à virgule flottante

Description

float floatval ( mixed var )

floatval() retourne la valeur de type float (nombre à virgule flottante), extraite à partir du paramètre var.

Liste de paramètres

var

Peut être de n'importe quel type scalaire. Vous ne pouvez pas utiliser floatval() sur les objets, ni sur les tableaux.

Valeurs de retour

La valeur flottante de la variable donnée.

Exemples

Exemple 1. Exemple avec floatval()

<?php
$var = '122.34343The';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 122.34343
?>

Voir aussi

intval()
strval()
settype()
Type juggling

Précédent | Sommaire | Suivant
empty | Niveau supérieur | get_defined_vars


get_defined_vars

(PHP 4 >= 4.0.4, PHP 5)

get_defined_vars -- Liste toutes les variables définies

Description

array get_defined_vars ( void )

get_defined_vars() retourne un tableau multidimensionnel contenant la liste de toutes les variables définies, qu'elles soient des variables d'environnement, de serveur ou définies par l'utilisateur dans la portée d'appel de la fonction get_defined_vars().

Valeurs de retour

Un tableau multidimensionnel contenant toutes les variables.

Exemples

Exemple 1. Exemple avec get_defined_vars()

<?php
$b = array(1, 1, 2, 3, 5, 8);

$arr = get_defined_vars();

// Affiche $b
print_r($arr["b"]);

/* Affiche le chemin vers l'interpréteur PHP (Si utilisé en tant que CGI)
 * e.g. /usr/local/bin/php */
echo $arr["_"];

// Affiche les paramètres de la ligne de commande s'il y en a
print_r($arr["argv"]);

// Affiche toutes les variables serveur
print_r($arr["_SERVER"]);

// Affiche toutes les clés disponibles du tableau de variables
print_r(array_keys(get_defined_vars()));
?>

Historique

Version | Description
5.0.0 | La variable $GLOBALS est incluse dans le tableau retourné.

Voir aussi

isset()
get_defined_functions()
get_defined_constants()

Précédent | Sommaire | Suivant
floatval | Niveau supérieur | get_resource_type


get_resource_type

(PHP 4 >= 4.0.2, PHP 5)

get_resource_type -- Retourne le type de ressource

Description

string get_resource_type ( resource handle )

Cette fonction retourne le type de la ressource donnée.

Liste de paramètres

handle

Le gestionnaire de ressources à évaluer.

Valeurs de retour

Si le paramètre handle est une ressource, cette fonction retournera une chaîne de caractères représentant son type. Si le type n'est pas identifié par cette fonction, la valeur de retour sera une chaîne de caractères Unknown.

Cette fonction retournera FALSE et générera une erreur si handle n'est pas une ressource.

Exemples

Exemple 1. Exemple avec get_resource_type()

<?php
// affiche : mysql link (lien mysql)
$c = mysql_connect();
echo get_resource_type($c) . "\n";

// affiche : file (fichier)
$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";

// affiche : domxml document
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc)."\n";
?>

Précédent | Sommaire | Suivant
get_defined_vars | Niveau supérieur | gettype


gettype

(PHP 3, PHP 4, PHP 5)

gettype -- Retourne le type de la variable

Description

string gettype ( mixed var )

gettype() retourne le type de la variable PHP var.

Avertissement

N'utilisez jamais gettype() pour vérifier un type, car la chaîne retournée est sujette à modification sans préavis dans une version ultérieure. De plus, c'est bien plus long comme cela, car cela implique une comparaison de chaîne.

À la place, utilisez les fonctions is_*.

Valeurs de retour

Les chaînes de caractères que peut retourner la fonction sont les suivantes :

  • "boolean" (depuis PHP 4)

  • "entier"

  • "double" (pour des raisons historiques, "double" est retournée lorsqu'une valeur de type float est fournie, au lieu de la chaîne "float")

  • "string"

  • "array"

  • "object"

  • "resource" (depuis PHP 4)

  • "NULL" (depuis PHP 4)

  • "user function" (PHP 3 uniquement, abandonné)

  • "unknown type"

En PHP 4, il est recommandé d'utiliser function_exists() et method_exists() pour remplacer l'utilisation de gettype() sur une fonction.

Voir aussi

settype()
is_array()
is_bool()
is_float()
is_int()
is_null()
is_numeric()
is_object()
is_resource()
is_scalar()
is_string()

Précédent | Sommaire | Suivant
get_resource_type | Niveau supérieur | import_request_variables


import_request_variables

(PHP 4 >= 4.1.0, PHP 5)

import_request_variables -- Importe les variables de GET/POST/Cookie dans l'environnement global

Description

bool import_request_variables ( string types [, string prefix] )

import_request_variables() importe les variables GET/POST/Cookie dans l'environnement global. C'est pratique si vous avez désactivé register_globals, mais que vous voulez enregistrer des variables dans l'environnement global.

En utilisant le paramètre types, vous pouvez spécifier les variables que vous voulez importer. Vous pouvez utiliser 'G', 'P' et 'C' pour désigner respectivement GET, POST et Cookie. Ces caractères ne sont pas sensibles à la casse, et vous pouvez les combiner entre eux. POST inclut les fichiers téléchargés. Notez que l'ordre des lettres est important. En utilisant par exemple "GP", les variables de POST écraseront par les variables de GET, ayant le même nom. Toute lettre autre que G, P ou C, est ignorée.

Le paramètre prefix est utilisé comme un préfixe de nom de variable, qui sera ajouté au début de tous les noms de variables importées. Si vous avez par exemple une variable GET du nom de "userid", et utilisez le préfixe "pref_", la variable ainsi générée s'appellera $pref_userid.

Si vous souhaitez importer d'autres variables dans l'environnement global, comme $_SERVER, considérez l'utilisation de la fonction extract().

Note : Bien que le paramètre prefix soit optionnel, il sera généré une alerte E_NOTICE si vous ne spécifiez pas de préfixe, ou si vous utilisez une chaîne vide comme préfixe. C'est potentiellement un trou de sécurité. Les alertes de ce niveau ne sont pas affichées si vous utilisez le niveau d'erreur par défaut.

Exemple 1. Exemple avec import_request_variables()

<?php
// Ce code va importer les variables GET et POST
// avec un préfixe "rvar_"
import_request_variables("gP", "rvar_");

echo $rvar_foo;
?>

Voir aussi $_REQUEST, register_globals, variables pré-définies et extract().

Précédent | Sommaire | Suivant
gettype | Niveau supérieur | intval


intval

(PHP 3, PHP 4, PHP 5)

intval -- Retourne la valeur numérique entière équivalente d'une variable

Description

int intval ( mixed var [, int base] )

intval() retourne la valeur numérique entière (entier) de la variable var, en convertissant la valeur dans la base spécifiée (par défaut en base 10).

Liste de paramètres

var

La valeur scalaire à être convertie en entier

base

La base pour la conversion (par défaut, la base vaut 10)

Valeurs de retour

Une valeur de type entier de var en cas de succès ou 0 en cas d'échec. Les tableaux et les objets vides retournent 0, les tableaux et les objets non vides retournent 1.

La valeur maximale dépend du système. Les systèmes à 32 bits ont une valeur entière signée maximale de -2147483648 à 2147483647. Alors, par exemple, sur un système semblable, intval('1000000000000') retournera 2147483647. La valeur entière signée maximale pour un système à 64 bits est 9223372036854775807.

Les chaînes de caractères retournent la plupart du temps 0, cela dépend des caractères à l'extrême gauche de la chaîne. La règle courante du transtypage d'entier s'applique.

Exemples

Exemple 1. Exemples avec intval()

Les exemples suivant sont basés sur un système à 32 bits.

<?php
echo intval(42);                      // 42
echo intval(4.2);                     // 4
echo intval('42');                    // 42
echo intval('+42');                   // 42
echo intval('-42');                   // -42
echo intval(042);                     // 34
echo intval('042');                   // 42
echo intval(1e10);                    // 1410065408
echo intval('1e10');                  // 1
echo intval(0x1A);                    // 26
echo intval(42000000);                // 42000000
echo intval(420000000000000000000);   // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(42, 8);                   // 42
echo intval('42', 8);                 // 34
?>

Notes

Note : Le paramètre base n'a aucun effet à moins que le paramètre var soit une chaîne de caractères.

Voir aussi

floatval()
strval()
settype()
is_numeric()
Définition du type
Nombres de grande taille BCMath

Précédent | Sommaire | Suivant
import_request_variables | Niveau supérieur | is_array


is_array

(PHP 3, PHP 4, PHP 5)

is_array -- Détermine si une variable est un tableau

Description

bool is_array ( mixed var )

is_array() détermine si la variable donnée est un tableau.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un array, FALSE sinon.

Exemples

Exemple 1. Exemple avec is_array()

<?php
$yes = array('ceci', 'est', 'un tableau');

echo is_array($yes) ? 'Tableau' : 'ce n\'est pas un tableau';
echo "\n";

$no = 'ceci est une chaîne';

echo is_array($no) ? 'Tableau' : 'ce n\'est pas un tableau';
?>

L'exemple ci-dessus va afficher :

Tableau
ce n'est pas un tableau

Voir aussi

is_float()
is_int()
is_string()
is_object()

Précédent | Sommaire | Suivant
intval | Niveau supérieur | is_binary


is_bool

(PHP 4, PHP 5)

is_bool -- Détermine si une variable est un booléen

Description

bool is_bool ( mixed var )

is_bool() détermine si la variable donnée est un booléen.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un booléen, FALSE sinon.

Exemples

Exemple 1. Exemple avec is_bool()

<?php
$a = false;
$b = 0;

// Si $a est un booléen, ceci sera vrai
if (is_bool($a)) {
    echo "Oui, c'est un booléen.";
}

// Si $b n'est pas un booléen, ceci sera faux
if (is_bool($b)) {
    echo "Oui, c'est un booléen.";
}
?>

Voir aussi

is_float()
is_int()
is_string()
is_object()
is_array()

Précédent | Sommaire | Suivant
is_binary | Niveau supérieur | is_buffer


is_callable

(PHP 4 >= 4.0.6, PHP 5)

is_callable -- Détermine si l'argument peut être appelé comme fonction

Description

bool is_callable ( mixed var [, bool syntax_only [, string &callable_name]] )

is_callable() vérifie qu'une variable peut être appelée comme fonction. Cette fonction peut vérifier qu'une variable contient un nom de fonction valide, ou bien qu'elle contient un tableau, avec un objet et un nom de méthode.

Le paramètre var peut être le nom d'une fonction stockée dans une variable de chaîne, ou un objet, et un nom de méthode pour cet objet, sous la forme :

array($unObjet, 'NomDeMethode' )

Si l'argument syntax_only vaut TRUE, la fonction ne va vérifier que si var 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 callback. 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.

L'argument callable_name reçoit le nom à utiliser. Dans l'exemple ci-dessous, il vaut "uneClasse:uneMethode". Notez que, bien que uneClasse:uneMethode() puisse être appelée sous forme statique, ce n'est pas le cas.

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 uneFonction() {
}

$fonctionVariable = 'uneFonction';

var_dump( is_callable( $fonctionVariable, false, $callable_name ));  // bool(true)

echo $callable_name, "\n";  // uneFonction

//
//  Tableau contenant une méthode
//

class uneClasse {

  function uneMethode() {
  }

}

$unObjet = new uneClasse();

$methodeVariable = array($unObjet, 'uneMethode' );

var_dump(is_callable($methodeVariable, true, $callable_name ));  //  bool(true)

echo $callable_name, "\n";  //  uneClasse:uneMethode

?>

Voir aussi function_exists() et method_exists().

Précédent | Sommaire | Suivant
is_buffer | Niveau supérieur | is_double


is_double

(PHP 3, PHP 4, PHP 5)

is_double -- Alias de is_float()

Description

Cette fonction est un alias de : is_float().

Précédent | Sommaire | Suivant
is_callable | Niveau supérieur | is_float


is_float

(PHP 3, PHP 4, PHP 5)

is_float -- Détermine si une variable est de type nombre décimal

Description

bool is_float ( mixed var )

Détermine si la variable donnée est de type nombre décimal.

Note : Pour tester si une variable est un nombre ou une chaîne numérique (comme les entrées de formulaire, qui sont toujours des chaînes), vous devez utiliser la fonction is_numeric().

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un nombre à virgule flottante, FALSE sinon.

Voir aussi

is_bool()
is_int()
is_numeric()
is_string()
is_array()
is_object()

Précédent | Sommaire | Suivant
is_double | Niveau supérieur | is_int


is_int

(PHP 3, PHP 4, PHP 5)

is_int -- Détermine si une variable est de type nombre entier

Description

bool is_int ( mixed var )

Détermine si la variable donnée est de type nombre entier.

Note : Pour tester si une variable est un nombre ou une chaîne numérique (comme les entrées de formulaire, qui sont toujours des chaînes), vous devez utiliser la fonction is_numeric().

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un entier, FALSE sinon.

Voir aussi

is_bool()
is_float()
is_numeric()
is_string()
is_array()
is_object()

Précédent | Sommaire | Suivant
is_float | Niveau supérieur | is_integer


is_integer

(PHP 3, PHP 4, PHP 5)

is_integer -- Alias de is_int()

Description

Cette fonction est un alias de : is_int().

Précédent | Sommaire | Suivant
is_int | Niveau supérieur | is_long


is_long

(PHP 3, PHP 4, PHP 5)

is_long -- Alias de is_int()

Description

Cette fonction est un alias de : is_int().

Précédent | Sommaire | Suivant
is_integer | Niveau supérieur | is_null


is_null

(PHP 4 >= 4.0.4, PHP 5)

is_null -- Indique si une variable vaut NULL

Description

bool is_null ( mixed var )

Indique si la variable donnée vaut NULL.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est NULL, FALSE sinon.

Voir aussi

Le type NULL
isset()
is_bool()
is_numeric()
is_float()
is_int()
is_string()
is_object()
is_array()

Précédent | Sommaire | Suivant
is_long | Niveau supérieur | is_numeric


is_numeric

(PHP 4, PHP 5)

is_numeric -- Détermine si une variable est un type numérique

Description

bool is_numeric ( mixed var )

Détermine si la variable donnée est de type numérique. Les chaînes numériques sont composées optionnellement de signes, de n'importe quel nombre de chiffres, optionnellement d'une partie décimale ainsi qu'une partie exponentielle. +0123.45e6 est une valeur numérique valide. La notation hexadécimale (0xFF) est autorisée également, mais uniquement sans un signe, sans décimale et sans partie exponentielle.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un nombre ou une chaîne numérique, FALSE sinon.

Voir aussi

ctype_digit()
is_bool()
is_null()
is_float()
is_int()
is_string()
is_object()
is_array()

Précédent | Sommaire | Suivant
is_null | Niveau supérieur | is_object


is_object

(PHP 3, PHP 4, PHP 5)

is_object -- Détermine si une variable est de type objet

Description

bool is_object ( mixed var )

Détermine si la variable donnée est de type objet.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un objet, FALSE sinon.

Notes

Note : Cette fonction retourne FALSE si elle est utilisée sur un objet délinéarisé lorsque la classe de définition n'est pas présente (même si gettype() retourne object).

Voir aussi

is_bool()
is_int()
is_float()
is_string()
is_array()

Précédent | Sommaire | Suivant
is_numeric | Niveau supérieur | is_real


is_real

(PHP 3, PHP 4, PHP 5)

is_real -- Alias de is_float()

Description

Cette fonction est un alias de : is_float().

Précédent | Sommaire | Suivant
is_object | Niveau supérieur | is_resource


is_resource

(PHP 4, PHP 5)

is_resource -- Détermine si une variable est une ressource

Description

bool is_resource ( mixed var )

Détermine si une variable est une ressource.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est une ressource, FALSE autrement.

Exemples

Exemple 1. Exemple avec is_resource()

<?php

$db_link = @mysql_connect('localhost', 'mysql_user', 'mysql_pass');
if (!is_resource($db_link)) {
    die('Connexion impossible : ' . mysql_error());
}

?>

Voir aussi

La documentation sur les ressources
get_resource_type()

Précédent | Sommaire | Suivant
is_real | Niveau supérieur | is_scalar


is_scalar

(PHP 4 >= 4.0.5, PHP 5)

is_scalar -- Indique si une variable est un scalaire

Description

bool is_scalar ( mixed var )

Indique si la variable donnée est un scalaire.

Les variables scalaires sont celles qui contiennent des entiers, des nombres à virgule flottante, des chaînes de caractères ou des booléens. Les types array, object et resource ne sont pas scalaires.

Note : is_scalar() ne considère pas les valeurs des types ressource comme scalaires, étant donné que les ressources sont des types abstraits, basés sur des entiers. Ceci est susceptible de changer.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est un scalaire, FALSE autrement.

Exemples

Exemple 1. Exemple avec is_scalar()

<?php
function show_var($var)
{
    if (is_scalar($var)) {
        echo $var;
    } else {
        var_dump($var);
    }
}
$pi = 3.1416;
$proteines = array("hémoglobine", "cytochrome c oxidase", "ferredoxine");

show_var($pi);

show_var($proteines)
?>

L'exemple ci-dessus va afficher :

3.1416
array(3) {
  [0]=>
  string(11) "hémoglobine"
  [1]=>
  string(20) "cytochrome c oxidase"
  [2]=>
  string(11) "ferredoxine"
}

Voir aussi

is_float()
is_int()
is_numeric()
is_real()
is_string()
is_bool()
is_object()
is_array()

Précédent | Sommaire | Suivant
is_resource | Niveau supérieur | is_string


is_string

(PHP 3, PHP 4, PHP 5)

is_string -- Détermine si une variable est de type chaîne de caractères

Description

bool is_string ( mixed var )

Détermine si la variable donnée est de type chaîne de caractères.

Liste de paramètres

var

La variable à évaluer.

Valeurs de retour

Retourne TRUE si var est une chaîne de caractères, FALSE sinon.

Voir aussi

is_float()
is_int()
is_bool()
is_object()
is_array()

Précédent | Sommaire | Suivant
is_scalar | Niveau supérieur | is_unicode


isset

(PHP 3, PHP 4, PHP 5)

isset -- Détermine si une variable est affectée

Description

bool isset ( mixed var [, mixed var [, ...]] )

isset() renvoie TRUE si la variable var est définie, FALSE sinon.

Si une variable a été détruite avec la fonction unset(), la fonction isset() renverra FALSE. isset() renvera FALSE lors du test d'une variable de valeur NULL. Notez aussi que le caractère nul ("\0") n'est pas équivalent à la constante PHP NULL.

Attention ! : 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().

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

?>

Cela fonctionne aussi avec les tableaux :

Exemple 2. Exemple avec isset() et un tableau

<?php

$a = array ('test' => 1, 'bonjour' => NULL);

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

?>

Note : Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les variables fonctions.

Voir aussi empty(), unset() defined(), le tableau de comparaison de types, is_null(), array_key_exists() et l'opérateur de contrôle de rapport d'erreurs @.

Précédent | Sommaire | Suivant
is_unicode | Niveau supérieur | print_r


print_r

(PHP 4, PHP 5)

print_r -- Affiche des informations lisibles pour une variable

Description

bool print_r ( mixed expression [, bool return] )

print_r() affiche des informations à propos d'une variable, de manière à ce qu'elle soit lisible. Pour une chaîne, un entier ou un double, la valeur elle-même sera affichée. Pour les tableaux, les valeurs seront présentées dans un format qui montre les clés et les valeurs. Une notation similaire est disponible pour les objets. print_r(), var_dump() et var_export() afficheront également les propriétés protégées et privées d'un objet en PHP 5.

Gardez en tête que print_r() place le pointeur de tableau à la fin du tableau. Utilisez reset() pour le ramener au début.

Exemple 1. Exemple avec print_r()

<pre>
<?php
$a = array ('a' => 'pomme',
   'b' => 'banane',
   'c' => array ('x',
   'y',
   'z'));
print_r ($a);
?>
</pre>

L'exemple ci-dessus va afficher :

<pre>
 Array
 (
     [a] => pomme
     [b] => banane
     [c] => Array
     (
         [0] => x
         [1] => y
         [2] => z
     )
 )
</pre>

Si vous voulez obtenir le résultat de print_r() dans une chaîne, utilisez le paramètre return. Si ce paramètre vaut TRUE, print_r() retournera ce qu'il aurait affiché (ce qu'il fait par défaut).

Note : Cette fonction utilise en interne le buffer de sortie avec ce paramètre, il ne peut donc pas être utilisé dans la fonction de callback ob_start().

Exemple 2. Utilisation du paramètre return de print_r()

<?php
$b = array ('m' => 'mangue', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
$resultat = print_r ($b, true);
//$resultat contient maintenant le résultat de print_r()
?>

Note : Si vous devez récupérer le résultat de print_r() avec une version de PHP plus ancienne que 4.3.0, utilisez les fonctions de bufferisation de sortie.

Note : Le paramètre return a été ajouté en PHP 4.3.0.

Note : Avant PHP 4.0.4, print_r() bouclera à l'infini si un tableau ou un objet contient une référence sur lui-même. Un exemple classique est notamment la ligne print_r($GLOBALS) car $GLOBALS est lui-même une variable globale, qui donc, contient une référence sur elle même.

Voir aussi
ob_start(),
var_dump() et
var_export().

Précédent | Sommaire | Suivant
isset | Niveau supérieur | serialize


serialize

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

serialize -- Linéarise une variable

Description

string serialize ( mixed value )

serialize() retourne une chaîne contenant une représentation linéaire de value, pour stockage.

C'est une technique pratique pour stocker ou passer des valeurs de PHP entre scripts, sans perdre ni leur structure, ni leur type.

Pour récupérer une variable linéarisée, et retrouver une variable, utilisez unserialize(). serialize() acceptent tous les types sauf les ressources. Vous pouvez linéariser un tableau qui contient une référence sur lui-même. Les références dans ce tableau/objet seront également stockées. Toutes les autres références seront perdues.

Lors de la linéarisation d'un objet, PHP tentera d'appeler la fonction membre __sleep() avant de linéariser. Cela permet à l'objet de faire un dernier nettoyage, etc. avant d'être linéarisé. De même, lorsque l'objet est restauré en utilisant unserialize(), la fonction membre __wakeup() est appelée.

Note : Ceci ne fonctionne pas correctement avant la version 4.0.7.

Note : En PHP 3, les propriétés de l'objet seront linéarisées, mais les méthodes seront perdues. Cette limitation a été enlevée en PHP 4 et restaure les propriétés et les méthodes. Merci de voir la section sur la linéarisation d'objets des classes et objets pour plus d'informations.

Il n'est pas possible de linéariser les objets internes de PHP.

Exemple 1. Exemple avec serialize()

<?php
// $session_data contient un tableau multi-dimensionnel , 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), $PHP_AUTH_USER);
if (!odbc_execute($stmt, &$sqldata)) {
    $stmt = odbc_prepare($conn,
     "INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!odbc_execute($stmt, &$sqldata)) {
        /* Un problème est survenu ! */
    }
}
?>

Voir aussi unserialize().

Précédent | Sommaire | Suivant
print_r | Niveau supérieur | settype


settype

(PHP 3, PHP 4, PHP 5)

settype -- Affecte un type à une variable

Description

bool settype ( mixed &var, string type )

settype() force le type de la variable var en type.

Les valeurs possibles pour le paramètre type sont :

  • "boolean" (ou, depuis PHP 4.2.0, "bool")

  • "integer" (ou, depuis PHP 4.2.0, "int")

  • "float" (uniquement depuis PHP 4.2.0. Pour les anciennes versions, utilisez l'alternative "double")

  • "string"

  • "array"

  • "object"

  • "null" (depuis PHP 4.2.0)

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec settype()

$foo = "5bar"; // chaîne
$bar = true;   // booléen

settype($foo, "integer"); // $foo vaut maintenant 5   (integer)
settype($bar, "string");  // $bar vaut maintenant "1" (string)

Voir aussi gettype(), transtypage et définition du type.

Précédent | Sommaire | Suivant
serialize | Niveau supérieur | strval


strval

(PHP 3, PHP 4, PHP 5)

strval -- Retourne la valeur de la variable, au format chaîne

Description

string strval ( mixed var )

strval() retourne la valeur de la variable var, au format chaîne de caractères. Voir la documentation sur les chaînes de caractères pour plus d'informations sur la conversion en chaîne.

var peut être un scalaire. Vous ne pouvez pas utiliser la fonction strval() avec des tableaux ou des objets.

Voir aussi

floatval()
intval()
settype()
Transtypage

Précédent | Sommaire | Suivant
settype | Niveau supérieur | unserialize


unserialize

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

unserialize -- Crée une variable PHP à partir d'une valeur linéarisée

Description

mixed unserialize ( string str )

unserialize() prend une variable linéarisée (voir serialize()) et la convertit en variable PHP. La valeur convertie est retournée par la fonction, et peut être de type boolean, entier, float, string, array ou object. Si la chaîne passée ne peut être délinéarisée, cette fonction retourne FALSE et une erreur E_NOTICE est émise.

Avertissement

FALSE est retourné dans les cas ou il y a une erreur et dans la délinéarisation de la valeur linéarisée FALSE. Il est possible d'attraper ce cas spécial en comparant str avec serialize(false) ou en attrapant l'erreur E_NOTICE émise.

Directive unserialize_callback_func : Il est possible de définir une fonction de callback qui sera appelée si une classe indéfinie est utilisée lors de la délinéarisation (ce qui évitera de voir l'objet recevoir le type d'objet incomplet object "__PHP_Incomplete_Class"). Utilisez dans votre fichier php.ini ou le fichier .htaccess, ou encore avec la fonction ini_set(), pour définir une fonction unserialize_callback_func(). Chaque fois qu'une classe non-définie sera instanciée, cette fonction sera appelée. Pour désactiver cette fonctionnalité, laissez la simplement vide. Notez aussi que cette directive n'est disponible que depuis PHP 4.2.0.

Si la variable délinéarisée est un objet, après avoir réussi à le reconstruire, PHP appellera automatiquement la méthode __wakeup() si elle existe.

Exemple 1. Exemple avec la directive unserialize_callback_func

<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';

// directive unserialize_callback_func disponible depuis PHP 4.2.0
ini_set('unserialize_callback_func','moncallback');

// configure votre fonction de callback : moncallback

function moncallback($classname)
{
    // Incluez simplement un fichier contenant votre définition de classe
    // vous saurez quelle classe grâce à $classname
}
?>

Note : En PHP 3, les méthodes ne sont pas préservées lors de la délinéarisation d'un objet. Cette limitation a été levée en PHP 4 et stocke désormais les méthodes et les membres. Voyez le chapitre sur la Linéarisation des objets du chapitre Classes et Objets.

Exemple 2. 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($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();
    }
}
?>

Voir aussi serialize().

Précédent | Sommaire | Suivant
strval | Niveau supérieur | unset


unset

(PHP 3, PHP 4, PHP 5)

unset -- Détruit une variable

Description

void unset ( mixed var [, mixed var [, mixed ...]] )

unset() détruit les variables spécifiées. Notez qu'en PHP 3, unset() retournait toujours TRUE (en fait, la valeur entière 1). En PHP, 4 toutefois, unset() n'est plus une véritable fonction : c'est une structure du langage, ce qui fait qu'elle ne retourne pas de valeur. Lire la valeur retournée par unset() (dans une variable, par exemple), retourne une erreur d'analyse.

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

Note : Il est possible de détruire n'importe quelle propriété visible dans le contexte courant.

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. Le variable globale gardera la valeur acquise avant l'appel à unset().

Exemple 2. Exemple avec unset() dans un contexte de fonction

<?php
function destroy_foo()
{
    global $foo;
    unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>

L'exemple ci-dessus va afficher :

bar

Si vous désirez détruire une variable globale à l'intérieur d'une fonction, vous pouvez utiliser le tableau $GLOBALS pour le faire :

Exemple 3. Exemple avec unset() avec une variable globale

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

Exemple 4. Exemple avec unset() sur une référence

<?php
function foo(&$bar)
{
    unset($bar);
    $bar = "bla";
}
$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.

Exemple 5. Exemple avec unset() et une variable statique

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

Note : Comme ceci est une structure du langage, et non pas une fonction, il n'est pas possible de l'appeler avec les variables fonctions.

Voir aussi
array_splice(),
isset() et
empty().

Précédent | Sommaire | Suivant
unserialize | Niveau supérieur | var_dump


var_dump

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

var_dump -- Affiche les informations d'une variable

Description

void var_dump ( mixed expression [, mixed expression [, ...]] )

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

En PHP 5, toutes les propriétés publiques, privées et protégées seront retournées dans le résultat.

Astuce : Comme pour toutes les fonctions qui affichent directement des résultats au navigateur, vous pouvez utiliser les fonctions de gestion des sorties pour capturer le contenu de cette fonction et le sauver, par exemple, dans une chaîne.

Liste de paramètres

expression

La variable que vous voulez exporter.

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

var_export()
print_r()

Précédent | Sommaire | Suivant
unset | Niveau supérieur | var_export


var_export

(PHP 4 >= 4.2.0, PHP 5)

var_export -- Retourne le code PHP utilisé pour générer une variable

Description

mixed var_export ( mixed expression [, bool return] )

var_export() retourne des données structurées sur la variable donnée. C'est le même principe que var_dump() mais avec une exception : le résultat retourné est du code PHP valide.

Liste de paramètres

expression

La variable que vous voulez exporter.

return

Si utilisé et mis à TRUE, var_export() retournera la représentation de la variable au lieu de l'afficher.

Note : Cette fonction utilise en interne le buffer de sortie avec ce paramètre, il ne peut donc pas être utilisé dans la fonction de callback ob_start().

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
5.1.0 | Possibilité d'exporter des classes et des tableaux contenant des classes en utilisant la méthode magique __set_state.

Exemples

Exemple 1. Exemple avec var_export()

<?php

$a = array (1, 2, array ("a", "b", "c"));
var_export($a);

?>

L'exemple ci-dessus va afficher :

array (
  0 => 1,
  1 => 2,
  2 =>
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
<?php

$b = 3.1;
$v = var_export($b, true);
echo $v; // 3.1

?>

L'exemple ci-dessus va afficher :

3.1

Exemple 2. Exporter des classes depuis PHP 5.1.0

<?php
class A { public $var; }
$a = new A;
$a->var = 5;
var_export($a);
?>

L'exemple ci-dessus va afficher :

A::__set_state(array(
   'var' => 5,
))

Exemple 3. Utilisation de __set_state (depuis PHP 5.1.0)

<?php
class A
{
    public $var1;
    public $var2;

    public static function __set_state($an_array)
    {
        $obj = new A;
        $obj->var1 = $an_array['var1'];
        $obj->var2 = $an_array['var2'];
        return $obj;
    }
}

$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';

eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
                                     //    'var1' => 5,
                                     //    'var2' => 'foo',
                                     // ));
var_dump($b);
?>

L'exemple ci-dessus va afficher :

object(A)#2 (2) {
    ["var1"]=>
    int(5)
    ["var2"]=>
    string(3) "foo"
}

Notes

Note : Les variables de type ressource ne peuvent être exportées par cette fonction.

Voir aussi

var_dump()
print_r()
serialize()
var_dump()

Précédent | Sommaire | Suivant
var_dump | Niveau supérieur | Paiement par Verisign


vpopmail

Manuel PHP
Précédent Suivant

CLXXII. vpopmail

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Cette extension a été déplacée vers PECL depuis PHP 4.3.0.

Installation

En PHP 4, ces fonctions ne sont disponibles que si PHP a été configuré avec l'option --with-vpopmail[=DIR].

Table des matières
vpopmail_add_alias_domain_ex -- Ajoute un alias à un domaine virtuel
vpopmail_add_alias_domain -- Ajout un alias pour un domaine virtuel
vpopmail_add_domain_ex -- Ajoute un nouveau domaine virtuel
vpopmail_add_domain -- Ajoute un nouveau domaine virtuel
vpopmail_add_user -- Ajoute un nouvel utilisateur à un domaine virtuel
vpopmail_alias_add -- Ajoute un alias virtuel
vpopmail_alias_del_domain -- Efface tous les alias virtuels d'un domaine
vpopmail_alias_del -- Efface tous les alias d'un utilisateur
vpopmail_alias_get_all -- Lit toutes les lignes d'un alias d'un domaine
vpopmail_alias_get -- Lit toutes les lignes d'un alias d'un domaine
vpopmail_auth_user -- Valide le mot de passe d'un utilisateur pour un domaine
vpopmail_del_domain_ex -- Efface un domaine virtuel
vpopmail_del_domain -- Efface un domaine virtuel
vpopmail_del_user -- Efface un utilisateur d'un domaine virtuel
vpopmail_error -- Lit le dernier message d'erreur vpopmail
vpopmail_passwd -- Remplace le mot de passe d'un utilisateur virtuel
vpopmail_set_user_quota -- Modifie le quota d'un utilisateur virtuel

Précédent | Sommaire | Suivant
pfpro_version | Niveau supérieur | vpopmail_add_alias_domain_ex


vpopmail_add_alias_domain_ex

(4.0.5 - 4.2.3 only, PECL)

vpopmail_add_alias_domain_ex -- Ajoute un alias à un domaine virtuel

Description

bool vpopmail_add_alias_domain_ex ( string olddomain, string newdomain )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail | Niveau supérieur | vpopmail_add_alias_domain


vpopmail_add_alias_domain

(4.0.5 - 4.2.3 only, PECL)

vpopmail_add_alias_domain -- Ajout un alias pour un domaine virtuel

Description

bool vpopmail_add_alias_domain ( string domain, string aliasdomain )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_add_alias_domain_ex | Niveau supérieur | vpopmail_add_domain_ex


vpopmail_add_domain_ex

(4.0.5 - 4.2.3 only, PECL)

vpopmail_add_domain_ex -- Ajoute un nouveau domaine virtuel

Description

bool vpopmail_add_domain_ex ( string domain, string passwd [, string quota [, string bounce [, bool apop]]] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_add_alias_domain | Niveau supérieur | vpopmail_add_domain


vpopmail_add_domain

(4.0.5 - 4.2.3 only, PECL)

vpopmail_add_domain -- Ajoute un nouveau domaine virtuel

Description

bool vpopmail_add_domain ( string domain, string dir, int uid, int gid )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_add_domain_ex | Niveau supérieur | vpopmail_add_user


vpopmail_add_user

(4.0.5 - 4.2.3 only, PECL)

vpopmail_add_user -- Ajoute un nouvel utilisateur à un domaine virtuel

Description

bool vpopmail_add_user ( string user, string domain, string password [, string gecos [, bool apop]] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_add_domain | Niveau supérieur | vpopmail_alias_add


vpopmail_alias_add

(4.1.0 - 4.2.3 only, PECL)

vpopmail_alias_add -- Ajoute un alias virtuel

Description

bool vpopmail_alias_add ( string user, string domain, string alias )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_add_user | Niveau supérieur | vpopmail_alias_del_domain


vpopmail_alias_del_domain

(4.1.0 - 4.2.3 only, PECL)

vpopmail_alias_del_domain -- Efface tous les alias virtuels d'un domaine

Description

bool vpopmail_alias_del_domain ( string domain )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_alias_add | Niveau supérieur | vpopmail_alias_del


vpopmail_alias_del

(4.1.0 - 4.2.3 only, PECL)

vpopmail_alias_del -- Efface tous les alias d'un utilisateur

Description

bool vpopmail_alias_del ( string user, string domain )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_alias_del_domain | Niveau supérieur | vpopmail_alias_get_all


vpopmail_alias_get_all

(4.1.0 - 4.2.3 only, PECL)

vpopmail_alias_get_all -- Lit toutes les lignes d'un alias d'un domaine

Description

array vpopmail_alias_get_all ( string domain )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_alias_del | Niveau supérieur | vpopmail_alias_get


vpopmail_alias_get

(4.1.0 - 4.2.3 only, PECL)

vpopmail_alias_get -- Lit toutes les lignes d'un alias d'un domaine

Description

array vpopmail_alias_get ( string alias, string domain )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_alias_get_all | Niveau supérieur | vpopmail_auth_user


vpopmail_auth_user

(4.0.5 - 4.2.3 only, PECL)

vpopmail_auth_user -- Valide le mot de passe d'un utilisateur pour un domaine

Description

bool vpopmail_auth_user ( string user, string domain, string password [, string apop] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_alias_get | Niveau supérieur | vpopmail_del_domain_ex


vpopmail_del_domain_ex

(4.0.5 - 4.2.3 only, PECL)

vpopmail_del_domain_ex -- Efface un domaine virtuel

Description

bool vpopmail_del_domain_ex ( string domain )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_auth_user | Niveau supérieur | vpopmail_del_domain


vpopmail_del_domain

(4.0.5 - 4.2.3 only, PECL)

vpopmail_del_domain -- Efface un domaine virtuel

Description

bool vpopmail_del_domain ( string domain )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_del_domain_ex | Niveau supérieur | vpopmail_del_user


vpopmail_del_user

(4.0.5 - 4.2.3 only, PECL)

vpopmail_del_user -- Efface un utilisateur d'un domaine virtuel

Description

bool vpopmail_del_user ( string user, string domain )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_del_domain | Niveau supérieur | vpopmail_error


vpopmail_error

(4.0.5 - 4.2.3 only, PECL)

vpopmail_error -- Lit le dernier message d'erreur vpopmail

Description

string vpopmail_error ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_del_user | Niveau supérieur | vpopmail_passwd


vpopmail_passwd

(4.0.5 - 4.2.3 only, PECL)

vpopmail_passwd -- Remplace le mot de passe d'un utilisateur virtuel

Description

bool vpopmail_passwd ( string user, string domain, string password [, bool apop] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_error | Niveau supérieur | vpopmail_set_user_quota


vpopmail_set_user_quota

(4.0.5 - 4.2.3 only, PECL)

vpopmail_set_user_quota -- Modifie le quota d'un utilisateur virtuel

Description

bool vpopmail_set_user_quota ( string user, string domain, string quota )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
vpopmail_passwd | Niveau supérieur | API windows


API windows

Manuel PHP
Précédent Suivant

CLXXIII. API windows

Introduction

Cette extension est une API générique d'accès aux DLL. Elle a été originalement écrite pour accéder aux API Win32 depuis PHP, mais vous pouvez l'utiliser pour accéder à d'autres fonctions exportées par des DLL.

Actuellement, les types supportés sont les types PHP génériques (chaînes de caractères, booléens, nombres, entiers et NULL), et les types que vous définissez avec w32api_deftype().

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 5.1.0.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Pré-requis

Cette extension ne fonctionne qu'avec le système Windows.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension définit un type de ressource, utilisé pour les types de données créé par l'utilisateur. Le nom de cette ressource est "dynaparm".

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.

DC_MICROSOFT (entier)

DC_BORLAND (entier)

DC_CALL_CDECL (entier)

DC_CALL_STD (entier)

DC_RETVAL_MATH4 (entier)

DC_RETVAL_MATH8 (entier)

DC_CALL_STD_BO (entier)

DC_CALL_STD_MS (entier)

DC_CALL_STD_M8 (entier)

DC_FLAG_ARGPTR (entier)

Exemples

Cet exemple lit la durée de vie du système, et l'affiche dans une boîte :

Exemple 1. Lit la durée de vie de la machine, et l'affiche

<?php
// Définit les constantes nécessaires, issues de
// Visual Studio/Tools/Winapi/WIN32API.txt
define("MB_OK", 0);

// Chargement de l'extension
dl("php_w32api.dll");

// Enregistrement de la fonction GetTickCount, provenant de kernel32.dll
w32api_register_function("kernel32.dll",
                         "GetTickCount",
                         "long");

// Enregistrement de la fonction MessageBoxA issue de User32.dll
w32api_register_function("User32.dll",
                         "MessageBoxA",
                         "long");

// Lecture de la durée de vie de la machine
$ticks = GetTickCount();

// Conversion en texte lisible
$secs  = floor($ticks / 1000);
$mins  = floor($secs / 60);
$hours = floor($mins / 60);

$str = sprintf("Vous utilisez cet ordinateur depuis  : ".
                "\r\n %d millisecondes, ou \r\n %d secondes".
                "ou \r\n %d minutes ou\r\n %d heures %d minutes.",
                $ticks,
                $secs,
                $mins,
                $hours,
                $mins - ($hours*60));

// Affiche le message dans une boîte de dialogue avec un bouton OK
MessageBoxA(NULL,
            $str,
            "Uptime Information",
            MB_OK);
?>
Table des matières
w32api_deftype -- Définit un type pour utilisation avec les fonctions windows API
w32api_init_dtype -- Crée une instance de type de données Win32 et la remplit
w32api_invoke_function -- Appelle une fonction Windows 32
w32api_register_function -- Enregistre une fonction Win32 dans PHP
w32api_set_call_method -- Modifie le type d'appel de la fonction Win32

Précédent | Sommaire | Suivant
vpopmail_set_user_quota | Niveau supérieur | w32api_deftype


w32api_deftype

(4.2.0 - 4.2.3 only)

w32api_deftype -- Définit un type pour utilisation avec les fonctions windows API

Description

bool w32api_deftype ( string typename, string member1_type, string member1_name [, string ... [, string ...]] )

Vous devez appeler cette fonction si vous voulez définir un type pour un appel w32api.

Liste de paramètres

typename

Le nom du type.

member1_type

Un membre peut être de type défini par le programmeur. Tous les noms de types sont sensibles à la casse. Les noms de types intégrés doivent être founis en minuscules.

member1_name

Le nom du membre member1_type.

...

...

Cette fonction prend 2n+1 arguments, où n est le nombre de membres du type typename. Ce nom est suivi du type de membre member1_type, puis de son nom member1_name, par paire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Précédent | Sommaire | Suivant
API windows | Niveau supérieur | w32api_init_dtype


w32api_init_dtype

(4.2.0 - 4.2.3 only)

w32api_init_dtype -- Crée une instance de type de données Win32 et la remplit

Description

resource w32api_init_dtype ( string typename, mixed value [, mixed ...] )

Crée une instance du type typename, et remplit les valeurs avec les données value, ....

Liste de paramètres

typename

Le paramètre typename est sensible à la casse.

value

Il faut donner les valeurs dans le même ordre que lors de la définition du type, avec w32api_deftype().

...

Valeurs de retour

Retourne la ressource dynaparm.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Précédent | Sommaire | Suivant
w32api_deftype | Niveau supérieur | w32api_invoke_function


w32api_invoke_function

(4.2.0 - 4.2.3 only)

w32api_invoke_function -- Appelle une fonction Windows 32

Description

mixed w32api_invoke_function ( string funcname, mixed argument [, mixed ...] )

w32api_invoke_function() essaie de trouver la fonction préalablement enregistrée, appelée funcname, en lui passant les arguments argument, ..., passés après funcname.

Liste de paramètres

funcname

Le nom de la fonction.

argument

Les arguments peuvent être n'importe lequel de ceux de PHP, ou un type défini via la fonction w32api_deftype().

...

Valeurs de retour

Le type retourné est celui que vous avez enregistré avec la fonction. La valeur est celle retournée par la fonction.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Précédent | Sommaire | Suivant
w32api_init_dtype | Niveau supérieur | w32api_register_function


w32api_register_function

(4.2.0 - 4.2.3 only)

w32api_register_function -- Enregistre une fonction Win32 dans PHP

Description

bool w32api_register_function ( string library, string function_name, string return_type )

w32api_register_function() essaie de trouver la fonction function_name dans la bibliothèque library, et essaie de l'importer en PHP.

Liste de paramètres

library

Le nom de la bibliothèque, sous la forme d'une chaîne de caractères.

function_name

Le nom de la fonction, sous la forme d'une chaîne de caractères.

return_type

La fonction sera alors enregistrée avec le type de valeur de retour return_type. return_type peut être un type générique de PHP ou bien un type défini par le programmeur avec la fonction w32api_deftype(). Tous les noms de type sont sensibles à la casse. Les types intégrés doivent être fournis en minuscules.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Précédent | Sommaire | Suivant
w32api_invoke_function | Niveau supérieur | w32api_set_call_method


w32api_set_call_method

(4.2.0 - 4.2.3 only)

w32api_set_call_method -- Modifie le type d'appel de la fonction Win32

Description

void w32api_set_call_method ( int method )

w32api_set_call_method() modifie le type d'appel de la fonction.

Liste de paramètres

method

Peut être l'une des constantes suivantes : DC_CALL_CDECL ou DC_CALL_STD (l'extension par défaut).

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Précédent | Sommaire | Suivant
w32api_register_function | Niveau supérieur | WDDX


WDDX

Manuel PHP
Précédent Suivant

CLXXIV. WDDX

Introduction

Ces fonctions fonctionnent grâce à WDDX.

Pré-requis

Pour utiliser WDDX, vous devez installer la bibliothèque EXPAT (qui est fournie avec la distribution d'Apache 1.3.7 ou plus récent).

Installation

Après avoir installé Expat, compilez PHP avec --enable-wddx.

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

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension définit l'identifiant du paquet WDDX, retourné par la fonction wddx_packet_start().

Constantes pré-définies

Cette extension ne définit aucune constante.

Exemples

Notez bien que toutes les fonctions qui enregistrent des données, utilisent le premier élément d'un tableau pour savoir si ce tableau doit être enregistré sous la forme d'un tableau ou d'une structure. Si le premier élément a une clé de type chaîne, le tableau sera enregistré sous la forme d'une structure, sinon, il le sera sous la forme d'un tableau.

Exemple 1. Enregistre une valeur simple

<?php
echo wddx_serialize_value("Exemple de paquet de PHP à WDDX", "Paquet PHP");
?>

L'exemple ci-dessus va afficher :

<wddxPacket version='1.0'><header comment='Paquet PHP'/><data>
<string>Exemple de paquet de PHP à WDDX</string></data></wddxPacket>

Exemple 2. Utilisation de paquets incrémentaux

<?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");

/* Supposons que $villes provient d'une base de données */
$villes = array("Paris", "Montréal", "Lyon");
wddx_add_vars($packet_id, "villes");

$packet = wddx_packet_end($packet_id);
echo $packet;
?>

L'exemple ci-dessus va afficher :

<wddxPacket version='1.0'><header comment='PHP'/><data><struct>
<var name='pi'><number>3.1415926</number></var><var name='villes'>
<array length='3'><string>Paris</string><string>Montréal</string>
<string>Lyon</string></array></var></struct></data></wddxPacket>

Note : Si vous voulez linéariser des caractères non-ASCII, vous devez d'abord convertir vos données en UTF-8. (Voir les fonctions utf8_encode() et iconv().)

Table des matières
wddx_add_vars -- Ajoute des variables à un paquet WDDX
wddx_deserialize -- Alias de wddx_unserialize()
wddx_packet_end -- Clôt un paquet WDDX
wddx_packet_start -- Commence un nouveau paquet WDDX avec une structure
wddx_serialize_value -- Enregistre une valeur dans un paquet WDDX
wddx_serialize_vars -- Enregistre plusieurs valeurs dans un paquet WDDX
wddx_unserialize -- Délinéarise un paquet WDDX

Précédent | Sommaire | Suivant
w32api_set_call_method | Niveau supérieur | wddx_add_vars


wddx_add_vars

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

wddx_add_vars -- Ajoute des variables à un paquet WDDX

Description

bool wddx_add_vars ( resource packet_id, mixed var_name [, mixed ...] )

Sert à enregistrer les variables passées en argument, et les ajouter au paquet repéré par son identifiant packet_id.

Liste de paramètres

Cette fonction prend un nombre variable de paramètres.

packet_id

Un paquet WDDX, retourné par la fonction wddx_packet_start().

var_name

Peut être une chaîne de caractères nommant une variable ou un tableau contenant des noms de variables ou d'autres tableaux, etc..

...

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
WDDX | Niveau supérieur | wddx_deserialize


wddx_deserialize

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

wddx_deserialize -- Alias de wddx_unserialize()

Description

Cette fonction est un alias de : wddx_unserialize().

Précédent | Sommaire | Suivant
wddx_add_vars | Niveau supérieur | wddx_packet_end


wddx_packet_end

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

wddx_packet_end -- Clôt un paquet WDDX

Description

string wddx_packet_end ( resource packet_id )

Clôt un paquet WDDX.

Liste de paramètres

packet_id

Un paquet WDDX, retourné par la fonction wddx_packet_start().

Valeurs de retour

Retourne une chaîne de caractères contenant le paquet WDDX.

Précédent | Sommaire | Suivant
wddx_deserialize | Niveau supérieur | wddx_packet_start


wddx_packet_start

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

wddx_packet_start -- Commence un nouveau paquet WDDX avec une structure

Description

resource wddx_packet_start ( [string comment] )

wddx_packet_start() sert à créer un nouveau paquet WDDX, pour pouvoir y faire des ajouts incrémentaux de variables. Elle va automatiquement créer une définition de structure dans le paquet, pour accueillir des variables.

Liste de paramètres

comment

Une chaîne de caractères optionnelle contenant le commentaire.

Valeurs de retour

Retourne un identifiant de paquet pour utilisation ultérieure avec les fonctions WDDX, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
wddx_packet_end | Niveau supérieur | wddx_serialize_value


wddx_serialize_value

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

wddx_serialize_value -- Enregistre une valeur dans un paquet WDDX

Description

string wddx_serialize_value ( mixed var [, string comment] )

Enregistre une valeur donnée dans un paquet WDDX.

Liste de paramètres

var

La valeur à linéariser.

comment

Une chaîne de caractères optionnelle contenant un commentaire qui apparait dans l'en-tête du paquet.

Valeurs de retour

Retourne le paquet WDDX, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
wddx_packet_start | Niveau supérieur | wddx_serialize_vars


wddx_serialize_vars

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

wddx_serialize_vars -- Enregistre plusieurs valeurs dans un paquet WDDX

Description

string wddx_serialize_vars ( mixed var_name [, mixed ...] )

Sert à créer un paquet WDDX avec une structure qui contient la représentation des variables passées en arguments.

Liste de paramètres

Cette fonction prend un nombre variable de paramètres.

var_name

Peut être soit une chaîne de caractères nommant une variable ou un tableau contenant des noms de variables ou d'autres tableaux, etc..

...

Valeurs de retour

Retourne le paquet WDDX, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec wddx_serialize_vars()

<?php
$a = 1;
$b = 5.5;
$c = array("blue", "orange", "violet");
$d = "colors";

$clvars = array("c", "d");
echo wddx_serialize_vars("a", "b", $clvars);
?>

L'exemple ci-dessus va afficher :

<wddxPacket version='1.0'><header/><data><struct><var name='a'><number>1</number></var>
<var name='b'><number>5.5</number></var><var name='c'><array length='3'>
<string>blue</string><string>orange</string><string>violet</string></array></var>
<var name='d'><string>colors</string></var></struct></data></wddxPacket>

Précédent | Sommaire | Suivant
wddx_serialize_value | Niveau supérieur | wddx_unserialize


Fonctions xattr

Manuel PHP
Précédent Suivant

CLXXVII. Fonctions xattr

Introduction

L'extension xattr vous permet de manipuler les attributs étendus sur un système de fichiers.

Pré-requis

Pour utiliser xattr, vous avez besoin de la bibliothèque libattr. Elle est disponible sur http://oss.sgi.com/projects/xfs/.

Note : Ces fonctions fonctionnent uniquement sur les systèmes de fichiers qui supportent les attributs étendus et qui les ont activés lors du montage. Les systèmes de fichiers les plus courant supportant les attributs étendus sont ext2, ext3, reiserfs, jfs et xfs.

Installation

xattr est actuellement disponible via PECL http://pecl.php.net/package/xattr.

Si PEAR est disponible sur votre système *nix-like, vous pouvez utiliser l'installeur Pear pour installer l'extension xattr, via la commande : pear -v install xattr.

Vous pouvez toujours télécharger le paquet tar.gz et installer manuellement xattr :

Exemple 1. Installation manuelle de l'extension xattr

gunzip xattr-xxx.tgz
tar -xvf xattr-xxx.tar
cd xattr-xxx
phpize
./configure && make && make install

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XATTR_ROOT (entier)

Définit un attribut dans l'espace de noms racine. Nécessite les privilèges d'administrateur.

XATTR_DONTFOLLOW (entier)

Ne pas suivre un lien symbolique mais opérer directement sur le lien symbolique.

XATTR_CREATE (entier)

La fonction échouera si l'attribut étendu existe déjà.

XATTR_REPLACE (entier)

La fonction échouera si l'attribut étendu n'existe pas.

Table des matières
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éfinie un attribut étendu
xattr_supported -- Vérifie si un système de fichier supporte les attributs étendus

Précédent | Sommaire | Suivant
win32_stop_service | Niveau supérieur | xattr_get


xattr_get

(PECL)

xattr_get -- Récupère un attribut étendu

Description

string xattr_get ( string filename, string name [, int flags] )

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

Tableau 1. 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()
xattr_set()
xattr_remove()

Précédent | Sommaire | Suivant
Fonctions xattr | Niveau supérieur | xattr_list


xattr_list

(PECL)

xattr_list -- Récupère une liste d'attributs étendus

Description

array xattr_list ( string filename [, int flags] )

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

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

Précédent | Sommaire | Suivant
xattr_get | Niveau supérieur | xattr_remove


xattr_remove

(PECL)

xattr_remove -- Efface un attribut étendu

Description

bool xattr_remove ( string filename, string name [, int flags] )

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

Tableau 1. Supported xattr flags

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, FALSE en cas d'échec.

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()
xattr_set()
xattr_get()

Précédent | Sommaire | Suivant
xattr_list | Niveau supérieur | xattr_set


xattr_set

(PECL)

xattr_set -- Définie un attribut étendu

Description

bool xattr_set ( string filename, string name, string value [, int flags] )

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

value

La valeur de l'attribut.

flags

Tableau 1. 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, FALSE en cas d'échec.

Exemples

Exemple 1. Définission 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()
xattr_remove()

Précédent | Sommaire | Suivant
xattr_remove | Niveau supérieur | xattr_supported


xattr_supported

(PECL)

xattr_supported -- Vérifie si un système de fichier supporte les attributs étendus

Description

bool xattr_supported ( string filename [, int flags] )

xattr_supported() vérifie si le système de fichier 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

Tableau 1. 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 sysè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()
xattr_list()

Précédent | Sommaire | Suivant
xattr_set | Niveau supérieur | Fonctions xdiff


Fonctions xdiff

Manuel PHP
Précédent Suivant

CLXXVIII. Fonctions xdiff

Introduction

L'extension xdiff crée et applique des patches aux fichiers binaires et textes.

Pré-requis

Pour utiliser xdiff, vous aurez besoin de libxdiff, disponible sur le site web de libxdiff http://www.xmailserver.org/xdiff-lib.html.

Note : Vous devez avoir au moins la version 0.7 de la bibliothèque libxdiff pour que ces fonctions prennent en compte le paramètre memory_limit.

Installation

xdiff est actuellement disponible dans PECL http://pecl.php.net/package/xdiff.

Si PEAR est disponible sur votre système *nix vous pouvez utiliser l'installateur PEAR pour installer l'extension xdiff avec la commande suivante : pear -v install xdiff.

Vous pouvez toujours télécharger le tar.gz et installer xdiff à la main :

Exemple 1. Installation à la main de xdiff

gunzip xdiff-xxx.tgz
tar -xvf xdiff-xxx.tar
cd xdiff-xxx
phpize
./configure && make && make install

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XDIFF_PATCH_NORMAL (entier)

XDIFF_PATCH_REVERSE (entier)

Table des matières
xdiff_file_diff_binary -- Créé un diff binaire de deux fichiers
xdiff_file_diff -- Créé un diff unifié entre deux fichiers
xdiff_file_merge3 -- Fusionne trois fichiers en un seul
xdiff_file_patch_binary -- Patche un fichier avec un diff binaire
xdiff_file_patch -- Patche un fichier avec un diff unifié
xdiff_string_diff_binary -- Créé un diff binaire de deux chaînes
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 -- Patche une chaîne avec un diff binaire
xdiff_string_patch -- Patche une chaîne avec un diff unifié

Précédent | Sommaire | Suivant
xattr_supported | Niveau supérieur | xdiff_file_diff_binary


xdiff_file_diff_binary

(PECL)

xdiff_file_diff_binary -- Créé un diff binaire de deux fichiers

Description

bool xdiff_file_diff_binary ( string file1, string file2, string dest )

xdiff_file_diff_binary() créé un diff binaire entre les deux fichiers file1 et file2 et stocke le résultat dans dest. Cette fonction fonctionne avec les fichiers textes mais aussi avec les fichiers binaires. Le fichier résultant est un fichier binaire.

Note : Les deux fichiers seront chargés en mémoire ; assurez-vous d'avoir défini memory_limit à une valeur assez grande.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec xdiff_file_diff_binary()

Le code suivant crée un diff binaire de deux archives.

<?php
$ancienne_version = 'mon_script_1.0.tgz';
$nouvelle_version = 'mon_script_1.1.tgz';

xdiff_file_diff_binary($ancienne_version, $nouvelle_version, 'my_script.bdiff');
?>

Voir aussi xdiff_string_diff_binary().

Précédent | Sommaire | Suivant
Fonctions xdiff | Niveau supérieur | xdiff_file_diff


xdiff_file_diff

(PECL)

xdiff_file_diff -- Créé un diff unifié entre deux fichiers

Description

bool xdiff_file_diff ( string file1, string file2, string dest [, int context [, bool minimal]] )

xdiff_file_diff() créé un diff unifié des fichiers file1 et file2 et stocke le résultat dans le fichier dest. context indique le nombre de lignes de contexte que vous voulez inclure dans le résultat de diff. Configurez minimal à TRUE si vous voulez minimaliser la taille du diff (peut prendre beaucoup de temps). Le fichier résultant est humainement lisible.

Note : Cette fonction ne fonctionne pas correctement avec les fichiers binaires. Pour effectuer un diff sur des fichiers binaires, utilisez la fonction xdiff_file_diff_binary().

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec xdiff_file_diff()

Le code suivant crée un diff de deux fichiers php.

<?php
$ancienne_version = 'mon_script.php';
$nouvelle_version = 'mon_nouveau_script.php';

xdiff_file_diff($ancienne_version, $nouvelle_version, 'mon_script.diff', 2);
?>

Voir aussi xdiff_string_diff().

Précédent | Sommaire | Suivant
xdiff_file_diff_binary | Niveau supérieur | xdiff_file_merge3


xdiff_file_merge3

(PECL)

xdiff_file_merge3 -- Fusionne trois fichiers en un seul

Description

mixed xdiff_file_merge3 ( string file1, string file2, string file3, string dest )

xdiff_file_merge3() fusionne les fichiers file1, file2 et file3 en un seul et le stocke dans dest.

Cette fonction 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.

Exemple 1. Exemple avec xdiff_file_merge3()

Le code suivant fusionne trois fichiers en un.

<?php
$ancienne_version = 'script_original.php';
$fix1 = 'script_avec_fix1.php';
$fix2 = 'script_avec_fix2.php';

$errors = xdiff_file_merge3($ancienne_version, $fix1, $fix2, 'fixed_script.php');
if (is_string($errors)) {
    echo "Rejets :\n";
    echo $errors;
}
?>

Voir aussi xdiff_string_merge3().

Précédent | Sommaire | Suivant
xdiff_file_diff | Niveau supérieur | xdiff_file_patch_binary


xdiff_file_patch_binary

(PECL)

xdiff_file_patch_binary -- Patche un fichier avec un diff binaire

Description

bool xdiff_file_patch_binary ( string file, string patch, string dest )

xdiff_file_patch_binary() patche le fichier file avec le patch binaire contenu dans le fichier patch et stocke le résultat dans dest.

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.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemple 1. Exemple avec xdiff_file_patch_binary()

Le code suivant applique un diff binaire à un fichier.

<?php
$ancienne_version = 'archive-1.0.tgz';
$patch = 'archive.bpatch';

$result = xdiff_file_patch_binary($ancienne_version, $patch, 'archive-1.1.tgz');
if ($result) {
   echo "Fichier patché";
} else {
   echo "Le fichier n'a pas pu être patché";
}

?>

Voir aussi xdiff_string_patch_binary().

Précédent | Sommaire | Suivant
xdiff_file_merge3 | Niveau supérieur | xdiff_file_patch


xdiff_file_patch

(PECL)

xdiff_file_patch -- Patche un fichier avec un diff unifié

Description

mixed xdiff_file_patch ( string file, string patch, string dest [, int flags] )

xdiff_file_patch() patche le fichier file avec le patch unifié dans le fichier patch et stocke le résultat dans le fichier dest.

flags peut être soit XDIFF_PATCH_NORMAL (mode par défaut, patch normal) ou XDIFF_PATCH_REVERSE (patch inversé).

Cette fonction retourne FALSE si une erreur interne s'est produite, une chaîne avec les parties rejetées du patch ou TRUE si le patch a été appliqué avec succès.

Exemple 1. Exemple avec xdiff_file_patch()

Le code suivant applique un diff à un fichier.

<?php
$ancienne_version = 'mon_script-1.0.php';
$patch = 'mon_script.patch';

$errors = xdiff_file_patch($ancienne_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
$nouvelle_version = 'mon_script-1.1.php';
$patch = 'mon_script.patch';

$errors = xdiff_file_patch($nouvelle_version, $patch, 'mon_script-1.0.php', XDIFF_PATCH_REVERSE);
if (is_string($errors)) {
   echo "Rejets :\n";
   echo $errors;
}

?>

Voir aussi xdiff_string_patch().

Précédent | Sommaire | Suivant
xdiff_file_patch_binary | Niveau supérieur | xdiff_string_diff_binary


xdiff_string_diff_binary

(PECL)

xdiff_string_diff_binary -- Créé un diff binaire de deux chaînes

Description

string xdiff_string_diff_binary ( string str1, string str2 )

xdiff_string_diff_binary() créée un diff binaire des chaînes str1 et str2.

Retourne une chaîne avec le résultat ou FALSE si une erreur interne est survenue.

Voir aussi xdiff_file_diff_binary().

Précédent | Sommaire | Suivant
xdiff_file_patch | Niveau supérieur | xdiff_string_diff


xdiff_string_diff

(PECL)

xdiff_string_diff -- Créé un diff unifié entre deux chaînes

Description

string xdiff_string_diff ( string str1, string str2 [, int context [, bool minimal]] )

xdiff_string_diff() créée un diff unifié entre les deux chaînes str1 et str2. context indique le nombre de lignes de contexte que vous voulez inclure dans le diff résultant. Configurez minimal à TRUE si vous voulez minimaliser la taille du diff (peut prendre beaucoup de temps).

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

Retourne une chaîne avec le résultat ou FALSE si une erreur interne est survenue.

Exemple 1. Exemple avec xdiff_string_diff()

Le code suivant effectue un diff de deux articles.

<?php
$ancien_article = file_get_contents('./ancien_article.txt');
$nouvel_article = $_REQUEST['article']; /* disons que quelqu'un a posté un nouvel article via un formulaire html */

$diff = xdiff_string_diff($ancien_article, $nouvel_article, 1);
if (is_string($diff)) {
    echo "Différences entre les deux articles :\n";
    echo $diff;
}

?>

Voir aussi xdiff_file_diff().

Précédent | Sommaire | Suivant
xdiff_string_diff_binary | Niveau supérieur | xdiff_string_merge3


xdiff_string_merge3

(PECL)

xdiff_string_merge3 -- Fusionne trois chaînes en une seule

Description

mixed xdiff_string_merge3 ( string str1, string str2, string str3 [, string &error] )

xdiff_string_merge3() fusionne les chaînes str1, str2 et str3 en une seule.

Si error est fourni, alors les parties rejetées y sont stockées.

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

Précédent | Sommaire | Suivant
xdiff_string_diff | Niveau supérieur | xdiff_string_patch_binary


xdiff_string_patch_binary

(PECL)

xdiff_string_patch_binary -- Patche une chaîne avec un diff binaire

Description

string xdiff_string_patch_binary ( string str, string patch )

xdiff_string_patch_binary() patche la chaîne str avec le patch binaire contenu dans la chaîne patch.

Retourne une chaîne patchée.

Voir aussi xdiff_file_patch_binary().

Précédent | Sommaire | Suivant
xdiff_string_merge3 | Niveau supérieur | xdiff_string_patch


xdiff_string_patch

(PECL)

xdiff_string_patch -- Patche une chaîne avec un diff unifié

Description

string xdiff_string_patch ( string str, string patch [, int flags [, string &error]] )

xdiff_string_patch() patche la chaîne str avec le patch unifié contenu dans la chaîne patch.

flags peut être soit XDIFF_PATCH_NORMAL (mode par défaut, patch normal), soit XDIFF_PATCH_REVERSE (patch inversé).

Si error est fourni, les parties rejetées y sont stockées.

Exemple 1. Exemple avec xdiff_string_patch()

Le code suivant applique les changements à des articles.

<?php
$ancien_article = file_get_contents('./ancien_article.txt');
$diff = $_SERVER['patch']; /* disons que quelqu'un a passé un patch via un formulaire html */

$errors = '';

$nouvel_article = xdiff_string_patch($ancien_article, $diff, XDIFF_PATCH_NORMAL, $errors);
if (is_string($nouvel_article)) {
    echo "Nouvel article:\n";
    echo $nouvel_article;
}

if (strlen($errors)) {
    echo "Rejets : \n";
    echo $errors;
}

?>

Retourne une chaîne patchée.

Voir aussi xdiff_file_patch().

Précédent | Sommaire | Suivant
xdiff_string_patch_binary | Niveau supérieur | Analyseur syntaxique XML


Analyseur syntaxique XML

Manuel PHP
Précédent Suivant

CLXXIX. Analyseur syntaxique XML

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 PHP utilise expat compat layer par défaut. Elle peut aussi utiliser expat, qui est disponible sur http://www.jclark.com/xml/expat.html. Le fichier Makefile livré avec expat ne construit pas par défaut de bibliothèque : il faut utiliser la ligne suivante :

libexpat.a: $(OBJS)
    ar -rc $@ $(OBJS)
    ranlib $@
Un paquet RPM source de expat est disponible sur http://sourceforge.net/projects/expat/.

Installation

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.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

xml

La ressource xml est retournée par xml_parser_create() et xml_parser_create_ns(), et représente un analyseur XML à utiliser avec les autres fonctions de cette extension.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XML_ERROR_NONE (entier)

XML_ERROR_NO_MEMORY (entier)

XML_ERROR_SYNTAX (entier)

XML_ERROR_NO_ELEMENTS (entier)

XML_ERROR_INVALID_TOKEN (entier)

XML_ERROR_UNCLOSED_TOKEN (entier)

XML_ERROR_PARTIAL_CHAR (entier)

XML_ERROR_TAG_MISMATCH (entier)

XML_ERROR_DUPLICATE_ATTRIBUTE (entier)

XML_ERROR_JUNK_AFTER_DOC_ELEMENT (entier)

XML_ERROR_PARAM_ENTITY_REF (entier)

XML_ERROR_UNDEFINED_ENTITY (entier)

XML_ERROR_RECURSIVE_ENTITY_REF (entier)

XML_ERROR_ASYNC_ENTITY (entier)

XML_ERROR_BAD_CHAR_REF (entier)

XML_ERROR_BINARY_ENTITY_REF (entier)

XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (entier)

XML_ERROR_MISPLACED_XML_PI (entier)

XML_ERROR_UNKNOWN_ENCODING (entier)

XML_ERROR_INCORRECT_ENCODING (entier)

XML_ERROR_UNCLOSED_CDATA_SECTION (entier)

XML_ERROR_EXTERNAL_ENTITY_HANDLING (entier)

XML_OPTION_CASE_FOLDING (entier)

XML_OPTION_TARGET_ENCODING (entier)

XML_OPTION_SKIP_TAGSTART (entier)

XML_OPTION_SKIP_WHITE (entier)

gestionnaires d'événements

Les gestionnaires d'événements XML sont :

Tableau 1. 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.

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". En d'autres termes, XML met toutes les lettres en majuscules.

Par défaut, tous les noms des éléments qui sont transmis aux fonctions de gestion sont mises en majuscule. 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).

Exemples

Voici quelques exemples de code PHP analysant un document XML.

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 = "donnees.xml";
$depth = array();

function debutElement($parser, $name, $attrs)
{
    global $depth;
    for ($i = 0; $i < $depth[$parser]; $i++) {
        echo "  ";
    }
    echo "$name\n";
    $depth[$parser]++;
}

function finElement($parser, $name)
{
    global $depth;
    $depth[$parser]--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "debutElement", "finElement");
if (!($fp = fopen($file, "r"))) {
    die("Impossible d'ouvrir le fichier XML");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("erreur XML : %s à la ligne %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 2. 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("Impossible de trouver le fichier XML");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("erreur XML : %s à la ligne %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 3. Entité externe

<?php
$file = "xmltest.xml";

function trustedFile($file)
{
    // faites seulement confiance aux fichiers locaux dont vous êtes le propriétaire
    if (!eregi("^([a-z]+)://", $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 "<strong>$data</strong>";
}

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: <em>%s</em>",
                        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("erreur XML : %s à la ligne %d lors de l'analyse de l'entité %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("Impossible d'ouvrir le fichier XML");
}

echo "<pre>";
while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("Erreur XML : %s à la ligne %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 4. 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>A propos de ce document</title>
  <para>
   <!-- Ceci est un commentaire -->
   <?php print 'Salut! Ceci est PHP version '.phpversion(); ?>
  </para>
 </section>
</chapter>

Ce fichier est inclus depuis xmltest.xml:

Exemple 5. xmltest2.xml

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<foo>
   <element attrib="value"/>
   &testEnt;
   <?php print "Ceci est du code PHP qui est exécuté."; ?>
</foo>

Table des matières
utf8_decode -- Convertit une chaîne UTF-8 en ISO-8859-1
utf8_encode -- Convertit une chaîne ISO-8859-1 en UTF-8
xml_error_string -- Lit le message d'erreur de l'analyseur XML
xml_get_current_byte_index -- Retourne l'index de l'octet courant d'un analyseur XML
xml_get_current_column_number -- Retourne le nombre courant de la colonne 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 -- Utilise un analyseur XML à l'intérieur d'un objet
xml_set_processing_instruction_handler -- Affecte les gestionnaires d'instructions exécutables
xml_set_start_namespace_decl_handler -- Configure le gestionnaire de caractères
xml_set_unparsed_entity_decl_handler -- Affecte les gestionnaires d'entités non déclarées

Précédent | Sommaire | Suivant
xdiff_string_patch | Niveau supérieur | utf8_decode


utf8_decode

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

utf8_decode -- Convertit une chaîne UTF-8 en ISO-8859-1

Description

string utf8_decode ( string data )

utf8_decode() décode la chaîne data, en supposant qu'elle est au format UTF-8, et la convertit au format ISO-8859-1.

Voir aussi utf8_encode() pour plus de détails sur le codage UTF-8.

Précédent | Sommaire | Suivant
Analyseur syntaxique XML | Niveau supérieur | utf8_encode


utf8_encode

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

utf8_encode -- Convertit une chaîne ISO-8859-1 en UTF-8

Description

string utf8_encode ( string data )

utf8_encode() code la chaîne data au format UTF-8, et retourne la version codée. UTF-8 est un mécanisme standardisé utilisé par Unicode pour coder les caractères de grande taille dans des flux d'octets. UTF-8 est transparent pour les caractères ASCII, il est auto-synchronisé (c'est-à-dire qu'un programme peut toujours savoir dans un flux d'octet où un caractère commence), et peut être utilisé pour faire des comparaisons de chaînes standard, comme pour le tri. PHP utilise l'UTF-8 pour coder les caractères jusqu'à 4 octets comme ceci :

Tableau 1. UTF-8 encoding

octets | bits | représentation
1 | 7 | 0bbbbbbb
2 | 11 | 110bbbbb 10bbbbbb
3 | 16 | 1110bbbb 10bbbbbb 10bbbbbb
4 | 21 | 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
Chaque b représente un bit qui peut être utilisé pour enregistrer un caractère.

Précédent | Sommaire | Suivant
utf8_decode | Niveau supérieur | xml_error_string


xml_error_string

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_error_string -- Lit le message d'erreur de l'analyseur XML

Description

string xml_error_string ( int code )

Lit le message d'erreur de l'analyseur XML associé avec la code code donné.

Liste de paramètres

code

Un code erreur provenant de xml_get_error_code().

Valeurs de retour

Retourne une chaîne représentant la description de l'erreur code, ou FALSE si aucune description n'est trouvée.

Voir aussi

xml_get_error_code()

Précédent | Sommaire | Suivant
utf8_encode | Niveau supérieur | xml_get_current_byte_index


xml_get_current_byte_index

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_get_current_byte_index -- Retourne l'index de l'octet courant d'un analyseur XML

Description

int xml_get_current_byte_index ( resource parser )

Retourne l'index de l'octet courant de l'analyseur XML donné.

Liste de paramètres

parser

Une référence sur un analyseur XML valide.

Valeurs de retour

xml_get_current_byte_index() retourne FALSE si parser n'est pas valide ou, sinon, retourne l'index de l'octet d'analyse courante de l'analyseur XML (débute à 0).

Notes

Avertissement

Cette fonction retourne l'index de l'octet en accord avec le texte encodé UTF-8 même si l'entrée est dans un autre encodage.

Voir aussi

xml_get_current_column_index()
xml_get_current_line_index()

Précédent | Sommaire | Suivant
xml_error_string | Niveau supérieur | xml_get_current_column_number


xml_get_current_column_number

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_get_current_column_number -- Retourne le nombre courant de la colonne d'un analyseur XML

Description

int xml_get_current_column_number ( resource parser )

Retourne le nombre courant de la colonne de l'analyseur XML donné.

Liste de paramètres

parser

Une référence sur un analyseur XML valide.

Valeurs de retour

xml_get_current_column_number() retourne FALSE si parser n'est pas valide, ou sinon, retourne le numéro de colonne 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()).

Voir aussi

xml_get_current_byte_index()
xml_get_current_line_index()

Précédent | Sommaire | Suivant
xml_get_current_byte_index | Niveau supérieur | xml_get_current_line_number


xml_get_current_line_number

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_get_current_line_number -- Retourne le numéro de ligne courant d'un analyseur XML

Description

int xml_get_current_line_number ( resource parser )

Retourne le numéro de ligne courant de l'analyseur XML donné.

Liste de paramètres

parser

Une référence sur un analyseur XML valide.

Valeurs de retour

xml_get_current_line_number() retourne FALSE si parser n'est pas valide ou, sinon, retourne le numéro de la ligne en cours d'analyse.

Voir aussi

xml_get_current_column_index()
xml_get_current_byte_index()

Précédent | Sommaire | Suivant
xml_get_current_column_number | Niveau supérieur | xml_get_error_code


xml_get_error_code

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_get_error_code -- Récupère le code erreur de l'analyseur XML

Description

int xml_get_error_code ( resource parser )

Récupère le code erreur de l'analyseur XML.

Liste de paramètres

parser

Une référence sur un analyseur XML valide.

Valeurs de retour

xml_get_error_code() retourne FALSE si parser n'est pas une référence à une analyseur XML valide ou, sinon, retourne un des codes erreur listés dans la section sur les codes erreur.

Voir aussi

xml_error_string()

Précédent | Sommaire | Suivant
xml_get_current_line_number | Niveau supérieur | xml_parse_into_struct


xml_parse_into_struct

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

xml_parse_into_struct -- Analyse une structure XML

Description

int xml_parse_into_struct ( resource parser, string data, array &values [, array &index] )

xml_parse_into_struct() analyse le fichier 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.

Note : 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 ===.

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 "Tableau d'index \n";
print_r($index);
echo "\nTableau de valeurs \n";
print_r($vals);
?>

L'exemple ci-dessus va afficher :

Tableau d'index
Array
(
    [PARA] => Array
        (
            [0] => 0
            [1] => 2
        )

    [NOTE] => Array
        (
            [0] => 1
        )

)

Tableau de valeurs
Array
(
    [0] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 2
            [value] => Simple Note
        )

    [2] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 1
        )

)

L'analyse événementielle (comme celle de expat), peut se révéler complexe lorsque le document XML est complexe. xml_parse_into_struct() ne génère pas d'objet de type DOM, mais il génère plutôt des structures qui peuvent être parcourues à la façon d'un arbre. Considérons le fichier suivant, qui représente une petite base de données XML :

Exemple 2. moldb.xml - Petite base de données moléculaires

<?xml version="1.0"?>
<moldb>

    <molecule>
        <name>Alanine</name>
        <symbol>ala</symbol>
        <code>A</code>
        <type>hydrophobic</type>
    </molecule>

    <molecule>
        <name>Lysine</name>
        <symbol>lys</symbol>
        <code>K</code>
        <type>charged</type>
    </molecule>

</moldb>
Et maintenant, un code qui analyse le document, et génère les objets ad hoc :

Exemple 3. parsemoldb.php : Analyse moldb.xml et crée un tableau d'objets moléculaires

<?php

class AminoAcid {
    var $name;  // nom aa
    var $symbol;    // symbole à trois lettres
    var $code;  // code à une lettre
    var $type;  // hydrophobique, chargé ou neutre

    function AminoAcid ($aa) {
        foreach ($aa as $k=>$v)
            $this->$k = $aa[$k];
    }
}

function readDatabase($filename) {
    // lit la base de données xml des acides aminés
    $data = implode("",file($filename));
    $parser = xml_parser_create();
    xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
    xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
    xml_parse_into_struct($parser,$data,$values,$tags);
    xml_parser_free($parser);

    // boucle à travers les structures
    foreach ($tags as $key=>$val) {
        if ($key == "molecule") {
            $molranges = $val;
            // each contiguous pair of array entries are the
            // lower and upper range for each molecule definition
            for ($i=0; $i < count($molranges); $i+=2) {
                $offset = $molranges[$i] + 1;
                $len = $molranges[$i + 1] - $offset;
                $tdb[] = parseMol(array_slice($values, $offset, $len));
            }
        } else {
            continue;
        }
    }
    return $tdb;
}

function parseMol($mvalues) {
    for ($i=0; $i < count($mvalues); $i++)
        $mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
    return new AminoAcid($mol);
}

$db = readDatabase("moldb.xml");
echo "** Base d'objets AminoAcid :\n";
print_r($db);

?>

Après exécution de parsemoldb.php, la variable $db contient un tableau d'objets AminoAcid, et l'affichage le confirme :

** Base d'objets AminoAcid :
Array
(
    [0] => aminoacid Object
        (
            [name] => Alanine
            [symbol] => ala
            [code] => A
            [type] => hydrophobic
        )

    [1] => aminoacid Object
        (
            [name] => Lysine
            [symbol] => lys
            [code] => K
            [type] => charged
        )

)

Précédent | Sommaire | Suivant
xml_get_error_code | Niveau supérieur | xml_parse


xml_parse

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_parse -- Commence l'analyse d'un document XML

Description

int xml_parse ( resource parser, string data [, bool is_final] )

xml_parse() analyse un document XML. Les gestionnaires pour les événements configurés sont appelés autant de fois que nécessaire.

Liste de paramètres

parser

Une référence sur l'analyseur XML à utiliser.

data

Une partie des données à analyser. Un document peut être analysé morceau par morceau par appels successifs à xml_parse() avec de nouvelles données, aussi longtemps que le paramètre is_final est défini et TRUE lorsque les dernières données sont analysées.

is_final

Si défini et vaut TRUE, data sera le dernier morceau de données envoyées à l'analyseur.

Valeurs de retour

Retourne 1 en cas de succès ou 0 en cas d'échec.

Lors d'un échec d'analyse, la cause de l'erreur peut être obtenue grâce
aux fonctions
xml_get_error_code(),
xml_error_string(),
xml_get_current_line_number(),
xml_get_current_column_number() et
xml_get_current_byte_index().

Note : Les erreurs d'entités sont reportées à la fin des données, ceci uniquement si is_final vaut TRUE.

Précédent | Sommaire | Suivant
xml_parse_into_struct | Niveau supérieur | xml_parser_create_ns


xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5)

xml_parser_create_ns -- Crée un analyseur XML

Description

resource xml_parser_create_ns ( [string encoding [, string separator]] )

xml_parser_create_ns() crée un nouvel analyseur XML avec le support des espaces de noms, et retourne une ressource qui pourra être utilisée avec les autres fonctions XML.

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 ou par ':', par défaut.

Le paramètre optionnel encoding spécifie le jeu de caractères d'encodage pour l'entrée/sortie dans PHP 4. Depuis PHP 5, ce jeu de caractères est automatiquement détecté et, donc, le paramètre encoding ne spécifie plus que la sortie. En PHP 4, le jeu de caractères de sortie par défaut est le même que celui d'entrée. En PHP 5.0.0 et PHP 5.0.1, le jeu de caractères d'entrée par défaut est ISO-8859-1, tandis qu'en PHP 5.0.2 et suivant, il vaut UTF-8. Les jeux de caractères supportés sont ISO-8859-1, UTF-8 et US-ASCII.

Voir aussi xml_parser_create() et xml_parser_free().

Précédent | Sommaire | Suivant
xml_parse | Niveau supérieur | xml_parser_create


xml_parser_create

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_parser_create -- Création d'un analyseur XML

Description

resource xml_parser_create ( [string encoding] )

xml_parser_create() crée un analyseur XML et retourne une référence sur cet analyseur pour qu'il puisse être utilisé ultérieurement par d'autres fonctions XML.

Le paramètre optionnel encoding spécifie le jeu de caractères d'encodage pour l'entrée/sortie dans PHP 4. Depuis PHP 5, ce jeu de caractères est automatiquement détecté et, donc, le paramètre encoding ne spécifie plus que la sortie. En PHP 4, le jeu de caractères de sortie par défaut est le même que celui d'entrée. Si une chaîne vide est passée, le parseur tente d'identifier quel jeu de caractère a été utilisé pour encoder le document en regardant les 3 ou 4 octets du haut. En PHP 5.0.0 et PHP 5.0.1, le jeu de caractères d'entrée par défaut est ISO-8859-1, tandis qu'en PHP 5.0.2 et suivant, il vaut UTF-8. Les jeux de caractères supportés sont ISO-8859-1, UTF-8 et US-ASCII.

Voir aussi xml_parser_create_ns() et xml_parser_free().

Précédent | Sommaire | Suivant
xml_parser_create_ns | Niveau supérieur | xml_parser_free


xml_parser_free

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_parser_free -- Détruit un analyseur XML

Description

bool xml_parser_free ( resource parser )

Détruit l'analyseur XML parser.

Liste de paramètres

parser

Une référence sur un analyseur XML.

Valeurs de retour

Cette fonction retourne FALSE si parser n'est pas une référence valide ou, sinon, détruit l'analyseur et retourne TRUE.

Précédent | Sommaire | Suivant
xml_parser_create | Niveau supérieur | xml_parser_get_option


xml_parser_get_option

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_parser_get_option -- Lit les options d'un analyseur XML

Description

mixed xml_parser_get_option ( resource parser, int option )

Lit les options d'un analyseur XML.

Liste de paramètres

parser

Une référence sur un analyseur XML valide.

option

L'option demandée. XML_OPTION_CASE_FOLDING et XML_OPTION_TARGET_ENCODING sont disponibles. Reportez-vous à xml_parser_set_option() pour leurs descriptions.

Valeurs de retour

xml_parser_get_option() retourne FALSE si parser n'est pas un parseur valide ou si option n'est pas valide (genère aussi un E_WARNING). Sinon, elle retourne la valeur de l'option demandée.

Précédent | Sommaire | Suivant
xml_parser_free | Niveau supérieur | xml_parser_set_option


xml_parser_set_option

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_parser_set_option -- Affecte les options d'un analyseur XML

Description

bool xml_parser_set_option ( resource parser, int option, mixed value )

parser

Une référence vers un analyseur XML.

option

L'option à modifier. Voir ci-dessous :

value

La nouvelle valeur de l'option.

xml_parser_set_option() retourne FALSE si parser n'est pas une référence valide sur un analyseur XML, ou si l'option n'a pas pu être modifiée. Sinon, l'option est effectivement modifiée, et la fonction retourne TRUE.

Les options suivantes sont disponibles :

Tableau 1. options d'analyseur XML

Option | Type de données | Description
XML_OPTION_CASE_FOLDING | entier | Contrôle la gestion de la casse des balises de cet analyseur XML. Par défaut, activé.
XML_OPTION_SKIP_TAGSTART | integer | Spécifie combien de caractères doivent être éludés du début du nom de la balise.
XML_OPTION_SKIP_WHITE | integer | Élude ou non les valeurs contenant des caractères blancs.
XML_OPTION_TARGET_ENCODING | chaîne de caractères | 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.

Précédent | Sommaire | Suivant
xml_parser_get_option | Niveau supérieur | xml_set_character_data_handler


xml_set_character_data_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_character_data_handler -- Affecte les gestionnaires de texte littéral

Description

bool xml_set_character_data_handler ( resource parser, callback handler )

xml_set_character_data_handler() affecte les gestionnaires de début et de fin de l'analyseur XML parser. handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer parser.

La fonction handler doit accepter deux paramètres : handler ( resource parser, string data )

parser

Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.

data

Le second paramètre, data, contient les caractères sous la forme d'une chaîne.

Si un gestionnaire reçoit une chaîne vide ou FALSE, c'est qu'il est désactivé.

xml_set_character_data_handler() retourne TRUE si le gestionnaire est actif, et FALSE sinon, ou si parser n'est pas un analyseur.

Note : À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Précédent | Sommaire | Suivant
xml_parser_set_option | Niveau supérieur | xml_set_default_handler


xml_set_default_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_default_handler -- Affecte le gestionnaire XML par défaut

Description

bool xml_set_default_handler ( resource parser, callback handler )

xml_set_default_handler() affecte le gestionnaire par défaut de l'analyseur XML parser. handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer parser.

La fonction handler doit accepter deux paramètres : handler ( resource parser, string data )

parser

Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.

data

Le second paramètre, data, contient les caractères sous la forme d'une chaîne. Cela peut être une déclaration XML, un type de document, une entité ou d'autres données pour lesquelles aucun gestionnaire n'est prévu.

Si un gestionnaire reçoit une chaîne vide ou FALSE, c'est qu'il est désactivé.

xml_set_default_handler() retourne TRUE si le gestionnaire est actif, et FALSE sinon, ou si parser n'est pas un analyseur.

Note : À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Précédent | Sommaire | Suivant
xml_set_character_data_handler | Niveau supérieur | xml_set_element_handler


xml_set_element_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_element_handler -- Affecte les gestionnaires de début et de fin de balise XML

Description

bool xml_set_element_handler ( resource parser, callback start_element_handler, callback end_element_handler )

xml_set_element_handler() affecte les gestionnaires de début et de fin de l'analyseur XML parser. start_element_handler et end_element_handler sont des chaînes qui contiennent les noms de fonctions qui existent lorsque xml_parse() est appelé pour créer parser.

La fonction start_element_handler doit accepter trois paramètres : start_element_handler ( resource parser, string name, array attribs )

parser

Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.

name

Le deuxième paramètre, name, contient le nom de l'élément qui a provoqué l'appel du gestionnaire. Si l'analyseur gère la casse, cet élément sera en majuscules.

attribs

Le troisième paramètre, attribs, contient un tableau associatif avec les attributs de l'éléments (s'il en existe). Les clés de ce tableau seront les noms des attributs, et les valeurs seront les valeurs correspondantes des attributs. Les noms des attributs seront mis en majuscules si l'analyseur gère la casse. Les valeurs des attributs seront inchangées.

L'ordre original des attributs peut être retrouvé en passant en revue le tableau attribs, avec la fonction each(). La première clé sera la première clé du tableau.

La fonction endelementhandler doit accepter deux paramètres : end_element_handler ( resource parser, string name )

parser

Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.

name

Le second paramètre, name, contient le nom de l'élément qui a provoqué l'appel du gestionnaire. Si l'analyseur gère la casse, cet élément sera en majuscules.

Si un gestionnaire reçoit une chaîne vide, ou FALSE, c'est qu'il est en train d'être désactivé.

xml_set_element_handler() retourne TRUE si le gestionnaire est actif, et FALSE sinon, ou si parser n'est pas un analyseur.

Note : À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Précédent | Sommaire | Suivant
xml_set_default_handler | Niveau supérieur | xml_set_end_namespace_decl_handler


xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5)

xml_set_end_namespace_decl_handler -- Configure le gestionnaire XML de données

Description

bool xml_set_end_namespace_decl_handler ( resource parser, callback handler )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Note : À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Précédent | Sommaire | Suivant
xml_set_element_handler | Niveau supérieur | xml_set_external_entity_ref_handler


xml_set_external_entity_ref_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_external_entity_ref_handler -- Configure le gestionnaire XML de références externes

Description

bool xml_set_external_entity_ref_handler ( resource parser, callback handler )

xml_set_external_entity_ref_handler() affecte le gestionnaire d'entité externe de l'analyseur XML parser. handler et endelementhandler sont des chaînes qui contiennent les noms de fonctions qui existent lorsque xml_parse() est appelé pour créer le parser.

La fonction handler doit accepter 5 paramètres, et retourner un entier. Si la valeur retournée par le gestionnaire est FALSE (par exemple si aucune valeur n'est retournée), l'analyseur XML s'arrêtera, et la fonction xml_get_error_code() retournera XML_ERROR_EXTERNAL_ENTITY_HANDLING. handler ( resource parser, string open_entity_names, string base, string system_id, string public_id )

parser

Le premier paramètre,parser, est une référence sur l'analyseur XML qui appelle cette fonction.

open_entity_names

Le deuxième paramètre, open_entity_names, est la liste de noms d'entités, séparés par des espaces. Ces entités sont accessibles à l'analyse par cette entité (y compris le nom de l'entité reférencée).

base

La meilleure base de résolution de l'identifiant système (system_id) de cette entité externe. Actuellement, ce paramètre est toujours une chaîne vide.

system_id

Identifiant système pour cette entité externe.

public_id

Le cinquième paramètre, public_id, est l'identifiant public, comme spécifié dans la déclaration d'entité, ou une chaîne vide, si aucune déclaration n'a été spécifiée. L'espace dans l'identifiant public sera normalisé comme spécifié dans les spécifications XML.

Si un gestionnaire reçoit une chaîne vide, ou FALSE, c'est qu'il est en train d'être désactivé.

xml_set_external_entity_ref_handler() retourne TRUE si le gestionnaire est actif, et FALSE sinon ou si parser n'est pas un analyseur.

Note : À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Précédent | Sommaire | Suivant
xml_set_end_namespace_decl_handler | Niveau supérieur | xml_set_notation_decl_handler


xml_set_notation_decl_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_notation_decl_handler -- Configure le gestionnaire XML de notations

Description

bool xml_set_notation_decl_handler ( resource parser, callback handler )

xml_set_notation_decl_handler() affecte les gestionnaires de début et de fin de l'analyseur XML parser. handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer 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.

La fonction handler doit accepter cinq paramètres : handler ( resource parser, string notation_name, string base, string system_id, string public_id )

parser

Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.

notation_name

Le nom de la notation, name, comme précisé dans le format de notation ci-dessus.

base

La meilleure base de résolution de l'identifiant système (system_id) de cette entité externe. Actuellement, ce paramètre est toujours une chaîne vide.

system_id

Identifiant système pour cette entité externe.

public_id

Identifiant public pour cette entité externe.

Si un gestionnaire reçoit une chaîne vide ou FALSE, c'est qu'il est en train d'être désactivé.

xml_set_notation_decl_handler() retourne TRUE si le gestionnaire est actif, et FALSE sinon ou si parser n'est pas un analyseur.

Note : À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Précédent | Sommaire | Suivant
xml_set_external_entity_ref_handler | Niveau supérieur | xml_set_object


xml_set_object

(PHP 4, PHP 5)

xml_set_object -- Utilise un analyseur XML à l'intérieur d'un objet

Description

bool xml_set_object ( resource parser, object &object )

xml_set_object() rend l'analyseur parser utilisable depuis un objet. Toutes les méthodes de callback, affectées par xml_set_element_handler(), seront les méthodes de cet objet.

Exemple 1. Exemple avec xml_set_object()

<?php
class xml  {
    var $parser;

    function xml()
    {
        $this->parser = xml_parser_create();

        xml_set_object($this->parser, $this);
        xml_set_element_handler($this->parser, "tag_open", "tag_close");
        xml_set_character_data_handler($this->parser, "cdata");
    }

    function parse($data)
    {
        xml_parse($this->parser, $data);
    }

    function tag_open($parser, $tag, $attributes)
    {
        var_dump($parser, $tag, $attributes);
    }

    function cdata($parser, $cdata)
    {
        var_dump($parser, $cdata);
    }

    function tag_close($parser, $tag)
    {
        var_dump($parser, $tag);
    }

} // fin de la classe xml

$xml_parser = new xml();
$xml_parser->parse("<a id='hallo'>PHP</a>");
?>

Précédent | Sommaire | Suivant
xml_set_notation_decl_handler | Niveau supérieur | xml_set_processing_instruction_handler


xml_set_processing_instruction_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_processing_instruction_handler -- Affecte les gestionnaires d'instructions exécutables

Description

bool xml_set_processing_instruction_handler ( resource parser, callback handler )

xml_set_processing_instruction_handler() affecte le gestionnaire d'instructions exécutables de l'analyseur XML parser. handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer parser.

Une instruction exécutable a la forme suivante :

Exemple 1. Structure d'instruction exécutable

<?target
     data?>
Vous pouvez mettre du code PHP entre ces balises, mais soyez conscient d'une des limitations des instructions exécutables de XML : la balise de fin d'instruction exécutable (?>) ne peut être échappée, ce qui fait que cette séquence NE DOIT JAMAIS apparaître dans le code PHP placé dans le document PHP. Si un tel texte apparaît, la balise de fin d'instruction exécutable sera reconnue, et le reste du code sera considéré comme des données brutes (et donc, pas exécutées).

La fonction handler doit accepter trois paramètres: handler ( resource parser, string target, string data )

parser

Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.

target

Le second paramètre, target, contient l'application cible.

data

Le troisième paramètre, data, contient le code sous la forme d'une chaîne.

Si un gestionnaire reçoit une chaîne vide, ou FALSE, c'est qu'il est désactivé.

xml_set_processing_instruction_handler() retourne TRUE si le gestionnaire est actif, et FALSE sinon, ou si parser n'est pas un analyseur.

Note : À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Précédent | Sommaire | Suivant
xml_set_object | Niveau supérieur | xml_set_start_namespace_decl_handler


xml_set_start_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5)

xml_set_start_namespace_decl_handler -- Configure le gestionnaire de caractères

Description

bool xml_set_start_namespace_decl_handler ( resource parser, callback handler )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Note : À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Précédent | Sommaire | Suivant
xml_set_processing_instruction_handler | Niveau supérieur | xml_set_unparsed_entity_decl_handler


xml_set_unparsed_entity_decl_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_unparsed_entity_decl_handler -- Affecte les gestionnaires d'entités non déclarées

Description

bool xml_set_unparsed_entity_decl_handler ( resource parser, callback handler )

xml_set_unparsed_entity_decl_handler() affecte les gestionnaires d'entités non déclarées de l'analyseur XML parser. handler est une chaîne qui contient le nom d'une fonction qui existe lorsque xml_parse() est appelé pour créer parser.

Ce gestionnaire 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.

La fonction handler doit accepter six paramètres: handler ( resource parser, string entity_name, string base, string system_id, string public_id, string notation_name )

parser

Le premier paramètre, parser, est une référence sur l'analyseur XML qui appelle cette fonction.

entity_name

Le nom de l'entité qui va être définie

base

La meilleure base de résolution de l'identifiant système de cette entité externe. Actuellement, ce paramètre est toujours une chaîne vide.

system_id

Identifiant système pour cette entité externe.

public_id

Identifiant public pour cette entité externe.

notationname

Nom de la notation de cette entité. (Voir xml_set_notation_decl_handler().)

Si un gestionnaire reçoit une chaîne vide ou FALSE, c'est qu'il est en train d'être désactivé.

xml_set_unparsed_entity_decl_handler() retourne TRUE si le gestionnaire est actif, et FALSE sinon, ou si parser n'est pas un analyseur.

Note : À la place d'un nom de fonction, un tableau contenant une référence d'objet et un nom de méthode peut aussi être utilisé.

Précédent | Sommaire | Suivant
xml_set_start_namespace_decl_handler | Niveau supérieur | XML-RPC


XML-RPC

Manuel PHP
Précédent Suivant

CLXXX. XML-RPC

Introduction

Ces fonctions servent à écrire des serveurs et clients XML-RPC. Vous trouverez plus d'informations sur XML-RPC sur le site http://www.xmlrpc.com/, et plus de documenation sur cette extension et ses fonctions à http://xmlrpc-epi.sourceforge.net/.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Le support de XML-RPC en PHP n'est pas activé par défaut. Vous avez besoin de l'activer grâce à l'option de compilation --with-xmlrpc[=DIR]. Cette extension est fournie avec PHP depuis la version 4.1.0.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
xmlrpc_errors | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.1.0.
xmlrpc_error_number | "0" | PHP_INI_ALL | Disponible depuis PHP 4.1.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Types de ressources

Cette extension définit une ressource XML-RPC server, retourné par la fonction xmlrpc_server_create().

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
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 -- Modifie le type XMLRPC, base64 ou datetime, pour une chaîne de caractères PHP

Précédent | Sommaire | Suivant
xml_set_unparsed_entity_decl_handler | Niveau supérieur | xmlrpc_decode_request


xmlrpc_decode_request

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decode_request -- Décode le code XML en variables PHP natives

Description

mixed xmlrpc_decode_request ( string xml, string &method [, string encoding] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
XML-RPC | Niveau supérieur | xmlrpc_decode


xmlrpc_decode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decode -- Décode le XML en types PHP natifs

Description

mixed xmlrpc_decode ( string xml [, string encoding] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

xml

Réponse XML retournée par la méthode XMLRPC.

encoding

Encodage d'entrée, supporté par iconv (par défaut, "iso-8859-1").

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

Précédent | Sommaire | Suivant
xmlrpc_decode_request | Niveau supérieur | xmlrpc_encode_request


xmlrpc_encode_request

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_encode_request -- Génère le XML pour une méthode

Description

string xmlrpc_encode_request ( string method, mixed params [, array output_options] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

method

Nom de la méthode à appeler.

params

Paramètres de la méthode, compatible 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 (xmlrpc_is_fault($response)) {
    trigger_error("xmlrpc: $response[faultString] ($response[faultCode])");
} else {
    print_r($response);
}
?>

Voir aussi

stream_context_create()
file_get_contents()
xmlrpc_decode()

Précédent | Sommaire | Suivant
xmlrpc_decode | Niveau supérieur | xmlrpc_encode


xmlrpc_encode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_encode -- Génère le code XML pour une valeur PHP

Description

string xmlrpc_encode ( mixed value )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
xmlrpc_encode_request | Niveau supérieur | xmlrpc_get_type


xmlrpc_get_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_get_type -- Retourne le type XMLRPC d'une valeur PHP

Description

string xmlrpc_get_type ( mixed value )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Particulièrement pratique pour les types chaînes de type base64 et datetime.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
xmlrpc_encode | Niveau supérieur | xmlrpc_is_fault


xmlrpc_is_fault

(PHP 4 >= 4.3.0, PHP 5)

xmlrpc_is_fault -- Détermine si un tableau de valeurs représente un XMLRPC

Description

bool xmlrpc_is_fault ( array arg )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

arg

Tableau retourné par la fonction xmlrpc_decode().

Valeurs de retour

Retourne TRUE si l'argument signifie fault, FALSE sinon. La description de fault est disponible dans la variable $arg["faultString"], le code de fault est disponible dans la variable $arg["faultCode"].

Exemples

See example by xmlrpc_encode_request().

Voir aussi

xmlrpc_decode()

Précédent | Sommaire | Suivant
xmlrpc_get_type | Niveau supérieur | xmlrpc_parse_method_descriptions


xmlrpc_parse_method_descriptions

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_parse_method_descriptions -- Décode le code XML en une liste de descriptions de méthodes

Description

array xmlrpc_parse_method_descriptions ( string xml )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
xmlrpc_is_fault | Niveau supérieur | xmlrpc_server_add_introspection_data


xmlrpc_server_add_introspection_data

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_add_introspection_data -- Ajoute des données d'introspection

Description

int xmlrpc_server_add_introspection_data ( resource server, array desc )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
xmlrpc_parse_method_descriptions | Niveau supérieur | xmlrpc_server_call_method


xmlrpc_server_call_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_call_method -- Analyse une requête XML et appelle les méthodes associées

Description

string xmlrpc_server_call_method ( resource server, string xml, mixed user_data [, array output_options] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
xmlrpc_server_add_introspection_data | Niveau supérieur | xmlrpc_server_create


xmlrpc_server_create

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_create -- Crée un serveur XMLRPC

Description

resource xmlrpc_server_create ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
xmlrpc_server_call_method | Niveau supérieur | xmlrpc_server_destroy


xmlrpc_server_destroy

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_destroy -- Détruit un serveur XMLRPC

Description

int xmlrpc_server_destroy ( resource server )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
xmlrpc_server_create | Niveau supérieur | xmlrpc_server_register_introspection_callback


xmlrpc_server_register_introspection_callback

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_introspection_callback -- Enregistre une fonction PHP pour générer la documentation

Description

bool xmlrpc_server_register_introspection_callback ( resource server, string function )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
xmlrpc_server_destroy | Niveau supérieur | xmlrpc_server_register_method


xmlrpc_server_register_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_method -- Enregistre une fonction PHP avec une méthode

Description

bool xmlrpc_server_register_method ( resource server, string method_name, string function )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
xmlrpc_server_register_introspection_callback | Niveau supérieur | xmlrpc_set_type


xmlrpc_set_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_set_type -- Modifie le type XMLRPC, base64 ou datetime, pour une chaîne de caractères PHP

Description

bool xmlrpc_set_type ( string &value, string type )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
xmlrpc_server_register_method | Niveau supérieur | XMLReader functions


XSL

Manuel PHP
Précédent Suivant

CLXXXIII. XSL

Introduction

L'extension XSL implémente le standard XSL, et fait des transformations XSLT à l'aide de la bibliothèque libxslt.

Pré-requis

Cette extension utilise la bibliothèque libxslt qui peut être trouvée sur http://xmlsoft.org/XSLT/. La bibliothèque libxslt version 1.1.0 ou supérieure est requise.

Installation

PHP 5 inclut l'extension XSL par défaut et peut être activée en ajoutant l'argument --with-xsl[=DIR] à votre ligne de configuration. DIR est le dossier d'installation de la bibliothèque libxslt.

Classes pré-définies

XSLTProcessor

Constructeur

  • XSLTProcessor::__construct - construit un nouvel objet XSLTProcessor

Méthodes

  • XSLTProcessor::getParameter - Récupère la valeur d'un paramètre

  • XSLTProcessor::hasExsltSupport - Détermine si PHP a le support EXSLT

  • XSLTProcessor::importStylesheet - Importe une feuille de style

  • XSLTProcessor::registerPHPFunctions - Active la possibilité d'utiliser les fonctions PHP comme fonctions XSLT

  • XSLTProcessor::removeParameter - Efface un paramètre

  • XSLTProcessor::setParameter - Défini la valeur d'un paramètre

  • XSLTProcessor::transformToDoc - Transforme en un DOMDocument

  • XSLTProcessor::transformToURI - Transforme en une URI

  • XSLTProcessor::transformToXML - Transforme en du XML

Exemples

Plusieurs exemples dans ce manuel requièrent un fichier XML ainsi qu'un fichier XSL. Nous utiliserons collection.xml et collection.xsl qui contiennent ceci :

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>

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

XSL_CLONE_AUTO (entier)

XSL_CLONE_NEVER (entier)

XSL_CLONE_ALWAYS (entier)

LIBXSLT_VERSION (entier)

Version libxslt, par exemple : 10117. Disponible depuis PHP 5.1.2.

LIBXSLT_DOTTED_VERSION (chaîne de caractères)

Version libxslt, par exemple : 1.1.17. Disponible depuis PHP 5.1.2.

LIBEXSLT_VERSION (entier)

Version libxslt, par exemple : 813. Disponible depuis PHP 5.1.2.

LIBEXSLT_DOTTED_VERSION (chaîne de caractères)

Version libxslt, par exemple : 1.1.17. Disponible depuis PHP 5.1.2.

Table des matières
XSLTProcessor::__construct -- Crée un nouvel objet XSLTProcessor
XSLTProcessor::getParameter -- Récupère la valeur d'un paramètre
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::transformToDoc -- Transforme en un document DOM
XSLTProcessor::transformToURI -- Transforme en URI
XSLTProcessor::transformToXML -- Transforme en XML

Précédent | Sommaire | Suivant
XMLWriter::writeRaw | Niveau supérieur | XSLTProcessor::__construct


XSLTProcessor::__construct

(no version information, might be only in CVS)

XSLTProcessor::__construct -- Crée un nouvel objet XSLTProcessor

Description

class XSLTProcessor {

__construct ( (void); )

}

Crée un nouvel objet XSLTProcessor.

Exemples

Exemple 1. Création d'un XSLTProcessor

<?php
$doc = new DOMDocument();
$xsl = new XSLTProcessor();

$doc->load($xsl_filename);
$xsl->importStyleSheet($doc);

$doc->load($xml_filename);
echo $xsl->transformToXML($doc);
?>

Précédent | Sommaire | Suivant
XSL | Niveau supérieur | XSLTProcessor::getParameter


XSLTProcessor::getParameter

(no version information, might be only in CVS)

XSLTProcessor::getParameter -- Récupère la valeur d'un paramètre

Description

class XSLTProcessor {

string getParameter ( string namespaceURI, string localName )

}

Récupère un paramètre précédemment défini par la fonction XSLTProcessor::setParameter.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms du paramètre XSLT.

localName

Le nom local du paramètre XSLT.

Valeurs de retour

La valeur du paramètre ou NULL s'il n'est pas défini.

Voir aussi

XSLTProcessor::setParameter
XSLTProcessor::removeParameter

Précédent | Sommaire | Suivant
XSLTProcessor::__construct | Niveau supérieur | XSLTProcessor::hasExsltSupport


XSLTProcessor::hasExsltSupport

(no version information, might be only in CVS)

XSLTProcessor::hasExsltSupport -- Indique si PHP utilise EXSLT

Description

class XSLTProcessor {

bool hasExsltSupport ( void )

}

Cette méthode détermine si PHP a été compilé avec la bibliothèque EXSLT.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Test du support EXSLT

<?php

$proc = new XSLTProcessor;
if (!$proc->hasExsltSupport()) {
    die('Support EXSLT non disponible');
}

// Travaux avec EXSLT ..

?>

Précédent | Sommaire | Suivant
XSLTProcessor::getParameter | Niveau supérieur | XSLTProcessor::importStylesheet


XSLTProcessor::importStylesheet

(no version information, might be only in CVS)

XSLTProcessor::importStylesheet -- Importe une feuille de style

Description

class XSLTProcessor {

void importStylesheet ( DOMDocument stylesheet )

}

Cette méthode importe une feuille de style dans le XSLTProcessor pour transformations.

Liste de paramètres

stylesheet

La feuille de style importée en tant qu'objet DOMDocument.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
XSLTProcessor::hasExsltSupport | Niveau supérieur | XSLTProcessor::registerPHPFunctions


XSLTProcessor::registerPHPFunctions

(no version information, might be only in CVS)

XSLTProcessor::registerPHPFunctions -- Active l'utilisation de PHP dans les feuilles de styles XSLT

Description

class XSLTProcessor {

void registerPHPFunctions ( [mixed restrict] )

}

Cette méthode permet d'utiliser les fonctions PHP en tant que fonctions XSLT dans les feuilles de style XSL.

Liste de paramètres

restrict

Utilisez ce paramètre pour restreindre les fonctions PHP accessibles depuis XSLT.

Ce paramètre peut être une chaîne (le nom d'une fonction) ou un tableau de noms de fonctions.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Appel d'une fonction PHP depuis une feuille de style

<?php
$xml = <<<EOB
<allusers>
 <user>
  <uid>bob</uid>
 </user>
 <user>
  <uid>joe</uid>
 </user>
</allusers>
EOB;
$xsl = <<<EOB
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:php="http://php.net/xsl">
 <xsl:output method="html" encoding="utf-8" indent="yes"/>
 <xsl:template match="allusers">
  <html><body>
    <h2>Users</h2>
    <table>
     <xsl:for-each select="user">
      <tr><td>
        <xsl:value-of
            select="php:function('ucfirst',string(uid))"/>
       </td></tr>
     </xsl:for-each>
    </table>
   </body></html>
 </xsl:template>
</xsl:stylesheet>
EOB;
$xmldoc = DOMDocument::loadXML($xml);
$xsldoc = DOMDocument::loadXML($xsl);

$proc = new XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStyleSheet($xsldoc);
echo $proc->transformToXML($xmldoc);
?>

Historique

Version | Description
5.1.0 | Le paramètre restrict a été ajouté.

Précédent | Sommaire | Suivant
XSLTProcessor::importStylesheet | Niveau supérieur | XSLTProcessor::removeParameter


XSLTProcessor::removeParameter

(no version information, might be only in CVS)

XSLTProcessor::removeParameter -- Efface un paramètre

Description

class XSLTProcessor {

bool removeParameter ( string namespaceURI, string localName )

}

Efface un paramètre, s'il est défini. Ceci fera que le processeur utilisera la valeur par défaut pour le paramètre comme défini dans la feuille de style.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms du paramètre XSLT.

localName

Le nom local du paramètre XSLT.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XSLTProcessor::setParameter
XSLTProcessor::getParameter

Précédent | Sommaire | Suivant
XSLTProcessor::registerPHPFunctions | Niveau supérieur | XSLTProcessor::setParameter


XSLTProcessor::setParameter

(no version information, might be only in CVS)

XSLTProcessor::setParameter -- Définit la valeur d'un paramètre

Description

class XSLTProcessor {

bool setParameter ( string namespace, string name, string value )

}class XSLTProcessor {

bool setParameter ( string namespace, array options )

}

Définit la valeur d'un ou plusieurs paramètres pour être utilisés dans une sous-séquence de transformation avec XSLTProcessor. Si le paramètre n'existe pas dans la feuille de style, il sera ignoré.

Liste de paramètres

namespace

L'URI de l'espace de noms du paramètre XSLT.

name

Le nom local du paramètre XSLT.

value

La nouvelle valeur du paramètre XSLT.

options

Un tableau de paire nom => valeur. Cette syntaxe est disponible depuis PHP 5.1.0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

// Configuration du transformateur
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attachement des règles xsl

foreach ($collections as $name => $file) {
    // Chargement du 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
XSLTProcessor::removeParameter

Précédent | Sommaire | Suivant
XSLTProcessor::removeParameter | Niveau supérieur | XSLTProcessor::transformToDoc


XSLTProcessor::transformToDoc

(no version information, might be only in CVS)

XSLTProcessor::transformToDoc -- Transforme en un document DOM

Description

class XSLTProcessor {

DOMDocument transformToDoc ( DOMNode doc )

}

Transforme le noeud source en un DOMDocument en y appliquant la feuille de style donnée par la méthode XSLTProcessor::importStylesheet.

Liste de paramètres

doc

Le noeud à transformer.

Valeurs de retour

Le DOMDocument résultant ou FALSE si une erreur survient.

Exemples

Exemple 1. Transformation en un document DOM

<?php

// Chargement 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 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
XSLTProcessor::transformToXML

Précédent | Sommaire | Suivant
XSLTProcessor::setParameter | Niveau supérieur | XSLTProcessor::transformToURI


XSLTProcessor::transformToURI

(no version information, might be only in CVS)

XSLTProcessor::transformToURI -- Transforme en URI

Description

class XSLTProcessor {

int transformToURI ( DOMDocument doc, string uri )

}

Transforme le noeud source en une URI en y appliquant la feuille de style donnée par la méthode XSLTProcessor::importStylesheet.

Liste de paramètres

doc

Le document transformé.

uri

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
XSLTProcessor::transformToXML

Précédent | Sommaire | Suivant
XSLTProcessor::transformToDoc | Niveau supérieur | XSLTProcessor::transformToXML


XSLTProcessor::transformToXML

(no version information, might be only in CVS)

XSLTProcessor::transformToXML -- Transforme en XML

Description

class XSLTProcessor {

string transformToXML ( DOMDocument doc )

}

Transforme le noeud source en une chaîne en y appliquant une feuille de style donnée par la méthode XSLTProcessor::importStylesheet.

Liste de paramètres

doc

Le document transformé.

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 d'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
XSLTProcessor::transformToURI

Précédent | Sommaire | Suivant
XSLTProcessor::transformToURI | Niveau supérieur | XSLT


XSLT

Manuel PHP
Précédent Suivant

CLXXXIV. XSLT

Introduction

Cette extension PHP fourni une API indépendante pour les transformations XSLT. Actuellement, seul Sablotron est supporté. Le support d'autres bibliothèques comme Xalan ou libxslt est prévu.

XSLT (Extensible Stylesheet Language (XSL) Transformations) est un langage de transformation des documents XML en d'autres documents XML. C'est un standard défini par le consortium World Wide Web (W3C). Les informations sur le XLST et ses technologies sont disponibles à http://www.w3.org/TR/xslt.

Note : Cette extension est différente de l'extension sablotron qui était distribuée dans les versions de PHP avant la 4.1.0. Actuellement, seule la nouvelle extension XSLT est supportée. Si vous souhaitez un support pour les anciennes extensions, posez vos questions sur les listes de diffusion PHP.

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.

Note : Si vous avez besoin du support xslt avec PHP 5, vous pouvez utiliser l'extension XSL.

Pré-requis

Cette extension utilise Sablotron et expat, qui sont toutes les deux disponibles à http://www.gingerall.org/sablotron.html. Les sources comme les exécutables sont proposés.

Installation

Sous UNIX, lancez configure avec l'option --with-sablot ou --with-xslt-sablot. La bibliothèque Sablotron doit être installée là où le compilateur peut la trouver.

Assurez-vous d'avoir la même bibliothèque, compilée avec Sablotron que celle qui est fournie avec PHP. Les options de configuration : --with-expat-dir=DIR --with-iconv-dir=DIR sont disponibles pour vous aider à les spécifier correctement. Lorsque vous demandez de l'aide, mentionnez toujours ces directives, ainsi que si vous avez d'autres bibliothèques installées sur votre système. Naturellement, fournissez les numéros de version.

Attention

Assurez-vous que votre bibliothèque Sablotron soit correctement reliée à -lstdc++. Dans le cas contraire, votre configuration échouera ou bien PHP refusera de fonctionner ou de se charger.

Support de JavaScript E-XSLT : Si vous compilez Sablotron avec le support JavaScript, vous devez spécifier cette option : --with-sablot-js.

Note aux utilisateurs Win32 : Afin de faire fonctionner cette extension, quelques bibliothèques DLL doivent être disponibles via le PATH du système Windows. Lisez la FAQ intitulée "Comment ajouter mon dossier PHP à mon PATH WIndows" pour plus d'informations. Le fait de copier les bibliothèques DLL depuis le dossier PHP dans le dossier système Windows fonctionne également (car le dossier système est par défaut dans le PATH système), mais cette méthode n'est pas recommandée. Cette extension nécessite que les fichiers suivants se trouvent dans le PATH : sablot.dll, expat.dll, et iconv.dll.

En PHP <= 4.2.0, le fichier iconv.dll n'est pas nécessaire.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension définit une ressource XSLT processor, retourné par la fonction xslt_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.

XSLT_OPT_SILENT (entier)

Ignore tous les rapports d'erreurs. C'est une option générique pour toutes les interfaces qui seront ajoutées plus tard.

XSLT_SABOPT_PARSE_PUBLIC_ENTITIES (entier)

Commande à Sablotron de faire l'analyse des entités publiques. Par défaut, cette option est désactivée.

XSLT_SABOPT_DISABLE_ADDING_META (entier)

Ne pas ajouter le méta-tag "Content-Type" pour les générations HTML. La valeur par défaut est choisie lors de la compilation de Sablotron.

XSLT_SABOPT_DISABLE_STRIPPING (entier)

Arrête la suppression des espaces (pour les fichiers de données uniquement).

XSLT_SABOPT_IGNORE_DOC_NOT_FOUND (entier)

Considère les documents non résolus (la fonction document()) comme non-bloquant.

XSLT_SABOPT_FILES_TO_HANDLER (entier)

XSLT_ERR_UNSUPPORTED_SCHEME (entier)

Renvoie un code d'erreur pour les erreurs de gestionnaire de Scheme.

Table des matières
xslt_backend_info -- Retourne les informations sur les paramètres de compilation du backend
xslt_backend_name -- Retourne le nom du backend
xslt_backend_version -- Retourne le numéro de version de Sablotron
xslt_create -- Crée un nouvel analyseur XSLT
xslt_errno -- Retourne le numéro d'erreur XSLT courant
xslt_error -- Retourne un message d'erreur
xslt_free -- Détruit un analyseur XSLT
xslt_getopt -- Récupère les options d'un processeur xsl donné
xslt_process -- Transforme des données XML avec XSLT
xslt_set_base -- Configure l'URI de base de toutes les transformations XSLT
xslt_set_encoding -- Configure le jeu de caractères pour l'analyse des documents XML
xslt_set_error_handler -- Configure le gestionnaire d'erreurs du processeur XSLT
xslt_set_log -- Configure le fichier d'historique pour les messages XSLT
xslt_set_object -- Définit l'objet dans lequel doivent être résolues les fonctions de callback
xslt_set_sax_handler -- Modifie les gestionnaires SAX de l'analyseur XSLT
xslt_set_sax_handlers -- Configure les gestionnaires SAX qui seront appelés pour gérer les documents XML
xslt_set_scheme_handler -- Configure les gestionnaires de Scheme du processeur XSLT
xslt_set_scheme_handlers -- Configure un gestionnaire de Scheme pour un processeur XSLT
xslt_setopt -- Définit les options d'un processeur xsl donné

Précédent | Sommaire | Suivant
XSLTProcessor::transformToXML | Niveau supérieur | xslt_backend_info


xslt_backend_info

(PHP 4 >= 4.3.0, PECL)

xslt_backend_info -- Retourne les informations sur les paramètres de compilation du backend

Description

string xslt_backend_info ( void )

xslt_backend_info() retourne une chaîne contenant des informations à propos de la compilation du backend, ou une chaîne d'erreur lorsque l'information n'est pas disponible.

Voir aussi

xslt_backend_name() et xslt_backend_version().

Précédent | Sommaire | Suivant
XSLT | Niveau supérieur | xslt_backend_name


xslt_backend_name

(PHP 4 >= 4.3.0, PECL)

xslt_backend_name -- Retourne le nom du backend

Description

string xslt_backend_name ( void )

xslt_backend_name() retourne toujours la chaîne Sablotron.

Exemples

Exemple 1. Exemple avec xslt_backend_name()

<?php

echo xslt_backend_name(); // Sablotron

?>

Voir aussi

xslt_backend_info() et xslt_backend_version().

Précédent | Sommaire | Suivant
xslt_backend_info | Niveau supérieur | xslt_backend_version


xslt_backend_version

(PHP 4 >= 4.3.0, PECL)

xslt_backend_version -- Retourne le numéro de version de Sablotron

Description

string xslt_backend_version ( void )

xslt_backend_version() retourne le numéro de version de Sablotron s'il est disponible, et FALSE sinon.

Exemples

Exemple 1. Exemple avec xslt_backend_version()

<?php

echo xslt_backend_version(); // 0.98 par exemple

?>

Voir aussi

xslt_backend_name() et xslt_backend_info().

Précédent | Sommaire | Suivant
xslt_backend_name | Niveau supérieur | xslt_create


xslt_create

(PHP 4 >= 4.0.3, PECL)

xslt_create -- Crée un nouvel analyseur XSLT

Description

resource xslt_create ( void )

xslt_create() retourne une ressource d'analyseur XSLT qui sera nécessaire pour les appels ultérieurs aux fonctions XSLT.

Exemples

Exemple 1. Exemple avec xslt_create()

<?php
function xml2html($xmldata, $xsl)
{
    /* $xmldata -> votre XML */
    /* $xsl -> fichier XSLT */

    $path = 'include';
    $arguments = array('/_xml' => $xmldata);
    $xsltproc = xslt_create();
    xslt_set_encoding($xsltproc, 'ISO-8859-1');
    $html =
        xslt_process($xsltproc, 'arg:/_xml', "$path/$xsl", NULL, $arguments);

    if (empty($html)) {
       die('Erreur d\'analyse XSLT : '. xslt_error($xsltproc));
    }
    xslt_free($xsltproc);
    return $html;
}
?>

Voir aussi

xslt_free().

Précédent | Sommaire | Suivant
xslt_backend_version | Niveau supérieur | xslt_errno


xslt_errno

(PHP 4 >= 4.0.3, PECL)

xslt_errno -- Retourne le numéro d'erreur XSLT courant

Description

int xslt_errno ( resource xh )

xslt_errno() retourne le numéro de la dernière erreur, pour l'analyseur XSLT xh.

Voir aussi

xslt_error().

Précédent | Sommaire | Suivant
xslt_create | Niveau supérieur | xslt_error


xslt_error

(PHP 4 >= 4.0.3, PECL)

xslt_error -- Retourne un message d'erreur

Description

string xslt_error ( resource xh )

xslt_errno() retourne le dernier message d'erreur, pour l'analyseur xh.

Exemples

Exemple 1. Gestion d'erreurs avec xslt_error() et xslt_errno()

<?php

$xh = xslt_create();
$result = xslt_process($xh, 'dog.xml', 'pets.xsl');
if (!$result) {
    die(sprintf("Impossible de traiter le document XSLT [%d]: %s",
                xslt_errno($xh), xslt_error($xh)));
}

echo $result;

xslt_free($xh);
?>

Voir aussi

xslt_errno().

Précédent | Sommaire | Suivant
xslt_errno | Niveau supérieur | xslt_free


xslt_free

(PHP 4 >= 4.0.3, PECL)

xslt_free -- Détruit un analyseur XSLT

Description

void xslt_free ( resource xh )

xslt_free() détruit l'analyseur XSLT xh.

Voir aussi

xslt_create().

Précédent | Sommaire | Suivant
xslt_error | Niveau supérieur | xslt_getopt


xslt_getopt

(PHP 4 >= 4.3.0, PECL)

xslt_getopt -- Récupère les options d'un processeur xsl donné

Description

int xslt_getopt ( resource processor )

xslt_getopt() retourne les options du processeur processor.

Voir aussi

xslt_setopt().

Précédent | Sommaire | Suivant
xslt_free | Niveau supérieur | xslt_process


xslt_process

(PHP 4 >= 4.0.3, PECL)

xslt_process -- Transforme des données XML avec XSLT

Description

mixed xslt_process ( resource xh, string xmlcontainer, string xslcontainer [, string resultcontainer [, array arguments [, array parameters]]] )

xslt_process() fait partie de la nouvelle vague de fonctions XSLT. Elle vous permet de réaliser des transformations XSLT en utilisant n'importe quelle type de source : des conteneurs. Cela se fait grâce à l'utilisation de buffers d'arguments : un concept issu de Sablotron (actuellement, c'est le seul processeur XSLT qui le supporte). Les conteneurs sont, par défaut, des fichiers qui contiennent le document à traiter. Le conteneur de résultat est, par défaut, un fichier qui recevra le document traité. Si le conteneur de résultat n'est pas fourni (l'argument vaut alors NULL), le résultat sera retourné par la fonction.

Avertissement

Depuis PHP 4.0.6, cette fonction n'accepte plus de chaînes XML dans les paramètres xmlcontainer ou xslcontainer. Passer une chaîne contenant du XML dans un de ces paramètres engendrera une erreur de segmentation dans les versions Sablotron supérieures ou égales à 0.95.

Les conteneurs peuvent aussi être modifiés via le tableau arguments.

Le type le plus simple de transformation réalisable avec xslt_process() est la transformation d'un fichier XML avec un fichier XSLT, en plaçant le résultat dans un troisième fichier. Faire cela avec Sablotron est très facile...

Exemple 1. Utilisation de xslt_process() pour transformer un fichier XML avec un fichier XSL en un autre fichier XML

<?php

/* Allocation du processeur XSLT */
$xh = xslt_create();

/* Traitement du document */
if (xslt_process($xh, 'sample.xml', 'sample.xsl', 'result.xml')) {
    echo "Réussi. sample.xml a été transformé par sample.xsl en result.xml";
    echo ", result.xml contient ceci : \n<br />\n";
    echo "<pre>\n";
    readfile('result.xml');
    echo "</pre>\n";
} else {
    echo "Désolé, sample.xml n'a pu être transformé par sample.xsl en ";
    echo " result.xml. La raison est " . xslt_error($xh) . " et ";
    echo " le code d'erreur est " . xslt_errno($xh);
}

xslt_free($xh);

?>

Même si cette fonctionnalité est très pratique, il arrive souvent qu'en environnement web, vous vouliez être capable d'afficher directement votre résultat. Par conséquent, si vous omettez le troisième argument de xslt_process(), ou que vous fournissez la valeur NULL à la place, la fonction va automatiquement retourner le résultat de la transformation XSLT, au lieu de l'écrire dans un fichier.

Exemple 2. Utilisation de xslt_process() pour transformer un fichier XML avec un fichier XSL et le placer dans une variable

<?php

/* Allocation d'un analyseur XSLT */
$xh = xslt_create();

/* Traitement du document */
$result = xslt_process($xh, 'sample.xml', 'sample.xsl');
if ($result) {
    echo "Réussi. sample.xml a été transformé par sample.xsl en result.xml";
    echo ", result.xml contient ceci : \n<br />\n";
    echo "<pre>\n";
    echo $result;
    echo "</pre>\n";
} else {
    echo "Désolé, sample.xml n'a pu être transformé par sample.xsl en ";
    echo " result.xml. La raison est " . xslt_error($xh) . " et ";
    echo " le code d'erreur est " . xslt_errno($xh);
}

xslt_free($xh);

?>

Les deux cas de transformations XSLT ci-dessus sont les cas les plus simples, quand on parle de transformation XSLT, et ce sont les cas les plus courants, mais il existe des situations où vous obtenez vos données XML et XSLT de sources externes comme des sockets ou des bases de données. Dans ces cas, vous avez déjà les données dans une variable et, en mode de production, écrire ces données dans des fichiers serait trop inefficace. C'est là où la syntaxe de buffers d'arguments de XSLT prend la relève. Au lieu de fichiers en termes d'arguments XML et XSLT, vous pouvez passer des buffers d'arguments, qui sont alors substitués en valeur au cinquième argument de la fonction xslt_process(). L'exemple suivant vous montre comment traiter du XML et du XSLT issus de variables, et de retrouver le résultat dans une troisième variable.

Exemple 3. Utilisation de xslt_process() pour transformer une variable XML avec une autre variable XSL et placer le résultat dans une variable

<?php
/* $xml et $xsl contiennent des données XML et XSL */

$arguments = array(
     '/_xml' => $xml,
     '/_xsl' => $xsl
);

/* Allocation d'un analyseur XSLT */
$xh = xslt_create();

/* Traitement du document */
$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);
if ($result) {
    echo "Réussi. sample.xml a été transformé par sample.xsl en result.xml";
    echo ", result.xml contient ceci : \n<br />\n";
    echo "<pre>\n";
    echo $result;
    echo "</pre>\n";
}
else {
    echo "Désolé, sample.xml n'a pu être transformé par sample.xsl en ";
    echo " result.xml. La raison est " . xslt_error($xh) . " et ";
    echo " le code d'erreur est " . xslt_errno($xh);
}
xslt_free($xh);
?>

Finalement, le dernier argument de xslt_process() représente un tableau de tous les paramètres que vous souhaitez passer au document XSLT. Ces paramètres sont accessibles depuis le fichier XSL en utilisant l'instruction <xsl:param name="parameter_name">. Les paramètres doivent être encodés au format UTF-8 et leur valeur sera interprétée comme une chaîne de caractères par l'analyseur Sablotron. En d'autres termes, vous ne pouvez pas passer des groupes de noeuds (node-sets) comme paramètres au document XSLT.

Exemple 4. Passer des variables PHP à un fichier XSL

<?php

// XML string
$xml = '<?xml version="1.0"?>
<para>
 change me
</para>';

// XSL string
$xsl = '
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" indent="no"
 omit-xml-declaration="yes"  media-type="text/html"/>
 <xsl:param name="myvar"/>
 <xsl:param name="mynode"/>
 <xsl:template match="/">
Ma variable PHP : <xsl:value-of select="$myvar"/><br />
Mon node set : <xsl:value-of select="$mynode"/>
 </xsl:template>
</xsl:stylesheet>';

$xh = xslt_create();

// le deuxième paramètre sera interprété comme une chaîne
$parameters = array (
  'myvar' => 'test',
  'mynode' => '<foo>bar</foo>'
);

$arguments = array (
  '/_xml' => $xml,
  '/_xsl' => $xsl
);

echo xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments, $parameters);

?>

L'exemple ci-dessus va afficher :

Ma variable PHP : test<br />
Mon node set : &lt;foo&gt;bar&lt;/foo&gt;

Note : Notez que vous devez préfixer le chemin par file:// si vous utilisez Windows.

Précédent | Sommaire | Suivant
xslt_getopt | Niveau supérieur | xslt_set_base


xslt_set_base

(PHP 4 >= 4.0.5, PECL)

xslt_set_base -- Configure l'URI de base de toutes les transformations XSLT

Description

void xslt_set_base ( resource xh, string uri )

xslt_set_base() configure l'URI de base de toutes les transformations XSLT. L'URI est utilisée avec les instructions Xpath pour résoudre les commandes document() et les autres commandes qui ont des accès externes. Il est également utilisé pour résoudre les URIs pour les éléments <xsl:include> et <xsl:import>.

À partir de PHP 4.3, la valeur par défaut de l'URI est le répertoire courant d'exécution du script. En effet, c'est le nom du répertoire contenu dans la constante __FILE__. Dans les versions antérieures à 4.3, la valeur par défaut de l'URI était moins prévisible.

Note : Notez que vous devez préfixer le chemin par file:// si vous utilisez Windows.

Précédent | Sommaire | Suivant
xslt_process | Niveau supérieur | xslt_set_encoding


xslt_set_encoding

(PHP 4 >= 4.0.5, PECL)

xslt_set_encoding -- Configure le jeu de caractères pour l'analyse des documents XML

Description

void xslt_set_encoding ( resource xh, string encoding )

xslt_set_encoding() configure le jeu de caractères pour l'analyse des documents XML. Lorsque vous utilisez Sablotron, cette option est uniquement disponible lorsque vous compilez Sablotron avec le support des jeux de caractères.

Précédent | Sommaire | Suivant
xslt_set_base | Niveau supérieur | xslt_set_error_handler


xslt_set_error_handler

(PHP 4 >= 4.0.4, PECL)

xslt_set_error_handler -- Configure le gestionnaire d'erreurs du processeur XSLT

Description

void xslt_set_error_handler ( resource xh, mixed handler )

xslt_set_error_handler() configure le gestionnaire d'erreurs du processeur XSLT identifié par xh. Le gestionnaire sera appelé à chaque fois qu'une erreur survient durant les transformations XSLT (pour les notices aussi).

La fonction utilisateur doit accepter quatre paramètres : le processeur XSLT, le niveau d'erreur, le code erreur et un tableau de messages. La fonction peut être définie comme : error_handler ( resource xh, int error_level, int error_code, array messages )

Exemples

Exemple 1. Exemple avec xslt_set_error_handler()

<?php

// Notre gestionnaire d'erreur
function xslt_error_handler($handler, $errno, $level, $info)
{
  // pour le moment, on regarde juste ce que l'on reçoit
  var_dump(func_get_args());
}

// Contenu XML :
$xml='<?xml version="1.0" encoding="iso-8859-1"?>
<para>
 oops, j\'ai mal écrit la balise fermante
</pata>';

// Contenu XSL :
$xsl='<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
   <strong><xsl:value-of select="para"/></strong>
</xsl:template>
</xsl:stylesheet>';

$xh = xslt_create();

xslt_set_error_handler($xh, "xslt_error_handler");

echo xslt_process($xh, 'arg:/_xml', 'arg:/_xsl',
                  NULL, array("/_xml" => $xml, "/_xsl" => $xsl));

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  [0]=>
  resource(1) of type (XSLT Processor)
  [1]=>
  int(3)
  [2]=>
  int(0)
  [3]=>
  array(6) {
    ["msgtype"]=>
    string(5) "error"
    ["code"]=>
    string(1) "2"
    ["module"]=>
    string(9) "Sablotron"
    ["URI"]=>
    string(9) "arg:/_xml"
    ["line"]=>
    string(1) "4"
    ["msg"]=>
    string(34) "XML parser error 7: mismatched tag"
  }
}

Voir aussi

xslt_set_object() si vous voulez utiliser une méthode d'un objet comme gestionnaire.

Précédent | Sommaire | Suivant
xslt_set_encoding | Niveau supérieur | xslt_set_log


xslt_set_log

(PHP 4 >= 4.0.6, PECL)

xslt_set_log -- Configure le fichier d'historique pour les messages XSLT

Description

void xslt_set_log ( resource xh [, mixed log] )

xh

Une ressource d'analyseur XSLT.

log

Ce paramètre doit être un booléen, qui active ou non l'enregistrement dans le fichier d'historique.

xslt_set_log() vous permet de configurer le fichier dans lequel vous voulez enregistrer les messages XSLT. Les messages XSLT sont différents des messages d'erreurs, car les messages ne sont pas des messages d'erreurs, mais plutôt des descriptions de l'état de l'analyseur. Ils sont très pratiques pour déboguer du code XSLT.

Par défaut, l'enregistrement dans l'historique est désactivé. Afin de l'activer, vous devez appeler xslt_set_log() avec le booléen qui active l'enregistrement, puis, si vous le voulez, indiquer un fichier de débogage. Il faut alors passer un nom de fichier.

Note : Notez que vous devez préfixer le chemin par file:// si vous utilisez Windows.

Exemples

Exemple 1. Utilisation de l'enregistrement de messages XSLT

<?php

$xh = xslt_create();
xslt_set_log($xh, true);
xslt_set_log($xh, getcwd() . 'mon_fichier.log');

$result = xslt_process($xh, 'chien.xml', 'animal.xsl');
echo $result;

xslt_free($xh);
?>

Précédent | Sommaire | Suivant
xslt_set_error_handler | Niveau supérieur | xslt_set_object


xslt_set_object

(PHP 4 >= 4.3.0, PECL)

xslt_set_object -- Définit l'objet dans lequel doivent être résolues les fonctions de callback

Description

bool xslt_set_object ( resource processor, object &obj )

xslt_set_object() autorise l'utilisation du paramètre processor dans un objet object et donc de résoudre toutes les fonctions de callback dans celui-ci.

Les fonctions de callback peuvent être déclarées avec les fonctions
xml_set_sax_handlers(),
xslt_set_scheme_handlers() ou
xslt_set_error_handler() et sont supposées comme étant
des méthodes de l'objet object.

Exemples

Exemple 1. Utilisation de votre propre gestionnaire d'erreurs comme méthode

<?php

class my_xslt_processor {

    var $_xh; // votre processeur XSLT

    function my_xslt_processor()
    {
        $this->_xh = xslt_create();

        // Faites de l'objet $this, le résolveur de callback
        xslt_set_object($this->_xh, $this);

        // manipulation des erreurs
        xslt_set_error_handler($this->_xh, "my_xslt_error_handler");
    }

    function my_xslt_error_handler($handler, $errno, $level, $info)
    {
        // maintenant, regardons les arguments
        var_dump(func_get_args());
    }
}

?>

Précédent | Sommaire | Suivant
xslt_set_log | Niveau supérieur | xslt_set_sax_handler


xslt_set_sax_handler

(4.0.3 - 4.0.6 only)

xslt_set_sax_handler -- Modifie les gestionnaires SAX de l'analyseur XSLT

Description

void xslt_set_sax_handler ( resource xh, array handlers )

xslt_set_sax_handler() remplace les gestionnaires SAX de l'analyseur XSLT xh par handlers. Les gestionnaires SAX sont représentés par un tableau à deux dimensions, avec le format suivant (les éléments du premier niveau sont optionnels) :

Exemple 1. Format des gestionnaires avec xslt_set_sax_handler()

array(
[document] =>
    array(
        start document handler,
        end document handler
    ),
[element] =>
    array(
        start element handler,
        end element handler
    ),
[namespace] =>
    array(
        start namespace handler,
        end namespace handler
    ),
[comment] => comment handler,
[pi] => processing instruction handler,
[character] => character data handler
)

Précédent | Sommaire | Suivant
xslt_set_object | Niveau supérieur | xslt_set_sax_handlers


xslt_set_sax_handlers

(PHP 4 >= 4.0.6, PECL)

xslt_set_sax_handlers -- Configure les gestionnaires SAX qui seront appelés pour gérer les documents XML

Description

void xslt_set_sax_handlers ( resource processor, array handlers )

xslt_set_sax_handlers() enregistre le gestionnaire SAX handlers pour le document, en lui donnant une ressource XSLT processor.

Le paramètre handlers doit être un tableau qui suit ce format :

<?php

$handlers = array(

  "document" => array(
    "start_doc",
    "end_doc"),

  "element"  => array(
    "start_element",
    "end_element"),

  "namespace" => array(
    "start_namespace",
    "end_namespace"),

  "comment"   => "comment",

  "pi"        => "pi",

  "character" => "characters"

);
?>

0ù les fonctions suivent la syntaxe décrite dans le schéma du gestionnaire de fonctions.

Note : Le tableau fourni n'a pas besoin de contenir tous les éléments différents du gestionnaire SAX (bien qu'il le peut), mais il doit uniquement être conforme au format "gestionnaire" => "fonction" décrit ci-dessus.

Chacune des fonctions du gestionnaire SAX correspond au format suivant :

  • start_doc ( resource processor )

  • end_doc ( resource processor )

  • start_element ( resource processor, string name, array attributes )

  • end_element ( resource processor, string name )

  • start_namespace ( resource processor, string prefix, string uri )

  • end_namespace ( resource processor, string prefix )

  • comment ( resource processor, string contents )

  • pi ( resource processor, string target, string contents )

  • characters ( resource processor, string contents )

Utiliser la fonction xslt_set_sax_handlers() n'est pas vraiment différent qu'exécuter un analyseur SAX comme xml_parse() sur un résultat de la transformation xslt_process().

Exemples

Exemple 1. Exemple avec xslt_set_sax_handlers()

<?php
// Fournit par ohlesbeauxjours at yahoo dot fr
// Voici un exemple simple qui applique la fonction strtoupper()
// sur le contenu de chaque balise <auteur> et affiche
// le résultat sous forme d'arbre XML :

$xml='<?xml version="1.0"?>
<books>
 <book>
  <title>Mme Bovary</title>
  <author>Gustave Flaubert</author>
 </book>
 <book>
  <title>Mrs Dalloway</title>
  <author>Virginia Woolf</author>
 </book>
</books>';

$xsl='<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" indent="no" omit-xml-declaration="yes"/>
<xsl:template match="/">
 <xsl:for-each select="books/book">
  <livre>
   <auteur><xsl:value-of select="author/text()"/></auteur>
  </livre>
 </xsl:for-each>
</xsl:template>
</xsl:stylesheet>';

// Gestionnaire :
function start_document()
{
  // début de la lecture du document
}

function end_document()
{
  // fin de la lecture du document
}

function start_element($parser, $name, $attributes)
{
  global $result,$tag;
  $result .= "<". $name . ">";
  $tag = $name;
}

function end_element($parser, $name)
{
  global $result;
  $result .= "</" . $name . ">";
}

function characters($parser, $data)
{
  global $result,$tag;
  if ($tag == "auteur" ) {
    $data = strtoupper($data);
  }
  $result .= $data;
}

// Transformation :
$xh = xslt_create();
$handlers = array("document" => array("start_document","end_document"),
   "element" => array("start_element","end_element"),
   "character" => "characters");

xslt_set_sax_handlers($xh, $handlers);
xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, array("/_xml"=>$xml, "/_xsl"=>$xsl));
xslt_free($xh);
?>

Vous pouvez également utiliser la fonction xslt_set_object() si vous voulez implémenter votre gestionnaire dans un objet.

Exemple 2. Gestionnaire orienté objet

<?php
// Voici la version orientée objet de l'exemple ci-dessus
class data_sax_handler {

  var $buffer, $tag, $attrs;

  var $_xh;

  function data_sax_handler($xml, $xsl)
  {
      // notre ressource xslt
      $this->_xh = xslt_create();

      xslt_set_object($this->_xs, $this);

      // configuration du gestionnaire sax
      $handlers = array(
        "document" => array('start_document', 'end_document'),
        "element" => array('start_element', 'end_element'),
        "character" => 'characters'
      );

      xslt_set_sax_handlers($this->_xh, $handlers);

      xslt_process($this->_xh, 'arg:/_xml', 'arg:/_xsl', NULL, array("/_xml"=>$xml, "/_xsl"=>$xsl));
      xslt_free($this->_xh);

  }

  function start_document()
  {
        // début de la lecture du document
  }

  function end_document() {
        // fin de la lecture du document
  }

  function start_element($parser, $name, $attributes) {
        $this->tag = $name;
        $this->buffer .= "<" . $name . ">";
        $this->attrs = $attributes;
  }

  function end_element($parser, $name)
  {
        $this->tag = '';
        $this->buffer .= "</" . $name . ">";
  }

  function characters($parser, $data)
  {
    if ($this->tag == 'auteur') {
          $data = strtoupper($data);
    }
    $this->buffer .= $data;
  }

  function get_buffer() {
    return $this->buffer;
  }

}

$exec = new data_sax_handler($xml, $xsl);

?>

Les deux exemples ci-dessus afficheront :

<livre>
   <auteur>GUSTAVE FLAUBERT</auteur>
</livre>
<livre>
   <auteur>VIRGINIA WOOLF</auteur>
</livre>

Précédent | Sommaire | Suivant
xslt_set_sax_handler | Niveau supérieur | xslt_set_scheme_handler


xslt_set_scheme_handler

(4.0.5 - 4.0.6 only)

xslt_set_scheme_handler -- Configure les gestionnaires de Scheme du processeur XSLT

Description

void xslt_set_scheme_handler ( resource xh, array handlers )

xslt_set_scheme_handler() configure les gestionnaires de Scheme, pour le processeur XSLT identifié par sa ressource xh. Les gestionnaires Scheme doivent être fournis sous forme de tableau (tous les éléments sont optionnels) :

Exemple 1. Configuration des gestionnaires de Scheme pour XSLT

array(
[get_all] => get all handler,
[open] => open handler,
[get] => get handler,
[put] => put handler,
[close] => close handler
)

Précédent | Sommaire | Suivant
xslt_set_sax_handlers | Niveau supérieur | xslt_set_scheme_handlers


xslt_set_scheme_handlers

(PHP 4 >= 4.0.6, PECL)

xslt_set_scheme_handlers -- Configure un gestionnaire de Scheme pour un processeur XSLT

Description

void xslt_set_scheme_handlers ( resource processor, array handlers )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
xslt_set_scheme_handler | Niveau supérieur | xslt_setopt


xslt_setopt

(PHP 4 >= 4.3.0, PECL)

xslt_setopt -- Définit les options d'un processeur xsl donné

Description

mixed xslt_setopt ( resource processor, int newmask )

xslt_setopt() définit les options newmask pour le processeur processor. Retourne le nombre de masques précédents possible, TRUE sinon.

Le paramètre newmask est un masque construit avec les constantes suivantes :

  • XSLT_SABOPT_PARSE_PUBLIC_ENTITIES - Demande au processeur d'analyser les entrées publiques. Par défaut, cette constante est désactivée.

  • XSLT_SABOPT_DISABLE_ADDING_META - Permet de ne pas ajouter l'en-tête méta "Content-Type" lors de l'affichage HTML. La valeur par défaut est définie lors de la compilation du processeur.

  • XSLT_SABOPT_DISABLE_STRIPPING - Supprime les espaces (uniquement pour les fichiers de données).

  • XSLT_SABOPT_IGNORE_DOC_NOT_FOUND - Considère les documents non résolus (la fonction document()) comme existant.

Exemples

Exemple 1. Exemple avec xslt_setopt()

<?php

$xh = xslt_create();

// Demande à Sablotron d'analyser les entités publiques
xslt_setopt($xh, XSLT_SABOPT_PARSE_PUBLIC_ENTITIES);

// Lui demande également de ne pas supprimer les espaces.
xslt_setopt($xh, xslt_getopt($xh) | XSLT_SABOPT_DISABLE_STRIPPING);

?>

Voir aussi

xslt_getopt().

Précédent | Sommaire | Suivant
xslt_set_scheme_handlers | Niveau supérieur | YAZ


YAZ

Manuel PHP
Précédent Suivant

CLXXXV. YAZ

Introduction

Cette extension offre à PHP l'interface avec les produits YAZ, qui implémentent le protocole Z39.50. Avec cette extension, vous pouvez facilement implémenter un client Z39.50 qui analyse ou scanne des serveurs Z39.50 en parallèle.

Le module masque l'essentiel de la complexité de Z39.50, ce qui le rend très facile à utiliser. Il supporte les connexions persistantes de manière similaire à celles supportées par les serveurs SQL : cela signifie qu'une connexion est partagée entre plusieurs scripts PHP, ce qui évite les opérations de connexions.

YAZ est disponible sur http://www.indexdata.dk/yaz/. Vous pouvez trouver des informations, des scripts d'exemples, 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.

Installation

Obtenez YAZ (ANSI/NISO Z39.50 support) et installez-le. YAZ peut être récupéré en source ou dans des paquetages déjà compilés à partir des archives YAZ. Les systèmes tels que Debian GNU/Linux, Suse Linux, FreeBSD ont aussi YAZ fourni dans leur distribution.

Pour les versions de PHP 4, l'extension YAZ y est intégrée (mais pas YAZ lui-même). Compiler PHP avec vos modules favoris et ajoutez l'option --with-yaz[=DIR].

Exemple 1. Compilation de YAZ pour PHP 4 sur Unix

gunzip -c php-4.4.X.tar.gz|tar xf -
gunzip -c yaz-2.1.8.tar.gz|tar xf -
cd yaz-2.1.8
./configure --prefix=/usr
make
sudo make install
cd ../php-4.4.X.
./configure --with-yaz=/usr/bin
make
sudo make install

Pour PHP 5, l'extension YAZ est dans PECL et est installée en tant qu'objet/dll partagé. Si vous avez pear d'installé, la méthode la plus facile pour télécharger, configurer et installer l'extension YAZ est d'utiliser la commande pear.

Exemple 2. Installation de YAZ PECL sur Linux Gnu/Debian

L'exemple suivant installe YAZ et YAZ PECL sur un système Debian GNU/Linux :

sudo apt-get install libyaz-dev
sudo pear install yaz

Sur Windows, php_yaz.dll dépend de yaz.dll. Le fichier yaz.dll est une partie du fichier ZIP Win32 provenant du site de PHP. Il s'agit aussi d'une partie de l'installation de Windows YAZ disponible sur YAZ WIN32 area.

Avertissement

Le fichier zip Win32 de PHP 5.0.5 inclut une version trop vieille de yaz.dll (version 1.9.1 < version 2.0.13 requise). Si tel est le cas, utilisez, yaz.dll à partir d'une nouvelle installation YAZ WIN32.

Sur windows, n'oubliez pas d'ajouter le répertoire de PHP à votre variable d'environnement PATH pour que le fichier yaz.dll puisse être trouvé par votre système.

Si vous utilisez YAZ sous forme d'extension partagée, ajoutez (ou décommentez) la ligne suivante dans le fichier php.ini sous Unix:

extension=yaz.so
Et sous Windows :
extension=php_yaz.dll

Avertissement

Les extensions IMAP, recode, YAZ et Cyrus ne peuvent être utilisées simultanément puisqu'elles utilisent un symbole interne commun.

Note : Le problème ci-dessus est résolu en version 2.0 de YAZ.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
yaz.max_links | "100" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
yaz.log_file | NULL | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Exemples

PHP/YAZ conserve les connexions aux serveurs. Une ressource de connexion représente une connexion particulière.

Le script ci-dessous montre comment effectuer une recherche parallèle. Lorsqu'il est appelé sans paramètres, ce script affiche la requête. Sinon, il effectue la recherche sur les serveurs donnés par le tableau host.

Exemple 3. Recherche parallèle 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" />
        GILS test
    <input type="checkbox"
    name="host[]" value="localhost:9999/Default" />
        local test
    <input type="checkbox" checked="checked"
    name="host[]" value="z3950.loc.gov:7090/voyager" />
        Library of Congress
    <br />
    RPN Query:
    <input type="text" size="30" name="query" />
    <input type="submit" name="action" value="Search" />
    </form>
    ';
} else {
    echo 'Vous avez recherché '.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ésultats : $hits";
        }
        echo '<dl>';
        for ($p = 1; $p <= 10; $p++) {
            $rec = yaz_record($id[$i], $p, "string");
            if (empty($rec)) continue;
            echo "<dt><strong>$p</strong></dt><dd>";
            echo nl2br($rec);
            echo "</dd>";
        }
        echo '</dl>';
    }
}
?>

Table des matières
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 package 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_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

Précédent | Sommaire | Suivant
xslt_setopt | Niveau supérieur | yaz_addinfo


yaz_addinfo

(PHP 4 >= 4.0.1, PECL)

yaz_addinfo -- Retourne plus de détails après une erreur

Description

string yaz_addinfo ( resource id )

Retourne plus de détails après une erreur pour la dernière requête sur le serveur.

Avec certains serveurs, cette fonction peut retourner la même chaîne de caractères que la fonction yaz_error().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Une chaîne de caractères contenant des informations additionnelles ou une chaîne de caractères vide si la dernière opération était réussie ou si aucune information additionnelle n'était fournie par le serveur.

Voir aussi

yaz_error()
yaz_errno()

Précédent | Sommaire | Suivant
YAZ | Niveau supérieur | yaz_ccl_conf


yaz_ccl_conf

(PHP 4 >= 4.0.5, PECL)

yaz_ccl_conf -- Configure l'analyseur CCL

Description

void yaz_ccl_conf ( resource id, array config )

Cette fonction configure l'analyseur CCL de requête pour un serveur avec les définitions de points d'accès (CCL qualifiers) et leur équivalent en RPN.

Pour faire correspondre une requête CCL spécifique à RPN, utilisez la fonction yaz_ccl_parse().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

config

Un tableau de configuration. Chaque clé du tableau est le nom du champ CCL et la valeur correspondante contient une chaîne de caractères qui spécifie la correspondance au RPN.

La correspondance est une séquence de paires d'attributs type et d'attributs valeur. L'attribut type et l'attribut valeur sont séparés par un signe égal (=). Chaque paire est séparée par un espace.

Des informations supplémentaires peuvent être trouvées sur la page CCL.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Dans l'exemple ci-dessous, l'analyseur CCL est configuré pour supporter trois champs CCL : ti, au et isbn. Chaque champ correspond à leur équivalent BIB-1. On assume que la variable $id est l'ID de la connexion.

Exemple 1. Configuration CCL

<?php
$fields = array(
  "ti" => "1=4",
  "au"   => "1=1",
  "isbn" => "1=7"
);
yaz_ccl_conf($id, $field);
?>

Voir aussi

yaz_ccl_parse()

Précédent | Sommaire | Suivant
yaz_addinfo | Niveau supérieur | yaz_ccl_parse


yaz_ccl_parse

(PHP 4 >= 4.0.5, PECL)

yaz_ccl_parse -- Appelle l'analyseur CCL

Description

bool yaz_ccl_parse ( resource id, string query, array &result )

Cette fonction appelle l'analyseur CCL. Il convertit une requête CCL FIND en une requête RPN qui peut être passée à yaz_search() pour effectuer une recherche.

Pour définir un champ CCL valide, utilisez la fonction yaz_ccl_conf() avant d'utiliser cette fonction.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

query

La requête CCL FIND.

result

Si la fonction a été exécutée correctement, cet argument sera un tableau contenant la requête RPN valide sous la clé rpn.

Lors d'un échec, trois index sont écrits dans ce tableau pour indiquer la cause de l'échec :

  • errorcode - le code d'erreur CCL (entier)

  • errorstring - l'erreur CCL en chaîne de caractères

  • errorpos - position approximée dans la requête qui est en échec (entier qui est la position d'un caractère)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
yaz_ccl_conf | Niveau supérieur | yaz_close


yaz_close

(PHP 4 >= 4.0.1, PECL)

yaz_close -- Ferme une connexion YAZ

Description

bool yaz_close ( resource id )

Ferme la connexion donnée par le paramètre id.

Note : Cette fonction fermera seulement une connexion non persistante ouverte en mettant l'option persistent à FALSE avec yaz_connect().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

yaz_connect()

Précédent | Sommaire | Suivant
yaz_ccl_parse | Niveau supérieur | yaz_connect


yaz_connect

(PHP 4 >= 4.0.1, PECL)

yaz_connect -- Prépare une connexion à un serveur Z39.50

Description

mixed yaz_connect ( string zurl [, mixed options] )

Cette fonction retourne une ressource de connexion en cas de succès et 0 en cas d'échec.

yaz_connect() prépare une connexion à un serveur Z39.50. Cette fonction n'est pas bloquante, et ne tente pas d'établir une connexion. En fait, elle ne fait que préparer la connexion pour exécution ultérieure par yaz_wait().

Note : Le proxy YAZ est un proxy Z39.50 librement disponible.

Liste de paramètres

zurl

Une chaîne de caractères qui prend la forme host[:port][/database]. Si le port est omis, le port 210 est utilisé. Si la base de données est omise, Default est utilisée.

options

Si donné comme une chaîne de caractères, cela sera traité comme la chaîne d'authentification Z39.50 V2 (OpenAuth).

Si donné comme un tableau, le contenu du tableau sert en tant qu'options.

user

Utilisateur pour authentification.

group

Groupe pour authentification.

password

Mot de passe pour authentification.

cookie

Cookie pour session (proxy YAZ).

proxy

Proxy pour connexion (proxy YAZ).

persistent

Un booléen. Si TRUE la connexion est persistante; Si FALSE la connexion n'est pas persistante. Par défaut les connexions sont persistantes.

Note : Si vous ouvrez une connexion persistante, vous ne serez pas capable de la fermer plus tard avec yaz_close().

piggyback

Un booléen. Si TRUE piggyback est activé pour les recherches. Si FALSE piggyback est désactivé. Par défaut piggyback est activé.

L'activation de piggyback est plus efficace : il sauvegarde habituellement les allers-retours du réseau pour les premières lectures de résultats. Cependant, quelque serveurs Z39.50 ne supportent pas piggyback ou ils ignorent ce jeu de noms. Pour ceux-ci, piggyback devrait être désactivé.

charset

Une chaîne de caractères qui spécifie le jeu de caractères qui sera utilisé dans le langage Z39.50 et le jeu de caractères pour les négociations. Utilisez une chaîne de caractères comme : ISO-8859-1, UTF-8, UTF-16.

La plupart des serveurs Z39.50 ne supportent pas cette option (et, pour ceux-ci, cet argument est ignoré). Plusieurs serveurs utilisent l'encodage ISO-8859-1 pour les requêtes et les messages. Les enregistrements MARC21/USMARC ne sont pas affectés par cette configuration.

preferredMessageSize

Un entier qui spécifie la taille maximale en octets pour toutes les entrées qui seront retournées par la cible durant la récupération. Voyez le standard Z39.50 pour plus d'informations.

Note : Cette option est supportée dans PECL YAZ 1.0.5 ou supérieure.

maximumRecordSize

Un entier qui spécifie la taille maximale en octets pour une seule entrée qui sera retournée par la cible durant la récupération. Cette entité est référée à Exceptional-record-size dans le standard Z39.50.

Note : Cette option est supportée dans PECL YAZ 1.0.5 ou supérieure.

Valeurs de retour

Une ressource de connexion en cas de réussite, FALSE en cas d'erreur.

Historique

Version | Description
4.1.0 | Le paramètre options a été ajouté.

Voir aussi

yaz_close()

Précédent | Sommaire | Suivant
yaz_close | Niveau supérieur | yaz_database


yaz_database

(PHP 4 >= 4.0.6, PECL)

yaz_database -- Spécifie la base d'une session YAZ

Description

bool yaz_database ( resource id, string databases )

Cette fonction vous permet de changer de base de données à l'intérieur de la session en spécifiant une ou plusieurs bases de données à utiliser dans la recherche, récupération de données, etc. Écrase les bases de données spécifiées dans l'appel de yaz_connect().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

databases

Une chaîne de caractères contenant une ou plusieurs bases de données. Plusieurs bases de données sont séparées par un signe plus +.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
yaz_connect | Niveau supérieur | yaz_element


yaz_element

(PHP 4 >= 4.0.1, PECL)

yaz_element -- Spécifie le type d'éléments YAZ à lire

Description

bool yaz_element ( resource id, string elementset )

Cette fonction spécifie le type d'éléments à lire.

Appelez cette fonction avant yaz_search() ou yaz_present() pour spécifier un type d'élément pour les enregistrements à récupérer.

Note : Si cette fonction semble sans effet, voyez la description de l'option piggybacking dans yaz_connect().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

elementset

La plupart des serveurs supportent F (pour les enregistrements complets) et B (pour les enregistrements brefs).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
yaz_database | Niveau supérieur | yaz_errno


yaz_errno

(PHP 4 >= 4.0.1, PECL)

yaz_errno -- Retourne le numéro d'erreur

Description

int yaz_errno ( resource id )

Retourne un numéro d'erreur pour le serveur (dernière requête) identifié par id.

yaz_errno() devrait être appelée après chaque requête pour chaque serveur - (après le retour de yaz_wait()) pour déterminer le succès ou l'échec de la dernière opération (c'est-à-dire la recherche).

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Retourne un code d'erreur. Le code d'erreur est soit un code diagnostique Z39.50 (habituellement un diagnostique Bib-1), soit un code d'erreur côté client qui est généré par PHP/YAZ lui-même, par exemple "Connection failed", "Init Rejected", etc.

Voir aussi

yaz_error()
yaz_addinfo()

Précédent | Sommaire | Suivant
yaz_element | Niveau supérieur | yaz_error


yaz_error

(PHP 4 >= 4.0.1, PECL)

yaz_error -- Retourne une description de l'erreur

Description

string yaz_error ( resource id )

yaz_error() retourne un message d'erreur en anglais correspondant au dernier numéro d'erreur retourné par yaz_errno().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Retourne un message d'erreur pour le serveur (dernière requête), identifié par le paramètre id. Une chaîne de caractères vide est retournée si la dernière opération était réussie.

Voir aussi

yaz_errno()
yaz_addinfo()

Précédent | Sommaire | Suivant
yaz_errno | Niveau supérieur | yaz_es_result


yaz_es_result

(PHP 4 >= 4.2.0, PECL)

yaz_es_result -- Inspecte le résultat d'un service étendu

Description

array yaz_es_result ( resource id )

Cette fonction inspecte le dernier résultat d'un service étendu depuis un serveur. Un service étendu est initié par la fonction yaz_item_order() ou la fonction yaz_es().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Retourne un tableau avec l'élément targetReference pour la référence pour l'opération de service étendu (généré et retourné depuis le serveur).

Voir aussi

yaz_es()

Précédent | Sommaire | Suivant
yaz_error | Niveau supérieur | yaz_es


yaz_get_option

(PECL)

yaz_get_option -- Retourne la valeur d'une option de connexion YAZ

Description

string yaz_get_option ( resource id, string name )

Retourne la valeur de l'option spécifiée par name.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

name

Le nom de l'option.

Valeurs de retour

Retourne la valeur de l'option spécifiée ou une chaîne de caractères vide si l'option n'était pas définie.

Voir aussi

La description de yaz_set_option() pour les options disponibles

Précédent | Sommaire | Suivant
yaz_es | Niveau supérieur | yaz_hits


yaz_hits

(PHP 4 >= 4.0.1, PECL)

yaz_hits -- Retourne le nombre de résultats de la dernière recherche

Description

int yaz_hits ( resource id [, array searchresult] )

yaz_hits() retourne le nombre de résultats de la dernière recherche.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

searchresult

Tableau de résultats pour des informations de résultats de recherche détaillés.

Valeurs de retour

Retourne le nombre de résultats pour la dernière recherche ou 0 si aucune recherche n'a été effectuée.

Le tableau de résultats de recherche (s'il est fourni) contient des informations qui sont retournées par un serveur Z39.50 dans le format SearchResult-1 d'une réponse de recherche. Le format SearchResult-1 peut être utilisé pour obtenir des informations à propos du nombre de résultats pour des parties de requête (sous-requête). En particulier, il est possible d'obtenir le nombre de résultats pour les termes de recherche individuels dans une requête. L'information pour la première sous-requête est dans $array[0], la seconde sous-requête dans $array[1] et ainsi de suite.

Tableau 1. Membres de searchresult

Élement | 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écédent | Sommaire | Suivant
yaz_get_option | Niveau supérieur | yaz_itemorder


yaz_itemorder

(PHP 4 >= 4.0.5, PECL)

yaz_itemorder -- Prépare une requête Z39.50 Item Order avec le package ILL-Request

Description

void yaz_itemorder ( resource id, array args )

Cette fonction prépare une requête de type "Extended Services" en utilisant le "Profile" avec "Use of Z39.50 Item Order Extended Service to Transport ILL (Profile/1)". Reportez-vous ici ou aux spécifications.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

args

Doit être un tableau associatif avec les informations à propos de l'ordre des items des requêtes qui seront envoyées. La clé du tableau est le nom du chemin tag ASN.1 correspondant. Par exemple, le ISBN sous le Item-ID a la clé item-id,ISBN.

Les paramètres de requête IIL sont :

protocol-version-num
transaction-id,initial-requester-id,person-or-institution-symbol,person
transaction-id,initial-requester-id,person-or-institution-symbol,institution
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-person
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-institution
transaction-id,transaction-group-qualifier
transaction-id,transaction-qualifier
transaction-id,sub-transaction-qualifier
service-date-time,this,date
service-date-time,this,time
service-date-time,original,date
service-date-time,original,time
requester-id,person-or-institution-symbol,person
requester-id,person-or-institution-symbol,institution
requester-id,name-of-person-or-institution,name-of-person
requester-id,name-of-person-or-institution,name-of-institution
responder-id,person-or-institution-symbol,person
responder-id,person-or-institution-symbol,institution
responder-id,name-of-person-or-institution,name-of-person
responder-id,name-of-person-or-institution,name-of-institution
transaction-type
delivery-address,postal-address,name-of-person-or-institution,name-of-person
delivery-address,postal-address,name-of-person-or-institution,name-of-institution
delivery-address,postal-address,extended-postal-delivery-address
delivery-address,postal-address,street-and-number
delivery-address,postal-address,post-office-box
delivery-address,postal-address,city
delivery-address,postal-address,region
delivery-address,postal-address,country
delivery-address,postal-address,postal-code
delivery-address,electronic-address,telecom-service-identifier
delivery-address,electronic-address,telecom-service-addreess
billing-address,postal-address,name-of-person-or-institution,name-of-person
billing-address,postal-address,name-of-person-or-institution,name-of-institution
billing-address,postal-address,extended-postal-delivery-address
billing-address,postal-address,street-and-number
billing-address,postal-address,post-office-box
billing-address,postal-address,city
billing-address,postal-address,region
billing-address,postal-address,country
billing-address,postal-address,postal-code
billing-address,electronic-address,telecom-service-identifier
billing-address,electronic-address,telecom-service-addreess
ill-service-type
requester-optional-messages,can-send-RECEIVED
requester-optional-messages,can-send-RETURNED
requester-optional-messages,requester-SHIPPED
requester-optional-messages,requester-CHECKED-IN
search-type,level-of-service
search-type,need-before-date
search-type,expiry-date
search-type,expiry-flag
place-on-hold
client-id,client-name
client-id,client-status
client-id,client-identifier
item-id,item-type
item-id,call-number
item-id,author
item-id,title
item-id,sub-title
item-id,sponsoring-body
item-id,place-of-publication
item-id,publisher
item-id,series-title-number
item-id,volume-issue
item-id,edition
item-id,publication-date
item-id,publication-date-of-component
item-id,author-of-article
item-id,title-of-article
item-id,pagination
item-id,ISBN
item-id,ISSN
item-id,additional-no-letters
item-id,verification-reference-source
copyright-complicance
retry-flag
forward-flag
requester-note
forward-note

Il y a aussi quelques paramètres du package 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écédent | Sommaire | Suivant
yaz_hits | Niveau supérieur | yaz_present


yaz_present

(PHP 4 >= 4.0.5, PECL)

yaz_present -- Prépare à la lecture (Z39.50 present)

Description

bool yaz_present ( resource id )

Cette fonction prépare PHP à la lecture des résultats, après une recherche.

La fonction yaz_range() doit être appelée avant celle-ci pour spécifier la plage de résultats à lire.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
yaz_itemorder | Niveau supérieur | yaz_range


yaz_range

(PHP 4 >= 4.0.1, PECL)

yaz_range -- Spécifie le nombre maximal de résultats à lire

Description

void yaz_range ( resource id, int start, int number )

Spécifie le nombre maximal de résultat à lire.

Cette fonction doit être appelée avant la fonction yaz_search() ou yaz_present().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

start

Spécifie la position du premier enregistrement à récupérer. Les numéros des requêtes vont de 1 à yaz_hits().

number

Spécifie le nombre d'enregistrements qui doivent être récupérés.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
yaz_present | Niveau supérieur | yaz_record


yaz_record

(PHP 4 >= 4.0.1, PECL)

yaz_record -- Retourne un résultat

Description

string yaz_record ( resource id, int pos, string type )

La fonction yaz_record() retourne un enregistrement dans le jeu de résultats courant à la position spécifiée par le paramètre pos.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

pos

La position de l'enregistrement. Les positions des enregistrements dans un jeu de résultats sont numérotés 1, 2, ... $hits où $hits est le 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ébogage - ou parce que ce n'est pas faisable d'effectuer un affichage approprié.

xml

L'enregistrement est retourné comme une chaîne de caractères XML si possible. Dans ce mode, tous les enregistrements MARC sont convertis en MARCXML. Les enregistrements XML et SUTRS sont retournés dans leur format original. GRS-1 n'est pas supporté.

Ce format est similaire à string à l'exception que les enregistrements MARC sont convertis en MARCXML

Ce format est approprié si les enregistrements sont analysés par la suite par un analyseur XML ou un processeur XSLT.

raw

L'enregistrement est retourné comme une chaîne de caractères dans sa forme originale. Ce type est approprié pour MARC, XML et SUTRS. Il ne fonctionne pas pour GRS-1.

Les enregistrements MARC sont retournés comme une chaîne de caractères ISO2709. XML et SUTRS sont retournés comme des chaînes de caractères.

syntax

La syntaxe de l'enregistrement est retournée comme une chaîne de caractères, par exemple USmarc, GRS-1, XML, etc.

database

Le nom de la base de données associée aux résultats à la position est retourné comme une chaîne de caractères.

array

L'enregistrement est retourné comme un tableau qui réfléchit la structure GRS-1. Ce type est approprié pour MARC et GRS-1. XML, SUTRS ne sont pas supportés et, si l'enregistrement actuel est XML ou SUTRS, une chaîne de caractères vide sera retournée.

Le tableau retourné consiste en une liste correspondant à chaque feuille/noeud interne de GRS-1. Chaque item de la liste consiste à une sous-liste avec le premier élément path et data (si les données sont disponibles).

Le chemin, qui est une chaîne de caractères, contient une liste de chaque composant de l'arbre (de la structure des enregistrements GRS-1) depuis la racine vers l'extrémité. Chaque composant est une paire de type de balise/valeur sous la forme (type, value

Les tags de chaîne de caractères ont normalement une correspondance avec le type tag 3. MARC peut aussi être retourné comme un tableau (ils sont convertis en GRS-1 de manière interne).

Valeurs de retour

Retourne l'enregistrement à la position pos ou une chaîne vide si aucun enregistrement n'existe à la position donnée.

Si aucun enregistrement de base de données n'existe à la position donnée une chaîne vide est retournée.

Exemples

Exemple 1. Tableau pour des enregistrements GRS-1

Considérez les enregistrements GRS-1

(4,52)Robert M. Pirsig
(4,70)
      (4,90)
            (2,7)Transworld Publishers, ltd.
Cet enregistrement a deux noeuds à la racine. Le premier élément de la racine est (4,52) [tag type 4, tag value 52], et a comme donnée Robert M. Pirsig. Le deuxième élément de la racine (4,70) a un sous-arbre avec un élément simple (4,90). (4,90) a maintenant un sous-arbre (2,7) avec comme donnée Transworld Publishers, ltd..

Si cet enregistrement est présent à la position $p, alors

<?php

$ar = yaz_record($id, $p, "array");
print_r($ar);

?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => Array
        (
            [0] => (4,52)
            [1] => Robert M. Pirsig
        )
    [1] => Array
        (
            [0] => (4,70)
        )
    [2] => Array
        (
            [0] => (4,70)(4,90)
        )
    [3] => Array
        (
            [0] => (4,70)(4,90)(2,7)
            [1] => Transworld Publishers, ltd.
        )
)

Exemple 2. Travail avec MARCXML

Le script PHP ci-dessous retourne un enregistrement MARC21/USMARC comme MARCXML. L'enregistrement original est retourné dans le jeu de caractères marc-8 (inconnu de beaucoup d'analyseur XML), donc nous le convertissons en UTF-8 (que tous les analyseurs XML supportent).

<?php
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");
?>

L'enregistrement $rec peut être obtenu avec le processeur Sablotron XSLT comme cela :

<?php

$xslfile = 'display.xsl';
$processor = xslt_create();
$parms = array('/_xml' => $rec);
$res = xslt_process($processor, 'arg:/_xml', $xslfile, NULL, $parms);
xslt_free($processor);
$res = preg_replace("'</?html[^>]*>'", '', $res);
echo $res;

?>

En PHP 5, l'extension XSL peut être utilisée à la place de Sablotron XSLT.

Précédent | Sommaire | Suivant
yaz_range | Niveau supérieur | yaz_scan_result


yaz_scan_result

(PHP 4 >= 4.0.5, PECL)

yaz_scan_result -- Retourne le résultat d'un scan

Description

array yaz_scan_result ( resource id [, array &result] )

yaz_scan_result() retourne un tableau contenant les termes reçus de l'hôte, lors de la dernière requête de scan.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

result

Si donné, ce tableau sera modifié pour contenir des informations additionnelles prises à partir de la réponse Scan :

  • number - Nombre d'entrées retournées

  • stepsize - Grandeur de pas

  • position - Position du terme

  • status - Statut du scan

Valeurs de retour

Retourne un tableau (0..n-1) où n est le nombre de termes retournés. Chaque valeur est une paire où le premier item est un terme et le second item est un le nombre de résultats.

Précédent | Sommaire | Suivant
yaz_record | Niveau supérieur | yaz_scan


yaz_scan

(PHP 4 >= 4.0.5, PECL)

yaz_scan -- Prépare un scan

Description

void yaz_scan ( resource id, string type, string startterm [, array flags] )

Cette fonction prépare une requête "Z39.50 Scan Request" sur la connexion spécifiée.

Pour actuellement transférer la requête "Scan Request" au serveur et recevoir le "Scan Response", yaz_wait() doit être appelée. Après la fin de yaz_wait(), appelez yaz_error() et yaz_scan_result() pour gérer 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 pour le 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 additionnelles pour contrôler le comportement de la requête de scan. Trois index sont actuellement lus à partir du tableau flags : 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 scanne 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 &nbsp;";
    }
    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 />";
  }
}
?>

Précédent | Sommaire | Suivant
yaz_scan_result | Niveau supérieur | yaz_schema


yaz_schema

(PHP 4 >= 4.2.0, PECL)

yaz_schema -- Spécifie le schéma de lecture

Description

void yaz_schema ( resource id, string schema )

yaz_schema() spécifie le schéma de lecture.

cette fonction devrait être appelée avant yaz_search() ou yaz_present().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

schema

Doit être spécifié comme un OID (Object Identifier) dans une notation par point brut (comme 1.2.840.10003.13.4) ou comme un des schémas connus enregistrés : GILS-schema, Holdings, Zthes, ...

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
yaz_scan | Niveau supérieur | yaz_search


yaz_search

(PHP 4 >= 4.0.1, PECL)

yaz_search -- Prépare une recherche

Description

bool yaz_search ( resource id, string type, string query )

yaz_search() prépare une recherche sur la connexion donnée

Comme pour yaz_connect(), cette fonction n'est pas bloquante et ne fait que préparer la recherche pour exécution ultérieure lorsque yaz_wait() est appelée.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

type

Ce paramètre représente le type de requête - seul "rpn" est supporté actuellement et, dans ce cas, le troisième argument est un préfixe de notation de requête utilisé par YAZ.

query

Les requêtes RPN sont des représentations textuelles des requêtes de type Type-1, comme défini dans le standard Z39.50. Cependant, dans la représentation textuelle utilisée par YAZ, une notation à préfixage 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.

Tableau 1. 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, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
yaz_schema | Niveau supérieur | yaz_set_option


yaz_set_option

(PECL)

yaz_set_option -- Modifie une ou plusieurs options de connexion YAZ

Description

void yaz_set_option ( resource id, string name, string value )

void yaz_set_option ( resource id, array options )

Modifie une ou plusieurs options sur la connexion donnée.

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

name ou options

Peut être soit une chaîne de caractères ou un tableau.

Si donné comme chaîne de caractères, cela sera le nom de l'option à spécifier. Vous devrez donner sa valeur value.

Si donné comme tableau, cela sera un tableau associatif (nom de l'option => valeur de l'option).

Tableau 1. 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.

Précédent | Sommaire | Suivant
yaz_search | Niveau supérieur | yaz_sort


yaz_sort

(PHP 4 >= 4.1.0, PECL)

yaz_sort -- Configure les critères de tri

Description

void yaz_sort ( resource id, string criteria )

Cette fonction configure les critères de tri et active le tri Z39.50.

Appelez cette fonction avant yaz_search(). Si elle est utilisée conjointement avec yaz_search(), une commande Z39.50 Sort sera envoyée après chaque retour de recherche et avant que les résultats ne soient lus avec Z39.50 Present (yaz_present()).

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

criteria

Une chaîne de caractères qui prend la forme de field1 flags1 field2 flags2 où field1 spécifie les attributs primaires pour le tri, field2 le second, etc.

Le champ spécifie soit un attribut numérique, combinaison consistant de paires type=value séparées par des virgules (c'est-à-dire 1=4,2=1), soit il peut être spécifié en une chaîne de caractères (c'est-à-dire titre). Le flags est une séquence des caractères suivants qui ne peuvent être séparés par aucun espace.

Sort Flags

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

Précédent | Sommaire | Suivant
yaz_set_option | Niveau supérieur | yaz_syntax


yaz_syntax

(PHP 4 >= 4.0.1, PECL)

yaz_syntax -- Spécifie la syntaxe de lecture des lignes

Description

void yaz_syntax ( resource id, string syntax )

yaz_syntax() spécifie la syntaxe de lecture des lignes.

Cette fonction devrait être appelée avant yaz_search() ou yaz_present().

Liste de paramètres

id

La ressource de connexion retournée par yaz_connect().

syntax

Doit être spécifié comme un OID (Object Identifier) dans une notation par point brut (comme 1.2.840.10003.5.10) ou comme une des syntaxes d'enregistrement connues et enregistrées (sutrs, usmarc, grs1, xml, etc.).

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
yaz_sort | Niveau supérieur | yaz_wait


yaz_wait

(PHP 4 >= 4.0.1, PECL)

yaz_wait -- Attend l'exécution d'une requête

Description

mixed yaz_wait ( [array &options] )

Cette fonction exécute une activité réseau (bloquée) pour les demandes en attente qui ont été préparées par les fonctions yaz_connect() yaz_search(), yaz_present(), yaz_scan() et yaz_itemorder()

yaz_wait() se termine lorsque tous les hôtes ont terminé leurs requêtes (éventuellement en cas d'erreur).

Liste de paramètres

options

Un tableau associatif des options :

timeout

Spécifie un délai d'attente en secondes. Si un serveur n'a pas répondu dans les délais, il est considéré comme mort et yaz_wait() se termine. La valeur par défaut pour le délai est de 15 secondes.

event

Un booléen.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
yaz_syntax | Niveau supérieur | NIS


Fonctions ZIP

Manuel PHP
Précédent Suivant

CLXXXVII. Fonctions ZIP

Introduction

Ce module vous permet de lire et d'écrire des archives compressées ZIP ainsi que les fichiers contenus dans ces archives.

Pré-requis

Interne à PHP 4

La version initiale est fournie avec PHP 4 et est disponible dans PECL depuis la version 1.0, voir http://pecl.php.net/package/zip. Elle ne peut que lire les archives ZIP.

Cette version utilisent les fonctions de la bibliothèque ZZIPlib de Guido Draheim. Vous devez avoir d'installer la bibliothèque ZZIPlib en version >= 0.10.6.

PECL et PHP 5.2 ou suivant

La nouvelle version est fournie avec PHP 5.2.0 ou suivant et est disponible dans PECL depuis la version 1.1.0 ou suivant. Elle ne nécessite pas de bibliothèque externe. Elle peut lire et écrire des archives ZIP lorsqu'elle est utilisée avec PHP 5.1 ou suivant et elle ne peut que les lire lorsqu'elle est utilisée avec PHP 4.

Installation

Cette extension PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/zip.

Installation sous Linux

Installation lorsque l'extension est fournie avec PHP 4

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP avec le support ZIP en utilisant l'option de configuration --with-zip[=DIR] où [DIR] est le préfixe de l'installation de la bibliothèque ZZIPlib.

Installation avec PECL ou fournie avec PHP 5.2 et suivant

Pour pouvoir utiliser ces fonctions, vous devez compiler PHP avec le support ZIP en utilisant l'option de configuration --enable-zip. Ceci ne nécessite pas de bibliothèque externe.

Note : Vous pouvez utiliser la version PECL avec PHP 4. Pour cela, vous devez désactiver l'extension ZIP interne ou bien recompiler PHP sans celle-ci.

Installation sous Windows

Installation lorsque l'extension est fournie avec PHP 4

Les utilisateurs de Windows doivent activer la bibliothèque php_zip.dll dans le php.ini pour pouvoir utiliser ces fonctions. En PHP 4, cette bibliothèque DLL se trouve dans le dossier extensions/ avec les binaires PHP pour Windows téléchargées. La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Note : Le support ZIP avant PHP 4.1.0 est expérimental. Cette section traite de l'extension ZIP tel qu'elle existe en PHP 4.1.0 et suivant.

Installation avec PECL ou fournie avec PHP 5.2 et suivant

Les utilisateurs de WIndows doivent activer la bibliothèque php_zip.dll dans le php.ini pour pouvoir utiliser ces fonctions. En PHP 4, cette bibliothèque DLL se trouve dans le dossier extensions/ avec les binaires PHP pour Windows téléchargées. La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Il y a deux types de ressources utilisées dans le module ZIP. La première représente le dossier ZIP pour l'archive ZIP, la seconde, l'entrée ZIP pour les entrées de l'archive.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

ZipArchive utilise des constantes de classe. Il y a trois types de constantes, les flags (FL_), les erreurs (ER_) ou les modes (no prefix).

ZIPARCHIVE::CREATE (entier)

Crée l'archive si elle n'existe pas.

ZIPARCHIVE::OVERWRITE (entier)

Démarre toujours une nouvelle archive. Ce mode écrase le fichier s'il existe déjà.

ZIPARCHIVE::EXCL (entier)

Erreur si l'archive existe déjà.

ZIPARCHIVE::CHECKCONS (entier)

Effectue des analyses supplémentaires de consistences et émet une erreur si elles échouent.

ZIPARCHIVE::FL_NOCASE (entier)

Ignore la casse sur le nom

ZIPARCHIVE::FL_NODIR (entier)

Ignore le composant dossier

ZIPARCHIVE::FL_COMPRESSED (entier)

Lit les données compressées

ZIPARCHIVE::FL_UNCHANGED (entier)

Utilise les données originales, ignore les modifications

ZIPARCHIVE::CM_DEFAULT (entier)

meilleur compression ou stocke

ZIPARCHIVE::CM_STORE (entier)

stocké (non-compressé)

ZIPARCHIVE::CM_SHRINK (entier)

retrait

ZIPARCHIVE::CM_REDUCE_1 (entier)

réduit de facteur 1

ZIPARCHIVE::CM_REDUCE_2 (entier)

réduit de facteur 2

ZIPARCHIVE::CM_REDUCE_3 (entier)

réduit de facteur 3

ZIPARCHIVE::CM_REDUCE_4 (entier)

réduit de facteur 4

ZIPARCHIVE::CM_IMPLODE (entier)

réunit

ZIPARCHIVE::CM_DEFLATE (entier)

compression

ZIPARCHIVE::CM_DEFLATE64 (entier)

compression 64

ZIPARCHIVE::CM_PKWARE_IMPLODE (entier)

réunit PKWARE

ZIPARCHIVE::CM_BZIP2 (entier)

algorithme BZIP2

ZIPARCHIVE::ER_OK (entier)

Aucune erreur

ZIPARCHIVE::ER_MULTIDISK (entier)

archives ZIP multi-disques non supportées

ZIPARCHIVE::ER_RENAME (entier)

échec du renommage du fichier temporaire

ZIPARCHIVE::ER_CLOSE (entier)

échec de la fermeture de l'archive ZIP

ZIPARCHIVE::ER_SEEK (entier)

erreur de pointeur

ZIPARCHIVE::ER_READ (entier)

erreur de lecture

ZIPARCHIVE::ER_WRITE (entier)

erreur d'écriture

ZIPARCHIVE::ER_CRC (entier)

erreur CRC

ZIPARCHIVE::ER_ZIPCLOSED (entier)

archive ZIP fermée

ZIPARCHIVE::ER_NOENT (entier)

le fichier n'existe pas

ZIPARCHIVE::ER_EXISTS (entier)

le fichier existe déjà

ZIPARCHIVE::ER_OPEN (entier)

impossible d'ouvrir le fichier

ZIPARCHIVE::ER_TMPOPEN (entier)

échec lors de la création du fichier temporaire

ZIPARCHIVE::ER_ZLIB (entier)

erreur Zlib

ZIPARCHIVE::ER_MEMORY (entier)

échec d'allocation mémoire

ZIPARCHIVE::ER_CHANGED (chaîne de caractères)

l'entrée a été modifiée

ZIPARCHIVE::ER_COMPNOTSUPP (entier)

méthode de compression non supportée

ZIPARCHIVE::ER_EOF (entier)

EOF prématuré

ZIPARCHIVE::ER_INVAL (entier)

argument invalide

ZIPARCHIVE::ER_NOZIP (entier)

ce n'est pas une archive ZIP

ZIPARCHIVE::ER_INTERNAL (entier)

erreur interne

ZIPARCHIVE::ER_INCONS (entier)

archive ZIP inconsistente

ZIPARCHIVE::ER_REMOVE (entier)

impossible d'effacer le fichier

ZIPARCHIVE::ER_DELETED (entier)

l'entrée a été supprimée

Exemples

Exemple 1. Création d'une archive ZIP

<?php

$zip = new ZipArchive();
$filename = "./test112.zip";

if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
    exit("cannot open <$filename>\n");
}

$zip->addFromString("testfilephp.txt" . time(), "#1 Ceci est un test, ajouté en tant que fichier testfilephp.txt.\n");
$zip->addFromString("testfilephp2.txt" . time(), "#2 Ceci est un test, ajouté en tant que fichier testfilephp2.txt.\n");
$zip->addFile($thisdir . "/too.php","/testfromfile.php");
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $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 "numFiles: " . $za->numFiles . "\n";
echo "status: " . $za->status  . "\n";
echo "statusSys: " . $za->statusSys . "\n";
echo "filename: " . $za->filename . "\n";
echo "comment: " . $za->comment . "\n";

for ($i=0; $i<$za->numFiles;$i++) {
    echo "index: $i\n";
    print_r($za->statIndex($i));
}
echo "Fichier numéro : " . $za->numFiles . "\n";
?>

Exemple 3. Gestionnaire de flux ZIP, lit les méta-informations d'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 leurs contenus. L'archive test2.zip utilisé dans cet exemple est une des archives de test des sources de ZZIPlib.

Exemple 4. Exemple d'utilisation 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 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);
}
?>
Table des matières
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
ZipArchive::addFile -- Ajoute un fichier à l'archive ZIP depuis le chemin fourni
ZipArchive::addFromString -- Ajoute un fichier à une archive ZIP en utilsant son contenu
ZipArchive::close -- Ferme l'archive active (ouverte ou nouvellement créée)
ZipArchive::deleteIndex -- Efface une entrée de l'archive en utilisant son index
ZipArchive::deleteName -- Efface une entrée dans l'archive en utilisant son nom
ZipArchive::extractTo -- Extrait le contenu de l'archive
ZipArchive::getArchiveComment -- Retourne le commentaire de l'archive ZIP
ZipArchive::getCommentIndex -- Retourne le commentaire d'une entrée
ZipArchive::getCommentName -- Retourne le commentaire d'une entrée en utilisant le nom de l'entrée
ZipArchive::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::getStream -- Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seul)
ZipArchive::locateName -- Retourne l'index d'une entrée de l'archive
ZipArchive::open -- Ouvre une archive ZIP
ZipArchive::renameIndex -- Renomme une entrée définie par son index
ZipArchive::renameName -- Renomme une entrée définie par son nom
ZipArchive::setArchiveComment -- Définit le commentaire d'une archive ZIP
ZipArchive::setCommentIndex -- Définit le commentaire d'une entrée définie par son index
ZipArchive::setCommentName -- Définit le commentaire d'une entrée spécifiée par son nom
ZipArchive::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 modificatons 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

Précédent | Sommaire | Suivant
yp_order | Niveau supérieur | zip_close


zip_close

(PHP 4 >= 4.1.0, PECL)

zip_close -- Ferme une archive Zip

Description

void zip_close ( resource zip )

zip_close() ferme l'archive ZIP donnée.

Liste de paramètres

zip

Un fichier ZIP précédemment ouvert avec la fonction zip_open().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

zip_open()
zip_read()

Précédent | Sommaire | Suivant
Fonctions ZIP | Niveau supérieur | zip_entry_close


zip_entry_close

(PHP 4 >= 4.1.0, PECL)

zip_entry_close -- Ferme un dossier d'archive

Description

bool zip_entry_close ( resource zip_entry )

zip_entry_close() ferme un dossier d'archive donné.

Liste de paramètres

zip_entry

Un dossier d'archive précédemment ouvert avec la fonction zip_entry_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

zip_entry_open()
zip_entry_read()

Précédent | Sommaire | Suivant
zip_close | Niveau supérieur | zip_entry_compressedsize


zip_entry_compressedsize

(PHP 4 >= 4.1.0, PECL)

zip_entry_compressedsize -- Lit la taille compressée d'un dossier d'archives

Description

int zip_entry_compressedsize ( resource zip_entry )

zip_entry_compressedsize() retourne la taille compressée d'un dossier d'archives donné.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

Valeurs de retour

La taille compressée.

Voir aussi

zip_open()
zip_read()

Précédent | Sommaire | Suivant
zip_entry_close | Niveau supérieur | zip_entry_compressionmethod


zip_entry_compressionmethod

(PHP 4 >= 4.1.0, PECL)

zip_entry_compressionmethod -- Lit la méthode de compression utilisée sur un dossier d'archives

Description

string zip_entry_compressionmethod ( resource zip_entry )

zip_entry_compressionmethod() retourne la méthode de compression utilisée sur le dossier d'archives spécifié par zip_entry.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

Valeurs de retour

La méthode de compression.

Voir aussi

zip_open()
zip_read()

Précédent | Sommaire | Suivant
zip_entry_compressedsize | Niveau supérieur | zip_entry_filesize


zip_entry_filesize

(PHP 4 >= 4.1.0, PECL)

zip_entry_filesize -- Lit la taille décompressée d'un dossier d'archives

Description

int zip_entry_filesize ( resource zip_entry )

zip_entry_filesize() retourne la taille décompressée d'un dossier d'archives donné.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

Valeurs de retour

La taille décompressée du dossier d'archives.

Voir aussi

zip_open()
zip_read()

Précédent | Sommaire | Suivant
zip_entry_compressionmethod | Niveau supérieur | zip_entry_name


zip_entry_name

(PHP 4 >= 4.1.0, PECL)

zip_entry_name -- Lit le nom d'un dossier d'archives

Description

string zip_entry_name ( resource zip_entry )

zip_entry_name() retourne le nom d'un dossier d'archives donné.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

Valeurs de retour

Le nom du dossier d'archives.

Voir aussi

zip_open()
zip_read()

Précédent | Sommaire | Suivant
zip_entry_filesize | Niveau supérieur | zip_entry_open


zip_entry_open

(PHP 4 >= 4.1.0, PECL)

zip_entry_open -- Ouvre un dossier d'archives en lecture

Description

bool zip_entry_open ( resource zip, resource zip_entry [, string mode] )

zip_entry_open() ouvre un dossier dans un fichier ZIP pour lecture.

Liste de paramètres

zip

Une ressource valide retournée par la fonction zip_open().

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

mode

Toutes les méthodes spécifiées dans la documentation de la fonction fopen().

Note : Actuellement, mode est ignoré et vaut toujours "rb". Cela est dû au fait que le support ZIP de PHP est uniquement en lecture seule.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Contrairement à fopen() et les autres fonctions de fichiers, la valeur retournée par zip_entry_open() indique uniquement le résultat de l'opération, et n'est pas nécessaire pour la lecture ou la fermeture du fichier de dossier d'archives.

Voir aussi

zip_entry_close()
zip_entry_read()

Précédent | Sommaire | Suivant
zip_entry_name | Niveau supérieur | zip_entry_read


zip_entry_read

(PHP 4 >= 4.1.0, PECL)

zip_entry_read -- Lit le contenu d'un fichier dans un dossier

Description

string zip_entry_read ( resource zip_entry [, int length] )

zip_entry_read() lit dans un dossier d'archives ouvert.

Liste de paramètres

zip_entry

Un dossier d'archives retourné par la fonction zip_read().

length

Le nombre d'octets à retourner. Si ce paramètre est omis, la fonction tentera de lire 1024 octets.

Note : Ceci doit être la taille non-compressée que vous voulez lire.

Valeurs de retour

Retourne les données lues ou FALSE si la fin du fichier est atteinte.

Voir aussi

zip_entry_open()
zip_entry_close()
zip_entry_filesize()

Précédent | Sommaire | Suivant
zip_entry_open | Niveau supérieur | zip_open


zip_open

(PHP 4 >= 4.1.0, PECL)

zip_open -- Ouvre une archive ZIP

Description

mixed zip_open ( string filename )

zip_open() ouvre une nouvelle archive ZIP pour lecture.

Liste de paramètres

filename

Le nom du fichier de l'archive ZIP à ouvrir.

Valeurs de retour

Retourne une ressource à utiliser plus tard avec les fonctions zip_read() et zip_close(), ou bien retourne le numéro de l'erreur si le paramètre filename n'existe pas ou dans le cas d'une autre erreur.

Voir aussi

zip_read()
zip_close()

Précédent | Sommaire | Suivant
zip_entry_read | Niveau supérieur | zip_read


zip_read

(PHP 4 >= 4.1.0, PECL)

zip_read -- Lit la prochaine entrée dans une archive ZIP

Description

mixed zip_read ( resource zip [, int flags] )

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

flags

Masque de constantes ZIP.

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 dans le cas d'une autre erreur.

Voir aussi

zip_open()
zip_close()
zip_entry_open()
zip_entry_read()

Précédent | Sommaire | Suivant
zip_open | Niveau supérieur | ZipArchive::addFile


Compression Zlib

Manuel PHP
Précédent Suivant

CLXXXVIII. Compression Zlib

Introduction

Ce module vous permet de lire et écrire de manière transparente des fichiers compressés gzip (.gz), avec la plupart des fonctions fichier qui fonctionnent avec les fichiers compressés en gzip (et les fichiers décompressés aussi, mais pas avec les sockets).

Note : La version 4.0.4 a introduit la version étendue de fopen() pour les fichiers compressés avec GZ. Vous pouvez utiliser le préfixe spécial zlib: dans les URL pour accéder directement et de manière transparente aux fichiers compressés par GZ, avec toutes les fonctions f*() habituelles. Cette fonctionnalité requiert une bibliothèque C qui fournit la fonction fopencookie(). A ma connaissance, la bibliothèque GNU libc est la seule à fournir cette fonctionnalité.

En version 4.3.0, zlib: a été changé pour compress.zlib:// pour éviter les ambiguités avec les fichiers contenant les caractères ':'. La fonction fopencookie() n'est plus nécessaire. Plus d'informations sont disponibles dans la section à propos des la section intitulée Flux compressés dans Annexe N.

Pré-requis

Ce module utilise les fonctions de la bibliothèque zlib de Jean-loup Gailly et Mark Adler. Vous devez utiliser zlib version >= 1.0.9 avec ce module.

Installation

Le support de Zlib dans PHP n'est pas activé par défaut. Vous devez compiler PHP avec l'option --with-zlib[=DIR].

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de bibliothèque supplémentaire pour disposer de ces fonctions.

Note : Le support intégré de zlib pour Windows est disponible depuis PHP 4.3.0.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

L'extension zlib offre l'option de compresser de manière transparente les pages PHP à la volée, si le navigateur du visiteur le supporte. Voici donc les trois options à utiliser dans le php.ini.

Tableau 1. Options de configuration

Nom | Par défaut | Modifiable | Historique
zlib.output_compression | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
zlib.output_compression_level | "-1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
zlib.output_handler | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

zlib.output_compression booléen/entier

Active ou pas la compression transparente des pages. Si cette option est mise à "On" dans php.ini ou dans la configuration Apache, les pages sont compressées si le navigateur envoie un en-tête "Accept-Encoding: gzip" ou "deflate". Les en-têtes "Content-Encoding: gzip" (respectivement "deflate") et "Vary: Accept-Encoding" sont ajoutés dans la page envoyée au navigateur. En fonctionnement, il peut être défini uniquement avant tout affichage.

Cette option accepte aussi des valeurs entières au lieu des booléens, "On"/"Off", ce qui vous permet de configurer la taille du tampon de sortie (par défaut, il vaut 4ko).

Note : output_handler doit être laissée à vide si cette option est activée. Sinon, vous devez utiliser zlib.output_handler.

zlib.output_compression_level entier

Niveau de compression utilisé pour la compression de sortie.

zlib.output_handler chaîne de caractères

Vous ne pouvez pas spécifier de gestionnaire de sortie supplémentaire si zlib.output_compression est activée. Cette configuration est la même que output_handler mais dans un ordre différent.

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.

FORCE_GZIP (entier)

FORCE_DEFLATE (entier)

Exemples

Cet exemple ouvre un fichier temporaire, écrit une page de test dedans, puis affiche le contenu du fichier deux fois.

Exemple 1. Exemple de l'extension Zlib

<?php

$filename = tempnam('/tmp', 'zlibtest') . '.gz';
echo "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "C'est juste un test, test, test, test, test, test, test, test!\n";

// ouvre le fichier en écriture avec la compression maximale
$zp = gzopen($filename, "w9");

// écrit une chaîne dans le fichier
gzwrite($zp, $s);

// ferme le fichier
gzclose($zp);

// ouvre le fichier en lecture
$zp = gzopen($filename, "r");

// lit 3 caractères
echo gzread($zp, 3);

// affiche le reste du fichier, puis le ferme
gzpassthru($zp);
gzclose($zp);

echo "\n";

// ouvre le fichier et affiche le fichier une seconde fois
if (readgzfile($filename) != strlen($s)) {
    echo "Erreur avec les fonctions zlib!";
}
unlink($filename);
echo "</pre>\n</body>\n</html>\n";

?>
Table des matières
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 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 -- Ecrit dans un fichier compressé gzip
readgzfile -- Lit tout le fichier compressé
zlib_get_coding_type -- Retourne la méhode de compression utilisée avec Gzip

Précédent | Sommaire | Suivant
ZipArchive::unchangeName | Niveau supérieur | gzclose


gzclose

(PHP 3, PHP 4, PHP 5)

gzclose -- Ferme un pointeur sur un fichier gz ouvert

Description

bool gzclose ( resource zp )

gzclose() referme le fichier compressé zp.

Liste de paramètres

zp

Le pointeur de fichier compressé. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec gzclose()

<?php
$gz = gzopen('somefile.gz','w9');
gzputs ($gz, 'Je suis ajouté à somefile.gz');
gzclose($gz);
?>

Voir aussi

gzopen()

Précédent | Sommaire | Suivant
Compression Zlib | Niveau supérieur | gzcompress


gzcompress

(PHP 4 >= 4.0.1, PHP 5)

gzcompress -- Compresse une chaîne

Description

string gzcompress ( string data [, int level] )

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.

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()
gzinflate()
gzuncompress()
gzencode()

Précédent | Sommaire | Suivant
gzclose | Niveau supérieur | gzdecode


gzdeflate

(PHP 4 >= 4.0.4, PHP 5)

gzdeflate -- Compresse une chaîne

Description

string gzdeflate ( string data [, int level] )

gzdeflate() compresse la chaîne donnée en utilisant le format de données DEFLATE.

Pour plus de détails concernant l'algorithme de compression DEFLATE, lisez le document "DEFLATE 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.

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()
gzcompress()
gzuncompress()
gzencode()

Précédent | Sommaire | Suivant
gzdecode | Niveau supérieur | gzencode


gzencode

(PHP 4 >= 4.0.4, PHP 5)

gzencode -- Crée une chaîne compressée gzip

Description

string gzencode ( string data [, int level [, int encoding_mode]] )

gzencode() retourne la version compressée de la chaîne data compatible avec la sortie du programme gzip.

Pour plus de détails sur le format de fichier GZIP, lisez le document : GZIP file format specification version 4.3 (RFC 1952).

Liste de paramètres

data

Les données à encoder.

level

Le degré de compression. 0 signifie aucune compression, jusqu'à 9 pour une compression maximale. Si omis, le degré de compression par défaut sera celui de la bibliothèque zlib.

encoding_mode

Le mode d'encodage. Peut être FORCE_GZIP (par défaut) ou FORCE_DEFLATE.

Si vous utilisez FORCE_DEFLATE, vous récupérez une chaîne standard zlib (incluant les en-têtes zlib) après l'en-tête de fichier gzip mais sans la somme de vérification (checksum) crc32 finale.

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 = implode("", file("bigfile.txt"));
$gzdata = gzencode($data, 9);
$fp = fopen("bigfile.txt.gz", "w");
fwrite($fp, $gzdata);
fclose($fp);
?>

Historique

Version | Description
4.2 | level a été ajouté. gzencode() n'avez que les paramètres data et encoding_mode (optionnel) avant.

Voir aussi

gzdecode()
gzdeflate()
gzinflate()
gzuncompress()
gzcompress()

Précédent | Sommaire | Suivant
gzdeflate | Niveau supérieur | gzeof


gzeof

(PHP 3, PHP 4, PHP 5)

gzeof -- Indique si la fin d'un fichier compressé est atteinte

Description

int gzeof ( resource zp )

gzeof() indique si la fin d'un fichier compressé est atteinte.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Retourne TRUE si le pointeur de fichier gz est à la fin du fichier 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);
?>

Précédent | Sommaire | Suivant
gzencode | Niveau supérieur | gzfile


gzfile

(PHP 3, PHP 4, PHP 5)

gzfile -- Lit la totalité d'un fichier compressé

Description

array gzfile ( string filename [, int use_include_path] )

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.

Exemples

Exemple 1. Exemple avec gzfile()

<?php
$lines = gzfile('somefile.gz');
foreach ($lines as $line) {
    echo $line;
}
?>

Voir aussi

readgzfile()
gzopen()

Précédent | Sommaire | Suivant
gzeof | Niveau supérieur | gzgetc


gzgetc

(PHP 3, PHP 4, PHP 5)

gzgetc -- Lit un caractère dans un fichier compressé

Description

string gzgetc ( resource zp )

gzgetc() retourne une chaîne contenant un seul caractère (décompressé) lu depuis le pointeur de fichier gz.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Le caractère décompressé ou FALSE si l'on a atteint la fin du fichier (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()
gzgets()

Précédent | Sommaire | Suivant
gzfile | Niveau supérieur | gzgets


gzgets

(PHP 3, PHP 4, PHP 5)

gzgets -- Lit une ligne dans un fichier compressé

Description

string gzgets ( resource zp, int length )

gzgets() retourne une chaîne non compressée, de taille maximale length - 1 octets, lue dans le fichier représenté par zp. La lecture s'arrête lorsque length - 1 octets ont été lus, ou que la fonction a rencontré une nouvelle ligne ou la fin du fichier (le premier des trois qui survient).

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

length

La longueur de données à lire.

Valeurs de retour

La chaîne décompressée ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec gzgets()

<?php
$handle = gzopen('somefile.gz', 'r');
while (!gzeof($handle)) {
   $buffer = gzgets($handle, 4096);
   echo $buffer;
}
gzclose($handle);
?>

Voir aussi

gzopen()
gzgetc()
gzwrite()

Précédent | Sommaire | Suivant
gzgetc | Niveau supérieur | gzgetss


gzgetss

(PHP 3, PHP 4, PHP 5)

gzgetss -- Lit une ligne dans un fichier compressé, et supprime les balises HTML

Description

string gzgetss ( resource zp, int length [, string allowable_tags] )

gzgetss() est identique à la fonction gzgets(), excepté que gzgetss() tente de supprimer toutes les balises HTML et PHP du texte lu.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

length

La longueur des données à récupérer.

allowable_tags

Vous pouvez utiliser ce paramètre optionnel pour spécifier les balises à ne pas supprimer.

Valeurs de retour

La chaîne décompressée et nettoyée ou FALSE si une erreur survient.

Historique

Version | Description
3.0.13 et 4.0.0 | allowable_tags a été ajoutée.

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()
gzgets()
strip_tags()

Précédent | Sommaire | Suivant
gzgets | Niveau supérieur | gzinflate


gzinflate

(PHP 4 >= 4.0.4, PHP 5)

gzinflate -- Décompresse une chaîne

Description

string gzinflate ( string data [, int length] )

gzinflate() décompresse une chaîne.

Liste de paramètres

data

Les données compressées avec la fonction gzdeflate().

length

La longueur maximale de données à décoder.

Valeurs de retour

Les données originales décompressées ou FALSE si une erreur survient.

gzinflate() retourne une erreur si la chaîne décompressée est plus de 32768 fois plus longue que la chaîne compressée data ou plus grande que la taille de length octets, passé comme paramètre optionnel.

Exemples

Exemple 1. Exemple avec gzinflate()

<?php
$compressed   = gzdeflate('Compresse moi', 9);
$uncompressed = gzinflate($compressed);
echo $uncompressed;
?>

Voir aussi

gzdeflate()
gzcompress()
gzuncompress()
gzencode()

Précédent | Sommaire | Suivant
gzgetss | Niveau supérieur | gzopen


gzopen

(PHP 3, PHP 4, PHP 5)

gzopen -- Ouvre un fichier compressé avec gzip

Description

resource gzopen ( string filename, string mode [, int use_include_path] )

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 le 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 descripteur 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()

Précédent | Sommaire | Suivant
gzinflate | Niveau supérieur | gzpassthru


gzpassthru

(PHP 3, PHP 4, PHP 5)

gzpassthru -- Affiche toutes les données qui restent dans un pointeur gz

Description

int gzpassthru ( resource zp )

gzpassthru() lit les données restantes du fichier zp jusqu'à la fin, puis affiche le résultat (décompressé).

Note : Vous pourriez avoir besoin d'appeler la fonction gzrewind() pour réinitialiser le pointeur de fichier au début du fichier si vous avez déjà écrit des données dedans.

Astuce : Si vous voulez uniquement afficher le contenu d'un fichier, sans le modifier auparavant ou sans déplacer le pointeur à une position particulière, vous devriez utiliser la fonction readgzfile(), ce qui vous évitera d'appeler la fonction gzopen().

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Le nombre de caractères décompressés lus depuis gz et affiché ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec gzpassthru()

<?php
$fp = gzopen('file.gz', 'r');
gzpassthru($fp);
gzclose($fp);
?>

Précédent | Sommaire | Suivant
gzopen | Niveau supérieur | gzputs


gzputs

(PHP 3, PHP 4, PHP 5)

gzputs -- Alias de gzwrite()

Description

Cette fonction est un alias de : gzwrite().

Précédent | Sommaire | Suivant
gzpassthru | Niveau supérieur | gzread


gzread

(PHP 3, PHP 4, PHP 5)

gzread -- Lecture de fichier compressé binaire

Description

string gzread ( resource zp, int length )

gzread() lit jusqu'à length octets dans le fichier compressé gzip, représenté par zp. La lecture s'arrête lorsque length octets (décompressés) ont été lus, ou que la fin du fichier a été atteinte.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

length

Le nombre d'octets lus.

Valeurs de retour

Les données qui ont été lues.

Exemples

Exemple 1. Exemple avec gzread()

<?php
// récupère le contenu d'un fichier gz dans une chaîne
$filename = "/usr/local/something.txt.gz";
$zd = gzopen($filename, "r");
$contents = gzread($zd, 10000);
gzclose($zd);
?>

Voir aussi

gzwrite()
gzopen()
gzgets()
gzgetss()
gzfile()
gzpassthru()

Précédent | Sommaire | Suivant
gzputs | Niveau supérieur | gzrewind


gzrewind

(PHP 3, PHP 4, PHP 5)

gzrewind -- Replace le pointeur au début du fichier

Description

bool gzrewind ( resource zp )

gzrewind() replace le pointeur de position du fichier zp au début de celui-ci.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

gzseek()
gztell()

Précédent | Sommaire | Suivant
gzread | Niveau supérieur | gzseek


gzseek

(PHP 3, PHP 4, PHP 5)

gzseek -- Déplace le pointeur de lecture

Description

int gzseek ( resource zp, int offset )

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êment lente. Si le fichier est ouvert en écriture, seuls les déplacements vers l'avant sont supportés : gzseek() compresse alors une série de zéros jusqu'à la nouvelle position.

Liste de paramètres

zp

Le pointeur de fichier gz. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

offset

La position désirée.

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

Précédent | Sommaire | Suivant
gzrewind | Niveau supérieur | gztell


gztell

(PHP 3, PHP 4, PHP 5)

gztell -- Lit la position courante du pointeur de lecture

Description

int gztell ( resource zp )

gztell() retourne la position du pointeur de lecture dans le fichier zp.

Liste de paramètres

zp

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

Valeurs de retour

La position du pointeur de fichier ou FALSE si une erreur survient.

Voir aussi

gzopen()
gzseek()
gzrewind()

Précédent | Sommaire | Suivant
gzseek | Niveau supérieur | gzuncompress


gzuncompress

(PHP 4 >= 4.0.1, PHP 5)

gzuncompress -- Décompresse une chaîne compressée

Description

string gzuncompress ( string data [, int length] )

gzuncompress() décompresse une chaîne compressée.

Liste de paramètres

data

Les données compressées par gzcompress().

length

La longueur maximale de données à décoder.

Valeurs de retour

Les données originales décompressées ou FALSE si une erreur survient.

gzuncompress() retourne une erreur si la chaîne décompressée est 32768 fois plus longue que la chaîne compressée data ou plus grande que la taille de length octets, passé comme paramètre optionnel.

Exemples

Exemple 1. Exemple avec gzuncompress()

<?php
$compressed   = gzcompress('Compresse moi', 9);
$uncompressed = gzuncompress($compressed);
echo $uncompressed;
?>

Voir aussi

gzcompress()
gzinflate()
gzdeflate()
gzencode()

Précédent | Sommaire | Suivant
gztell | Niveau supérieur | gzwrite


gzwrite

(PHP 3, PHP 4, PHP 5)

gzwrite -- Ecrit dans un fichier compressé gzip

Description

int gzwrite ( resource zp, string string [, int length] )

gzwrite() écrit le contenu de la chaîne string dans le fichier compressé zp.

Liste de paramètres

zp

Le pointeur de fichier. Il doit être valide et doit pointer vers un fichier ouvert avec succès grâce à la fonction gzopen().

string

La chaîne à écrire.

length

Le nombre d'octets décompressés à écrire. Si fournie, l'écriture s'arrêtera après length (décompressé) octets écrits ou si la fin de la chaîne string est atteinte ; celui qui sruvient le premier.

Note : Notez que si l'argument length est donné, alors l'option de configuration magic_quotes_runtime sera ignoré et aucun slash ne sera supprimé de la chaîne string.

Valeurs de retour

Retourne le nombre d'octets (décompressés) écrits dans le fichier gz donné.

Exemples

Exemple 1. Exemple avec gzwrite()

<?php
$string = 'Quelques informations à compresser';
$gz = gzopen('somefile.gz','w9');
gzwrite($gz, $string);
gzclose($gz);
?>

Voir aussi

gzread()
gzopen()

Précédent | Sommaire | Suivant
gzuncompress | Niveau supérieur | readgzfile


readgzfile

(PHP 3, PHP 4, PHP 5)

readgzfile -- Lit tout le fichier compressé

Description

int readgzfile ( string filename [, int use_include_path] )

readgzfile() lit le fichier filename, le décompresse et affiche le résultat.

readgzfile() peut aussi servir à lire un fichier qui n'est pas compressé : dans ce cas, readgzfile() va lire le fichier sans le décompresser.

Liste de paramètres

filename

Le nom du fichier. Ce fichier devra être ouvert depuis le système de fichiers et son contenu sera affiché.

use_include_path

Vous pouvez définir ce paramètre optionnel à 1, si vous voulez chercher le fichier également dans l'include_path.

Valeurs de retour

Retourne le nombre d'octets (décompressés) lus depuis le fichier. Si une erreur survient, FALSE est retourné et si la fonction n'a pas été appelée de cette façon : @readgzfile, un message d'erreur sera affiché.

Voir aussi

gzpassthru()
gzfile()
gzopen()

Précédent | Sommaire | Suivant
gzwrite | Niveau supérieur | zlib_get_coding_type


zlib_get_coding_type

(PHP 4 >= 4.3.2, PHP 5)

zlib_get_coding_type -- Retourne la méhode de compression utilisée avec Gzip

Description

string zlib_get_coding_type ( void )

zlib_get_coding_type() retourne la méhode de compression utilisée avec Gzip.

Valeurs de retour

Les valeurs possibles de retour sont gzip, deflate ou FALSE.

Voir aussi

La directive zlib.output_compression directive

Précédent | Sommaire | Suivant
readgzfile | Niveau supérieur | PHP et le moteur interne Zend


API Zend : Modification du coeur de PHP

Manuel PHP
Précédent Suivant

Chapitre 46. API Zend : Modification du coeur de PHP

Table des matières
Introduction
Overview
Extension Possibilities
Source Layout
PHP's Automatic Build System
Creating Extensions
Using Extensions
Troubleshooting
Source Discussion
Accepting Arguments
Creating Variables
Duplicating Variable Contents: The Copy Constructor
Returning Values
Printing Information
Startup and Shutdown Functions
Calling User Functions
Initialization File Support
Where to Go from Here
Reference: Some Configuration Macros
API Macros
API Function and Macro reference (work in progress)

Introduction

Those who know don't talk.

Those who talk don't know.

Sometimes, PHP "as is" simply isn't enough. Although these cases are rare for the average user, professional applications will soon lead PHP to the edge of its capabilities, in terms of either speed or functionality. New functionality cannot always be implemented natively due to language restrictions and inconveniences that arise when having to carry around a huge library of default code appended to every single script, so another method needs to be found for overcoming these eventual lacks in PHP.

As soon as this point is reached, it's time to touch the heart of PHP and take a look at its core, the C code that makes PHP go.

Avertissement

This information is currently rather outdated, parts of it only cover early stages of the ZendEngine 1.0 API as it was used in early versions of PHP 4.

More recent information may be found in the various README files that come with the PHP source and the Internals section on the Zend website.

Précédent | Sommaire | Suivant
Error handling | Niveau supérieur | Overview


Overview

"Extending PHP" is easier said than done. PHP has evolved to a full-fledged tool consisting of a few megabytes of source code, and to hack a system like this quite a few things have to be learned and considered. When structuring this chapter, we finally decided on the "learn by doing" approach. This is not the most scientific and professional approach, but the method that's the most fun and gives the best end results. In the following sections, you'll learn quickly how to get the most basic extensions to work almost instantly. After that, you'll learn about Zend's advanced API functionality. The alternative would have been to try to impart the functionality, design, tips, tricks, etc. as a whole, all at once, thus giving a complete look at the big picture before doing anything practical. Although this is the "better" method, as no dirty hacks have to be made, it can be very frustrating as well as energy- and time-consuming, which is why we've decided on the direct approach.

Note that even though this chapter tries to impart as much knowledge as possible about the inner workings of PHP, it's impossible to really give a complete guide to extending PHP that works 100% of the time in all cases. PHP is such a huge and complex package that its inner workings can only be understood if you make yourself familiar with it by practicing, so we encourage you to work with the source.

What Is Zend? and What Is PHP?

The name Zend refers to the language engine, PHP's core. The term PHP refers to the complete system as it appears from the outside. This might sound a bit confusing at first, but it's not that complicated (see Figure 46-1). To implement a Web script interpreter, you need three parts:

  1. The interpreter part analyzes the input code, translates it, and executes it.

  2. The functionality part implements the functionality of the language (its functions, etc.).

  3. The interface part talks to the Web server, etc.

Zend takes part 1 completely and a bit of part 2; PHP takes parts 2 and 3. Together they form the complete PHP package. Zend itself really forms only the language core, implementing PHP at its very basics with some predefined functions. PHP contains all the modules that actually create the language's outstanding capabilities.

Figure 46-1. The internal structure of PHP.

The following sections discuss where PHP can be extended and how it's done.

Précédent | Sommaire | Suivant
API Zend : Modification du coeur de PHP | Niveau supérieur | Extension Possibilities


Extension Possibilities

As shown in Figure 46-1 above, PHP can be extended primarily at three points: external modules, built-in modules, and the Zend engine. The following sections discuss these options.

External Modules

External modules can be loaded at script runtime using the function dl(). This function loads a shared object from disk and makes its functionality available to the script to which it's being bound. After the script is terminated, the external module is discarded from memory. This method has both advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
External modules don't require recompiling of PHP. | The shared objects need to be loaded every time a script is being executed (every hit), which is very slow.
The size of PHP remains small by "outsourcing" certain functionality. | External additional files clutter up the disk.
 | Every script that wants to use an external module's functionality has to specifically include a call to dl(), or the extension tag in php.ini needs to be modified (which is not always a suitable solution).

To sum up, external modules are great for third-party products, small additions to PHP that are rarely used, or just for testing purposes. To develop additional functionality quickly, external modules provide the best results. For frequent usage, larger implementations, and complex code, the disadvantages outweigh the advantages.

Third parties might consider using the extension tag in php.ini to create additional external modules to PHP. These external modules are completely detached from the main package, which is a very handy feature in commercial environments. Commercial distributors can simply ship disks or archives containing only their additional modules, without the need to create fixed and solid PHP binaries that don't allow other modules to be bound to them.

Built-in Modules

Built-in modules are compiled directly into PHP and carried around with every PHP process; their functionality is instantly available to every script that's being run. Like external modules, built-in modules have advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
No need to load the module specifically; the functionality is instantly available. | Changes to built-in modules require recompiling of PHP.
No external files clutter up the disk; everything resides in the PHP binary. | The PHP binary grows and consumes more memory.

Built-in modules are best when you have a solid library of functions that remains relatively unchanged, requires better than poor-to-average performance, or is used frequently by many scripts on your site. The need to recompile PHP is quickly compensated by the benefit in speed and ease of use. However, built-in modules are not ideal when rapid development of small additions is required.

The Zend Engine

Of course, extensions can also be implemented directly in the Zend engine. This strategy is good if you need a change in the language behavior or require special functions to be built directly into the language core. In general, however, modifications to the Zend engine should be avoided. Changes here result in incompatibilities with the rest of the world, and hardly anyone will ever adapt to specially patched Zend engines. Modifications can't be detached from the main PHP sources and are overridden with the next update using the "official" source repositories. Therefore, this method is generally considered bad practice and, due to its rarity, is not covered in this book.

Précédent | Sommaire | Suivant
Overview | Niveau supérieur | Source Layout


Source Layout

Note : Prior to working through the rest of this chapter, you should retrieve clean, unmodified source trees of your favorite Web server. We're working with Apache (available at http://www.apache.org/) and, of course, with PHP (available at http://www.php.net/ - does it need to be said?).

Make sure that you can compile a working PHP environment by yourself! We won't go into this issue here, however, as you should already have this most basic ability when studying this chapter.

Before we start discussing code issues, you should familiarize yourself with the source tree to be able to quickly navigate through PHP's files. This is a must-have ability to implement and debug extensions.

The following table describes the contents of the major directories.

Directory | Contents
php-src | Main PHP source files and main header files; here you'll find all of PHP's API definitions, macros, etc. (important). Everything else is below this directory.
php-src/ext | Repository for dynamic and built-in modules; by default, these are the "official" PHP modules that have been integrated into the main source tree. From PHP 4.0, it's possible to compile these standard extensions as dynamic loadable modules (at least, those that support it).
php-src/main | This directory contains the main php macros and definitions. (important)
php-src/pear | Directory for the PHP Extension and Application Repository. This directory contains core PEAR files.
php-src/sapi | Contains the code for the different server abstraction layers.
TSRM | Location of the "Thread Safe Resource Manager" (TSRM) for Zend and PHP.
ZendEngine2 | Location of the Zend Engine files; here you'll find all of Zend's API definitions, macros, etc. (important).

Discussing all the files included in the PHP package is beyond the scope of this chapter. However, you should take a close look at the following files:

  • php-src/main/php.h, located in the main PHP directory. This file contains most of PHP's macro and API definitions.

  • php-src/Zend/zend.h, located in the main Zend directory. This file contains most of Zend's macros and definitions.

  • php-src/Zend/zend_API.h, also located in the Zend directory, which defines Zend's API.

You should also follow some sub-inclusions from these files; for example, the ones relating to the Zend executor, the PHP initialization file support, and such. After reading these files, take the time to navigate around the package a little to see the interdependencies of all files and modules - how they relate to each other and especially how they make use of each other. This also helps you to adapt to the coding style in which PHP is authored. To extend PHP, you should quickly adapt to this style.

Extension Conventions

Zend is built using certain conventions; to avoid breaking its standards, you should follow the rules described in the following sections.

Macros

For almost every important task, Zend ships predefined macros that are extremely handy. The tables and figures in the following sections describe most of the basic functions, structures, and macros. The macro definitions can be found mainly in zend.h and zend_API.h. We suggest that you take a close look at these files after having studied this chapter. (Although you can go ahead and read them now, not everything will make sense to you yet.)

Memory Management

Resource management is a crucial issue, especially in server software. One of the most valuable resources is memory, and memory management should be handled with extreme care. Memory management has been partially abstracted in Zend, and you should stick to this abstraction for obvious reasons: Due to the abstraction, Zend gets full control over all memory allocations. Zend is able to determine whether a block is in use, automatically freeing unused blocks and blocks with lost references, and thus prevent memory leaks. The functions to be used are described in the following table:

Function | Description
emalloc() | Serves as replacement for malloc().
efree() | Serves as replacement for free().
estrdup() | Serves as replacement for strdup().
estrndup() | Serves as replacement for strndup(). Faster than estrdup() and binary-safe. This is the recommended function to use if you know the string length prior to duplicating it.
ecalloc() | Serves as replacement for calloc().
erealloc() | Serves as replacement for realloc().

emalloc(), estrdup(), estrndup(), ecalloc(), and erealloc() allocate internal memory; efree() frees these previously allocated blocks. Memory handled by the e*() functions is considered local to the current process and is discarded as soon as the script executed by this process is terminated.

Avertissement

To allocate resident memory that survives termination of the current script, you can use malloc() and free(). This should only be done with extreme care, however, and only in conjunction with demands of the Zend API; otherwise, you risk memory leaks.

Zend also features a thread-safe resource manager to provide better native support for multithreaded Web servers. This requires you to allocate local structures for all of your global variables to allow concurrent threads to be run. Because the thread-safe mode of Zend was not finished back when this was written, it is not yet extensively covered here.

Directory and File Functions

The following directory and file functions should be used in Zend modules. They behave exactly like their C counterparts, but provide virtual working directory support on the thread level.

Zend Function | Regular C Function
V_GETCWD() | getcwd()
V_FOPEN() | fopen()
V_OPEN() | open()
V_CHDIR() | chdir()
V_GETWD() | getwd()
V_CHDIR_FILE() | Takes a file path as an argument and changes the current working directory to that file's directory.
V_STAT() | stat()
V_LSTAT() | lstat()

String Handling

Strings are handled a bit differently by the Zend engine than other values such as integers, Booleans, etc., which don't require additional memory allocation for storing their values. If you want to return a string from a function, introduce a new string variable to the symbol table, or do something similar, you have to make sure that the memory the string will be occupying has previously been allocated, using the aforementioned e*() functions for allocation. (This might not make much sense to you yet; just keep it somewhere in your head for now - we'll get back to it shortly.)

Complex Types

Complex types such as arrays and objects require different treatment. Zend features a single API for these types - they're stored using hash tables.

Note : To reduce complexity in the following source examples, we're only working with simple types such as integers at first. A discussion about creating more advanced types follows later in this chapter.

Précédent | Sommaire | Suivant
Extension Possibilities | Niveau supérieur | PHP's Automatic Build System


PHP's Automatic Build System

PHP 4 features an automatic build system that's very flexible. All modules reside in a subdirectory of the ext directory. In addition to its own sources, each module consists of a config.m4 file, for extension configuration. (for example, see http://www.gnu.org/software/m4/manual/m4.html)

All these stub files are generated automatically, along with .cvsignore, by a little shell script named ext_skel that resides in the ext directory. As argument it takes the name of the module that you want to create. The shell script then creates a directory of the same name, along with the appropriate stub files.

Step by step, the process looks like this:

:~/cvs/php4/ext:> ./ext_skel --extname=my_module
Creating directory my_module
Creating basic files: config.m4 .cvsignore my_module.c php_my_module.h CREDITS EXPERIMENTAL tests/001.phpt my_module.php [done].

To use your new extension, you will have to execute the following steps:

1.  $ cd ..
2.  $ vi ext/my_module/config.m4
3.  $ ./buildconf
4.  $ ./configure --[with|enable]-my_module
5.  $ make
6.  $ ./php -f ext/my_module/my_module.php
7.  $ vi ext/my_module/my_module.c
8.  $ make

Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
This instruction creates the aforementioned files. To include the new module in the automatic configuration and build process, you have to run buildconf, which regenerates the configure script by searching through the ext directory and including all found config.m4 files.

The default config.m4 shown in Exemple 46-1 is a bit more complex:

Exemple 46-1. The default config.m4.

dnl $Id: build.xml,v 1.1 2005/08/21 16:27:06 goba Exp $
dnl config.m4 for extension my_module

dnl Comments in this file start with the string 'dnl'.
dnl Remove where necessary. This file will not work
dnl without editing.

dnl If your extension references something external, use with:

dnl PHP_ARG_WITH(my_module, for my_module support,
dnl Make sure that the comment is aligned:
dnl [  --with-my_module             Include my_module support])

dnl Otherwise use enable:

dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,
dnl Make sure that the comment is aligned:
dnl [  --enable-my_module           Enable my_module support])

if test "$PHP_MY_MODULE" != "no"; then
  dnl Write more examples of tests here...

  dnl # --with-my_module -> check with-path
  dnl SEARCH_PATH="/usr/local /usr"     # you might want to change this
  dnl SEARCH_FOR="/include/my_module.h"  # you most likely want to change this
  dnl if test -r $PHP_MY_MODULE/; then # path given as parameter
  dnl   MY_MODULE_DIR=$PHP_MY_MODULE
  dnl else # search default path list
  dnl   AC_MSG_CHECKING([for my_module files in default path])
  dnl   for i in $SEARCH_PATH ; do
  dnl     if test -r $i/$SEARCH_FOR; then
  dnl       MY_MODULE_DIR=$i
  dnl       AC_MSG_RESULT(found in $i)
  dnl     fi
  dnl   done
  dnl fi
  dnl
  dnl if test -z "$MY_MODULE_DIR"; then
  dnl   AC_MSG_RESULT([not found])
  dnl   AC_MSG_ERROR([Please reinstall the my_module distribution])
  dnl fi

  dnl # --with-my_module -> add include path
  dnl PHP_ADD_INCLUDE($MY_MODULE_DIR/include)

  dnl # --with-my_module -> chech for lib and symbol presence
  dnl LIBNAME=my_module # you may want to change this
  dnl LIBSYMBOL=my_module # you most likely want to change this

  dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
  dnl [
  dnl   PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $MY_MODULE_DIR/lib, MY_MODULE_SHARED_LIBADD)
  dnl   AC_DEFINE(HAVE_MY_MODULELIB,1,[ ])
  dnl ],[
  dnl   AC_MSG_ERROR([wrong my_module lib version or lib not found])
  dnl ],[
  dnl   -L$MY_MODULE_DIR/lib -lm -ldl
  dnl ])
  dnl
  dnl PHP_SUBST(MY_MODULE_SHARED_LIBADD)

  PHP_NEW_EXTENSION(my_module, my_module.c, $ext_shared)
fi

If you're unfamiliar with M4 files (now is certainly a good time to get familiar), this might be a bit confusing at first; but it's actually quite easy.

Note: Everything prefixed with dnl is treated as a comment and is not parsed.

The config.m4 file is responsible for parsing the command-line options passed to configure at configuration time. This means that it has to check for required external files and do similar configuration and setup tasks.

The default file creates two configuration directives in the configure script: --with-my_module and --enable-my_module. Use the first option when referring external files (such as the --with-apache directive that refers to the Apache directory). Use the second option when the user simply has to decide whether to enable your extension. Regardless of which option you use, you should uncomment the other, unnecessary one; that is, if you're using --enable-my_module, you should remove support for --with-my_module, and vice versa.

By default, the config.m4 file created by ext_skel accepts both directives and automatically enables your extension. Enabling the extension is done by using the PHP_EXTENSION macro. To change the default behavior to include your module into the PHP binary when desired by the user (by explicitly specifying --enable-my_module or --with-my_module), change the test for $PHP_MY_MODULE to == "yes":

if test "$PHP_MY_MODULE" == "yes"; then dnl
    Action.. PHP_EXTENSION(my_module, $ext_shared)
    fi
This would require you to use --enable-my_module each time when reconfiguring and recompiling PHP.

Note: Be sure to run buildconf every time you change config.m4!

We'll go into more details on the M4 macros available to your configuration scripts later in this chapter. For now, we'll simply use the default files.

Précédent | Sommaire | Suivant
Source Layout | Niveau supérieur | Creating Extensions


Creating Extensions

We'll start with the creation of a very simple extension at first, which basically does nothing more than implement a function that returns the integer it receives as parameter. Exemple 46-2 shows the source.

Exemple 46-2. A simple extension.

/* include standard header */
#include "php.h"

/* declaration of functions to be exported */
ZEND_FUNCTION(first_module);

/* compiled function list so Zend knows what's in this module */
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};

/* compiled module information */
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES
};

/* implement standard "stub" routine to introduce ourselves to Zend */
#if COMPILE_DL_FIRST_MODULE
ZEND_GET_MODULE(firstmod)
#endif

/* implement function that is meant to be made available to PHP */
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}

This code contains a complete PHP module. We'll explain the source code in detail shortly, but first we'd like to discuss the build process. (This will allow the impatient to experiment before we dive into API discussions.)

Note : The example source makes use of some features introduced with the Zend version used in PHP 4.1.0 and above, it won't compile with older PHP 4.0.x versions.

Compiling Modules

There are basically two ways to compile modules:

  • Use the provided "make" mechanism in the ext directory, which also allows building of dynamic loadable modules.

  • Compile the sources manually.

The first method should definitely be favored, since, as of PHP 4.0, this has been standardized into a sophisticated build process. The fact that it is so sophisticated is also its drawback, unfortunately - it's hard to understand at first. We'll provide a more detailed introduction to this later in the chapter, but first let's work with the default files.

The second method is good for those who (for some reason) don't have the full PHP source tree available, don't have access to all files, or just like to juggle with their keyboard. These cases should be extremely rare, but for the sake of completeness we'll also describe this method.

Compiling Using Make. To compile the sample sources using the standard mechanism, copy all their subdirectories to the ext directory of your PHP source tree. Then run buildconf, which will create an updated configure script containing appropriate options for the new extension. By default, all the sample sources are disabled, so you don't have to fear breaking your build process.

After you run buildconf, configure --help shows the following additional modules:

--enable-array_experiments   BOOK: Enables array experiments
  --enable-call_userland       BOOK: Enables userland module
  --enable-cross_conversion    BOOK: Enables cross-conversion module
  --enable-first_module        BOOK: Enables first module
  --enable-infoprint           BOOK: Enables infoprint module
  --enable-reference_test      BOOK: Enables reference test module
  --enable-resource_test       BOOK: Enables resource test module
  --enable-variable_creation   BOOK: Enables variable-creation module

The module shown earlier in Exemple 46-2 can be enabled with --enable-first_module or --enable-first_module=yes.

Compiling Manually. To compile your modules manually, you need the following commands:

Action | Command
Compiling | cc -fpic -DCOMPILE_DL_FIRST_MODULE=1 -I/usr/local/include -I. -I.. -I../Zend -c -o <your_object_file> <your_c_file>
Linking | cc -shared -L/usr/local/lib -rdynamic -o <your_module_file> <your_object_file(s)>

The command to compile the module simply instructs the compiler to generate position-independent code (-fpic shouldn't be omitted) and additionally defines the constant COMPILE_DL_FIRST_MODULE to tell the module code that it's compiled as a dynamically loadable module (the test module above checks for this; we'll discuss it shortly). After these options, it specifies a number of standard include paths that should be used as the minimal set to compile the source files.

Note: All include paths in the example are relative to the directory ext. If you're compiling from another directory, change the pathnames accordingly. Required items are the PHP directory, the Zend directory, and (if necessary), the directory in which your module resides.

The link command is also a plain vanilla command instructing linkage as a dynamic module.

You can include optimization options in the compilation command, although these have been omitted in this example (but some are included in the makefile template described in an earlier section).

Note: Compiling and linking manually as a static module into the PHP binary involves very long instructions and thus is not discussed here. (It's not very efficient to type all those commands.)

Précédent | Sommaire | Suivant
PHP's Automatic Build System | Niveau supérieur | Using Extensions


Using Extensions

Depending on the build process you selected, you should either end up with a new PHP binary to be linked into your Web server (or run as CGI), or with an .so (shared object) file. If you compiled the example file first_module.c as a shared object, your result file should be first_module.so. To use it, you first have to copy it to a place from which it's accessible to PHP. For a simple test procedure, you can copy it to your htdocs directory and try it with the source in Exemple 46-3. If you compiled it into the PHP binary, omit the call to dl(), as the module's functionality is instantly available to your scripts.

Avertissement

For security reasons, you should not put your dynamic modules into publicly accessible directories. Even though it can be done and it simplifies testing, you should put them into a separate directory in production environments.

Exemple 46-3. A test file for first_module.so.

<?php

// remove next comment if necessary
// dl("first_module.so");

$param = 2;
$return = first_module($param);

print("We sent '$param' and got '$return'");

?>

Calling this PHP file should output the following: We sent '2' and got '2'

If required, the dynamic loadable module is loaded by calling the dl() function. This function looks for the specified shared object, loads it, and makes its functions available to PHP. The module exports the function first_module(), which accepts a single parameter, converts it to an integer, and returns the result of the conversion.

If you've gotten this far, congratulations! You just built your first extension to PHP.

Précédent | Sommaire | Suivant
Creating Extensions | Niveau supérieur | Troubleshooting


Troubleshooting

Actually, not much troubleshooting can be done when compiling static or dynamic modules. The only problem that could arise is that the compiler will complain about missing definitions or something similar. In this case, make sure that all header files are available and that you specified their path correctly in the compilation command. To be sure that everything is located correctly, extract a clean PHP source tree and use the automatic build in the ext directory with the fresh files; this will guarantee a safe compilation environment. If this fails, try manual compilation.

PHP might also complain about missing functions in your module. (This shouldn't happen with the sample sources if you didn't modify them.) If the names of external functions you're trying to access from your module are misspelled, they'll remain as "unlinked symbols" in the symbol table. During dynamic loading and linkage by PHP, they won't resolve because of the typing errors - there are no corresponding symbols in the main binary. Look for incorrect declarations in your module file or incorrectly written external references. Note that this problem is specific to dynamic loadable modules; it doesn't occur with static modules. Errors in static modules show up at compile time.

Précédent | Sommaire | Suivant
Using Extensions | Niveau supérieur | Source Discussion


Source Discussion

Now that you've got a safe build environment and you're able to include the modules into PHP files, it's time to discuss how everything works.

Module Structure

All PHP modules follow a common structure:

  • Header file inclusions (to include all required macros, API definitions, etc.)

  • C declaration of exported functions (required to declare the Zend function block)

  • Declaration of the Zend function block

  • Declaration of the Zend module block

  • Implementation of get_module()

  • Implementation of all exported functions

Header File Inclusions

The only header file you really have to include for your modules is php.h, located in the PHP directory. This file makes all macros and API definitions required to build new modules available to your code.

Tip: It's good practice to create a separate header file for your module that contains module-specific definitions. This header file should contain all the forward definitions for exported functions and include php.h. If you created your module using ext_skel you already have such a header file prepared.

Declaring Exported Functions

To declare functions that are to be exported (i.e., made available to PHP as new native functions), Zend provides a set of macros. A sample declaration looks like this:

ZEND_FUNCTION ( my_function );

ZEND_FUNCTION declares a new C function that complies with Zend's internal API. This means that the function is of type void and accepts INTERNAL_FUNCTION_PARAMETERS (another macro) as parameters. Additionally, it prefixes the function name with zif. The immediately expanded version of the above definitions would look like this:

void zif_my_function ( INTERNAL_FUNCTION_PARAMETERS );
Expanding INTERNAL_FUNCTION_PARAMETERS results in the following:
void zif_my_function( int ht
                    , zval * return_value
                    , zval * this_ptr
                    , int return_value_used
                    , zend_executor_globals * executor_globals
                    );

Since the interpreter and executor core have been separated from the main PHP package, a second API defining macros and function sets has evolved: the Zend API. As the Zend API now handles quite a few of the responsibilities that previously belonged to PHP, a lot of PHP functions have been reduced to macros aliasing to calls into the Zend API. The recommended practice is to use the Zend API wherever possible, as the old API is only preserved for compatibility reasons. For example, the types zval and pval are identical. zval is Zend's definition; pval is PHP's definition (actually, pval is an alias for zval now). As the macro INTERNAL_FUNCTION_PARAMETERS is a Zend macro, the above declaration contains zval. When writing code, you should always use zval to conform to the new Zend API.

The parameter list of this declaration is very important; you should keep these parameters in mind (see Tableau 46-1 for descriptions).

Tableau 46-1. Zend's Parameters to Functions Called from PHP

Parameter | Description
ht | The number of arguments passed to the Zend function. You should not touch this directly, but instead use ZEND_NUM_ARGS() to obtain the value.
return_value | This variable is used to pass any return values of your function back to PHP. Access to this variable is best done using the predefined macros. For a description of these see below.
this_ptr | Using this variable, you can gain access to the object in which your function is contained, if it's used within an object. Use the function getThis() to obtain this pointer.
return_value_used | This flag indicates whether an eventual return value from this function will actually be used by the calling script. 0 indicates that the return value is not used; 1 indicates that the caller expects a return value. Evaluation of this flag can be done to verify correct usage of the function as well as speed optimizations in case returning a value requires expensive operations (for an example, see how array.c makes use of this).
executor_globals | This variable points to global settings of the Zend engine. You'll find this useful when creating new variables, for example (more about this later). The executor globals can also be introduced to your function by using the macro TSRMLS_FETCH().

Declaration of the Zend Function Block

Now that you have declared the functions to be exported, you also have to introduce them to Zend. Introducing the list of functions is done by using an array of zend_function_entry. This array consecutively contains all functions that are to be made available externally, with the function's name as it should appear in PHP and its name as defined in the C source. Internally, zend_function_entry is defined as shown in Exemple 46-4.

Exemple 46-4. Internal declaration of zend_function_entry.

typedef struct _zend_function_entry {
    char *fname;
    void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
    unsigned char *func_arg_types;
} zend_function_entry;

Entry | Description
fname | Denotes the function name as seen in PHP (for example, fopen, mysql_connect, or, in our example, first_module).
handler | Pointer to the C function responsible for handling calls to this function. For example, see the standard macro INTERNAL_FUNCTION_PARAMETERS discussed earlier.
func_arg_types | Allows you to mark certain parameters so that they're forced to be passed by reference. You usually should set this to NULL.

In the example above, the declaration looks like this:
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};
You can see that the last entry in the list always has to be {NULL, NULL, NULL}. This marker has to be set for Zend to know when the end of the list of exported functions is reached.

Note : You cannot use the predefined macros for the end marker, as these would try to refer to a function named "NULL"!

The macro ZEND_FE (short for 'Zend Function Entry') simply expands to a structure entry in zend_function_entry. Note that these macros introduce a special naming scheme to your functions - your C functions will be prefixed with zif_, meaning that ZEND_FE(first_module) will refer to a C function zif_first_module(). If you want to mix macro usage with hand-coded entries (not a good practice), keep this in mind.

Tip: Compilation errors that refer to functions named zif_*() relate to functions defined with ZEND_FE.

Tableau 46-2 shows a list of all the macros that you can use to define functions.

Tableau 46-2. Macros for Defining Functions

Macro Name | Description
ZEND_FE(name, arg_types) | Defines a function entry of the name name in zend_function_entry. Requires a corresponding C function. arg_types needs to be set to NULL. This function uses automatic C function name generation by prefixing the PHP function name with zif_. For example, ZEND_FE("first_module", NULL) introduces a function first_module() to PHP and links it to the C function zif_first_module(). Use in conjunction with ZEND_FUNCTION.
ZEND_NAMED_FE(php_name, name, arg_types) | Defines a function that will be available to PHP by the name php_name and links it to the corresponding C function name. arg_types needs to be set to NULL. Use this function if you don't want the automatic name prefixing introduced by ZEND_FE. Use in conjunction with ZEND_NAMED_FUNCTION.
ZEND_FALIAS(name, alias, arg_types) | Defines an alias named alias for name. arg_types needs to be set to NULL. Doesn't require a corresponding C function; refers to the alias target instead.
PHP_FE(name, arg_types) | Old PHP API equivalent of ZEND_FE.
PHP_NAMED_FE(runtime_name, name, arg_types) | Old PHP API equivalent of ZEND_NAMED_FE.

Note: You can't use ZEND_FE in conjunction with PHP_FUNCTION, or PHP_FE in conjunction with ZEND_FUNCTION. However, it's perfectly legal to mix ZEND_FE and ZEND_FUNCTION with PHP_FE and PHP_FUNCTION when staying with the same macro set for each function to be declared. But mixing is not recommended; instead, you're advised to use the ZEND_* macros only.

Declaration of the Zend Module Block

This block is stored in the structure zend_module_entry and contains all necessary information to describe the contents of this module to Zend. You can see the internal definition of this module in Exemple 46-5.

Exemple 46-5. Internal declaration of zend_module_entry.

typedef struct _zend_module_entry zend_module_entry;

    struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    char *name;
    zend_function_entry *functions;
    int (*module_startup_func)(INIT_FUNC_ARGS);
    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    int (*request_startup_func)(INIT_FUNC_ARGS);
    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
    char *version;

[ Rest of the structure is not interesting here ]

};

Entry | Description
size, zend_api, zend_debug and zts | Usually filled with the "STANDARD_MODULE_HEADER", which fills these four members with the size of the whole zend_module_entry, the ZEND_MODULE_API_NO, whether it is a debug build or normal build (ZEND_DEBUG) and if ZTS is enabled (USING_ZTS).
name | Contains the module name (for example, "File functions", "Socket functions", "Crypt", etc.). This name will show up in phpinfo(), in the section "Additional Modules."
functions | Points to the Zend function block, discussed in the preceding section.
module_startup_func | This function is called once upon module initialization and can be used to do one-time initialization steps (such as initial memory allocation, etc.). To indicate a failure during initialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINIT.
module_shutdown_func | This function is called once upon module shutdown and can be used to do one-time deinitialization steps (such as memory deallocation). This is the counterpart to module_startup_func(). To indicate a failure during deinitialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MSHUTDOWN.
request_startup_func | This function is called once upon every page request and can be used to do one-time initialization steps that are required to process a request. To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request startup function is called right after the module startup function (both initialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RINIT.
request_shutdown_func | This function is called once after every page request and works as counterpart to request_startup_func(). To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request shutdown function is immediately followed by a call to the module shutdown handler (both deinitialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RSHUTDOWN.
info_func | When phpinfo() is called in a script, Zend cycles through all loaded modules and calls this function. Every module then has the chance to print its own "footprint" into the output page. Generally this is used to dump environmental or statistical information. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINFO.
version | The version of the module. You can use NO_VERSION_YET if you don't want to give the module a version number yet, but we really recommend that you add a version string here. Such a version string can look like this (in chronological order): "2.5-dev", "2.5RC1", "2.5" or "2.5pl3".
Remaining structure elements | These are used internally and can be prefilled by using the macro STANDARD_MODULE_PROPERTIES_EX. You should not assign any values to them. Use STANDARD_MODULE_PROPERTIES_EX only if you use global startup and shutdown functions; otherwise, use STANDARD_MODULE_PROPERTIES directly.

In our example, this structure is implemented as follows:

zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL, NULL, NULL, NULL, NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES,
};
This is basically the easiest and most minimal set of values you could ever use. The module name is set to First Module, then the function list is referenced, after which all startup and shutdown functions are marked as being unused.

For reference purposes, you can find a list of the macros involved in declared startup and shutdown functions in Tableau 46-3. These are not used in our basic example yet, but will be demonstrated later on. You should make use of these macros to declare your startup and shutdown functions, as these require special arguments to be passed (INIT_FUNC_ARGS and SHUTDOWN_FUNC_ARGS), which are automatically included into the function declaration when using the predefined macros. If you declare your functions manually and the PHP developers decide that a change in the argument list is necessary, you'll have to change your module sources to remain compatible.

Tableau 46-3. Macros to Declare Startup and Shutdown Functions

Macro | Description
ZEND_MINIT(module) | Declares a function for module startup. The generated name will be zend_minit_<module> (for example, zend_minit_first_module). Use in conjunction with ZEND_MINIT_FUNCTION.
ZEND_MSHUTDOWN(module) | Declares a function for module shutdown. The generated name will be zend_mshutdown_<module> (for example, zend_mshutdown_first_module). Use in conjunction with ZEND_MSHUTDOWN_FUNCTION.
ZEND_RINIT(module) | Declares a function for request startup. The generated name will be zend_rinit_<module> (for example, zend_rinit_first_module). Use in conjunction with ZEND_RINIT_FUNCTION.
ZEND_RSHUTDOWN(module) | Declares a function for request shutdown. The generated name will be zend_rshutdown_<module> (for example, zend_rshutdown_first_module). Use in conjunction with ZEND_RSHUTDOWN_FUNCTION.
ZEND_MINFO(module) | Declares a function for printing module information, used when phpinfo() is called. The generated name will be zend_info_<module> (for example, zend_info_first_module). Use in conjunction with ZEND_MINFO_FUNCTION.

Creation of get_module()

This function is special to all dynamic loadable modules. Take a look at the creation via the ZEND_GET_MODULE macro first:

#if COMPILE_DL_FIRSTMOD
     ZEND_GET_MODULE(firstmod)
#endif

The function implementation is surrounded by a conditional compilation statement. This is needed since the function get_module() is only required if your module is built as a dynamic extension. By specifying a definition of COMPILE_DL_FIRSTMOD in the compiler command (see above for a discussion of the compilation instructions required to build a dynamic extension), you can instruct your module whether you intend to build it as a dynamic extension or as a built-in module. If you want a built-in module, the implementation of get_module() is simply left out.

get_module() is called by Zend at load time of the module. You can think of it as being invoked by the dl() call in your script. Its purpose is to pass the module information block back to Zend in order to inform the engine about the module contents.

If you don't implement a get_module() function in your dynamic loadable module, Zend will compliment you with an error message when trying to access it.

Implementation of All Exported Functions

Implementing the exported functions is the final step. The example function in first_module looks like this:

ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}
The function declaration is done using ZEND_FUNCTION, which corresponds to ZEND_FE in the function entry table (discussed earlier).

After the declaration, code for checking and retrieving the function's arguments, argument conversion, and return value generation follows (more on this later).

Summary

That's it, basically - there's nothing more to implementing PHP modules. Built-in modules are structured similarly to dynamic modules, so, equipped with the information presented in the previous sections, you'll be able to fight the odds when encountering PHP module source files.

Now, in the following sections, read on about how to make use of PHP's internals to build powerful extensions.

Précédent | Sommaire | Suivant
Troubleshooting | Niveau supérieur | Accepting Arguments


Accepting Arguments

One of the most important issues for language extensions is accepting and dealing with data passed via arguments. Most extensions are built to deal with specific input data (or require parameters to perform their specific actions), and function arguments are the only real way to exchange data between the PHP level and the C level. Of course, there's also the possibility of exchanging data using predefined global values (which is also discussed later), but this should be avoided by all means, as it's extremely bad practice.

PHP doesn't make use of any formal function declarations; this is why call syntax is always completely dynamic and never checked for errors. Checking for correct call syntax is left to the user code. For example, it's possible to call a function using only one argument at one time and four arguments the next time - both invocations are syntactically absolutely correct.

Determining the Number of Arguments

Since PHP doesn't have formal function definitions with support for call syntax checking, and since PHP features variable arguments, sometimes you need to find out with how many arguments your function has been called. You can use the ZEND_NUM_ARGS macro in this case. In previous versions of PHP, this macro retrieved the number of arguments with which the function has been called based on the function's hash table entry, ht, which is passed in the INTERNAL_FUNCTION_PARAMETERS list. As ht itself now contains the number of arguments that have been passed to the function, ZEND_NUM_ARGS has been stripped down to a dummy macro (see its definition in zend_API.h). But it's still good practice to use it, to remain compatible with future changes in the call interface. Note: The old PHP equivalent of this macro is ARG_COUNT.

The following code checks for the correct number of arguments:

if(ZEND_NUM_ARGS() != 2) WRONG_PARAM_COUNT;
If the function is not called with two arguments, it exits with an error message. The code snippet above makes use of the tool macro WRONG_PARAM_COUNT, which can be used to generate a standard error message like: "Warning: Wrong parameter count for firstmodule() in /home/www/htdocs/firstmod.php on line 5"

This macro prints a default error message and then returns to the caller. Its definition can also be found in zend_API.h and looks like this:

ZEND_API void wrong_param_count(void);

#define WRONG_PARAM_COUNT { wrong_param_count(); return; }
As you can see, it calls an internal function named wrong_param_count() that's responsible for printing the warning. For details on generating customized error messages, see the later section "Printing Information."

Retrieving Arguments

New parameter parsing API : This chapter documents the new Zend parameter parsing API introduced by Andrei Zmievski. It was introduced in the development stage between PHP 4.0.6 and 4.1.0 .

Parsing parameters is a very common operation and it may get a bit tedious. It would also be nice to have standardized error checking and error messages. Since PHP 4.1.0, there is a way to do just that by using the new parameter parsing API. It greatly simplifies the process of receiving parameters, but it has a drawback in that it can't be used for functions that expect variable number of parameters. But since the vast majority of functions do not fall into those categories, this parsing API is recommended as the new standard way.

The prototype for parameter parsing function looks like this:

int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
The first argument to this function is supposed to be the number of actual parameters passed to your function, so ZEND_NUM_ARGS() can be used for that. The second parameter should always be TSRMLS_CC macro. The third argument is a string that specifies the number and types of arguments your function is expecting, similar to how printf format string specifies the number and format of the output values it should operate on. And finally the rest of the arguments are pointers to variables which should receive the values from the parameters.

zend_parse_parameters() also performs type conversions whenever possible, so that you always receive the data in the format you asked for. Any type of scalar can be converted to another one, but conversions between complex types (arrays, objects, and resources) and scalar types are not allowed.

If the parameters could be obtained successfully and there were no errors during type conversion, the function will return SUCCESS, otherwise it will return FAILURE. The function will output informative error messages, if the number of received parameters does not match the requested number, or if type conversion could not be performed.

Here are some sample error messages:

Warning - ini_get_all() requires at most 1 parameter, 2 given
     Warning - wddx_deserialize() expects parameter 1 to be string, array given
Of course each error message is accompanied by the filename and line number on which it occurs.

Here is the full list of type specifiers:

  • l - long

  • d - double

  • s - string (with possible null bytes) and its length

  • b - boolean

  • r - resource, stored in zval*

  • a - array, stored in zval*

  • o - object (of any class), stored in zval*

  • O - object (of class specified by class entry), stored in zval*

  • z - the actual zval*

The following characters also have a meaning in the specifier string:

  • | - indicates that the remaining parameters are optional. The storage variables corresponding to these parameters should be initialized to default values by the extension, since they will not be touched by the parsing function if the parameters are not passed.

  • / - the parsing function will call SEPARATE_ZVAL_IF_NOT_REF() on the parameter it follows, to provide a copy of the parameter, unless it's a reference.

  • ! - the parameter it follows can be of specified type or NULL (only applies to a, o, O, r, and z). If NULL value is passed by the user, the storage pointer will be set to NULL.

The best way to illustrate the usage of this function is through examples:

/* Gets a long, a string and its length, and a zval. */
long l;
char *s;
int s_len;
zval *param;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "lsz", &l, &s, &s_len, &param) == FAILURE) {
    return;
}

/* Gets an object of class specified by my_ce, and an optional double. */
zval *obj;
double d = 0.5;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "O|d", &obj, my_ce, &d) == FAILURE) {
    return;
}

/* Gets an object or null, and an array.
   If null is passed for object, obj will be set to NULL. */
zval *obj;
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O!a", &obj, &arr) == FAILURE) {
    return;
}

/* Gets a separated array. */
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &arr) == FAILURE) {
    return;
}

/* Get only the first three parameters (useful for varargs functions). */
zval *z;
zend_bool b;
zval *r;
if (zend_parse_parameters(3, "zbr!", &z, &b, &r) == FAILURE) {
    return;
}

Note that in the last example we pass 3 for the number of received parameters, instead of ZEND_NUM_ARGS(). What this lets us do is receive the least number of parameters if our function expects a variable number of them. Of course, if you want to operate on the rest of the parameters, you will have to use zend_get_parameters_array_ex() to obtain them.

The parsing function has an extended version that allows for an additional flags argument that controls its actions.

int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);

The only flag you can pass currently is ZEND_PARSE_PARAMS_QUIET, which instructs the function to not output any error messages during its operation. This is useful for functions that expect several sets of completely different arguments, but you will have to output your own error messages.

For example, here is how you would get either a set of three longs or a string:

long l1, l2, l3;
char *s;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                             ZEND_NUM_ARGS() TSRMLS_CC,
                             "lll", &l1, &l2, &l3) == SUCCESS) {
    /* manipulate longs */
} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                                    ZEND_NUM_ARGS(), "s", &s, &s_len) == SUCCESS) {
    /* manipulate string */
} else {
    php_error(E_WARNING, "%s() takes either three long values or a string as argument",
              get_active_function_name(TSRMLS_C));
    return;
}

With all the abovementioned ways of receiving function parameters you should have a good handle on this process. For even more example, look through the source code for extensions that are shipped with PHP - they illustrate every conceivable situation.

Old way of retrieving arguments (deprecated)

Deprecated parameter parsing API : This API is deprecated and superseded by the new ZEND parameter parsing API.

After having checked the number of arguments, you need to get access to the arguments themselves. This is done with the help of zend_get_parameters_ex():

zval **parameter;

if(zend_get_parameters_ex(1, &parameter) != SUCCESS)
  WRONG_PARAM_COUNT;
All arguments are stored in a zval container, which needs to be pointed to twice. The snippet above tries to retrieve one argument and make it available to us via the parameter pointer.

zend_get_parameters_ex() accepts at least two arguments. The first argument is the number of arguments to retrieve (which should match the number of arguments with which the function has been called; this is why it's important to check for correct call syntax). The second argument (and all following arguments) are pointers to pointers to pointers to zvals. (Confusing, isn't it?) All these pointers are required because Zend works internally with **zval; to adjust a local **zval in our function,zend_get_parameters_ex() requires a pointer to it.

The return value of zend_get_parameters_ex() can either be SUCCESS or FAILURE, indicating (unsurprisingly) success or failure of the argument processing. A failure is most likely related to an incorrect number of arguments being specified, in which case you should exit with WRONG_PARAM_COUNT.

To retrieve more than one argument, you can use a similar snippet:

zval **param1, **param2, **param3, **param4;

if(zend_get_parameters_ex(4, &param1, &param2, &param3, &param4) != SUCCESS)
    WRONG_PARAM_COUNT;

zend_get_parameters_ex() only checks whether you're trying to retrieve too many parameters. If the function is called with five arguments, but you're only retrieving three of them with zend_get_parameters_ex(), you won't get an error but will get the first three parameters instead. Subsequent calls of zend_get_parameters_ex() won't retrieve the remaining arguments, but will get the same arguments again.

Dealing with a Variable Number of Arguments/Optional Parameters

If your function is meant to accept a variable number of arguments, the snippets just described are sometimes suboptimal solutions. You have to create a line calling zend_get_parameters_ex() for every possible number of arguments, which is often unsatisfying.

For this case, you can use the function zend_get_parameters_array_ex(), which accepts the number of parameters to retrieve and an array in which to store them:

zval **parameter_array[4];

/* get the number of arguments */
argument_count = ZEND_NUM_ARGS();

/* see if it satisfies our minimal request (2 arguments) */
/* and our maximal acceptance (4 arguments) */
if(argument_count < 2 || argument_count > 4)
    WRONG_PARAM_COUNT;

/* argument count is correct, now retrieve arguments */
if(zend_get_parameters_array_ex(argument_count, parameter_array) != SUCCESS)
    WRONG_PARAM_COUNT;
First, the number of arguments is checked to make sure that it's in the accepted range. After that, zend_get_parameters_array_ex() is used to fill parameter_array with valid pointers to the argument values.

A very clever implementation of this can be found in the code handling PHP's fsockopen() located in ext/standard/fsock.c, as shown in Exemple 46-6. Don't worry if you don't know all the functions used in this source yet; we'll get to them shortly.

Exemple 46-6. PHP's implementation of variable arguments in fsockopen().

pval **args[5];
int *sock=emalloc(sizeof(int));
int *sockp;
int arg_count=ARG_COUNT(ht);
int socketd = -1;
unsigned char udp = 0;
struct timeval timeout = { 60, 0 };
unsigned short portno;
unsigned long conv;
char *key = NULL;
FLS_FETCH();

if (arg_count > 5 || arg_count < 2 || zend_get_parameters_array_ex(arg_count,args)==FAILURE) {
    CLOSE_SOCK(1);
    WRONG_PARAM_COUNT;
}

switch(arg_count) {
    case 5:
        convert_to_double_ex(args[4]);
        conv = (unsigned long) (Z_DVAL_PP(args[4]) * 1000000.0);
        timeout.tv_sec = conv / 1000000;
        timeout.tv_usec = conv % 1000000;
        /* fall-through */
    case 4:
        if (!PZVAL_IS_REF(*args[3])) {
            php_error(E_WARNING,"error string argument to fsockopen not passed by reference");
        }
        pval_copy_constructor(*args[3]);
        ZVAL_EMPTY_STRING(*args[3]);
        /* fall-through */
    case 3:
        if (!PZVAL_IS_REF(*args[2])) {
            php_error(E_WARNING,"error argument to fsockopen not passed by reference");
            return;
        }
        ZVAL_LONG(*args[2], 0);
        break;
}

convert_to_string_ex(args[0]);
convert_to_long_ex(args[1]);
portno = (unsigned short) Z_LVAL_P(args[1]);

key = emalloc(Z_STRLEN_P(args[0]) + 10);

fsockopen() accepts two, three, four, or five parameters. After the obligatory variable declarations, the function checks for the correct range of arguments. Then it uses a fall-through mechanism in a switch() statement to deal with all arguments. The switch() statement starts with the maximum number of arguments being passed (five). After that, it automatically processes the case of four arguments being passed, then three, by omitting the otherwise obligatory break keyword in all stages. After having processed the last case, it exits the switch() statement and does the minimal argument processing needed if the function is invoked with only two arguments.

This multiple-stage type of processing, similar to a stairway, allows convenient processing of a variable number of arguments.

Accessing Arguments

To access arguments, it's necessary for each argument to have a clearly defined type. Again, PHP's extremely dynamic nature introduces some quirks. Because PHP never does any kind of type checking, it's possible for a caller to pass any kind of data to your functions, whether you want it or not. If you expect an integer, for example, the caller might pass an array, and vice versa - PHP simply won't notice.

To work around this, you have to use a set of API functions to force a type conversion on every argument that's being passed (see Tableau 46-4).

Note: All conversion functions expect a **zval as parameter.

Tableau 46-4. Argument Conversion Functions

Function | Description
convert_to_boolean_ex() | Forces conversion to a Boolean type. Boolean values remain untouched. Longs, doubles, and strings containing 0 as well as NULL values will result in Boolean 0 (FALSE). Arrays and objects are converted based on the number of entries or properties, respectively, that they have. Empty arrays and objects are converted to FALSE; otherwise, to TRUE. All other values result in a Boolean 1 (TRUE).
convert_to_long_ex() | Forces conversion to a long, the default integer type. NULL values, Booleans, resources, and of course longs remain untouched. Doubles are truncated. Strings containing an integer are converted to their corresponding numeric representation, otherwise resulting in 0. Arrays and objects are converted to 0 if empty, 1 otherwise.
convert_to_double_ex() | Forces conversion to a double, the default floating-point type. NULL values, Booleans, resources, longs, and of course doubles remain untouched. Strings containing a number are converted to their corresponding numeric representation, otherwise resulting in 0.0. Arrays and objects are converted to 0.0 if empty, 1.0 otherwise.
convert_to_string_ex() | Forces conversion to a string. Strings remain untouched. NULL values are converted to an empty string. Booleans containing TRUE are converted to "1", otherwise resulting in an empty string. Longs and doubles are converted to their corresponding string representation. Arrays are converted to the string "Array" and objects to the string "Object".
convert_to_array_ex(value) | Forces conversion to an array. Arrays remain untouched. Objects are converted to an array by assigning all their properties to the array table. All property names are used as keys, property contents as values. NULL values are converted to an empty array. All other values are converted to an array that contains the specific source value in the element with the key 0.
convert_to_object_ex(value) | Forces conversion to an object. Objects remain untouched. NULL values are converted to an empty object. Arrays are converted to objects by introducing their keys as properties into the objects and their values as corresponding property contents in the object. All other types result in an object with the property scalar , having the corresponding source value as content.
convert_to_null_ex(value) | Forces the type to become a NULL value, meaning empty.

Note : You can find a demonstration of the behavior in cross_conversion.php on the accompanying CD-ROM. Figure 46-2 shows the output.

Figure 46-2. Cross-conversion behavior of PHP.

Using these functions on your arguments will ensure type safety for all data that's passed to you. If the supplied type doesn't match the required type, PHP forces dummy contents on the resulting value (empty strings, arrays, or objects, 0 for numeric values, FALSE for Booleans) to ensure a defined state.

Following is a quote from the sample module discussed previously, which makes use of the conversion functions:

zval **parameter;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &parameter) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

convert_to_long_ex(parameter);

RETURN_LONG(Z_LVAL_P(parameter));
After retrieving the parameter pointer, the parameter value is converted to a long (an integer), which also forms the return value of this function. Understanding access to the contents of the value requires a short discussion of the zval type, whose definition is shown in Exemple 46-7.

Exemple 46-7. PHP/Zend zval type definition.

typedef pval zval;

typedef struct _zval_struct zval;

typedef union _zvalue_value {
    long lval;					/* long value */
    double dval;				/* double value */
    struct {
        char *val;
        int len;
    } str;
    HashTable *ht;				/* hash table value */
    struct {
        zend_class_entry *ce;
        HashTable *properties;
    } obj;
} zvalue_value;

struct _zval_struct {
    /* Variable information */
    zvalue_value value;		/* value */
    unsigned char type;	/* active type */
    unsigned char is_ref;
    short refcount;
};

Actually, pval (defined in php.h) is only an alias of zval (defined in zend.h), which in turn refers to _zval_struct. This is a most interesting structure. _zval_struct is the "master" structure, containing the value structure, type, and reference information. The substructure zvalue_value is a union that contains the variable's contents. Depending on the variable's type, you'll have to access different members of this union. For a description of both structures, see Tableau 46-5, Tableau 46-6 and Tableau 46-7.

Tableau 46-5. Zend zval Structure

Entry | Description
value | Union containing this variable's contents. See Tableau 46-6 for a description.
type | Contains this variable's type. For a list of available types, see Tableau 46-7.
is_ref | 0 means that this variable is not a reference; 1 means that this variable is a reference to another variable.
refcount | The number of references that exist for this variable. For every new reference to the value stored in this variable, this counter is increased by 1. For every lost reference, this counter is decreased by 1. When the reference counter reaches 0, no references exist to this value anymore, which causes automatic freeing of the value.

Tableau 46-6. Zend zvalue_value Structure

Entry | Description
lval | Use this property if the variable is of the type IS_LONG, IS_BOOLEAN, or IS_RESOURCE.
dval | Use this property if the variable is of the type IS_DOUBLE.
str | This structure can be used to access variables of the type IS_STRING. The member len contains the string length; the member val points to the string itself. Zend uses C strings; thus, the string length contains a trailing 0x00.
ht | This entry points to the variable's hash table entry if the variable is an array.
obj | Use this property if the variable is of the type IS_OBJECT.

Tableau 46-7. Zend Variable Type Constants

Constant | Description
IS_NULL | Denotes a NULL (empty) value.
IS_LONG | A long (integer) value.
IS_DOUBLE | A double (floating point) value.
IS_STRING | A string.
IS_ARRAY | Denotes an array.
IS_OBJECT | An object.
IS_BOOL | A Boolean value.
IS_RESOURCE | A resource (for a discussion of resources, see the appropriate section below).
IS_CONSTANT | A constant (defined) value.

To access a long you access zval.value.lval, to access a double you use zval.value.dval, and so on. Because all values are stored in a union, trying to access data with incorrect union members results in meaningless output.

Accessing arrays and objects is a bit more complicated and is discussed later.

Dealing with Arguments Passed by Reference

If your function accepts arguments passed by reference that you intend to modify, you need to take some precautions.

What we didn't say yet is that under the circumstances presented so far, you don't have write access to any zval containers designating function parameters that have been passed to you. Of course, you can change any zval containers that you created within your function, but you mustn't change any zvals that refer to Zend-internal data!

We've only discussed the so-called *_ex() API so far. You may have noticed that the API functions we've used are called zend_get_parameters_ex() instead of zend_get_parameters(), convert_to_long_ex() instead of convert_to_long(), etc. The *_ex() functions form the so-called new "extended" Zend API. They give a minor speed increase over the old API, but as a tradeoff are only meant for providing read-only access.

Because Zend works internally with references, different variables may reference the same value. Write access to a zval container requires this container to contain an isolated value, meaning a value that's not referenced by any other containers. If a zval container were referenced by other containers and you changed the referenced zval, you would automatically change the contents of the other containers referencing this zval (because they'd simply point to the changed value and thus change their own value as well).

zend_get_parameters_ex() doesn't care about this situation, but simply returns a pointer to the desired zval containers, whether they consist of references or not. Its corresponding function in the traditional API, zend_get_parameters(), immediately checks for referenced values. If it finds a reference, it creates a new, isolated zval container; copies the referenced data into this newly allocated space; and then returns a pointer to the new, isolated value.

This action is called zval separation (or pval separation). Because the *_ex() API doesn't perform zval separation, it's considerably faster, while at the same time disabling write access.

To change parameters, however, write access is required. Zend deals with this situation in a special way: Whenever a parameter to a function is passed by reference, it performs automatic zval separation. This means that whenever you're calling a function like this in PHP, Zend will automatically ensure that $parameter is being passed as an isolated value, rendering it to a write-safe state:

my_function(&$parameter);

But this is not the case with regular parameters! All other parameters that are not passed by reference are in a read-only state.

This requires you to make sure that you're really working with a reference - otherwise you might produce unwanted results. To check for a parameter being passed by reference, you can use the macro PZVAL_IS_REF. This macro accepts a zval* to check if it is a reference or not. Examples are given in in Exemple 46-8.

Exemple 46-8. Testing for referenced parameter passing.

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
    return;

/* check for parameter being passed by reference */
if (!PZVAL_IS_REF(parameter)) {
{
    zend_error(E_WARNING, "Parameter wasn't passed by reference");
    RETURN_NULL();
}

/* make changes to the parameter */
ZVAL_LONG(parameter, 10);

Assuring Write Safety for Other Parameters

You might run into a situation in which you need write access to a parameter that's retrieved with zend_get_parameters_ex() but not passed by reference. For this case, you can use the macro SEPARATE_ZVAL, which does a zval separation on the provided container. The newly generated zval is detached from internal data and has only a local scope, meaning that it can be changed or destroyed without implying global changes in the script context:

zval **parameter;

/* retrieve parameter */
zend_get_parameters_ex(1, &parameter);

/* at this stage, <parameter> still is connected */
/* to Zend's internal data buffers */

/* make <parameter> write-safe */
SEPARATE_ZVAL(parameter);

/* now we can safely modify <parameter> */
/* without implying global changes */
SEPARATE_ZVAL uses emalloc() to allocate the new zval container, which means that even if you don't deallocate this memory yourself, it will be destroyed automatically upon script termination. However, doing a lot of calls to this macro without freeing the resulting containers will clutter up your RAM.

Note: As you can easily work around the lack of write access in the "traditional" API (with zend_get_parameters() and so on), this API seems to be obsolete, and is not discussed further in this chapter.

Précédent | Sommaire | Suivant
Source Discussion | Niveau supérieur | Creating Variables


Creating Variables

When exchanging data from your own extensions with PHP scripts, one of the most important issues is the creation of variables. This section shows you how to deal with the variable types that PHP supports.

Overview

To create new variables that can be seen "from the outside" by the executing script, you need to allocate a new zval container, fill this container with meaningful values, and then introduce it to Zend's internal symbol table. This basic process is common to all variable creations:

zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
ZEND_SET_SYMBOL(EG(active_symbol_table), "new_variable_name", new_variable);

/* the variable is now accessible to the script by using $new_variable_name */

The macro MAKE_STD_ZVAL allocates a new zval container using ALLOC_ZVAL and initializes it using INIT_ZVAL. As implemented in Zend at the time of this writing, initializing means setting the reference count to 1 and clearing the is_ref flag, but this process could be extended later - this is why it's a good idea to keep using MAKE_STD_ZVAL instead of only using ALLOC_ZVAL. If you want to optimize for speed (and you don't have to explicitly initialize the zval container here), you can use ALLOC_ZVAL, but this isn't recommended because it doesn't ensure data integrity.

ZEND_SET_SYMBOL takes care of introducing the new variable to Zend's symbol table. This macro checks whether the value already exists in the symbol table and converts the new symbol to a reference if so (with automatic deallocation of the old zval container). This is the preferred method if speed is not a crucial issue and you'd like to keep memory usage low.

Note that ZEND_SET_SYMBOL makes use of the Zend executor globals via the macro EG. By specifying EG(active_symbol_table), you get access to the currently active symbol table, dealing with the active, local scope. The local scope may differ depending on whether the function was invoked from within a function.

If you need to optimize for speed and don't care about optimal memory usage, you can omit the check for an existing variable with the same value and instead force insertion into the symbol table by using zend_hash_update():

zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
zend_hash_update(
    EG(active_symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
This is actually the standard method used in most modules.

The variables generated with the snippet above will always be of local scope, so they reside in the context in which the function has been called. To create new variables in the global scope, use the same method but refer to another symbol table:

zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
ZEND_SET_SYMBOL(&EG(symbol_table), "new_variable_name", new_variable);
The macro ZEND_SET_SYMBOL is now being called with a reference to the main, global symbol table by referring EG(symbol_table).

Note: The active_symbol_table variable is a pointer, but symbol_table is not. This is why you have to use EG(active_symbol_table) and &EG(symbol_table) as parameters to ZEND_SET_SYMBOL - it requires a pointer.

Similarly, to get a more efficient version, you can hardcode the symbol table update:

zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
zend_hash_update(
    &EG(symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
Exemple 46-9 shows a sample source that creates two variables - local_variable with a local scope and global_variable with a global scope (see Figure 9.7). The full example can be found on the CD-ROM.

Note: You can see that the global variable is actually not accessible from within the function. This is because it's not imported into the local scope using global $global_variable; in the PHP source.

Exemple 46-9. Creating variables with different scopes.

ZEND_FUNCTION(variable_creation)
{
    zval *new_var1, *new_var2;

    MAKE_STD_ZVAL(new_var1);
    MAKE_STD_ZVAL(new_var2);

    ZVAL_LONG(new_var1, 10);
    ZVAL_LONG(new_var2, 5);

    ZEND_SET_SYMBOL(EG(active_symbol_table), "local_variable", new_var1);
    ZEND_SET_SYMBOL(&EG(symbol_table), "global_variable", new_var2);

    RETURN_NULL();

}

Longs (Integers)

Now let's get to the assignment of data to variables, starting with longs. Longs are PHP's integers and are very simple to store. Looking at the zval.value container structure discussed earlier in this chapter, you can see that the long data type is directly contained in the union, namely in the lval field. The corresponding type value for longs is IS_LONG (see Exemple 46-10).

Exemple 46-10. Creation of a long.

zval *new_long;

MAKE_STD_ZVAL(new_long);

new_long->type = IS_LONG;
new_long->value.lval = 10;
Alternatively, you can use the macro ZVAL_LONG:
zval *new_long;

MAKE_STD_ZVAL(new_long);
ZVAL_LONG(new_long, 10);

Doubles (Floats)

Doubles are PHP's floats and are as easy to assign as longs, because their value is also contained directly in the union. The member in the zval.value container is dval; the corresponding type is IS_DOUBLE.

zval *new_double;

MAKE_STD_ZVAL(new_double);

new_double->type = IS_DOUBLE;
new_double->value.dval = 3.45;
Alternatively, you can use the macro ZVAL_DOUBLE:
zval *new_double;

MAKE_STD_ZVAL(new_double);
ZVAL_DOUBLE(new_double, 3.45);

Strings

Strings need slightly more effort. As mentioned earlier, all strings that will be associated with Zend's internal data structures need to be allocated using Zend's own memory-management functions. Referencing of static strings or strings allocated with standard routines is not allowed. To assign strings, you have to access the structure str in the zval.value container. The corresponding type is IS_STRING:

zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);

new_string->type = IS_STRING;
new_string->value.str.len = strlen(string_contents);
new_string->value.str.val = estrdup(string_contents);
Note the usage of Zend's estrdup() here. Of course, you can also use the predefined macro ZVAL_STRING:
zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);
ZVAL_STRING(new_string, string_contents, 1);
ZVAL_STRING accepts a third parameter that indicates whether the supplied string contents should be duplicated (using estrdup()). Setting this parameter to 1 causes the string to be duplicated; 0 simply uses the supplied pointer for the variable contents. This is most useful if you want to create a new variable referring to a string that's already allocated in Zend internal memory.

If you want to truncate the string at a certain position or you already know its length, you can use ZVAL_STRINGL(zval, string, length, duplicate), which accepts an explicit string length to be set for the new string. This macro is faster than ZVAL_STRING and also binary-safe.

To create empty strings, set the string length to 0 and use empty_string as contents:

new_string->type = IS_STRING;
new_string->value.str.len = 0;
new_string->value.str.val = empty_string;
Of course, there's a macro for this as well (ZVAL_EMPTY_STRING):
MAKE_STD_ZVAL(new_string);
ZVAL_EMPTY_STRING(new_string);

Booleans

Booleans are created just like longs, but have the type IS_BOOL. Allowed values in lval are 0 and 1:

zval *new_bool;

MAKE_STD_ZVAL(new_bool);

new_bool->type = IS_BOOL;
new_bool->value.lval = 1;
The corresponding macros for this type are ZVAL_BOOL (allowing specification of the value) as well as ZVAL_TRUE and ZVAL_FALSE (which explicitly set the value to TRUE and FALSE, respectively).

Arrays

Arrays are stored using Zend's internal hash tables, which can be accessed using the zend_hash_*() API. For every array that you want to create, you need a new hash table handle, which will be stored in the ht member of the zval.value container.

There's a whole API solely for the creation of arrays, which is extremely handy. To start a new array, you call array_init().

zval *new_array;

MAKE_STD_ZVAL(new_array);

array_init(new_array);
array_init() always returns SUCCESS.

To add new elements to the array, you can use numerous functions, depending on what you want to do. Tableau 46-8, Tableau 46-9 and Tableau 46-10 describe these functions. All functions return FAILURE on failure and SUCCESS on success.

Tableau 46-8. Zend's API for Associative Arrays

Function | Description
add_assoc_long(zval *array, char *key, long n);() | Adds an element of type long.
add_assoc_unset(zval *array, char *key);() | Adds an unset element.
add_assoc_bool(zval *array, char *key, int b);() | Adds a Boolean element.
add_assoc_resource(zval *array, char *key, int r);() | Adds a resource to the array.
add_assoc_double(zval *array, char *key, double d);() | Adds a floating-point value.
add_assoc_string(zval *array, char *key, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_assoc_stringl(zval *array, char *key, char *str, uint length, int duplicate); () | Adds a string with the desired length length to the array. Otherwise, behaves like add_assoc_string().
add_assoc_zval(zval *array, char *key, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

Tableau 46-9. Zend's API for Indexed Arrays, Part 1

Function | Description
add_index_long(zval *array, uint idx, long n);() | Adds an element of type long.
add_index_unset(zval *array, uint idx);() | Adds an unset element.
add_index_bool(zval *array, uint idx, int b);() | Adds a Boolean element.
add_index_resource(zval *array, uint idx, int r);() | Adds a resource to the array.
add_index_double(zval *array, uint idx, double d);() | Adds a floating-point value.
add_index_string(zval *array, uint idx, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_index_stringl(zval *array, uint idx, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string().
add_index_zval(zval *array, uint idx, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

Tableau 46-10. Zend's API for Indexed Arrays, Part 2

Function | Description
add_next_index_long(zval *array, long n);() | Adds an element of type long.
add_next_index_unset(zval *array);() | Adds an unset element.
add_next_index_bool(zval *array, int b);() | Adds a Boolean element.
add_next_index_resource(zval *array, int r);() | Adds a resource to the array.
add_next_index_double(zval *array, double d);() | Adds a floating-point value.
add_next_index_string(zval *array, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_next_index_stringl(zval *array, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string().
add_next_index_zval(zval *array, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

All these functions provide a handy abstraction to Zend's internal hash API. Of course, you can also use the hash functions directly - for example, if you already have a zval container allocated that you want to insert into an array. This is done using zend_hash_update() for associative arrays (see Exemple 46-11) and zend_hash_index_update() for indexed arrays (see Exemple 46-12):

Exemple 46-11. Adding an element to an associative array.

zval *new_array, *new_element;
char *key = "element_key";

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_update(new_array->value.ht, key, strlen(key) + 1, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

Exemple 46-12. Adding an element to an indexed array.

zval *new_array, *new_element;
int key = 2;

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_index_update(new_array->value.ht, key, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

To emulate the functionality of add_next_index_*(), you can use this:

zend_hash_next_index_insert(ht, zval **new_element, sizeof(zval *), NULL)

Note: To return arrays from a function, use array_init() and all following actions on the predefined variable return_value (given as argument to your exported function; see the earlier discussion of the call interface). You do not have to use MAKE_STD_ZVAL on this.

Tip: To avoid having to write new_array->value.ht every time, you can use HASH_OF(new_array), which is also recommended for compatibility and style reasons.

Objects

Since objects can be converted to arrays (and vice versa), you might have already guessed that they have a lot of similarities to arrays in PHP. Objects are maintained with the same hash functions, but there's a different API for creating them.

To initialize an object, you use the function object_init():

zval *new_object;

MAKE_STD_ZVAL(new_object);

if(object_init(new_object) != SUCCESS)
{
    // do error handling here
}
You can use the functions described in Tableau 46-11 to add members to your object.

Tableau 46-11. Zend's API for Object Creation

Function | Description
add_property_long(zval *object, char *key, long l);() | Adds a long to the object.
add_property_unset(zval *object, char *key);() | Adds an unset property to the object.
add_property_bool(zval *object, char *key, int b);() | Adds a Boolean to the object.
add_property_resource(zval *object, char *key, long r);() | Adds a resource to the object.
add_property_double(zval *object, char *key, double d);() | Adds a double to the object.
add_property_string(zval *object, char *key, char *str, int duplicate);() | Adds a string to the object.
add_property_stringl(zval *object, char *key, char *str, uint length, int duplicate);() | Adds a string of the specified length to the object. This function is faster than add_property_string() and also binary-safe.
add_property_zval(zval *obect, char *key, zval *container):() | Adds a zval container to the object. This is useful if you have to add properties which aren't simple types like integers or strings but arrays or other objects.

Resources

Resources are a special kind of data type in PHP. The term resources doesn't really refer to any special kind of data, but to an abstraction method for maintaining any kind of information. Resources are kept in a special resource list within Zend. Each entry in the list has a correspondending type definition that denotes the kind of resource to which it refers. Zend then internally manages all references to this resource. Access to a resource is never possible directly - only via a provided API. As soon as all references to a specific resource are lost, a corresponding shutdown function is called.

For example, resources are used to store database links and file descriptors. The de facto standard implementation can be found in the MySQL module, but other modules such as the Oracle module also make use of resources.

Note : In fact, a resource can be a pointer to anything you need to handle in your functions (e.g. pointer to a structure) and the user only has to pass a single resource variable to your function.

To create a new resource you need to register a resource destruction handler for it. Since you can store any kind of data as a resource, Zend needs to know how to free this resource if its not longer needed. This works by registering your own resource destruction handler to Zend which in turn gets called by Zend whenever your resource can be freed (whether manually or automatically). Registering your resource handler within Zend returns you the resource type handle for that resource. This handle is needed whenever you want to access a resource of this type later and is most of time stored in a global static variable within your extension. There is no need to worry about thread safety here because you only register your resource handler once during module initialization.

The Zend function to register your resource handler is defined as:

ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number);

There are two different kinds of resource destruction handlers you can pass to this function: a handler for normal resources and a handler for persistent resources. Persistent resources are for example used for database connection. When registering a resource, either of these handlers must be given. For the other handler just pass NULL.

zend_register_list_destructors_ex() accepts the following parameters:

ld | Normal resource destruction handler callback
pld | Pesistent resource destruction handler callback
type_name | A string specifying the name of your resource. It's always a good thing to specify a unique name within PHP for the resource type so when the user for example calls var_dump($resource); he also gets the name of the resource.
module_number | The module_number is automatically available in your PHP_MINIT_FUNCTION function and therefore you just pass it over.

The return value is a unique integer ID for your resource type.

The resource destruction handler (either normal or persistent resources) has the following prototype:

void resource_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC);
The passed rsrc is a pointer to the following structure:
typedef struct _zend_rsrc_list_entry {

    void *ptr;
    int type;
    int refcount;

} zend_rsrc_list_entry;
The member void *ptr is the actual pointer to your resource.

Now we know how to start things, we define our own resource we want register within Zend. It is only a simple structure with two integer members:

typedef struct {

    int resource_link;
    int resource_type;

} my_resource;
Our resource destruction handler is probably going to look something like this:
void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

    // You most likely cast the void pointer to your structure type

    my_resource *my_rsrc = (my_resource *) rsrc->ptr;

    // Now do whatever needs to be done with you resource. Closing
    // Files, Sockets, freeing additional memory, etc.
    // Also, don't forget to actually free the memory for your resource too!

    do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
}

Note : One important thing to mention: If your resource is a rather complex structure which also contains pointers to memory you allocated during runtime you have to free them before freeing the resource itself!

Now that we have defined

  1. what our resource is and

  2. our resource destruction handler

we can go on and do the rest of the steps:

  1. create a global variable within the extension holding the resource ID so it can be accessed from every function which needs it

  2. define the resource name

  3. write the resource destruction handler

  4. and finally register the handler

// Somewhere in your extension, define the variable for your registered resources.
    // If you wondered what 'le' stands for: it simply means 'list entry'.
    static int le_myresource;

    // It's nice to define your resource name somewhere
    #define le_myresource_name  "My type of resource"

    [...]

    // Now actually define our resource destruction handler
    void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

        my_resource *my_rsrc = (my_resource *) rsrc->ptr;
        do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
    }

    [...]

    PHP_MINIT_FUNCTION(my_extension) {

        // Note that 'module_number' is already provided through the
        // PHP_MINIT_FUNCTION() function definition.

        le_myresource = zend_register_list_destructors_ex(my_destruction_handler, NULL, le_myresource_name, module_number);

        // You can register additional resources, initialize
        // your global vars, constants, whatever.
    }

To actually register a new resource you use can either use the zend_register_resource() function or the ZEND_REGISTER_RESOURE() macro, both defined in zend_list.h . Although the arguments for both map 1:1 it's a good idea to always use macros to be upwards compatible:

int ZEND_REGISTER_RESOURCE(zval *rsrc_result, void *rsrc_pointer, int rsrc_type);

rsrc_result | This is an already initialized zval * container.
rsrc_pointer | Your resource pointer you want to store.
rsrc_type | The type which you received when you registered the resource destruction handler. If you followed the naming scheme this would be le_myresource.

The return value is a unique integer identifier for that resource.

What is really going on when you register a new resource is it gets inserted in an internal list in Zend and the result is just stored in the given zval * container:

rsrc_id = zend_list_insert(rsrc_pointer, rsrc_type);

    if (rsrc_result) {
        rsrc_result->value.lval = rsrc_id;
        rsrc_result->type = IS_RESOURCE;
    }

    return rsrc_id;
The returned rsrc_id uniquely identifies the newly registered resource. You can use the macro RETURN_RESOURE to return it to the user:
RETURN_RESOURCE(rsrc_id)

Note : It is common practice that if you want to return the resource immediately to the user you specify the return_value as the zval * container.

Zend now keeps track of all references to this resource. As soon as all references to the resource are lost, the destructor that you previously registered for this resource is called. The nice thing about this setup is that you don't have to worry about memory leakages introduced by allocations in your module - just register all memory allocations that your calling script will refer to as resources. As soon as the script decides it doesn't need them anymore, Zend will find out and tell you.

Now that the user got his resource, at some point he is passing it back to one of your functions. The value.lval inside the zval * container contains the key to your resource and thus can be used to fetch the resource with the following macro: ZEND_FETCH_RESOURCE:

ZEND_FETCH_RESOURCE(rsrc, rsrc_type, rsrc_id, default_rsrc_id, resource_type_name, resource_type)

rsrc | This is your pointer which will point to your previously registered resource.
rsrc_type | This is the typecast argument for your pointer, e.g. myresource *.
rsrc_id | This is the address of the zval *container the user passed to your function, e.g. &z_resource if zval *z_resource is given.
default_rsrc_id | This integer specifies the default resource ID if no resource could be fetched or -1.
resource_type_name | This is the name of the requested resource. It's a string and is used when the resource can't be found or is invalid to form a meaningful error message.
resource_type | The resource_type you got back when registering the resource destruction handler. In our example this was le_myresource.

This macro has no return value. It is for the developers convenience and takes care of TSRMLS arguments passing and also does check if the resource could be fetched. It throws a warning message and returns the current PHP function with NULL if there was a problem retrieving the resource.

To force removal of a resource from the list, use the function zend_list_delete(). You can also force the reference count to increase if you know that you're creating another reference for a previously allocated value (for example, if you're automatically reusing a default database link). For this case, use the function zend_list_addref(). To search for previously allocated resource entries, use zend_list_find(). The complete API can be found in zend_list.h.

Macros for Automatic Global Variable Creation

In addition to the macros discussed earlier, a few macros allow easy creation of simple global variables. These are nice to know in case you want to introduce global flags, for example. This is somewhat bad practice, but Table Tableau 46-12 describes macros that do exactly this task. They don't need any zval allocation; you simply have to supply a variable name and value.

Tableau 46-12. Macros for Global Variable Creation

Macro | Description
SET_VAR_STRING(name, value) | Creates a new string.
SET_VAR_STRINGL(name, value, length) | Creates a new string of the specified length. This macro is faster than SET_VAR_STRING and also binary-safe.
SET_VAR_LONG(name, value) | Creates a new long.
SET_VAR_DOUBLE(name, value) | Creates a new double.

Creating Constants

Zend supports the creation of true constants (as opposed to regular variables). Constants are accessed without the typical dollar sign ($) prefix and are available in all scopes. Examples include TRUE and FALSE, to name just two.

To create your own constants, you can use the macros in Tableau 46-13. All the macros create a constant with the specified name and value.

You can also specify flags for each constant:

  • CONST_CS - This constant's name is to be treated as case sensitive.

  • CONST_PERSISTENT - This constant is persistent and won't be "forgotten" when the current process carrying this constant shuts down.

To use the flags, combine them using a inary OR:
// register a new constant of type "long"
     REGISTER_LONG_CONSTANT("NEW_MEANINGFUL_CONSTANT", 324, CONST_CS |
     CONST_PERSISTENT);
There are two types of macros - REGISTER_*_CONSTANT andREGISTER_MAIN_*_CONSTANT. The first type creates constants bound to the current module. These constants are dumped from the symbol table as soon as the module that registered the constant is unloaded from memory. The second type creates constants that remain in the symbol table independently of the module.

Tableau 46-13. Macros for Creating Constants

Macro | Description
REGISTER_LONG_CONSTANT(name, value, flags) REGISTER_MAIN_LONG_CONSTANT(name, value, flags) | Registers a new constant of type long.
REGISTER_DOUBLE_CONSTANT(name, value, flags) REGISTER_MAIN_DOUBLE_CONSTANT(name, value, flags) | Registers a new constant of type double.
REGISTER_STRING_CONSTANT(name, value, flags) REGISTER_MAIN_STRING_CONSTANT(name, value, flags) | Registers a new constant of type string. The specified string must reside in Zend's internal memory.
REGISTER_STRINGL_CONSTANT(name, value, length, flags) REGISTER_MAIN_STRINGL_CONSTANT(name, value, length, flags) | Registers a new constant of type string. The string length is explicitly set to length. The specified string must reside in Zend's internal memory.

Précédent | Sommaire | Suivant
Accepting Arguments | Niveau supérieur | Duplicating Variable Contents: The Copy Constructor


Duplicating Variable Contents: The Copy Constructor

Sooner or later, you may need to assign the contents of one zval container to another. This is easier said than done, since the zval container doesn't contain only type information, but also references to places in Zend's internal data. For example, depending on their size, arrays and objects may be nested with lots of hash table entries. By assigning one zval to another, you avoid duplicating the hash table entries, using only a reference to them (at most).

To copy this complex kind of data, use the copy constructor. Copy constructors are typically defined in languages that support operator overloading, with the express purpose of copying complex types. If you define an object in such a language, you have the possibility of overloading the "=" operator, which is usually responsible for assigning the contents of the rvalue (result of the evaluation of the right side of the operator) to the lvalue (same for the left side).

Overloading means assigning a different meaning to this operator, and is usually used to assign a function call to an operator. Whenever this operator would be used on such an object in a program, this function would be called with the lvalue and rvalue as parameters. Equipped with that information, it can perform the operation it intends the "=" operator to have (usually an extended form of copying).

This same form of "extended copying" is also necessary for PHP's zval containers. Again, in the case of an array, this extended copying would imply re-creation of all hash table entries relating to this array. For strings, proper memory allocation would have to be assured, and so on.

Zend ships with such a function, called zend_copy_ctor() (the previous PHP equivalent was pval_copy_constructor()).

A most useful demonstration is a function that accepts a complex type as argument, modifies it, and then returns the argument:

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
   return;
}

// do modifications to the parameter here

// now we want to return the modified container:
*return_value = *parameter;
zval_copy_ctor(return_value);

The first part of the function is plain-vanilla argument retrieval. After the (left out) modifications, however, it gets interesting: The container of parameter is assigned to the (predefined) return_value container. Now, in order to effectively duplicate its contents, the copy constructor is called. The copy constructor works directly with the supplied argument, and the standard return values are FAILURE on failure and SUCCESS on success.

If you omit the call to the copy constructor in this example, both parameter and return_value would point to the same internal data, meaning that return_value would be an illegal additional reference to the same data structures. Whenever changes occurred in the data that parameter points to, return_value might be affected. Thus, in order to create separate copies, the copy constructor must be used.

The copy constructor's counterpart in the Zend API, the destructor zval_dtor(), does the opposite of the constructor.

Précédent | Sommaire | Suivant
Creating Variables | Niveau supérieur | Returning Values


Returning Values

Returning values from your functions to PHP was described briefly in an earlier section; this section gives the details. Return values are passed via the return_value variable, which is passed to your functions as argument. The return_value argument consists of a zval container (see the earlier discussion of the call interface) that you can freely modify. The container itself is already allocated, so you don't have to run MAKE_STD_ZVAL on it. Instead, you can access its members directly.

To make returning values from functions easier and to prevent hassles with accessing the internal structures of the zval container, a set of predefined macros is available (as usual). These macros automatically set the correspondent type and value, as described in Tableau 46-14 and Tableau 46-15.

Note : The macros in Tableau 46-14 automatically return from your function, those in Tableau 46-15 only set the return value; they don't return from your function.

Tableau 46-14. Predefined Macros for Returning Values from a Function

Macro | Description
RETURN_RESOURCE(resource) | Returns a resource.
RETURN_BOOL(bool) | Returns a Boolean.
RETURN_NULL() | Returns nothing (a NULL value).
RETURN_LONG(long) | Returns a long.
RETURN_DOUBLE(double) | Returns a double.
RETURN_STRING(string, duplicate) | Returns a string. The duplicate flag indicates whether the string should be duplicated using estrdup().
RETURN_STRINGL(string, length, duplicate) | Returns a string of the specified length; otherwise, behaves like RETURN_STRING. This macro is faster and binary-safe, however.
RETURN_EMPTY_STRING() | Returns an empty string.
RETURN_FALSE | Returns Boolean false.
RETURN_TRUE | Returns Boolean true.

Tableau 46-15. Predefined Macros for Setting the Return Value of a Function

Macro | Description
RETVAL_RESOURCE(resource) | Sets the return value to the specified resource.
RETVAL_BOOL(bool) | Sets the return value to the specified Boolean value.
RETVAL_NULL | Sets the return value to NULL.
RETVAL_LONG(long) | Sets the return value to the specified long.
RETVAL_DOUBLE(double) | Sets the return value to the specified double.
RETVAL_STRING(string, duplicate) | Sets the return value to the specified string and duplicates it to Zend internal memory if desired (see also RETURN_STRING).
RETVAL_STRINGL(string, length, duplicate) | Sets the return value to the specified string and forces the length to become length (see also RETVAL_STRING). This macro is faster and binary-safe, and should be used whenever the string length is known.
RETVAL_EMPTY_STRING | Sets the return value to an empty string.
RETVAL_FALSE | Sets the return value to Boolean false.
RETVAL_TRUE | Sets the return value to Boolean true.

Complex types such as arrays and objects can be returned by using array_init() and object_init(), as well as the corresponding hash functions on return_value. Since these types cannot be constructed of trivial information, there are no predefined macros for them.

Précédent | Sommaire | Suivant
Duplicating Variable Contents: The Copy Constructor | Niveau supérieur | Printing Information


Printing Information

Often it's necessary to print messages to the output stream from your module, just as print() would be used within a script. PHP offers functions for most generic tasks, such as printing warning messages, generating output for phpinfo(), and so on. The following sections provide more details. Examples of these functions can be found on the CD-ROM.

zend_printf()

zend_printf() works like the standard printf(), except that it prints to Zend's output stream.

zend_error()

zend_error() can be used to generate error messages. This function accepts two arguments; the first is the error type (see zend_errors.h), and the second is the error message.

zend_error(E_WARNING, "This function has been called with empty arguments");
Tableau 46-16 shows a list of possible values (see Figure 46-3). These values are also referred to in php.ini. Depending on which error type you choose, your messages will be logged.

Tableau 46-16. Zend's Predefined Error Messages.

Error | Description
E_ERROR | Signals an error and terminates execution of the script immediately .
E_WARNING | Signals a generic warning. Execution continues.
E_PARSE | Signals a parser error. Execution continues.
E_NOTICE | Signals a notice. Execution continues. Note that by default the display of this type of error messages is turned off in php.ini.
E_CORE_ERROR | Internal error by the core; shouldn't be used by user-written modules.
E_COMPILE_ERROR | Internal error by the compiler; shouldn't be used by user-written modules.
E_COMPILE_WARNING | Internal warning by the compiler; shouldn't be used by user-written modules.

Figure 46-3. Display of warning messages in the browser.

Including Output in phpinfo()

After creating a real module, you'll want to show information about the module in phpinfo() (in addition to the module name, which appears in the module list by default). PHP allows you to create your own section in the phpinfo() output with the ZEND_MINFO() function. This function should be placed in the module descriptor block (discussed earlier) and is always called whenever a script calls phpinfo().

PHP automatically prints a section in phpinfo() for you if you specify the ZEND_MINFO function, including the module name in the heading. Everything else must be formatted and printed by you.

Typically, you can print an HTML table header using php_info_print_table_start() and then use the standard functions php_info_print_table_header() and php_info_print_table_row(). As arguments, both take the number of columns (as integers) and the column contents (as strings). Exemple 46-13 shows a source example and its output. To print the table footer, use php_info_print_table_end().

Exemple 46-13. Source code and screenshot for output in phpinfo().

php_info_print_table_start();
php_info_print_table_header(2, "First column", "Second column");
php_info_print_table_row(2, "Entry in first row", "Another entry");
php_info_print_table_row(2, "Just to fill", "another row here");
php_info_print_table_end();

Execution Information

You can also print execution information, such as the current file being executed. The name of the function currently being executed can be retrieved using the function get_active_function_name(). This function returns a pointer to the function name and doesn't accept any arguments. To retrieve the name of the file currently being executed, use zend_get_executed_filename(). This function accesses the executor globals, which are passed to it using the TSRMLS_C macro. The executor globals are automatically available to every function that's called directly by Zend (they're part of the INTERNAL_FUNCTION_PARAMETERS described earlier in this chapter). If you want to access the executor globals in another function that doesn't have them available automatically, call the macro TSRMLS_FETCH() once in that function; this will introduce them to your local scope.

Finally, the line number currently being executed can be retrieved using the function zend_get_executed_lineno(). This function also requires the executor globals as arguments. For examples of these functions, see Exemple 46-14.

Exemple 46-14. Printing execution information.

zend_printf("The name of the current function is %s<br>", get_active_function_name(TSRMLS_C));
zend_printf("The file currently executed is %s<br>", zend_get_executed_filename(TSRMLS_C));
zend_printf("The current line being executed is %i<br>", zend_get_executed_lineno(TSRMLS_C));

Précédent | Sommaire | Suivant
Returning Values | Niveau supérieur | Startup and Shutdown Functions


Startup and Shutdown Functions

Startup and shutdown functions can be used for one-time initialization and deinitialization of your modules. As discussed earlier in this chapter (see the description of the Zend module descriptor block), there are module, and request startup and shutdown events.

The module startup and shutdown functions are called whenever a module is loaded and needs initialization; the request startup and shutdown functions are called every time a request is processed (meaning that a file is being executed).

For dynamic extensions, module and request startup/shutdown events happen at the same time.

Declaration and implementation of these functions can be done with macros; see the earlier section "Declaration of the Zend Module Block" for details.

Précédent | Sommaire | Suivant
Printing Information | Niveau supérieur | Calling User Functions


Calling User Functions

You can call user functions from your own modules, which is very handy when implementing callbacks; for example, for array walking, searching, or simply for event-based programs.

User functions can be called with the function call_user_function_ex(). It requires a hash value for the function table you want to access, a pointer to an object (if you want to call a method), the function name, return value, number of arguments, argument array, and a flag indicating whether you want to perform zval separation.

ZEND_API int call_user_function_ex(HashTable *function_table, zval *object,
zval *function_name, zval **retval_ptr_ptr,
int param_count, zval **params[],
int no_separation);

Note that you don't have to specify both function_table and object; either will do. If you want to call a method, you have to supply the object that contains this method, in which case call_user_function()automatically sets the function table to this object's function table. Otherwise, you only need to specify function_table and can set object to NULL.

Usually, the default function table is the "root" function table containing all function entries. This function table is part of the compiler globals and can be accessed using the macro CG. To introduce the compiler globals to your function, call the macro TSRMLS_FETCH once.

The function name is specified in a zval container. This might be a bit surprising at first, but is quite a logical step, since most of the time you'll accept function names as parameters from calling functions within your script, which in turn are contained in zval containers again. Thus, you only have to pass your arguments through to this function. This zval must be of type IS_STRING.

The next argument consists of a pointer to the return value. You don't have to allocate memory for this container; the function will do so by itself. However, you have to destroy this container (using zval_dtor()) afterward!

Next is the parameter count as integer and an array containing all necessary parameters. The last argument specifies whether the function should perform zval separation - this should always be set to 0. If set to 1, the function consumes less memory but fails if any of the parameters need separation.

Exemple 46-15 shows a small demonstration of calling a user function. The code calls a function that's supplied to it as argument and directly passes this function's return value through as its own return value. Note the use of the constructor and destructor calls at the end - it might not be necessary to do it this way here (since they should be separate values, the assignment might be safe), but this is bulletproof.

Exemple 46-15. Calling user functions.

zval **function_name;
zval *retval;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &function_name) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

if((*function_name)->type != IS_STRING)
{
    zend_error(E_ERROR, "Function requires string argument");
}

TSRMSLS_FETCH();

if(call_user_function_ex(CG(function_table), NULL, *function_name, &retval, 0, NULL, 0) != SUCCESS)
{
    zend_error(E_ERROR, "Function call failed");
}

zend_printf("We have %i as type\n", retval->type);

*return_value = *retval;
zval_copy_ctor(return_value);
zval_ptr_dtor(&retval);

<?php

dl("call_userland.so");

function test_function()
{
    echo "We are in the test function!\n";
    return 'hello';
}

$return_value = call_userland("test_function");

echo "Return value: '$return_value'";
?>

L'exemple ci-dessus va afficher :

We are in the test function! We have 3 as type Return value: 'hello'

Précédent | Sommaire | Suivant
Startup and Shutdown Functions | Niveau supérieur | Initialization File Support


Initialization File Support

PHP 4 features a redesigned initialization file support. It's now possible to specify default initialization entries directly in your code, read and change these values at runtime, and create message handlers for change notifications.

To create an .ini section in your own module, use the macros PHP_INI_BEGIN() to mark the beginning of such a section and PHP_INI_END() to mark its end. In between you can use PHP_INI_ENTRY() to create entries.

PHP_INI_BEGIN()
PHP_INI_ENTRY("first_ini_entry",  "has_string_value", PHP_INI_ALL, NULL)
PHP_INI_ENTRY("second_ini_entry", "2",                PHP_INI_SYSTEM, OnChangeSecond)
PHP_INI_ENTRY("third_ini_entry",  "xyz",              PHP_INI_USER, NULL)
PHP_INI_END()
The PHP_INI_ENTRY() macro accepts four parameters: the entry name, the entry value, its change permissions, and a pointer to a change-notification handler. Both entry name and value must be specified as strings, regardless of whether they really are strings or integers.

The permissions are grouped into three sections:PHP_INI_SYSTEM allows a change only directly in the php.ini file; PHP_INI_USER allows a change to be overridden by a user at runtime using additional configuration files, such as .htaccess; and PHP_INI_ALL allows changes to be made without restrictions. There's also a fourth level, PHP_INI_PERDIR, for which we couldn't verify its behavior yet.

The fourth parameter consists of a pointer to a change-notification handler. Whenever one of these initialization entries is changed, this handler is called. Such a handler can be declared using the PHP_INI_MH macro:

PHP_INI_MH(OnChangeSecond);             // handler for ini-entry "second_ini_entry"

// specify ini-entries here

PHP_INI_MH(OnChangeSecond)
{

    zend_printf("Message caught, our ini entry has been changed to %s<br>", new_value);

    return(SUCCESS);

}
The new value is given to the change handler as string in the variable new_value. When looking at the definition of PHP_INI_MH, you actually have a few parameters to use:
#define PHP_INI_MH(name) int name(php_ini_entry *entry, char *new_value,
                                  uint new_value_length, void *mh_arg1,
                                  void *mh_arg2, void *mh_arg3)
All these definitions can be found in php_ini.h. Your message handler will have access to a structure that contains the full entry, the new value, its length, and three optional arguments. These optional arguments can be specified with the additional macros PHP_INI_ENTRY1 (allowing one additional argument), PHP_INI_ENTRY2 (allowing two additional arguments), and PHP_INI_ENTRY3 (allowing three additional arguments).

The change-notification handlers should be used to cache initialization entries locally for faster access or to perform certain tasks that are required if a value changes. For example, if a constant connection to a certain host is required by a module and someone changes the hostname, automatically terminate the old connection and attempt a new one.

Access to initialization entries can also be handled with the macros shown in Tableau 46-17.

Tableau 46-17. Macros to Access Initialization Entries in PHP

Macro | Description
INI_INT(name) | Returns the current value of entry name as integer (long).
INI_FLT(name) | Returns the current value of entry name as float (double).
INI_STR(name) | Returns the current value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_BOOL(name) | Returns the current value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).
INI_ORIG_INT(name) | Returns the original value of entry name as integer (long).
INI_ORIG_FLT(name) | Returns the original value of entry name as float (double).
INI_ORIG_STR(name) | Returns the original value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_ORIG_BOOL(name) | Returns the original value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).

Finally, you have to introduce your initialization entries to PHP. This can be done in the module startup and shutdown functions, using the macros REGISTER_INI_ENTRIES() and UNREGISTER_INI_ENTRIES():

ZEND_MINIT_FUNCTION(mymodule)
{

    REGISTER_INI_ENTRIES();

}

ZEND_MSHUTDOWN_FUNCTION(mymodule)
{

    UNREGISTER_INI_ENTRIES();

}

Précédent | Sommaire | Suivant
Calling User Functions | Niveau supérieur | Where to Go from Here


Where to Go from Here

You've learned a lot about PHP. You now know how to create dynamic loadable modules and statically linked extensions. You've learned how PHP and Zend deal with internal storage of variables and how you can create and access these variables. You know quite a set of tool functions that do a lot of routine tasks such as printing informational texts, automatically introducing variables to the symbol table, and so on.

Even though this chapter often had a mostly "referential" character, we hope that it gave you insight on how to start writing your own extensions. For the sake of space, we had to leave out a lot; we suggest that you take the time to study the header files and some modules (especially the ones in the ext/standard directory and the MySQL module, as these implement commonly known functionality). This will give you an idea of how other people have used the API functions - particularly those that didn't make it into this chapter.

Précédent | Sommaire | Suivant
Initialization File Support | Niveau supérieur | Reference: Some Configuration Macros


Reference: Some Configuration Macros

config.m4

The file config.m4 is processed by buildconf and must contain all the instructions to be executed during configuration. For example, these can include tests for required external files, such as header files, libraries, and so on. PHP defines a set of macros that can be used in this process, the most useful of which are described in Tableau 46-18.

Tableau 46-18. M4 Macros for config.m4

Macro | Description
AC_MSG_CHECKING(message) | Prints a "checking <message>" text during configure.
AC_MSG_RESULT(value) | Gives the result to AC_MSG_CHECKING; should specify either yes or no as value.
AC_MSG_ERROR(message) | Prints message as error message during configure and aborts the script.
AC_DEFINE(name,value,description) | Adds #define to php_config.h with the value of value and a comment that says description (this is useful for conditional compilation of your module).
AC_ADD_INCLUDE(path) | Adds a compiler include path; for example, used if the module needs to add search paths for header files.
AC_ADD_LIBRARY_WITH_PATH(libraryname,librarypath) | Specifies an additional library to link.
AC_ARG_WITH(modulename,description,unconditionaltest,conditionaltest) | Quite a powerful macro, adding the module with description to the configure --help output. PHP checks whether the option --with-<modulename> is given to the configure script. If so, it runs the script unconditionaltest (for example, --with-myext=yes), in which case the value of the option is contained in the variable $withval. Otherwise, it executes conditionaltest.
PHP_EXTENSION(modulename, [shared]) | This macro is a must to call for PHP to configure your extension. You can supply a second argument in addition to your module name, indicating whether you intend compilation as a shared module. This will result in a definition at compile time for your source as COMPILE_DL_<modulename>.

Précédent | Sommaire | Suivant
Where to Go from Here | Niveau supérieur | API Macros


API Macros

A set of macros was introduced into Zend's API that simplify access to zval containers (see Tableau 46-19).

Tableau 46-19. API Macros for Accessing zval Containers

Macro | Refers to
Z_LVAL(zval) | (zval).value.lval
Z_DVAL(zval) | (zval).value.dval
Z_STRVAL(zval) | (zval).value.str.val
Z_STRLEN(zval) | (zval).value.str.len
Z_ARRVAL(zval) | (zval).value.ht
Z_LVAL_P(zval) | (*zval).value.lval
Z_DVAL_P(zval) | (*zval).value.dval
Z_STRVAL_P(zval_p) | (*zval).value.str.val
Z_STRLEN_P(zval_p) | (*zval).value.str.len
Z_ARRVAL_P(zval_p) | (*zval).value.ht
Z_LVAL_PP(zval_pp) | (**zval).value.lval
Z_DVAL_PP(zval_pp) | (**zval).value.dval
Z_STRVAL_PP(zval_pp) | (**zval).value.str.val
Z_STRLEN_PP(zval_pp) | (**zval).value.str.len
Z_ARRVAL_PP(zval_pp) | (**zval).value.ht

Précédent | Sommaire | Suivant
Reference: Some Configuration Macros | Niveau supérieur | API Function and Macro reference (work in progress)


Streams API for PHP Extension Authors

Manuel PHP
Précédent Suivant

Chapitre 44. Streams API for PHP Extension Authors

Table des matières
Overview
Streams Basics
Streams as Resources
Streams Common API Reference
Streams Dir API Reference
Streams File API Reference
Streams Socket API Reference
Streams Structures
Streams Constants

Overview

The PHP Streams API introduces a unified approach to the handling of files and sockets in PHP extension. Using a single API with standard functions for common operations, the streams API allows your extension to access files, sockets, URLs, memory and script-defined objects. Streams is a run-time extensible API that allows dynamically loaded modules (and scripts!) to register new streams.

The aim of the Streams API is to make it comfortable for developers to open files, URLs and other streamable data sources with a unified API that is easy to understand. The API is more or less based on the ANSI C stdio family of functions (with identical semantics for most of the main functions), so C programmers will have a feeling of familiarity with streams.

The streams API operates on a couple of different levels: at the base level, the API defines php_stream objects to represent streamable data sources. On a slightly higher level, the API defines php_stream_wrapper objects which "wrap" around the lower level API to provide support for retrieving data and meta-data from URLs. An additional context parameter, accepted by most stream creation functions, is passed to the wrapper's stream_opener method to fine-tune the behavior of the wrapper.

Any stream, once opened, can also have any number of filters applied to it, which process data as it is read from/written to the stream.

Streams can be cast (converted) into other types of file-handles, so that they can be used with third-party libraries without a great deal of trouble. This allows those libraries to access data directly from URL sources. If your system has the fopencookie() or funopen() function, you can even pass any PHP stream to any library that uses ANSI stdio!

Note : The functions in this chapter are for use in the PHP source code and are not PHP functions. Userland stream functions can be found in the Stream Reference.

Précédent | Sommaire | Suivant
PHP et le moteur interne Zend | Niveau supérieur | Streams Basics


Streams Basics

Using streams is very much like using ANSI stdio functions. The main difference is in how you obtain the stream handle to begin with. In most cases, you will use php_stream_open_wrapper() to obtain the stream handle. This function works very much like fopen, as can be seen from the example below:

Exemple 44-1. simple stream example that displays the PHP home page

php_stream * stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);
if (stream) {
    while(!php_stream_eof(stream)) {
        char buf[1024];

        if (php_stream_gets(stream, buf, sizeof(buf))) {
            printf(buf);
        } else {
            break;
        }
    }
    php_stream_close(stream);
}

The table below shows the Streams equivalents of the more common ANSI stdio functions. Unless noted otherwise, the semantics of the functions are identical.

Tableau 44-1. ANSI stdio equivalent functions in the Streams API

ANSI Stdio Function | PHP Streams Function | Notes
fopen | php_stream_open_wrapper | Streams includes additional parameters
fclose | php_stream_close |
fgets | php_stream_gets |
fread | php_stream_read | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like read(2)
fwrite | php_stream_write | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like write(2)
fseek | php_stream_seek |
ftell | php_stream_tell |
rewind | php_stream_rewind |
feof | php_stream_eof |
fgetc | php_stream_getc |
fputc | php_stream_putc |
fflush | php_stream_flush |
puts | php_stream_puts | Same semantics as puts, NOT fputs
fstat | php_stream_stat | Streams has a richer stat structure

Précédent | Sommaire | Suivant
Streams API for PHP Extension Authors | Niveau supérieur | Streams as Resources


Streams as Resources

All streams are registered as resources when they are created. This ensures that they will be properly cleaned up even if there is some fatal error. All of the filesystem functions in PHP operate on streams resources - that means that your extensions can accept regular PHP file pointers as parameters to, and return streams from their functions. The streams API makes this process as painless as possible:

Exemple 44-2. How to accept a stream as a parameter

PHP_FUNCTION(example_write_hello)
{
    zval *zstream;
    php_stream *stream;

    if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream))
        return;

    php_stream_from_zval(stream, &zstream);

    /* you can now use the stream.  However, you do not "own" the
        stream, the script does.  That means you MUST NOT close the
        stream, because it will cause PHP to crash! */

    php_stream_write(stream, "hello\n");

    RETURN_TRUE();
}

Exemple 44-3. How to return a stream from a function

PHP_FUNCTION(example_open_php_home_page)
{
    php_stream *stream;

    stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);

    php_stream_to_zval(stream, return_value);

    /* after this point, the stream is "owned" by the script.
        If you close it now, you will crash PHP! */
}

Since streams are automatically cleaned up, it's tempting to think that we can get away with being sloppy programmers and not bother to close the streams when we are done with them. Although such an approach might work, it is not a good idea for a number of reasons: streams hold locks on system resources while they are open, so leaving a file open after you have finished with it could prevent other processes from accessing it. If a script deals with a large number of files, the accumulation of the resources used, both in terms of memory and the sheer number of open files, can cause web server requests to fail. Sounds bad, doesn't it? The streams API includes some magic that helps you to keep your code clean - if a stream is not closed by your code when it should be, you will find some helpful debugging information in you web server error log.

Note : Always use a debug build of PHP when developing an extension (--enable-debug when running configure), as a lot of effort has been made to warn you about memory and stream leaks.

In some cases, it is useful to keep a stream open for the duration of a request, to act as a log or trace file for example. Writing the code to safely clean up such a stream is not difficult, but it's several lines of code that are not strictly needed. To save yourself the trouble of writing the code, you can mark a stream as being OK for auto cleanup. What this means is that the streams API will not emit a warning when it is time to auto-cleanup a stream. To do this, you can use php_stream_auto_cleanup().

Précédent | Sommaire | Suivant
Streams Basics | Niveau supérieur | Streams Common API Reference


Streams Dir API Reference

Table des matières
php_stream_opendir -- Open a directory for file enumeration
php_stream_readdir -- Fetch the next directory entry from an opened dir
php_stream_rewinddir -- Rewind a directory stream to the first entry
php_stream_closedir -- Close a directory stream and release resources

The functions listed in this section work on local files, as well as remote files (provided that the wrapper supports this functionality!).

Précédent | Sommaire | Suivant
php_stream_filter_unregister_factory | Niveau supérieur | php_stream_opendir


Streams File API Reference

Table des matières
php_stream_fopen_from_file -- Convert an ANSI FILE* into a stream
php_stream_fopen_tmpfile -- Open a FILE* with tmpfile() and convert into a stream
php_stream_fopen_temporary_file -- Generate a temporary file name and open a stream on it

Précédent | Sommaire | Suivant
php_stream_closedir | Niveau supérieur | php_stream_fopen_from_file


Streams Socket API Reference

Table des matières
php_stream_sock_open_from_socket -- Convert a socket descriptor into a stream
php_stream_sock_open_host -- Open a connection to a host and return a stream
php_stream_sock_open_unix -- Open a Unix domain socket and convert into a stream

Précédent | Sommaire | Suivant
php_stream_fopen_temporary_file | Niveau supérieur | php_stream_sock_open_from_socket


Streams Structures

Table des matières
struct php_stream_statbuf -- Holds information about a file or URL
struct php_stream_dirent -- Holds information about a single file during dir scanning
struct php_stream_ops -- Holds member functions for a stream implementation
struct php_stream_wrapper -- Holds wrapper properties and pointer to operations
struct php_stream_wrapper_ops -- Holds member functions for a stream wrapper implementation
struct php_stream_filter -- Holds filter properties and pointer to operations
struct php_stream_filter_ops -- Holds member functions for a stream filter implementation

Précédent | Sommaire | Suivant
php_stream_sock_open_unix | Niveau supérieur | struct php_stream_statbuf


Streams Constants

Table des matières
Stream open options -- Affects the operation of stream factory functions

Précédent | Sommaire | Suivant
struct php_stream_filter_ops | Niveau supérieur | Stream open options


FAQ : foire Aux Questions

Manuel PHP
Précédent Suivant

VIII. FAQ : foire Aux Questions

Table des matières
49. Informations générales
50. Listes de diffusions
51. Obtenir PHP
52. Considérations sur les bases de données
53. FAQ sur l'installation
54. Problèmes de compilation
55. Utiliser PHP
56. PHP et HTML
57. PHP et COM
58. PHP et les autres langages
59. Migrer de PHP 2 à PHP 3
60. Migrer de PHP 3 à PHP 4
61. Migration de PHP 4 à PHP 5
62. Questions diverses

Précédent | Sommaire | Suivant
Reporting Errors |  | Informations générales


Informations générales

Manuel PHP
Précédent Suivant

Chapitre 49. 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. Quelle est la différence entre PHP 3 et PHP 4 ?
6. Je pense avoir trouvé un bogue ! Qui dois-je contacter ?

1. Qu'est-ce que PHP ?

Depuis la préface de ce manuel :

PHP, est un acronyme récursif, qui signifie "PHP: Hypertext Preprocessor" : c'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.

Une introduction à PHP par Stig Sæther Bakken est disponible à http://www.zend.com/zend/art/intro.php (en anglais) sur le site de Zend. En outre, une grande partie du matériel de conférence de PHP est librement disponible.

2. 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. Les plus curieux peuvent visiter "Free On-Line Dictionary of Computing" pour plus d'infirmations sur les acronymes récursifs.

3. Quelle est la relation entre les versions ?

PHP/FI 2.0 est une des premières versions de PHP et elle n'est plus supportée. PHP 3 en est son successeur et est beaucoup plus convivial. PHP 4 est la génération actuelle de PHP, qui utilise le moteur Zend pour le traitement. PHP 5 utilise le moteur Zend 2 et apporte, entre autres, beaucoup de nouveautés dans le modèle objet.

4. Puis-je utiliser plusieurs versions de PHP en même temps ?

Oui. Voir le fichier INSTALL inclus dans les sources de PHP 4. Lisez également cette annexe.

5. Quelle est la différence entre PHP 3 et PHP 4 ?

Il y a beaucoup d'articles (anglais) relatifs à ce sujet écrits par les auteurs de PHP 4. Voici une liste des plus importantes nouvelles fonctionnalités :

  • Module étendu de l'API

  • Généralisation du processus d'installation sur les environnements Unix

  • Une interface web générique qui supporte également les serveurs web multi-threadé

  • Amélioration de la coloration syntaxique

  • Support natif des sessions HTTP

  • Support des tampons de sortie

  • Système de configuration plus performant

  • Le compte de référence

Merci de vous référer à l'article de Zend "Qui a-t-il de nouveau en PHP 4 ?" (anglais) pour plus de détails sur ces nouveautés et bien plus encore. Si vous migrez de PHP 3 à PHP 4, lisez également cette annexe.

6. Je pense avoir trouvé un bogue ! Qui dois-je contacter ?

Vous devriez aller sur la base de données de bogues PHP afin de vous assurer qu'il n'est pas déjà connu. Si vous ne le trouvez pas, utilisez le formulaire de rapport de bogues pour le faire connaître. Il est important d'utiliser la base de données de bogues au lieu d'envoyer simplement un courriel à une des listes de diffusion car le bogue se verra assigner un numéro qui vous sera utile pour suivre son évolution. La base de données de bogues peut être trouvée à http://bugs.php.net/.

Précédent | Sommaire | Suivant
FAQ : foire Aux Questions | Niveau supérieur | Listes de diffusions


Listes de diffusions

Manuel PHP
Précédent Suivant

Chapitre 50. 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. Aidez-moi ! Je ne peux visiblement pas m'inscrire/me désinscrire sur une/d'une des listes de diffusion !
4. Y a-t-il une archive des listes de diffusion quelque part ?
5. Que puis-je demander sur les listes de diffusion ?
6. Quelle information devrais-je inclure lors de l'écriture de mon message à la liste de diffusion ?

1. 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 complète des listes de diffusion peut être trouvée sur notre page de support.

La liste de diffusion la plus générale est la liste php-general. Pour s'y inscrire, envoyez un courriel à php-general-subscribe@lists.php.net. Vous n'avez pas besoin d'inclure quoi que ce soit dans l'objet ou le corps du message. Pour se désinscrire, envoyez un courriel à php-general-unsubscribe@lists.php.net.

Vous pouvez également vous inscrire et vous désinscrire en utilisant l'interface web sur notre page de support.

2. Y a-t-il d'autres communautés ?

Il y en a énormément à travers le monde. Nous en avons recensé plusieurs, par exemple, quelques canaux IRC et des listes de diffusion en langues étrangères sur notre page de support.

3. Aidez-moi ! Je ne peux visiblement pas m'inscrire/me désinscrire sur une/d'une des listes de diffusion !

Si vous avez des problèmes pour l'inscription/la désinscription depuis la liste de diffusion php-general, cela peut être dû au fait que le logiciel de listes de diffusion n'arrive pas à traiter correctement la liste de diffusion à utiliser. Si votre adresse e-mail est joeblow@example.com, vous pouvez envoyer une requête d'inscription à php-general-subscribe-joeblow=example.com@lists.php.net, ou une requête de désinscription à php-general-unsubscribe-joeblow=example.com@lists.php.net. Utilisez la même méthode avec les autres listes de diffusion.

4. Y a-t-il une archive des listes de diffusion quelque part ?

Oui, vous pouvez la trouver sur le site d'archives des listes de diffusion sur la page de support. Les articles de la liste de diffusion sont aussi archivés comme des messages d'actualité. Vous pouvez y accéder à news://news.php.net/ avec un client de news. Il y a également une interface web expérimentale pour les lire à http://news.php.net/.

5. 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 environ 150 à 200 messages par jour. À cause de cela, vous ne devriez utiliser la liste de diffusion qu'en dernier ressort après avoir cherché partout ailleurs.

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.

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.

6. 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é, CVS, 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.

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.

Précédent | Sommaire | Suivant
Informations générales | Niveau supérieur | Obtenir PHP


Obtenir PHP

Manuel PHP
Précédent Suivant

Chapitre 51. 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 CVS. De quoi ai-je besoin pour le compiler sous Windows ?
6. Où puis-je trouver le fichier Browser Capabilities ?

1. Où puis-je obtenir PHP ?

Vous pouvez télécharger PHP à partir d'un des membres du réseau de sites PHP. Vous pouvez les trouver sur http://www.php.net/. Vous pouvez aussi utiliser CVS pour obtenir la toute dernière version des sources. Pour plus d'informations, allez sur http://www.php.net/anoncvs.php.

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

3. Où puis-je obtenir les bibliothèques dont j'ai besoin pour compiler les extensions optionnelles de PHP ?

Note : Celles marquées avec un * ne sont pas des bibliothèques thread-safe, et ne doivent pas être utilisées avec PHP en module de serveur dans les serveurs web Windows multi-threadés (IIS, Netscape). Cela n'est pas applicable pour les environnements Unix, pour le moment.

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

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

5. J'ai la dernière version du code source de PHP, téléchargée à partir de CVS. De quoi ai-je besoin pour le compiler sous Windows ?

Premièrement, vous avez besoin de Microsoft Visual C++ v6 (la v5 peut fonctionner, mais nous le faisons avec v6), et vous avez besoin de quelques fichiers de support. Voyez la section du manuel à propos parlant de la compilation de PHP à partir des sources sur Windows.

6. Où puis-je trouver le fichier Browser Capabilities ?

Vous pouvez trouver un fichier browscap.ini sur http://browsers.garykeith.com/downloads.asp.

Précédent | Sommaire | Suivant
Listes de diffusions | Niveau supérieur | Considérations sur les bases de données


Considérations sur les bases de données

Manuel PHP
Précédent Suivant

Chapitre 52. Considérations sur les bases de données

Cette section traite de questions relatives aux relations entre PHP et les bases de données. Oui, PHP peut accéder virtuellement à n'importe quelle base de données disponible aujourd'hui.

1. J'ai entendu dire qu'il était possible d'accéder à Microsoft SQL Server à partir de PHP. Comment est-ce possible ?
2. Puis-je accéder à des bases Microsoft Access ?
3. J'ai mis à jour vers PHP 4, et maintenant MySQL me dit toujours "Warning: MySQL: Unable to save result set in ...". Que se passe-t-il ?
4. PHP 5 n'inclut plus les bibliothèques clientes MySQL, qu'est ce que ça implique pour moi ? Puis-je toujours utiliser MySQL avec PHP ? J'essaie d'utiliser MySQL, mais j'obtiens des erreurs "undefined function".
5. Après avoir ajouté le support partagé de MySQL, Apache plante dès que libphp4.so est chargé. Comment résoudre ce problème ?
6. Pourquoi est ce que j'obtiens une erreur comme celle-ci : "Warning: 0 is not a MySQL result index in <file> on line <x>" ou "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>" ?

1. J'ai entendu dire qu'il était possible d'accéder à Microsoft SQL Server à partir de PHP. Comment est-ce possible ?

Sur une machine Windows, vous pouvez tout simplement utiliser le support ODBC inclus avec le pilote ODBC adéquat.

Sur des machines Unix, vous pouvez utiliser le pilote Sybase-CT pour accéder à Microsoft SQL Server car il est (en grande partie) compatible. Sybase a fourni une version libre des bibliothèques nécessaires pour Linux. Pour les autres systèmes Unix, vous devez contacter Sybase pour obtenir les bibliothèques adéquates. Jetez aussi un oeil à la réponse à la question suivante.

2. Puis-je accéder à des bases Microsoft Access ?

Oui. Vous avez déjà tous les outils nécessaires si vous utilisez uniquement Windows 9x/Me, ou NT/2000, et que vous utilisez ODBC avec les pilotes ODBC pour Microsoft Access.

Si vous utilisez PHP sur une machine Unix et que vous voulez vous connecter à une base Access sur une machine Windows, vous aurez besoin des pilotes ODBC Unix. OpenLink Software fournit des pilotes ODBC pour Unix qui peuvent le faire.

Une autre solution consiste à utiliser un serveur SQL qui a des pilotes ODBC Windows et l'utiliser pour stocker les données, que vous pouvez utiliser à partir de Microsoft Access (en utilisant ODBC) et PHP (en utilisant les pilotes inclus), ou bien utiliser un format de fichier intermédiaire que Access et PHP peuvent traiter tous les deux, comme des fichier bruts ou des bases de données dBase. À ce sujet, Tim Hayes de Openlink software écrit :

Utiliser une autre base de données comme intermédiaire n'est pas une bonne idée lorsque vous pouvez utiliser ODBC de PHP directement vers vos bases de données - par exemple avec les pilotes Openlink. Si vous avez besoin d'un format de fichier intermédiaire, Openlink a publié Virtuoso (un moteur de base de données virtuel) pour NT, Linux et d'autres plates-formes Unix. Visitez notre site pour un téléchargement gratuit.

Une solution qui a fait ses preuves est d'utiliser MySQL et ses pilotes ODBC sous Windows et de synchroniser les bases de données. Steve Lawrence écrit :

  • Installez MySQL sur votre plate-forme conformément aux instructions de MySQL. Vous pouvez l'obtenir sur http://www.mysql.com/. Aucune configuration particulière n'est nécessaire, mis à part que lorsque vous configurez une base de données et un compte utilisateur, il faille spécifier % dans le champ host, ou bien le nom de la machine Windows avec laquelle vous voulez accéder à MySQL. Notez bien votre nom de serveur, d'utilisateur et votre mot de passe.

  • Téléchargez les pilotes MyODBC pour Windows à partir du site de MySQL. Installez les sur votre machine Windows. Vous pouvez tester votre installation avec les utilitaires fournis avec les pilotes.

  • Créez un utilisateur ou une source de données système dans votre administration ODBC, dans le panneau de configuration. Donnez un nom de source de données dsn, entrez votre nom d'hôte, identifiant, mot de passe, port, etc. pour la base de données configurée à l'étape 1.

  • Installez Access avec une installation complète pour être sûr d'avoir tous les composants nécessaires... Vous aurez besoin d'au moins le support ODBC et le gestionnaire de tables liées.

  • Maintenant, la partie amusante ! Créez un accès à une base de données. Dans la fenêtre de la table, cliquez droit et sélectionner Lier les Tables, ou, dans le menu Fichier, sélectionnez Obtenir des données externes et alors Lier les Tables. Quand la fenêtre de gestion de fichiers apparaît, sélectionnez les fichiers de type : ODBC. Sélectionnez dsn Système et le nom de votre dsn créée à l'étape 3. Sélectionnez la table à lier, cliquez sur OK, et voilà ! Vous pouvez maintenant ouvrir la table et ajouter/supprimer/éditer des données sur votre serveur MySQL ! Vous pouvez ainsi exécuter des requêtes, importer/exporter des tables vers MySQL, construire des formulaires et des rapports, etc.

Trucs et astuces :

  • Vous pouvez construire vos tables dans Access et les exporter dans MySQL, puis les lier de nouveau. Cela rend la création de table très rapide.

  • Lorsque vous créez des tables dans Access, vous devez avoir une clé primaire définie pour avoir accès en écriture à la table. Assurez-vous que vous avez bien créé une clé primaire dans MySQL avant de lier le tout à Access.

  • Si vous changez une table dans MySQL, vous devez la lier de nouveau à Access. Allez dans Outils>suppléments>gestionnaire de tables liées, cherchez votre DSN ODBC, et sélectionnez la table à lier de nouveau. Vous pouvez aussi changer votre source dsn à partir de là, en cliquant sur l'option toujours demander pour un nouvel emplacement avant de presser OK.

3. J'ai mis à jour vers PHP 4, et maintenant MySQL me dit toujours "Warning: MySQL: Unable to save result set in ...". Que se passe-t-il ?

Il est quasiment sûr que PHP 4 a été compilée avec l'option --with-mysql sans donner le chemin vers MySQL. Cela signifie que PHP utilise sa bibliothèque cliente MySQL incluse. Si votre système exécute des applications qui utilisent d'autres versions de clients MySQL, comme PHP 3 en module Apache concurrent, ou auth-mysql, il y a un conflit entre les deux versions de ces bibliothèques clientes.

Recompiler PHP 4 et ajouter le chemin vers MySQL avec l'option '--with-mysql=/votre/chemin/vers/mysql' résout généralement le problème.

4. PHP 5 n'inclut plus les bibliothèques clientes MySQL, qu'est ce que ça implique pour moi ? Puis-je toujours utiliser MySQL avec PHP ? J'essaie d'utiliser MySQL, mais j'obtiens des erreurs "undefined function".

Oui. PHP supportera toujours MySQL, d'une façon ou d'une autre. Le seul changement avec PHP 5 est que nous ne compilons plus la bibliothèque cliente en elle-même. En voici en vrac quelques justifications :

  • La plupart des systèmes incluent maintenant les bibliothèques clientes.

  • Ainsi, avoir plusieurs versions des bibliothèques peut être gênant. Par exemple, si vous liez mod_auth_mysql à une version et PHP à une autre, et que vous les activez tous les deux dans Apache, vous obtenez un joli plantage. Ainsi, la bibliothèque cliente incluse avec PHP ne fonctionnait pas toujours bien. Le symptôme le plus gênant était que le chemin vers le socket Unix mysql.sock n'était pas le bon.

  • La maintenance en était lourde et le devenait de plus en plus au fur et à mesure des versions.

  • Les versions futures de la bibliothèque seront publiées sous licence GPL et nous ne pouvons pas inclure une telle bibliothèque car sa licence n'est pas compatible avec un projet sous licence de type BSD/Apache. Un tel changement dans PHP 5 semble être la meilleure solution.

Ceci n'affectera pas tant que ça les utilisateurs. Les utilisateurs d'Unix, au moins ceux qui savent ce qu'ils font, ont tendance à compiler PHP avec les bibliothèques déjà installées sur leur système, simplement en spécifiant --with-mysql=/usr lors de la configuration de PHP. Les utilisateurs de Windows peuvent activer l'extension php_mysql.dll dans leur php.ini. Pour plus de détails, lisez la référence MySQL sur les instructions d'installation. Assurez-vous également que libmysql.dll est disponible dans le PATH du système. Pour plus de détails sur cela, lisez la FAQ sur la configuration du PATH sur les systèmes Windows. Comme libmysql.dll (et plusieurs fichiers relatifs à PHP) existe dans le dossier de PHP, il est recommandé d'ajouter le dossier de PHP à votre PATH système.

5. Après avoir ajouté le support partagé de MySQL, Apache plante dès que libphp4.so est chargé. Comment résoudre ce problème ?

Ceci arrive quand vos bibliothèques MySQL sont liées à pthreads. Vérifiez que vous utilisez ldd. Sinon, téléchargez les sources de MySQL et compilez-les ou bien refaites un paquet RPM à partir des sources en enlevant l'option qui active le client threadé dans le fichier de spec. L'une ou l'autre de ces solutions corrigera le problème. Recompilez alors PHP avec les nouvelles bibliothèques MySQL.

6. Pourquoi est ce que j'obtiens une erreur comme celle-ci : "Warning: 0 is not a MySQL result index in <file> on line <x>" ou "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>" ?

Vous essayez d'utiliser un identifiant de résultat qui vaut 0. Le 0 indique que votre requête a échoué pour une quelconque raison. Vous devez alors chercher les erreurs après avoir exécuté une requête et avant même de vouloir traiter le résultat. Une façon propre de le faire est de coder comme ceci :

<?php

$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
    echo mysql_error();
    exit;
}
?>
ou
<?php

$result = mysql_query("SELECT * FROM tables_priv")
    or die("Bad query: " . mysql_error());
?>

Précédent | Sommaire | Suivant
Obtenir PHP | Niveau supérieur | FAQ sur l'installation


FAQ sur l'installation

Manuel PHP
Précédent Suivant

Chapitre 53. FAQ sur l'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 (sauf les versions de MacOS antérieures à Mac OSX) et pour quasiment n'importe quel serveur web.

Pour installer PHP, suivez les instructions présentes dans Partie II dans Manuel PHP.

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 installé PHP 3 en utilisant des paquets source RPM, mais ils ne compilent pas avec le support de la base de données dont j'ai besoin ! Que se passe-t-il ?
6. 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 ?
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 un écran vide.
8. 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'.
9. 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/php4] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress
10. Windows : J'ai installé PHP, mais lorsque j'accède à 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:
11. Windows : J'ai suivi toutes les instructions, mais je n'arrive toujours pas à faire fonctionner PHP et IIS ensemble !
12. 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..
13. 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.
14. Où dois-je ajouter mon répertoire PHP à la variable PATH sous Windows ?
15. Comment rendre le fichier php.ini disponible à PHP sous Windows ?
16. Est-il possible d'utiliser la négociation sur le contenu fournie par Apache (option MultiViews) avec PHP ?
17. Est-ce que PHP est limité au traitement des méthodes GET et POST ?

1. 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, des pieds d'argile sont introduits dans le système PHP.

Et finalement, cette mise en garde contre les environnements MPM threadés n'est pas aussi forte pour les environnements Windows, où les bibliothèques sont mieux threadées.

2. 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-dist 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.

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 ?

Cela signifie probablement que PHP rencontre un problème et génère un fichier core. Consultez vos fichiers de logs de votre serveur pour voir si c'est le cas, et tentez de reproduire le problème avec un test simple. Si vous savez utiliser 'gdb', il serait très utile de fournir un backtrace avec votre rapport de bogue, afin d'aider les développeurs à cerner le problème. Si vous utilisez PHP en module Apache, essayez ceci :

  • Stoppez vos processus httpd

  • gdb httpd

  • Stoppez vos processus httpd

  • > run -X -f /path/to/httpd.conf

  • Pointez alors avec votre navigateur vers l'URL posant problème.

  • > run -X -f /path/to/httpd.conf

  • Si vous obtenez un fichier core, gdb doit alors vous en informer.

  • tapez : bt

  • Vous devriez inclure votre backtrace dans votre rapport de bogue. Celui-ci doit être posté sur http://bugs.php.net/.

Si votre script utilise les expressions rationnelles (ereg() et consorts), assurez-vous que PHP et Apache ont été compilés avec les même outils d'expression rationnelles. Cela doit être automatiquement le cas avec PHP et Apache 1.3.x.

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 ?

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_php3.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php3_module        modules/libphp3.so     # for PHP 3
LoadModule php4_module        modules/libphp4.so     # for PHP 4
LoadModule perl_module        modules/libperl.so
Et ajouter :
AddType application/x-httpd-php3 .php3    # for PHP 3
AddType application/x-httpd-php .php      # for PHP 4
... aux propriétés globales ou aux propriétés du VirtualDomain ou vous voulez que PHP officie.

5. Unix : J'ai installé PHP 3 en utilisant des paquets source RPM, mais ils ne compilent pas avec le support de la base de données dont j'ai besoin ! Que se passe-t-il ?

La façon dont PHP 3 est compilé rend la construction flexible de paquets RPM très peu aisée. Ceci est résolu avec PHP 4. Pour PHP 3, nous vous conseillons de suivre le mécanisme décrit dans le fichier INSTALL.REDHAT inclus avec les sources. Si vous persistez à vouloir construire des fichiers RPM de PHP 3, lisez ceci...

Les mainteneurs des paquets RPM ont configuré les paquets RPM à s'installer sans le support des bases de données pour simplifier l'installation et parce que les paquets RPM utilisent le répertoire /usr au lieu du répertoire standard /usr/local/ pour les fichiers. Vous devez spécifier au fichier de spécification du paquet RPM quelle base de données vous voulez utiliser et quel est le chemin complet du serveur de votre base de données.

L'exemple ci-dessous explique la procédure pour ajouter le support de la base de données populaire, MySQL, en utilisant une installation en module d'Apache.

Bien sûr, toutes ces informations peuvent être ajustées pour n'importe quel serveur de bases de données que PHP supporte. Nous supposerons que vous avez installé MySQL et Apache complètement avec des paquets RPM pour cet exemple.

  • Premièrement, supprimer mod_php3 :

    rpm -e mod_php3

  • Ensuite, récupérer le paquet RPM et installez-le, SANS --rebuild

    rpm -Uvh mod_php3-3.0.5-2.src.rpm

  • Ensuite, éditez le fichier /usr/src/redhat/SPECS/mod_php3.spec

    Dans la section %build, ajoutez le support de la base de données désiré ainsi que son chemin.

    Pour MySQL, vous devez ajouter --with-mysql=/usr La section %build devrait ressembler à quelque chose comme ceci :

    ./configure --prefix=/usr \
--with-apxs=/usr/sbin/apxs \
--with-config-file-path=/usr/lib \
--enable-debug=no \
--enable-safe-mode \
--with-exec-dir=/usr/bin \
--with-mysql=/usr \
--with-system-regex

  • Une fois cette modification effectuée, compiler le binaire RPM comme ceci :

    rpm -bb /usr/src/redhat/SPECS/mod_php3.spec

  • Ensuite, installez le RPM

    rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm

Assurez-vous de redémarrer Apache et que vous avez PHP 3 avec le support MySQL en utilisant le paquet RPM. Notez qu'il est probablement plus facile de compiler directement depuis l'archive tarball PHP 3 et de suivre les instructions du fichier INSTALL.REDHAT dans les sources de la distribution.

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

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 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érifier la configuration du serveur web en vous référant aux instructions d'installations de PHP.

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

9. 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/php4] 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.

10. Windows : J'ai installé PHP, mais lorsque j'accède à 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, php4ts.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.

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

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

13. 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() et 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. S'il n'apparaît qu'un chemin vers un répertoire existant, cela signifie que vous devez copier votre php.ini dans ce répertoire. 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.

14. Où dois-je ajouter mon répertoire PHP à la variable PATH sous Windows ?

Sous Windows NT, 2000, XP et 2003 :

  • 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 et redémarrer votre ordinateur

Sous Windows 98/Me, vous devez éditer le fichier autoexec.bat :

  • Ouvrez Notepad (Démarrer -> Exécuter et entrez notepad)

  • Ouvrez le fichier C:\autoexec.bat

  • Ajoutez une nouvelle ligne à la fin du fichier : set PHPRC=C:\php (remplacez C:\php par le dossier où se trouve le php.ini). Notez que le chemin ne doit pas contenir d'espaces. Par exemple, si vous avez installé PHP dans le dossier C:\Program Files\PHP, vous devez indiquer le chemin sous la forme C:\PROGRA~1\PHP.

  • Sauvegardez le fichier et redémarrer l'ordinateur

Note : Assurez-vous de redémarrer l'ordinateur après avoir suivi cette procédure afin que les modifications sur la variable PATH soient bien prises en compte.

Le manuel PHP vous encourage à copier les fichiers dans le dossier système de Windows car ce dossier (C:\Windows, C:\WINNT, etc.) se trouve par défaut dans le PATH système. Copier les fichiers dans le dossier système de Windows est depuis obsolète et peut causer des problèmes.

15. Comment rendre le fichier php.ini disponible à PHP sous Windows ?

Il y a plusieurs façons de faire cela. Si vous utilisez Apache, lisez leurs instructions spécifiques d'installation (Apache 1, Apache 2) sinon, vous devez définir la variable d'environnement PHPRC :

Sous Windows NT, 2000, XP et 2003:

  • 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"

  • Cliquez sur "Nouveau" et entrez "PHPRC" comme nom de variable et le dossier où se trouve votre fichier php.ini comme valeur (par exemple C:\php)

  • Confirmez en cliquant sur OK et redémarrer votre ordinateur

Sous Windows 98/Me, vous devez éditer le fichier autoexec.bat :

  • Ouvrez Notepad (Démarrer ->Exécuter et entrez notepad)

  • Ouvrez le fichier C:\autoexec.bat

  • Ajouter une nouvelle ligne à la fin du fichier : set PHPRC C:\php (remplacez C:\php avec le dossier où se trouve le fichier php.ini)

  • Sauvegardez le fichier et redémarrer l'ordinateur

16. 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 :

# PHP 4
AddHandler php-script php
AddType text/html php

# PHP 5
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.

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

Précédent | Sommaire | Suivant
Considérations sur les bases de données | Niveau supérieur | Problèmes de compilation


Problèmes de compilation

Manuel PHP
Précédent Suivant

Chapitre 54. 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 CVS, 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 :
4. Quand je lance Apache, j'obtiens le message suivant :
5. Quand je lance le ./configure, on me dit que les fichiers d'en-tête de GD, gdbm, ... ne sont pas trouvés !
6. Quand le fichier language-parser.tab.c est compilé, j'obtiens un message yytname undeclared.
7. Quand je lance make, tout semble bien se passer, mais ça échoue quand il essaie de lier l'application finale, en prétendant qu'il manque des fichiers.
8. Au moment de lier PHP, il y a des références indéfinies.
9. Je ne vois pas comment compiler PHP avec Apache 1.3.
10. J'ai suivi toutes les étapes pour installer le module Apache sous Unix, mais malgré tout, mes scripts PHP s'affichent en clair dans mon navigateur ou celui-ci me demande de sauver le fichier.
11. Il est dit d'utiliser --activate-module=src/modules/php4/libphp4.a, mais ce fichier n'existe pas, alors je l'ai changé pour --activate-module=src/modules/php4/libmodphp4.a et ça ne fonctionne pas. Qu'est ce qui se passe ?
12. Quand j'essaie de compiler Apache avec PHP en module statique en utilisant --activate-module=src/modules/php4/libphp4.a on me répond que mon compilateur n'est pas conforme aux normes ANSI.
13. Quand j'esaie de compiler PHP avec --with-apxs, j'obtiens des messages d'erreur étranges.
14. Pendant le make, j'ai des erreurs concernant microtime et beaucoup de RUSAGE_.
15. Quand je compile PHP avec le support MySQL, le configure se passe bien, mais pendant le make, j'obtiens une erreur de ce style : ext/mysql/libmysql/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysql/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', qu'est ce qui ne va pas ?
16. Je veux mettre à jour mon PHP. Où puis-je trouver la ligne ./configure qui a été utilisée pour mon installation actuelle de PHP?
17. Quand je compile PHP avec le support de la bibliothèque GD, j'obtiens des erreurs de compilation étrange, voire même des erreurs de segmentation.
18. Quand je compile PHP, j'obtiens des erreurs aléatoires, voire même tout s'arrête. J'utilise Solaris.

1. J'ai téléchargé la dernière version des sources de PHP en utilisant CVS, 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 CVS. (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é.)

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é !

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.

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

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.

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

Cette erreur survient généralement quand quelqu'un compile le coeur Apache comme bibliothèque partagée DSO. Essayez de reconfigurer Apache, en vous assurant d'utiliser les options suivantes :

--enable-shared=max --enable-rule=SHARED_CORE

Pour davantage d'informations, lisez le fichier INSTALL à la racine de votre répertoire source Apache ou bien le manuel des bibliothèques DSO.

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

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

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.

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.

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

Si vous compilez par rapport à Apache 1.2.x, souvenez-vous de bien mettre les informatiosn appropriées dans la ligne EXTRA_LIBS du fichier Configuration et relancez le script Configure de Apache. Lisez le chapitre sur l'installation pour plus de détails.

Des personnes nous ont rapporté qu'elle devaient ajouter '-ldl' immédiatement après libphp4.a lors de la compilation avec Apache.

9. Je ne vois pas comment compiler PHP avec Apache 1.3.

C'est relativement simple. Suivez attentivement ces étapes :

  • Téléchargez la dernière version de Apache 1.3 sur http://www.apache.org/dist/httpd/.

  • Désarchivez le tout, par exemple dans /usr/local/src/apache-1.3.

  • Compilez PHP en lançant tout d'abord ./configure --with-apache=/<path>/apache-1.3 (remplacez <path> par le chemin de votre répertoire apache-1.3)

  • Tapez make puis make install pour compiler PHP et copier les fichiers nécessaires dans le répertoire source Apache.

  • Déplacez-vous dans votre répertoire /<path>/apache-1.3/src et éditez le fichier Configuration. Ajoutez y : AddModule modules/php4/libphp4.a.

  • Tapez : ./configure puis make.

  • Vous devriez alors avoir une bibliothèque httpd avec le support de PHP !

Note: Vous pouvez utiliser le nouveau script ./configure de Apache. Suivez les instructions du fichier README.configure fourni avec votre version de Apache. Lisez aussi le fichier INSTALL inclus avec les sources de PHP.

10. J'ai suivi toutes les étapes pour installer le module Apache sous Unix, mais malgré tout, mes scripts PHP s'affichent en clair dans mon navigateur ou celui-ci me demande de sauver le fichier.

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-php3 .php3 (pour PHP 3)

    ou AddType application/x-httpd-php .php (pour PHP 4)

    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.

11. Il est dit d'utiliser --activate-module=src/modules/php4/libphp4.a, mais ce fichier n'existe pas, alors je l'ai changé pour --activate-module=src/modules/php4/libmodphp4.a et ça ne fonctionne pas. Qu'est ce qui se passe ?

Notez que le fichier libphp4.a n'est pas supposé exister. Le processus apache le créera !

12. Quand j'essaie de compiler Apache avec PHP en module statique en utilisant --activate-module=src/modules/php4/libphp4.a on me répond que mon compilateur n'est pas conforme aux normes ANSI.

C'est un mauvais message d'erreur de Apache qui n'apparaît plus dans des versions plus récentes.

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

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

15. Quand je compile PHP avec le support MySQL, le configure se passe bien, mais pendant le make, j'obtiens une erreur de ce style : ext/mysql/libmysql/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysql/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).

16. Je veux mettre à jour mon PHP. Où puis-je trouver la ligne ./configure qui a été utilisée pour mon installation actuelle de PHP?

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.

17. Quand je compile PHP avec le support de la bibliothèque GD, j'obtiens des erreurs de compilation étrange, voire même des erreurs de segmentation.

Assurez-vous que votre bibliothèque GD et PHP sont liés aux mêmes bibliothèques (libpng, par exemple).

18. 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 utiiser les versions GNU ou Sun POSIX (xpg4) de sed fonctionnera. Liens : GNU sed, GNU flex et GNU bison.

Précédent | Sommaire | Suivant
FAQ sur l'installation | Niveau supérieur | Utiliser PHP


Utiliser PHP

Manuel PHP
Précédent Suivant

Chapitre 55. Utiliser PHP

Cette section regroupe plusieurs erreurs que vous pouvez rencontrer lors de l'écriture de vos scripts PHP.

1. 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 ?
2. Il faut que je convertisse tous les guillemets simples (') en un anti-slash suivi d'un guillemet simple (\'). Comment le faire avec une expression régulière ? J'aimerais aussi convertir " en \" et \ en \\.
3. Tous mes " se transforment en \" et mes ' en \', comment me débarrasser de tous ces anti-slashs ? Comment et pourquoi sont-ils apparus ?
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. Mon script PHP fonctionne avec IE et Lynx, mais avec Netscape une portion de ce qui devrait s'afficher manque. Quand j'affiche la source HTML de la page, je vois le contenu avec IE mais pas avec Netscape.
11. Comment mélanger XML et PHP ? PHP se plaint de mes balises <?xml !
12. Comment utiliser PHP avec FrontPage ou d'autres éditeurs HTML qui insistent pour mettre mon code ailleurs ?
13. Où puis-je trouver une liste complète des variables pré-définies que je peux utiliser dans mes scripts PHP ?
14. Comment puis-je générer des fichiers PDF sans utiliser les bibliothèques non libres ClibPDF et PDFLib ? J'aimerais une façon gratuite et qui ne requiert pas de bibliothèques PDF externes.
15. J'essaye d'accéder à une des variables standard CGI (comme $DOCUMENT_ROOT ou $HTTP_REFERER) dans une fonction écrite par moi-même, et il semblerait qu'elle ne soit pas définie. Que se passe-t-il ?
16. Quelques directives PHP peuvent également prendre des valeurs d'octets sténographiées contrairement aux valeurs d'octets uniquement entières. Quelles sont toutes les options d'octets sténographiées disponibles ?

1. 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 super globale $_POST. Vous pouvez boucler sur $_POST puisque c'est un tableau associatif de toutes les valeurs POSTées. 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>';
?>

Superglobales : disponibilité : Depuis PHP 4.1.0, les tableaux superglobaux tels que $_GET, $_POST et $_SERVER, etc. sont disponibles. Pour plus d'informations, lisez la section superglobals

2. Il faut que je convertisse tous les guillemets simples (') en un anti-slash suivi d'un guillemet simple (\'). Comment le faire avec une expression régulière ? J'aimerais aussi convertir " en \" et \ en \\.

La fonction addslashes() le fera. Voir aussi mysql_escape_string(). Vous pouvez aussi supprimer les anti-slashs avec stripslashes().

Note concernant la directive : magic_quotes_gpc : La directive PHP magic_quotes_gpc est par défaut à on. En bref, elle applique la fonction addslashes() sur toutes vos données issues de GET, POST et COOKIE. Vous pouvez utiliser la fonction stripslashes() pour supprimer cet effet.

3. Tous mes " se transforment en \" et mes ' en \', comment me débarrasser de tous ces anti-slashs ? Comment et pourquoi sont-ils apparus ?

La fonction PHP stripslashes() supprimera ces anti-slashs de votre chaîne de caractères. La plupart du temps, ils apparaissent car la directive PHP magic_quotes_gpc est activée.

Note concernant la directive : magic_quotes_gpc : La directive PHP magic_quotes_gpc est par défaut à on. En bref, elle applique la fonction addslashes() sur toutes vos données issues de GET, POST et COOKIE. Vous pouvez utiliser la fonction stripslashes() pour supprimer cet effet.

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 ?

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

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>

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.

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

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

8. Quand j'essaye d'utiliser l'identification avec IIS j'obtiens 'No Input file specified'.

Le modèle sécuritaire de IIS est en faute. C'est un problème commun à tous les programmes CGI fonctionnant avec IIS. Une alternative est de créer un fichier HTML (non exécuté par PHP) comme page d'entrée dans le dossier où il faut s'identifier. Utilisez alors une balise META pour rediriger vers la page PHP, ou encore proposez un lien vers celle-ci. PHP reconnaîtra alors l'identification correctement. Avec le module ISAPI, cela n'est pas un problème. Cela ne devrait pas non plus affecter d'autres serveurs NT. Pour plus d'informations, voyez : http://support.microsoft.com/kb/q160422/ et la section du manuel concernant l'identification HTTP.

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

10. Mon script PHP fonctionne avec IE et Lynx, mais avec Netscape une portion de ce qui devrait s'afficher manque. Quand j'affiche la source HTML de la page, je vois le contenu avec IE mais pas avec Netscape.

Netscape est plus strict que IE concernant les balises HTML (comme les tables). Faire valider votre HTML généré par un validateur HTML, comme validator.w3.org, peut se révéler utile. Par exemple, une </table> manquante peut provoquer ce problème.

De plus, IE et Lynx ignorent les NULs (\0) dans le flux HTML, Netscape non. La meilleure façon de le vérifier est de compiler la version en ligne de commande de PHP (aussi connue sous le nom de version CGI) et d'exécuter vos scripts à partir de la console. Sous *nix, redirigez la sortie sur od -c et cherchez les caractères \0. Si vous êtes sous Windows, vous devez trouver un éditeur ou un autre programme qui vous permettra de visualiser les fichiers binaires. Lorsque Netscape rencontre un NUL dans un fichier, il n'affichera la plupart du temps rien dans cette ligne, alors que IE et Lynx le feront.

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

12. Comment utiliser PHP avec FrontPage ou d'autres éditeurs HTML qui insistent pour mettre mon code ailleurs ?

La façon la plus simple est d'activer l'utilisation des balises ASP dans votre code PHP. Cela vous permettra d'utiliser des délimiteurs de code à la manière de ASP : <% et %>. Quelques éditeurs HTML populaires gèrent cela plus habilement. Pour activer les balises ASP, vous devez configurer la variable asp_tags de php.ini, ou utiliser la directive Apache appropriée.

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

register_globals : note importante : Depuis PHP 4.2.0, la valeur par défaut de la directive de configuration PHP register_globals vaut off et est complètement retirée depuis PHP 6.0.0. La communauté PHP vous recommande de ne pas dépendre de cette directive, mais de trouver d'autres moyens pour accéder aux données, tels que les superglobals.

14. Comment puis-je générer des fichiers PDF sans utiliser les bibliothèques non libres ClibPDF et 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 http://www.ros.co.nz/pdf/, http://www.fpdf.org/, http://www.gnuvox.com/pdf4php/, et http://www.potentialtech.com/ppl.php. Il existe aussi le module Panda.

15. J'essaye d'accéder à une des variables standard CGI (comme $DOCUMENT_ROOT ou $HTTP_REFERER) dans une fonction écrite par moi-même, et il semblerait qu'elle ne soit pas définie. Que se passe-t-il ?

Il est important de réaliser que la directive PHP register_globals affecte aussi les variables d'environnement et de serveur. Lorsque register_globals = off (valeur par défaut depuis PHP 4.2.0), $DOCUMENT_ROOT n'existera pas. À la place, utilisez $_SERVER['DOCUMENT_ROOT']. Si register_globals = on alors les variables $DOCUMENT_ROOT et $GLOBALS['DOCUMENT_ROOT'] existeront aussi.

Si vous êtes sûrs que register_globals = on et que vous vous demandez pourquoi $DOCUMENT_ROOT n'est pas disponible à l'intérieur de votre fonction, c'est parce que elle est comme toute autre variable et requiert donc global $DOCUMENT_ROOT dans le corps de la fonction. Voyez aussi la page du manuel à propos de la portée des variables. Il est recommandé de coder avec register_globals = off.

Superglobales : disponibilité : Depuis PHP 4.1.0, les tableaux superglobaux tels que $_GET, $_POST et $_SERVER, etc. sont disponibles. Pour plus d'informations, lisez la section superglobals

16. Quelques directives PHP peuvent également prendre des valeurs d'octets sténographiées contrairement aux valeurs d'octets uniquement entières. Quelles sont toutes les options d'octets sténographiées disponibles ?

Les options disponibles sont K (pour Kilo octets) et M (pour Méga octets) et G (pour Giga octets ; disponible depuis PHP 5.1.0), ils sont insensibles à la casse. Tout autre chose est supposée représenter des octets. 1M équivaut à un Méga octets ou 1048576 octets. 1K équivaut à un Kilo octets ou 1024 octets. Vous ne devriez pas utiliser ces notations sténographiques en dehors du php.ini, à la place, utilisez une valeur entière en octets. Lisez la documentation sur la fonction ini_get() pour un exemple sur la façon de convertir ces valeurs.

Précédent | Sommaire | Suivant
Problèmes de compilation | Niveau supérieur | PHP et HTML


PHP et HTML

Manuel PHP
Précédent Suivant

Chapitre 56. 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 comme récupérer des variables externes à PHP. La page du manuel correspondante contient beaucoup d'exemples. Faites particulièrement attention à ce que signifie register_globals.

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 ?

1. 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 56-1. Un élément de formulaire HTML caché

<?php
echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />';
?>

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 56-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 56-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 plus part 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.

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 ?

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 externes à PHP". Par exemple, en utilisant $_GET['foo_x'].

Note : Les espaces dans les noms de variables sont également converties en un souligné bas.

3. 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 externes à PHP.

4. 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 = documents.forms[0].elements['var[]'];

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

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

Précédent | Sommaire | Suivant
Utiliser PHP | Niveau supérieur | PHP et COM


PHP et COM

Manuel PHP
Précédent Suivant

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

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

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

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

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

5. Comment puis-je intercepter des erreurs COM ?

En PHP 5, l'extension COM envoie des exceptions com_exception, que vous pouvez intercepter en inspectant le membre code pour déterminer que faire.

En PHP 4, il n'est pas possible d'intercepter des erreurs COM en dehors de la façon dont elles sont fournies par PHP lui-même (@, track_errors, ..).

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

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

8. 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 com.allow_dcom =TRUE dans votre php.ini.

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

10. 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'il 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.

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

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

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 ?

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

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

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

Précédent | Sommaire | Suivant
PHP et HTML | Niveau supérieur | PHP et les autres langages


PHP et les autres langages

Manuel PHP
Précédent Suivant

Chapitre 58. PHP et les autres langages

PHP est le meilleur langage pour la programmation web, mais qu'en est-il des autres langages ?

1. PHP contre ASP ?
2. Existe-t-il un convertisseur de ASP vers PHP ?
3. PHP contre Cold Fusion ?
4. PHP contre Perl ?

1. PHP contre ASP ?

ASP n'est pas vraiment un langage en lui-même, c'est l'acronyme de Active Server Pages, le langage courant pour programmer en ASP étant le Visual Basic ou le JScript. Le plus gros inconvénient de ASP est que c'est un système propriétaire utilisé nativement sur Microsoft Internet Information Server (IIS). Cela limite sa disponibilité aux seules plates-formes Win32. Il existe cependant des projets pour utiliser ASP dans d'autres environnements et avec d'autres serveurs web : InstantASP de Halcyon (commercial), Chili!Soft ASP de Chili!Soft (commercial). ASP est connu pour être un langage plus lent et plus lourd que PHP, mais aussi moins stable. Les gens favorables à ASP prétendront que comme ils utilisent de base VBScript, c'est un langage facile à apprendre si vous connaissez déjà Visual Basic. Le support de ASP est activé par défaut dans IIS, le rendant facile à mettre en oeuvre et à utiliser. Les composants inclus de base dans ASP sont vraiment limités, et si vous devez utiliser des fonctionnalités "avancées" comme l'interaction avec des serveurs FTP, vous devrez acheter des composants supplémentaires.

2. Existe-t-il un convertisseur de ASP vers PHP ?

Oui, le programme côté serveur asp2php est le plus fréquemment utilisé, de même que cette option côté client.

3. PHP contre Cold Fusion ?

PHP est réputé pour être plus rapide et plus efficace pour la programmation complexe et pour tester de nouvelles idées. PHP est aussi plus stable et consomme moins de ressources. Cold Fusion a une meilleure gestion des erreurs, une meilleure abstraction de bases de données et une meilleure gestion des dates, bien que l'abstraction de bases de données soit chose possible en PHP 4. Un autre point réputé pour être une des forces de Cold Fusion est sont excellent moteur de recherche, mais il peut paraître absurde d'intégrer un moteur de recherche dans un langage de script Web. PHP fonctionne sur nombre de plates-formes alors que Cold Fusion ne supporte que Win32, Solaris, Linux et HP/UX. Cold Fusion intègre un bon environnement de développement (IDE) et il est facile à apprendre, alors que PHP requiert davantage de connaissances en programmation. Cold Fusion est pensé pour des non-développeurs, alors que PHP est pensé pour les développeurs.

Un excellent résumé de Michael J Sheldon sur ce sujet a été posté sur la liste de diffusion PHP. Une copie du message peut être trouvée sur http://marc.theaimsgroup.com/?l=php-general&m=95602167412542&w=1.

4. PHP contre Perl ?

Le plus grand avantage de PHP par rapport à Perl est que PHP a été pensé pour la programmation Web alors que Perl a été pensé pour faire des choses bien plus diversifiées, ce qui le rend bien plus compliqué. La complexité / flexibilité de Perl rend l'écriture de script plus facile, mais en rend la lecture par un autre auteur / codeur beaucoup moins aisée. PHP est plus facile que Perl à intégrer dans du HTML. PHP a toutes les "bonnes" fonctionnalités de Perl : la construction, la syntaxe... sans pour autant être aussi compliqué que Perl. Perl est un véritable langage bien testé, du fait de son existence depuis la fin des années 80, mais PHP devient mature très rapidement.

Précédent | Sommaire | Suivant
PHP et COM | Niveau supérieur | Migrer de PHP 2 à PHP 3


Migrer de PHP 2 à PHP 3

Manuel PHP
Précédent Suivant

Chapitre 59. Migrer de PHP 2 à PHP 3

PHP a déjà une longue histoire derrière lui : Le légendaire PHP 1.0, PHP/FI, PHP 3.0 et PHP 4.0.

1. Migrer de PHP 2 à PHP 3 ?

1. Migrer de PHP 2 à PHP 3 ?

PHP/FI 2.0 n'est plus supporté. Reportez-vous à la section appropriée du manuel pour des informations à propos de la migration à partir de PHP/FI 2.0.

Si vous travaillez encore avec PHP 2, nous vous recommandons vivement de mettre à jour en PHP 4.

Précédent | Sommaire | Suivant
PHP et les autres langages | Niveau supérieur | Migrer de PHP 3 à PHP 4


Migrer de PHP 3 à PHP 4

Manuel PHP
Précédent Suivant

Chapitre 60. Migrer de PHP 3 à PHP 4

PHP a déjà une longue histoire derrière lui : Le légendaire PHP 1.0, PHP/FI, PHP 3.0 et PHP 4.0.

1. Migrer de PHP 3 à PHP 4
2. Les sessions fonctionnent-elles avec PHP 3 ?
3. Fonctions incompatibles ?

1. Migrer de PHP 3 à PHP 4

PHP 4 a été conçu pour être aussi compatible avec les anciennes versions de PHP que possible et très peu de fonctionnalités ont changées dans le processus. Si vous n'êtes pas sûrs de la compatibilité, vous devez installer PHP 4 dans un environnement de test et y tester vos scripts.

Lisez aussi l'appendice de la migration approprié de ce manuel.

2. Les sessions fonctionnent-elles avec PHP 3 ?

Même si le support natif des sessions n'existait pas en PHP 3, il y a des applications terces qui ont (et encore aujourd'hui) offert les fonctionnalités des sessions. La méthode la plus commune est d'utiliser PHPLIB.

3. Fonctions incompatibles ?

Puisque PHP 4 est basiquement une réécriture entière du moteur PHP il y a peu de fonctions qui ont été altérées et celles qui l'ont été faisaient partie des fonctions les plus exotiques.

Précédent | Sommaire | Suivant
Migrer de PHP 2 à PHP 3 | Niveau supérieur | Migration de PHP 4 à PHP 5


Migration de PHP 4 à PHP 5

Manuel PHP
Précédent Suivant

Chapitre 61. Migration de PHP 4 à PHP 5

Cette section devrait vous aider à migrer de PHP 4 à PHP 5.

1. Migration de PHP 4 à PHP 5
2. Est-ce que MySQL fonctionne en PHP 5 ? Il semble avoir disparu.
3. J'ai entendu dire que PHP 5 à un tout nouveau modèle objet ; est-ce que mon actuel code objet fonctionne ? Où puis-je trouver des informations concernant ces nouvelles fonctionnalités ?
4. Donc, mise à part le nouveau modèle objet, qu'est-ce qui a changé dans PHP 5 ? En particulier, existe-t-il une version spécifique du manuel PHP ?

1. Migration de PHP 4 à PHP 5

Bien que PHP 5 offre beaucoup de nouvelles fonctionnalités, il a été prévu pour être compatible avec les anciennes versions de PHP autant que possible, avec un minimum de fonctionnalités rompues dans le processus.

Assurez-vous de lire l'annexe intitulé "Migrer en PHP 5" de ce manuel ; il contient beaucoup plus d'informations concernant la migration en PHP 5.

2. Est-ce que MySQL fonctionne en PHP 5 ? Il semble avoir disparu.

MySQL est supporté avec la seule différence que le support de MySQL n'est plus activé par défaut en PHP 5. Cela signifie essentiellement que PHP n'inclut pas automatiquement --with-mysql dans la configuration ; vous devez donc maintenant l'ajouter à la main lorsque vous compilez PHP. Les utilisateurs de Windows doivent éditer leur php.ini et activer la bibliothèque DLL php_mysql.dll, sachant qu'en PHP 4, cette bibliothèque n'existait pas, elle était automatiquement incluse dans le binaire PHP.

En outre, la bibliothèque cliente MySQL n'est plus incluse avec PHP. Plus de détails sur ce sujet sont consultables dans cette section de la FAQ ; lisez également la section MySQL pour les détails concernant l'installation de MySQL. Un exemple de ligne de configuration serait --with-mysql=/usr alors que les utilisateurs de Windows doivent avoir la bibliothèque DLL nommée libmySQL.dll de disponible sur leur système.

3. J'ai entendu dire que PHP 5 à un tout nouveau modèle objet ; est-ce que mon actuel code objet fonctionne ? Où puis-je trouver des informations concernant ces nouvelles fonctionnalités ?

Le principal changement en PHP 5 est le nouveau model objet car PHP 5 utilise désormais le Zend Engine 2.0. La directive zend.ze1_compatibility_mode active la compatibilité avec le Zend Engine 1.0 (PHP 4).

Le nouveau model objet est documenté dans la référence du langage orienté objet ainsi que dans les sections concernant la migration du model objet.

4. Donc, mise à part le nouveau modèle objet, qu'est-ce qui a changé dans PHP 5 ? En particulier, existe-t-il une version spécifique du manuel PHP ?

Peu de changements existent mise à part le modèle objet, lisez l'annexe "Migration 5" pour plus de détails. Il n'y a pas de version spécifique à PHP 5 de ce manuel car la majorité des fonctionnalités de PHP restent les mêmes.

Précédent | Sommaire | Suivant
Migrer de PHP 3 à PHP 4 | Niveau supérieur | Questions diverses


Questions diverses

Manuel PHP
Précédent Suivant

Chapitre 62. Questions diverses

Il y'a quelques questions inclassables. Vous les trouverez ici.

1. Comment puis-je manipuler le manuel compressé en bzip2 sous Windows ?
2. Que signifie le caractère "&" devant les arguments dans les déclarations des fonctions comme la fonction asort() ?
3. Comment puis-je gérer la directive register_globals ?

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

2. Que signifie le caractère "&" devant les arguments dans les déclarations des fonctions comme la fonction asort() ?

Cela signifie que cet argument est passé par référence et que la fonction le modifiera, comme expliqué dans la documentation. Vous pouvez passer uniquement des variables de cette façon et vous n'avez pas besoin de les passer avec le caractère "&" dans l'appel de la fonction (car dépréciée).

3. Comment puis-je gérer la directive register_globals ?

Pour plus d'informations concernant l'implication sur la sécurité de la directive register_globals, lisez le chapitre sur la sécurité concernant l'utilisation de register_globals.

Il est préférable d'utiliser les superglobals, plutôt que de remettre à on la directive register_globals.

Si vous êtes sur un serveur mutualisé avec la directive register_globals de positionnée à off et que vous devez utiliser des applications qui requièrent que cette option soit à on ou si vous êtes hébergés sur un serveur qui a cette directive d'activée mais que vous voudriez éliminer ce risque sécuritaire, vous devriez émuler l'argument opposé avec PHP. C'est toujours une bonne idée que de demander tout d'abord s'il est possible de modifier cette option dans la configuration de PHP mais si cela n'est pas possible, vous pouvez utiliser ces astuces de compatibilité.

Exemple 62-1. Émulation des Register Globals

Ceci émulera la directive register_globals à On. Si vous modifiez la directive variables_order, modifiez la variable $superglobals pour qu'elle corresponde à votre nouvelle directive..

<?php
// Émulation de register_globals à on
if (!ini_get('register_globals')) {
    $superglobals = array($_SERVER, $_ENV,
        $_FILES, $_COOKIE, $_POST, $_GET);
    if (isset($_SESSION)) {
        array_unshift($superglobals, $_SESSION);
    }
    foreach ($superglobals as $superglobal) {
        extract($superglobal, EXTR_SKIP);
    }
}
?>

Ceci émulera register_globals à Off. Gardez à l'esprit que ce code doit être appelé au tout début de votre script ou après la foncton session_start() si vous l'utilisez pour commencer votre session.

<?php
// Émulation de register_globals à off
function unregister_GLOBALS()
{
    if (!ini_get('register_globals')) {
        return;
    }

    // Vous pouvez vouloir modifier cela pour avoir une erreur plus jolie
    if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
    die('Tentative d\'effacement des GLOBALS détectée');
    }

    // Les variables à ne jamais effacer
    $noUnset = array('GLOBALS',  '_GET',
    '_POST',    '_COOKIE',
    '_REQUEST', '_SERVER',
    '_ENV',     '_FILES');

    $input = array_merge($_GET,    $_POST,
    $_COOKIE, $_SERVER,
    $_ENV,    $_FILES,
    isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array());

    foreach ($input as $k => $v) {
        if (!in_array($k, $noUnset) && isset($GLOBALS[$k])) {
            unset($GLOBALS[$k]);
        }
    }
}

unregister_GLOBALS();

?>

Précédent | Sommaire | Suivant
Migration de PHP 4 à PHP 5 | Niveau supérieur | Annexes


Manuel PHP
Précédent Suivant

Annexe A. Histoire de PHP

Table des matières
Histoire de PHP
Quelques projets liés à PHP
Livres traitant de PHP
Publications sur PHP

L'évolution de PHP s'est faite en quelques années. Devenir l'un des langages les plus importants du web ne fut pas une évolution simple. Pour ceux que ça intéresse, voici comment PHP a évolué jusqu'à aujourd'hui. Les vieilles versions de PHP sont disponibles dans le musée PHP.

Histoire de PHP

PHP/FI

PHP a pris la suite d'un langage plus ancien, appelé PHP/FI. PHP/FI a été créé par Rasmus Lerdorf, en 1995. C'était initialement une bibliothèque de scripts Perl, dont il se servait pour noter les accès à son CV en ligne. Il donna le nom de 'Personnal Home Page Tools' à cette bibliothèque. Au fur et à mesure qu'il ajoutait de nouvelles fonctionnalités, Rasmus a transformé la bibliothèque en une implémentation en C, capable de communiquer avec les bases de données, et de créer des applications dynamiques et simples pour le web. Rasmus décida alors de publier son code, pour que tout le monde puisse l'utiliser et en profiter. Cela appela aussi aux contributions et aux améliorations du code.

PHP/FI, qui signifie Personal Home Page / Forms Interpreter, (Home Page personnelle, Interpreteur de Formulaires), incluait plusieurs fonctionnalités de base que nous connaissons encore aujourd'hui. Il 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 mais beaucoup plus limitée. Elle était simple et un peu incohérente.

En 1997, PHP/FI 2.0, la seconde version en langage C, avait déjà une audience estimée de plusieurs milliers d'utilisateurs dans le monde, et environ 50,000 noms de domaine indiquaient qu'ils avaient installé PHP. Cela représentait environ 1 % des noms de domaine sur l'Internet. Même si le nombre de contributeurs était plutôt élevé, PHP était toujours le projet d'un seul homme.

PHP/FI 2.0 fut publié officiellement en novembre 1997, après avoir passé l'essentiel de sa vie en version bêta. Peu de temps après, une version alpha de PHP 3.0 était publiée.

PHP 3

PHP 3.0 fut la première version du langage tel que nous le connaissons actuellement. Il fut créé par Andi Gutmans et Zeev Suraski en 1997, sous forme de réécriture complète de PHP/FI, lorsqu'ils s'aperçurent que PHP/FI était sous-performant pour leur application de commerce électronique. Dans un effort de coopération et de compatibilité avec les anciennes versions de PHP/FI, Andi, Rasmus et Zeev décidèrent de coopérer et d'annoncer PHP 3.0 comme le successeur officiel de PHP/FI. Le développement de PHP/FI 2.0 fut complètement arrêté.

Une des améliorations notables de PHP 3.0 fut ses capacités d'extensions. En plus de fournir une solide infrastructure aux utilisateurs finaux, des accès à de nombreuses bases de données et protocoles, PHP 3.0 proposait une API modulaire, qui attira des douzaines de développeurs. Ceux-ci réalisèrent et partagèrent de nouvelles extensions. Sans doute, ce fut la clé du succès retentissant de PHP 3.0. Les autres améliorations de PHP 3.0 furent le support de la syntaxe objet, et une syntaxe de langage plus robuste et cohérente.

Le nouveau langage fut publié sous un nouveau nom, qui indiquait clairement que le projet n'était plus un projet personnel, comme l'était PHP/FI 2.0. Il fut nommé 'PHP' avec une nouvelle signification : 'PHP: Hypertext Preprocessor'. C'est un acronyme récursif, c'est-à-dire qu'il se définit lui-même. En français, cela donne : 'Le préprocesseur Hypertexte, c'est PHP'.

À la fin de 1998, PHP avait conquis une base de plusieurs dizaines de milliers d'utilisateurs, et des centaines de milliers de sites indiquaient qu'ils l'utilisaient. Au plus fort de son utilisation, PHP 3.0 était installé sur 10 % du parc mondial de serveurs web.

PHP 3.0 fut officiellement publié en Juin 1998, après 9 mois de tests.

PHP 4

Durant l'hiver 1998, juste après la publication de PHP 3.0, Andi Gutmans et Zeev Suraski commencèrent la réécriture du moteur interne de PHP à la base. L'objectif était d'améliorer les performances de PHP avec les applications complexes et d'améliorer la modularité du code. Ces applications étaient rendues possibles par la syntaxe de PHP 3.0 mais le logiciel n'était pas conçu pour supporter efficacement ces applications.

Le nouveau moteur, appelé 'Zend Engine' (combinaison des noms de Zeev et Andi), atteint 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, les sessions HTTP, la bufferisation de sortie, une sécurité accrue des informations visiteurs et plusieurs nouvelles structures de langage.

Actuellement, PHP est utilisé par des centaines de milliers de développeurs, et plusieurs millions de sites web indiquent qu'ils sont configurés avec PHP, ce qui représente environ 20 % des noms de domaine sur Internet.

L'équipe de développement de PHP inclut des douzaines de développeurs, et d'autres équipes travaillent à des projets liés tels que PEAR ou la documentation.

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 et des dizaines de nouvelles fonctionnalités. Pour plus d'informations concernant ce moteur, lisez cette page web.

Précédent | Sommaire | Suivant
Annexes | Niveau supérieur | Quelques projets liés à PHP


Quelques projets liés à PHP

PEAR

PEAR, signifie 'PHP Extension and Application Repository' (initialement, PHP Extension and Add-on Repository) et est la première version des classes de base en PHP. Elle deviendra à terme le moyen privilégié de distribuer des extensions PHP entre développeurs.

PEAR a été conçu 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 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 à la communauté PHP entière. PEAR inclut une vaste sélection de classes de base pour réaliser une couche d'abstraction de bases de données, du cache, des calculs mathématiques et des transactions de commerce électronique.

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é sur des environnements de production. L'équipe est constituée d'un groupe de développeurs de haut niveau, qui ont une bonne connaissance des sources PHP. Ces développeurs passent le plus clair de leur temps à localiser et supprimer les bogues trouvés dans PHP. De plus, il y a bien d'autres membres du groupe PHP qui testent et fournissent un compte-rendu fidèle de l'utilisation de PHP sur différentes plate-formes.

PHP-GTK

PHP-GTK est la solution PHP pour écrire des applications avec interface, coté client. Andrei Zmievski se souvient de la création de PHP-GTK :

La programmation d'interface GUI a toujours été une passion pour moi, et je pensais que Gtk+ était une excellente bibliothèque, hormis le fait qu'elle était écrite en C, ce qui était 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 du 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 était un programme PHP qui lisait un ensemble de fichiers .defs, contenant les classes, constantes et méthodes Gtk+, puis générait le code d'interface de PHP. Ce qui ne pouvait pas être généré automatiquement était traité à 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 pas beaucoup 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. Cela a pris encore quelques mois pour avoir une version initiale. Elle fut publiée en mars 2001. Cela a encore pris quelques mois pour que le projet soit dans une forme présentable. Ce projet fut rapidement présenté sur SlashDot.

Anticipant que PHP-GTK serait un projet à part entière, j'ai installé 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 demandait aussi de l'aide, 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, et le manuel s'améliore de plus en plus. Des extensions ont été écrites pour PHP-GTK et des applications de plus en plus importantes sont conçues.

Précédent | Sommaire | Suivant
Histoire de PHP | Niveau supérieur | Livres traitant de PHP


Livres traitant de PHP

Comme PHP a évolué, il a été reconnu comme une plate-forme de développement populaire. Un des signes qui ne trompent pas est que le nombre de livres dédiés à PHP a évolué parallèlement.

À notre connaissance, le premier livre dédié à PHP fut 'PHP - tvorba interaktivních internetových aplikací' - 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 trois livres se rapportaient à PHP 3.0.

Même si ces livres restent uniques dans leur genre, ils furent rapidement suivis par un grand nombre d'autres livres, de différents éditeurs. Il y a plus de 40 livres en anglais, 50 en allemand et plus de 20 en français. De plus, on peut maintenant trouver des livres sur PHP dans de nombreuses autres langues, comme l'espagnol, le coréen, le japonais ou l'hébreu.

Ce grand nombre de livres, écrits par différents auteurs et publiés par différents éditeurs, ainsi que leur disponibilité en différentes langues, témoigne clairement du succès planétaire de PHP.

Précédent | Sommaire | Suivant
Quelques projets liés à PHP | Niveau supérieur | Publications sur PHP


Publications sur PHP

À notre connaissance, le premier article consacré à PHP dans un magazine papier fut publié dans un magazine français, vers la fin 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 différents 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.

Précédent | Sommaire | Suivant
Livres traitant de PHP | Niveau supérieur | Migrating from PHP 5.1.x to PHP 5.2.x


Migration de PHP 4 à PHP 5

Manuel PHP
Précédent Suivant

Annexe C. Migration de PHP 4 à PHP 5

Table des matières
Nouveautés de PHP 5
Incompatibilités avec les version antérieures
CLI et CGI
Migration des fichiers de configuration
Nouvelles fonctions
Nouvelles Directives
Bases de données
Nouveau Modèle Objet
Rapport d'erreurs

Nouveautés de PHP 5

Les modifications apportées à PHP 5 et au Zend Engine 2 augmentent considérablement les capacités et les performances de PHP. Une attention toute particulière a été apportée à ce que cette nouvelle version soit la plus compatible possible avec les scripts antérieurs. Ainsi la migration de votre code de PHP 4 vers PHP 5 devrait être aisée. La plupart des scripts PHP 4 devraient être prêts à fonctionner sans nécessiter la moindre modification. Il existe toutefois quelques différences et vous devriez tester vos codes avant de changer de version en production.

Précédent | Sommaire | Suivant
Other Enhancements | Niveau supérieur | Incompatibilités avec les version antérieures


Incompatibilités avec les version antérieures

Bien que la plupart des scripts PHP 4 existants devraient fonctionner, il convient de noter quelques incompatibilités avec les versions antérieures de PHP :

  • Il y a quelques nouveaux mots réservés.

  • strrpos() et strripos() utilisent maintenant une chaîne de caractères complète (un seul caractère auparavant) en tant qu'élément de recherche.

  • L'utilisation d'index illégaux sur une chaîne de caractères entraîne maintenant un message E_ERROR au lieu d'un message E_WARNING auparavant. Voici un exemple incorrect : $str = 'abc'; unset($str[0]);.

  • La fonction array_merge() a été modifiée pour n'accepter que des tableaux. Pour chaque variable passée en paramètre autre qu'un tableau, un message E_WARNING sera envoyé. Soyez attentifs car votre script pourrait émettre des E_WARNING de façon inopinée.

  • La variable de serveur PATH_TRANSLATED n'est plus définie implicitement avec Apache2 SAPI contrairement à auparavant (PHP 4) où elle était fixée avec la même valeur que SCRIPT_FILENAME lorsqu'Apache ne la renseignait pas. Cette modification a été apportée afin d'être en conformité avec les spécifications CGI. Merci de consulter le bogue #23610 pour plus d'informations, ainsi que la description de $_SERVER['PATH_TRANSLATED'] du manuel. Ce problème affecte également PHP >= 4.3.2.

  • La constante T_ML_CONSTANT n'est plus définie par l'extension Tokenizer. Si error_reporting est réglée à E_ALL, PHP va générer un avertissement. Bien que T_ML_CONSTANT n'ait jamais été utilisée, elle était définie dans PHP 4. Avec PHP 4 et PHP 5, // et /* */ sont assimilés à la constante T_COMMENT. Toutefois les commentaires de style PHPDoc /** */, qui sont analysés depuis PHP 5, sont reconnus en tant que T_DOC_COMMENT.

  • $_SERVER contient dorénavant argc et argv si votre variables_order inclus "S". Si vous avez configuré votre système pour qu'il ne crée pas $_SERVER, ils n'existeront bien sûr pas. Cette modification a été effectuée afin que argc et argv soient toujours accessibles dans la version CLI quelle que soit la valeur de variables_order. Ainsi, la version CLI renseignera dorénavant toujours les variables $argc et $argv.

  • Un objet sans propriété n'est plus considéré comme vide (empty()).

  • Dans certains cas, les classes doivent être déclarées avant d'être utilisées. Cela survient uniquement si les nouvelles fonctionnalités de PHP 5 (comme les interfaces) sont utilisées. Sinon, le comportement sera le même qu'avant.

  • Les fonctions get_class(), get_parent_class() et get_class_methods() retournent désormais le nom de la classe comme elle a été déclarée (sensible à la casse), ce qui peut causer des problèmes dans vos anciens scripts qui utilisent le comportement précédent (le nom de la classe était toujours retourné en minuscules). Une solution possible est de rechercher ces fonctions dans tous vos anciens scripts et d'utiliser la fonction strtolower().

    Ces changements de sensibilité à la casse sont également appliqués aux constantes magiques prédéfinies __CLASS__, __METHOD__ et __FUNCTION__. Les valeurs sont retournées exactement comme elles ont été déclarées (sensible à la casse).

  • La fonction ip2long() retourne maintenant FALSE lorsqu'une adresse IP invalide est entrée comme argument de la fonction, et non plus -1.

  • Lorsque des fonctions sont définies dans un fichier inclus, elles peuvent être utilisées dans le fichier principal, qu'elles soient définies avant ou après l'instruction return(). Si le fichier est inclus deux fois, PHP 5 émet une erreur fatale car les fonctions sont toujours déclarées, tandis que PHP 4 n'a aucun problème avec ça. Il est recommandé d'utiliser l'instruction include_once() au lieu de vérifier si le fichier a déjà été inclus et de retourner, conditionnellement, l'inclusion du fichier.

  • include_once() et require_once() normalisent d'abord le chemin du fichier à inclure sous Windows. Donc inclure le fichier A.php et le fichier a.php revient à n'inclure qu'une seule fois ce fichier.

Exemple C-1. strrpos() et strripos() recherchent maintenant une chaîne de caractères dans une autre

<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)

var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>

Exemple C-2. Un objet sans propriété n'est plus considéré comme vide (empty())

<?php
class test { }
$t = new test();

var_dump(empty($t)); // echo bool(false)

if ($t) {
    // Cette portion de code sera exécutée
}
?>

Exemple C-3. Dans certains cas, les classes doivent être déclarées avant d'être utilisées

<?php

// fonctionne sans erreur :
$a = new a();
class a {
}

// ici, une erreur :
$a = new b();

interface c{
}
class b implements c {
}

?>

Précédent | Sommaire | Suivant
Migration de PHP 4 à PHP 5 | Niveau supérieur | CLI et CGI


CLI et CGI

PHP 5 introduit des modifications dans les noms des fichiers CLI et CGI. Avec PHP 5, la version CGI s'appelle maintenant php-cgi.exe (auparavant php.exe) et la version CLI se trouve maintenant dans le répertoire principal de PHP (auparavant cli/php.exe).

Un nouveau mode a également été introduit avec PHP 5 : php-win.exe. Cette version est équivalente à la version CLI sauf qu'elle n'ouvre pas de fenêtre de console DOS au lancement. Ce comportement est similaire à celui de php-gtk.

Avec PHP 5, la version CLI renseignera toujours les variables globales $argc et $argv en accord avec toutes les directvies du php.ini. Même si vous avez la directive register_argc_argv configurée à Off, cela n'aura pas d'effet sur la version CLI.

Voir aussi la documentation sur la ligne de commande.

Précédent | Sommaire | Suivant
Incompatibilités avec les version antérieures | Niveau supérieur | Migration des fichiers de configuration


Migration des fichiers de configuration

Les modules ISAPI ayant changé de nom (php4xxx vers php5xxx), il est nécessaire de faire quelques modifications dans vos fichiers de configuration. Des modifications des noms des versions CLI et CGI ont également été faites. Consultez la section correspondante pour plus d'informations.

La migration du fichier de configuration Apache est très facile. Consultez l'exemple ci-dessous afin de connaître les modifications que vous devez faire :

Exemple C-4. Migration des fichiers de configuration Apache

# changez cette ligne :
LoadModule php4_module /php/sapi/php4apache2.dll

# en :
LoadModule php5_module /php/php5apache2.dll

Si votre serveur web utilise PHP en mode CGI, il vous faut noter que la version CGI a changé de nom, passant de php.exe à php-cgi.exe. Voici la modification à faire, pour Apache :

Exemple C-5. Migration des fichiers de configuration Apache, en mode CGI

# changez cette ligne :
Action application/x-httpd-php "/php/php.exe"

# en :
Action application/x-httpd-php "/php/php-cgi.exe"

Si vous utilisez un serveur web autre que Apache, vous devez également changer le nom de fichier du module ISAPI ou du CGI.

Précédent | Sommaire | Suivant
CLI et CGI | Niveau supérieur | Nouvelles fonctions


Nouvelles fonctions

PHP 5 introduit de nouvelles fonctions. En voici la liste :

Tableaux :

  • array_combine() : créé un tableau en combinant un tableau pour les clés et un autre pour les valeurs correspondantes.

  • array_diff_uassoc() : renvoie la différence entre deux tableaux avec la possibilité de vérifier les index par l'appel d'une fonction utilisateur de callback.

  • array_udiff() : renvoie la différence entre deux tableaux en utilisant une fonction de callback pour la comparaison des valeurs.

  • array_udiff_assoc() : renvoie la différence entre deux tableaux avec la possibilité de vérifier les index. Les valeurs sont, elles, comparées grâce à une fonction utilisateur de callback.

  • array_udiff_uassoc() : renvoie la différence entre deux tableaux avec la possibilité de vérifier les index. Les valeurs sont comparées grâce à une fonction utilisateur de callback ; les index sont également comparés grâce à une (autre) fonction utilisateur de callback.

  • array_walk_recursive() : applique une fonction utilisateur de façon récursive à chaque élément d'un tableau.

  • array_uintersect_assoc() : calcule l'intersection de deux tableaux avec une vérification des index. Les données sont comparées en utilisant une fonction de callback.

  • array_uintersect_uassoc() : calcule l'intersection de deux tableaux avec une vérification des index. Les données et les index sont comparés en utilisant des fonctions de callback.

  • array_uintersect() : calcule l'intersection de deux tableaux. Les données sont comparées en utilisant une fonction de callback.

InterBase :

  • ibase_affected_rows() : renvoie le nombre de lignes modifiées par la requête précédente.

  • ibase_backup() : lance une tâche de sauvegarde dans le gestionnaire de services et rend la main immédiatement.

  • ibase_commit_ret() : permet de valider une transaction sans avoir à la fermer.

  • ibase_db_info() : renvoie des statistiques sur une base de données.

  • ibase_drop_db() : supprime une base de données.

  • ibase_errcode() : renvoie un code d'erreur.

  • ibase_free_event_handler() : annule un gestionnaire d'événements enregistré.

  • ibase_gen_id() : incrémente le générateur donné et renvoie sa nouvelle valeur.

  • ibase_maintain_db() : exécute une commande de maintenance sur le serveur de base de données.

  • ibase_name_result() : assigne un nom à un jeu de résultats.

  • ibase_num_params() : renvoie le nombre de paramètres d'une requête préparée.

  • ibase_param_info() : renvoie des informations sur un paramètre spécifique d'une requête préparée.

  • ibase_restore() : lance une restauration dans le gestionnaire de services et rend la main immédiatement.

  • ibase_rollback_ret() : annule la transaction et conserve son contexte.

  • ibase_server_info() : renvoie des statistiques sur une base de données.

  • ibase_service_attach() : initie une connexion au gestionnaire de services.

  • ibase_service_detach() : arrête une connexion au gestionnaire de services.

  • ibase_set_event_handler() : permet d'enregistrer une fonction de callback appelée lorsque des événements sont postés.

  • ibase_wait_event() : attend qu'un événement soit posté par la base de données.

iconv :

  • iconv_mime_decode() : décode un champ d'en-tête MIME.

  • iconv_mime_decode_headers() : décode plusieurs champs d'en-tête MIME en une seule fois.

  • iconv_mime_encode() : crée un champ d'en-tête MIME.

  • iconv_strlen() : renvoie le nombre de caractères de la chaîne.

  • iconv_strpos() : trouve la position de la première occurrence d'une chaîne donnée dans une autre chaîne.

  • iconv_strrpos() : trouve la position de la dernière occurrence dans une chaîne

  • iconv_substr() : supprime un morceau de chaîne.

Flux :

  • stream_copy_to_stream() : copie les données d'un flux vers un autre.

  • stream_get_line() : récupère une ligne d'un flux donné jusqu'au délimiteur fourni.

  • stream_socket_accept() : accepte une connexion sur un socket créé avecstream_socket_server().

  • stream_socket_client() : ouvre une connexion socket sur un domaine Unix ou Internet.

  • stream_socket_get_name() : récupère le nom des sockets locaux ou distants.

  • stream_socket_recvfrom() : reçoit des données d'un socket, qu'il soit connecté ou non.

  • stream_socket_sendto() : envoie un message vers un socket, qu'il soit connecté ou non.

  • stream_socket_server() : créé un socket de domaine Unix ou Internet.

Date et heure :

  • idate() : formate une date/heure en tant qu'entier.

  • date_sunset() : renvoie l'heure du coucher du soleil pour un jour et un endroit donnés.

  • date_sunrise() : renvoie l'heure du lever du soleil pour un jour et un endroit donnés.

  • time_nanosleep() : marque une pause exprimée en secondes et nanosecondes.

Chaîne de caractères :

  • str_split() : convertit une chaîne en tableau.

  • strpbrk() : recherche dans une chaîne l'un des caractères d'une liste.

  • substr_compare() : compare deux chaînes depuis un offset jusqu'à une longueur en caractères, d'une façon sécurisée contre les données binaires et, optionnellement, insensible à la casse.

Autres :

  • convert_uudecode() : décode une chaîne au format uuencode.

  • convert_uuencode() : encode une chaîne au format uuencode.

  • curl_copy_handle() : copie un descripteur cURL avec toutes ses préférences.

  • dba_key_split() : sépare une clé sous forme de chaîne en représentation sous forme de tableau.

  • dbase_get_header_info() : récupère les informations d'en-tête d'une base de données dBase.

  • dbx_fetch_row() : récupère une ligne à partir d'un résultat de requête ayant le marqueur DBX_RESULT_UNBUFFERED.

  • fbsql_set_password() : change le mot de passe d'un utilisateur donné.

  • file_put_contents() : écrit une chaîne dans un fichier.

  • ftp_alloc() : alloue de l'espace pour un fichier à uploader.

  • get_declared_interfaces() : renvoie un tableau contenant toutes les interfaces déclarées.

  • get_headers() : renvoie tous les en-têtes envoyés par le serveur en réponse à une requête HTTP.

  • headers_list() : renvoie la liste des en-têtes de réponse envoyés (ou prêts à être envoyés).

  • http_build_query() : renvoie une requête encodée sous forme d'URL.

  • image_type_to_extension() : renvoie l'extension
de fichier pour le type d'image retourné par getimagesize(),
exif_read_data(),
exif_thumbnail(),
exif_imagetype().

  • imagefilter() : applique un filtre sur une image en utilisant des arguments spécialisés.

  • imap_getacl() : récupère la valeur de l'ACL pour une boîte aux lettres donnée.

  • ldap_sasl_bind(): établit une liaison à un répertoire LDAP en utilisant SASL.

  • mb_list_encodings() : retourne un tableau contenant tous les encodages supportés.

  • pcntl_getpriority() : renvoie la priorité d'un processus.

  • pcntl_wait() : attend ou renvoie le statut d'un processus enfant comme défini par l'appel système waitpid().

  • pg_version() : renvoie un tableau contenant les versions du client, du protocole et du serveur PostGreSQL, si disponibles.

  • php_check_syntax() : vérifie la syntaxe d'un fichier donné.

  • php_strip_whitespace() : renvoie la source en supprimant les commentaires et les espaces.

  • proc_nice() : change la priorité du processus courant.

  • pspell_config_data_dir() : change l'emplacement des fichiers de langues.

  • pspell_config_dict_dir() : change l'emplacement de la liste principale de mots.

  • setrawcookie() : envoie un cookie sans encodage url de la valeur.

  • scandir() - Liste les fichiers et les dossiers d'un chemin spécifique.

  • snmp_read_mib() : lit et analyse un fichier MIB dans l'arbre actif MIB.

  • sqlite_fetch_column_types() : renvoie un tableau contenant les types des colonnes pour une table spécifiée.

Note : L'API de l'extension Tidy a changé du tout au tout.

Précédent | Sommaire | Suivant
Migration des fichiers de configuration | Niveau supérieur | Nouvelles Directives


Nouvelles Directives

De nouvelles directives pour le fichier php.ini ont été ajoutées avec PHP 5. En voici une liste :

  • mail.force_extra_parameters : permet de forcer l'ajout du paramètre spécifié en tant que paramètre supplémentaire pour sendmail. Ces paramètres prendront la place du cinquième paramètre de la fonction mail() quoi qu'il arrive, même en safe mode.

  • register_long_arrays : permet/interdit à PHP d'utiliser les tableaux $HTTP_*_VARS.

  • session.hash_function : permet de choisir une fonction de hachage (MD5 ou SHA-1).

  • session.hash_bits_per_character : permet de définir le nombre de bits utilisés pour chaque caractère lors de conversions de données binaires en éléments lisibles (de 4 à 6).

  • zend.ze1_compatibility_mode : active le mode de compatibilité avec le Zend Engine 1 (PHP 4).

Précédent | Sommaire | Suivant
Nouvelles fonctions | Niveau supérieur | Bases de données


Bases de données

Certaines modifications ont été apportées au support des bases de données (MySQL et SQLite).

PHP 5 n'intègre pas les bibliothèques clientes MySQL par défaut, entre autres pour des raisons de licence. Pour plus d'informations, lisez la FAQ.

Il existe également une nouvelle extension, MySQLi (Improved MySQL), créée pour fonctionner avec MySQL 4.1 et supérieur.

À partir de PHP 5, l'extension SQLite est intégrée à PHP. SQLite est un moteur de bases de données embarqué, il ne s'agit pas simplement d'une bibliothèque cliente permettant de se connecter à un serveur de bases de données (comme MySQL ou PostgreSQL). La bibliothèque SQLite lit et écrit ses bases de données directement dans des fichiers sur le disque.

Précédent | Sommaire | Suivant
Nouvelles Directives | Niveau supérieur | Nouveau Modèle Objet


Nouveau Modèle Objet

PHP 5 inclut un nouveau modèle objet. Le traitement des objets en PHP a complètement été réécrit pour arriver à de meilleures performances et plus de fonctionnalités. Dans les versions précédentes de PHP, les objets étaient traités comme des types primitifs (par exemple les entiers ou les chaînes de caractères). L'inconvénient de cette méthode était que sémantiquement, l'objet en entier était copié lorsqu'une variable était assignée ou passée comme paramètre à une fonction. Dans la nouvelle approche, les objets sont référencés par un pointeur et non pas leur valeur (on peut penser à un pointeur en tant qu'identifiant d'objet).

Beaucoup de développeurs PHP ne se rendent pas compte des caprices lors de la copie dans l'ancien modèle objet et, par conséquent, la majorité des applications PHP devrait fonctionner directement ou avec très peu de modifications.

Le nouveau modèle objet est documenté dans la partie de référence du langage.

Voir aussi la directive zend.ze1_compatibility_mode pour la compatibilité avec PHP 4.

Précédent | Sommaire | Suivant
Bases de données | Niveau supérieur | Rapport d'erreurs


Rapport d'erreurs

En PHP 5, la nouvelle constante de rapport d'erreurs E_STRICT a été introduite avec comme valeur 2048. Cela permet à PHP, lors de l'exécution, de faire des suggestions sur l'interopérabilité et le suivi de votre code. Ceci vous permet de toujours utiliser les meilleures méthodes de codage et les plus récentes : par exemple les messages stricts vous avertiront sur l'utilisation de fonctions obsolètes.

Note : E_ALL n'inclut pas E_STRICT; il n'est donc pas activé par défaut.

Précédent | Sommaire | Suivant
Nouveau Modèle Objet | Niveau supérieur | Migration de PHP 3 à PHP 4


Migration de PHP 3 à PHP 4

Manuel PHP
Précédent Suivant

Annexe D. Migration de PHP 3 à PHP 4

Table des matières
Ce qui a changé en PHP 4
Utiliser PHP 3 et PHP 4 simultanément
Migration des fichiers de configuration
Comportement de l'analyseur
Rapport d'erreur
Initialiseur
empty("0")
Fonctions manquantes
Extensions PHP 3
Substitution de variables dans les chaînes
Cookies
Gestion des variables globales

Ce qui a changé en PHP 4

PHP 4 et le moteur Zend ont significativement amélioré les performances et les possibilités de PHP, tout en assurant une compatibilité ascendante maximale. La plupart des scripts existants écrits en PHP 3 fonctionneront sous PHP 4. La migration de votre code de PHP 3 vers PHP 4 sera beaucoup plus facile que celle de PHP/FI 2 vers 3. Un grand nombre de scripts seront prêts sans modification, mais il est bon que vous connaissiez les quelques différences et que vous testiez vos applications avant d'effectuer le changement de cadre de production. Les indications suivantes vous mettront sur la voie.

Précédent | Sommaire | Suivant
Rapport d'erreurs | Niveau supérieur | Utiliser PHP 3 et PHP 4 simultanément


Utiliser PHP 3 et PHP 4 simultanément

Les systèmes d'exploitation récents disposent de capacités de versioning et de scoping. Ces fonctionnalités rendent possible l'installation de PHP 3 et PHP 4 comme modules Apache, simultanément.

Ceci a été fait sur les plate-formes suivantes :

  • Linux avec les binutils récents (testé avec binutils 2.9.1.25)

  • Solaris 2.5 ou plus récent

  • FreeBSD (testé avec 3.2, 4)

Pour l'activer, configurez PHP 3 et PHP 4 pour qu'ils utilisent APXS (--with-apxs) et les extensions nécessaires (--enable-versioning). En dehors de cela, toutes les instructions d'installation habituelles s'appliquent. Par exemple :

Exemple D-1. Configuration pour utiliser simultanément PHP 3 et 4

$ ./configure \
  --with-apxs=/apache/bin/apxs \
  --enable-versioning \
  --with-mysql \
  --enable-track-vars

Précédent | Sommaire | Suivant
Migration de PHP 3 à PHP 4 | Niveau supérieur | Migration des fichiers de configuration


Migration des fichiers de configuration

Le fichier de configuration global, php3.ini, a été renommé en php.ini.

Pour les fichiers de configuration Apache, il y a eu des modifications plus importantes. Les types MIME reconnus par le module PHP ont été modifiés.

Exemple D-2. Activation des types MIME PHP 3 et 4

application/x-httpd-php3        -->    application/x-httpd-php
application/x-httpd-php3-source -->    application/x-httpd-php-source

Vous pouvez faire fonctionner vos deux versions de PHP avec le même fichier de configuration Apache (suivant la version qui est déjà compilée sur le serveur), en utilisant la syntaxe suivante :

Exemple D-3. Utilisation du même fichier de configuration Apache pour PHP 3 et 4

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

De plus, les noms des directives PHP pour Apache ont aussi été modifiés.

Depuis PHP 4, il n'y a que 4 directives Apache qui se rapportent à PHP :

Exemple D-4. Directives Apache pour PHP 4

php_value [PHP directive name] [value]
php_flag [PHP directive name] [On|Off]
php_admin_value [PHP directive name] [value]
php_admin_flag [PHP directive name] [On|Off]

Il y a deux différences entre les options Admin et les autres valeurs :

  • Les options d'administration ne peuvent être placées que dans le fichier de configuration général (i.e. httpd.conf).

  • Les options standard ne peuvent pas contrôler certaines directives PHP. Par exemple, le safe mode (si vous pouviez modifier les configurations dans le fichier .htaccess, cela annulerait toute la sécurité du safe mode). À l'inverse, les valeurs d'administration peuvent modifier n'importe quelle directive PHP.

Pour rendre le processus de transition plus agréable, PHP 4 est distribué avec des scripts qui convertissent automatiquement votre fichier de configuration Apache et vos fichiers .htaccess pour qu'ils puissent fonctionner aussi bien avec PHP 3 que PHP 4. Ces scripts ne convertissent PAS les lignes concernant les types MIME. Vous devez le faire vous-même.

Pour convertir votre fichier de configuration Apache, exécutez le script apconf-conv.sh (disponible dans le dossier scripts/apache/). Par exemple :

Exemple D-5. Conversion du fichier de configuration Apache pour PHP 4

~/php4/scripts/apache:#  ./apconf-conv.sh /usr/local/apache/conf/httpd.conf

Votre configuration originale sera sauvegardée dans le fichier httpd.conf.orig.

Pour convertir vos fichiers .htaccess, exécutez le script aphtaccess-conv.sh (disponible dans le dossier scripts/apache/). Par exemple :

Exemple D-6. Conversion des fichiers .htaccess pour PHP 4

~/php4/scripts/apache:#  find / -name .htaccess -exec ./aphtaccess-conv.sh {} \;

De la même façon, votre ancien fichier .htaccess sera sauvé sous le nom .htaccess.orig.

Les scripts de conversion requièrent l'installation préalable de awk.

Précédent | Sommaire | Suivant
Utiliser PHP 3 et PHP 4 simultanément | Niveau supérieur | Comportement de l'analyseur


Comportement de l'analyseur

L'analyse et l'exécution sont désormais deux étapes complètement dissociées, et l'exécution intervient lorsque le code, avec tous ses inclusions et pré-requis, a été complètement analysé et validé.

Une des nouvelles conditions introduites est que les fichiers inclus et requis (include() et require()) doivent être syntaxiquement complets. Vous ne pouvez plus répartir différents cas de votre code dans plusieurs fichiers. Vous ne pouvez plus commencer une boucle for ou while, une condition if ou un cas switch dans un fichier, et finir la boucle ou placer les cas else, endif, case ou break dans un autre fichier.

Il est toujours valable d'inclure du code supplémentaire depuis une boucle ou dans une condition, mais les accolades de bloc {...}, et les éléments de la boucle doivent être dans le même fichier ou dans la même chaîne évaluée avec eval().

Cela ne devrait pas perturber trop de monde car éclater son code ainsi est de toute façon considéré comme un très mauvais style de programmation.

Une autre nouveauté est qu'il n'est plus possible de faire retourner une valeur avec un fichier requis (require()) (mais c'est plutôt rare en PHP 3). Retourner une valeur avec un fichier inclus (include()) est toujours possible.

Précédent | Sommaire | Suivant
Migration des fichiers de configuration | Niveau supérieur | Rapport d'erreur


Rapport d'erreur

Changement de configuration

Avec PHP 3, le niveau de rapport d'erreur était obtenu en ajoutant les constantes numériques de chaque niveau de rapport. Généralement, on utilisait 15 pour afficher toutes les erreurs, et 7 pour afficher toutes les erreurs hormis les alertes simples.

PHP 4 dispose d'un nombre significativement plus grand de niveaux de rapport d'erreur, et l'analyseur accepte désormais les constantes symboliques destinées à configurer le comportement désiré.

Le niveau de rapport d'erreur doit désormais être explicitement configuré en supprimant les niveaux dont vous ne voulez pas, grâce à la fonction de OU exclusif. Ça a l'air compliqué? Supposons que vous souhaitiez afficher toutes les erreurs, hormis les alertes de style, qui sont repérées par la constante : E_NOTICE. Il suffit d'ajouter la valeur suivante dans le fichier php.ini : error_reporting = E_ALL & ~E_NOTICE. Si vous voulez supprimer aussi les alertes, vous pouvez ajouter la constante appropriée, en la combinant avec l'opérateur OU logique '|': error_reporting= E_ALL & ~( E_NOTICE | E_WARNING ).

Avertissement

Lors de la mise à jour de votre code ou de vos serveurs de PHP 3 à PHP 4, vous devez vérifier ces valeurs de configuration et appeler la fonction error_reporting() ou bien désactiver les nouveaux types d'erreurs, tout spécialement E_COMPILE_ERROR. Ceci peut mener à des documents vides sans aucune possibilité de tracer ce qui s'est produit ou où rechercher le problème.

Avertissement

L'utilisation des anciennes valeurs 7 et 15 est une très mauvaise idée, car elles ne prennent pas en compte les nouvelles classes d'erreurs, y compris certaines erreurs d'analyse. Cela peut conduire à des résultats très étranges, où le script n'affiche plus rien, malgré une erreur d'analyse.

Cela a conduit dans le passé à un grand nombre de rapports de bogues sur l'analyseur, alors que les programmeurs n'étaient tout simplement pas capables de repérer l'accolade manquante dans un fichier requis, car l'analyseur avait la consigne de cacher ces erreurs.

Vérifier votre niveau d'erreur doit être le premier réflexe lorsque vos scripts meurent silencieusement. Le moteur Zend est considéré actuellement comme suffisamment mature pour ne plus causer ce genre de problème aujourd'hui.

Nouveaux messages d'erreurs

Un grand nombre de scripts PHP 3 utilisent des structures qui doivent être considérées comme un très mauvais style, même si elles effectuent bien les tâches qui leur sont affectées, car ces scripts ne sont pas robustes. PHP 4 affichera de nombreux messages d'erreur dans des situations où PHP 3 restera coi. La solution de facilité consiste à supprimer les messages de niveau E_NOTICE, mais c'est une meilleure idée de plutôt corriger le code.

Le cas le plus courant qui génèrera des messages d'alertes est l'utilisation de constantes sans guillemets comme index de tableaux. PHP 3, comme PHP 4, finiront par les interpréter littéralement comme des chaînes, si aucune constante n'est définie à la place. Mais si jamais une telle constante est définie dans une autre partie du code, cela risque de produire des résultats étonnants. Cela peut devenir un trou de sécurité si un pirate arrive à redéfinir les constantes de telle manière que le script lui donne accès à un niveau de droits supérieur. PHP 4 vous signalera tout oubli de guillemets par exemple dans : $_SERVER[REQUEST_METHOD]. Modifier ce code en $_SERVER['REQUEST_METHOD'] rendra l'analyseur heureux, et améliorera grandement votre style et la sécurité du code.

PHP 4 vous signalera les variables ou les éléments de tableaux non initialisés.

Précédent | Sommaire | Suivant
Comportement de l'analyseur | Niveau supérieur | Initialiseur


Initialiseur

Les variables statiques et les membres de classes n'acceptent plus que des initialiseurs scalaires, tandis que PHP 3 acceptait aussi les expressions. Ceci est dû, encore une fois, à la séparation de l'analyse et de l'exécution : aucun code ne peut être exécuté tant que l'analyse n'est pas terminée.

Pour les classes, il vaut mieux initialiser les membres dans le constructeur. Pour les variables statiques, une valeur fixe et simple est la seule chose qui vienne à l'esprit.

Précédent | Sommaire | Suivant
Rapport d'erreur | Niveau supérieur | empty("0")


empty("0")

L'évolution la plus polémique est celle de empty(). Une chaîne contenant seulement le caractère '0' (zéro) est maintenant considérée comme vide, alors qu'elle ne l'était pas en PHP 3.

Ce nouveau comportement prend tout son sens dans les applications web, puisque tous les résultats de champs de type input sont de type chaîne de caractères, même si un nombre est demandé, et ce, grâce aux capacités de conversion automatique de PHP. D'un autre côté, cela peut casser votre code d'une manière très subtile, menant droit au comportement erratique, difficilement repérable si vous ne savez pas ce qui vous attend.

Précédent | Sommaire | Suivant
Initialiseur | Niveau supérieur | Fonctions manquantes


Fonctions manquantes

Bien que PHP 4 dispose de nombreuses fonctionnalités, fonctions et extensions nouvelles, vous pouvez trouver des fonctions PHP 3 qui manquent. Un petit nombre de fonctions de base n'ont pu être portées en PHP 4, maintenant que l'analyse et l'exécution ont été séparées. D'autres fonctions, et mêmes des extensions entières sont maintenant obsolètes, remplacées par de nouvelles fonctions plus puissantes ou plus efficaces. Certaines fonctions n'ont tout simplement pas été portées pour le moment ou pour des raisons de licence.

Fonctions manquantes pour des raisons de structure

Comme PHP 4 sépare l'analyse et l'exécution, il n'est plus possible de modifier le comportement de l'analyseur (intégré dans le moteur Zend) durant l'exécution, puisque toute l'analyse a eu lieu, et est terminée. La fonction short_tags() a cessé d'exister. Vous pouvez toujours modifier le comportement de l'analyseur avec le fichier php.ini.

Une autre fonctionnalité de PHP 3 qui ne fait pas partie de PHP 4 est le débogueur. Des débogueurs réalisés par des tiers sont disponibles, mais ne sont pas distribués avec PHP D'autres extensions du Zend Engine sont aussi disponibles auprès de divers sites et groupes.

Fonctions et extensions obsolètes

Les extensions Adabas et Solid n'existent plus. Longue vie à l'extension ODBC unifiée à la place !

Nouveau statut pour unset()

unset(), bien que toujours disponible, a été implémentée comme une structure du langage et elle n'est plus vraiment une "fonction".

Cela n'a pas de conséquence directe sur le comportement de unset(), mais tester son existence avec function_exists() retournera FALSE comme cela serait le cas avec une autre structure du langage comme echo().

Une autre application pratique disparue est qu'il n'est plus possible d'appeler unset() indirectement, c'est-à-dire que $func = "unset"; $func( $somevar ) ne fonctionnera plus.

Précédent | Sommaire | Suivant
empty("0") | Niveau supérieur | Extensions PHP 3


Extensions PHP 3

Les extensions écrites pour PHP 3 ne fonctionnent plus avec PHP 4, ni les exécutables, ni les codes source. Il n'est pas difficile de porter les extensions de PHP 3 à 4 si vous avez accès aux sources originales. Cet appendice ne contient pas de description détaillée de ce processus de portage.

Précédent | Sommaire | Suivant
Fonctions manquantes | Niveau supérieur | Substitution de variables dans les chaînes


Substitution de variables dans les chaînes

PHP 4 dispose d'un nouveau mécanisme de substitution des variables dans les chaînes. Vous pouvez désormais accéder aux membres d'objets et aux tableaux multidimensionnels dans une chaîne.

Pour ce faire, il suffit de placer la variable entre accolades, le signe $ suivant immédiatement la première accolade : {$variable['a']}

Pour utiliser la valeur d'un membre d'objet dans une chaîne, il suffit d'écrire : "texte {$objet->membre} texte"; alors qu'en PHP 3, il fallait faire comme ceci : "texte " . $objet->membre . " texte".

Cette technique rend le code beaucoup plus lisible, mais risque de poser des problèmes dans certains scripts PHP 3. Vous pouvez facilement traquer ce problème en recherchant les séquences {$ dans votre code, et en les remplaçant par \{$ avec votre outil de remplacement préféré.

Précédent | Sommaire | Suivant
Extensions PHP 3 | Niveau supérieur | Cookies


Cookies

PHP 3 avait la mauvaise habitude d'envoyer les cookies dans l'ordre inverse de celui des appels à setcookie() dans le code. PHP 4 romp avec cette habitude en les envoyant dans le même ordre que vous les mettez dans le code.

Cela peut aussi prendre à contre-pied certains programmes, mais l'ancien comportement était tellement étrange qu'il méritait un tel traitement un jour ou l'autre, pour éviter d'autres problèmes ultérieurs.

Précédent | Sommaire | Suivant
Substitution de variables dans les chaînes | Niveau supérieur | Gestion des variables globales


Gestion des variables globales

Alors que la gestion des variables globales a été surtout étudiée pour être simple en PHP 3 et dans les premières versions de PHP 4, la sécurité est devenue la priorité avec les dernières versions. Alors qu'en PHP 3 l'exemple ci-dessous fonctionnait sans problème, en PHP 4 il faut utiliser unset($GLOBALS["id"]);. Ceci n'est qu'un des problèmes liés à la gestion des variables globales. Vous auriez toujours dû utiliser $GLOBALS, avec les nouvelles versions de PHP vous y êtes obligé dans la plupart des cas. Apprenez-en plus sur ce sujet dans la section références globales.

Exemple D-7. Migration des variables globales

<?php
  $id = 1;
  function test() {
    global $id;
    unset($id);
  }
  test();
  echo($id);
  // Ceci va afficher 1 en PHP 4
?>

Précédent | Sommaire | Suivant
Cookies | Niveau supérieur | Migration de PHP/FI 2 à PHP 3


Migration de PHP/FI 2 à PHP 3

Manuel PHP
Précédent Suivant

Annexe E. Migration de PHP/FI 2 à PHP 3

Table des matières
À propos des incompatibilités en 3.0
old_function
Balises PHP
Syntaxe if...endif
Syntaxe while
Types d'expression
Les messages d'erreur ont changé
Evaluation rapide des booléens
La valeur TRUE/FALSE comme retour de fonctions
Diverses incompatibilités

À propos des incompatibilités en 3.0

PHP 3.0 a été réécrit depuis le début. Le nouvel analyseur syntaxique est beaucoup plus robuste et cohérent qu'en version 2.0. Il est aussi nettement plus rapide et utilise encore moins de mémoire. Cependant, ces améliorations n'ont pu être possibles qu'au prix de modifications parfois importantes, tant au niveau de la syntaxe qu'au niveau des fonctionnalités.

De plus, l'équipe de développement PHP a essayé de nettoyer la syntaxe et la sémantique, ce qui a aussi causé quelques incompatibilités. À long terme, nous pensons que ces modifications seront pour le bien de tous.

Ce chapitre va tenter de vous montrer les incompatibilités que vous pourriez rencontrer lors de votre migration de PHP/FI 2.0 à PHP 3.0 et de vous aider à les résoudre. Les nouvelles fonctionnalités ne sont pas signalées, à moins que cela ne soit nécessaire.

Un programme de conversion automatique de vos anciens scripts PHP/FI 2.0 existe. Il est disponible dans le dossier de convertisseur de la distribution PHP 3.0: c'est le dossier convertor. Ce programme ne fait que repérer les modifications de syntaxe et ne vous épargnera pas une relecture attentive du script.

Précédent | Sommaire | Suivant
Gestion des variables globales | Niveau supérieur | old_function


old_function

L'instruction old_function vous permet de déclarer une fonction en utilisant une syntaxe identique à celle de PHP/FI (hormis le fait que vous devez remplacer "function" par "old_function").

C'est une fonctionnalité obsolète, qui ne doit être utilisée que par les convertisseurs PHP/FI 2 -> PHP 3.

Avertissement

Les fonctions déclarées comme old_function ne peuvent pas être appelées depuis le code interne PHP. Entre autres choses, cela signifie que que vous ne pouvez pas les utiliser avec des fonctions comme usort(), array_walk() et register_shutdown_function(). Vous pouvez contourner cette limitation en écrivant une fonction moderne, qui appelle cette vieille syntaxe old_function.

Précédent | Sommaire | Suivant
Migration de PHP/FI 2 à PHP 3 | Niveau supérieur | Balises PHP


Balises PHP

La première chose que vous remarquerez probablement est que les balises ouvrantes et fermantes de PHP ont changé. L'ancienne forme <? > a été remplacée par trois nouvelles balises possibles :

Exemple E-1. Migration : balises PHP

<?
echo "Ceci est du code PHP/FI 2.0.\n";
>
Comme en version 2.0, PHP/FI accepte aussi cette variante :

Exemple E-2. Migration : premières nouvelles balises PHP

<?
echo "Ceci est du code PHP 3.0!\n";
?>
Notez bien que la balise de fin contient désormais un point d'interrogation et un signe supérieur ">". Cependant, si vous souhaitez utiliser XML sur votre serveur, vous aurez sûrement des problèmes avec cette variante, car PHP risque d'essayer d'exécuter des balises XML. À cause de ceci, la notation suivante a été ajoutée :

Exemple E-3. Migration : nouvelles balises PHP

<?php
echo "Ceci est du code PHP 3.0!\n";
?>
Certains d'entre vous rencontrent des problèmes avec les éditeurs qui ne comprennent pas ce type de balises d'instruction : Microsoft FrontPage est l'un de ces éditeurs, et, pour contourner le problème, la variation suivante a été introduite :

Exemple E-4. Nouvelles balises PHP

<script language="php">
    echo "Ceci est du code PHP 3.0!\n";
</script>

Précédent | Sommaire | Suivant
old_function | Niveau supérieur | Syntaxe if...endif


Syntaxe if...endif

La syntaxe alternative pour écrire des instructions if/elseif/else, avec if(); elseif(); else; endif; ne pouvait pas être conservée sans ajouter beaucoup de complexité à l'analyseur syntaxique. De ce fait, cette syntaxe a été modifiée :

Exemple E-5. Migration : ancienne syntaxe if...endif

<?php
if ($foo);
    echo "oui\n";
elseif ($bar);
    echo "presque\n";
else;
    echo "non\n";
endif;
?>

Exemple E-6. Migration : nouvelle syntaxe if...endif

<?php
if ($foo):
    echo "oui\n";
elseif ($bar):
    echo "presque\n";
else:
    echo "non\n";
endif;
?>
Notez que les points virgules ont été remplacés par des points dans toutes les commandes, sauf pour la dernière expression (endif).

Précédent | Sommaire | Suivant
Balises PHP | Niveau supérieur | Syntaxe while


Syntaxe while

Tout comme pour if...endif, la syntaxe des boucles while...endwhile a changée :

Exemple E-7. Migration : ancienne syntaxe while...endwhile

<?php
while ($more_to_come);
    //...
endwhile;
?>

Exemple E-8. Migration : nouvelle syntaxe while...endwhile

<?php
while ($more_to_come):
    ...
endwhile;
?>

Avertissement

Attention : si vous utilisez la vieille syntaxe while...endwhile en PHP 3.0, vous obtiendrez une boucle sans fin !

Précédent | Sommaire | Suivant
Syntaxe if...endif | Niveau supérieur | Types d'expression


Types d'expression

PHP/FI 2.0 utilisait le membre à gauche dans les expressions, pour déterminer le type de résultat attendu. PHP 3.0 prend en compte les deux côtés de l'expression et cela peut produire des résultats inattendus avec les scripts 2.0.

Considérez les lignes suivantes :

Exemple E-9. Différence entre PHP 2 et PHP 3

<?php
$a[0]=5;
$a[1]=7;
$key = key($a);
while ("" != $key) {
  echo "$keyn";
  next($a);
}
?>
En PHP/FI 2.0, cet exemple va afficher les indices des $a. En PHP 3.0, l'exemple ne va rien afficher du tout. La raison est qu'en PHP 2.0, puisque l'argument de gauche est de type chaîne, une comparaison de chaîne était effectuée et, effectivement, "" n'est pas "", ce qui conduit la boucle à continuer. En PHP 3, lorsqu'une chaîne est comparée avec un entier, la comparaison est de type chaîne (la chaîne est convertie en entier). Ce qui revient à faire la comparaison entre (atoi("")) qui vaut 0 et la variable qui vaut aussi 0 et comme 0==0, la boucle ne commence même pas.

La correction de ceci est simple. Il suffit de remplacer les commandes while par :

Exemple E-10. Nouvelle syntaxe PHP3

<?php
while ((string)$key != "") {
?>

Précédent | Sommaire | Suivant
Syntaxe while | Niveau supérieur | Les messages d'erreur ont changé


Les messages d'erreur ont changé

Les messages d'erreur en PHP 3.0 sont généralement plus précis que ceux de la version 2.0., mais vous ne verrez plus la portion de code qui a causé l'erreur. À la place, un numéro de ligne et un nom de fichier sera retourné.

Précédent | Sommaire | Suivant
Types d'expression | Niveau supérieur | Evaluation rapide des booléens


Evaluation rapide des booléens

En PHP 3, l'évaluation des booléens est court-circuitée. Cela signifie que dans une expression comme ((1 || test_me())), la fonction test_me() ne sera pas exécutée, car cela ne changera pas le résultat.

C'est une amélioration mineure, mais qui peut avoir des effets secondaires importants.

Précédent | Sommaire | Suivant
Les messages d'erreur ont changé | Niveau supérieur | La valeur TRUE/FALSE comme retour de fonctions


La valeur TRUE/FALSE comme retour de fonctions

La plupart des fonctions internes de PHP ont été réécrites pour qu'elles retournent TRUE en cas de succès, et FALSE en cas d'erreur, au contraire des fonctions qui retournaient 0 et -1 en PHP/FI 2.0. Le nouveau comportement est beaucoup plus logique, comme $fp = fopen("/your/file") or fail("fichier non trouvé!");. Étant donné que PHP/FI 2.0 n'a pas de règle claire à propos de ce que les fonctions doivent retourner en cas d'échec, la plupart des scripts devront probablement être vérifiés manuellement, après avoir utilisé le convertisseur 2.0 à 3.0.

Exemple E-11. Migration depuis 2.0 : valeurs retournées, ancienne méthode

<?php
$fp = fopen($file, "r");
if ($fp == -1);
    echo("Impossible d'ouvrir le fichier $file en lecture <br />\n");
endif;
?>

Exemple E-12. Migration depuis 2.0 : valeurs retournées, nouvelle façon

<?php
$fp = @fopen($file, "r") or
print("Impossible d'ouvrir le fichier $file en lecture<br />\n");
?>

Précédent | Sommaire | Suivant
Evaluation rapide des booléens | Niveau supérieur | Diverses incompatibilités


Diverses incompatibilités

  • Le module PHP 3.0 pour Apache n'accepte plus les versions d'Apache antérieures à la version 1.2. Apache 1.2 ou plus récent est nécessaire.

  • echo() n'utilise plus de chaîne de formatage. Il faut utiliser printf() à la place.

  • En PHP/FI 2.0, un effet secondaire de l'implémentation faisait que $foo[0] était la même chose que $foo. Ce n'est plus vrai en PHP 3.0.

  • Lire un tableau avec $array[] n'est plus valable.

    Ainsi, il n'est plus possible de passer en revue un tableau avec des boucles telles que $data = $array[]. Utilisez current() et next() à la place.

    Ainsi, $array1[] = $array2 n'ajoute pas les valeurs de $array2 à $array1, mais crée un nouvel élément dans $array1 et y affecte $array2 comme dernier élément. Voir aussi les tableaux multidimensionnels.

  • "+" n'est plus utilisable comme opérateur de concaténation de chaîne. À la place, il convertit les arguments en nombres et effectue une addition numérique. Utilisez "." à la place.

Exemple E-13. Migration depuis 2.0 : concaténation de chaînes

<?php
echo "1" + "1";
?>

En PHP 2.0 cela retournerait 11, en PHP 3.0 cela va retourner 2. À la place, faites :

<?php
echo "1"."1";
?>
<?php
$a = 1;
$b = 1;
echo $a + $b;
?>

Cela va afficher 2, tant en PHP 2.0 qu'en 3.0.

<?php
$a = 1;
$b = 1;
echo $a.$b;
?>
Cela va afficher 11 en PHP 3.0.

Précédent | Sommaire | Suivant
La valeur TRUE/FALSE comme retour de fonctions | Niveau supérieur | Débogueur PHP


Débogueur PHP

Manuel PHP
Précédent Suivant

Annexe F. Débogueur PHP

Table des matières
À propos du débogueur
Utiliser le débogueur PHP
Protocole du débogueur

À propos du débogueur

PHP 3 inclut le support d'un serveur de débogage.

PHP 4 n'inclut aucun support de débogage. Vous pouvez toutefois utiliser un des débogueur externe. Le Studio Zend inclut un débogueur et il y a aussi des débogueurs gratuits comme http://dd.cron.ru/dbg/, le Advanced PHP Debugger (APD) ou Xdebug qui a toujours une interface de débogage compatible avec les fonctionnalités de débogage de PHP 3 comme décrit dans cette section.

Précédent | Sommaire | Suivant
Diverses incompatibilités | Niveau supérieur | Utiliser le débogueur PHP


Utiliser le débogueur PHP

Le débogueur PHP sert à repérer les bogues récalcitrants. Le débogueur fonctionne en se connectant à un port TCP à chaque démarrage de PHP. Tous les messages d'erreur seront envoyés sur cette connexion. Cette page est faite pour un "serveur de débogage", qui peut fonctionner avec un IDE ou un éditeur programmable (tel que Emacs).

Comment paramétrer le débogueur :

  1. Réservez un port TCP pour le débogueur dans le fichier de configuration (debugger.port) et activez-le (debugger.enabled).

  2. Configurer un client TCP sur ce port (par exemple socket -l -s 1400 sous UNIX).

  3. Dans votre code, placez la ligne "debugger_on(host)", où host est l'IP ou le nom de l'hôte qui supporte le client TCP.

Désormais, toutes les alertes, notes, etc. seront envoyées sur la socket client, même si vous avez désactivé le rapport d'erreur avec error_reporting().

Précédent | Sommaire | Suivant
Débogueur PHP | Niveau supérieur | Protocole du débogueur


Protocole du débogueur

Le protocole de débogage PHP 3 fonctionne ligne par ligne. Chaque ligne a un type type et plusieurs lignes composent un message Chaque message commence avec une ligne du type start et se termine avec une ligne de type end. PHP peut envoyer des lignes de plusieurs messages simultanément.

Voici un exemple de ligne ayant ce format :

Exemple F-1. exemple de ligne au format de débogage

date time host(pid) type: message-data

date

Les dates sont au format ISO 8601 (yyyy-mm-dd)

time

Les heures, y compris les micro-secondes : hh:mm:uuuuuu

host

Le nom DNS ou adresse IP de l'hôte qui a généré l'erreur.

pid

PID (process id) sur l'hôte host, qui a généré l'erreur.

type

Type de la ligne. Indique au programme client comment traiter les données suivantes :

Tableau F-1. Types des lignes du Débogueur

Nom | Signification
start | Indique au programme client que le message du débogueur commence ici. Le contenu de data sera un type d'erreur, comme listé ci-dessous.
message | Le message d'erreur PHP 3.
location | Nom du fichier et numéro de ligne où l'erreur est survenue. La première occurrence de location contiendra toujours la localisation générale. data contiendra : file:line. Il y a toujours une indication de location après un message et après chaque function.
frames | Nombre de frames dans le dump de la pile. S'il y a 4 frames, attendez-vous à des informations sur 4 niveaux de fonctions. Si la ligne "frame" n'existe pas, la profondeur doit être 0 (une erreur est survenue au niveau général).
function | Nom de la fonction qui a généré l'erreur. Elle sera répétée à chaque niveau de la pile d'appel.
end | Indique au client que le message du débogueur se termine ici.

data

Ligne de données.

Tableau F-2. Types d'erreurs du débogueur

Débogueur | Interne PHP 3
alerte (warning) | E_WARNING
erreur | E_ERROR
analyse (parse) | E_PARSE
note (notice) | E_NOTICE
core-error | E_CORE_ERROR
core-warning | E_CORE_WARNING
inconnue | (toutes les autres)

Exemple F-2. Exemple de message du débogueur

1998-04-05 23:27:400966 lucifer.guardian.no(20481) start: notice
1998-04-05 23:27:400966 lucifer.guardian.no(20481) message: Uninitialized variable
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: (null):7
1998-04-05 23:27:400966 lucifer.guardian.no(20481) frames: 1
1998-04-05 23:27:400966 lucifer.guardian.no(20481) function: display
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: /home/ssb/public_html/test.php3:10
1998-04-05 23:27:400966 lucifer.guardian.no(20481) end: notice

Précédent | Sommaire | Suivant
Utiliser le débogueur PHP | Niveau supérieur | Options de configuration


Extending PHP 3

Manuel PHP
Précédent Suivant

Chapitre 48. Extending PHP 3

Table des matières
Adding functions to PHP
Calling User Functions
Reporting Errors

This section is rather outdated and demonstrates how to extend PHP 3. If you're interested in PHP 4, please read the section on the Zend API.

Adding functions to PHP

Function Prototype

All functions look like this:

void php3_foo(INTERNAL_FUNCTION_PARAMETERS) {

}
Even if your function doesn't take any arguments, this is how it is called.

Function Arguments

Arguments are always of type pval. This type contains a union which has the actual type of the argument. So, if your function takes two arguments, you would do something like the following at the top of your function:

Exemple 48-1. Fetching function arguments

pval *arg1, *arg2;
if (ARG_COUNT(ht) != 2 || getParameters(ht,2,&arg1,&arg2)==FAILURE) {
   WRONG_PARAM_COUNT;
}
NOTE: Arguments can be passed either by value or by reference. In both cases you will need to pass &(pval *) to getParameters. If you want to check if the n'th parameter was sent to you by reference or not, you can use the function, ParameterPassedByReference(ht,n). It will return either 1 or 0.

When you change any of the passed parameters, whether they are sent by reference or by value, you can either start over with the parameter by calling pval_destructor on it, or if it's an ARRAY you want to add to, you can use functions similar to the ones in internal_functions.h which manipulate return_value as an ARRAY.

Also if you change a parameter to IS_STRING make sure you first assign the new estrdup()'ed string and the string length, and only later change the type to IS_STRING. If you change the string of a parameter which already IS_STRING or IS_ARRAY you should run pval_destructor on it first.

Variable Function Arguments

A function can take a variable number of arguments. If your function can take either 2 or 3 arguments, use the following:

Exemple 48-2. Variable function arguments

pval *arg1, *arg2, *arg3;
int arg_count = ARG_COUNT(ht);

if (arg_count < 2 || arg_count > 3 ||
    getParameters(ht,arg_count,&arg1,&arg2,&arg3)==FAILURE) {
    WRONG_PARAM_COUNT;
}

Using the Function Arguments

The type of each argument is stored in the pval type field. This type can be any of the following:

Tableau 48-1. PHP Internal Types

IS_STRING | String
IS_DOUBLE | Double-precision floating point
IS_LONG | Long integer
IS_ARRAY | Array
IS_EMPTY | None
IS_USER_FUNCTION | ??
IS_INTERNAL_FUNCTION | ?? (if some of these cannot be passed to a function - delete)
IS_CLASS | ??
IS_OBJECT | ??

If you get an argument of one type and would like to use it as another, or if you just want to force the argument to be of a certain type, you can use one of the following conversion functions:

convert_to_long(arg1);
convert_to_double(arg1);
convert_to_string(arg1);
convert_to_boolean_long(arg1); /* If the string is "" or "0" it becomes 0, 1 otherwise */
convert_string_to_number(arg1);  /* Converts string to either LONG or DOUBLE depending on string */

These function all do in-place conversion. They do not return anything.

The actual argument is stored in a union; the members are:

  • IS_STRING: arg1->value.str.val

  • IS_LONG: arg1->value.lval

  • IS_DOUBLE: arg1->value.dval

Memory Management in Functions

Any memory needed by a function should be allocated with either emalloc() or estrdup(). These are memory handling abstraction functions that look and smell like the normal malloc() and strdup() functions. Memory should be freed with efree().

There are two kinds of memory in this program: memory which is returned to the parser in a variable, and memory which you need for temporary storage in your internal function. When you assign a string to a variable which is returned to the parser you need to make sure you first allocate the memory with either emalloc() or estrdup(). This memory should NEVER be freed by you, unless you later in the same function overwrite your original assignment (this kind of programming practice is not good though).

For any temporary/permanent memory you need in your functions/library you should use the three emalloc(), estrdup(), and efree() functions. They behave EXACTLY like their counterpart functions. Anything you emalloc() or estrdup() you have to efree() at some point or another, unless it's supposed to stick around until the end of the program; otherwise, there will be a memory leak. The meaning of "the functions behave exactly like their counterparts" is: if you efree() something which was not emalloc()'ed nor estrdup()'ed you might get a segmentation fault. So please take care and free all of your wasted memory.

If you compile with "-DDEBUG", PHP will print out a list of all memory that was allocated using emalloc() and estrdup() but never freed with efree() when it is done running the specified script.

Setting Variables in the Symbol Table

A number of macros are available which make it easier to set a variable in the symbol table:

  • SET_VAR_STRING(name,value)

  • SET_VAR_DOUBLE(name,value)

  • SET_VAR_LONG(name,value)

Avertissement

Be careful with SET_VAR_STRING. The value part must be malloc'ed manually because the memory management code will try to free this pointer later. Do not pass statically allocated memory into a SET_VAR_STRING.

Symbol tables in PHP are implemented as hash tables. At any given time, &symbol_table is a pointer to the 'main' symbol table, and active_symbol_table points to the currently active symbol table (these may be identical like in startup, or different, if you're inside a function).

The following examples use 'active_symbol_table'. You should replace it with &symbol_table if you specifically want to work with the 'main' symbol table. Also, the same functions may be applied to arrays, as explained below.

Exemple 48-3. Checking whether $foo exists in a symbol table

if (hash_exists(active_symbol_table,"foo",sizeof("foo"))) { exists... }
else { doesn't exist }

Exemple 48-4. Finding a variable's size in a symbol table

hash_find(active_symbol_table,"foo",sizeof("foo"),&pvalue);
check(pvalue.type);
Arrays in PHP are implemented using the same hashtables as symbol tables. This means the two above functions can also be used to check variables inside arrays.

If you want to define a new array in a symbol table, you should do the following.

First, you may want to check whether it exists and abort appropriately, using hash_exists() or hash_find().

Next, initialize the array:

Exemple 48-5. Initializing a new array

pval arr;

if (array_init(&arr) == FAILURE) { failed... };
hash_update(active_symbol_table,"foo",sizeof("foo"),&arr,sizeof(pval),NULL);
This code declares a new array, named $foo, in the active symbol table. This array is empty.

Here's how to add new entries to it:

Exemple 48-6. Adding entries to a new array

pval entry;

entry.type = IS_LONG;
entry.value.lval = 5;

/* defines $foo["bar"] = 5 */
hash_update(arr.value.ht,"bar",sizeof("bar"),&entry,sizeof(pval),NULL);

/* defines $foo[7] = 5 */
hash_index_update(arr.value.ht,7,&entry,sizeof(pval),NULL);

/* defines the next free place in $foo[],
 * $foo[8], to be 5 (works like php2)
 */
hash_next_index_insert(arr.value.ht,&entry,sizeof(pval),NULL);
If you'd like to modify a value that you inserted to a hash, you must first retrieve it from the hash. To prevent that overhead, you can supply a pval ** to the hash add function, and it'll be updated with the pval * address of the inserted element inside the hash. If that value is NULL (like in all of the above examples) - that parameter is ignored.

hash_next_index_insert() uses more or less the same logic as $foo[] = bar; in PHP 2.0.

If you are building an array to return from a function, you can initialize the array just like above by doing:

if (array_init(return_value) == FAILURE) { failed...; }

...and then adding values with the helper functions:

add_next_index_long(return_value,long_value);
add_next_index_double(return_value,double_value);
add_next_index_string(return_value,estrdup(string_value));

Of course, if the adding isn't done right after the array initialization, you'd probably have to look for the array first:

pval *arr;

if (hash_find(active_symbol_table,"foo",sizeof("foo"),(void **)&arr)==FAILURE) { can't find... }
else { use arr->value.ht... }

Note that hash_find receives a pointer to a pval pointer, and not a pval pointer.

Just about any hash function returns SUCCESS or FAILURE (except for hash_exists(), which returns a boolean truth value).

Returning simple values

A number of macros are available to make returning values from a function easier.

The RETURN_* macros all set the return value and return from the function:

  • RETURN

  • RETURN_FALSE

  • RETURN_TRUE

  • RETURN_LONG(l)

  • RETURN_STRING(s,dup) If dup is TRUE, duplicates the string

  • RETURN_STRINGL(s,l,dup) Return string (s) specifying length (l).

  • RETURN_DOUBLE(d)

The RETVAL_* macros set the return value, but do not return.

  • RETVAL_FALSE

  • RETVAL_TRUE

  • RETVAL_LONG(l)

  • RETVAL_STRING(s,dup) If dup is TRUE, duplicates the string

  • RETVAL_STRINGL(s,l,dup) Return string (s) specifying length (l).

  • RETVAL_DOUBLE(d)

The string macros above will all estrdup() the passed 's' argument, so you can safely free the argument after calling the macro, or alternatively use statically allocated memory.

If your function returns boolean success/error responses, always use RETURN_TRUE and RETURN_FALSE respectively.

Returning complex values

Your function can also return a complex data type such as an object or an array.

Returning an object:

  1. Call object_init(return_value).

  2. Fill it up with values. The functions available for this purpose are listed below.

  3. Possibly, register functions for this object. In order to obtain values from the object, the function would have to fetch "this" from the active_symbol_table. Its type should be IS_OBJECT, and it's basically a regular hash table (i.e., you can use regular hash functions on .value.ht). The actual registration of the function can be done using:

    add_method( return_value, function_name, function_ptr );

The functions used to populate an object are:

  • add_property_long( return_value, property_name, l ) - Add a property named 'property_name', of type long, equal to 'l'

  • add_property_double( return_value, property_name, d ) - Same, only adds a double

  • add_property_string( return_value, property_name, str ) - Same, only adds a string

  • add_property_stringl( return_value, property_name, str, l ) - Same, only adds a string of length 'l'

Returning an array:

  1. Call array_init(return_value).

  2. Fill it up with values. The functions available for this purpose are listed below.

The functions used to populate an array are:

  • add_assoc_long(return_value,key,l) - add associative entry with key 'key' and long value 'l'

  • add_assoc_double(return_value,key,d)

  • add_assoc_string(return_value,key,str,duplicate)

  • add_assoc_stringl(return_value,key,str,length,duplicate) specify the string length

  • add_index_long(return_value,index,l) - add entry in index 'index' with long value 'l'

  • add_index_double(return_value,index,d)

  • add_index_string(return_value,index,str)

  • add_index_stringl(return_value,index,str,length) - specify the string length

  • add_next_index_long(return_value,l) - add an array entry in the next free offset with long value 'l'

  • add_next_index_double(return_value,d)

  • add_next_index_string(return_value,str)

  • add_next_index_stringl(return_value,str,length) - specify the string length

Using the resource list

PHP has a standard way of dealing with various types of resources. This replaces all of the local linked lists in PHP 2.0.

Available functions:

  • php3_list_insert(ptr, type) - returns the 'id' of the newly inserted resource

  • php3_list_delete(id) - delete the resource with the specified id

  • php3_list_find(id,*type) - returns the pointer of the resource with the specified id, updates 'type' to the resource's type

Typically, these functions are used for SQL drivers but they can be used for anything else; for instance, maintaining file descriptors.

Typical list code would look like this:

Exemple 48-7. Adding a new resource

RESOURCE *resource;

/* ...allocate memory for resource and acquire resource... */
/* add a new resource to the list */
return_value->value.lval = php3_list_insert((void *) resource, LE_RESOURCE_TYPE);
return_value->type = IS_LONG;

Exemple 48-8. Using an existing resource

pval *resource_id;
RESOURCE *resource;
int type;

convert_to_long(resource_id);
resource = php3_list_find(resource_id->value.lval, &type);
if (type != LE_RESOURCE_TYPE) {
    php3_error(E_WARNING,"resource index %d has the wrong type",resource_id->value.lval);
    RETURN_FALSE;
}
/* ...use resource... */

Exemple 48-9. Deleting an existing resource

pval *resource_id;
RESOURCE *resource;
int type;

convert_to_long(resource_id);
php3_list_delete(resource_id->value.lval);
The resource types should be registered in php3_list.h, in enum list_entry_type. In addition, one should add shutdown code for any new resource type defined, in list.c's list_entry_destructor() (even if you don't have anything to do on shutdown, you must add an empty case).

Using the persistent resource table

PHP has a standard way of storing persistent resources (i.e., resources that are kept in between hits). The first module to use this feature was the MySQL module, and mSQL followed it, so one can get the general impression of how a persistent resource should be used by reading mysql.c. The functions you should look at are:

php3_mysql_do_connect
php3_mysql_connect()
php3_mysql_pconnect()

The general idea of persistence modules is this:

  1. Code all of your module to work with the regular resource list mentioned in section (9).

  2. Code extra connect functions that check if the resource already exists in the persistent resource list. If it does, register it as in the regular resource list as a pointer to the persistent resource list (because of 1., the rest of the code should work immediately). If it doesn't, then create it, add it to the persistent resource list AND add a pointer to it from the regular resource list, so all of the code would work since it's in the regular resource list, but on the next connect, the resource would be found in the persistent resource list and be used without having to recreate it. You should register these resources with a different type (e.g. LE_MYSQL_LINK for non-persistent link and LE_MYSQL_PLINK for a persistent link).

If you read mysql.c, you'll notice that except for the more complex connect function, nothing in the rest of the module has to be changed.

The very same interface exists for the regular resource list and the persistent resource list, only 'list' is replaced with 'plist':

  • php3_plist_insert(ptr, type) - returns the 'id' of the newly inserted resource

  • php3_plist_delete(id) - delete the resource with the specified id

  • php3_plist_find(id,*type) - returns the pointer of the resource with the specified id, updates 'type' to the resource's type

However, it's more than likely that these functions would prove to be useless for you when trying to implement a persistent module. Typically, one would want to use the fact that the persistent resource list is really a hash table. For instance, in the MySQL/mSQL modules, when there's a pconnect() call (persistent connect), the function builds a string out of the host/user/passwd that were passed to the function, and hashes the SQL link with this string as a key. The next time someone calls a pconnect() with the same host/user/passwd, the same key would be generated, and the function would find the SQL link in the persistent list.

Until further documented, you should look at mysql.c or msql.c to see how one should use the plist's hash table abilities.

One important thing to note: resources going into the persistent resource list must *NOT* be allocated with PHP's memory manager, i.e., they should NOT be created with emalloc(), estrdup(), etc. Rather, one should use the regular malloc(), strdup(), etc. The reason for this is simple - at the end of the request (end of the hit), every memory chunk that was allocated using PHP's memory manager is deleted. Since the persistent list isn't supposed to be erased at the end of a request, one mustn't use PHP's memory manager for allocating resources that go to it.

When you register a resource that's going to be in the persistent list, you should add destructors to it both in the non-persistent list and in the persistent list. The destructor in the non-persistent list destructor shouldn't do anything. The one in the persistent list destructor should properly free any resources obtained by that type (e.g. memory, SQL links, etc). Just like with the non-persistent resources, you *MUST* add destructors for every resource, even it requires no destruction and the destructor would be empty. Remember, since emalloc() and friends aren't to be used in conjunction with the persistent list, you mustn't use efree() here either.

Adding runtime configuration directives

Many of the features of PHP can be configured at runtime. These configuration directives can appear in either the designated php3.ini file, or in the case of the Apache module version in the Apache .conf files. The advantage of having them in the Apache .conf files is that they can be configured on a per-directory basis. This means that one directory may have a certain safemodeexecdir for example, while another directory may have another. This configuration granularity is especially handy when a server supports multiple virtual hosts.

The steps required to add a new directive:

  1. Add directive to php3_ini_structure struct in mod_php3.h.

  2. In main.c, edit the php3_module_startup function and add the appropriate cfg_get_string() or cfg_get_long() call.

  3. Add the directive, restrictions and a comment to the php3_commands structure in mod_php3.c. Note the restrictions part. RSRC_CONF are directives that can only be present in the actual Apache .conf files. Any OR_OPTIONS directives can be present anywhere, include normal .htaccess files.

  4. In either php3take1handler() or php3flaghandler() add the appropriate entry for your directive.

  5. In the configuration section of the _php3_info() function in functions/info.c you need to add your new directive.

  6. And last, you of course have to use your new directive somewhere. It will be addressable as php3_ini.directive.

Précédent | Sommaire | Suivant
VCWD_UTIME | Niveau supérieur | Calling User Functions


Calling User Functions

To call user functions from an internal function, you should use the call_user_function() function.

call_user_function() returns SUCCESS on success, and FAILURE in case the function cannot be found. You should check that return value! If it returns SUCCESS, you are responsible for destroying the retval pval yourself (or return it as the return value of your function). If it returns FAILURE, the value of retval is undefined, and you mustn't touch it.

All internal functions that call user functions must be reentrant. Among other things, this means they must not use globals or static variables.

call_user_function() takes six arguments:

HashTable *function_table

This is the hash table in which the function is to be looked up.

pval *object

This is a pointer to an object on which the function is invoked. This should be NULL if a global function is called. If it's not NULL (i.e. it points to an object), the function_table argument is ignored, and instead taken from the object's hash. The object *may* be modified by the function that is invoked on it (that function will have access to it via $this). If for some reason you don't want that to happen, send a copy of the object instead.

pval *function_name

The name of the function to call. Must be a pval of type IS_STRING with function_name.str.val and function_name.str.len set to the appropriate values. The function_name is modified by call_user_function() - it's converted to lowercase. If you need to preserve the case, send a copy of the function name instead.

pval *retval

A pointer to a pval structure, into which the return value of the invoked function is saved. The structure must be previously allocated - call_user_function() does NOT allocate it by itself.

int param_count

The number of parameters being passed to the function.

pval *params[]

An array of pointers to values that will be passed as arguments to the function, the first argument being in offset 0, the second in offset 1, etc. The array is an array of pointers to pval's; The pointers are sent as-is to the function, which means if the function modifies its arguments, the original values are changed (passing by reference). If you don't want that behavior, pass a copy instead.

Précédent | Sommaire | Suivant
Extending PHP 3 | Niveau supérieur | Reporting Errors


Reporting Errors

To report errors from an internal function, you should call the php3_error() function. This takes at least two parameters -- the first is the level of the error, the second is the format string for the error message (as in a standard printf() call), and any following arguments are the parameters for the format string. The error levels are:

E_NOTICE

Notices are not printed by default, and indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script. For example, trying to access the value of a variable which has not been set, or calling stat() on a file that doesn't exist.

E_WARNING

Warnings are printed by default, but do not interrupt script execution. These indicate a problem that should have been trapped by the script before the call was made. For example, calling ereg() with an invalid regular expression.

E_ERROR

Errors are also printed by default, and execution of the script is halted after the function returns. These indicate errors that can not be recovered from, such as a memory allocation problem.

E_PARSE

Parse errors should only be generated by the parser. The code is listed here only for the sake of completeness.

E_CORE_ERROR

This is like an E_ERROR, except it is generated by the core of PHP. Functions should not generate this type of error.

E_CORE_WARNING

This is like an E_WARNING, except it is generated by the core of PHP. Functions should not generate this type of error.

E_COMPILE_ERROR

This is like an E_ERROR, except it is generated by the Zend Scripting Engine. Functions should not generate this type of error.

E_COMPILE_WARNING

This is like an E_WARNING, except it is generated by the Zend Scripting Engine. Functions should not generate this type of error.

E_USER_ERROR

This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error(). Functions should not generate this type of error.

E_USER_WARNING

This is like an E_WARNING, except it is generated by using the PHP function trigger_error(). Functions should not generate this type of error.

E_USER_NOTICE

This is like an E_NOTICE, except it is generated by using the PHP function trigger_error(). Functions should not generate this type of error.

E_ALL

All of the above. Using this error_reporting level will show all error types.

Précédent | Sommaire | Suivant
Calling User Functions | Niveau supérieur | FAQ : foire Aux Questions


Options de configuration

Manuel PHP
Précédent Suivant

Annexe G. Options de configuration

Table des matières
Liste des options de configuration internes

Liste des options de configuration internes

Ci-dessous une liste partielle des options de configuration utilisées par le script PHP configure lors de la compilation sur les systèmes Unix et assimilés. La plupart des options de configuration sont listées dans leur emplacement approprié sur les pages de référence de l'extension et non pas ici. Pour une liste complète des options de configuration, exécutez la commande ./configure --help dans le répertoire contenant les sources de PHP après avoir exécuté la commande autoconf (voir aussi le chapitre sur l'installation de PHP). Vous pouvez également être intéressé par la lecture de la documentation sur la configuration GNU pour plus d'informations sur les options de la commande configure comme --prefix=PREFIX.

Note : Ils sont également utilisés lors de la compilation. Si vous voulez modifier la configuration de l'exécution de PHP, lisez le chapitre sur la configuration de l'exécution.

  • Divers

  • Comportement de PHP

  • Serveur

Options de configuration dans PHP 4

Note : Ces options sont uniquement utilisables en PHP 4 depuis la version 4.1.0. Quelques-unes sont valables dans les versions antérieures à PHP 4, quelques-unes depuis PHP 3, quelques-unes uniquement en PHP 4.1.0. Si vous voulez compiler des anciennes versions, certaines options ne seront probablement pas disponibles.

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.

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

--enable-trans-sid

Active la propagation transparente de l'identifiant de session. Seulement valable pour PHP 4.1.2 et antérieures. À partir de PHP 4.2.0, cette fonctionnalité est toujours compilée.

--with-tsrm-pthreads

Utilise les threads POSIX (par défaut).

--enable-shared[=PKGS]

Compile les bibliothèques de partage [defaut=oui].

--enable-static[=PKGS]

Compile les bibliothèques statiques [default=oui].

--enable-fast-install[=PKGS]

Optimise pour une installation rapide [default=oui].

--with-gnu-ld

Le compilateur C utilise GNU ld [default=non].

--disable-libtool-lock

Évite de verrouiller (cela pourrait casser des constructions parallèles).

--with-pic

Tente d'utiliser uniquement les objets PIC/non-PIC [default=utilisation des deux].

--enable-memory-limit

Compile avec le support de limitation de mémoire.

--disable-url-fopen-wrapper

Désactive le wrapper fopen pour les URLs qui permet d'accéder à des fichiers via HTTP ou FTP.

--enable-versioning

Exporte uniquement les symboles requis. Voir le fichier INSTALL pour plus d'informations.

--with-imsp[=DIR]

Inclut le support IMSp (DIR est le répertoire d'inclusion IMPs et le répertoire libimsp.a). PHP 3 uniquement !

--with-mck[=DIR]

Inclut le support Cybercash MCK. DIR est le répertoire d'installation Cybercash MCK, qui vaut par défaut /usr/src/mck-3.2.0.3-linux ; l'aide est disponible dans extra/cyberlib. Uniquement en PHP 3.

--with-mod-dav=DIR

Inclut le support DAV via le module Apache mod_dav, DIR est le répertoire d'installation de mod_dav (version Apache module uniquement !) PHP 3 uniquement !

--enable-debugger

Compile avec les fonctions de debogage. PHP 3 uniquement !

--enable-versioning

Tire profit du versioning et des portées fournis par Solaris 2.x et Linux. PHP 3 uniquement !

Options PHP

--enable-maintainer-mode

Active des règles de compilation (make) et des dépendances pas toujours utiles aux utilisateurs occasionnels.

--with-config-file-path=PATH

Indique le chemin dans lequel réside le fichier php.ini. Par défaut, c'est PREFIX/lib.

--enable-safe-mode

Active le safe mode (mode sécurisé) par défaut.

--with-exec-dir[=DIR]

Autorise uniquement des exécutables dans le dossier DIR lorsque le safe mode est activé ; par défaut, DIR vaut /usr/local/php/bin.

--enable-magic-quotes

Active les guillemets magiques.

--disable-short-tags

Désactive les balises courtes <?.

Options SAPI

La liste suivante contient les options valides SAPI&s (Server Application Programming Interface) pour PHP.

--with-aolserver=DIR

Spécifie le chemin d'installation du serveur AOLserver.

--with-apxs[=FILE]

Compile un module Apache partagé. FILE est un chemin d'accès optionnel vers les outils apxs d'Apache. Par défaut, c'est apxs. Assurez-vous de spécifier la version d'apxs qui est réellement installée sur votre système, et NON pas celle qui est fournie avec Apache.

--with-apache[=DIR]

Compile le module Apache. DIR est le chemin du dossier d'installation d'Apache. Par défaut, DIR vaut /usr/local/apache.

--with-mod_charset

Active les tables de transfert pour mod_charset (version russe de Apache).

--with-apxs2[=FILE]

Compile le module partagé Apache 2.0. FILE est un chemin d'accès optionnel vers les outils apxs d'Apache. Par défaut, c'est apxs.

--with-caudium=DIR

Compile PHP comme module Pike pour utilisation avec Caudium. DIR est le serveur Caudium. Par défaut, c'est /usr/local/caudium/server.

--disable-cli

Disponible depuis PHP 4.3.0. Empêche la compilation de la version CLI de PHP (cela force aussi l'option --without-pear). Disponible depuis PHP 4.3.0. Plus d'informations dans la section sur l'utilisation de PHP en ligne de commande.

--enable-embed[=TYPE]

Active la compilation de la bibliothèque intégrée SAPI. TYPE vaut soit shared, soit static. Par défaut, c'est shared. Disponible depuis PHP 4.3.0.

--with-fhttpd[=DIR]

Compile le module fhttpd. DIR est le dossier d'installation de fhttpd. Par défaut, DIR vaut /usr/local/src/fhttpd. Disponible depuis PHP 4.3.0.

--with-isapi=DIR

Compile PHP sous forme de module ISAPI pour utiliser avec le serveur Zeus.

--with-nsapi=DIR

Spécifie le chemin vers le serveur web Netscape/iPlanet/SunONE.

--with-phttpd=DIR

Aucune information fournie actuellement.

--with-pi3web=DIR

Compile PHP sous forme de module pour utiliser avec le serveur Pi3Web.

--with-roxen=DIR

Compile PHP sous forme de module Pike. DIR est le chemin d'installation de Roxen. Par défaut, DIR vaut /usr/local/roxen/server.

--enable-roxen-zts

Compile PHP sous forme de module Roxen, en utilisant Zend Thread Safety.

--with-servlet[=DIR]

Inclut le support des servlets. DIR est le chemin d'installation du JSDK. Cette SAPI impose que l'extension java soit compilée comme une bibliothèque partagée.

--with-thttpd=SRCDIR

Compile PHP comme module thttpd.

--with-tux=MODULEDIR

Compile PHP comme module TUX (Linux uniquement).

--with-webjames=SRCDIR

Compile PHP comme module WebJames (RISC OS uniquement)

--disable-cgi

Empêche la compilation de la version CGI de PHP. Disponible depuis PHP 4.3.0.

--enable-force-cgi-redirect

Active la sécurité lors des redirections internes du serveur. Il est recommandé d'utiliser cette option lorsque vous utilisez PHP en CGI avec Apache.

--enable-discard-path

Si cette option est activée, l'exécutable CGI PHP peut être placé hors de l'arborescence web, en toute sécurité. Il ne sera pas possible de contourner les fichiers .htaccess. security.

--with-fastcgi

Compile PHP comme application FastCGI. Cette option n'est plus disponible depuis PHP 4.3.0 et vous devez utiliser --enable-fastcgi à la place.

--enable-fastcgi

Si cette option est activée, le module CGI sera compilé avec le support FastCGI. Cette option est disponible depuis PHP 4.3.0.

--disable-path-info-check

Si cette option est désactivée, des chemins tels que /info.php/test?a=b ne pourront pas fonctionner. Cette option est disponible depuis PHP 4.3.0. Pour plus d'informations, voir le Manuel Apache.

Précédent | Sommaire | Suivant
Protocole du débogueur | Niveau supérieur | Directives du php.ini


Liste des alias

Manuel PHP
Précédent Suivant

Annexe K. Liste des alias

Il y a beaucoup de fonctions en PHP qui peuvent être appelées sous différents noms. Dans la plupart des cas, il n'y pas de nom préféré par rapport à un autre, is_int() et is_integer() sont exactement identiques, par exemple. Ces modifications de noms ont été réalisées en général à cause d'un changement dans l'API d'origine ou pour d'autres raisons et les anciens noms sont conservés uniquement pour des raisons de compatiblité ascendante. C'est une très mauvaise habitude d'utiliser ces alias, car ils risquent à tous moment de disparaître, rendus obsolète sans préavis, ou bien par un simple changement de nom, ce qui rend votre script inutilisable avec des versions plus récentes de PHP. Préférez toujours les versions officielles. En fait, cette liste est surtout destinée à ceux qui doivent mettre à jour leurs scripts avec les syntaxes plus récentes.

Cette liste est en phase avec PHP 4.0.6. Pour une liste d'alias qui soit mise à jour quotidiennement, voyez http://www.zend.com/phpfunc/all_aliases.php.

Tableau K-1. Aliases

Alias | Fonction principale | Extension mère
_ | gettext() | Gettext
add | swfmovie_add() | Ming (flash)
add | swfsprite_add() | Ming (flash)
add_root | domxml_add_root() | DOM XML
addaction | swfbutton_addAction() | Ming (flash)
addcolor | swfdisplayitem_addColor() | Ming (flash)
addentry | swfgradient_addEntry() | Ming (flash)
addfill | swfshape_addfill() | Ming (flash)
addshape | swfbutton_addShape() | Ming (flash)
addstring | swftext_addString() | Ming (flash)
addstring | swftextfield_addString() | Ming (flash)
align | swftextfield_align() | Ming (flash)
attributes | domxml_attributes() | DOM XML
children | domxml_children() | DOM XML
chop | rtrim() | Base syntax
close | closedir() | Base syntax
com_get | com_propget() | COM
com_propset | com_propput() | COM
com_set | com_propput() | COM
cv_add | ccvs_add() | CCVS
cv_auth | ccvs_auth() | CCVS
cv_command | ccvs_command() | CCVS
cv_count | ccvs_count() | CCVS
cv_delete | ccvs_delete() | CCVS
cv_done | ccvs_done() | CCVS
cv_init | ccvs_init() | CCVS
cv_lookup | ccvs_lookup() | CCVS
cv_new | ccvs_new() | CCVS
cv_report | ccvs_report() | CCVS
cv_return | ccvs_return() | CCVS
cv_reverse | ccvs_reverse() | CCVS
cv_sale | ccvs_sale() | CCVS
cv_status | ccvs_status() | CCVS
cv_textvalue | ccvs_textvalue() | CCVS
cv_void | ccvs_void() | CCVS
die | exit() | Miscellaneous functions
dir | getdir() | Base syntax
diskfreespace | disk_free_space() | Filesystem
domxml_getattr | domxml_get_attribute() | DOM XML
domxml_setattr | domxml_set_attribute() | DOM XML
doubleval | floatval() | Base syntax
drawarc | swfshape_drawarc() | Ming (flash)
drawcircle | swfshape_drawcircle() | Ming (flash)
drawcubic | swfshape_drawcubic() | Ming (flash)
drawcubicto | swfshape_drawcubicto() | Ming (flash)
drawcurve | swfshape_drawcurve() | Ming (flash)
drawcurveto | swfshape_drawcurveto() | Ming (flash)
drawglyph | swfshape_drawglyph() | Ming (flash)
drawline | swfshape_drawline() | Ming (flash)
drawlineto | swfshape_drawlineto() | Ming (flash)
dtd | domxml_intdtd() | DOM XML
dumpmem | domxml_dumpmem() | DOM XML
fbsql | fbsql_db_query() | FrontBase
fputs | fwrite() | Base syntax
get_attribute | domxml_get_attribute() | DOM XML
getascent | swffont_getAscent() | Ming (flash)
getascent | swftext_getAscent() | Ming (flash)
getattr | domxml_get_attribute() | DOM XML
getdescent | swffont_getDescent() | Ming (flash)
getdescent | swftext_getDescent() | Ming (flash)
getheight | swfbitmap_getHeight() | Ming (flash)
getleading | swffont_getLeading() | Ming (flash)
getleading | swftext_getLeading() | Ming (flash)
getshape1 | swfmorph_getShape1() | Ming (flash)
getshape2 | swfmorph_getShape2() | Ming (flash)
getwidth | swfbitmap_getWidth() | Ming (flash)
getwidth | swffont_getWidth() | Ming (flash)
getwidth | swftext_getWidth() | Ming (flash)
gzputs | gzwrite() | Zlib
i18n_convert | mb_convert_encoding() | Multi-bytes Strings
i18n_discover_encoding | mb_detect_encoding() | Multi-bytes Strings
i18n_http_input | mb_http_input() | Multi-bytes Strings
i18n_http_output | mb_http_output() | Multi-bytes Strings
i18n_internal_encoding | mb_internal_encoding() | Multi-bytes Strings
i18n_ja_jp_hantozen | mb_convert_kana() | Multi-bytes Strings
i18n_mime_header_decode | mb_decode_mimeheader() | Multi-bytes Strings
i18n_mime_header_encode | mb_encode_mimeheader() | Multi-bytes Strings
imap_create | imap_createmailbox() | IMAP
imap_fetchtext | imap_body() | IMAP
imap_getmailboxes | imap_list_full() | IMAP
imap_getsubscribed | imap_lsub_full() | IMAP
imap_header | imap_headerinfo() | IMAP
imap_listmailbox | imap_list() | IMAP
imap_listsubscribed | imap_lsub() | IMAP
imap_rename | imap_renamemailbox() | IMAP
imap_scan | imap_listscan() | IMAP
imap_scanmailbox | imap_listscan() | IMAP
ini_alter | ini_set() | Base syntax
is_double | is_float() | Base syntax
is_integer | is_int() | Base syntax
is_long | is_int() | Base syntax
is_real | is_float() | Base syntax
is_writeable | is_writable() | Base syntax
join | implode() | Base syntax
labelframe | swfmovie_labelFrame() | Ming (flash)
labelframe | swfsprite_labelFrame() | Ming (flash)
last_child | domxml_last_child() | DOM XML
lastchild | domxml_last_child() | DOM XML
ldap_close | ldap_unbind() | LDAP
magic_quotes_runtime | set_magic_quotes_runtime() | Base syntax
mbstrcut | mb_strcut() | Multi-bytes Strings
mbstrlen | mb_strlen() | Multi-bytes Strings
mbstrpos | mb_strpos() | Multi-bytes Strings
mbstrrpos | mb_strrpos() | Multi-bytes Strings
mbsubstr | mb_substr() | Multi-bytes Strings
ming_setcubicthreshold | ming_setCubicThreshold() | Ming (flash)
ming_setscale | ming_setScale() | Ming (flash)
move | swfdisplayitem_move() | Ming (flash)
movepen | swfshape_movepen() | Ming (flash)
movepento | swfshape_movepento() | Ming (flash)
moveto | swfdisplayitem_moveTo() | Ming (flash)
moveto | swffill_moveTo() | Ming (flash)
moveto | swftext_moveTo() | Ming (flash)
msql | msql_db_query() | mSQL
msql_createdb | msql_create_db() | mSQL
msql_dbname | msql_result() | mSQL
msql_dropdb | msql_drop_db() | mSQL
msql_fieldflags | msql_field_flags() | mSQL
msql_fieldlen | msql_field_len() | mSQL
msql_fieldname | msql_field_name() | mSQL
msql_fieldtable | msql_field_table() | mSQL
msql_fieldtype | msql_field_type() | mSQL
msql_freeresult | msql_free_result() | mSQL
msql_listdbs | msql_list_dbs() | mSQL
msql_listfields | msql_list_fields() | mSQL
msql_listtables | msql_list_tables() | mSQL
msql_numfields | msql_num_fields() | mSQL
msql_numrows | msql_num_rows() | mSQL
msql_regcase | sql_regcase() | mSQL
msql_selectdb | msql_select_db() | mSQL
msql_tablename | msql_result() | mSQL
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_close | sybase_close() | Sybase
mssql_close | sybase_close() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_min_client_severity | sybase_min_client_severity() | Sybase
mssql_min_error_severity | sybase_min_error_severity() | Sybase
mssql_min_message_severity | sybase_min_message_severity() | Sybase
mssql_min_server_severity | sybase_min_server_severity() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_query | sybase_query() | Sybase
mssql_query | sybase_query() | Sybase
mssql_result | sybase_result() | Sybase
mssql_result | sybase_result() | Sybase
mssql_select_db | sybase_select_db() | Sybase
mssql_select_db | sybase_select_db() | Sybase
multcolor | swfdisplayitem_multColor() | Ming (flash)
mysql | mysql_db_query() | MySQL
mysql_createdb | mysql_create_db() | MySQL
mysql_db_name | mysql_result() | MySQL
mysql_dbname | mysql_result() | MySQL
mysql_dropdb | mysql_drop_db() | MySQL
mysql_fieldflags | mysql_field_flags() | MySQL
mysql_fieldlen | mysql_field_len() | MySQL
mysql_fieldname | mysql_field_name() | MySQL
mysql_fieldtable | mysql_field_table() | MySQL
mysql_fieldtype | mysql_field_type() | MySQL
mysql_freeresult | mysql_free_result() | MySQL
mysql_listdbs | mysql_list_dbs() | MySQL
mysql_listfields | mysql_list_fields() | MySQL
mysql_listtables | mysql_list_tables() | MySQL
mysql_numfields | mysql_num_fields() | MySQL
mysql_numrows | mysql_num_rows() | MySQL
mysql_selectdb | mysql_select_db() | MySQL
mysql_tablename | mysql_result() | MySQL
name | domxml_attrname() | DOM XML
new_child | domxml_new_child() | DOM XML
new_xmldoc | domxml_new_xmldoc() | DOM XML
nextframe | swfmovie_nextFrame() | Ming (flash)
nextframe | swfsprite_nextFrame() | Ming (flash)
node | domxml_node() | DOM XML
oci8append | ocicollappend() | OCI8
oci8assign | ocicollassign() | OCI8
oci8assignelem | ocicollassignelem() | OCI8
oci8close | ocicloselob() | OCI8
oci8free | ocifreecoll() | OCI8
oci8free | ocifreedesc() | OCI8
oci8getelem | ocicollgetelem() | OCI8
oci8load | ociloadlob() | OCI8
oci8max | ocicollmax() | OCI8
oci8ocifreecursor | ocifreestatement() | OCI8
oci8save | ocisavelob() | OCI8
oci8savefile | ocisavelobfile() | OCI8
oci8size | ocicollsize() | OCI8
oci8trim | ocicolltrim() | OCI8
oci8writetemporary | ociwritetemporarylob() | OCI8
oci8writetofile | ociwritelobtofile() | OCI8
odbc_do | odbc_exec() | ODBC
odbc_field_precision | odbc_field_len() | ODBC
output | swfmovie_output() | Ming (flash)
parent | domxml_parent() | DOM XML
pdf_add_outline | pdf_add_bookmark() | PDF
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | Base syntax
recode | recode_string() | Recode
remove | swfmovie_remove() | Ming (flash)
remove | swfsprite_remove() | Ming (flash)
rewind | rewinddir() | Base syntax
root | domxml_root() | DOM XML
rotate | swfdisplayitem_rotate() | Ming (flash)
rotateto | swfdisplayitem_rotateTo() | Ming (flash)
rotateto | swffill_rotateTo() | Ming (flash)
save | swfmovie_save() | Ming (flash)
savetofile | swfmovie_saveToFile() | Ming (flash)
scale | swfdisplayitem_scale() | Ming (flash)
scaleto | swfdisplayitem_scaleTo() | Ming (flash)
scaleto | swffill_scaleTo() | Ming (flash)
set_attribute | domxml_set_attribute() | DOM XML
set_content | domxml_set_content() | DOM XML
setaction | swfbutton_setAction() | Ming (flash)
setattr | domxml_set_attribute() | DOM XML
setbackground | swfmovie_setBackground() | Ming (flash)
setbounds | swftextfield_setBounds() | Ming (flash)
setcolor | swftext_setColor() | Ming (flash)
setcolor | swftextfield_setColor() | Ming (flash)
setdepth | swfdisplayitem_setDepth() | Ming (flash)
setdimension | swfmovie_setDimension() | Ming (flash)
setdown | swfbutton_setDown() | Ming (flash)
setfont | swftext_setFont() | Ming (flash)
setfont | swftextfield_setFont() | Ming (flash)
setframes | swfmovie_setFrames() | Ming (flash)
setframes | swfsprite_setFrames() | Ming (flash)
setheight | swftext_setHeight() | Ming (flash)
setheight | swftextfield_setHeight() | Ming (flash)
sethit | swfbutton_setHit() | Ming (flash)
setindentation | swftextfield_setIndentation() | Ming (flash)
setleftfill | swfshape_setleftfill() | Ming (flash)
setleftmargin | swftextfield_setLeftMargin() | Ming (flash)
setline | swfshape_setline() | Ming (flash)
setlinespacing | swftextfield_setLineSpacing() | Ming (flash)
setmargins | swftextfield_setMargins() | Ming (flash)
setmatrix | swfdisplayitem_setMatrix() | Ming (flash)
setname | swfdisplayitem_setName() | Ming (flash)
setname | swftextfield_setName() | Ming (flash)
setover | swfbutton_setOver() | Ming (flash)
setrate | swfmovie_setRate() | Ming (flash)
setratio | swfdisplayitem_setRatio() | Ming (flash)
setrightfill | swfshape_setrightfill() | Ming (flash)
setrightmargin | swftextfield_setRightMargin() | Ming (flash)
setspacing | swftext_setSpacing() | Ming (flash)
setup | swfbutton_setUp() | Ming (flash)
show_source | highlight_file() | Base syntax
sizeof | count() | Base syntax
skewx | swfdisplayitem_skewX() | Ming (flash)
skewxto | swfdisplayitem_skewXTo() | Ming (flash)
skewxto | swffill_skewXTo() | Ming (flash)
skewy | swfdisplayitem_skewy() | Ming (flash)
skewyto | swfdisplayitem_skewYTo() | Ming (flash)
skewyto | swffill_skewYTo() | Ming (flash)
snmpwalkoid | snmprealwalk() | SNMP
strchr | strstr() | Base syntax
streammp3 | swfmovie_streamMp3() | Ming (flash)
swfaction | swfaction_init() | Ming (flash)
swfbitmap | swfbitmap_init() | Ming (flash)
swfbutton | swfbutton_init() | Ming (flash)
swffill | swffill_init() | Ming (flash)
swffont | swffont_init() | Ming (flash)
swfgradient | swfgradient_init() | Ming (flash)
swfmorph | swfmorph_init() | Ming (flash)
swfmovie | swfmovie_init() | Ming (flash)
swfshape | swfshape_init() | Ming (flash)
swfsprite | swfsprite_init() | Ming (flash)
swftext | swftext_init() | Ming (flash)
swftextfield | swftextfield_init() | Ming (flash)
unlink | domxml_unlink_node() | DOM XML
xptr_new_context | xpath_new_context() | DOM XML

Précédent | Sommaire | Suivant
État | Niveau supérieur | Mots réservés en PHP


Mots réservés en PHP

Manuel PHP
Précédent Suivant

Annexe L. Mots réservés en PHP

Table des matières
Liste de mots-clés
Variables prédéfinies
Classes prédéfinies
Constantes pré-définies

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. Ces identifiants incluent des mots-clés, des constantes, des classes, et des variables prédéfinies. Ces listes ne sont pas complètes ou exhaustives.

Liste de mots-clés

Ces mots ont un sens spécial en PHP. Certains représentent des objets qui ressemblent à des fonctions, d'autres à des constantes, et ainsi de suite, mais ils n'en sont pas vraiment : ce sont des structures de langage. Vous ne pourrez pas les utiliser comme constante, nom de classe, nom de fonctions ou nom de méthodes. Vous pouvez les utiliser comme nom de variables, mais cela risque d'entrainer des confusions.

Tableau L-1. Mots réservés en PHP

and | or | xor | __FILE__ | exception (PHP 5)
__LINE__ | array() | as | break | case
class | const | continue | declare | default
die() | do | echo() | else | elseif
empty() | enddeclare | endfor | endforeach | endif
endswitch | endwhile | eval | exit() | extends
for | foreach | function | global | if
include() | include_once() | isset() | list() | new
print() | require() | require_once() | return() | static
switch | unset() | use | var | while
__FUNCTION__ | __CLASS__ | __METHOD__ | final (PHP 5) | php_user_filter (PHP 5)
interface (PHP 5) | implements (PHP 5) | extends | public (PHP 5) | private (PHP 5)
protected (PHP 5) | abstract (PHP 5) | clone (PHP 5) | try (PHP 5) | catch (PHP 5)
throw (PHP 5) | cfunction (PHP 4 uniquement) | old_function (PHP 4 uniquement) | this (PHP 5 uniquement) |

Précédent | Sommaire | Suivant
Liste des alias | Niveau supérieur | Variables prédéfinies


Variables prédéfinies

Depuis PHP 4.1.0, la méthode recommandée pour accéder à des variables externes est d'utiliser les super-globales mentionnées ci-dessous. Avant cela, il fallait utiliser soit l'option de configuration register_globals, soit les tableaux prédéfinis $HTTP_*_VARS. Depuis PHP 5.0.0, les tableaux prédéfinis PHP peuvent être désactivés avec l'option de configuration register_long_arrays.

Variables de serveur : $_SERVER

Note : Introduite en 4.1.0. Dans les versions plus anciennes, elle s'appelait $HTTP_SERVER_VARS.

$_SERVER est un tableau contenant des informations comme les en-têtes, dossiers et chemins du script. Les entrées de ce tableau sont créées par le serveur web. Il n'y a aucune garantie que tous les serveurs les rempliront tous ; certains en oublieront quelques-unes et en rajouteront de nouvelles non mentionnées ici. Cependant, un grand nombre de ces variables fait partie des spécifications CGI 1.1, et vous pouvez donc vous attendre à les retrouver.

Cette variable est une 'superglobal', ou globale automatique. Cela signifie qu'elle est simplement disponible dans tous les contextes d'exécution (fonctions ou méthodes). Vous n'avez pas besoin de faire global $_SERVER; pour y accéder, comme vous le faisiez avec $HTTP_SERVER_VARS.

$HTTP_SERVER_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_SERVER_VARS et $_SERVER sont des variables différentes et que PHP les traite en tant que telles.)

Si la directive register_globals est active, alors ces variables seront aussi rendues directement accessibles dans le contexte d'exécution global. C'est-à-dire séparément des tableaux $_SERVER et $HTTP_SERVER_VARS. Pour plus d'informations sur la sécurité de cette configuration, voyez le chapitre Utiliser la directive Register Globals. Ces variables globales individuelles ne sont pas des superglobales.

Vous pouvez éventuellement trouver les éléments suivants dans la variable $_SERVER. Notez que certains, n'auront pas de sens si vous utilisez PHP en ligne de commande.

'PHP_SELF'

Le nom du fichier du script en cours d'exécution, par rapport à la racine web. Par exemple, $_SERVER['PHP_SELF'] dans le script situé à l'adresse http://www.monsite.com/test.php/foo.bar sera /test.php/foo.bar. La constante __FILE__ contient le chemin complet ainsi que le nom du fichier (i.e. inclut) courant.

Si PHP fonctionne en ligne de commande, cette variable contient le nom du script depuis PHP 4.3.0. Dans les versions antérieures, cette variable n'était pas disponible.

'argv'

Tableau des arguments passés au script. Lorsque le script est appelé en ligne de commande, cela donne accès aux arguments, comme en langage C. Lorsque le script est appelé avec la méthode GET, ce tableau contiendra la chaîne de requête.

'argc'

Contient le nombre de paramètres de la ligne de commande passés au script (si le script fonctionne en ligne de commande).

'GATEWAY_INTERFACE'

Numéro de révision de l'interface CGI du serveur : i.e. 'CGI/1.1'.

'SERVER_ADDR'

L'adresse IP du serveur sous lequel le script courant est en train d'être exécuté.

'SERVER_NAME'

Le nom du serveur hôte qui exécute le script suivant. Si le script est exécuté sur un hôte virtuel, ce sera la valeur définie pour cet hôte virtuel.

'SERVER_SOFTWARE'

Chaîne d'identification du serveur, qui est donnée dans les en-têtes lors de la réponse aux requêtes.

'SERVER_PROTOCOL'

Nom et révision du protocole de communication : i.e. 'HTTP/1.0';

'REQUEST_METHOD'

Méthode de requête utilisée pour accéder à la page; i.e. 'GET', 'HEAD', 'POST', 'PUT'.

Note : Le script PHP se termine après avoir envoyé les en-têtes (après avoir produit n'importe quelle sortie sans avoir affiché le buffer) si la méthode de la requête était HEAD.

'REQUEST_TIME'

Le temps Unix depuis le début de la requête. Disponible depuis PHP 5.1.0.

'QUERY_STRING'

La chaîne de requête, si elle existe, qui est utilisée pour accéder à la page.

'DOCUMENT_ROOT'

La racine sous laquelle le script courant est exécuté, comme défini dans la configuration du serveur.

'HTTP_ACCEPT'

Contenu de l'en-tête Accept: de la requête courante, s'il y en a une.

'HTTP_ACCEPT_CHARSET'

Contenu de l'en-tête Accept-Charset: de la requête courante, si elle existe. Par exemple : 'iso-8859-1,*,utf-8'.

'HTTP_ACCEPT_ENCODING'

Contenu de l'en-tête Accept-Encoding: de la requête courante, si elle existe. Par exemple : 'gzip'.

'HTTP_ACCEPT_LANGUAGE'

Contenu de l'en-tête Accept-Language: de la requête courante, si elle existe. Par exemple : 'fr'.

'HTTP_CONNECTION'

Contenu de l'en-tête Connection: de la requête courante, si elle existe. Par exemple : 'Keep-Alive'.

'HTTP_HOST'

Contenu de l'en-tête Host: de la requête courante, si elle existe.

'HTTP_REFERER'

L'adresse de la page (si elle existe) qui a conduit le client à la page courante. Cette valeur est affectée par le client, et tous les clients ne le font pas. Certains navigateurs permettent même de modifier la valeur de HTTP_REFERER, sous forme de fonctionnalité. En bref, ce n'est pas une valeur de confiance.

'HTTP_USER_AGENT'

Contenu de l'en-tête User_Agent: de la requête courante, si elle existe. C'est une chaîne qui décrit le client HTML utilisé pour voir la page courante. Par exemple : Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Entre autres choses, vous pouvez utiliser cette valeur avec get_browser() pour optimiser votre page en fonction des capacités du client.

'HTTPS'

Définissez à une valeur non-vide si le script nécessite d'utiliser le protocole HTTPS.

Noter que lors de l'utilisation de ISAPI avec IIS, la valeur sera off si la demande n'a pas été faite via le protocole HTTPS.

'REMOTE_ADDR'

L'adresse IP du client qui demande la page courante.

'REMOTE_HOST'

Le nom de l'hôte qui lit le script courant. La résolution DNS inverse est basée sur la valeur de REMOTE_ADDR.

Note : Votre serveur web doit être configuré pour créer cette variable. Par exemple, pour Apache, vous devez ajouter la directive HostnameLookups On dans le fichier httpd.conf, pour que cette variable existe. Voyez aussi gethostbyaddr().

'REMOTE_PORT'

Le port utilisé par la machine cliente pour communiquer avec le serveur web.

'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é.

'SERVER_SIGNATURE'

Chaîne contenant le numéro de version du serveur et le nom d'hôte virtuel, qui sont ajoutés aux pages générées par le serveur, si cette option est activée.

'PATH_TRANSLATED'

Chemin dans le système de fichiers (pas le document-root) jusqu'au script courant, une fois que le serveur a fait une traduction chemin virtuel -> réel.

Note : Depuis PHP 4.3.2, la variable PATH_TRANSLATED n'est plus seulement définie implicitement sous Apache 2 SAPI contrairement à la situation sous Apache 1 où elle est définie avec la même valeur que la variable serveur SCRIPT_FILENAME lorsqu'elle n'est pas fournie par Apache. Ce changement a été effectué pour être conforme aux spécifications CGI qui fait que la variable PATH_TRANSLATED doit exister seulement si la variable PATH_INFO est définie.

Les utilisateurs d'Apache 2 devraient utiliser AcceptPathInfo = On au lieu de 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 PHP avec Apache en tant que module faisant une identification 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 PHP avec Apache ou IIS (ISAPI en PHP 5) en tant que module faisant une identification HTTP, cette variable est définie à l'utilisateur fourni par l'utilisateur.

'PHP_AUTH_PW'

Lorsque vous utilisez PHP avec Apache ou IIS (ISAPI en PHP 5) en tant que module faisant une identification HTTP, cette variable est définie au mot de passe fourni par l'utilisateur.

'AUTH_TYPE'

Lorsque vous utilisez PHP avec Apache en tant que module faisant une identification HTTP, cette variable est définie au type d'identification.

Variables d'environnement : $_ENV

Note : Introduite en 4.1.0. Dans les versions plus anciennes, elle s'appelait $HTTP_ENV_VARS.

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épendemment du fait que PHP fonctionne en tant que CGI ou bien que module du serveur.

Cette variable est une 'superglobal', ou globale automatique. Cela signifie qu'elle est simplement disponible dans tous les contextes d'exécution (fonctions ou méthodes). Vous n'avez pas besoin de faire global $_ENV; pour y accéder, comme vous le faisiez avec $HTTP_ENV_VARS.

$HTTP_ENV_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_ENV_VARS et $_ENV sont des variables différentes et que PHP les traite comme telles.)

Si la directive register_globals est active, alors ces variables seront aussi rendues directement accessibles dans le contexte d'exécution global. C'est à dire séparément des tableaux $_ENV et $HTTP_ENV_VARS. Pour plus d'informations sur la sécurité de cette configuration, voyez le chapitre Utiliser la directive Register Globals. Ces variables globales individuelles ne sont pas des superglobales.

HTTP Cookies : $_COOKIE

Note : Introduite en 4.1.0. Dans les versions plus anciennes, elle s'appelait $HTTP_COOKIE_VARS.

Un tableau associatif des valeurs passées au script courant via les cookies HTTP. Elle est automatiquement globale dans tous les contextes d'exécution.

Cette variable est une 'superglobal', ou globale automatique. Cela signifie qu'elle est simplement disponible dans tous les contextes d'exécution (fonctions ou méthodes). Vous n'avez pas besoin de faire global $_COOKIE; pour y accéder, comme vous le faisiez avec $HTTP_COOKIE_VARS.

$HTTP_COOKIE_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_COOKIE_VARS et $_COOKIE sont des variables différentes et que PHP les traite comme telles.)

Si la directive register_globals est active, alors ces variables seront aussi rendues directement accessibles dans le contexte d'exécution global. C'est à dire séparément des tableaux $_COOKIE et $HTTP_COOKIE_VARS. Pour plus d'informations sur la sécurité de cette configuration, voyez le chapitre Utiliser la directive Register Globals. Ces variables globales individuelles ne sont pas des superglobales.

HTTP GET variables : $_GET

Note : Introduite en 4.1.0. Dans les versions plus anciennes, elle s'appelait $HTTP_GET_VARS.

Un tableau associatif des valeurs passées au script courant via le protocole HTTP et la méthode GET. Elle est automatiquement globale dans tous les contextes d'exécution.

Cette variable est une 'superglobal', ou globale automatique. Cela signifie qu'elle est simplement disponible dans tous les contextes d'exécution (fonctions ou méthodes). Vous n'avez pas besoin de faire global $_GET; pour y accéder, comme vous le faisiez avec $HTTP_GET_VARS.

$HTTP_GET_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_GET_VARS et $_GET sont des variables différentes et que PHP les traite comme telles.)

Si la directive register_globals est active, alors ces variables seront aussi rendues directement accessibles dans le contexte d'exécution global. C'est à dire séparément des tableaux $_GET et $HTTP_GET_VARS. Pour plus d'informations sur la sécurité de cette configuration, voyez le chapitre Utiliser la directive Register Globals. Ces variables globales individuelles ne sont pas des superglobales.

HTTP POST variables : $_POST

Note : Introduite en 4.1.0. Dans les versions plus anciennes, elle s'appelait $HTTP_POST_VARS.

Un tableau associatif des valeurs passées au script courant via le protocole HTTP et la méthode POST. Elle est automatiquement globale dans tous les contextes d'exécution.

Cette variable est une 'superglobal', ou globale automatique. Cela signifie qu'elle est simplement disponible dans tous les contextes d'exécution (fonctions ou méthodes). Vous n'avez pas besoin de faire global $_POST; pour y accéder, comme vous le faisiez avec $HTTP_POST_VARS.

$HTTP_POST_VARS contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_POST_VARS et $_POST sont des variables différentes et que PHP les traite comme telles.)

Si la directive register_globals est active, alors ces variables seront aussi rendues directement accessibles dans le contexte d'exécution global. C'est à dire séparément des tableaux $_POST et $HTTP_POST_VARS. Pour plus d'informations sur la sécurité de cette configuration, voyez le chapitre Utiliser la directive Register Globals. Ces variables globales individuelles ne sont pas des superglobales.

Variable de téléchargement de fichier via HTTP : $_FILES

Note : Introduite en 4.1.0. Dans les versions plus anciennes, elle s'appelait $HTTP_POST_FILES.

Un tableau associatif des valeurs téléchargées au script courant via le protocole HTTP et la méthode POST. Elle est automatiquement globale dans tous les contextes d'exécution.

Cette variable est une 'superglobal', ou globale automatique. Cela signifie qu'elle est simplement disponible dans tous les contextes d'exécution (fonctions ou méthodes). Vous n'avez pas besoin de faire global $_FILES; pour y accéder, comme vous le faisiez avec $HTTP_POST_FILES.

$HTTP_POST_FILES contient les mêmes informations, mais n'est pas superglobale. (Notez que $HTTP_POST_FILES et $_FILES sont des variables différentes et que PHP les traite comme telles)

Si la directive register_globals est active, alors ces variables seront aussi rendues directement accessibles dans le contexte d'exécution global. C'est à dire séparément des tableaux $_FILES et $HTTP_POST_FILES. Pour plus d'informations sur la sécurité de cette configuration, voyez le chapitre Utiliser la directive Register Globals. Ces variables globales individuelles ne sont pas des superglobales.

Variables de requête : $_REQUEST

Note : Introduite en 4.1.0. Dans les versions plus anciennes, elle n'avait pas d'équivalent.

Note : Dans les versions antérieures à PHP 4.3.0, les informations de $_FILES étaient inclues également dans $_REQUEST.

Un tableau associatif constitué du contenu des variables $_GET, $_POST, $_COOKIE.

Cette variable est une 'superglobal', ou globale automatique. Cela signifie qu'elle est simplement disponible dans tous les contextes d'exécution (fonctions ou méthodes). Vous n'avez pas besoin de faire global $_REQUEST; pour y accéder.

Si la directive register_globals est active, alors ces variables seront aussi rendues directement accessibles dans le contexte d'exécution global. C'est à dire séparément des tableaux $_REQUEST. Pour plus d'informations sur la sécurité de cette configuration, voyez le chapitre Utiliser la directive Register Globals. Ces variables globales individuelles ne sont pas des superglobales.

Session variables : $_SESSION

Note : Introduite en 4.1.0. Dans les versions plus anciennes, elle s'appelait $HTTP_SESSION_VARS.

Un tableau associatif des valeurs stockées dans les sessions, et accessible au script courant. Elle est automatiquement globale dans tous les contextes d'exécution. Voyez l'extension Sessions pour plus de détails sur comment est utilisée cette variable.

Cette variable est une 'superglobal', ou globale automatique. Cela signifie qu'elle est simplement disponible dans tous les contextes d'exécution (fonctions ou méthodes). Vous n'avez pas besoin de faire global $_SESSION; pour y accéder, comme vous le faisiez avec $HTTP_SESSION_VARS.

$HTTP_SESSION_VARS contient les mêmes informations, mais n'est pas supperglobale. (Notez que $HTTP_SESSION_VARS et $_SESSION sont des variables différentes et que PHP les traite comme telles)

Si la directive register_globals est active, alors ces variables seront aussi rendues directement accessibles dans le contexte d'exécution global. C'est à dire séparément des tableaux $_SESSION et $HTTP_SESSION_VARS. Pour plus d'informations sur la sécurité de cette configuration, voyez le chapitre Utiliser la directive Register Globals. Ces variables globales individuelles ne sont pas des superglobales.

Variables globales : $GLOBALS

Note : $GLOBALS est disponible depuis PHP 3.0.0.

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.

Cette variable est une 'superglobal', ou globale automatique. Cela signifie qu'elle est simplement disponible dans tous les contextes d'exécution (fonctions ou méthodes). Vous n'avez pas besoin de faire global $GLOBALS; pour y accéder.

Le dernier message d'erreur : $php_errormsg

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

Précédent | Sommaire | Suivant
Mots réservés en PHP | Niveau supérieur | Classes prédéfinies


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 classe standard de PHP, inclus dans toutes les versions de PHP.

Directory

La classe qui permet d'instancier dir().

stdClass

__PHP_Incomplete_Class

Classes prédéfinies en PHP 5

Ces classes supplémentaires ont été ajoutées en PHP 5.0.0.

exception

php_user_filter

Précédent | Sommaire | Suivant
Variables prédéfinies | Niveau supérieur | Constantes pré-définies


Constantes pré-définies

Constantes pré-définies

Ces constantes sont définies par le coeur de PHP. Cela inclut notamment PHP, le moteur Zend et les modules SAPI.

PHP_VERSION (chaîne de caractères)

PHP_OS (chaîne de caractères)

PHP_SAPI (chaîne de caractères)

Disponible depuis PHP 4.2.0. Voyez aussi php_sapi_name().

PHP_EOL (chaîne de caractères)

Disponible depuis PHP 4.3.10 et PHP 5.0.2

PHP_INT_MAX (integer)

Disponible depuis PHP 4.4.0 et PHP 5.0.5

PHP_INT_SIZE (integer)

Disponible depuis PHP 4.4.0 et PHP 5.0.5

DEFAULT_INCLUDE_PATH (chaîne de caractères)

PEAR_INSTALL_DIR (chaîne de caractères)

PEAR_EXTENSION_DIR (chaîne de caractères)

PHP_EXTENSION_DIR (chaîne de caractères)

PHP_PREFIX (chaîne de caractères)

Disponible depuis PHP 4.3.0

PHP_BINDIR (chaîne de caractères)

PHP_LIBDIR (chaîne de caractères)

PHP_DATADIR (chaîne de caractères)

PHP_SYSCONFDIR (chaîne de caractères)

PHP_LOCALSTATEDIR (chaîne de caractères)

PHP_CONFIG_FILE_PATH (chaîne de caractères)

PHP_CONFIG_FILE_SCAN_DIR (chaîne de caractères)

PHP_SHLIB_SUFFIX (chaîne de caractères)

Disponible depuis PHP 4.3.0

PHP_OUTPUT_HANDLER_START (entier)

PHP_OUTPUT_HANDLER_CONT (entier)

PHP_OUTPUT_HANDLER_END (entier)

E_ERROR (entier)

E_WARNING (entier)

E_PARSE (entier)

E_NOTICE (entier)

E_CORE_ERROR (entier)

E_CORE_WARNING (entier)

E_COMPILE_ERROR (entier)

E_COMPILE_WARNING (entier)

E_USER_ERROR (entier)

E_USER_WARNING (entier)

E_USER_NOTICE (entier)

E_ALL (entier)

E_STRICT (entier)

Disponible depuis PHP 5.0.0.

__COMPILER_HALT_OFFSET__ (entier)

Disponible depuis PHP 5.1.0

Voir aussi les constantes magiques.

Constantes standards pré-définies

Ces constantes sont définies par défaut dans PHP.

EXTR_OVERWRITE (entier)

EXTR_SKIP (entier)

EXTR_PREFIX_SAME (entier)

EXTR_PREFIX_ALL (entier)

EXTR_PREFIX_INVALID (entier)

EXTR_PREFIX_IF_EXISTS (entier)

EXTR_IF_EXISTS (entier)

SORT_ASC (entier)

SORT_DESC (entier)

SORT_REGULAR (entier)

SORT_NUMERIC (entier)

SORT_STRING (entier)

CASE_LOWER (entier)

CASE_UPPER (entier)

COUNT_NORMAL (entier)

COUNT_RECURSIVE (entier)

ASSERT_ACTIVE (entier)

ASSERT_CALLBACK (entier)

ASSERT_BAIL (entier)

ASSERT_WARNING (entier)

ASSERT_QUIET_EVAL (entier)

CONNECTION_ABORTED (entier)

CONNECTION_NORMAL (entier)

CONNECTION_TIMEOUT (entier)

INI_USER (entier)

INI_PERDIR (entier)

INI_SYSTEM (entier)

INI_ALL (entier)

M_E (float)

M_LOG2E (float)

M_LOG10E (float)

M_LN2 (float)

M_LN10 (float)

M_PI (float)

M_PI_2 (float)

M_PI_4 (float)

M_1_PI (float)

M_2_PI (float)

M_2_SQRTPI (float)

M_SQRT2 (float)

M_SQRT1_2 (float)

CRYPT_SALT_LENGTH (entier)

CRYPT_STD_DES (entier)

CRYPT_EXT_DES (entier)

CRYPT_MD5 (entier)

CRYPT_BLOWFISH (entier)

DIRECTORY_SEPARATOR (chaîne de caractères)

SEEK_SET (entier)

SEEK_CUR (entier)

SEEK_END (entier)

LOCK_SH (entier)

LOCK_EX (entier)

LOCK_UN (entier)

LOCK_NB (entier)

HTML_SPECIALCHARS (entier)

HTML_ENTITIES (entier)

ENT_COMPAT (entier)

ENT_QUOTES (entier)

ENT_NOQUOTES (entier)

INFO_GENERAL (entier)

INFO_CREDITS (entier)

INFO_CONFIGURATION (entier)

INFO_MODULES (entier)

INFO_ENVIRONMENT (entier)

INFO_VARIABLES (entier)

INFO_LICENSE (entier)

INFO_ALL (entier)

CREDITS_GROUP (entier)

CREDITS_GENERAL (entier)

CREDITS_SAPI (entier)

CREDITS_MODULES (entier)

CREDITS_DOCS (entier)

CREDITS_FULLPAGE (entier)

CREDITS_QA (entier)

CREDITS_ALL (entier)

STR_PAD_LEFT (entier)

STR_PAD_RIGHT (entier)

STR_PAD_BOTH (entier)

PATHINFO_DIRNAME (entier)

PATHINFO_BASENAME (entier)

PATHINFO_EXTENSION (entier)

PATH_SEPARATOR (chaîne de caractères)

CHAR_MAX (entier)

LC_CTYPE (entier)

LC_NUMERIC (entier)

LC_TIME (entier)

LC_COLLATE (entier)

LC_MONETARY (entier)

LC_ALL (entier)

LC_MESSAGES (entier)

ABDAY_1 (entier)

ABDAY_2 (entier)

ABDAY_3 (entier)

ABDAY_4 (entier)

ABDAY_5 (entier)

ABDAY_6 (entier)

ABDAY_7 (entier)

DAY_1 (entier)

DAY_2 (entier)

DAY_3 (entier)

DAY_4 (entier)

DAY_5 (entier)

DAY_6 (entier)

DAY_7 (entier)

ABMON_1 (entier)

ABMON_2 (entier)

ABMON_3 (entier)

ABMON_4 (entier)

ABMON_5 (entier)

ABMON_6 (entier)

ABMON_7 (entier)

ABMON_8 (entier)

ABMON_9 (entier)

ABMON_10 (entier)

ABMON_11 (entier)

ABMON_12 (entier)

MON_1 (entier)

MON_2 (entier)

MON_3 (entier)

MON_4 (entier)

MON_5 (entier)

MON_6 (entier)

MON_7 (entier)

MON_8 (entier)

MON_9 (entier)

MON_10 (entier)

MON_11 (entier)

MON_12 (entier)

AM_STR (entier)

PM_STR (entier)

D_T_FMT (entier)

D_FMT (entier)

T_FMT (entier)

T_FMT_AMPM (entier)

ERA (entier)

ERA_YEAR (entier)

ERA_D_T_FMT (entier)

ERA_D_FMT (entier)

ERA_T_FMT (entier)

ALT_DIGITS (entier)

INT_CURR_SYMBOL (entier)

CURRENCY_SYMBOL (entier)

CRNCYSTR (entier)

MON_DECIMAL_POINT (entier)

MON_THOUSANDS_SEP (entier)

MON_GROUPING (entier)

POSITIVE_SIGN (entier)

NEGATIVE_SIGN (entier)

INT_FRAC_DIGITS (entier)

FRAC_DIGITS (entier)

P_CS_PRECEDES (entier)

P_SEP_BY_SPACE (entier)

N_CS_PRECEDES (entier)

N_SEP_BY_SPACE (entier)

P_SIGN_POSN (entier)

N_SIGN_POSN (entier)

DECIMAL_POINT (entier)

RADIXCHAR (entier)

THOUSANDS_SEP (entier)

THOUSEP (entier)

GROUPING (entier)

YESEXPR (entier)

NOEXPR (entier)

YESSTR (entier)

NOSTR (entier)

CODESET (entier)

LOG_EMERG (entier)

LOG_ALERT (entier)

LOG_CRIT (entier)

LOG_ERR (entier)

LOG_WARNING (entier)

LOG_NOTICE (entier)

LOG_INFO (entier)

LOG_DEBUG (entier)

LOG_KERN (entier)

LOG_USER (entier)

LOG_MAIL (entier)

LOG_DAEMON (entier)

LOG_AUTH (entier)

LOG_SYSLOG (entier)

LOG_LPR (entier)

LOG_NEWS (entier)

LOG_UUCP (entier)

LOG_CRON (entier)

LOG_AUTHPRIV (entier)

LOG_LOCAL0 (entier)

LOG_LOCAL1 (entier)

LOG_LOCAL2 (entier)

LOG_LOCAL3 (entier)

LOG_LOCAL4 (entier)

LOG_LOCAL5 (entier)

LOG_LOCAL6 (entier)

LOG_LOCAL7 (entier)

LOG_PID (entier)

LOG_CONS (entier)

LOG_ODELAY (entier)

LOG_NDELAY (entier)

LOG_NOWAIT (entier)

LOG_PERROR (entier)

Précédent | Sommaire | Suivant
Classes prédéfinies | Niveau supérieur | Types des ressources PHP


Types des ressources PHP

Manuel PHP
Précédent Suivant

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

Tableau M-1. Types de ressource

Ressource | Construite par | Utilisée par | Détruite par | Définition
aspell | aspell_new() | aspell_check(), aspell_check_raw(), aspell_suggest() | Aucun | Dictionnaire Aspell
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Fichier bzip2
COM | com_load() | com_invoke(), com_propget(), com_get(), com_propput(), com_set(), com_propput() | Aucun | Référence sur un objet COM
VARIANT
cpdf | cpdf_open() | cpdf_page_init(), cpdf_finalize_page(), cpdf_finalize(), cpdf_output_buffer(), cpdf_save_to_file(), cpdf_set_current_page(), cpdf_begin_text(), cpdf_end_text(), cpdf_show(), cpdf_show_xy(), cpdf_text(), cpdf_set_font(), cpdf_set_leading(), cpdf_set_text_rendering(), cpdf_set_horiz_scaling(), cpdf_set_text_rise(), cpdf_set_text_matrix(), cpdf_set_text_pos(), cpdf_set_text_pos(), cpdf_set_word_spacing(), cpdf_continue_text(), cpdf_stringwidth(), cpdf_save(), cpdf_translate(), cpdf_restore(), cpdf_scale(), cpdf_rotate(), cpdf_setflat(), cpdf_setlinejoin(), cpdf_setlinecap(), cpdf_setmiterlimit(), cpdf_setlinewidth(), cpdf_setdash(), cpdf_moveto(), cpdf_rmoveto(), cpdf_curveto(), cpdf_lineto(), cpdf_rlineto(), cpdf_circle(), cpdf_arc(), cpdf_rect(), cpdf_closepath(), cpdf_stroke(), cpdf_closepath_fill_stroke(), cpdf_fill_stroke(), cpdf_clip(), cpdf_fill(), cpdf_setgray_fill(), cpdf_setgray_stroke(), cpdf_setgray(), cpdf_setrgbcolor_fill(), cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor(), cpdf_add_outline(), cpdf_set_page_animation(), cpdf_import_jpeg(), cpdf_place_inline_image(), cpdf_add_annotation() | cpdf_close() | Document PDF avec la bibliothèque CPDF
cpdf outline
curl | curl_copy_handle(), curl_init() | curl_copy_handle(), curl_errno(), curl_error(), curl_exec(), curl_getinfo(), curl_setopt() | curl_close() | Session Curl
dbm | dbmopen() | dbmexists(), dbmfetch(), dbminsert(), dbmreplace(), dbmdelete(), dbmfirstkey(), dbmnextkey() | dbmclose() | Lien vers une base de données DBM
dba | dba_popen() | 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_open() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | Aucun | Lien persistant vers une base de données DBA
dbase | dbase_open() | dbase_pack(), dbase_add_record(), dbase_replace_record(), dbase_delete_record(), dbase_get_record(), dbase_get_record_with_names(), dbase_numfields(), dbase_numrecords() | dbase_close() | Lien vers une base de données dbase
dbx_link_object | dbx_connect() | dbx_query() | dbx_close() | Connexion dbx
dbx_result_object dbx_query() () Aucun Résultat dbx
domxml attribute
domxml document
domxml node
xpath context
xpath object
fbsql link | fbsql_change_user(), fbsql_connect() | fbsql_autocommit(), fbsql_blob_size(), fbsql_clob_size(), fbsql_commit(), fbsql_change_user(), fbsql_create_blob(), fbsql_create_db(), fbsql_create_clob(), fbsql_data_seek(), fbsql_database_password(), fbsql_database(), fbsql_db_query(), fbsql_db_status(), fbsql_drop_db(), fbsql_errno(), fbsql_error(), fbsql_get_autostart_info(), fbsql_hostname(), fbsql_insert_id(), fbsql_list_dbs(), fbsql_password(), fbsql_read_blob(), fbsql_read_clob(), fbsql_rollback(), fbsql_select_db(), fbsql_set_password(), fbsql_set_transaction(), fbsql_start_db(), fbsql_stop_db(), fbsql_username() | fbsql_close() | Lien vers une base de données fbsql
fbsql plink | fbsql_change_user(), fbsql_pconnect() | fbsql_autocommit(), fbsql_change_user(), fbsql_create_db(), fbsql_data_seek(), fbsql_db_query(), fbsql_drop_db(), fbsql_select_db(), fbsql_errno(), fbsql_error(), fbsql_insert_id(), fbsql_list_dbs() | Aucun | Lien persistant vers une base de données fbsql
fbsql result | fbsql_db_query(), fbsql_list_dbs(), fbsql_query(), fbsql_list_fields(), fbsql_list_tables(), fbsql_tablename() | fbsql_affected_rows(), fbsql_fetch_array(), fbsql_fetch_assoc(), fbsql_fetch_field(), fbsql_fetch_lengths(), fbsql_fetch_object(), fbsql_fetch_row(), fbsql_field_flags(), fbsql_field_name(), fbsql_field_len(), fbsql_field_seek(), fbsql_field_table(), fbsql_field_type(), fbsql_next_result(), fbsql_num_fields(), fbsql_num_rows(), fbsql_result(), fbsql_num_rows() | fbsql_free_result() | Résultat fbsql
fdf | fdf_open() | fdf_create(), fdf_save(), fdf_get_value(), fdf_set_value(), fdf_next_field_name(), fdf_set_ap(), fdf_set_status(), fdf_get_status(), fdf_set_file(), fdf_get_file(), fdf_set_flags(), fdf_set_opt(), fdf_set_submit_form_action(), fdf_set_javascript_action() | fdf_close() | Fichier FDF
ftp | ftp_connect(), ftp_ssl_connect() | ftp_login(), ftp_pwd(), ftp_cdup(), ftp_chdir(), ftp_mkdir(), ftp_rmdir(), ftp_nlist(), ftp_rawlist(), ftp_systype(), ftp_pasv(), ftp_get(), ftp_fget(), ftp_put(), ftp_fput(), ftp_size(), ftp_mdtm(), ftp_rename(), ftp_delete(), ftp_site(), ftp_alloc(), ftp_chmod(), ftp_exec(), ftp_get_option(), ftp_nb_continue(), ftp_nb_fget(), ftp_nb_fput(), ftp_nb_get(), ftp_nb_put(), ftp_raw(), ftp_set_option() | ftp_close() | Connexion FTP
gd | imagecreate(), imagecreatefromgd(), imagecreatefromgd2(), imagecreatefromgd2part(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring(), imagecreatefromxbm(), imagecreatefromxpm(), imagecreatetruecolor(), imagerotate() | imagearc(), imagechar(), imagecharup(), imagecolorallocate(), imagecolorat(), imagecolorclosest(), imagecolorexact(), imagecolorresolve(), imagegammacorrect(), imagegammacorrect(), imagecolorset(), imagecolorsforindex(), imagecolorstotal(), imagecolortransparent(), imagecopy(), imagecopyresized(), imagedashedline(), imagefill(), imagefilledpolygon(), imagefilledrectangle(), imagefilltoborder(), imagegif(), imagepng(), imagejpeg(), imagewbmp(), imageinterlace(), imageline(), imagepolygon(), imagepstext(), imagerectangle(), imagerotate(), imagesetpixel(), imagestring(), imagestringup(), imagesx(), imagesy(), imagettftext(), imagefilledarc(), imageellipse(), imagefilledellipse(), imagecolorclosestalpha(), imagecolorexactalpha(), imagecolorresolvealpha(), imagecopymerge(), imagecopymergegray(), imagecopyresampled(), imagetruecolortopalette(), imagesetbrush(), imagesettile(), imagesetthickness(), image2wbmp(), imagealphablending(), imageantialias(), imagecolorallocatealpha(), imagecolorclosesthwb(), imagecolordeallocate(), imagecolormatch(), imagefilter(), imagefttext(), imagegd(), imagegd2(), imageistruecolor(), imagelayereffect(), imagepalettecopy(), imagesavealpha(), imagesetstyle(), imagexbm() | imagedestroy() | Image GD
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | Aucun | Police pour GD
gd PS encoding
gd PS font | imagepsloadfont() | imagepstext(), imagepsslantfont(), imagepsextendfont(), imagepsencodefont(), imagepsbbox() | imagepsfreefont() | Police PostScript pour GD
GMP integer | gmp_init() | gmp_intval(), gmp_strval(), gmp_add(), gmp_sub(), gmp_mul(), gmp_div_q(), gmp_div_r(), gmp_div_qr(), gmp_div(), gmp_mod(), gmp_divexact(), gmp_cmp(), gmp_neg(), gmp_abs(), gmp_sign(), gmp_fact(), gmp_sqrt(), gmp_sqrtrm(), gmp_perfect_square(), gmp_pow(), gmp_powm(), gmp_prob_prime(), gmp_gcd(), gmp_gcdext(), gmp_invert(), gmp_legendre(), gmp_jacobi(), gmp_random(), gmp_and(), gmp_or(), gmp_xor(), gmp_setbit(), gmp_clrbit(), gmp_scan0(), gmp_scan1(), gmp_popcount(), gmp_hamdist() | Aucun | Nombre GMP
hyperwave document | hw_cp(), hw_docbyanchor(), hw_getremote(), hw_getremotechildren() | hw_children(), hw_childrenobj(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getsrcbydestobj(), hw_getandlock(), hw_gettext(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_inscoll(), hw_pipedocument(), hw_unlock() | hw_deleteobject() | Objet Hyperwave
hyperwave link | hw_connect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | hw_close(), hw_free_document() | Lien vers un serveur Hyperwave
hyperwave link persistent | hw_pconnect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | Aucun | Lien persistant vers un serveur Hyperwave
icap | icap_open() | icap_fetch_event(), icap_list_events(), icap_store_event(), icap_snooze(), icap_list_alarms(), icap_delete_event() | icap_close() | Lien vers un serveur icap
imap | imap_open() | imap_append(), imap_body(), imap_check(), imap_createmailbox(), imap_delete(), imap_deletemailbox(), imap_expunge(), imap_fetchbody(), imap_fetchstructure(), imap_headerinfo(), imap_header(), imap_headers(), imap_listmailbox(), imap_getmailboxes(), imap_get_quota(), imap_status(), imap_listsubscribed(), imap_set_quota(), imap_set_quota(), imap_getsubscribed(), imap_mail_copy(), imap_mail_move(), imap_num_msg(), imap_num_recent(), imap_ping(), imap_renamemailbox(), imap_reopen(), imap_subscribe(), imap_undelete(), imap_unsubscribe(), imap_scanmailbox(), imap_mailboxmsginfo(), imap_fetchheader(), imap_uid(), imap_msgno(), imap_search(), imap_fetch_overview() | imap_close() | Lien vers un serveur mail (IMAP, POP3)
imap chain persistent
imap persistent
ingres | ingres_connect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | ingres_close() | Lien vers une base de données ingresII
ingres persistent | ingres_pconnect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | Aucun | Lien persistant vers une base de données ingresII
interbase blob
interbase link | ibase_connect() | ibase_query(), ibase_prepare(), ibase_trans() | ibase_close() | Lien vers une base de données Interbase
interbase link persistent | ibase_pconnect() | ibase_query(), ibase_prepare(), ibase_trans() | Aucun | Lien persistant vers une base de données Interbase
interbase query | ibase_prepare() | ibase_execute() | ibase_free_query() | Requête Interbase
interbase result | ibase_query() | ibase_fetch_row(), ibase_fetch_object(), ibase_field_info(), ibase_num_fields() | ibase_free_result() | Résultat Interbase
interbase transaction | ibase_trans() | ibase_commit() | ibase_rollback() | Transaction Interbase
java
ldap link | ldap_connect(), ldap_search() | ldap_count_entries(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_next_attribute(), ldap_next_entry() | ldap_close() | Lien vers un serveur LDAP
ldap result | ldap_read() | ldap_add(), ldap_compare(), ldap_bind(), ldap_count_entries(), ldap_delete(), ldap_errno(), ldap_error(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_get_option(), ldap_list(), ldap_modify(), ldap_mod_add(), ldap_mod_replace(), ldap_next_attribute(), ldap_next_entry(), ldap_mod_del(), ldap_set_option(), ldap_unbind() | ldap_free_result() | Résultat de recherche LDAP
ldap result entry
mcal | mcal_open(), mcal_popen() | mcal_create_calendar(), mcal_rename_calendar(), mcal_rename_calendar(), mcal_delete_calendar(), mcal_fetch_event(), mcal_list_events(), mcal_append_event(), mcal_store_event(), mcal_delete_event(), mcal_list_alarms(), mcal_event_init(), mcal_event_set_category(), mcal_event_set_title(), mcal_event_set_description(), mcal_event_set_start(), mcal_event_set_end(), mcal_event_set_alarm(), mcal_event_set_class(), mcal_next_recurrence(), mcal_event_set_recur_none(), mcal_event_set_recur_daily(), mcal_event_set_recur_weekly(), mcal_event_set_recur_monthly_mday(), mcal_event_set_recur_monthly_wday(), mcal_event_set_recur_yearly(), mcal_fetch_current_stream_event(), mcal_event_add_attribute(), mcal_expunge() | mcal_close() | Lien vers un serveur Mcal
SWFAction
SWFBitmap
SWFButton
SWFDisplayItem
SWFFill
SWFFont
SWFGradient
SWFMorph
SWFMovie
SWFShape
SWFSprite
SWFText
SWFTextField
mnogosearch agent
mnogosearch result
msql link | msql_connect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | msql_close() | Lien vers une base de données mSQL
msql link persistent | msql_pconnect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | Aucun | Lien persistant vers une base de données mSQL
msql query | msql_db_query(), msql_list_dbs(), msql_list_fields(), msql_list_tables(), msql_query() | msql(), msql_affected_rows(), msql_data_seek(), msql_dbname(), msql_fetch_array(), msql_fetch_field(), msql_fetch_object(), msql_fetch_row(), msql_field_seek(), msql_field_table(), msql_field_flags(), msql_field_len(), msql_field_name(), msql_field_type(), msql_num_fields(), msql_num_rows(), msql_numfields(), msql_numrows(), msql_result() | msql_free_result(), msql_free_result() | Résultat mSQL
mssql link | mssql_connect() | mssql_query(), mssql_select_db() | mssql_close() | Lien vers une base de données Microsoft SQL Server
mssql link persistent | mssql_pconnect() | mssql_query(), mssql_select_db() | Aucun | Lien persistant vers une base de données Microsoft SQL Server
mssql result | mssql_query() | mssql_data_seek(), mssql_fetch_array(), mssql_fetch_field(), mssql_fetch_object(), mssql_fetch_row(), mssql_field_length(), mssql_field_name(), mssql_field_seek(), mssql_field_type(), mssql_num_fields(), mssql_num_rows(), mssql_result() | mssql_free_result() | Résultat Microsoft SQL Server
mysql link | mysql_connect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | mysql_close() | Lien vers une base de données MySQL
mysql link persistent | mysql_pconnect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | Aucun | Lien persistant vers une base de données MySQL
mysql result | mysql_db_query(), mysql_list_dbs(), mysql_list_fields(), mysql_list_processes(), mysql_list_tables(), mysql_query(), mysql_unbuffered_query() | mysql_data_seek(), mysql_db_name(), mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_field(), mysql_fetch_lengths(), mysql_fetch_object(), mysql_fetch_row(), mysql_fetch_row(), mysql_field_flags(), mysql_field_name(), mysql_field_len(), mysql_field_seek(), mysql_field_table(), mysql_field_type(), mysql_num_fields(), mysql_num_rows(), mysql_result(), mysql_tablename() | mysql_free_result() | Résultat MySQL
oci8 collection
oci8 connection | ocilogon(), ociplogon(), ocinlogon() | ocicommit(), ociserverversion(), ocinewcursor(), ociparse(), ocierror() | ocilogoff() | Lien vers une base de données Oracle
oci8 descriptor
oci8 server
oci8 session
oci8 statement | ocinewdescriptor() | ocirollback(), ocinewdescriptor(), ocirowcount(), ocidefinebyname(), ocibindbyname(), ociexecute(), ocinumcols(), ociresult(), ocifetch(), ocifetchinto(), ocifetchstatement(), ocicolumnisnull(), ocicolumnname(), ocicolumnsize(), ocicolumntype(), ocistatementtype(), ocierror() | ocifreestatement() | 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
odbc link persistent | odbc_pconnect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | Aucun | Lien persistant vers une base de données ODBC
odbc result | odbc_prepare() | odbc_binmode(), odbc_cursor(), odbc_execute(), odbc_fetch_into(), odbc_fetch_row(), odbc_field_name(), odbc_field_num(), odbc_field_type(), odbc_field_len(), odbc_field_precision(), odbc_field_scale(), odbc_longreadlen(), odbc_num_fields(), odbc_num_rows(), odbc_result(), odbc_result_all(), odbc_setoption() | odbc_free_result() | Résultat ODBC
birdstep link
birdstep result
OpenSSL key | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | Clé de cryptage OpenSSL
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Clé publique
oracle cursor | ora_open() | ora_bind(), ora_columnname(), ora_columnsize(), ora_columntype(), ora_error(), ora_errorcode(), ora_exec(), ora_fetch(), ora_fetch_into(), ora_getcolumn(), ora_numcols(), ora_numrows(), ora_parse() | ora_close() | Curseur oracle
oracle link | ora_logon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | ora_logoff() | Lien vers une base de données oracle
oracle link persistent | ora_plogon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | Aucun | Lien persistant vers une base de données oracle
pdf document | pdf_new() | pdf_add_bookmark(), pdf_add_launchlink(), pdf_add_locallink(), pdf_add_note(), pdf_add_pdflink(), pdf_add_weblink(), pdf_arc(), pdf_attach_file(), pdf_begin_page(), pdf_circle(), pdf_clip(), pdf_closepath(), pdf_closepath_fill_stroke(), pdf_closepath_stroke(), pdf_concat(), pdf_continue_text(), pdf_curveto(), pdf_end_page(), pdf_endpath(), pdf_fill(), pdf_fill_stroke(), pdf_findfont(), pdf_get_buffer(), pdf_get_image_height(), pdf_get_image_width(), pdf_get_parameter(), pdf_get_value(), pdf_lineto(), pdf_moveto(), pdf_open_ccitt(), pdf_open_file(), pdf_open_image_file(), pdf_place_image(), pdf_rect(), pdf_restore(), pdf_rotate(), pdf_save(), pdf_scale(), pdf_setdash(), pdf_setflat(), pdf_setfont(), pdf_setgray(), pdf_setgray_fill(), pdf_setgray_stroke(), pdf_setlinecap(), pdf_setlinejoin(), pdf_setlinewidth(), pdf_setmiterlimit(), pdf_setpolydash(), pdf_setrgbcolor(), pdf_setrgbcolor_fill(), pdf_setrgbcolor_stroke(), pdf_set_border_color(), pdf_set_border_dash(), pdf_set_border_style(), pdf_set_char_spacing(), pdf_set_duration(), pdf_set_font(), pdf_set_horiz_scaling(), pdf_set_parameter(), pdf_set_text_pos(), pdf_set_text_rendering(), pdf_set_value(), pdf_set_word_spacing(), pdf_show(), pdf_show_boxed(), pdf_show_xy(), pdf_skew(), pdf_stringwidth(), pdf_stroke(), pdf_translate(), pdf_add_thumbnail(), pdf_arcn(), pdf_begin_pattern(), pdf_begin_template(), pdf_end_pattern(), pdf_end_template(), pdf_initgraphics(), pdf_makespotcolor(), pdf_set_info(), pdf_setcolor(), pdf_setmatrix(), pdf_open_memory_image() | pdf_close(), pdf_delete() | Document PDF
pdf image | pdf_open_image(), pdf_open_image_file(), pdf_open_memory_image() | pdf_get_image_height(), pdf_get_image_width(), pdf_open_ccitt(), pdf_place_image() | pdf_close_image() | Image dans un document PDF
pdf object
pdf outline
Objet de grande taille pgsql | pg_lo_open() | pg_lo_open(), pg_lo_create(), pg_lo_read(), pg_lo_read_all(), pg_lo_seek(), pg_lo_tell(), pg_lo_unlink(), pg_lo_write() | pg_lo_close() | Objet de grande taille PostGreSQL
pgsql link | pg_connect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | pg_close() | Lien vers une base de données PostGreSQL
pgsql link persistent | pg_pconnect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | Aucun | Lien persistant vers une base de données PostGreSQL
pgsql result | pg_execute(), pg_query(), pg_query_params(), pg_get_result() | pg_fetch_array(), pg_fetch_object(), pg_fetch_result(), pg_fetch_row(), pg_field_is_null(), pg_field_name(), pg_field_num(), pg_field_prtlen(), pg_field_size(), pg_field_type(), pg_last_oid(), pg_num_fields(), pg_num_rows(), pg_result_error(), pg_result_status() | pg_free_result() | Résultat PostGreSQL
pgsql string
printer
printer brush
printer font
printer pen
pspell | pspell_new(), pspell_new_config(), pspell_new_personal() | pspell_add_to_personal(), pspell_add_to_session(), pspell_check(), pspell_clear_session(), pspell_config_ignore(), pspell_config_mode(), pspell_config_personal(), pspell_config_repl(), pspell_config_runtogether(), pspell_config_save_repl(), pspell_save_wordlist(), pspell_store_replacement(), pspell_suggest() | Aucun | Dictionnaire Pspell
pspell config | pspell_config_create() | pspell_new_config() | Aucun | Configuration Pspell
Sablotron XSLT | xslt_create() | xslt_closelog(), xslt_openlog(), xslt_run(), xslt_set_sax_handler(), xslt_errno(), xslt_error(), xslt_fetch_result(), xslt_free() | xslt_free() | Analyseur XSLT
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close()
sockets file descriptor set | socket() | accept_connect(), bind(), connect(), listen(), read(), write() | close() | Socket
sockets i/o vector
dir | 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
pipe | popen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Processus
socket | fsockopen(), pfsockopen() | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Socket
sybase-db link | sybase_connect() | sybase_query(), sybase_select_db() | sybase_close() | Lien vers une base de données Sybase avec la bibliothèque db
sybase-db link persistent | sybase_pconnect() | sybase_query(), sybase_select_db() | Aucun | Lien persistant vers une base de données Sybase avec la bibliothèque db
sybase-db result | sybase_query(), sybase_unbuffered_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Résultat Sybase avec la bibliothèque DB
sybase-ct link | sybase_connect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | sybase_close() | Lien vers une base de données Sybase avec la bibliothèque CT
sybase-ct link persistent | sybase_pconnect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | Aucun | Lien persistant vers une base de données Sybase avec la bibliothèque CT
sybase-ct result | sybase_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Résultat Sybase avec la bibliothèque CT
sysvsem | sem_get() | sem_acquire() | sem_release() | Sémaphore Système V
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | Mémoire partagée Système V
wddx | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | Paquet wddx
xml | xml_parser_create(), xml_parser_create_ns() | xml_set_object(), xml_set_element_handler(), xml_set_character_data_handler(), xml_set_processing_instruction_handler(), xml_set_default_handler(), xml_set_unparsed_entity_decl_handler(), xml_set_notation_decl_handler(), xml_set_external_entity_ref_handler(), xml_parse(), xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number(), xml_get_current_byte_index(), xml_parse_into_struct(), xml_parser_set_option(), xml_parser_get_option() | xml_parser_free() | Analyseur syntaxique XML
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | Fichier compressé Gzip

Précédent | Sommaire | Suivant
Constantes pré-définies | Niveau supérieur | Liste des protocoles supportés


Liste des protocoles supportés

Manuel PHP
Précédent Suivant

Annexe N. Liste des protocoles supportés

Table des matières
Système de fichiers
Socket
HTTP et HTTPS
FTP et FTPS
Flux d'entrée/sortie
Flux compressés
Données (RFC 2397)
Shell sécurisé 2
Flux Audio
Gestionnaire de flux

Cette section recense une liste de protocoles gérant les URL, qui sont intégrés dans les fonctions d'accès aux fichiers, dans PHP. Par exemple, les fonctions fopen() et copy(). Ces fonctionnalités sont compilées comme des gestionnaires externes, et à partir de PHP 4.3.0, vous pouvez créer vos propres gestionnaires, avec la fonction stream_register_wrapper().

Système de fichiers

Toutes les versions de PHP. Explicitement avec le protocole file:// depuis PHP 4.3.0.

  • /path/to/file.ext

  • relative/path/to/file.ext

  • fileInCwd.ext

  • C:/path/to/winfile.ext

  • C:\path\to\winfile.ext

  • \\smbserver\share\path\to\winfile.ext

  • file:///path/to/file.ext

Filesystem est le gestionnaire par défaut de PHP et il représente les fichiers locaux. 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 à la position courante. Dans de nombreux cas, c'est le dossier de résidence du script, à moins qu'il n'ait été modifié. En utilisant la version CLI, le chemin sera calculé par rapport au dossier d'appel du script.

Avec certaines fonctions comme fopen() et file_get_contents(), include_path peut être scanné pour y trouver les fichiers, si un chemin relatif est fourni.

Tableau N-1. Liste des gestionnaires

Attribut | Supporté
Restreint par allow_url_fopen | Non
Autorise les lectures | Oui
Autorise les écritures | Oui
Autorise l'ajout | Oui
Autorise simultanément les lectures et écritures | Oui
Supporte stat() | Oui
Supporte unlink() | Oui
Supporte rename() | Oui
Supporte mkdir() | Oui
Supporte rmdir() | Oui

Précédent | Sommaire | Suivant
Types des ressources PHP | Niveau supérieur | Socket


HTTP et HTTPS

PHP 3, PHP 4, PHP 5. https:// depuis PHP 4.3.0

  • http://example.com

  • http://example.com/file.php?var1=val1&var2=val2

  • http://user:motdepasse@example.com

  • https://example.com

  • https://example.com/file.php?var1=val1&var2=val2

  • https://user:motdepasse@example.com

Permet des accès en lecture uniquement, pour des fichiers accessibles sur le réseau avec la méthode GET de HTTP 1.0. Un en-tête Host: est envoyé avec la requête, pour gérer les hôtes virtuels, basés sur des noms. Si vous avez configuré une version de navigateur avec l'option user_agent dans votre fichier php.ini, ou via le contexte de flux, il sera aussi utilisé dans votre requête.

Avertissement

Lorsque vous utilisez SSL, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer l'indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. L'astuce est de baisser le niveau de la directive error_reporting pour ne pas inclure les warnings. À partir de PHP 4.3.7, le bogue est détecté automatiquement lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour créer une socket ssl://, vous devez vous occuper vous-même de supprimer l'erreur.

Les redirections sont supportées depuis PHP 4.0.5; si vous utilisez une version plus ancienne, vous devrez ajouter vous-même les slash finaux dans vos URL. S'il est important de connaître l'URL de la ressource qui vous a fourni le document, une fois que toutes les redirections ont été suivies, vous devez analyser les en-têtes de réponses retournés par le flux.

Exemple N-2. http:// et redirections

<?php
$url = 'http://www.example.com/redirecting_page.php';

$fp = fopen($url, 'r');

/* Avant PHP 4.3.0 utilisez $http_response_header
   au lieu de stream_get_meta_data() */
$meta_data = stream_get_meta_data($fp);
foreach($meta_data['wrapper_data'] as $response) {

  /* Redirections? */
  if (substr(strtolower($response), 0, 10) == 'location: ') {
    /* modification de $url avec la nouvelle URL */
    $url = substr($response, 18);
  }

}

?>

Exemple N-3. Analyse une page et envoie des données avec la méthode POST

<?php

$postdata = http_build_query(
   array(
      'var1' => 'du contenu',
      'var2' => 'doh'
   )
);

$opts = array('http' =>
   array(
      'method'  => 'POST',
      'header'  => 'Content-type: application/x-www-form-urlencoded',
      'content' => $postdata
   )
);

$context  = stream_context_create($opts);

$result = file_get_contents('http://example.com/submit.php', false, $context);

?>

Le flux donne l'accès au corps (body) de la ressource. Les en-têtes sont stockés dans la variable $http_response_header. Depuis PHP 4.3.0, les en-têtes sont aussi accessibles avec la fonction stream_get_meta_data().

Les connexions HTTP sont en lecture seule. Vous ne pouvez pas écrire dans des fichiers ouverts via le protocole HTTP.

Note : HTTPS est supporté depuis PHP 4.3, si vous avez compilé le support d'OpenSSL.

Tableau N-2. Résumé des gestionnaires

Attribut | Supporté
Limité par allow_url_fopen | Oui
Autorisé en lecture | Oui
Autorisé en écriture | Non
Autorisé en ajout | Non
Autorise les lectures / écritures simultanées | Non applicable
Supporte stat() | Non
Supporte unlink() | Non
Supporte rename() | Non
Supporte mkdir() | Non
Supporte rmdir() | Non

Tableau N-3. Options de contexte (depuis PHP 5.0.0)

Nom | Utilisation | Par défaut
method | GET, POST, ou une autre méthode HTTP acceptée par le serveur distant. | GET
header | Les autres en-têtes envoyés durant la requête. Les valeurs de cette option remplaceront les valeurs déjà configurées (comme User-agent:, Host:, et Authentication:). |
user_agent | Valeur à envoyer pour l'en-tête User-Agent:. Cette valeur sera utilisée si un type de navigateur n'est pas spécifié dans l'option de contexte header ci-dessus. | Directive dans le php.ini : user_agent.
content | D'autres données envoyées après les en-têtes. Typiquement, utilisé pour placer les requêtes POST ou PUT. |
proxy | URI du serveur de proxy. (i.e. tcp://proxy.example.com:5100 ). Les proxys HTTPS (via les proxys HTTP) ne fonctionnent qu'avec PHP 5.1.0 ou supérieur. |
max_redirects | Le nombre maximum de redirection à suivre. Une valeur de 1 ou inférieure signifie qu'aucune redirection n'est suivie. Ajouté en PHP 5.1.0. | 20
protocol_version | Version du protocole HTTP. Ajouté en PHP 5.1.0. | 1.0
timeout | Lit de délai maximal en secondes, spécifié par un nombre à virgule flottante (e.g. 10.5). Ajouté en PHP 5.2.1. | default_socket_timeout

Options de contexte pour les sockets : Plusieurs options de contexte supplémentaires sont supportées par le gestionnaire de transport Pour les flux http://, voyez les options de contexte du transport tcp://. Pour les flux https://, voyez les options de contexte du transport ssl://.

Les en-têtes personnalisés peuvent être envoyés avec une requête HTTP dans les versions antérieures à la version 5 en tirant avantage d'un effet de bord dans la gestion de la configuration INI de user_agent. Définissez user_agent en n'importe quelle chaîne valide (comme la chaîne par défaut, PHP/version) suivi d'un caractère de retour chariot et d'un caractère de nouvelle ligne, suivis des en-têtes additionnels. Cette méthode fonctionne en PHP 4 ainsi que toutes les versions suivantes.

Exemple N-4. Envoi d'en-têtes personnalisés avec une requête HTTP

<?php
ini_set('user_agent', "PHP\r\nX-MyCustomHeader: Foo");

$fp = fopen('http://www.example.com/index.php', 'r');
?>

Équivaut à la requête suivante :

GET /index.php HTTP/1.0
Host: www.example.com
User-Agent: PHP
X-MyCustomHeader: Foo

Précédent | Sommaire | Suivant
Socket | Niveau supérieur | FTP et FTPS


FTP et FTPS

PHP 3, PHP 4, PHP 5. ftps:// depuis PHP 4.3

  • ftp://example.com/pub/file.txt

  • ftp://user:motdepasse@example.com/pub/file.txt

  • ftps://example.com/pub/file.txt

  • ftps://user:motdepasse@example.com/pub/file.txt

Permet l'accès aux fichiers existants, et la création de fichiers via FTP. Si le serveur ne supporte pas les connexions en mode passif, la connexion échouera.

Vous pouvez ouvrir des fichiers en lecture et 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.

Apposer : Depuis PHP 5.0.0, les fichiers doivent être apposés via la gestion d'URL ftp://. Dans les versions plus anciennes, tenter d'apposer un fichier via ftp:// causera une erreur.

ftps:// a été introduit en PHP 4.3. C'est le même que ftp://, mais il tente d'établir une connexion sécurisée avec le serveur FTP. Si le serveur ne le supporte pas, la connexion sera une connexion non sécurisée.

Note : FTPS est supporté depuis PHP 4.3.0, si vous avez compilé le support d'OpenSSL.

Tableau N-4. Résumé des gestionnaires

Attribut | PHP 4 | PHP 5
Limité par allow_url_fopen | Oui | Oui
Autorisé en lecture | Oui | Oui
Autorisé en écriture | Oui (nouveaux fichiers uniquement) | Oui (nouveaux fichiers et fichiers existants avec overwrite)
Autorisé en ajout | Non | Oui
Autorisé en lecture et écriture | Non | Non
Supporte stat() | Non | Depuis PHP 5.0.0 : uniquement filesize(), filetype(), file_exists(), is_file() et is_dir(). Depuis PHP 5.1.0 : filemtime().
Supporte unlink() | Non | Oui
Supporte rename() | Non | Oui
Supporte mkdir() | Non | Oui
Supporte rmdir() | Non | Oui

Tableau N-5. Options de contexte en PHP 5.0.0

Nam | Utilisation | Par défaut
overwrite | Permet l'écrasement d'un fichier existant sur le serveur distant. S'applique au mode écriture uniquement. | FALSE (Désactivé)
resume_pos | Offset du fichier où commencer le transfert. S'applique uniquement au mode de lecture. | 0 (Début du fichier)
proxy (PHP 5.1.0 ou supérieur) | Requête FTP proxy via le serveur http proxy. Appliquer uniquement aux opérations de lecture de fichiers. Exemple : tcp://squid.example.com:8000 |

Options de contexte pour les sockets : Plusieurs options de contexte supplémentaires sont supportées par le gestionnaire de transport Pour les flux ftp://, voyez les options de contexte du transport tcp://. Pour les flux https://, voyez les options de contexte du transport ssl://.

Précédent | Sommaire | Suivant
HTTP et HTTPS | Niveau supérieur | Flux d'entrée/sortie


Flux d'entrée/sortie

  • /path/to/file.ext

  • relative/path/to/file.ext

  • fileInCwd.ext

  • C:/path/to/winfile.ext

  • C:\path\to\winfile.ext

  • \\smbserver\share\path\to\winfile.ext

  • file:///path/to/file.ext

php://stdin, php://stdout et php://stderr donnent accès au flux correspondants d'entrée ou de sortie du processus PHP. Le flux représente un descripteur dupliqué du fichier, donc, si vous ouvrez php://stdin et que vous le fermez plus tard, vous fermez uniquement le descripteur, le flux référencé par STDIN ne sera pas affecté. Notez que le comportement de PHP à ce sujet est relativement bogué dans les versions antérieures à 5.2.1. Il est recommandé d'utiliser simplement les constantes STDIN, STDOUT et STDERR au lieu d'ouvrir manuellement les flux en utilisant ces gestionnaires.

php://output vous permet d'écrire dans le buffer de sortie, de la même manière que print() et echo().

php://input permet de lire des données POST bruts. C'est moins gourmand en mémoire que $HTTP_RAW_POST_DATA et il n'y a pas de directive spéciale dans php.ini. php://input n'est pas disponible avec enctype="multipart/form-data".

php://stdin et php://input sont en lecture seule, tandis que php://stdout, php://stderr et php://output sont en écriture seule.

php://filter est une sorte de méta-gestionnaire, prévu pour qui permet l'utilisation de filtre avec les données d'entrée au moment du démarrage du script. C'est pratique avec des fonctions compactes comme readfile(), file() et file_get_contents() où il n'y a pas d'opportunité d'appliquer un filtre aux données lues.

Le gestionnaire de php://filter prend les 'paramètres' suivants dans le 'chemin'.

  • /resource=<flux à filtrer> (obligatoire) Ce paramètre doit être situé à la fin de votre chaîne php://filter et doit pointer sur le flux à filtrer.

    Exemple N-5. php:// et les filtres

    <?php
    /* Ceci est l'équivalent de :
       readfile("http://www.example.com");
       puisque aucun filtre n'est spécifié */

    readfile("php://filter/resource=http://www.example.com");
    ?>

  • /read=<liste de filtres de la chaîne de lecture> (optionnel) Ce paramètre prend un ou plusieurs noms de filtres, séparés par le caractère pipe |.

    Exemple N-6. php:// et filtres de lecture

    <?php
    /* Cette ligne va afficher le contenu de
       www.example.com tout en majuscule */
    readfile("php://filter/read=string.toupper/resource=http://www.example.com");

    /* Cela va faire la même chose que ci-dessus, mais en plus,
       le résultat sera chiffré en ROT13 */
    readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
    ?>

  • /write=<liste de filtres de la chaîne d'écriture> (optionnel) Ce paramètre prend un ou plusieurs noms de filtres, séparés par le caractère pipe |.

    Exemple N-7. php:// et filtres d'écritures

    <?php
    /* Cette ligne va filtrer la chaîne "Bonjour le monde"
       avec le filtre rot13, puis écrire le résultat dans
       le fichier exemple.txt du dossier courant */
    file_put_contents("php://filter/write=string.rot13/resource=exemple.txt","Bonjour le monde");
    ?>

  • /<liste de filtres des deux chaînes> (optionnel) Tous les filtres qui ne sont pas préfixés avec read= ou write= seront appliqués aux deux chaînes de filtres, en lecture et en écriture.

Le gestionnaire php://memory stocke les données en mémoire. php://temp fonctionne de la même façon, mais utilise des fichiers temporaires pour stocker les données lorsqu'une certaine limite mémoire est atteinte (par défaut, 2 Mo).

Le gestionnaire php://temp prend les paramètres suivants, qui sont les parties du chemin :

  • /maxmemory:<nombre d'octets> (optionnel). Ce paramètre permet de changer la valeur de la limite mémoire (lorsque les données sont déplacées vers un fichier temporaire).

    <?php
    $fiveMBs     = 5 * 1024 * 1024;
    $fp = fopen("php://temp/maxmemory:$fiveMBs", 'r+');

    fputs($fp, "Bonjour\n");

    // lecture de ce que nous avons écrit
    rewind($fp);
    echo     stream_get_contents($fp);
    ?>

Tableau N-6. Résumé des gestionnaires (pour php://filter, voyez le résumé du filtre)

Attribut | Supporté
Limité par allow_url_fopen | Non
Limité par allow_url_include | php://input, php://stdin, php://memory et php://temp uniquement.
Autorisé en lecture | php://stdin, php://input, php://memory et php://temp uniquement.
Autorisé en écriture | php://stdout, php://stderr, php://output, php://memory et php://temp uniquement.
Autorisé en ajout | php://stdout, php://stderr, php://output, php://memory et php://temp uniquement. (Equivalent à écrire)
Autorisé en lecture et écriture | php://memory et php://temp uniquement.
Supporte stat() | php://memory et php://temp uniquement.
Supporte unlink() | Non
Supporte rename() | Non
Supporte mkdir() | Non
Supporte rmdir() | Non

Précédent | Sommaire | Suivant
FTP et FTPS | Niveau supérieur | Flux compressés


Flux compressés

zlib: PHP 4.0.4 - PHP 4.2.3 (systèmes avec fopencookie uniquement)

compress.zlib:// et compress.bzip2:// depuis PHP 4.3.0 et plus récent.

  • zlib:

  • compress.zlib://

  • 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 fichier. Cette notation est obsolète depuis PHP 4.3.0, étant données les ambiguités dues aux noms de fichiers contenant des deux points ':'. Utilisez plutôt compress.zlib://.

compress.zlib:// et compress.bzip2:// sont équivalents à gzopen() et bzopen() respectivement, et ils opèrent même sur les systèmes qui ne supportent pas fopencookie.

Tableau N-7. Résumé des gestionnaires

Attribut | Supporté
Limité par allow_url_fopen | Non
Autorisé en lecture | Oui
Autorisé en écriture | Oui
Autorisé en ajout | Oui
Autorisé en lecture et écriture | Non
Supporte stat() | Non, utilisez le gestionnaire file:// pour avoir des informations sur les fichiers compressés.
Supporte unlink() | Non, utilisez le gestionnaire file:// pour avoir des informations sur les fichiers compressés.
Supporte rename() | Non
Supporte mkdir() | Non
Supporte rmdir() | Non

Précédent | Sommaire | Suivant
Flux d'entrée/sortie | Niveau supérieur | Données (RFC 2397)


Shell sécurisé 2

ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// PHP 4.3.0 et supérieur (PECL)

  • 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

Ce gestionnaire n'est pas activé par défaut : Pour utiliser le gestionnaire ssh2.*://, vous devez installer l'extension SSH2 disponible dans PECL.

En plus d'accepter les traditionnelles identifications via l'URI, le gestionnaire ssh2 réutilisera les connexions ouvertes en passant la ressource de connexion dans la partie hôte de l'URL.

Exemple N-10. 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');
?>

Tableau N-9. Résumé du gestionnaire

Attribut | ssh2.shell | ssh2.exec | ssh2.tunnel | ssh2.sftp | ssh2.scp
Restreint par allow_url_fopen | Oui | Oui | Oui | Oui | Oui
Permet la lecture | Oui | Oui | Oui | Oui | Oui
Permet l'écriture | Oui | Oui | Oui | Oui | Non
Permet l'ajout | Non | Non | Non | Oui (lorsque supporté par le serveur) | Non
Permet l'écriture et la lecture simultanément | Oui | Oui | Oui | Oui | Non
Supporte la fonction stat() | Non | Non | Non | Oui | Non
Supporte la fonction unlink() | Non | Non | Non | Oui | Non
Supporte la fonction rename() | Non | Non | Non | Oui | Non
Supporte la fonction mkdir() | Non | Non | Non | Oui | Non
Supporte la fonction rmdir() | Non | Non | Non | Oui | Non

Tableau N-10. Options de contexte

Nom | Usage | Défaut
session | ressource ssh2 pré-connectée pour être réutilisée |
sftp | ressource sftp pré-allouée pour être réutilisée |
methods | méthodes é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 via 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'environnements à 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

Précédent | Sommaire | Suivant
Données (RFC 2397) | Niveau supérieur | Flux Audio


Flux Audio

ogg:// PHP 4.3.0 et suivant (PECL)

  • ogg://fichierSon.ogg

  • ogg:///chemin/vers/fichierSon.ogg

  • ogg://http://www.example.com/chemin/vers/FluxAduio.ogg

Ce gestionnaire n'est pas activé par défaut : Pour utiliser le gestionnaire ogg://, vous devez installer l'extension OGG/Vorbis disponible sur PECL.

Les fichiers ouverts pour lecture avec le gestionnaire ogg:// sont traités comme de l'audio compressée en utilisant le codec OGG/Vorbis. De la même façon, les fichiers ouverts pour écriture ou pour ajout avec le gestionnaire ogg:// sont écrits comme étant des données audio compressées. La fonction stream_get_meta_data(), lorsqu'elle est utilisée sur un fichier OGG/Vorbis ouvert pour 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.

Tableau N-11. Résumé du gestionnaire

Attribut | Supporté
Restreint par allow_url_fopen | Non
Permet la lecture | Oui
Permet l'écriture | Oui
Permet l'ajout | Oui
Permet la lecture et l'écriture simultanément | Non
Supporte la fonction stat() | Non
Supporte la fonction unlink() | Non
Supporte la fonction rename() | Non
Supporte la fonction mkdir() | Non
Supporte la fonction rmdir() | Non

Tableau N-12. Options de contexte

Nom | Utilisation | Défaut | Mode
pcm_mode | L'encodage PCM à appliquer pendant la lecture, parmi un de ceux-là : 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/Traitement
bitrate | Lorsque donné sous forme d'entier, la vitesse du débit pour encoder. (16000 to 131072) Lorsque donné sous forme de nombre à virgule flottante, la variation de la qualité du débit à utiliser. (-1.0 to 1.0) | 128000 | Écriture/Ajout
channels | Le numéro du canal audio à encoder, typiquement 1 (Mono) ou 2 (Stéréo). Intervalle pouvant aller aussi haut que 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

Précédent | Sommaire | Suivant
Shell sécurisé 2 | Niveau supérieur | Gestionnaire de flux


Liste des filtres standards

Manuel PHP
Précédent Suivant

Annexe O. Liste des filtres standards

Table des matières
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, ces données seront immédiatement passées au filtre, pour que la modification soit transparente. Mais si vous ajoutez un filtre avec prepend, 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 (depuis PHP 4.3.0) Utilisez ce filtre pour faire traiter les données par la fonction str_rot13().

Exemple O-1. Exemple avec le filtre string.rot13

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "Ceci est un test.\n");
/* affiche :  Prpv rfg ha grfg.   */
?>

string.toupper (depuis PHP 5.0.0) Utilisez ce filtre pour faire traiter les données par la fonction strtoupper().

Exemple O-2. Exemple avec le filtre string.toupper

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "Ceci est un test.\n");
/* affiche :  CECI EST UN TEST.   */
?>

string.tolower (depuis PHP 5.0.0) Utilisez ce filtre pour faire traiter les données par la fonction strtolower().

Exemple O-3. Exemple avec le filtre string.tolower

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "Ceci est un test.\n");
/* affiche :  ceci est un test.   */
?>

string.strip_tags (depuis PHP 5.0.0) Utilisez ce filtre pour faire traiter les données par la fonction strip_tags(). Le filtre accepte les paramètres sous deux formats : soit une chaîne contenant une liste de balises, de manière similaire au second paramètre de la fonction strip_tags(); soit un tableau de noms de balises.

Exemple O-4. Exemple avec le filtre string.strip_tags

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<strong><em><span>");
fwrite($fp, "<strong>Ce texte en gras</strong> finit par être aggrandi <h1>en un titre 1</h1>\n");
fclose($fp);
/* affiche :  <strong>Ce texte en gras</strong> finit par être aggrandi en un titre 1   */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('strong','em','span'));
fwrite($fp, "<strong>Ce texte en gras</strong> finit par être aggrandi <h1>en un titre 1</h1>\n");
fclose($fp);
/* affiche :  <strong>Ce texte en gras</strong> finit par être aggrandi en un titre 1   */
?>

Précédent | Sommaire | Suivant
Gestionnaire de flux | Niveau supérieur | Filtres de conversion


Filtres de conversion

Comme pour les filtres de chaînes, les filtres de conversion font ce que leur nom indique. Ces filtres ont été ajoutés en PHP 5.0.0. Pour plus d'informations, voyez le manuel de la fonction correspondante.

convert.base64-encode et convert.base64-decode Utilisez ce filtre pour faire traiter les données par les fonctions base64_encode() et base64_decode(). convert.base64-encode supporte les paramètres sous forme de tableau. Si line-length est donné, le résultat sera coupé en lignes de line-length caractères. Si line-break-chars est founi, chaque bloc de caractères sera terminé par ce paramètre. Ces paramètres donnent le même effet que la fonction base64_encode() utilisée conjointement avec chunk_split().

Exemple O-5. Exemple avec les filtres convert.base64-encode et convert.base64-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode');
fwrite($fp, "This is a test.\n");
fclose($fp);
/* affiche :  VGhpcyBpcyBhIHRlc3QuCg==  */

$param = array('line-length' => 8, 'line-break-chars' => "\r\n");
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode', STREAM_FILTER_WRITE, $param);
fwrite($fp, "This is a test.\n");
fclose($fp);
/* affiche :  VGhpcyBp
           :  cyBhIHRl
           :  c3QuCg==  */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* affiche :  This is a test.  */
?>

convert.quoted-printable-encode et convert.quoted-printable-decode Utilisez ce filtre pour faire traiter les données par la fonction quoted_printable_decode(). Il n'y a pas d'équivalent fonctionnel à convert.quoted-printable-encode. convert.quoted-printable-encode reçoit les paramètres sous forme de tableau. En plus des paramètres classiques de convert.base64-encode, convert.quoted-printable-encode accepte aussi les arguments booléens binary et force-encode-first. convert.base64-decode ne supporte le paramètre line-break-chars que comme indication pour supprimer les nouvelles lignes.

Exemple O-6. Exemple avec les filtres convert.quoted-printable-encode et convert.quoted-printable-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-encode');
fwrite($fp, "This is a test.\n");
/* affiche :  =This is a test.=0A  */
?>

Précédent | Sommaire | Suivant
Liste des filtres standards | Niveau supérieur | Filtres de compression


Filtres de compression

Alors que les gestionnaires de compression fournissent un moyen pour générer des fichiers aux formats gzip et bz2, ils ne permettent pas de gérer les protocoles réseaux compressés, ni de commencer avec un flux non compressé pour le transformer en flux compressé. Pour faire cela, il faut appliquer un filtre de compression.

Note : Les filtres de compression ne génèrent pas les en-têtes et fins de fichiers, comme le fait l'utilitaire gzip. Ils ne font que compresser et décompresser des portions de flux de données.

zlib.deflate (compression) et zlib.inflate (decompression) sont les implémentations des méthodes de compression présentées dans la RFC 1951. Le filtre deflate prend jusqu'à trois paramètres, passés sous la forme de tableau associatif.

level spécifie le niveau de compression souhaité, de 1 à 9. Plus le niveau est haut, meilleure est la compression, et plus cher est le coût de compression. Deux niveaux de compression spéciaux existent : 0, qui représente l'absence de compression, et -1, qui représente le niveau par défaut de la bibliothèque zlib : actuellement, c'est 6.

window est la taille du buffer mémoire, en base 2. Les valeurs supérieures, jusqu'à 15, soit 32768 octets, donnent de meilleures compressions, et les valeurs inférieures, jusqu'à 9, soit 512 octets, occupent le moins d'espace en mémoire. Par défaut, window vaut actuellement 15.

memory est une indication du niveau de mémoire nécessaire. Les valeurs valides vont de 1, pour l'allocation minimale, à 9, pour une allocation maximale. L'allocation de mémoire affecte la vitesse d'exécution, et non pas le coût global.

Note : Comme le niveau de compression est le paramètre le plus courant, il peut aussi être fourni en passant un entier comme paramètre, au lieu d'un tableau.

Les filtres de compression zlib.* sont disponibles avec PHP depuis la version 5.1.0 si le support zlib est activé. Ils sont également disponibles pour les versions 5.0.x en installant le paquet zlib_filter depuis PECL. Ces filtres ne sont pas disponibles en PHP 4.

Exemple O-7. zlib.deflate et zlib.inflate

<?php
$params = array('level' => 6, 'window' => 15, 'memory' => 9);

$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "Le texte original est long de " . strlen($original_text) . " octets.\n";

$fp = fopen('test.deflated', 'w');
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, $params);
fwrite($fp, $original_text);
fclose($fp);

echo "Le fichier compressé fait " . filesize('test.deflated') . " octets de long.\n";
echo "Le texte original était :\n";
/* Utilise readfile et zlib.inflate pour décompresser à la volée */
readfile('php://filter/zlib.inflate/resource=test.deflated');

/* Affiche :

Le texte original est long de 70 octets
Le fichier compressé fait 56 octets de long.
Le texte original était :
This is a test.
This is only a test.
This is not an important string.

 */
?>

Exemple O-8. simple zlib.deflate

<?php
$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "Le texte original est long de " . strlen($original_text) . " octets.\n";

$fp = fopen('test.deflated', 'w');
/* Ici, "6" indique le niveau de compression de 6 */
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, 6);
fwrite($fp, $original_text);
fclose($fp);

echo "Le fichier compressé fait " . filesize('test.deflated') . " octets de long.\n";

/* Affiche :

Le texte original est long de 70 octets
Le fichier compressé fait 56 octets de long.

 */
?>

bzip2.compress et bzip2.decompress fonctionnent de la même manière que les filtres zlib.

Le filtre bzip2.compress accepte jusqu'à 2 paramètres, sous la forme d'un tableau associatif :

blocks est une valeur entière, de 1 à 9, spécifiant le nombre de blocs de 100 kb de mémoire à allouer à l'espace de travail.

work est aussi un entier dont la valeur va de 0 à 250, et qui indique le niveau d'efforts fournis avec une méthode de compression avant de passer à une autre méthode, plus lente. Modifier ce paramètre n'a qu'un effet sur la vitesse de compression. Le gain d'espace ou la mémoire utilisée restent les mêmes. Un niveau de 0 indique que la bibliothèque doit utiliser sa configuration par défaut.

Le filtre bzip2.decompress accepte uniquement un paramètre, qui peut être passé sous la forme d'un booléen associé à l'index small.

small, lorsqu'il vaut TRUE, indique à la bibliothèque bzip qu'elle doit faire une décompression en utilisant le moins de mémoire possible, aux dépends de la vitesse.

Les filtres bzip2.* ne sont pas inclus dans la distribution PHP depuis la version 5.1.0 si le support bz2 est activé. Ils sont également disponibles pour les versions 5.0.x de PHP en installant le paquet bz2_filter depuis PECL. Ces filtres ne sont pas disponibles pour PHP 4.

Exemple O-9. bzip2.compress et bzip2.decompress

<?php
$param = array('blocks' => 9, 'work' => 0);

echo "Le texte original est long de " . strlen(LICENSE) . " octets.\n";

$fp = fopen('LICENSE.compressed', 'w');
stream_filter_append($fp, 'bzip2.compress', STREAM_FILTER_WRITE, $param);
fwrite($fp, file_get_contents('LICENSE'));
fclose($fp);

echo "Le fichier compressé fait " . filesize('LICENSE.compressed') . " octets de long.\n";

/* Affiche :

Le texte original est long de 3288 octets.
Le fichier compressé fait 1488 octets de long.

 */
?>

Précédent | Sommaire | Suivant
Filtres de conversion | Niveau supérieur | Filtres de chiffrement


Filtres de chiffrement

mcrypt.* et mdecrypt.* fournissent un système de chiffrement symétrique basé sur libmcrypt. Les deux filtres supportent les mêmes algorithmes disponibles avec la bibliothèque mcrypt, sous la forme de la directive mcrypt.ciphername où ciphername est le nom du chiffrement qui sera passé à mcrypt_module_open(). Les cinq paramètres suivants sont aussi disponibles :

Tableau O-1. Paramètres du filtre mcrypt

Paramètre | Obligatoire | Par défaut | Valeurs possibles
mode | Optionnel | cbc | cbc, cfb, ecb, nofb, ofb, stream
algorithms_dir | Optionnel | ini_get('mcrypt.algorithms_dir') | Chemin vers les algorithmes de modules
modes_dir | Optionnel | ini_get('mcrypt.modes_dir') | Chemin vers les modes de modules
iv | Obligatoire | N/A | Généralement 8, 16 ou 32 octets de données binaires. Dépend du chiffrement
key | Obligatoire | N/A | Généralement 8, 16 ou 32 octets de données binaires. Dépend du chiffrement

Exemple O-10. Chiffrement d'un fichier avec 3DES

<?php
$passphrase = 'My secret';

/* Transforme un mot de passe humain
 * en une paire iv/clé
 */
$iv = substr(md5('iv'.$passphrase, true), 0, 8);
$key = substr(md5('pass1'.$passphrase, true) .
               md5('pass2'.$passphrase, true), 0, 24);
$opts = array('iv'=>$iv, 'key'=>$key);

$fp = fopen('secert-file.enc', 'wb');
stream_filter_append($fp, 'mcrypt.tripledes', STREAM_FILTER_WRITE, $opts);
fwrite($fp, 'Secret secret secret data');
fclose($fp);
?>

Exemple O-11. Lecture d'un fichier chiffré

<?php
$passphrase = 'My secret';

/* Transforme un mot de passe humain
 * en une paire iv/clé
 */
$iv = substr(md5('iv'.$passphrase, true), 0, 8);
$key = substr(md5('pass1'.$passphrase, true) .
               md5('pass2'.$passphrase, true), 0, 24);
$opts = array('iv'=>$iv, 'key'=>$key);

$fp = fopen('secert-file.enc', 'rb');
stream_filter_append($fp, 'mdecrypt.tripledes', STREAM_FILTER_WRITE, $opts);
$data = rtrim(stream_get_contents($fp));
fclose($fp);

echo $data;
?>

Précédent | Sommaire | Suivant
Filtres de compression | Niveau supérieur | Liste des modes de transport de sockets disponibles


Liste des modes de transport de sockets disponibles

Manuel PHP
Précédent Suivant

Annexe P. Liste des modes de transport de sockets disponibles

Table des matières
Domaines Internet : TCP, UDP, SSL et TLS
Domaine Unix : UNIX et UDG

Voici la liste des différents modes de transport, format URL, dont PHP dispose en interne pour les flux qui exploitent les sockets, tels que fsockopen() et stream_socket_client(). Ces modes de transport ne s'appliquent pas à l'extension sockets.

Pour connaître la liste des modes de transport installés sur votre version de PHP, utilisez stream_get_transports().

Domaines Internet : TCP, UDP, SSL et TLS

PHP 3, PHP 4, PHP 5. ssl:// & tls:// depuis PHP 4.30, sslv2:// & sslv3:// depuis PHP 5.0.2.

Note : Si aucun transport n'est spécifié, tcp:// est utilisé.

  • 127.0.0.1

  • fe80::1

  • www.example.com

  • tcp://127.0.0.1

  • tcp://fe80::1

  • tcp://www.example.com

  • udp://www.example.com

  • ssl://www.example.com

  • sslv2://www.example.com

  • sslv3://www.example.com

  • tls://www.example.com

Les sockets du domaine Internet utilisent un numéro de port en plus de l'adresse de l'hôte. Dans le cas de fsockopen(), il est spécifié en deuxième paramètre et, donc, n'a pas d'impact sur le format du mode de transport. Avec stream_socket_client() et les autres fonctions de la même famille, le numéro de port est spécifié comme un suffixe dans l'URL de transport, identifié par le signe deux-points.

  • tcp://127.0.0.1:80

  • tcp://[fe80::1]:80

  • tcp://www.example.com:80

Adresse IPv6 et numéro de port : Dans le second exemple ci-dessus, les exemples en IPv4 et les noms d'hôtes sont identiques, mais les IPv6 sont placées entre crochets, en plus d'avoir les deux-points et le numéro de port : [fe80::1]. Cela permet de distinguer les deux-points utilisés en IPv6 et le deux-points utilisés pour délimiter le numéro de port.

Les modes ssl:// et tls:// (disponibles uniquement lorsque le support OpenSSl est compilé avec PHP) sont des extensions de tcp:// qui incluent le chiffrement SSL. En PHP 4.3, OpenSll doit être compilé statiquement avec PHP. en PHP 5.0, il peut être compilé en module ou statiquement.

ssl:// va tenter de négocier une connexion SSL V2 ou SSL V3, suivant les capacités et les références de l'hôte distant. sslv2:// et sslv3:// sélectionnent explicitement le protocole.

Tableau P-1. Les options de contexte de ssl:// et tls:// (depuis PHP 4.3.2)

Nom | Utilisation | Valeur par défaut
verify_peer | TRUE ou FALSE. Requiert la vérification du certificat SSL utilisé. | FALSE
allow_self_signed | TRUE ou FALSE. Permet les certificats auto-signés. | FALSE
cafile | Situation du fichier de l'autorité de certification sur le serveur local, qui doit être utilisé avec verify_peer comme option de contexte pour identifier un pair distant. |
capath | Si cafile n'est pas spécifié, ou si le certificat n'est pas trouvé, le dossier capath est scanné pour y trouver un certificat convenable. capath doit être un dossier de certificats corrects. |
local_cert | Chemin jusqu'au fichier de certificat local. Il doit être au format PEM, qui contient votre certificat, et la clé privée. Il peut éventuellement contenir la chaîne de certificat de l'émetteur. |
passphrase | Mot de passe avec lequel votre local_cert a été chiffré. |
CN_match | Le nom commun (Common Name) que nous attendons. PHP va effectuer une comparaison avec jokers limités. Si le nom commun ne correspond pas à celui attendu, la connexion va échouer. |

Note : Comme ssl:// est le mode de transport sous-jacent de https:// et ftps://, toutes les options de contexte qui s'appliquent à ssl://, s'appliquent aussi à https:// et ftps://.

Précédent | Sommaire | Suivant
Filtres de chiffrement | Niveau supérieur | Domaine Unix : UNIX et UDG


Domaine Unix : UNIX et UDG

unix:// depuis PHP 3, udg:// depuis PHP 5

  • unix:///tmp/mysock

  • udg:///tmp/mysock

unix:// fournit l'accès à un flux de type socket, sur un domaine Unix. udg:// fournit un mode de transport alternatif, avec un protocole de datagrammes utilisateurs.

Les sockets du domaine Unix, contrairement à celles du domaine Internet, n'utilisent pas de numéro de port. Dans ce cas, le paramètre portno de fsockopen() doit valoir 0.

Précédent | Sommaire | Suivant
Liste des modes de transport de sockets disponibles | Niveau supérieur | Comparaison de types en PHP


Comparaison de types en PHP

Manuel PHP
Précédent Suivant

Annexe Q. Comparaison de types en PHP

La table suivante résume les différents comportements de PHP avec les types et opérateurs de comparaison, strictes ou larges. Cette table est aussi reliée au transtypage. Elle a été inspirée par différents commentaires d'utilisateurs, et par le travail fait chez BlueShoes.

Avant d'utiliser ces tables, il est important de comprendre les types et leur signification. Par exemple, "42" est une chaîne de caractères, alors que 42 est un entier. FALSE est boolean alors que "false" est une chaîne de caractères.

Note : Les formulaires HTML ne connaissent pas les entiers, nombres à virgules et autres booléens. Pour savoir si une structure est un entier, utilisez is_numeric().

Note : La ligne if ($x) génère une erreur de niveau E_NOTICE lorsque $x est indéfini. Alternativement, utilisez plutôt les fonctions empty() ou isset(), ou encore, initialisez toutes vos variables.

Tableau Q-1. Comparaisons de $x avec des fonctions PHP

Expression | gettype() | empty() | is_null() | isset() | boolean : if($x)
$x = ""; | chaîne de caractères | TRUE | FALSE | TRUE | FALSE
$x = NULL | NULL | TRUE | TRUE | FALSE | FALSE
var $x; | NULL | TRUE | TRUE | FALSE | FALSE
$x est indéfini | NULL | TRUE | TRUE | FALSE | FALSE
$x = array(); | array | TRUE | FALSE | TRUE | FALSE
$x = false; | boolean | TRUE | FALSE | TRUE | FALSE
$x = true; | boolean | FALSE | FALSE | TRUE | TRUE
$x = 1; | entier | FALSE | FALSE | TRUE | TRUE
$x = 42; | entier | FALSE | FALSE | TRUE | TRUE
$x = 0; | entier | TRUE | FALSE | TRUE | FALSE
$x = -1; | entier | FALSE | FALSE | TRUE | TRUE
$x = "1"; | chaîne de caractères | FALSE | FALSE | TRUE | TRUE
$x = "0"; | chaîne de caractères | TRUE | FALSE | TRUE | FALSE
$x = "-1"; | chaîne de caractères | FALSE | FALSE | TRUE | TRUE
$x = "php"; | chaîne de caractères | FALSE | FALSE | TRUE | TRUE
$x = "true"; | chaîne de caractères | FALSE | FALSE | TRUE | TRUE
$x = "false"; | chaîne de caractères | FALSE | FALSE | TRUE | TRUE

Tableau Q-2. Comparaison large avec ==

 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php" | ""
TRUE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE
FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE
1 | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE
-1 | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"1" | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"-1" | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
NULL | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE | TRUE
array() | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE | FALSE
"php" | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE

Tableau Q-3. Comparaison stricte avec ===

 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php" | ""
TRUE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
1 | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
-1 | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"1" | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"-1" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
NULL | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
array() | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE
"php" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE

Note PHP 3.0 : La chaîne de valeur "0" était considérée comme non vide en PHP 3. Ce comportement a changé en PHP 4, où elle est désormais considérée comme vide.

Précédent | Sommaire | Suivant
Domaine Unix : UNIX et UDG | Niveau supérieur | Liste des tokens de l'analyseur


Liste des tokens de l'analyseur

Manuel PHP
Précédent Suivant

Annexe R. Liste des tokens de l'analyseur

De nombreuses parties du langage PHP sont représentées en interne par des tokens. Litéralement, ce sont des trucs, ou jetons. Ici, des briques de base, comme T_SR. PHP affiche des identifiants comme celui-ci dans les erreurs d'analyse, par exemple : unexpected T_SR, expecting ',' or ';' in script.php on line 10..

Vous êtes suppposé savoir ce que T_SR signifie. Pour ceux qui ne le savent pas, voici une liste de ces identifiants, la syntaxe PHP correspondante, et les références appropriées au manuel.

Tableau R-1. Tokens

Token | Syntaxe | Référence
T_ABSTRACT | abstract | la section intitulée Abstraction de classes dans Chapitre 19 (disponible depuis PHP 5.0.0)
T_AND_EQUAL | &= | opérateurs d'assignation
T_ARRAY | array() | array(), syntaxe de tableau
T_ARRAY_CAST | (array) | transtypage
T_AS | as | foreach
T_BAD_CHARACTER |  | Tous les caractères en dessous de ASCII 32 excepté \t (0x09), \n (0x0a) et \r (0x0d)
T_BOOLEAN_AND | && | opérateurs logiques
T_BOOLEAN_OR | || | opérateurs logiques
T_BOOL_CAST | (bool) ou (boolean) | transtypage
T_BREAK | break; | break
T_CASE | case | switch
T_CATCH | catch | Chapitre 20 (disponible depuis PHP 5.0.0)
T_CHARACTER |  |
T_CLASS | class | classes et objets
T_CLONE | clone | classes et objets. (disponible depuis PHP 5.0.0)
T_CLOSE_TAG | ?> ou %> |
T_COMMENT | // ou #, et /* */ en PHP 5 | commentaires
T_CONCAT_EQUAL | .= | opérateurs d'assignation
T_CONST | const |
T_CONSTANT_ENCAPSED_STRING | "foo" ou 'bar' | syntaxe chaîne de caractères
T_CONTINUE | continue |
T_CURLY_OPEN |  |
T_DEC | -- | opérateurs d'incrémention/décrémention
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIV_EQUAL | /= | opérateurs d'assignation
T_DNUMBER | 0.12, etc. | nombres à virgule flottante
T_DOC_COMMENT | /** */ | style de commentaire dans la PHPDoc (disponible depuis PHP 5.0.0)
T_DO | do | do...while
T_DOLLAR_OPEN_CURLY_BRACES | ${ | syntaxe de variable complexe analysée
T_DOUBLE_ARROW | => | syntaxe de tableau
T_DOUBLE_CAST | (real), (double) ou (float) | transtypage
T_DOUBLE_COLON | :: | Voyez T_PAAMAYIM_NEKUDOTAYIM plus bas
T_ECHO | echo | echo()
T_ELSE | else | else
T_ELSEIF | elseif | elseif
T_EMPTY | empty | empty()
T_ENCAPSED_AND_WHITESPACE |  |
T_ENDDECLARE | enddeclare | declare, syntaxe alternative
T_ENDFOR | endfor | for, syntaxe alternative
T_ENDFOREACH | endforeach | foreach, syntaxe alternative
T_ENDIF | endif | if, syntaxe alternative
T_ENDSWITCH | endswitch | switch, syntaxe alternative
T_ENDWHILE | endwhile | while, syntaxe alternative
T_END_HEREDOC |  | syntaxe heredoc
T_EVAL | eval() | eval()
T_EXIT | exit or die | exit(), die()
T_EXTENDS | extends | extends, classes et objets
T_FILE | __FILE__ | constantes
T_FINAL | final | la section intitulée Mot-clé "final" dans Chapitre 19 (disponible depuis PHP 5.0.0)
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function or cfunction | fonctions
T_GLOBAL | global | scope de variable
T_HALT_COMPILER | __halt_compiler() | __halt_compiler (disponible depuis PHP 5.1.0)
T_IF | if | if
T_IMPLEMENTS | implements | la section intitulée Interfaces dans Chapitre 19 (disponible depuis PHP 5.0.0)
T_INC | ++ | opérateurs d'incrémention/décrémention
T_INCLUDE | include() | include()
T_INCLUDE_ONCE | include_once() | include_once()
T_INLINE_HTML |  |
T_INSTANCEOF | instanceof | opérateurs de type (disponible depuis PHP 5.0.0)
T_INT_CAST | (int) ou (integer) | transtypage
T_INTERFACE | interface | la section intitulée Interfaces dans Chapitre 19 (dipsonible depuis PHP 5.0.0)
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__ | constants
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_MINUS_EQUAL | -= | opérateurs d'assignation
T_ML_COMMENT | /* et */ | commentaires (PHP 4 uniquement)
T_MOD_EQUAL | %= | opérateurs d'assignation
T_MUL_EQUAL | *= | opérateurs d'assignation
T_NEW | new | classes et objets
T_NUM_STRING |  |
T_OBJECT_CAST | (object) | transtypage
T_OBJECT_OPERATOR | -> | classes et objets
T_OLD_FUNCTION | old_function | old_function
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_PRINT | print() | print()
T_PRIVATE | private | classes et objets (disponible depuis PHP 5.0.0)
T_PUBLIC | public | classes et objets (disponible depuis PHP 5.0.0)
T_PROTECTED | protected | classes et objets (disponible depuis PHP 5.0.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_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 |  |
T_STRING_CAST | (string) | transtypage
T_STRING_VARNAME |  |
T_SWITCH | switch | switch
T_THROW | throw | Chapitre 20 (disponible depuis PHP 5.0.0)
T_TRY | try | Chapitre 20 (disponible depuis PHP 5.0.0)
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | (non documenté; forcé à NULL)
T_USE | use | (pas implémenté)
T_VAR | var | classes et objets
T_VARIABLE | $foo | variables
T_WHILE | while | while, do...while
T_WHITESPACE |  |
T_XOR_EQUAL | ^= | opérateurs d'assignation
T_FUNC_C | __FUNCTION__ | constantes (disponible depuis PHP 4.3.0)
T_CLASS_C | __CLASS__ | constantes (disponible depuis PHP 4.3.0)

Voir aussi token_name().

Précédent | Sommaire | Suivant
Comparaison de types en PHP | Niveau supérieur | Guide de nommage de l'espace utilisateur


À propos du manuel

Manuel PHP
Précédent Suivant

Annexe T. À propos du manuel

Table des matières
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
Traduction française

Formats

Le manuel PHP est fourni en différents formats. Ces formats sont divisés en deux groupes : ceux qui sont disponibles en ligne, et les téléchargeables.

Note : Certains éditeurs ont fournis des versions imprimées de ce manuel. Nous n'en recommandons aucune, car elles sont rapidement obsolètes.

Le manuel peut être lu en ligne sur le site php.net et sur les nombreux miroirs. Pour un confort d'utilisation accru, il est recommandé d'utiliser un miroir proche de chez vous. La version en ligne du manuel PHP a actuellement deux rendus CSS : un rendu agréable à l'oeil et un pratique pour l'impression.

Deux avantages du manuel en ligne sur la plupart des formats téléchargeables, sont l'intégration des notes des utilisateurs et les URL de raccourci que vous pouvez utiliser pour accéder rapidement à une partie du manuel. Un inconvénient évident est que vous devez être en ligne pour profiter de ce format.

Il y a de nombreux formats de manuel pour la consultation hors ligne, et le format le plus approprié dépend de votre OS et de vos goûts personnels. Pour savoir comment le manuel est généré, lisez la section 'Comment le manuel est généré' de cet appendice.

Le format le plus portable est le HTML. Le manuel est fourni dans un format en une seule page HTML, ou comme un ensemble de fichiers de tailles réduites (mais un bon millier de fichiers tout de même). Nous fournissons ce format sous une forme compressée, vous aurez donc besoin d'un utilitaire de décompression pour extraire les fichiers de l'archive.

Pour les plates-formes Windows, le format Windows HTML Help fournit une version HTML du manuel à utiliser avec l'application Windows HTML Help : il intègre un moteur de recherche complet, un index et des signets. De nombreux IDE sous Windows fournissent des liens avec ce format pour une meilleure intégration. Il existe aussi des visualisateurs de CHM pour Linux. Visitez xCHM ou GnoCHM.

Il existe aussi une version CHM étendue, qui est mise à jour moins souvent mais qui fournit plus de fonctionnalités. Elle ne fonctionnera que sur Microsoft Windows à cause des technologies utilisées pour construire ces pages.

Précédent | Sommaire | Suivant
Astuces | Niveau supérieur | À propos des notes utilisateurs


À 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 documenation (Open Publication License à ce jour). Pour plus de détails, lisez la page Manual's Copyright.

Précédent | Sommaire | Suivant
À propos du manuel | Niveau supérieur | Comment lire la définition d'une fonction (prototype)


Comment lire la définition d'une fonction (prototype)

Chaque fonction dans le manuel est documentée pour permettre une compréhension rapide. Savoir décoder le texte rendra votre apprentissage plus facile. Plutôt que de dépendre d'exemples prêts en copier/coller, il est plus utile de savoir lire la définition d'une fonction (prototype). Voici comment :

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 3, PHP 4, PHP 5)
strlen -- Retourne la taille de la chaîne

Description
int strlen ( string  $string )

Retourne la taille de la chaîne $string.

Tableau T-1. Explications de la définition de la fonction

Partie | Description
strlen | Le nom de la fonction.
(PHP 3, PHP 4, PHP 5) | strlen() est présente dans toutes les versions de PHP 3, PHP 4 et PHP 5.
int | Type de valeur retournée par cette fonction, qui est, en l'occurrence, un entier (i.e. la taille d'une chaîne est mesurée par un nombre).
( string $string ) | Le premier (et ici le seul) paramètre à fournir à cette fonction est le paramètre string, qui doit être du type chaîne de caractères.

Nous pourrions réécrire ce prototype avec une version plus générique :

type_retourné   nom_de_la_fonction    ( type_du_paramètre nom_du_paramètre )

Plusieurs fonctions ont besoin de plusieurs paramètres, comme in_array(). Son prototype est le suivant :

bool in_array ( mixed $needle, array $haystack [, bool $strict])

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 en cas d'échec (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 tableau, dans lequel nous recherchons) est le second paramètre. Le troisième paramètre, strict, est optionnel. Tous les paramètres optionnels sont placés entre crochets. La manuel indique que le paramètre strict vaut par défaut FALSE. Reportez-vous au manuel de chaque fonction pour savoir comment elle fonctionne.

Il y'a aussi des fonctions avec des informations plus complexes concernant les versions de PHP. Prenons html_entity_decode() comme exemple :

(PHP 4 >= 4.3.0, PHP 5)

Cela signifie que cette fonction n'est pas disponible en PHP 3 et qu'elle n'est disponible que depuis PHP 4.3.0.

Précédent | Sommaire | Suivant
À propos des notes utilisateurs | Niveau supérieur | Versions de PHP documentées dans ce manuel


Versions de PHP documentées dans ce manuel

Cette documentation contient des informations sur les versions courante et future de PHP, avec des notes de compatibilité et de migration depuis PHP 3. Le comportement, les paramètres, les valeurs retournées, etc. qui ont changé entre deux versions du manuel PHP sont documentées dans les notes utilisateurs, et dans le manuel lui-même.

Des portions de la documentation existent pour la version CVS de PHP, ce qui signifie que les toutes dernières versions de développement de PHP proposent ces fonctionnalités. Ces versions n'étant pas encore sorties, elles ne sont disponibles que via le système de gestion des versions CVS ou via un snapshot. Soyez donc prudent avec les fonctionnalités marquées comme "Uniquement disponible sur le CVS" car elles ne sont normalement pas disponibles. Ces fonctionnalités seront plutôt disponibles dans la prochaine version stable de PHP. Pour télécharger la version CVS, lisez la page d'accès à CVS.

De plus, la documentation peut être disponible pour une version de PHP qui n'est pas encore publiée (par exemple, des fonctions destinées à la version PHP 6.x.x tandis que la version publique actuelle est PHP 5.x.x). La plupart du temps, ce n'est pas une erreur de documentation, mais une indication sur les fonctionnalités qui seront disponibles avec la prochaine publication de PHP. Typiquement, PHP n'ajoute de nouvelles fonctionnalités que dans les nouvelles versions, sinon, seuls les bogues sont corrigés. En utilisant le format de version A.B.C, une version majeure incrémente A ou B tandis qu'une version mineure incrémente C. Donc, par exemple, il n'est pas marginal pour une fonctionnalité d'être documentée comme étant disponible en PHP x.1.x alors que la dernière version est PHP x.0.x. Notez également que le manuel est écrit dans le présent, et non dans le futur.

À plusieurs reprises, le manuel de PHP liste les valeurs par défaut des directives PHP. Ces valeurs sont basées sur le fichier php.ini-dist et non sur le fichier php.ini-recommended. Elles font également référence à la dernière version de PHP. Lisez l'annexe sur les directives PHP pour plus de détails sur ces valeurs et leurs modifications.

Précédent | Sommaire | Suivant
Comment lire la définition d'une fonction (prototype) | Niveau supérieur | Où trouver plus d'informations sur PHP ?


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 être 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. De plus, sur la page des liens de php.net, il y'a une liste de sites web dédiés à PHP, avec des articles, des forums et des bibliothèques de code.

Précédent | Sommaire | Suivant
Versions de PHP documentées dans ce manuel | Niveau supérieur | Comment aider à l'amélioration de la documentation ?


Comment aider à l'amélioration de la documentation ?

Il y a trois façon de participer à l'amélioration de la documentation.

Si vous trouvez des erreurs, dans n'importe quelle traduction de la documentation, utilisez le système de rapport de bogues : http://bugs.php.net/. Classez le rapport sous la catégorie "Documentation Problem". Vous pouvez aussi poster les problèmes liés aux différents formats du manuel à cet endroit.

Note : N'abusez pas du système de bogues pour envoyer des demandes d'aide. Utilisez plutôt une des options proposées par le support.

En contribuant aux notes, vous pouvez fournir de nouveaux exemples, mettre en lumière des effets de bords et apporter des clarifications pour les autres lecteurs. Mais ne prenez pas le système d'annotation pour un système de soumission de bogues. Vous pouvez en savoir plus sur les annotations dans la section 'À propos des notes utilisateurs'

Le manuel PHP est traduit en de nombreux langages. La connaissance de l'anglais ainsi que d'une autre langue peut vous permettre d'aider la documentation de PHP en travaillant avec une équipe de traduction. Pour plus d'informations sur le commencement d'une traduction, ou sur l'aide d'une version déjà traduite, commencez par lire http://doc.php.net/php/dochowto/.

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.

Précédent | Sommaire | Suivant
Où trouver plus d'informations sur PHP ? | Niveau supérieur | Comment sont générées les documentations


Comment sont générées les documentations

Ce manuel est écrit en XML, en utilisant la DTD de DocBook XML, et XSLT (eXtensible Stylesheet Language Transformations) pour la maintenance et les formats.

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. Les outils utilisés pour formater le manuel en ligne sont xsltproc et DocBook XSL Stylesheets. Les versions HTML et TeX utilisent Jade, écrit par James Clark et The Modular DocBook Stylesheets écrit par Norman Walsh. Nous utilisons Microsoft HTML Help Workshop pour générer le format Windows HTML Help du manuel, et bien sur, PHP lui-même pour réaliser certaines conversions et formats.

Le manuel PHP est généré en de nombreux langages et formats, lisez http://www.php.net/docs.php pour plus d'informations. Le code source XML peut être téléchargé depuis le CVS et lu sur http://cvs.php.net/. La documentation est stockée dans le module phpdoc.

Précédent | Sommaire | Suivant
Comment aider à l'amélioration de la documentation ? | Niveau supérieur | Traductions


Traductions

La manuel PHP est disponible non seulement en anglais, mais aussi dans différentes langues. Le texte du manuel est écrit d'abord en anglais, puis des équipes à travers le monde assurent la traduction du manuel dans leur langue natale. Si la traduction d'une section n'est pas encore disponible, le système de création de la documentation présentera alors la version anglaise.

Les contributeurs aux documentations partent des codes sources XML disponibles sur le CVS http://cvs.php.net/ 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 les langues suivantes : Allemand, Chinois (simplifié), Chinois (traditionnel), Chinois (contonais de Hong Kong), Coréen, Espagnol, Finnois, Français, Grec, Hébreu, Hongrois, Italien, Japonais, Néerlandais, Polonais, Portugais brésilien, Roumain, Russe, Slovaque, Slovène, Suédois, Tchèque et Turc.

Ils peuvent tous être téléchargés ici : http://www.php.net/docs.php.

Précédent | Sommaire | Suivant
Comment sont générées les documentations | Niveau supérieur | Traduction française


Traduction française

La version française est traduite quotidiennement et disponible chez Nexen (nexen.net/). Ce manuel a été généré à partir de la documentation originale en anglais du PHP Documentation Group, au format XML. Elle est 100 % compatible avec le système de génération du groupe PHP. Elle est traitée avec un système développé par Nexen pour produire divers autres formats.

Pour les problèmes liés à la traduction, vous pouvez contacter directement les éditeurs de ce manuel sur doc-fr@lists.php.net.

Précédent | Sommaire | Suivant
Traductions | Niveau supérieur | Open Publication License


Open Publication License

Manuel PHP
Précédent Suivant

Annexe U. Open Publication License

Table des matières
I. REQUIREMENTS ON BOTH UNMODIFIED AND MODIFIED VERSIONS
II. COPYRIGHT
III. SCOPE OF LICENSE
IV. REQUIREMENTS ON MODIFIED WORKS
V. GOOD-PRACTICE RECOMMENDATIONS
VI. LICENSE OPTIONS

La documentation PHP est publiée sous licence Open Publication License. Voici le texte de la licence.

v1.0, 8 June 1999

I. REQUIREMENTS ON BOTH UNMODIFIED AND MODIFIED VERSIONS

The Open Publication works may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that the terms of this license are adhered to, and that this license or an incorporation of it by reference (with any options elected by the author(s) and/or publisher) is displayed in the reproduction.

Proper form for an incorporation by reference is as follows:

Copyright (c) <year> by <author's name or designee>. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, vX.Y or later (the latest version is presently available at http://www.opencontent.org/openpub/

The reference must be immediately followed with any options elected by the author(s) and/or publisher of the document (see section VI). Commercial redistribution of Open Publication-licensed material is permitted. Any publication in standard (paper) book form shall require the citation of the original publisher and author. The publisher and author's names shall appear on all outer surfaces of the book. On all outer surfaces of the book the original publisher's name shall be as large as the title of the work and cited as possessive with respect to the title.

Précédent | Sommaire | Suivant
Traduction française | Niveau supérieur | II. COPYRIGHT


II. COPYRIGHT

The copyright to each Open Publication is owned by its author(s) or designee.

Précédent | Sommaire | Suivant
Open Publication License | Niveau supérieur | III. SCOPE OF LICENSE


III. SCOPE OF LICENSE

The following license terms apply to all Open Publication works, unless otherwise explicitly stated in the document.

Mere aggregation of Open Publication works or a portion of an Open Publication work with other works or programs on the same media shall not cause this license to apply to those other works. The aggregate work shall contain a notice specifying the inclusion of the Open Publication material and appropriate copyright notice.

SEVERABILITY. If any part of this license is found to be unenforceable in any jurisdiction, the remaining portions of the license remain in force.

NO WARRANTY. Open Publication works are licensed and provided "as is" without warranty of any kind, express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose or a warranty of non-infringement.

Précédent | Sommaire | Suivant
II. COPYRIGHT | Niveau supérieur | IV. REQUIREMENTS ON MODIFIED WORKS


IV. REQUIREMENTS ON MODIFIED WORKS

All modified versions of documents covered by this license, including translations, anthologies, compilations and partial documents, must meet the following requirements:

  1. The modified version must be labeled as such.

  2. The person making the modifications must be identified and the modifications dated.

  3. Acknowledgement of the original author and publisher if applicable must be retained according to normal academic citation practices.

  4. The location of the original unmodified document must be identified.

  5. The original author's (or authors') name(s) may not be used to assert or imply endorsement of the resulting document without the original author's (or authors') permission.

Précédent | Sommaire | Suivant
III. SCOPE OF LICENSE | Niveau supérieur | V. GOOD-PRACTICE RECOMMENDATIONS


V. GOOD-PRACTICE RECOMMENDATIONS

In addition to the requirements of this license, it is requested from and strongly recommended of redistributors that:

  1. If you are distributing Open Publication works on hardcopy or CD-ROM, you provide email notification to the authors of your intent to redistribute at least thirty days before your manuscript or media freeze, to give the authors time to provide updated documents. This notification should describe modifications, if any, made to the document.

  2. All substantive modifications (including deletions) be either clearly marked up in the document or else described in an attachment to the document.

  3. Finally, while it is not mandatory under this license, it is considered good form to offer a free copy of any hardcopy and CD-ROM expression of an Open Publication-licensed work to its author(s).

Précédent | Sommaire | Suivant
IV. REQUIREMENTS ON MODIFIED WORKS | Niveau supérieur | VI. LICENSE OPTIONS


VI. LICENSE OPTIONS

The author(s) and/or publisher of an Open Publication-licensed document may elect certain options by appending language to the reference to or copy of the license. These options are considered part of the license instance and must be included with the license (or its incorporation by reference) in derived works.

A. To prohibit distribution of substantively modified versions without the explicit permission of the author(s). "Substantive modification" is defined as a change to the semantic content of the document, and excludes mere changes in format or typographical corrections.

To accomplish this, add the phrase `Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder.' to the license reference or copy.

B. To prohibit any publication of this work or derivative works in whole or in part in standard (paper) book form for commercial purposes is prohibited unless prior permission is obtained from the copyright holder.

To accomplish this, add the phrase 'Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.' to the license reference or copy.

Précédent | Sommaire | Suivant
V. GOOD-PRACTICE RECOMMENDATIONS | Niveau supérieur | Index des fonctions


Index des fonctions

Manuel PHP
Précédent Suivant

Annexe V. Index des fonctions

Table des matières
Index des fonctions

Précédent | Sommaire | Suivant
VI. LICENSE OPTIONS | Niveau supérieur | Index des fonctions


Index des fonctions

_

__halt_compiler()

A

abs()
acos()
acosh()
add_assoc_bool()
add_assoc_bool_ex()
add_assoc_double()
add_assoc_double_ex()
add_assoc_function()
add_assoc_long()
add_assoc_long_ex()
add_assoc_null()
add_assoc_null_ex()
add_assoc_resource()
add_assoc_resource_ex()
add_assoc_string()
add_assoc_string_ex()
add_assoc_stringl()
add_assoc_stringl_ex()
add_assoc_unicode()
add_assoc_unicode_ex()
add_assoc_unicodel()
add_assoc_unicodel_ex()
add_assoc_unset()
add_assoc_zval()
add_assoc_zval_ex()
add_get_assoc_string()
add_get_assoc_string_ex()
add_get_assoc_stringl()
add_get_assoc_stringl_ex()
add_get_index_binary()
add_get_index_binaryl()
add_get_index_double()
add_get_index_long()
add_get_index_string()
add_get_index_stringl()
add_get_index_unicode()
add_get_index_unicodel()
add_index_binary()
add_index_binaryl()
add_index_bool()
add_index_double()
add_index_long()
add_index_null()
add_index_resource()
add_index_string()
add_index_stringl()
add_index_unicode()
add_index_unicodel()
add_index_unset()
add_index_zval()
add_method()
add_next_index_binary()
add_next_index_binaryl()
add_next_index_bool()
add_next_index_double()
add_next_index_long()
add_next_index_null()
add_next_index_resource()
add_next_index_string()
add_next_index_stringl()
add_next_index_unicode()
add_next_index_unicodel()
add_next_index_unset()
add_next_index_zval()
add_property_ascii_string()
add_property_ascii_string_ex()
add_property_ascii_stringl()
add_property_ascii_stringl_ex()
add_property_bool()
add_property_bool_ex()
add_property_double()
add_property_double_ex()
add_property_long()
add_property_long_ex()
add_property_null()
add_property_null_ex()
add_property_resource()
add_property_resource_ex()
add_property_rt_string()
add_property_rt_string_ex()
add_property_rt_stringl()
add_property_rt_stringl_ex()
add_property_string()
add_property_string_ex()
add_property_stringl()
add_property_stringl_ex()
add_property_unicode()
add_property_unicode_ex()
add_property_unicodel()
add_property_unicodel_ex()
add_property_unset()
add_property_zval()
add_property_zval_ex()
add_u_assoc_zval()
add_u_assoc_zval_ex()
addcslashes()
addslashes()
aggregate()
aggregate_info()
aggregate_methods()
aggregate_methods_by_list()
aggregate_methods_by_regexp()
aggregate_properties()
aggregate_properties_by_list()
aggregate_properties_by_regexp()
aggregation_info()
apache_child_terminate()
apache_get_modules()
apache_get_version()
apache_getenv()
apache_lookup_uri()
apache_note()
apache_request_headers()
apache_reset_timeout()
apache_response_headers()
apache_setenv()
apc_add()
apc_cache_info()
apc_clear_cache()
apc_define_constants()
apc_delete()
apc_fetch()
apc_load_constants()
apc_sma_info()
apc_store()
apd_breakpoint()
apd_callstack()
apd_clunk()
apd_continue()
apd_croak()
apd_dump_function_table()
apd_dump_persistent_resources()
apd_dump_regular_resources()
apd_echo()
apd_get_active_symbols()
apd_set_pprof_trace()
apd_set_session()
apd_set_session_trace()
apd_set_socket_session_trace()
array()
array_change_key_case()
array_chunk()
array_combine()
array_count_values()
array_diff()
array_diff_assoc()
array_diff_key()
array_diff_uassoc()
array_diff_ukey()
array_fill()
array_fill_keys()
array_filter()
array_flip()
array_init()
array_intersect()
array_intersect_assoc()
array_intersect_key()
array_intersect_uassoc()
array_intersect_ukey()
array_key_exists()
array_keys()
array_map()
array_merge()
array_merge_recursive()
array_multisort()
array_pad()
array_pop()
array_product()
array_push()
array_rand()
array_reduce()
array_reverse()
array_search()
array_shift()
array_slice()
array_splice()
array_sum()
array_udiff()
array_udiff_assoc()
array_udiff_uassoc()
array_uintersect()
array_uintersect_assoc()
array_uintersect_uassoc()
array_unique()
array_unshift()
array_values()
array_walk()
array_walk_recursive()
ArrayIterator::current()
ArrayIterator::key()
ArrayIterator::next()
ArrayIterator::rewind()
ArrayIterator::seek()
ArrayIterator::valid()
ArrayObject::__construct()
ArrayObject::append()
ArrayObject::count()
ArrayObject::getIterator()
ArrayObject::offsetExists()
ArrayObject::offsetGet()
ArrayObject::offsetSet()
ArrayObject::offsetUnset()
arsort()
ascii2ebcdic()
asin()
asinh()
asort()
aspell_check()
aspell_check_raw()
aspell_new()
aspell_suggest()
assert()
assert_options()
atan()
atan2()
atanh()

B

base64_decode()
base64_encode()
base_convert()
basename()
bcadd()
bccomp()
bcdiv()
bcmod()
bcmul()
bcompiler_load()
bcompiler_load_exe()
bcompiler_parse_class()
bcompiler_read()
bcompiler_write_class()
bcompiler_write_constant()
bcompiler_write_exe_footer()
bcompiler_write_file()
bcompiler_write_footer()
bcompiler_write_function()
bcompiler_write_functions_from_file()
bcompiler_write_header()
bcompiler_write_included_filename()
bcpow()
bcpowmod()
bcscale()
bcsqrt()
bcsub()
bin2hex()
bind_textdomain_codeset()
bindec()
bindtextdomain()
bzclose()
bzcompress()
bzdecompress()
bzerrno()
bzerror()
bzerrstr()
bzflush()
bzopen()
bzread()
bzwrite()

C

CachingIterator::__toString()
CachingIterator::hasNext()
CachingIterator::next()
CachingIterator::rewind()
CachingIterator::valid()
CachingRecursiveIterator::getChildren()
CachingRecursiveIterator::hasChildren()
cairo_append_path()
cairo_arc()
cairo_arc_negative()
cairo_clip()
cairo_clip_preserve()
cairo_close_path()
cairo_copy_page()
cairo_copy_path()
cairo_copy_path_flat()
cairo_create()
cairo_curve_to()
cairo_destroy()
cairo_device_to_user()
cairo_device_to_user_distance()
cairo_fill()
cairo_fill_extents()
cairo_fill_preserve()
cairo_font_extents()
cairo_font_face_destroy()
cairo_font_face_get_type()
cairo_font_face_status()
cairo_font_options_copy()
cairo_font_options_create()
cairo_font_options_destroy()
cairo_font_options_equal()
cairo_font_options_get_antialias()
cairo_font_options_get_hint_metrics()
cairo_font_options_get_hint_style()
cairo_font_options_get_subpixel_order()
cairo_font_options_merge()
cairo_font_options_set_antialias()
cairo_font_options_set_hint_metrics()
cairo_font_options_set_hint_style()
cairo_font_options_set_subpixel_order()
cairo_font_options_status()
cairo_get_antialias()
cairo_get_current_point()
cairo_get_fill_rule()
cairo_get_font_face()
cairo_get_font_matrix()
cairo_get_font_options()
cairo_get_line_cap()
cairo_get_line_join()
cairo_get_line_width()
cairo_get_matrix()
cairo_get_miter_limit()
cairo_get_operator()
cairo_get_source()
cairo_get_tolerance()
cairo_identity_matrix()
cairo_image_surface_create()
cairo_image_surface_create_from_png()
cairo_image_surface_get_format()
cairo_image_surface_get_height()
cairo_image_surface_get_type()
cairo_image_surface_get_width()
cairo_in_fill()
cairo_in_stroke()
cairo_line_to()
cairo_marix_destroy()
cairo_mask()
cairo_mask_surface()
cairo_matrix_create()
cairo_matrix_create_identity()
cairo_matrix_create_rotate()
cairo_matrix_create_scale()
cairo_matrix_create_translate()
cairo_matrix_invert()
cairo_matrix_multiply()
cairo_matrix_rotate()
cairo_matrix_scale()
cairo_matrix_transform_distance()
cairo_matrix_transform_point()
cairo_matrix_translate()
cairo_move_to()
cairo_new_path()
cairo_new_sub_path()
cairo_paint()
cairo_paint_with_alpha()
cairo_path_destroy()
cairo_path_to_array()
cairo_pattern_add_color_stop_rgb()
cairo_pattern_add_color_stop_rgba()
cairo_pattern_create_for_surface()
cairo_pattern_create_linear()
cairo_pattern_create_radial()
cairo_pattern_create_rgb()
cairo_pattern_create_rgba()
cairo_pattern_destroy()
cairo_pattern_get_extend()
cairo_pattern_get_filter()
cairo_pattern_get_matrix()
cairo_pattern_get_pattern_type()
cairo_pattern_set_extend()
cairo_pattern_set_filter()
cairo_pattern_set_matrix()
cairo_pattern_status()
cairo_pdf_surface_create()
cairo_pdf_surface_set_size()
cairo_pop_group()
cairo_pop_group_to_source()
cairo_ps_surface_create()
cairo_ps_surface_dsc_begin_page_setup()
cairo_ps_surface_dsc_begin_setup()
cairo_ps_surface_dsc_comment()
cairo_ps_surface_set_size()
cairo_push_group()
cairo_push_group_with_content()
cairo_rectangle()
cairo_rel_curve_to()
cairo_rel_line_to()
cairo_rel_move_to()
cairo_reset_clip()
cairo_restore()
cairo_rotate()
cairo_save()
cairo_scale()
cairo_scaled_font_create()
cairo_scaled_font_destroy()
cairo_scaled_font_extents()
cairo_scaled_font_get_ctm()
cairo_scaled_font_get_font_face()
cairo_scaled_font_get_font_matrix()
cairo_scaled_font_get_font_options()
cairo_scaled_font_get_type()
cairo_scaled_font_status()
cairo_scaled_font_text_extends()
cairo_select_font_face()
cairo_set_antialias()
cairo_set_dash()
cairo_set_fill_rule()
cairo_set_font_face()
cairo_set_font_matrix()
cairo_set_font_options()
cairo_set_font_size()
cairo_set_line_cap()
cairo_set_line_join()
cairo_set_line_width()
cairo_set_matrix()
cairo_set_miter_limit()
cairo_set_operator()
cairo_set_scaled_font()
cairo_set_source()
cairo_set_source_rgb()
cairo_set_source_rgba()
cairo_set_source_surface()
cairo_set_tolerance()
cairo_show_page()
cairo_show_text()
cairo_status()
cairo_status_to_string()
cairo_stroke()
cairo_stroke_extents()
cairo_stroke_preserve()
cairo_surface_create_similar()
cairo_surface_destroy()
cairo_surface_flush()
cairo_surface_get_content()
cairo_surface_get_device_offset()
cairo_surface_get_font_options()
cairo_surface_get_scaled_font_options()
cairo_surface_mark_dirty()
cairo_surface_mark_dirty_rectangle()
cairo_surface_set_device_offset()
cairo_surface_set_fallback_resolution()
cairo_surface_show_png()
cairo_surface_status()
cairo_surface_write_to_png()
cairo_svg_get_versions()
cairo_svg_surface_create()
cairo_svg_surface_restrict_to_version()
cairo_svg_version_to_string()
cairo_text_extends()
cairo_text_path()
cairo_transform()
cairo_translate()
cairo_user_to_device()
cairo_user_to_device_distance()
cairo_version()
cairo_version_string()
cal_days_in_month()
cal_from_jd()
cal_info()
cal_to_jd()
call_user_func()
call_user_func_array()
call_user_function()
call_user_function_ex()
call_user_method()
call_user_method_array()
ccvs_add()
ccvs_auth()
ccvs_command()
ccvs_count()
ccvs_delete()
ccvs_done()
ccvs_init()
ccvs_lookup()
ccvs_new()
ccvs_report()
ccvs_return()
ccvs_reverse()
ccvs_sale()
ccvs_status()
ccvs_textvalue()
ccvs_void()
ceil()
chdir()
checkdate()
checkdnsrr()
chgrp()
chmod()
chop()
chown()
chr()
chroot()
chunk_split()
class_exists()
class_implements()
class_parents()
classkit_import()
classkit_method_add()
classkit_method_copy()
classkit_method_redefine()
classkit_method_remove()
classkit_method_rename()
clearstatcache()
closedir()
closelog()
com()
com_addref()
com_create_guid()
com_event_sink()
com_get()
com_get_active_object()
com_invoke()
com_isenum()
com_load()
com_load_typelib()
com_message_pump()
com_print_typeinfo()
com_propget()
com_propput()
com_propset()
com_release()
com_set()
compact()
compile_file()
compile_filename()
compile_string()
configuration()
connection_aborted()
connection_status()
connection_timeout()
constant()
constants()
constants()
convert_cyr_string()
convert_uudecode()
convert_uuencode()
copy()
cos()
cosh()
count()
count_chars()
cpdf_add_annotation()
cpdf_add_outline()
cpdf_arc()
cpdf_begin_text()
cpdf_circle()
cpdf_clip()
cpdf_close()
cpdf_closepath()
cpdf_closepath_fill_stroke()
cpdf_closepath_stroke()
cpdf_continue_text()
cpdf_curveto()
cpdf_end_text()
cpdf_fill()
cpdf_fill_stroke()
cpdf_finalize()
cpdf_finalize_page()
cpdf_global_set_document_limits()
cpdf_import_jpeg()
cpdf_lineto()
cpdf_moveto()
cpdf_newpath()
cpdf_open()
cpdf_output_buffer()
cpdf_page_init()
cpdf_place_inline_image()
cpdf_rect()
cpdf_restore()
cpdf_rlineto()
cpdf_rmoveto()
cpdf_rotate()
cpdf_rotate_text()
cpdf_save()
cpdf_save_to_file()
cpdf_scale()
cpdf_set_action_url()
cpdf_set_char_spacing()
cpdf_set_creator()
cpdf_set_current_page()
cpdf_set_font()
cpdf_set_font_directories()
cpdf_set_font_map_file()
cpdf_set_horiz_scaling()
cpdf_set_keywords()
cpdf_set_leading()
cpdf_set_page_animation()
cpdf_set_subject()
cpdf_set_text_matrix()
cpdf_set_text_pos()
cpdf_set_text_rendering()
cpdf_set_text_rise()
cpdf_set_title()
cpdf_set_viewer_preferences()
cpdf_set_word_spacing()
cpdf_setdash()
cpdf_setflat()
cpdf_setgray()
cpdf_setgray_fill()
cpdf_setgray_stroke()
cpdf_setlinecap()
cpdf_setlinejoin()
cpdf_setlinewidth()
cpdf_setmiterlimit()
cpdf_setrgbcolor()
cpdf_setrgbcolor_fill()
cpdf_setrgbcolor_stroke()
cpdf_show()
cpdf_show_xy()
cpdf_stringwidth()
cpdf_stroke()
cpdf_text()
cpdf_translate()
crack_check()
crack_closedict()
crack_getlastmessage()
crack_opendict()
crc32()
create_function()
crypt()
ctype_alnum()
ctype_alpha()
ctype_cntrl()
ctype_digit()
ctype_graph()
ctype_lower()
ctype_print()
ctype_punct()
ctype_space()
ctype_upper()
ctype_xdigit()
curl_close()
curl_copy_handle()
curl_errno()
curl_error()
curl_exec()
curl_getinfo()
curl_init()
curl_multi_add_handle()
curl_multi_close()
curl_multi_exec()
curl_multi_getcontent()
curl_multi_info_read()
curl_multi_init()
curl_multi_remove_handle()
curl_multi_select()
curl_setopt()
curl_setopt_array()
curl_version()
current()
cybercash_base64_decode()
cybercash_base64_encode()
cybercash_decr()
cybercash_encr()
cybermut_creerformulairecm()
cybermut_creerreponsecm()
cybermut_testmac()
cyrus_authenticate()
cyrus_bind()
cyrus_close()
cyrus_connect()
cyrus_query()
cyrus_unbind()

D

date()
date_create()
date_date_set()
date_default_timezone_get()
date_default_timezone_set()
date_format()
date_isodate_set()
date_modify()
date_offset_get()
date_parse()
date_sun_info()
date_sunrise()
date_sunset()
date_time_set()
date_timezone_get()
date_timezone_set()
db2_autocommit()
db2_bind_param()
db2_client_info()
db2_close()
db2_column_privileges()
db2_columns()
db2_commit()
db2_conn_error()
db2_conn_errormsg()
db2_connect()
db2_cursor_type()
db2_exec()
db2_execute()
db2_fetch_array()
db2_fetch_assoc()
db2_fetch_both()
db2_fetch_object()
db2_fetch_row()
db2_field_display_size()
db2_field_name()
db2_field_num()
db2_field_precision()
db2_field_scale()
db2_field_type()
db2_field_width()
db2_foreign_keys()
db2_free_result()
db2_free_stmt()
db2_next_result()
db2_num_fields()
db2_num_rows()
db2_pconnect()
db2_prepare()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_result()
db2_rollback()
db2_server_info()
db2_set_option()
db2_special_columns()
db2_statistics()
db2_stmt_error()
db2_stmt_errormsg()
db2_table_privileges()
db2_tables()
dba_close()
dba_delete()
dba_exists()
dba_fetch()
dba_firstkey()
dba_handlers()
dba_insert()
dba_key_split()
dba_list()
dba_nextkey()
dba_open()
dba_optimize()
dba_popen()
dba_replace()
dba_sync()
dbase_add_record()
dbase_close()
dbase_create()
dbase_delete_record()
dbase_get_header_info()
dbase_get_record()
dbase_get_record_with_names()
dbase_numfields()
dbase_numrecords()
dbase_open()
dbase_pack()
dbase_replace_record()
dblist()
dbmclose()
dbmdelete()
dbmexists()
dbmfetch()
dbmfirstkey()
dbminsert()
dbmnextkey()
dbmopen()
dbmreplace()
dbplus_add()
dbplus_aql()
dbplus_chdir()
dbplus_close()
dbplus_curr()
dbplus_errcode()
dbplus_errno()
dbplus_find()
dbplus_first()
dbplus_flush()
dbplus_freealllocks()
dbplus_freelock()
dbplus_freerlocks()
dbplus_getlock()
dbplus_getunique()
dbplus_info()
dbplus_last()
dbplus_lockrel()
dbplus_next()
dbplus_open()
dbplus_prev()
dbplus_rchperm()
dbplus_rcreate()
dbplus_rcrtexact()
dbplus_rcrtlike()
dbplus_resolve()
dbplus_restorepos()
dbplus_rkeys()
dbplus_ropen()
dbplus_rquery()
dbplus_rrename()
dbplus_rsecindex()
dbplus_runlink()
dbplus_rzap()
dbplus_savepos()
dbplus_setindex()
dbplus_setindexbynumber()
dbplus_sql()
dbplus_tcl()
dbplus_tremove()
dbplus_undo()
dbplus_undoprepare()
dbplus_unlockrel()
dbplus_unselect()
dbplus_update()
dbplus_xlockrel()
dbplus_xunlockrel()
dbx_close()
dbx_compare()
dbx_connect()
dbx_error()
dbx_escape_string()
dbx_fetch_row()
dbx_query()
dbx_sort()
dcgettext()
dcngettext()
deaggregate()
debug_backtrace()
debug_print_backtrace()
debug_zval_dump()
debugger_off()
debugger_on()
decbin()
dechex()
decoct()
define()
define_syslog_variables()
defined()
deg2rad()
delete()
destroy_op_array()
destroy_zend_class()
destroy_zend_function()
dgettext()
die()
dio_close()
dio_fcntl()
dio_open()
dio_read()
dio_seek()
dio_stat()
dio_tcsetattr()
dio_truncate()
dio_write()
dir()
DirectoryIterator::__construct()
DirectoryIterator::current()
DirectoryIterator::getATime()
DirectoryIterator::getChildren()
DirectoryIterator::getCTime()
DirectoryIterator::getFilename()
DirectoryIterator::getGroup()
DirectoryIterator::getInode()
DirectoryIterator::getMTime()
DirectoryIterator::getOwner()
DirectoryIterator::getPath()
DirectoryIterator::getPathname()
DirectoryIterator::getPerms()
DirectoryIterator::getSize()
DirectoryIterator::getType()
DirectoryIterator::isDir()
DirectoryIterator::isDot()
DirectoryIterator::isExecutable()
DirectoryIterator::isFile()
DirectoryIterator::isLink()
DirectoryIterator::isReadable()
DirectoryIterator::isWritable()
DirectoryIterator::key()
DirectoryIterator::next()
DirectoryIterator::rewind()
DirectoryIterator::valid()
dirname()
disk_free_space()
disk_total_space()
diskfreespace()
display_ini_entries()
display_ini_entries()
dl()
dngettext()
dns_check_record()
dns_get_mx()
dns_get_record()
do_bind_class()
do_bind_function()
do_bind_inherited_class()
dom_import_simplexml()
DOMAttr->__construct()()
DOMAttr->isId()()
DomAttribute->name()
DomAttribute->set_value()
DomAttribute->specified()
DomAttribute->value()
DOMCharacterData->appendData()()
DOMCharacterData->deleteData()()
DOMCharacterData->insertData()()
DOMCharacterData->replaceData()()
DOMCharacterData->substringData()()
DOMComment->__construct()()
DOMDocument->__construct()()
DomDocument->add_root()
DomDocument->create_attribute()
DomDocument->create_cdata_section()
DomDocument->create_comment()
DomDocument->create_element()
DomDocument->create_element_ns()
DomDocument->create_entity_reference()
DomDocument->create_processing_instruction()
DomDocument->create_text_node()
DOMDocument->createAttribute()()
DOMDocument->createAttributeNS()()
DOMDocument->createCDATASection()()
DOMDocument->createComment()()
DOMDocument->createDocumentFragment()()
DOMDocument->createElement()()
DOMDocument->createElementNS()()
DOMDocument->createEntityReference()()
DOMDocument->createProcessingInstruction()()
DOMDocument->createTextNode()()
DomDocument->doctype()
DomDocument->document_element()
DomDocument->dump_file()
DomDocument->dump_mem()
DomDocument->get_element_by_id()
DomDocument->get_elements_by_tagname()
DOMDocument->getElementById()()
DOMDocument->getElementsByTagName()()
DOMDocument->getElementsByTagNameNS()()
DomDocument->html_dump_mem()
DOMDocument->importNode()()
DOMDocument->load()()
DOMDocument->loadHTML()()
DOMDocument->loadHTMLFile()()
DOMDocument->loadXML()()
DOMDocument->normalizeDocument()()
DOMDocument->registerNodeClass()()
DOMDocument->relaxNGValidate()()
DOMDocument->relaxNGValidateSource()()
DOMDocument->save()()
DOMDocument->saveHTML()()
DOMDocument->saveHTMLFile()()
DOMDocument->saveXML()()
DOMDocument->schemaValidate()()
DOMDocument->schemaValidateSource()()
DOMDocument->validate()()
DomDocument->xinclude()
DOMDocument->xinclude()()
DOMDocumentFragment->appendXML()()
DomDocumentType->entities()()
DomDocumentType->internal_subset()()
DomDocumentType->name()()
DomDocumentType->notations()()
DomDocumentType->public_id()()
DomDocumentType->system_id()()
DOMElement->__construct()()
DomElement->get_attribute()()
DomElement->get_attribute_node()()
DomElement->get_elements_by_tagname()()
DOMElement->getAttribute()()
DOMElement->getAttributeNode()()
DOMElement->getAttributeNodeNS()()
DOMElement->getAttributeNS()()
DOMElement->getElementsByTagName()()
DOMElement->getElementsByTagNameNS()()
DomElement->has_attribute()()
DOMElement->hasAttribute()()
DOMElement->hasAttributeNS()()
DomElement->remove_attribute()()
DOMElement->removeAttribute()()
DOMElement->removeAttributeNode()()
DOMElement->removeAttributeNS()()
DomElement->set_attribute()()
DomElement->set_attribute_node()()
DOMElement->setAttribute()()
DOMElement->setAttributeNode()()
DOMElement->setAttributeNodeNS()()
DOMElement->setAttributeNS()()
DOMElement->setIdAttribute()()
DOMElement->setIdAttributeNode()()
DOMElement->setIdAttributeNS()()
DomElement->tagname()()
DOMEntityReference->__construct()()
DOMImplementation->__construct()()
DOMImplementation->createDocument()()
DOMImplementation->createDocumentType()()
DOMImplementation->hasFeature()()
DOMNamedNodeMap->getNamedItem()()
DOMNamedNodeMap->getNamedItemNS()()
DOMNamedNodeMap->item()()
DomNode->add_namespace()
DomNode->append_child()
DomNode->append_sibling()
DOMNode->appendChild()()
DomNode->attributes()
DomNode->child_nodes()
DomNode->clone_node()
DOMNode->cloneNode()()
DomNode->dump_node()
DomNode->first_child()
DomNode->get_content()
DomNode->has_attributes()
DomNode->has_child_nodes()
DOMNode->hasAttributes()()
DOMNode->hasChildNodes()()
DomNode->insert_before()
DOMNode->insertBefore()()
DomNode->is_blank_node()
DOMNode->isDefaultNamespace()()
DOMNode->isSameNode()()
DOMNode->isSupported()()
DomNode->last_child()
DOMNode->lookupNamespaceURI()()
DOMNode->lookupPrefix()()
DomNode->next_sibling()
DomNode->node_name()
DomNode->node_type()
DomNode->node_value()
DOMNode->normalize()()
DomNode->owner_document()
DomNode->parent_node()
DomNode->prefix()
DomNode->previous_sibling()
DomNode->remove_child()
DOMNode->removeChild()()
DomNode->replace_child()
DomNode->replace_node()
DOMNode->replaceChild()()
DomNode->set_content()
DomNode->set_name()
DomNode->set_namespace()
DomNode->unlink_node()
DOMNodelist->item()()
DOMProcessingInstruction->__construct()()
DomProcessingInstruction->data()
DomProcessingInstruction->target()
DOMText->__construct()()
DOMText->isWhitespaceInElementContent()()
DOMText->splitText()()
domxml_new_doc()
domxml_open_file()
domxml_open_mem()
domxml_version()
domxml_xmltree()
domxml_xslt_stylesheet()
domxml_xslt_stylesheet_doc()
domxml_xslt_stylesheet_file()
domxml_xslt_version()
DOMXPath->__construct()()
DOMXPath->evaluate()()
DOMXPath->query()()
DOMXPath->registerNamespace()()
DomXsltStylesheet->process()()
DomXsltStylesheet->result_dump_file()()
DomXsltStylesheet->result_dump_mem()()
dotnet()
dotnet_load()
doubleval()

E

each()
easter_date()
easter_days()
ebcdic2ascii()
echo()
empty()
enchant_broker_describe()
enchant_broker_dict_exists()
enchant_broker_free()
enchant_broker_free_dict()
enchant_broker_get_error()
enchant_broker_init()
enchant_broker_list_dicts()
enchant_broker_request_dict()
enchant_broker_request_pwl_dict()
enchant_broker_set_ordering()
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_quick_check()
enchant_dict_store_replacement()
enchant_dict_suggest()
end()
ereg()
ereg_replace()
eregi()
eregi_replace()
error_get_last()
error_log()
error_reporting()
escapeshellarg()
escapeshellcmd()
estrndup()
estrndup_rel()
eustrdup()
eustrndup()
eustrndup_rel()
eval()
exec()
execute()
execute_internal()
exif_data_get_byte_order()
exif_data_get_entry()
exif_data_new_from_file()
exif_entry_get_value()
exif_entry_get_value_brief()
exif_format_get_name()
exif_format_get_size()
exif_imagetype()
exif_read_data()
exif_tag_get_description()
exif_tag_get_name()
exif_tag_get_title()
exif_tagname()
exif_thumbnail()
exit()
exp()
expect_expectl()
expect_popen()
explode()
expm1()
extension_loaded()
extract()
ezmlm_hash()

F

fam_cancel_monitor()
fam_close()
fam_monitor_collection()
fam_monitor_directory()
fam_monitor_file()
fam_next_event()
fam_open()
fam_pending()
fam_resume_monitor()
fam_suspend_monitor()
fbsql_affected_rows()
fbsql_autocommit()
fbsql_blob_size()
fbsql_change_user()
fbsql_clob_size()
fbsql_close()
fbsql_commit()
fbsql_connect()
fbsql_create_blob()
fbsql_create_clob()
fbsql_create_db()
fbsql_data_seek()
fbsql_database()
fbsql_database_password()
fbsql_db_query()
fbsql_db_status()
fbsql_drop_db()
fbsql_errno()
fbsql_error()
fbsql_fetch_array()
fbsql_fetch_assoc()
fbsql_fetch_field()
fbsql_fetch_lengths()
fbsql_fetch_object()
fbsql_fetch_row()
fbsql_field_flags()
fbsql_field_len()
fbsql_field_name()
fbsql_field_seek()
fbsql_field_table()
fbsql_field_type()
fbsql_free_result()
fbsql_get_autostart_info()
fbsql_hostname()
fbsql_insert_id()
fbsql_list_dbs()
fbsql_list_fields()
fbsql_list_tables()
fbsql_next_result()
fbsql_num_fields()
fbsql_num_rows()
fbsql_password()
fbsql_pconnect()
fbsql_query()
fbsql_read_blob()
fbsql_read_clob()
fbsql_result()
fbsql_rollback()
fbsql_rows_fetched()
fbsql_select_db()
fbsql_set_characterset()
fbsql_set_lob_mode()
fbsql_set_password()
fbsql_set_transaction()
fbsql_start_db()
fbsql_stop_db()
fbsql_table_name()
fbsql_tablename()
fbsql_username()
fbsql_warnings()
fclose()
fdf_add_doc_javascript()
fdf_add_template()
fdf_close()
fdf_create()
fdf_enum_values()
fdf_errno()
fdf_error()
fdf_get_ap()
fdf_get_attachment()
fdf_get_encoding()
fdf_get_file()
fdf_get_flags()
fdf_get_opt()
fdf_get_status()
fdf_get_value()
fdf_get_version()
fdf_header()
fdf_next_field_name()
fdf_open()
fdf_open_string()
fdf_remove_item()
fdf_save()
fdf_save_string()
fdf_set_ap()
fdf_set_encoding()
fdf_set_file()
fdf_set_flags()
fdf_set_javascript_action()
fdf_set_on_import_javascript()
fdf_set_opt()
fdf_set_status()
fdf_set_submit_form_action()
fdf_set_target_frame()
fdf_set_value()
fdf_set_version()
feof()
fflush()
fgetc()
fgetcsv()
fgets()
fgetss()
file()
file_exists()
file_get_contents()
file_put_contents()
fileatime()
filectime()
filegroup()
fileinode()
filemtime()
fileowner()
fileperms()
filepro()
filepro_fieldcount()
filepro_fieldname()
filepro_fieldtype()
filepro_fieldwidth()
filepro_retrieve()
filepro_rowcount()
filesize()
filetype()
filter_has_var()
filter_id()
filter_input()
filter_input_array()
filter_list()
filter_var()
filter_var_array()
FilterIterator::current()
FilterIterator::getInnerIterator()
FilterIterator::key()
FilterIterator::next()
FilterIterator::rewind()
FilterIterator::valid()
finfo_buffer()
finfo_close()
finfo_file()
finfo_open()
finfo_set_flags()
floatval()
flock()
floor()
flush()
fmod()
fnmatch()
fopen()
fpassthru()
fprintf()
fputcsv()
fputs()
fread()
free_estring()
frenchtojd()
fribidi_log2vis()
fscanf()
fseek()
fsockopen()
fstat()
ftell()
ftok()
ftp_alloc()
ftp_cdup()
ftp_chdir()
ftp_chmod()
ftp_close()
ftp_connect()
ftp_delete()
ftp_exec()
ftp_fget()
ftp_fput()
ftp_get()
ftp_get_option()
ftp_login()
ftp_mdtm()
ftp_mkdir()
ftp_nb_continue()
ftp_nb_fget()
ftp_nb_fput()
ftp_nb_get()
ftp_nb_put()
ftp_nlist()
ftp_pasv()
ftp_put()
ftp_pwd()
ftp_quit()
ftp_raw()
ftp_rawlist()
ftp_rename()
ftp_rmdir()
ftp_set_option()
ftp_site()
ftp_size()
ftp_ssl_connect()
ftp_systype()
ftruncate()
full_mem_check()
func_get_arg()
func_get_args()
func_num_args()
function_add_ref()
function_exists()
fwrite()

G

gd_info()
geoip_country_code3_by_name()
geoip_country_code_by_name()
geoip_country_name_by_name()
geoip_database_info()
geoip_id_by_name()
geoip_org_by_name()
geoip_record_by_name()
geoip_region_by_name()
get_active_class_name()
get_active_function_name()
get_binary_op()
get_browser()
get_cfg_var()
get_class()
get_class_methods()
get_class_vars()
get_current_user()
get_declared_classes()
get_declared_interfaces()
get_defined_constants()
get_defined_functions()
get_defined_vars()
get_extension_funcs()
get_headers()
get_html_translation_table()
get_include_path()
get_included_files()
get_loaded_extensions()
get_magic_quotes_gpc()
get_magic_quotes_runtime()
get_meta_tags()
get_object_vars()
get_parent_class()
get_required_files()
get_resource_type()
get_unary_op()
get_zend_version()
getallheaders()
getcwd()
getdate()
getenv()
gethostbyaddr()
gethostbyname()
gethostbynamel()
getimagesize()
getlastmod()
getmxrr()
getmygid()
getmyinode()
getmypid()
getmyuid()
getopt()
getprotobyname()
getprotobynumber()
getrandmax()
getrusage()
getservbyname()
getservbyport()
gettext()
gettimeofday()
gettype()
glob()
gmdate()
gmmktime()
gmp_abs()
gmp_add()
gmp_and()
gmp_clrbit()
gmp_cmp()
gmp_com()
gmp_div()
gmp_div_q()
gmp_div_qr()
gmp_div_r()
gmp_divexact()
gmp_fact()
gmp_gcd()
gmp_gcdext()
gmp_hamdist()
gmp_init()
gmp_intval()
gmp_invert()
gmp_jacobi()
gmp_legendre()
gmp_mod()
gmp_mul()
gmp_neg()
gmp_nextprime()
gmp_or()
gmp_perfect_square()
gmp_popcount()
gmp_pow()
gmp_powm()
gmp_prob_prime()
gmp_random()
gmp_scan0()
gmp_scan1()
gmp_setbit()
gmp_sign()
gmp_sqrt()
gmp_sqrtrem()
gmp_strval()
gmp_sub()
gmp_xor()
gmstrftime()
gnupg_adddecryptkey()
gnupg_addencryptkey()
gnupg_addsignkey()
gnupg_cleardecryptkeys()
gnupg_clearencryptkeys()
gnupg_clearsignkeys()
gnupg_decrypt()
gnupg_decryptverify()
gnupg_encrypt()
gnupg_encryptsign()
gnupg_export()
gnupg_geterror()
gnupg_getprotocol()
gnupg_import()
gnupg_keyinfo()
gnupg_setarmor()
gnupg_seterrormode()
gnupg_setsignmode()
gnupg_sign()
gnupg_verify()
gopher_parsedir()
gregoriantojd()
gzclose()
gzcompress()
gzdecode()
gzdeflate()
gzencode()
gzeof()
gzfile()
gzgetc()
gzgets()
gzgetss()
gzinflate()
gzopen()
gzpassthru()
gzputs()
gzread()
gzrewind()
gzseek()
gztell()
gzuncompress()
gzwrite()

H

hash()
hash_algos()
hash_file()
hash_final()
hash_hmac()
hash_hmac_file()
hash_init()
hash_update()
hash_update_file()
hash_update_stream()
header()
headers_list()
headers_sent()
hebrev()
hebrevc()
hexdec()
highlight_file()
highlight_file()
highlight_string()
highlight_string()
html_entity_decode()
html_parser_comment_handler()
html_parser_create()
html_parser_data_handler()
html_parser_endtag_handler()
html_parser_free()
html_parser_parse()
html_parser_starttag_handler()
htmlentities()
htmlspecialchars()
htmlspecialchars_decode()
http_build_cookie()
http_build_query()
http_build_str()
http_build_url()
http_cache_etag()
http_cache_last_modified()
http_chunked_decode()
http_date()
http_deflate()
http_get()
http_get_request_body()
http_get_request_body_stream()
http_get_request_headers()
http_head()
http_inflate()
http_match_etag()
http_match_modified()
http_match_request_header()
http_negotiate_charset()
http_negotiate_content_type()
http_negotiate_language()
http_parse_cookie()
http_parse_headers()
http_parse_message()
http_parse_params()
http_post_data()
http_post_fields()
http_put_data()
http_put_file()
http_put_stream()
http_redirect()
http_request()
http_request_body_encode()
http_request_method_exists()
http_request_method_name()
http_request_method_register()
http_request_method_unregister()
http_send_content_disposition()
http_send_content_type()
http_send_data()
http_send_file()
http_send_last_modified()
http_send_status()
http_send_stream()
http_support()
http_throttle()
httpdeflatestream()
HttpDeflateStream::__construct()
HttpDeflateStream::finish()
HttpDeflateStream::flush()
HttpDeflateStream::update()
httpinflatestream()
HttpInflateStream::__construct()
HttpInflateStream::finish()
HttpInflateStream::flush()
HttpInflateStream::update()
httpmessage()
HttpMessage::__construct()
HttpMessage::addHeaders()
HttpMessage::detach()
HttpMessage::fromString()
HttpMessage::getBody()
HttpMessage::getHeader()
HttpMessage::getHeaders()
HttpMessage::getHttpVersion()
HttpMessage::getParentMessage()
HttpMessage::getRequestMethod()
HttpMessage::getRequestUrl()
HttpMessage::getResponseCode()
HttpMessage::getResponseStatus()
HttpMessage::getType()
HttpMessage::guessContentType()
HttpMessage::prepend()
HttpMessage::reverse()
HttpMessage::send()
HttpMessage::setBody()
HttpMessage::setHeaders()
HttpMessage::setHttpVersion()
HttpMessage::setRequestMethod()
HttpMessage::setRequestUrl()
HttpMessage::setResponseCode()
HttpMessage::setResponseStatus()
HttpMessage::setType()
HttpMessage::toMessageTypeObject()
HttpMessage::toString()
httpquerystring()
HttpQueryString::__construct()
HttpQueryString::get()
HttpQueryString::mod()
HttpQueryString::set()
HttpQueryString::singleton()
HttpQueryString::toArray()
HttpQueryString::toString()
HttpQueryString::xlate()
httprequest()
HttpRequest::__construct()
HttpRequest::addCookies()
HttpRequest::addHeaders()
HttpRequest::addPostFields()
HttpRequest::addPostFile()
HttpRequest::addPutData()
HttpRequest::addQueryData()
HttpRequest::addRawPostData()
HttpRequest::addSslOptions()
HttpRequest::clearHistory()
HttpRequest::enableCookies()
HttpRequest::getContentType()
HttpRequest::getCookies()
HttpRequest::getHeaders()
HttpRequest::getHistory()
HttpRequest::getMethod()
HttpRequest::getOptions()
HttpRequest::getPostFields()
HttpRequest::getPostFiles()
HttpRequest::getPutData()
HttpRequest::getPutFile()
HttpRequest::getQueryData()
HttpRequest::getRawPostData()
HttpRequest::getRawRequestMessage()
HttpRequest::getRawResponseMessage()
HttpRequest::getRequestMessage()
HttpRequest::getResponseBody()
HttpRequest::getResponseCode()
HttpRequest::getResponseCookies()
HttpRequest::getResponseData()
HttpRequest::getResponseHeader()
HttpRequest::getResponseInfo()
HttpRequest::getResponseMessage()
HttpRequest::getResponseStatus()
HttpRequest::getSslOptions()
HttpRequest::getUrl()
HttpRequest::resetCookies()
HttpRequest::send()
HttpRequest::setContentType()
HttpRequest::setCookies()
HttpRequest::setHeaders()
HttpRequest::setMethod()
HttpRequest::setOptions()
HttpRequest::setPostFields()
HttpRequest::setPostFiles()
HttpRequest::setPutData()
HttpRequest::setPutFile()
HttpRequest::setQueryData()
HttpRequest::setRawPostData()
HttpRequest::setSslOptions()
HttpRequest::setUrl()
httprequestpool()
HttpRequestPool::__construct()
HttpRequestPool::__destruct()
HttpRequestPool::attach()
HttpRequestPool::detach()
HttpRequestPool::getAttachedRequests()
HttpRequestPool::getFinishedRequests()
HttpRequestPool::reset()
HttpRequestPool::send()
HttpRequestPool::socketPerform()
HttpRequestPool::socketSelect()
httpresponse()
HttpResponse::capture()
HttpResponse::getBufferSize()
HttpResponse::getCache()
HttpResponse::getCacheControl()
HttpResponse::getContentDisposition()
HttpResponse::getContentType()
HttpResponse::getData()
HttpResponse::getETag()
HttpResponse::getFile()
HttpResponse::getGzip()
HttpResponse::getHeader()
HttpResponse::getLastModified()
HttpResponse::getStream()
HttpResponse::getThrottleDelay()
HttpResponse::guessContentType()
HttpResponse::send()
HttpResponse::setBufferSize()
HttpResponse::setCache()
HttpResponse::setCacheControl()
HttpResponse::setContentDisposition()
HttpResponse::setContentType()
HttpResponse::setData()
HttpResponse::setETag()
HttpResponse::setFile()
HttpResponse::setGzip()
HttpResponse::setHeader()
HttpResponse::setLastModified()
HttpResponse::setStream()
HttpResponse::setThrottleDelay()
hw_api->checkin()
hw_api->checkout()
hw_api->children()
hw_api->content()
hw_api->copy()
hw_api->dbstat()
hw_api->dcstat()
hw_api->dstanchors()
hw_api->dstofsrcanchor()
hw_api->find()
hw_api->ftstat()
hw_api->hwstat()
hw_api->identify()
hw_api->info()
hw_api->insert()
hw_api->insertanchor()
hw_api->insertcollection()
hw_api->insertdocument()
hw_api->link()
hw_api->lock()
hw_api->move()
hw_api->object()
hw_api->objectbyanchor()
hw_api->parents()
hw_api->remove()
hw_api->replace()
hw_api->setcommittedversion()
hw_api->srcanchors()
hw_api->srcsofdst()
hw_api->unlock()
hw_api->user()
hw_api->userlist()
hw_api_attribute()
hw_api_attribute->key()
hw_api_attribute->langdepvalue()
hw_api_attribute->value()
hw_api_attribute->values()
hw_api_content()
hw_api_content->mimetype()
hw_api_content->read()
hw_api_error->count()
hw_api_error->reason()
hw_api_object()
hw_api_object->assign()
hw_api_object->attreditable()
hw_api_object->count()
hw_api_object->insert()
hw_api_object->remove()
hw_api_object->title()
hw_api_object->value()
hw_api_reason->description()
hw_api_reason->type()
hw_array2objrec()
hw_changeobject()
hw_children()
hw_childrenobj()
hw_close()
hw_connect()
hw_connection_info()
hw_cp()
hw_deleteobject()
hw_docbyanchor()
hw_docbyanchorobj()
hw_document_attributes()
hw_document_bodytag()
hw_document_content()
hw_document_setcontent()
hw_document_size()
hw_dummy()
hw_edittext()
hw_error()
hw_errormsg()
hw_free_document()
hw_getanchors()
hw_getanchorsobj()
hw_getandlock()
hw_getchildcoll()
hw_getchildcollobj()
hw_getchilddoccoll()
hw_getchilddoccollobj()
hw_getobject()
hw_getobjectbyquery()
hw_getobjectbyquerycoll()
hw_getobjectbyquerycollobj()
hw_getobjectbyqueryobj()
hw_getparents()
hw_getparentsobj()
hw_getrellink()
hw_getremote()
hw_getremotechildren()
hw_getsrcbydestobj()
hw_gettext()
hw_getusername()
hw_identify()
hw_incollections()
hw_info()
hw_inscoll()
hw_insdoc()
hw_insertanchors()
hw_insertdocument()
hw_insertobject()
hw_mapid()
hw_modifyobject()
hw_mv()
hw_new_document()
hw_objrec2array()
hw_output_document()
hw_pconnect()
hw_pipedocument()
hw_root()
hw_setlinkroot()
hw_stat()
hw_unlock()
hw_who()
hwapi_hgcsp()
hypot()

I

i18n_loc_get_default()
i18n_loc_set_default()
ibase_add_user()
ibase_affected_rows()
ibase_backup()
ibase_blob_add()
ibase_blob_cancel()
ibase_blob_close()
ibase_blob_create()
ibase_blob_echo()
ibase_blob_get()
ibase_blob_import()
ibase_blob_info()
ibase_blob_open()
ibase_close()
ibase_commit()
ibase_commit_ret()
ibase_connect()
ibase_db_info()
ibase_delete_user()
ibase_drop_db()
ibase_errcode()
ibase_errmsg()
ibase_execute()
ibase_fetch_assoc()
ibase_fetch_object()
ibase_fetch_row()
ibase_field_info()
ibase_free_event_handler()
ibase_free_query()
ibase_free_result()
ibase_gen_id()
ibase_maintain_db()
ibase_modify_user()
ibase_name_result()
ibase_num_fields()
ibase_num_params()
ibase_param_info()
ibase_pconnect()
ibase_prepare()
ibase_query()
ibase_restore()
ibase_rollback()
ibase_rollback_ret()
ibase_server_info()
ibase_service_attach()
ibase_service_detach()
ibase_set_event_handler()
ibase_timefmt()
ibase_trans()
ibase_wait_event()
icap_close()
icap_create_calendar()
icap_delete_calendar()
icap_delete_event()
icap_fetch_event()
icap_list_alarms()
icap_list_events()
icap_open()
icap_rename_calendar()
icap_reopen()
icap_snooze()
icap_store_event()
iconv()
iconv_get_encoding()
iconv_mime_decode()
iconv_mime_decode_headers()
iconv_mime_encode()
iconv_set_encoding()
iconv_strlen()
iconv_strpos()
iconv_strrpos()
iconv_substr()
id3_get_frame_long_name()
id3_get_frame_short_name()
id3_get_genre_id()
id3_get_genre_list()
id3_get_genre_name()
id3_get_tag()
id3_get_version()
id3_remove_tag()
id3_set_tag()
idate()
ifx_affected_rows()
ifx_blobinfile_mode()
ifx_byteasvarchar()
ifx_close()
ifx_connect()
ifx_copy_blob()
ifx_create_blob()
ifx_create_char()
ifx_do()
ifx_error()
ifx_errormsg()
ifx_fetch_row()
ifx_fieldproperties()
ifx_fieldtypes()
ifx_free_blob()
ifx_free_char()
ifx_free_result()
ifx_get_blob()
ifx_get_char()
ifx_getsqlca()
ifx_htmltbl_result()
ifx_nullformat()
ifx_num_fields()
ifx_num_rows()
ifx_pconnect()
ifx_prepare()
ifx_query()
ifx_textasvarchar()
ifx_update_blob()
ifx_update_char()
ifxus_close_slob()
ifxus_create_slob()
ifxus_free_slob()
ifxus_open_slob()
ifxus_read_slob()
ifxus_seek_slob()
ifxus_tell_slob()
ifxus_write_slob()
ignore_user_abort()
iis_add_server()
iis_get_dir_security()
iis_get_script_map()
iis_get_server_by_comment()
iis_get_server_by_path()
iis_get_server_rights()
iis_get_service_state()
iis_remove_server()
iis_set_app_settings()
iis_set_dir_security()
iis_set_script_map()
iis_set_server_rights()
iis_start_server()
iis_start_service()
iis_stop_server()
iis_stop_service()
image2wbmp()
image_type_to_extension()
image_type_to_mime_type()
imagealphablending()
imageantialias()
imagearc()
imagechar()
imagecharup()
imagecolorallocate()
imagecolorallocatealpha()
imagecolorat()
imagecolorclosest()
imagecolorclosestalpha()
imagecolorclosesthwb()
imagecolordeallocate()
imagecolorexact()
imagecolorexactalpha()
imagecolormatch()
imagecolorresolve()
imagecolorresolvealpha()
imagecolorset()
imagecolorsforindex()
imagecolorstotal()
imagecolortransparent()
imageconvolution()
imagecopy()
imagecopymerge()
imagecopymergegray()
imagecopyresampled()
imagecopyresized()
imagecreate()
imagecreatefromgd()
imagecreatefromgd2()
imagecreatefromgd2part()
imagecreatefromgif()
imagecreatefromjpeg()
imagecreatefrompng()
imagecreatefromstring()
imagecreatefromwbmp()
imagecreatefromxbm()
imagecreatefromxpm()
imagecreatetruecolor()
imagedashedline()
imagedestroy()
imageellipse()
imagefill()
imagefilledarc()
imagefilledellipse()
imagefilledpolygon()
imagefilledrectangle()
imagefilltoborder()
imagefilter()
imagefontheight()
imagefontwidth()
imageftbbox()
imagefttext()
imagegammacorrect()
imagegd()
imagegd2()
imagegif()
imageinterlace()
imageistruecolor()
imagejpeg()
imagelayereffect()
imageline()
imageloadfont()
imagepalettecopy()
imagepng()
imagepolygon()
imagepsbbox()
imagepsencodefont()
imagepsextendfont()
imagepsfreefont()
imagepsloadfont()
imagepsslantfont()
imagepstext()
imagerectangle()
imagerotate()
imagesavealpha()
imagesetbrush()
imagesetpixel()
imagesetstyle()
imagesetthickness()
imagesettile()
imagestring()
imagestringup()
imagesx()
imagesy()
imagetruecolortopalette()
imagettfbbox()
imagettftext()
imagetypes()
imagewbmp()
imagexbm()
imagick_begindraw()
imagick_blob2image()
imagick_blur()
imagick_border()
imagick_charcoal()
imagick_chop()
imagick_clonehandle()
imagick_composite()
imagick_contrast()
imagick_convert()
imagick_crop()
imagick_despeckle()
imagick_destroyhandle()
imagick_drawannotation()
imagick_drawarc()
imagick_drawcircle()
imagick_drawellipse()
imagick_drawline()
imagick_drawpoint()
imagick_drawrectangle()
imagick_edge()
imagick_emboss()
imagick_enhance()
imagick_equalize()
imagick_error()
imagick_faileddescription()
imagick_failedreason()
imagick_first()
imagick_flatten()
imagick_flip()
imagick_flop()
imagick_frame()
imagick_free()
imagick_gamma()
imagick_gaussianblur()
imagick_getcanvas()
imagick_getcolorspace()
imagick_getdpix()
imagick_getdpiy()
imagick_getheight()
imagick_getimagedepth()
imagick_getimagefromlist()
imagick_getimagetype()
imagick_getlistindex()
imagick_getlistsize()
imagick_getmagick()
imagick_getmimetype()
imagick_getnumbercolors()
imagick_getwidth()
imagick_goto()
imagick_image2blob()
imagick_implode()
imagick_iserror()
imagick_isgrayimage()
imagick_isimagesequal()
imagick_ismonochromeimage()
imagick_isopaqueimage()
imagick_ispaletteimage()
imagick_level()
imagick_magnify()
imagick_medianfilter()
imagick_minify()
imagick_modulate()
imagick_mosaic()
imagick_motionblur()
imagick_negate()
imagick_newimagelist()
imagick_next()
imagick_normalize()
imagick_oilpaint()
imagick_ordereddither()
imagick_poplist()
imagick_prev()
imagick_profile()
imagick_pushlist()
imagick_raise()
imagick_read()
imagick_readimage()
imagick_reducenoise()
imagick_resize()
imagick_roll()
imagick_rotate()
imagick_sample()
imagick_scale()
imagick_set_image_comment()
imagick_set_image_quality()
imagick_setcompressionquality()
imagick_setcompressiontype()
imagick_setdpi()
imagick_setfillcolor()
imagick_setfillopacity()
imagick_setfontface()
imagick_setfontsize()
imagick_setfontstyle()
imagick_shade()
imagick_sharpen()
imagick_shear()
imagick_solarize()
imagick_spread()
imagick_swirl()
imagick_threshold()
imagick_transformrgb()
imagick_transparent()
imagick_unsharpmask()
imagick_wave()
imagick_writeimage()
imagick_writeimages()
imagick_zoom()
imap_8bit()
imap_alerts()
imap_append()
imap_base64()
imap_binary()
imap_body()
imap_bodystruct()
imap_check()
imap_clearflag_full()
imap_close()
imap_createmailbox()
imap_delete()
imap_deletemailbox()
imap_errors()
imap_expunge()
imap_fetch_overview()
imap_fetchbody()
imap_fetchheader()
imap_fetchstructure()
imap_get_quota()
imap_get_quotaroot()
imap_getacl()
imap_getmailboxes()
imap_getsubscribed()
imap_header()
imap_headerinfo()
imap_headers()
imap_last_error()
imap_list()
imap_listmailbox()
imap_listscan()
imap_listsubscribed()
imap_lsub()
imap_mail()
imap_mail_compose()
imap_mail_copy()
imap_mail_move()
imap_mailboxmsginfo()
imap_mime_header_decode()
imap_msgno()
imap_num_msg()
imap_num_recent()
imap_open()
imap_ping()
imap_qprint()
imap_renamemailbox()
imap_reopen()
imap_rfc822_parse_adrlist()
imap_rfc822_parse_headers()
imap_rfc822_write_address()
imap_savebody()
imap_scanmailbox()
imap_search()
imap_set_quota()
imap_setacl()
imap_setflag_full()
imap_sort()
imap_status()
imap_subscribe()
imap_thread()
imap_timeout()
imap_uid()
imap_undelete()
imap_unsubscribe()
imap_utf7_decode()
imap_utf7_encode()
imap_utf8()
implode()
import_request_variables()
in_array()
inet_ntop()
inet_pton()
ingres_autocommit()
ingres_close()
ingres_commit()
ingres_connect()
ingres_cursor()
ingres_errno()
ingres_error()
ingres_errsqlstate()
ingres_fetch_array()
ingres_fetch_object()
ingres_fetch_row()
ingres_field_length()
ingres_field_name()
ingres_field_nullable()
ingres_field_precision()
ingres_field_scale()
ingres_field_type()
ingres_num_fields()
ingres_num_rows()
ingres_pconnect()
ingres_query()
ingres_rollback()
ini_alter()
ini_bool()
ini_flt()
ini_get()
ini_get_all()
ini_int()
ini_orig_bool()
ini_orig_flt()
ini_orig_int()
ini_orig_str()
ini_restore()
ini_set()
ini_str()
init_op_array()
installation()
interface_exists()
intval()
ip2long()
iptcembed()
iptcparse()
ircg_channel_mode()
ircg_disconnect()
ircg_eval_ecmascript_params()
ircg_fetch_error_msg()
ircg_get_username()
ircg_html_encode()
ircg_ignore_add()
ircg_ignore_del()
ircg_invite()
ircg_is_conn_alive()
ircg_join()
ircg_kick()
ircg_list()
ircg_lookup_format_messages()
ircg_lusers()
ircg_msg()
ircg_names()
ircg_nick()
ircg_nickname_escape()
ircg_nickname_unescape()
ircg_notice()
ircg_oper()
ircg_part()
ircg_pconnect()
ircg_register_format_messages()
ircg_set_current()
ircg_set_file()
ircg_set_on_die()
ircg_topic()
ircg_who()
ircg_whois()
is_a()
is_array()
is_binary()
is_bool()
is_buffer()
is_callable()
is_dir()
is_double()
is_executable()
is_file()
is_finite()
is_float()
is_infinite()
is_int()
is_integer()
is_link()
is_long()
is_nan()
is_null()
is_numeric()
is_object()
is_readable()
is_real()
is_resource()
is_scalar()
is_soap_fault()
is_string()
is_subclass_of()
is_unicode()
is_uploaded_file()
is_writable()
is_writeable()
isset()
iterator_count()
iterator_to_array()

J

java_last_exception_clear()
java_last_exception_get()
jddayofweek()
jdmonthname()
jdtofrench()
jdtogregorian()
jdtojewish()
jdtojulian()
jdtounix()
jewishtojd()
join()
jpeg2wbmp()
json_decode()
json_encode()
juliantojd()

K

kadm5_chpass_principal()
kadm5_create_principal()
kadm5_delete_principal()
kadm5_destroy()
kadm5_flush()
kadm5_get_policies()
kadm5_get_principal()
kadm5_get_principals()
kadm5_init_with_password()
kadm5_modify_principal()
key()
krsort()
ksort()

L

lcg_value()
lchgrp()
lchown()
ldap_8859_to_t61()
ldap_add()
ldap_bind()
ldap_close()
ldap_compare()
ldap_connect()
ldap_count_entries()
ldap_delete()
ldap_dn2ufn()
ldap_err2str()
ldap_errno()
ldap_error()
ldap_explode_dn()
ldap_first_attribute()
ldap_first_entry()
ldap_first_reference()
ldap_free_result()
ldap_get_attributes()
ldap_get_dn()
ldap_get_entries()
ldap_get_option()
ldap_get_values()
ldap_get_values_len()
ldap_list()
ldap_mod_add()
ldap_mod_del()
ldap_mod_replace()
ldap_modify()
ldap_next_attribute()
ldap_next_entry()
ldap_next_reference()
ldap_parse_reference()
ldap_parse_result()
ldap_read()
ldap_rename()
ldap_sasl_bind()
ldap_search()
ldap_set_option()
ldap_set_rebind_proc()
ldap_sort()
ldap_start_tls()
ldap_t61_to_8859()
ldap_unbind()
levenshtein()
lex_scan()
libxml_clear_errors()
libxml_get_errors()
libxml_get_last_error()
libxml_set_streams_context()
libxml_use_internal_errors()
LimitIterator::getPosition()
LimitIterator::next()
LimitIterator::rewind()
LimitIterator::seek()
LimitIterator::valid()
link()
linkinfo()
list()
localeconv()
localtime()
log()
log10()
log1p()
long2ip()
lstat()
ltrim()
lzf_compress()
lzf_decompress()
lzf_optimized_for()

M

m_checkstatus()
m_completeauthorizations()
m_connect()
m_connectionerror()
m_deletetrans()
m_destroyconn()
m_destroyengine()
m_getcell()
m_getcellbynum()
m_getcommadelimited()
m_getheader()
m_initconn()
m_initengine()
m_iscommadelimited()
m_maxconntimeout()
m_monitor()
m_numcolumns()
m_numrows()
m_parsecommadelimited()
m_responsekeys()
m_responseparam()
m_returnstatus()
m_setblocking()
m_setdropfile()
m_setip()
m_setssl()
m_setssl_cafile()
m_setssl_files()
m_settimeout()
m_sslcert_gen_hash()
m_transactionssent()
m_transinqueue()
m_transkeyval()
m_transnew()
m_transsend()
m_uwait()
m_validateidentifier()
m_verifyconnection()
m_verifysslcert()
mail()
mailparse_determine_best_xfer_encoding()
mailparse_msg_create()
mailparse_msg_extract_part()
mailparse_msg_extract_part_file()
mailparse_msg_extract_whole_part_file()
mailparse_msg_free()
mailparse_msg_get_part()
mailparse_msg_get_part_data()
mailparse_msg_get_structure()
mailparse_msg_parse()
mailparse_msg_parse_file()
mailparse_rfc822_parse_addresses()
mailparse_stream_encode()
mailparse_uudecode_all()
main()
max()
maxdb()()
maxdb->affected_rows()
maxdb->auto_commit()
maxdb->change_user()
maxdb->character_set_name()
maxdb->close()
maxdb->close_long_data()
maxdb->commit()
maxdb->disable_reads_from_master()
maxdb->errno()
maxdb->fetch_assoc()
maxdb->field_count()
maxdb->get_host_info()
maxdb->info()
maxdb->insert_id()
maxdb->kill()
maxdb->more_results()
maxdb->multi_query()
maxdb->next_result()
maxdb->options()
maxdb->ping()
maxdb->prepare()
maxdb->protocol_version()
maxdb->query()
maxdb->real_connect()
maxdb->real_escape_string()
maxdb->real_query()
maxdb->rollback()
maxdb->rpl_query_type()
maxdb->select_db()
maxdb->send_query()
maxdb->server_info()
maxdb->sqlstate()
maxdb->ssl_set()
maxdb->stat()
maxdb->stmt_init()
maxdb->store_result()
maxdb->store_result()
maxdb->thread_id()
maxdb->use_result()
maxdb->warning_count()
maxdb_affected_rows()
maxdb_autocommit()
maxdb_bind_param()
maxdb_bind_result()
maxdb_change_user()
maxdb_character_set_name()
maxdb_client_encoding()
maxdb_close()
maxdb_close_long_data()
maxdb_commit()
maxdb_connect()
maxdb_connect_errno()
maxdb_connect_error()
maxdb_data_seek()
maxdb_debug()
maxdb_disable_reads_from_master()
maxdb_disable_rpl_parse()
maxdb_dump_debug_info()
maxdb_embedded_connect()
maxdb_enable_reads_from_master()
maxdb_enable_rpl_parse()
maxdb_errno()
maxdb_error()
maxdb_escape_string()
maxdb_execute()
maxdb_fetch()
maxdb_fetch_array()
maxdb_fetch_assoc()
maxdb_fetch_field()
maxdb_fetch_field_direct()
maxdb_fetch_fields()
maxdb_fetch_lengths()
maxdb_fetch_object()
maxdb_fetch_row()
maxdb_field_count()
maxdb_field_seek()
maxdb_field_tell()
maxdb_free_result()
maxdb_get_client_info()
maxdb_get_client_version()
maxdb_get_host_info()
maxdb_get_metadata()
maxdb_get_proto_info()
maxdb_get_server_info()
maxdb_get_server_version()
maxdb_info()
maxdb_init()
maxdb_insert_id()
maxdb_kill()
maxdb_master_query()
maxdb_more_results()
maxdb_multi_query()
maxdb_next_result()
maxdb_num_fields()
maxdb_num_rows()
maxdb_options()
maxdb_param_count()
maxdb_ping()
maxdb_prepare()
maxdb_query()
maxdb_real_connect()
maxdb_real_escape_string()
maxdb_real_query()
maxdb_report()
maxdb_rollback()
maxdb_rpl_parse_enabled()
maxdb_rpl_probe()
maxdb_rpl_query_type()
maxdb_select_db()
maxdb_send_long_data()
maxdb_send_query()
maxdb_server_end()
maxdb_server_init()
maxdb_set_opt()
maxdb_sqlstate()
maxdb_ssl_set()
maxdb_stat()
maxdb_stmt->affected_rows()
maxdb_stmt->close()
maxdb_stmt->errno()
maxdb_stmt->error()
maxdb_stmt_affected_rows()
maxdb_stmt_bind_param()
maxdb_stmt_bind_result()
maxdb_stmt_close()
maxdb_stmt_close_long_data()
maxdb_stmt_data_seek()
maxdb_stmt_errno()
maxdb_stmt_error()
maxdb_stmt_execute()
maxdb_stmt_fetch()
maxdb_stmt_free_result()
maxdb_stmt_init()
maxdb_stmt_num_rows()
maxdb_stmt_param_count()
maxdb_stmt_prepare()
maxdb_stmt_reset()
maxdb_stmt_result_metadata()
maxdb_stmt_send_long_data()
maxdb_stmt_sqlstate()
maxdb_stmt_store_result()
maxdb_store_result()
maxdb_thread_id()
maxdb_thread_safe()
maxdb_use_result()
maxdb_warning_count()
mb_check_encoding()
mb_convert_case()
mb_convert_encoding()
mb_convert_kana()
mb_convert_variables()
mb_decode_mimeheader()
mb_decode_numericentity()
mb_detect_encoding()
mb_detect_order()
mb_encode_mimeheader()
mb_encode_numericentity()
mb_ereg()
mb_ereg_match()
mb_ereg_replace()
mb_ereg_search()
mb_ereg_search_getpos()
mb_ereg_search_getregs()
mb_ereg_search_init()
mb_ereg_search_pos()
mb_ereg_search_regs()
mb_ereg_search_setpos()
mb_eregi()
mb_eregi_replace()
mb_get_info()
mb_http_input()
mb_http_output()
mb_internal_encoding()
mb_language()
mb_list_encodings()
mb_list_encodings_alias_names()
mb_list_mime_names()
mb_output_handler()
mb_parse_str()
mb_preferred_mime_name()
mb_regex_encoding()
mb_regex_set_options()
mb_send_mail()
mb_split()
mb_strcut()
mb_strimwidth()
mb_stripos()
mb_stristr()
mb_strlen()
mb_strpos()
mb_strrchr()
mb_strrichr()
mb_strripos()
mb_strrpos()
mb_strstr()
mb_strtolower()
mb_strtoupper()
mb_strwidth()
mb_substitute_character()
mb_substr()
mb_substr_count()
mcal_append_event()
mcal_close()
mcal_create_calendar()
mcal_date_compare()
mcal_date_valid()
mcal_day_of_week()
mcal_day_of_year()
mcal_days_in_month()
mcal_delete_calendar()
mcal_delete_event()
mcal_event_add_attribute()
mcal_event_init()
mcal_event_set_alarm()
mcal_event_set_category()
mcal_event_set_class()
mcal_event_set_description()
mcal_event_set_end()
mcal_event_set_recur_daily()
mcal_event_set_recur_monthly_mday()
mcal_event_set_recur_monthly_wday()
mcal_event_set_recur_none()
mcal_event_set_recur_weekly()
mcal_event_set_recur_yearly()
mcal_event_set_start()
mcal_event_set_title()
mcal_expunge()
mcal_fetch_current_stream_event()
mcal_fetch_event()
mcal_is_leap_year()
mcal_list_alarms()
mcal_list_events()
mcal_next_recurrence()
mcal_open()
mcal_popen()
mcal_rename_calendar()
mcal_reopen()
mcal_snooze()
mcal_store_event()
mcal_time_valid()
mcal_week_of_year()
mcrypt_cbc()
mcrypt_cfb()
mcrypt_create_iv()
mcrypt_decrypt()
mcrypt_ecb()
mcrypt_enc_get_algorithms_name()
mcrypt_enc_get_block_size()
mcrypt_enc_get_iv_size()
mcrypt_enc_get_key_size()
mcrypt_enc_get_modes_name()
mcrypt_enc_get_supported_key_sizes()
mcrypt_enc_is_block_algorithm()
mcrypt_enc_is_block_algorithm_mode()
mcrypt_enc_is_block_mode()
mcrypt_enc_self_test()
mcrypt_encrypt()
mcrypt_generic()
mcrypt_generic_deinit()
mcrypt_generic_end()
mcrypt_generic_init()
mcrypt_get_block_size()
mcrypt_get_cipher_name()
mcrypt_get_iv_size()
mcrypt_get_key_size()
mcrypt_list_algorithms()
mcrypt_list_modes()
mcrypt_module_close()
mcrypt_module_get_algo_block_size()
mcrypt_module_get_algo_key_size()
mcrypt_module_get_supported_key_sizes()
mcrypt_module_is_block_algorithm()
mcrypt_module_is_block_algorithm_mode()
mcrypt_module_is_block_mode()
mcrypt_module_open()
mcrypt_module_self_test()
mcrypt_ofb()
md5()
md5_file()
mdb_close()
mdb_fetch_assoc()
mdb_fetch_row()
mdb_num_fields()
mdb_num_rows()
mdb_open()
mdb_rewind()
mdb_table_close()
mdb_table_fields()
mdb_table_indexes()
mdb_table_open()
mdb_tables()
mdb_type_name()
mdb_version()
mdecrypt_generic()
mem_block_check()
Memcache::add()
Memcache::addServer()
Memcache::close()
Memcache::connect()
Memcache::decrement()
Memcache::delete()
Memcache::flush()
Memcache::get()
Memcache::getExtendedStats()
Memcache::getServerStatus()
Memcache::getStats()
Memcache::getVersion()
Memcache::increment()
Memcache::pconnect()
Memcache::replace()
Memcache::set()
Memcache::setCompressThreshold()
Memcache::setServerParams()
memcache_debug()
memory_get_peak_usage()
memory_get_usage()
metaphone()
method_exists()
mhash()
mhash_count()
mhash_get_block_size()
mhash_get_hash_name()
mhash_keygen_s2k()
microtime()
mime_content_type()
min()
ming_keypress()
ming_setcubicthreshold()
ming_setscale()
ming_setswfcompression()
ming_useconstants()
ming_useswfversion()
mkdir()
mktime()
money_format()
move_uploaded_file()
msession_connect()
msession_count()
msession_create()
msession_destroy()
msession_disconnect()
msession_find()
msession_get()
msession_get_array()
msession_get_data()
msession_inc()
msession_list()
msession_listvar()
msession_lock()
msession_plugin()
msession_randstr()
msession_set()
msession_set_array()
msession_set_data()
msession_timeout()
msession_uniq()
msession_unlock()
msg_get_queue()
msg_receive()
msg_remove_queue()
msg_send()
msg_set_queue()
msg_stat_queue()
msql()
msql_affected_rows()
msql_close()
msql_connect()
msql_create_db()
msql_createdb()
msql_data_seek()
msql_db_query()
msql_dbname()
msql_drop_db()
msql_error()
msql_fetch_array()
msql_fetch_field()
msql_fetch_object()
msql_fetch_row()
msql_field_flags()
msql_field_len()
msql_field_name()
msql_field_seek()
msql_field_table()
msql_field_type()
msql_fieldflags()
msql_fieldlen()
msql_fieldname()
msql_fieldtable()
msql_fieldtype()
msql_free_result()
msql_list_dbs()
msql_list_fields()
msql_list_tables()
msql_num_fields()
msql_num_rows()
msql_numfields()
msql_numrows()
msql_pconnect()
msql_query()
msql_regcase()
msql_result()
msql_select_db()
msql_tablename()
mssql_bind()
mssql_close()
mssql_connect()
mssql_data_seek()
mssql_execute()
mssql_fetch_array()
mssql_fetch_assoc()
mssql_fetch_batch()
mssql_fetch_field()
mssql_fetch_object()
mssql_fetch_row()
mssql_field_length()
mssql_field_name()
mssql_field_seek()
mssql_field_type()
mssql_free_result()
mssql_free_statement()
mssql_get_last_message()
mssql_guid_string()
mssql_init()
mssql_min_error_severity()
mssql_min_message_severity()
mssql_next_result()
mssql_num_fields()
mssql_num_rows()
mssql_pconnect()
mssql_query()
mssql_result()
mssql_rows_affected()
mssql_select_db()
mt_getrandmax()
mt_rand()
mt_srand()
muscat_close()
muscat_get()
muscat_give()
muscat_setup()
muscat_setup_net()
mysql_affected_rows()
mysql_change_user()
mysql_client_encoding()
mysql_close()
mysql_connect()
mysql_create_db()
mysql_data_seek()
mysql_db_name()
mysql_db_query()
mysql_drop_db()
mysql_errno()
mysql_error()
mysql_escape_string()
mysql_fetch_array()
mysql_fetch_assoc()
mysql_fetch_field()
mysql_fetch_lengths()
mysql_fetch_object()
mysql_fetch_row()
mysql_field_flags()
mysql_field_len()
mysql_field_name()
mysql_field_seek()
mysql_field_table()
mysql_field_type()
mysql_free_result()
mysql_get_client_info()
mysql_get_host_info()
mysql_get_proto_info()
mysql_get_server_info()
mysql_info()
mysql_insert_id()
mysql_list_dbs()
mysql_list_fields()
mysql_list_processes()
mysql_list_tables()
mysql_num_fields()
mysql_num_rows()
mysql_pconnect()
mysql_ping()
mysql_query()
mysql_real_escape_string()
mysql_result()
mysql_select_db()
mysql_stat()
mysql_tablename()
mysql_thread_id()
mysql_unbuffered_query()
mysqli->__construct()()
mysqli->affected_rows()
mysqli->autocommit()()
mysqli->change_user()()
mysqli->character_set_name()()
mysqli->close()()
mysqli->commit()()
mysqli->debug()()
mysqli->disable_reads_from_master()()
mysqli->dump_debug_info()()
mysqli->errno()
mysqli->fetch_assoc()()
mysqli->field_count()()
mysqli->host_info()
mysqli->info()
mysqli->insert_id()
mysqli->kill()()
mysqli->more_results()
mysqli->multi_query()()
mysqli->next_result()()
mysqli->options()()
mysqli->ping()()
mysqli->prepare()()
mysqli->protocol_version()
mysqli->query()()
mysqli->real_connect()()
mysqli->real_escape_string()()
mysqli->real_query()()
mysqli->rollback()()
mysqli->rpl_query_type()()
mysqli->select_db()()
mysqli->send_query()()
mysqli->server_info()
mysqli->server_version()
mysqli->set_charset()
mysqli->sqlstate()
mysqli->ssl_set()()
mysqli->stat()()
mysqli->stmt_init()()
mysqli->store_result()()
mysqli->thread_id()
mysqli->use_result()()
mysqli->warning_count()
mysqli_affected_rows()
mysqli_autocommit()
mysqli_bind_param()
mysqli_bind_result()
mysqli_change_user()
mysqli_character_set_name()
mysqli_client_encoding()
mysqli_close()
mysqli_commit()
mysqli_connect()
mysqli_connect_errno()
mysqli_connect_error()
mysqli_data_seek()
mysqli_debug()
mysqli_disable_reads_from_master()
mysqli_disable_rpl_parse()
mysqli_dump_debug_info()
mysqli_embedded_server_end()
mysqli_embedded_server_start()
mysqli_enable_reads_from_master()
mysqli_enable_rpl_parse()
mysqli_errno()
mysqli_error()
mysqli_escape_string()
mysqli_execute()
mysqli_fetch()
mysqli_fetch_array()
mysqli_fetch_assoc()
mysqli_fetch_field()
mysqli_fetch_field_direct()
mysqli_fetch_fields()
mysqli_fetch_lengths()
mysqli_fetch_object()
mysqli_fetch_row()
mysqli_field_count()
mysqli_field_seek()
mysqli_field_tell()
mysqli_free_result()
mysqli_get_charset()
mysqli_get_client_info()
mysqli_get_client_version()
mysqli_get_host_info()
mysqli_get_metadata()
mysqli_get_proto_info()
mysqli_get_server_info()
mysqli_get_server_version()
mysqli_get_warnings()
mysqli_info()
mysqli_init()
mysqli_insert_id()
mysqli_kill()
mysqli_master_query()
mysqli_more_results()
mysqli_multi_query()
mysqli_next_result()
mysqli_num_fields()
mysqli_num_rows()
mysqli_options()
mysqli_param_count()
mysqli_ping()
mysqli_prepare()
mysqli_query()
mysqli_real_connect()
mysqli_real_escape_string()
mysqli_real_query()
mysqli_report()
mysqli_rollback()
mysqli_rpl_parse_enabled()
mysqli_rpl_probe()
mysqli_rpl_query_type()
mysqli_select_db()
mysqli_send_long_data()
mysqli_send_query()
mysqli_server_end()
mysqli_server_init()
mysqli_set_charset()
mysqli_set_local_infile_default()
mysqli_set_local_infile_handler()
mysqli_set_opt()
mysqli_slave_query()
mysqli_sqlstate()
mysqli_ssl_set()
mysqli_stat()
mysqli_stmt->affected_rows()
mysqli_stmt->close()()
mysqli_stmt->errno()
mysqli_stmt->error()
mysqli_stmt->sqlstate()()
mysqli_stmt->store_result()()
mysqli_stmt_affected_rows()
mysqli_stmt_attr_get()
mysqli_stmt_attr_set()
mysqli_stmt_bind_param()
mysqli_stmt_bind_result()
mysqli_stmt_close()
mysqli_stmt_data_seek()
mysqli_stmt_errno()
mysqli_stmt_error()
mysqli_stmt_execute()
mysqli_stmt_fetch()
mysqli_stmt_field_count()
mysqli_stmt_free_result()
mysqli_stmt_get_warnings()
mysqli_stmt_init()
mysqli_stmt_insert_id()
mysqli_stmt_num_rows()
mysqli_stmt_param_count()
mysqli_stmt_prepare()
mysqli_stmt_reset()
mysqli_stmt_result_metadata()
mysqli_stmt_send_long_data()
mysqli_stmt_sqlstate()
mysqli_stmt_store_result()
mysqli_store_result()
mysqli_thread_id()
mysqli_thread_safe()
mysqli_use_result()
mysqli_warning_count()

N

natcasesort()
natsort()
ncurses_addch()
ncurses_addchnstr()
ncurses_addchstr()
ncurses_addnstr()
ncurses_addstr()
ncurses_assume_default_colors()
ncurses_attroff()
ncurses_attron()
ncurses_attrset()
ncurses_baudrate()
ncurses_beep()
ncurses_bkgd()
ncurses_bkgdset()
ncurses_border()
ncurses_bottom_panel()
ncurses_can_change_color()
ncurses_cbreak()
ncurses_clear()
ncurses_clrtobot()
ncurses_clrtoeol()
ncurses_color_content()
ncurses_color_set()
ncurses_curs_set()
ncurses_def_prog_mode()
ncurses_def_shell_mode()
ncurses_define_key()
ncurses_del_panel()
ncurses_delay_output()
ncurses_delch()
ncurses_deleteln()
ncurses_delwin()
ncurses_doupdate()
ncurses_echo()
ncurses_echochar()
ncurses_end()
ncurses_erase()
ncurses_erasechar()
ncurses_filter()
ncurses_flash()
ncurses_flushinp()
ncurses_getch()
ncurses_getmaxyx()
ncurses_getmouse()
ncurses_getyx()
ncurses_halfdelay()
ncurses_has_colors()
ncurses_has_ic()
ncurses_has_il()
ncurses_has_key()
ncurses_hide_panel()
ncurses_hline()
ncurses_inch()
ncurses_init()
ncurses_init_color()
ncurses_init_pair()
ncurses_insch()
ncurses_insdelln()
ncurses_insertln()
ncurses_insstr()
ncurses_instr()
ncurses_isendwin()
ncurses_keyok()
ncurses_keypad()
ncurses_killchar()
ncurses_longname()
ncurses_meta()
ncurses_mouse_trafo()
ncurses_mouseinterval()
ncurses_mousemask()
ncurses_move()
ncurses_move_panel()
ncurses_mvaddch()
ncurses_mvaddchnstr()
ncurses_mvaddchstr()
ncurses_mvaddnstr()
ncurses_mvaddstr()
ncurses_mvcur()
ncurses_mvdelch()
ncurses_mvgetch()
ncurses_mvhline()
ncurses_mvinch()
ncurses_mvvline()
ncurses_mvwaddstr()
ncurses_napms()
ncurses_new_panel()
ncurses_newpad()
ncurses_newwin()
ncurses_nl()
ncurses_nocbreak()
ncurses_noecho()
ncurses_nonl()
ncurses_noqiflush()
ncurses_noraw()
ncurses_pair_content()
ncurses_panel_above()
ncurses_panel_below()
ncurses_panel_window()
ncurses_pnoutrefresh()
ncurses_prefresh()
ncurses_putp()
ncurses_qiflush()
ncurses_raw()
ncurses_refresh()
ncurses_replace_panel()
ncurses_reset_prog_mode()
ncurses_reset_shell_mode()
ncurses_resetty()
ncurses_savetty()
ncurses_scr_dump()
ncurses_scr_init()
ncurses_scr_restore()
ncurses_scr_set()
ncurses_scrl()
ncurses_show_panel()
ncurses_slk_attr()
ncurses_slk_attroff()
ncurses_slk_attron()
ncurses_slk_attrset()
ncurses_slk_clear()
ncurses_slk_color()
ncurses_slk_init()
ncurses_slk_noutrefresh()
ncurses_slk_refresh()
ncurses_slk_restore()
ncurses_slk_set()
ncurses_slk_touch()
ncurses_standend()
ncurses_standout()
ncurses_start_color()
ncurses_termattrs()
ncurses_termname()
ncurses_timeout()
ncurses_top_panel()
ncurses_typeahead()
ncurses_ungetch()
ncurses_ungetmouse()
ncurses_update_panels()
ncurses_use_default_colors()
ncurses_use_env()
ncurses_use_extended_names()
ncurses_vidattr()
ncurses_vline()
ncurses_waddch()
ncurses_waddstr()
ncurses_wattroff()
ncurses_wattron()
ncurses_wattrset()
ncurses_wborder()
ncurses_wclear()
ncurses_wcolor_set()
ncurses_werase()
ncurses_wgetch()
ncurses_whline()
ncurses_wmouse_trafo()
ncurses_wmove()
ncurses_wnoutrefresh()
ncurses_wrefresh()
ncurses_wstandend()
ncurses_wstandout()
ncurses_wvline()
newt_bell()
newt_button()
newt_button_bar()
newt_centered_window()
newt_checkbox()
newt_checkbox_get_value()
newt_checkbox_set_flags()
newt_checkbox_set_value()
newt_checkbox_tree()
newt_checkbox_tree_add_item()
newt_checkbox_tree_find_item()
newt_checkbox_tree_get_current()
newt_checkbox_tree_get_entry_value()
newt_checkbox_tree_get_multi_selection()
newt_checkbox_tree_get_selection()
newt_checkbox_tree_multi()
newt_checkbox_tree_set_current()
newt_checkbox_tree_set_entry()
newt_checkbox_tree_set_entry_value()
newt_checkbox_tree_set_width()
newt_clear_key_buffer()
newt_cls()
newt_compact_button()
newt_component_add_callback()
newt_component_takes_focus()
newt_create_grid()
newt_cursor_off()
newt_cursor_on()
newt_delay()
newt_draw_form()
newt_draw_root_text()
newt_entry()
newt_entry_get_value()
newt_entry_set()
newt_entry_set_filter()
newt_entry_set_flags()
newt_finished()
newt_form()
newt_form_add_component()
newt_form_add_components()
newt_form_add_hot_key()
newt_form_destroy()
newt_form_get_current()
newt_form_run()
newt_form_set_background()
newt_form_set_height()
newt_form_set_size()
newt_form_set_timer()
newt_form_set_width()
newt_form_watch_fd()
newt_get_screen_size()
newt_grid_add_components_to_form()
newt_grid_basic_window()
newt_grid_free()
newt_grid_get_size()
newt_grid_h_close_stacked()
newt_grid_h_stacked()
newt_grid_place()
newt_grid_set_field()
newt_grid_simple_window()
newt_grid_v_close_stacked()
newt_grid_v_stacked()
newt_grid_wrapped_window()
newt_grid_wrapped_window_at()
newt_init()
newt_label()
newt_label_set_text()
newt_listbox()
newt_listbox_append_entry()
newt_listbox_clear()
newt_listbox_clear_selection()
newt_listbox_delete_entry()
newt_listbox_get_current()
newt_listbox_get_selection()
newt_listbox_insert_entry()
newt_listbox_item_count()
newt_listbox_select_item()
newt_listbox_set_current()
newt_listbox_set_current_by_key()
newt_listbox_set_data()
newt_listbox_set_entry()
newt_listbox_set_width()
newt_listitem()
newt_listitem_get_data()
newt_listitem_set()
newt_open_window()
newt_pop_help_line()
newt_pop_window()
newt_push_help_line()
newt_radio_get_current()
newt_radiobutton()
newt_redraw_help_line()
newt_reflow_text()
newt_refresh()
newt_resize_screen()
newt_resume()
newt_run_form()
newt_scale()
newt_scale_set()
newt_scrollbar_set()
newt_set_help_callback()
newt_set_suspend_callback()
newt_suspend()
newt_textbox()
newt_textbox_get_num_lines()
newt_textbox_reflowed()
newt_textbox_set_height()
newt_textbox_set_text()
newt_vertical_scrollbar()
newt_wait_for_key()
newt_win_choice()
newt_win_entries()
newt_win_menu()
newt_win_message()
newt_win_messagev()
newt_win_ternary()
next()
ngettext()
nl2br()
nl_langinfo()
notes_body()
notes_copy_db()
notes_create_db()
notes_create_note()
notes_drop_db()
notes_find_note()
notes_header_info()
notes_list_msgs()
notes_mark_read()
notes_mark_unread()
notes_nav_create()
notes_search()
notes_unread()
notes_version()
nsapi_request_headers()
nsapi_response_headers()
nsapi_virtual()
number_format()

O

ob_clean()
ob_deflatehandler()
ob_end_clean()
ob_end_flush()
ob_etaghandler()
ob_flush()
ob_get_clean()
ob_get_contents()
ob_get_flush()
ob_get_length()
ob_get_level()
ob_get_status()
ob_gzhandler()
ob_iconv_handler()
ob_implicit_flush()
ob_inflatehandler()
ob_list_handlers()
ob_start()
ob_tidyhandler()
object_and_properties_init()
object_init()
object_init_ex()
OCI-Collection->append()
OCI-Collection->assign()
OCI-Collection->assignElem()
OCI-Collection->free()
OCI-Collection->getElem()
OCI-Collection->max()
OCI-Collection->size()
OCI-Collection->trim()
OCI-Lob->append()
OCI-Lob->close()
OCI-Lob->eof()
OCI-Lob->erase()
OCI-Lob->export()
OCI-Lob->flush()
OCI-Lob->free()
OCI-Lob->getBuffering()
OCI-Lob->import()
OCI-Lob->load()
OCI-Lob->read()
OCI-Lob->rewind()
OCI-Lob->save()
OCI-Lob->saveFile()
OCI-Lob->seek()
OCI-Lob->setBuffering()
OCI-Lob->size()
OCI-Lob->tell()
OCI-Lob->truncate()
OCI-Lob->write()
OCI-Lob->writeTemporary()
OCI-Lob->writeToFile()
oci_bind_array_by_name()
oci_bind_by_name()
oci_cancel()
oci_close()
oci_commit()
oci_connect()
oci_define_by_name()
oci_error()
oci_execute()
oci_fetch()
oci_fetch_all()
oci_fetch_array()
oci_fetch_assoc()
oci_fetch_object()
oci_fetch_row()
oci_field_is_null()
oci_field_name()
oci_field_precision()
oci_field_scale()
oci_field_size()
oci_field_type()
oci_field_type_raw()
oci_free_statement()
oci_internal_debug()
oci_lob_copy()
oci_lob_is_equal()
oci_new_collection()
oci_new_connect()
oci_new_cursor()
oci_new_descriptor()
oci_num_fields()
oci_num_rows()
oci_parse()
oci_password_change()
oci_pconnect()
oci_result()
oci_rollback()
oci_server_version()
oci_set_prefetch()
oci_statement_type()
ocibindbyname()
ocicancel()
ocicloselob()
ocicollappend()
ocicollassign()
ocicollassignelem()
ocicollgetelem()
ocicollmax()
ocicollsize()
ocicolltrim()
ocicolumnisnull()
ocicolumnname()
ocicolumnprecision()
ocicolumnscale()
ocicolumnsize()
ocicolumntype()
ocicolumntyperaw()
ocicommit()
ocidefinebyname()
ocierror()
ociexecute()
ocifetch()
ocifetchinto()
ocifetchstatement()
ocifreecollection()
ocifreecursor()
ocifreedesc()
ocifreestatement()
ociinternaldebug()
ociloadlob()
ocilogoff()
ocilogon()
ocinewcollection()
ocinewcursor()
ocinewdescriptor()
ocinlogon()
ocinumcols()
ociparse()
ociplogon()
ociresult()
ocirollback()
ocirowcount()
ocisavelob()
ocisavelobfile()
ociserverversion()
ocisetprefetch()
ocistatementtype()
ociwritelobtofile()
ociwritetemporarylob()
octdec()
odbc_autocommit()
odbc_binmode()
odbc_close()
odbc_close_all()
odbc_columnprivileges()
odbc_columns()
odbc_commit()
odbc_connect()
odbc_cursor()
odbc_data_source()
odbc_do()
odbc_error()
odbc_errormsg()
odbc_exec()
odbc_execute()
odbc_fetch_array()
odbc_fetch_into()
odbc_fetch_object()
odbc_fetch_row()
odbc_field_len()
odbc_field_name()
odbc_field_num()
odbc_field_precision()
odbc_field_scale()
odbc_field_type()
odbc_foreignkeys()
odbc_free_result()
odbc_gettypeinfo()
odbc_longreadlen()
odbc_next_result()
odbc_num_fields()
odbc_num_rows()
odbc_pconnect()
odbc_prepare()
odbc_primarykeys()
odbc_procedurecolumns()
odbc_procedures()
odbc_result()
odbc_result_all()
odbc_rollback()
odbc_setoption()
odbc_specialcolumns()
odbc_statistics()
odbc_tableprivileges()
odbc_tables()
open_file_for_scanning()
openal_buffer_create()
openal_buffer_data()
openal_buffer_destroy()
openal_buffer_get()
openal_buffer_loadwav()
openal_context_create()
openal_context_current()
openal_context_destroy()
openal_context_process()
openal_context_suspend()
openal_device_close()
openal_device_open()
openal_listener_get()
openal_listener_set()
openal_source_create()
openal_source_destroy()
openal_source_get()
openal_source_pause()
openal_source_play()
openal_source_rewind()
openal_source_set()
openal_source_stop()
openal_stream()
opendir()
openlog()
openssl_csr_export()
openssl_csr_export_to_file()
openssl_csr_get_public_key()
openssl_csr_get_subject()
openssl_csr_new()
openssl_csr_sign()
openssl_error_string()
openssl_free_key()
openssl_get_privatekey()
openssl_get_publickey()
openssl_open()
openssl_pkcs7_decrypt()
openssl_pkcs7_encrypt()
openssl_pkcs7_sign()
openssl_pkcs7_verify()
openssl_pkey_export()
openssl_pkey_export_to_file()
openssl_pkey_free()
openssl_pkey_get_details()
openssl_pkey_get_private()
openssl_pkey_get_public()
openssl_pkey_new()
openssl_private_decrypt()
openssl_private_encrypt()
openssl_public_decrypt()
openssl_public_encrypt()
openssl_seal()
openssl_sign()
openssl_verify()
openssl_x509_check_private_key()
openssl_x509_checkpurpose()
openssl_x509_export()
openssl_x509_export_to_file()
openssl_x509_free()
openssl_x509_parse()
openssl_x509_read()
ora_bind()
ora_close()
ora_columnname()
ora_columnsize()
ora_columntype()
ora_commit()
ora_commitoff()
ora_commiton()
ora_do()
ora_error()
ora_errorcode()
ora_exec()
ora_fetch()
ora_fetch_into()
ora_getcolumn()
ora_logoff()
ora_logon()
ora_numcols()
ora_numrows()
ora_open()
ora_parse()
ora_plogon()
ora_rollback()
orbitenum()
orbitobject()
orbitstruct()
ord()
output_add_rewrite_var()
output_reset_rewrite_vars()
overload()
override_function()
ovrimos_close()
ovrimos_commit()
ovrimos_connect()
ovrimos_cursor()
ovrimos_exec()
ovrimos_execute()
ovrimos_fetch_into()
ovrimos_fetch_row()
ovrimos_field_len()
ovrimos_field_name()
ovrimos_field_num()
ovrimos_field_type()
ovrimos_free_result()
ovrimos_longreadlen()
ovrimos_num_fields()
ovrimos_num_rows()
ovrimos_prepare()
ovrimos_result()
ovrimos_result_all()
ovrimos_rollback()

P

pack()
ParentIterator::getChildren()
ParentIterator::hasChildren()
ParentIterator::next()
ParentIterator::rewind()
parse_ini_file()
parse_str()
parse_url()
parsekit_compile_file()
parsekit_compile_string()
parsekit_func_arginfo()
passthru()
pathinfo()
pclose()
pcntl_alarm()
pcntl_exec()
pcntl_fork()
pcntl_getpriority()
pcntl_setpriority()
pcntl_signal()
pcntl_wait()
pcntl_waitpid()
pcntl_wexitstatus()
pcntl_wifexited()
pcntl_wifsignaled()
pcntl_wifstopped()
pcntl_wstopsig()
pcntl_wtermsig()
pdf_activate_item()
pdf_add_annotation()
pdf_add_bookmark()
pdf_add_launchlink()
pdf_add_locallink()
pdf_add_nameddest()
pdf_add_note()
pdf_add_outline()
pdf_add_pdflink()
pdf_add_thumbnail()
pdf_add_weblink()
pdf_arc()
pdf_arcn()
pdf_attach_file()
pdf_begin_document()
pdf_begin_font()
pdf_begin_glyph()
pdf_begin_item()
pdf_begin_layer()
pdf_begin_page()
pdf_begin_page_ext()
pdf_begin_pattern()
pdf_begin_template()
pdf_circle()
pdf_clip()
pdf_close()
pdf_close_image()
pdf_close_pdi()
pdf_close_pdi_page()
pdf_closepath()
pdf_closepath_fill_stroke()
pdf_closepath_stroke()
pdf_concat()
pdf_continue_text()
pdf_create_action()
pdf_create_annotation()
pdf_create_bookmark()
pdf_create_field()
pdf_create_fieldgroup()
pdf_create_gstate()
pdf_create_pvf()
pdf_create_textflow()
pdf_curveto()
pdf_define_layer()
pdf_delete()
pdf_delete_pvf()
pdf_delete_textflow()
pdf_encoding_set_char()
pdf_end_document()
pdf_end_font()
pdf_end_glyph()
pdf_end_item()
pdf_end_layer()
pdf_end_page()
pdf_end_page_ext()
pdf_end_pattern()
pdf_end_template()
pdf_endpath()
pdf_fill()
pdf_fill_imageblock()
pdf_fill_pdfblock()
pdf_fill_stroke()
pdf_fill_textblock()
pdf_findfont()
pdf_fit_image()
pdf_fit_pdi_page()
pdf_fit_textflow()
pdf_fit_textline()
pdf_get_apiname()
pdf_get_buffer()
pdf_get_errmsg()
pdf_get_errnum()
pdf_get_font()
pdf_get_fontname()
pdf_get_fontsize()
pdf_get_image_height()
pdf_get_image_width()
pdf_get_majorversion()
pdf_get_minorversion()
pdf_get_parameter()
pdf_get_pdi_parameter()
pdf_get_pdi_value()
pdf_get_value()
pdf_info_textflow()
pdf_initgraphics()
pdf_lineto()
pdf_load_font()
pdf_load_iccprofile()
pdf_load_image()
pdf_makespotcolor()
pdf_moveto()
pdf_new()
pdf_open_ccitt()
pdf_open_file()
pdf_open_gif()
pdf_open_image()
pdf_open_image_file()
pdf_open_jpeg()
pdf_open_memory_image()
pdf_open_pdi()
pdf_open_pdi_page()
pdf_open_tiff()
pdf_place_image()
pdf_place_pdi_page()
pdf_process_pdi()
pdf_rect()
pdf_restore()
pdf_resume_page()
pdf_rotate()
pdf_save()
pdf_scale()
pdf_set_border_color()
pdf_set_border_dash()
pdf_set_border_style()
pdf_set_char_spacing()
pdf_set_duration()
pdf_set_gstate()
pdf_set_horiz_scaling()
pdf_set_info()
pdf_set_info_author()
pdf_set_info_creator()
pdf_set_info_keywords()
pdf_set_info_subject()
pdf_set_info_title()
pdf_set_layer_dependency()
pdf_set_leading()
pdf_set_parameter()
pdf_set_text_matrix()
pdf_set_text_pos()
pdf_set_text_rendering()
pdf_set_text_rise()
pdf_set_value()
pdf_set_word_spacing()
pdf_setcolor()
pdf_setdash()
pdf_setdashpattern()
pdf_setflat()
pdf_setfont()
pdf_setgray()
pdf_setgray_fill()
pdf_setgray_stroke()
pdf_setlinecap()
pdf_setlinejoin()
pdf_setlinewidth()
pdf_setmatrix()
pdf_setmiterlimit()
pdf_setpolydash()
pdf_setrgbcolor()
pdf_setrgbcolor_fill()
pdf_setrgbcolor_stroke()
pdf_shading()
pdf_shading_pattern()
pdf_shfill()
pdf_show()
pdf_show_boxed()
pdf_show_xy()
pdf_skew()
pdf_stringwidth()
pdf_stroke()
pdf_suspend_page()
pdf_translate()
pdf_utf16_to_utf8()
pdf_utf8_to_utf16()
PDO->__construct()()
PDO->beginTransaction()()
PDO->commit()()
PDO->errorCode()()
PDO->errorInfo()()
PDO->exec()()
PDO->getAttribute()()
PDO->getAvailableDrivers()()
PDO->lastInsertId()()
PDO->prepare()()
PDO->query()()
PDO->quote()()
PDO->rollBack()()
PDO->setAttribute()()
PDO->sqliteCreateAggregate()()
PDO->sqliteCreateFunction()()
PDO::pgsqlLOBCreate()
PDO::pgsqlLOBOpen()
PDO::pgsqlLOBUnlink()
PDOStatement->bindColumn()()
PDOStatement->bindParam()()
PDOStatement->bindValue()()
PDOStatement->closeCursor()()
PDOStatement->columnCount()()
PDOStatement->errorCode()()
PDOStatement->errorInfo()()
PDOStatement->execute()()
PDOStatement->fetch()()
PDOStatement->fetchAll()()
PDOStatement->fetchColumn()()
PDOStatement->fetchObject()()
PDOStatement->getAttribute()()
PDOStatement->getColumnMeta()()
PDOStatement->nextRowset()()
PDOStatement->rowCount()()
PDOStatement->setAttribute()()
PDOStatement->setFetchMode()()
pfpro_cleanup()
pfpro_init()
pfpro_process()
pfpro_process_raw()
pfpro_version()
pfsockopen()
pg_affected_rows()
pg_cancel_query()
pg_client_encoding()
pg_close()
pg_connect()
pg_connection_busy()
pg_connection_reset()
pg_connection_status()
pg_convert()
pg_copy_from()
pg_copy_to()
pg_dbname()
pg_delete()
pg_end_copy()
pg_escape_bytea()
pg_escape_string()
pg_execute()
pg_fetch_all()
pg_fetch_all_columns()
pg_fetch_array()
pg_fetch_assoc()
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_table()
pg_field_type()
pg_field_type_oid()
pg_free_result()
pg_get_notify()
pg_get_pid()
pg_get_result()
pg_host()
pg_insert()
pg_last_error()
pg_last_notice()
pg_last_oid()
pg_lo_close()
pg_lo_create()
pg_lo_export()
pg_lo_import()
pg_lo_open()
pg_lo_read()
pg_lo_read_all()
pg_lo_seek()
pg_lo_tell()
pg_lo_unlink()
pg_lo_write()
pg_meta_data()
pg_num_fields()
pg_num_rows()
pg_options()
pg_parameter_status()
pg_pconnect()
pg_ping()
pg_port()
pg_prepare()
pg_put_line()
pg_query()
pg_query_params()
pg_result_error()
pg_result_error_field()
pg_result_seek()
pg_result_status()
pg_select()
pg_send_execute()
pg_send_prepare()
pg_send_query()
pg_send_query_params()
pg_set_client_encoding()
pg_set_error_verbosity()
pg_trace()
pg_transaction_status()
pg_tty()
pg_unescape_bytea()
pg_untrace()
pg_update()
pg_version()
Phar->begin()
Phar->commit()
Phar->compressAllFilesBZIP2()
Phar->compressAllFilesGZ()
Phar->count()
Phar->getMetaData()
Phar->getModified()
Phar->getSignature()
Phar->getStub()
Phar->getVersion()
Phar->isFlushingToPhar()
Phar->setMetaData()
Phar->setStub()
Phar->uncompressAllFiles()
Phar::__construct()
Phar::apiVersion()
Phar::canCompress()
Phar::canWrite()
Phar::loadPhar()
Phar::mapPhar()
Phar::offsetExists()
Phar::offsetGet()
Phar::offsetSet()
Phar::offsetUnset()
PharFileInfo->chmod()
PharFileInfo->getCompressedSize()
PharFileInfo->getCRC32()
PharFileInfo->getMetaData()
PharFileInfo->getPharFlags()
PharFileInfo->isCompressed()
PharFileInfo->isCompressedBZIP2()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCRCChecked()
PharFileInfo->setCompressedBZIP2()
PharFileInfo->setCompressedGZ()
PharFileInfo->setMetaData()
PharFileInfo->setUncompressed()
PharFileInfo::__construct()
php_check_syntax()
php_ini_scanned_files()
php_logo_guid()
php_register_url_stream_wrapper()
php_sapi_name()
php_stream_can_cast()
php_stream_cast()
php_stream_close()
php_stream_closedir()
php_stream_copy_to_mem()
php_stream_copy_to_stream()
php_stream_eof()
php_stream_filter_register_factory()
php_stream_filter_unregister_factory()
php_stream_flush()
php_stream_fopen_from_file()
php_stream_fopen_temporary_file()
php_stream_fopen_tmpfile()
php_stream_getc()
php_stream_gets()
php_stream_is()
php_stream_is_persistent()
php_stream_make_seekable()
php_stream_open_wrapper()
php_stream_open_wrapper_as_file()
php_stream_open_wrapper_ex()
php_stream_opendir()
php_stream_passthru()
php_stream_read()
php_stream_readdir()
php_stream_rewinddir()
php_stream_seek()
php_stream_sock_open_from_socket()
php_stream_sock_open_host()
php_stream_sock_open_unix()
php_stream_stat()
php_stream_stat_path()
php_stream_tell()
php_stream_write()
php_strip_whitespace()
php_uname()
php_unregister_url_stream_wrapper()
phpcredits()
phpinfo()
phpversion()
pi()
png2wbmp()
popen()
pos()
posix_access()
posix_ctermid()
posix_get_last_error()
posix_getcwd()
posix_getegid()
posix_geteuid()
posix_getgid()
posix_getgrgid()
posix_getgrnam()
posix_getgroups()
posix_getlogin()
posix_getpgid()
posix_getpgrp()
posix_getpid()
posix_getppid()
posix_getpwnam()
posix_getpwuid()
posix_getrlimit()
posix_getsid()
posix_getuid()
posix_isatty()
posix_kill()
posix_mkfifo()
posix_mknod()
posix_setegid()
posix_seteuid()
posix_setgid()
posix_setpgid()
posix_setsid()
posix_setuid()
posix_strerror()
posix_times()
posix_ttyname()
posix_uname()
pow()
preg_grep()
preg_last_error()
preg_match()
preg_match_all()
preg_quote()
preg_replace()
preg_replace_callback()
preg_split()
prev()
print()
print_r()
printer_abort()
printer_close()
printer_create_brush()
printer_create_dc()
printer_create_font()
printer_create_pen()
printer_delete_brush()
printer_delete_dc()
printer_delete_font()
printer_delete_pen()
printer_draw_bmp()
printer_draw_chord()
printer_draw_elipse()
printer_draw_line()
printer_draw_pie()
printer_draw_rectangle()
printer_draw_roundrect()
printer_draw_text()
printer_end_doc()
printer_end_page()
printer_get_option()
printer_list()
printer_logical_fontheight()
printer_open()
printer_select_brush()
printer_select_font()
printer_select_pen()
printer_set_option()
printer_start_doc()
printer_start_page()
printer_write()
printf()
proc_close()
proc_get_status()
proc_nice()
proc_open()
proc_terminate()
property_exists()
ps_add_bookmark()
ps_add_launchlink()
ps_add_locallink()
ps_add_note()
ps_add_pdflink()
ps_add_weblink()
ps_arc()
ps_arcn()
ps_begin_page()
ps_begin_pattern()
ps_begin_template()
ps_circle()
ps_clip()
ps_close()
ps_close_image()
ps_closepath()
ps_closepath_stroke()
ps_continue_text()
ps_curveto()
ps_delete()
ps_end_page()
ps_end_pattern()
ps_end_template()
ps_fill()
ps_fill_stroke()
ps_findfont()
ps_get_buffer()
ps_get_parameter()
ps_get_value()
ps_hyphenate()
ps_include_file()
ps_lineto()
ps_makespotcolor()
ps_moveto()
ps_new()
ps_open_file()
ps_open_image()
ps_open_image_file()
ps_open_memory_image()
ps_place_image()
ps_rect()
ps_restore()
ps_rotate()
ps_save()
ps_scale()
ps_set_border_color()
ps_set_border_dash()
ps_set_border_style()
ps_set_info()
ps_set_parameter()
ps_set_text_pos()
ps_set_value()
ps_setcolor()
ps_setdash()
ps_setflat()
ps_setfont()
ps_setgray()
ps_setlinecap()
ps_setlinejoin()
ps_setlinewidth()
ps_setmiterlimit()
ps_setoverprintmode()
ps_setpolydash()
ps_shading()
ps_shading_pattern()
ps_shfill()
ps_show()
ps_show2()
ps_show_boxed()
ps_show_xy()
ps_show_xy2()
ps_string_geometry()
ps_stringwidth()
ps_stroke()
ps_symbol()
ps_symbol_name()
ps_symbol_width()
ps_translate()
pspell_add_to_personal()
pspell_add_to_session()
pspell_check()
pspell_clear_session()
pspell_config_create()
pspell_config_data_dir()
pspell_config_dict_dir()
pspell_config_ignore()
pspell_config_mode()
pspell_config_personal()
pspell_config_repl()
pspell_config_runtogether()
pspell_config_save_repl()
pspell_new()
pspell_new_config()
pspell_new_personal()
pspell_save_wordlist()
pspell_store_replacement()
pspell_suggest()
putenv()
px_close()
px_create_fp()
px_date2string()
px_delete()
px_delete_record()
px_get_field()
px_get_info()
px_get_parameter()
px_get_record()
px_get_schema()
px_get_value()
px_insert_record()
px_new()
px_numfields()
px_numrecords()
px_open_fp()
px_put_record()
px_retrieve_record()
px_set_blob_file()
px_set_parameter()
px_set_tablename()
px_set_targetencoding()
px_set_value()
px_timestamp2string()
px_update_record()

Q

qdom_error()
qdom_tree()
quoted_printable_decode()
quotemeta()

R

rad2deg()
radius_acct_open()
radius_add_server()
radius_auth_open()
radius_close()
radius_config()
radius_create_request()
radius_cvt_addr()
radius_cvt_int()
radius_cvt_string()
radius_demangle()
radius_demangle_mppe_key()
radius_get_attr()
radius_get_vendor_attr()
radius_put_addr()
radius_put_attr()
radius_put_int()
radius_put_string()
radius_put_vendor_addr()
radius_put_vendor_attr()
radius_put_vendor_int()
radius_put_vendor_string()
radius_request_authenticator()
radius_send_request()
radius_server_secret()
radius_strerror()
rand()
range()
Rar::extract()
Rar::getAttr()
Rar::getCrc()
Rar::getFileTime()
Rar::getHostOs()
Rar::getMethod()
Rar::getName()
Rar::getPackedSize()
Rar::getUnpackedSize()
Rar::getVersion()
rar_close()
rar_entry_get()
rar_list()
rar_open()
rawurldecode()
rawurlencode()
read_exif_data()
readdir()
readfile()
readgzfile()
readline()
readline_add_history()
readline_callback_handler_install()
readline_callback_handler_remove()
readline_callback_read_char()
readline_clear_history()
readline_completion_function()
readline_info()
readline_list_history()
readline_on_new_line()
readline_read_history()
readline_redisplay()
readline_write_history()
readlink()
realpath()
recode()
recode_file()
recode_string()
RecursiveDirectoryIterator::getChildren()
RecursiveDirectoryIterator::hasChildren()
RecursiveDirectoryIterator::key()
RecursiveDirectoryIterator::next()
RecursiveDirectoryIterator::rewind()
RecursiveIteratorIterator::current()
RecursiveIteratorIterator::getDepth()
RecursiveIteratorIterator::getSubIterator()
RecursiveIteratorIterator::key()
RecursiveIteratorIterator::next()
RecursiveIteratorIterator::rewind()
RecursiveIteratorIterator::valid()
register_double_constant()
register_ini_boolean()
register_ini_displayer()
register_ini_entries()
register_list_destructors()
register_long_constant()
register_main_double_constant()
register_main_long_constant()
register_main_string_constant()
register_main_stringl_constant()
register_shutdown_function()
register_string_constant()
register_stringl_constant()
register_tick_function()
rename()
rename_function()
reset()
resources()
restore_error_handler()
restore_exception_handler()
restore_include_path()
result->current_field()
result->current_field()
result->data_seek()
result->data_seek()()
result->fetch_array()
result->fetch_array()()
result->fetch_field()
result->fetch_field()()
result->fetch_field_direct()
result->fetch_field_direct()()
result->fetch_fields()
result->fetch_fields()()
result->fetch_object()
result->fetch_object()()
result->fetch_row()
result->fetch_row()()
result->field_count()
result->field_count()
result->field_seek()
result->field_seek()()
result->free()
result->free()()
result->lengths()
result->lengths()()
result->num_rows()
return_ascii_string()
return_ascii_stringl()
return_binary()
return_binaryl()
return_bool()
return_double()
return_empty_binary()
return_empty_string()
return_empty_unicode()
return_long()
return_null()
return_resource()
return_rt_string()
return_rt_stringl()
return_string()
return_stringl()
return_text()
return_textl()
return_u_string()
return_u_stringl()
return_unicode()
return_unicodel()
return_zval()
rewind()
rewinddir()
rmdir()
round()
rpm_close()
rpm_get_tag()
rpm_is_valid()
rpm_open()
rpm_version()
rsort()
rtrim()
runkit_class_adopt()
runkit_class_emancipate()
runkit_constant_add()
runkit_constant_redefine()
runkit_constant_remove()
runkit_function_add()
runkit_function_copy()
runkit_function_redefine()
runkit_function_remove()
runkit_function_rename()
runkit_import()
runkit_lint()
runkit_lint_file()
runkit_method_add()
runkit_method_copy()
runkit_method_redefine()
runkit_method_remove()
runkit_method_rename()
runkit_return_value_used()
runkit_sandbox()
runkit_sandbox_output_handler()
runkit_sandbox_parent()
runkit_superglobals()

S

SAMConnection->__construct()()
SAMConnection->commit()()
SAMConnection->connect()()
SAMConnection->disconnect()()
SAMConnection->errno()
SAMConnection->error()
SAMConnection->isConnected()()
SAMConnection->peek()()
SAMConnection->peekAll()()
SAMConnection->receive()()
SAMConnection->remove()()
SAMConnection->rollback()()
SAMConnection->send()()
SAMConnection->subscribe()()
SAMConnection->unsubscribe()()
SAMConnection::setDebug()()
SAMMessage->__construct()()
SAMMessage->body()
SAMMessage->header()
satellite_caught_exception()
satellite_exception_id()
satellite_exception_value()
satellite_get_repository_id()
satellite_load_idl()
satellite_object_to_string()
SCA::createDataObject()
SCA::getService()
SCA_LocalProxy::createDataObject()
SCA_SoapProxy::createDataObject()
scandir()
SDO_DAS_ChangeSummary::beginLogging()
SDO_DAS_ChangeSummary::endLogging()
SDO_DAS_ChangeSummary::getChangedDataObjects()
SDO_DAS_ChangeSummary::getChangeType()
SDO_DAS_ChangeSummary::getOldContainer()
SDO_DAS_ChangeSummary::getOldValues()
SDO_DAS_ChangeSummary::isLogging()
SDO_DAS_DataFactory::addPropertyToType()
SDO_DAS_DataFactory::addType()
SDO_DAS_DataFactory::getDataFactory()
SDO_DAS_DataObject::getChangeSummary()
SDO_DAS_Relational::__construct()
SDO_DAS_Relational::applyChanges()
SDO_DAS_Relational::createRootDataObject()
SDO_DAS_Relational::executePreparedQuery()
SDO_DAS_Relational::executeQuery()
SDO_DAS_Setting::getListIndex()
SDO_DAS_Setting::getPropertyIndex()
SDO_DAS_Setting::getPropertyName()
SDO_DAS_Setting::getValue()
SDO_DAS_Setting::isSet()
SDO_DAS_XML::addTypes()
SDO_DAS_XML::create()
SDO_DAS_XML::createDataObject()
SDO_DAS_XML::createDocument()
SDO_DAS_XML::loadFile()
SDO_DAS_XML::loadString()
SDO_DAS_XML::saveFile()
SDO_DAS_XML::saveString()
SDO_DAS_XML_Document::getRootDataObject()
SDO_DAS_XML_Document::getRootElementName()
SDO_DAS_XML_Document::getRootElementURI()
SDO_DAS_XML_Document::setEncoding()
SDO_DAS_XML_Document::setXMLDeclaration()
SDO_DAS_XML_Document::setXMLVersion()
SDO_DataFactory::create()
SDO_DataObject::clear()
SDO_DataObject::createDataObject()
SDO_DataObject::getContainer()
SDO_DataObject::getSequence()
SDO_DataObject::getTypeName()
SDO_DataObject::getTypeNamespaceURI()
SDO_Exception::getCause()
SDO_List::insert()
SDO_Model_Property::getContainingType()
SDO_Model_Property::getDefault()
SDO_Model_Property::getName()
SDO_Model_Property::getType()
SDO_Model_Property::isContainment()
SDO_Model_Property::isMany()
SDO_Model_ReflectionDataObject::__construct()
SDO_Model_ReflectionDataObject::export()
SDO_Model_ReflectionDataObject::getContainmentProperty()
SDO_Model_ReflectionDataObject::getInstanceProperties()
SDO_Model_ReflectionDataObject::getType()
SDO_Model_Type::getBaseType()
SDO_Model_Type::getName()
SDO_Model_Type::getNamespaceURI()
SDO_Model_Type::getProperties()
SDO_Model_Type::getProperty()
SDO_Model_Type::isAbstractType()
SDO_Model_Type::isDataType()
SDO_Model_Type::isInstance()
SDO_Model_Type::isOpenType()
SDO_Model_Type::isSequencedType()
SDO_Sequence::getProperty()
SDO_Sequence::insert()
SDO_Sequence::move()
sem_acquire()
sem_get()
sem_release()
sem_remove()
serialize()
sesam_affected_rows()
sesam_commit()
sesam_connect()
sesam_diagnostic()
sesam_disconnect()
sesam_errormsg()
sesam_execimm()
sesam_fetch_array()
sesam_fetch_result()
sesam_fetch_row()
sesam_field_array()
sesam_field_name()
sesam_free_result()
sesam_num_fields()
sesam_query()
sesam_rollback()
sesam_seek_row()
sesam_settransaction()
session_cache_expire()
session_cache_limiter()
session_commit()
session_decode()
session_destroy()
session_encode()
session_get_cookie_params()
session_id()
session_is_registered()
session_module_name()
session_name()
session_pgsql_add_error()
session_pgsql_get_error()
session_pgsql_get_field()
session_pgsql_reset()
session_pgsql_set_field()
session_pgsql_status()
session_regenerate_id()
session_register()
session_save_path()
session_set_cookie_params()
session_set_save_handler()
session_start()
session_unregister()
session_unset()
session_write_close()
set_error_handler()
set_exception_handler()
set_file_buffer()
set_include_path()
set_magic_quotes_runtime()
set_time_limit()
setcookie()
setlocale()
setrawcookie()
settype()
sha1()
sha1_file()
shell_exec()
shm_attach()
shm_detach()
shm_get_var()
shm_put_var()
shm_remove()
shm_remove_var()
shmop_close()
shmop_delete()
shmop_open()
shmop_read()
shmop_size()
shmop_write()
show_source()
shuffle()
shutdown_memory_manager()
similar_text()
simplexml_import_dom()
simplexml_load_file()
simplexml_load_string()
SimpleXMLElement->__construct()()
SimpleXMLElement->addAttribute()()
SimpleXMLElement->addChild()()
SimpleXMLElement->asXML()()
SimpleXMLElement->attributes()()
SimpleXMLElement->children()()
SimpleXMLElement->getDocNamespaces()()
SimpleXMLElement->getName()()
SimpleXMLElement->getNamespaces()()
SimpleXMLElement->registerXPathNamespace()()
SimpleXMLElement->xpath()()
SimpleXMLIterator::current()
SimpleXMLIterator::getChildren()
SimpleXMLIterator::hasChildren()
SimpleXMLIterator::key()
SimpleXMLIterator::next()
SimpleXMLIterator::rewind()
SimpleXMLIterator::valid()
sin()
sinh()
sizeof()
sleep()
snmp_get_quick_print()
snmp_get_valueretrieval()
snmp_read_mib()
snmp_set_enum_print()
snmp_set_oid_numeric_print()
snmp_set_oid_output_format()
snmp_set_quick_print()
snmp_set_valueretrieval()
snmpget()
snmpgetnext()
snmprealwalk()
snmpset()
snmpwalk()
snmpwalkoid()
SoapClient->__call()()
SoapClient->__construct()()
SoapClient->__doRequest()()
SoapClient->__getFunctions()()
SoapClient->__getLastRequest()()
SoapClient->__getLastRequestHeaders()()
SoapClient->__getLastResponse()()
SoapClient->__getLastResponseHeaders()()
SoapClient->__getTypes()()
SoapClient->__setCookie()()
SoapClient->__soapCall()()
SoapFault->__construct()()
SoapHeader->__construct()()
SoapParam->__construct()()
SoapServer->__construct()()
SoapServer->addFunction()()
SoapServer->fault()()
SoapServer->getFunctions()()
SoapServer->handle()()
SoapServer->setClass()()
SoapServer->setPersistence()()
SoapVar->__construct()()
socket_accept()
socket_bind()
socket_clear_error()
socket_close()
socket_connect()
socket_create()
socket_create_listen()
socket_create_pair()
socket_get_option()
socket_get_status()
socket_getpeername()
socket_getsockname()
socket_last_error()
socket_listen()
socket_read()
socket_recv()
socket_recvfrom()
socket_select()
socket_send()
socket_sendto()
socket_set_block()
socket_set_blocking()
socket_set_nonblock()
socket_set_option()
socket_set_timeout()
socket_shutdown()
socket_strerror()
socket_write()
sort()
soundex()
spl_autoload()
spl_autoload_call()
spl_autoload_extensions()
spl_autoload_functions()
spl_autoload_register()
spl_autoload_unregister()
spl_classes()
spl_object_hash()
split()
spliti()
sprintf()
sql_regcase()
sqlite_array_query()
sqlite_busy_timeout()
sqlite_changes()
sqlite_close()
sqlite_column()
sqlite_create_aggregate()
sqlite_create_function()
sqlite_current()
sqlite_error_string()
sqlite_escape_string()
sqlite_exec()
sqlite_factory()
sqlite_fetch_all()
sqlite_fetch_array()
sqlite_fetch_column_types()
sqlite_fetch_object()
sqlite_fetch_single()
sqlite_fetch_string()
sqlite_field_name()
sqlite_has_more()
sqlite_has_prev()
sqlite_key()
sqlite_last_error()
sqlite_last_insert_rowid()
sqlite_libencoding()
sqlite_libversion()
sqlite_next()
sqlite_num_fields()
sqlite_num_rows()
sqlite_open()
sqlite_popen()
sqlite_prev()
sqlite_query()
sqlite_rewind()
sqlite_seek()
sqlite_single_query()
sqlite_udf_decode_binary()
sqlite_udf_encode_binary()
sqlite_unbuffered_query()
sqlite_valid()
SQLiteDatabase->arrayQuery()
SQLiteDatabase->busyTimeout()
SQLiteDatabase->changes()
SQLiteDatabase->createAggregate()
SQLiteDatabase->createFunction()
SQLiteDatabase->exec()
SQLiteDatabase->fetchColumnTypes()
SQLiteDatabase->lastError()
SQLiteDatabase->lastInsertRowid()
SQLiteDatabase->query()
SQLiteDatabase->singleQuery()
SQLiteDatabase->unbufferedQuery()
SQLiteResult->column()
SQLiteResult->current()
SQLiteResult->fetch()
SQLiteResult->fetchAll()
SQLiteResult->fetchObject()
SQLiteResult->fetchSingle()
SQLiteResult->fieldName()
SQLiteResult->hasPrev()
SQLiteResult->key()
SQLiteResult->next()
SQLiteResult->numFields()
SQLiteResult->numRows()
SQLiteResult->prev()
SQLiteResult->rewind()
SQLiteResult->seek()
SQLiteResult->valid()
SQLiteUnbuffered->column()
SQLiteUnbuffered->current()
SQLiteUnbuffered->fetch()
SQLiteUnbuffered->fetchAll()
SQLiteUnbuffered->fetchObject()
SQLiteUnbuffered->fetchSingle()
SQLiteUnbuffered->fieldName()
SQLiteUnbuffered->next()
SQLiteUnbuffered->numFields()
SQLiteUnbuffered->valid()
sqrt()
srand()
sscanf()
ssh2_auth_hostbased_file()
ssh2_auth_none()
ssh2_auth_password()
ssh2_auth_pubkey_file()
ssh2_connect()
ssh2_exec()
ssh2_fetch_stream()
ssh2_fingerprint()
ssh2_methods_negotiated()
ssh2_publickey_add()
ssh2_publickey_init()
ssh2_publickey_list()
ssh2_publickey_remove()
ssh2_scp_recv()
ssh2_scp_send()
ssh2_sftp()
ssh2_sftp_lstat()
ssh2_sftp_mkdir()
ssh2_sftp_readlink()
ssh2_sftp_realpath()
ssh2_sftp_rename()
ssh2_sftp_rmdir()
ssh2_sftp_stat()
ssh2_sftp_symlink()
ssh2_sftp_unlink()
ssh2_shell()
ssh2_tunnel()
start_memory_manager()
stat()
stats_absolute_deviation()
stats_cdf_beta()
stats_cdf_binomial()
stats_cdf_cauchy()
stats_cdf_chisquare()
stats_cdf_exponential()
stats_cdf_f()
stats_cdf_gamma()
stats_cdf_laplace()
stats_cdf_logistic()
stats_cdf_negative_binomial()
stats_cdf_noncentral_chisquare()
stats_cdf_noncentral_f()
stats_cdf_poisson()
stats_cdf_t()
stats_cdf_uniform()
stats_cdf_weibull()
stats_covariance()
stats_den_uniform()
stats_dens_beta()
stats_dens_cauchy()
stats_dens_chisquare()
stats_dens_exponential()
stats_dens_f()
stats_dens_gamma()
stats_dens_laplace()
stats_dens_logistic()
stats_dens_negative_binomial()
stats_dens_normal()
stats_dens_pmf_binomial()
stats_dens_pmf_hypergeometric()
stats_dens_pmf_poisson()
stats_dens_t()
stats_dens_weibull()
stats_harmonic_mean()
stats_kurtosis()
stats_rand_gen_beta()
stats_rand_gen_chisquare()
stats_rand_gen_exponential()
stats_rand_gen_f()
stats_rand_gen_funiform()
stats_rand_gen_gamma()
stats_rand_gen_ibinomial()
stats_rand_gen_ibinomial_negative()
stats_rand_gen_int()
stats_rand_gen_ipoisson()
stats_rand_gen_iuniform()
stats_rand_gen_noncenral_chisquare()
stats_rand_gen_noncentral_f()
stats_rand_gen_noncentral_t()
stats_rand_gen_normal()
stats_rand_gen_t()
stats_rand_get_seeds()
stats_rand_phrase_to_seeds()
stats_rand_ranf()
stats_rand_setall()
stats_skew()
stats_standard_deviation()
stats_stat_binomial_coef()
stats_stat_correlation()
stats_stat_gennch()
stats_stat_independent_t()
stats_stat_innerproduct()
stats_stat_noncentral_t()
stats_stat_paired_t()
stats_stat_percentile()
stats_stat_powersum()
stats_variance()
stmt->bind_param()
stmt->bind_param()()
stmt->bind_result()
stmt->bind_result()()
stmt->close_long_data()
stmt->data_seek()
stmt->data_seek()()
stmt->execute()
stmt->execute()()
stmt->fetch()
stmt->fetch()()
stmt->free_result()
stmt->free_result()()
stmt->num_rows()
stmt->num_rows()
stmt->param_count()
stmt->param_count()
stmt->prepare()
stmt->prepare()()
stmt->reset()
stmt->reset()()
stmt->result_metadata()()
stmt->send_long_data()
stmt->send_long_data()()
str_getcsv()
str_ireplace()
str_pad()
str_repeat()
str_replace()
str_rot13()
str_shuffle()
str_split()
str_word_count()
strcasecmp()
strchr()
strcmp()
strcoll()
strcspn()
stream_bucket_append()
stream_bucket_make_writeable()
stream_bucket_new()
stream_bucket_prepend()
stream_context_create()
stream_context_get_default()
stream_context_get_options()
stream_context_set_option()
stream_context_set_params()
stream_copy_to_stream()
stream_encoding()
stream_filter_append()
stream_filter_prepend()
stream_filter_register()
stream_filter_remove()
stream_get_contents()
stream_get_filters()
stream_get_line()
stream_get_meta_data()
stream_get_transports()
stream_get_wrappers()
stream_register_wrapper()
stream_resolve_include_path()
stream_select()
stream_set_blocking()
stream_set_timeout()
stream_set_write_buffer()
stream_socket_accept()
stream_socket_client()
stream_socket_enable_crypto()
stream_socket_get_name()
stream_socket_pair()
stream_socket_recvfrom()
stream_socket_sendto()
stream_socket_server()
stream_socket_shutdown()
stream_wrapper_register()
stream_wrapper_restore()
stream_wrapper_unregister()
strftime()
strip_tags()
stripcslashes()
stripos()
stripslashes()
stristr()
strlen()
strnatcasecmp()
strnatcmp()
strncasecmp()
strncmp()
strpbrk()
strpos()
strptime()
strrchr()
strrev()
strripos()
strrpos()
strspn()
strstr()
strtok()
strtolower()
strtotime()
strtoupper()
strtr()
strval()
substr()
substr_compare()
substr_count()
substr_replace()
swf_actiongeturl()
swf_actiongotoframe()
swf_actiongotolabel()
swf_actionnextframe()
swf_actionplay()
swf_actionprevframe()
swf_actionsettarget()
swf_actionstop()
swf_actiontogglequality()
swf_actionwaitforframe()
swf_addbuttonrecord()
swf_addcolor()
swf_closefile()
swf_definebitmap()
swf_definefont()
swf_defineline()
swf_definepoly()
swf_definerect()
swf_definetext()
swf_endbutton()
swf_enddoaction()
swf_endshape()
swf_endsymbol()
swf_fontsize()
swf_fontslant()
swf_fonttracking()
swf_getbitmapinfo()
swf_getfontinfo()
swf_getframe()
swf_labelframe()
swf_lookat()
swf_modifyobject()
swf_mulcolor()
swf_nextid()
swf_oncondition()
swf_openfile()
swf_ortho()
swf_ortho2()
swf_perspective()
swf_placeobject()
swf_polarview()
swf_popmatrix()
swf_posround()
swf_pushmatrix()
swf_removeobject()
swf_rotate()
swf_scale()
swf_setfont()
swf_setframe()
swf_shapearc()
swf_shapecurveto()
swf_shapecurveto3()
swf_shapefillbitmapclip()
swf_shapefillbitmaptile()
swf_shapefilloff()
swf_shapefillsolid()
swf_shapelinesolid()
swf_shapelineto()
swf_shapemoveto()
swf_showframe()
swf_startbutton()
swf_startdoaction()
swf_startshape()
swf_startsymbol()
swf_textwidth()
swf_translate()
swf_viewport()
swfaction()
SWFAction->__construct()()
swfbitmap()
SWFBitmap->__construct()()
SWFBitmap->getHeight()()
SWFBitmap->getWidth()()
swfbutton()
SWFButton->__construct()()
SWFButton->addAction()()
SWFButton->addASound()()
SWFButton->addShape()()
SWFButton->setAction()()
SWFButton->setDown()()
SWFButton->setHit()()
SWFButton->setMenu()()
SWFButton->setOver()()
SWFButton->setUp()()
swfdisplayitem()
SWFDisplayItem->addAction()()
SWFDisplayItem->addColor()()
SWFDisplayItem->endMask()()
SWFDisplayItem->getRot()()
SWFDisplayItem->getX()()
SWFDisplayItem->getXScale()()
SWFDisplayItem->getXSkew()()
SWFDisplayItem->getY()()
SWFDisplayItem->getYScale()()
SWFDisplayItem->getYSkew()()
SWFDisplayItem->move()()
SWFDisplayItem->moveTo()()
SWFDisplayItem->multColor()()
SWFDisplayItem->remove()()
SWFDisplayItem->rotate()()
SWFDisplayItem->rotateTo()()
SWFDisplayItem->scale()()
SWFDisplayItem->scaleTo()()
SWFDisplayItem->setDepth()()
SWFDisplayItem->setMaskLevel()()
SWFDisplayItem->setMatrix()()
SWFDisplayItem->setName()()
SWFDisplayItem->setRatio()()
SWFDisplayItem->skewX()()
SWFDisplayItem->skewXTo()()
SWFDisplayItem->skewY()()
SWFDisplayItem->skewYTo()()
swffill()
SWFFill->moveTo()()
SWFFill->rotateTo()()
SWFFill->scaleTo()()
SWFFill->skewXTo()()
SWFFill->skewYTo()()
swffont()
SWFFont->__construct()()
SWFFont->getAscent()()
SWFFont->getDescent()()
SWFFont->getLeading()()
SWFFont->getShape()()
SWFFont->getUTF8Width()()
SWFFont->getWidth()()
swffontchar()
SWFFontChar->addChars()()
SWFFontChar->addUTF8Chars()()
swfgradient()
SWFGradient->__construct()()
SWFGradient->addEntry()()
swfmorph()
SWFMorph->__construct()()
SWFMorph->getShape1()()
SWFMorph->getShape2()()
swfmovie()
SWFMovie->__construct()()
SWFMovie->add()()
SWFMovie->addExport()()
SWFMovie->addFont()()
SWFMovie->importChar()()
SWFMovie->importFont()()
SWFMovie->labelFrame()()
SWFMovie->nextFrame()()
SWFMovie->output()()
SWFMovie->remove()()
SWFMovie->save()()
SWFMovie->saveToFile()()
SWFMovie->setbackground()()
SWFMovie->setDimension()()
SWFMovie->setFrames()()
SWFMovie->setRate()()
SWFMovie->startSound()()
SWFMovie->stopSound()()
SWFMovie->streamMP3()()
SWFMovie->writeExports()()
swfprebuiltclip()
SWFPrebuiltClip->__construct()()
swfshape()
SWFShape->__construct()()
SWFShape->addFill()()
SWFShape->drawArc()()
SWFShape->drawCircle()()
SWFShape->drawCubic()()
SWFShape->drawCubicTo()()
SWFShape->drawCurve()()
SWFShape->drawCurveTo()()
SWFShape->drawGlyph()()
SWFShape->drawLine()()
SWFShape->drawLineTo()()
SWFShape->movePen()()
SWFShape->movePenTo()()
SWFShape->setLeftFill()()
SWFShape->setLine()()
SWFShape->setRightFill()()
swfsound()
swfsound()
swfsoundinstance()
SWFSoundInstance->loopCount()()
SWFSoundInstance->loopInPoint()()
SWFSoundInstance->loopOutPoint()()
SWFSoundInstance->noMultiple()()
swfsprite()
SWFSprite->__construct()()
SWFSprite->add()()
SWFSprite->labelFrame()()
SWFSprite->nextFrame()()
SWFSprite->remove()()
SWFSprite->setFrames()()
SWFSprite->startSound()()
SWFSprite->stopSound()()
swftext()
SWFText->__construct()()
SWFText->addString()()
SWFText->addUTF8String()()
SWFText->getAscent()()
SWFText->getDescent()()
SWFText->getLeading()()
SWFText->getUTF8Width()()
SWFText->getWidth()()
SWFText->moveTo()()
SWFText->setColor()()
SWFText->setFont()()
SWFText->setHeight()()
SWFText->setSpacing()()
swftextfield()
SWFTextField->__construct()()
SWFTextField->addChars()()
SWFTextField->addString()()
SWFTextField->align()()
SWFTextField->setBounds()()
SWFTextField->setColor()()
SWFTextField->setFont()()
SWFTextField->setHeight()()
SWFTextField->setIndentation()()
SWFTextField->setLeftMargin()()
SWFTextField->setLineSpacing()()
SWFTextField->setMargins()()
SWFTextField->setName()()
SWFTextField->setPadding()()
SWFTextField->setRightMargin()()
swfvideostream()
SWFVideoStream->__construct()()
SWFVideoStream->getNumFrames()()
SWFVideoStream->setDimension()()
Swish->getMetaList()
Swish->getPropertyList()
Swish->prepare()
Swish->query()
Swish::__construct()
SwishResult->getMetaList()
SwishResult->stem()
SwishResults->getParsedWords()
SwishResults->getRemovedStopwords()
SwishResults->nextResult()
SwishResults->seekResult()
SwishSearch->execute()
SwishSearch->resetLimit()
SwishSearch->setLimit()
SwishSearch->setPhraseDelimiter()
SwishSearch->setSort()
SwishSearch->setStructure()
sybase_affected_rows()
sybase_close()
sybase_connect()
sybase_data_seek()
sybase_deadlock_retry_count()
sybase_fetch_array()
sybase_fetch_assoc()
sybase_fetch_field()
sybase_fetch_object()
sybase_fetch_row()
sybase_field_seek()
sybase_free_result()
sybase_get_last_message()
sybase_min_client_severity()
sybase_min_error_severity()
sybase_min_message_severity()
sybase_min_server_severity()
sybase_num_fields()
sybase_num_rows()
sybase_pconnect()
sybase_query()
sybase_result()
sybase_select_db()
sybase_set_message_handler()
sybase_unbuffered_query()
symlink()
sys_get_temp_dir()
sys_getloadavg()
syslog()
system()

T

tan()
tanh()
tcpwrap_check()
tempnam()
textdomain()
tidy::__construct()
tidy_access_count()
tidy_clean_repair()
tidy_config_count()
tidy_diagnose()
tidy_error_count()
tidy_get_body()
tidy_get_config()
tidy_get_error_buffer()
tidy_get_head()
tidy_get_html()
tidy_get_html_ver()
tidy_get_opt_doc()
tidy_get_output()
tidy_get_release()
tidy_get_root()
tidy_get_status()
tidy_getopt()
tidy_is_xhtml()
tidy_is_xml()
tidy_load_config()
tidy_node->get_attr()
tidy_node->get_nodes()
tidy_node->next()
tidy_node->prev()
tidy_parse_file()
tidy_parse_string()
tidy_repair_file()
tidy_repair_string()
tidy_reset_config()
tidy_save_config()
tidy_set_encoding()
tidy_setopt()
tidy_warning_count()
tidyNode->hasChildren()
tidyNode->hasSiblings()
tidyNode->isAsp()
tidyNode->isComment()
tidyNode->isHtml()
tidyNode->isJste()
tidyNode->isPhp()
tidyNode->isText()
tidyNode::getParent()
time()
time_nanosleep()
time_sleep_until()
timezone_abbreviations_list()
timezone_identifiers_list()
timezone_name_from_abbr()
timezone_name_get()
timezone_offset_get()
timezone_open()
timezone_transitions_get()
tmpfile()
token_get_all()
token_name()
touch()
trigger_error()
trim()
ts_allocate_id()
ts_free_id()
ts_free_thread()
ts_resource()
ts_resource_ex()
tsrm_error()
tsrm_error_set()
tsrm_free_interpreter_context()
tsrm_mutex_alloc()
tsrm_mutex_free()
tsrm_mutex_lock()
tsrm_mutex_unlock()
tsrm_new_interpreter_context()
tsrm_set_interpreter_context()
tsrm_set_new_thread_begin_handler()
tsrm_set_new_thread_end_handler()
tsrm_shutdown()
tsrm_startup()
tsrm_thread_id()

U

uasort()
ucfirst()
ucwords()
udm_add_search_limit()
udm_alloc_agent()
udm_alloc_agent_array()
udm_api_version()
udm_cat_list()
udm_cat_path()
udm_check_charset()
udm_check_stored()
udm_clear_search_limits()
udm_close_stored()
udm_crc32()
udm_errno()
udm_error()
udm_find()
udm_free_agent()
udm_free_ispell_data()
udm_free_res()
udm_get_doc_count()
udm_get_res_field()
udm_get_res_param()
udm_hash32()
udm_load_ispell_data()
udm_open_stored()
udm_set_agent_param()
uksort()
umask()
unicode_encode()
unicode_semantics()
uniqid()
unixtojd()
unlink()
unpack()
unregister_ini_entries()
unregister_tick_function()
unserialize()
unset()
urldecode()
urlencode()
usage()
use_soap_error_handler()
user_error()
usleep()
usort()
utf8_decode()
utf8_encode()
uuid_compare()
uuid_create()
uuid_is_null()
uuid_is_valid()
uuid_mac()
uuid_time()
uuid_type()
uuid_variant()

V

var_dump()
var_export()
variant()
variant_abs()
variant_add()
variant_and()
variant_cast()
variant_cat()
variant_cmp()
variant_date_from_timestamp()
variant_date_to_timestamp()
variant_div()
variant_eqv()
variant_fix()
variant_get_type()
variant_idiv()
variant_imp()
variant_int()
variant_mod()
variant_mul()
variant_neg()
variant_not()
variant_or()
variant_pow()
variant_round()
variant_set()
variant_set_type()
variant_sub()
variant_xor()
vcwd_access()
vcwd_chdir()
vcwd_chdir_file()
vcwd_chmod()
vcwd_chown()
vcwd_creat()
vcwd_fopen()
vcwd_getcwd()
vcwd_getwd()
vcwd_lchown()
vcwd_lstat()
vcwd_mkdir()
vcwd_open()
vcwd_open_mode()
vcwd_opendir()
vcwd_popen()
vcwd_realpath()
vcwd_rename()
vcwd_rmdir()
vcwd_stat()
vcwd_unlink()
vcwd_utime()
version_compare()
vfprintf()
virtual()
virtual_access()
virtual_chdir()
virtual_chdir_file()
virtual_chmod()
virtual_chown()
virtual_creat()
virtual_cwd_shutdown()
virtual_cwd_startup()
virtual_file_ex()
virtual_filepath()
virtual_filepath_ex()
virtual_fopen()
virtual_getcwd()
virtual_getcwd_ex()
virtual_lstat()
virtual_mkdir()
virtual_open()
virtual_opendir()
virtual_popen()
virtual_realpath()
virtual_rename()
virtual_rmdir()
virtual_stat()
virtual_unlink()
virtual_utime()
vpopmail_add_alias_domain()
vpopmail_add_alias_domain_ex()
vpopmail_add_domain()
vpopmail_add_domain_ex()
vpopmail_add_user()
vpopmail_alias_add()
vpopmail_alias_del()
vpopmail_alias_del_domain()
vpopmail_alias_get()
vpopmail_alias_get_all()
vpopmail_auth_user()
vpopmail_del_domain()
vpopmail_del_domain_ex()
vpopmail_del_user()
vpopmail_error()
vpopmail_passwd()
vpopmail_set_user_quota()
vprintf()
vsprintf()

W

w32api_deftype()
w32api_init_dtype()
w32api_invoke_function()
w32api_register_function()
w32api_set_call_method()
wddx_add_vars()
wddx_deserialize()
wddx_packet_end()
wddx_packet_start()
wddx_serialize_value()
wddx_serialize_vars()
wddx_unserialize()
win32_create_service()
win32_delete_service()
win32_get_last_control_message()
win32_ps_list_procs()
win32_ps_stat_mem()
win32_ps_stat_proc()
win32_query_service_status()
win32_set_service_status()
win32_start_service()
win32_start_service_ctrl_dispatcher()
win32_stop_service()
wordwrap()

X

xattr_get()
xattr_list()
xattr_remove()
xattr_set()
xattr_supported()
xdiff_file_diff()
xdiff_file_diff_binary()
xdiff_file_merge3()
xdiff_file_patch()
xdiff_file_patch_binary()
xdiff_string_diff()
xdiff_string_diff_binary()
xdiff_string_merge3()
xdiff_string_patch()
xdiff_string_patch_binary()
xml_error_string()
xml_get_current_byte_index()
xml_get_current_column_number()
xml_get_current_line_number()
xml_get_error_code()
xml_parse()
xml_parse_into_struct()
xml_parser_create()
xml_parser_create_ns()
xml_parser_free()
xml_parser_get_option()
xml_parser_set_option()
xml_set_character_data_handler()
xml_set_default_handler()
xml_set_element_handler()
xml_set_end_namespace_decl_handler()
xml_set_external_entity_ref_handler()
xml_set_notation_decl_handler()
xml_set_object()
xml_set_processing_instruction_handler()
xml_set_start_namespace_decl_handler()
xml_set_unparsed_entity_decl_handler()
XMLReader::close()
XMLReader::expand()
XMLReader::getAttribute()
XMLReader::getAttributeNo()
XMLReader::getAttributeNs()
XMLReader::getParserProperty()
XMLReader::isValid()
XMLReader::lookupNamespace()
XMLReader::moveToAttribute()
XMLReader::moveToAttributeNo()
XMLReader::moveToAttributeNs()
XMLReader::moveToElement()
XMLReader::moveToFirstAttribute()
XMLReader::moveToNextAttribute()
XMLReader::next()
XMLReader::open()
XMLReader::read()
XMLReader::setParserProperty()
XMLReader::setRelaxNGSchema()
XMLReader::setRelaxNGSchemaSource()
XMLReader::XML()
xmlrpc_decode()
xmlrpc_decode_request()
xmlrpc_encode()
xmlrpc_encode_request()
xmlrpc_get_type()
xmlrpc_is_fault()
xmlrpc_parse_method_descriptions()
xmlrpc_server_add_introspection_data()
xmlrpc_server_call_method()
xmlrpc_server_create()
xmlrpc_server_destroy()
xmlrpc_server_register_introspection_callback()
xmlrpc_server_register_method()
xmlrpc_set_type()
XMLWriter::endAttribute()
XMLWriter::endCData()
XMLWriter::endComment()
XMLWriter::endDocument()
XMLWriter::endDTD()
XMLWriter::endDTDAttlist()
XMLWriter::endDTDElement()
XMLWriter::endDTDEntity()
XMLWriter::endElement()
XMLWriter::endPI()
XMLWriter::flush()
XMLWriter::fullEndElement()
XMLWriter::openMemory()
XMLWriter::openURI()
XMLWriter::outputMemory()
XMLWriter::setIndent()
XMLWriter::setIndentString()
XMLWriter::startAttribute()
XMLWriter::startAttributeNS()
XMLWriter::startCData()
XMLWriter::startComment()
XMLWriter::startDocument()
XMLWriter::startDTD()
XMLWriter::startDTDAttlist()
XMLWriter::startDTDElement()
XMLWriter::startDTDEntity()
XMLWriter::startElement()
XMLWriter::startElementNS()
XMLWriter::startPI()
XMLWriter::text()
XMLWriter::writeAttribute()
XMLWriter::writeAttributeNS()
XMLWriter::writeCData()
XMLWriter::writeComment()
XMLWriter::writeDTD()
XMLWriter::writeDTDAttlist()
XMLWriter::writeDTDElement()
XMLWriter::writeDTDEntity()
XMLWriter::writeElement()
XMLWriter::writeElementNS()
XMLWriter::writePI()
XMLWriter::writeRaw()
xpath_eval()
xpath_eval_expression()
xpath_new_context()
xpath_register_ns()
xpath_register_ns_auto()
xptr_eval()
xptr_new_context()
xslt_backend_info()
xslt_backend_name()
xslt_backend_version()
xslt_create()
xslt_errno()
xslt_error()
xslt_free()
xslt_getopt()
xslt_process()
xslt_set_base()
xslt_set_encoding()
xslt_set_error_handler()
xslt_set_log()
xslt_set_object()
xslt_set_sax_handler()
xslt_set_sax_handlers()
xslt_set_scheme_handler()
xslt_set_scheme_handlers()
xslt_setopt()
XSLTProcessor::__construct()
XSLTProcessor::getParameter()
XSLTProcessor::hasExsltSupport()
XSLTProcessor::importStylesheet()
XSLTProcessor::registerPHPFunctions()
XSLTProcessor::removeParameter()
XSLTProcessor::setParameter()
XSLTProcessor::transformToDoc()
XSLTProcessor::transformToURI()
XSLTProcessor::transformToXML()

Y

yaz_addinfo()
yaz_ccl_conf()
yaz_ccl_parse()
yaz_close()
yaz_connect()
yaz_database()
yaz_element()
yaz_errno()
yaz_error()
yaz_es()
yaz_es_result()
yaz_get_option()
yaz_hits()
yaz_itemorder()
yaz_present()
yaz_range()
yaz_record()
yaz_scan()
yaz_scan_result()
yaz_schema()
yaz_search()
yaz_set_option()
yaz_sort()
yaz_syntax()
yaz_wait()
yp_all()
yp_cat()
yp_err_string()
yp_errno()
yp_first()
yp_get_default_domain()
yp_master()
yp_match()
yp_next()
yp_order()

Z

z_arrval()
z_arrval_p()
z_arrval_pp()
z_binlen()
z_binlen_p()
z_binlen_pp()
z_binval()
z_binval_p()
z_binval_pp()
z_bval()
z_bval_p()
z_bval_pp()
z_dbg()
z_dval()
z_dval_p()
z_dval_pp()
z_lval()
z_lval_p()
z_lval_pp()
z_obj_class_name_p()
z_obj_handle()
z_obj_handle_p()
z_obj_handle_pp()
z_obj_handler()
z_obj_handler_p()
z_obj_handler_pp()
z_obj_ht()
z_obj_ht_p()
z_obj_ht_pp()
z_objce()
z_objce_p()
z_objce_pp()
z_objprop()
z_objprop_p()
z_objprop_pp()
z_objval()
z_objval_p()
z_objval_pp()
z_resval()
z_resval_p()
z_resval_pp()
z_strlen()
z_strlen_p()
z_strlen_pp()
z_strval()
z_strval_p()
z_strval_pp()
z_type()
z_type_p()
z_type_pp()
z_unilen()
z_unilen_p()
z_unilen_pp()
z_unival()
z_unival_p()
z_unival_pp()
z_ustrcplen()
z_ustrcplen_p()
z_ustrcplen_pp()
z_ustrlen()
z_ustrlen_p()
z_ustrlen_pp()
z_ustrval()
z_ustrval_p()
z_ustrval_pp()
zend_abstract_me()
zend_alter_ini_entry()
zend_arg_array_info()
zend_arg_info()
zend_arg_obj_info()
zend_arg_pass_info()
zend_auto_global_disable_jit()
zend_bailout()
zend_begin_arg_info()
zend_begin_arg_info_ex()
zend_begin_module_globals()
zend_call_function()
zend_call_method()
zend_call_method_with_0_params()
zend_call_method_with_1_params()
zend_call_method_with_2_params()
zend_case_fold_string()
zend_check_magic_method_implementation()
zend_check_private()
zend_check_property_access()
zend_check_protected()
zend_class_implements()
zend_cleanup_class_data()
zend_cleanup_function_data()
zend_clear_exception()
zend_cmp_unicode_and_literal()
zend_cmp_unicode_and_string()
zend_coll_result()
zend_convert_encodings()
zend_convert_from_unicode()
zend_convert_scanner_output()
zend_convert_to_unicode()
zend_copy_ini_directives()
zend_copy_parameters_array()
zend_declare_class_constant()
zend_declare_class_constant_bool()
zend_declare_class_constant_double()
zend_declare_class_constant_long()
zend_declare_class_constant_string()
zend_declare_class_constant_stringl()
zend_declare_module_globals()
zend_declare_property()
zend_declare_property_bool()
zend_declare_property_double()
zend_declare_property_ex()
zend_declare_property_long()
zend_declare_property_null()
zend_declare_property_string()
zend_declare_property_stringl()
zend_define_property()
zend_delete_global_variable()
zend_destroy_file_handle()
zend_disable_class()
zend_disable_function()
zend_do_fcall()
zend_do_implement_interface()
zend_do_inherit_interfaces()
zend_do_inheritance()
zend_end_arg_info()
zend_end_module_globals()
zend_error()
zend_eval_string()
zend_eval_string_ex()
zend_exception_error()
zend_exception_get_default()
zend_execute_scripts()
zend_extern_module_globals()
zend_falias()
zend_fe()
zend_fentry()
zend_fetch_class()
zend_fetch_debug_backtrace()
zend_fetch_list_dtor_id()
zend_fetch_resource()
zend_fetch_resource()
zend_fetch_resource2()
zend_file_handle_dtor()
zend_fn()
zend_fn_scope_name()
zend_function()
zend_function_dtor()
zend_get_class_entry()
zend_get_compiled_filename()
zend_get_compiled_lineno()
zend_get_compiled_script_encoding()
zend_get_compiled_variable_name()
zend_get_compiled_variable_value()
zend_get_configuration_directive()
zend_get_constant()
zend_get_error_exception()
zend_get_executed_filename()
zend_get_executed_lineno()
zend_get_hash_value()
zend_get_module()
zend_get_module_started()
zend_get_module_version()
zend_get_object_classname()
zend_get_parameters()
zend_get_parameters_array()
zend_get_parameters_array_ex()
zend_get_parameters_ex()
zend_get_resource_type_id()
zend_get_scanned_file_offset()
zend_get_std_object_handlers()
zend_get_unified_string_type()
zend_get_user_opcode_handler()
zend_get_zval_ptr()
zend_get_zval_ptr_ptr()
zend_hash_add()
zend_hash_add_empty_element()
zend_hash_apply()
zend_hash_apply_with_argument()
zend_hash_apply_with_arguments()
zend_hash_clean()
zend_hash_compare()
zend_hash_copy()
zend_hash_del()
zend_hash_del_key_or_index()
zend_hash_destroy()
zend_hash_exists()
zend_hash_find()
zend_hash_func()
zend_hash_get_current_data()
zend_hash_get_current_data_ex()
zend_hash_get_current_key()
zend_hash_get_current_key_ex()
zend_hash_get_current_key_type()
zend_hash_get_current_key_type_ex()
zend_hash_graceful_destroy()
zend_hash_graceful_reverse_destroy()
zend_hash_index_del()
zend_hash_index_exists()
zend_hash_index_find()
zend_hash_index_update()
zend_hash_init()
zend_hash_init_ex()
zend_hash_internal_pointer_end()
zend_hash_internal_pointer_end_ex()
zend_hash_internal_pointer_reset()
zend_hash_internal_pointer_reset_ex()
zend_hash_merge()
zend_hash_merge_ex()
zend_hash_minmax()
zend_hash_move_backwards()
zend_hash_move_backwards_ex()
zend_hash_move_forward()
zend_hash_move_forward_ex()
zend_hash_next_free_element()
zend_hash_next_index_insert()
zend_hash_num_elements()
zend_hash_quick_add()
zend_hash_quick_exists()
zend_hash_quick_find()
zend_hash_quick_update()
zend_hash_rehash()
zend_hash_reverse_apply()
zend_hash_sort()
zend_hash_update()
zend_hash_update_current_key()
zend_hash_update_current_key_ex()
zend_highlight()
zend_html_putc()
zend_html_puts()
zend_ini_begin()
zend_ini_deactivate()
zend_ini_disp()
zend_ini_double()
zend_ini_end()
zend_ini_entry()
zend_ini_entry1()
zend_ini_entry1_ex()
zend_ini_entry2()
zend_ini_entry2_ex()
zend_ini_entry3()
zend_ini_entry3_ex()
zend_ini_entry_ex()
zend_ini_global_shutdown()
zend_ini_long()
zend_ini_mh()
zend_ini_refresh_caches()
zend_ini_register_displayer()
zend_ini_shutdown()
zend_ini_sort_entries()
zend_ini_startup()
zend_ini_string()
zend_init_module_globals()
zend_init_symtable()
zend_init_symtable_ex()
zend_initialize_class_data()
zend_is_auto_global()
zend_is_callable()
zend_is_callable_ex()
zend_is_compiling()
zend_is_executing()
zend_is_true()
zend_is_valid_identifier()
zend_list_addref()
zend_list_delete()
zend_list_find()
zend_list_insert()
zend_log_xor()
zend_logo_guid()
zend_lookup_class()
zend_make_callable()
zend_make_compiled_string_description()
zend_make_printable_zval()
zend_make_string_zval()
zend_make_unicode_zval()
zend_malias()
zend_mangle_property_name()
zend_me()
zend_me_mapping()
zend_merge_properties()
zend_message_dispatcher()
zend_method()
zend_mod_conflicts()
zend_mod_conflicts_ex()
zend_mod_optional()
zend_mod_optional_ex()
zend_mod_required()
zend_mod_required_ex()
zend_module_activate_d()
zend_module_activate_n()
zend_module_deactivate_d()
zend_module_deactivate_n()
zend_module_info_d()
zend_module_info_n()
zend_module_post_zend_deactivate_d()
zend_module_post_zend_deactivate_n()
zend_module_shutdown_d()
zend_module_shutdown_n()
zend_module_startup_d()
zend_module_startup_n()
zend_named_fe()
zend_named_function()
zend_normalize_bool()
zend_normalize_identifier()
zend_num_args()
zend_object_create_proxy()
zend_object_store_ctor_failed()
zend_object_store_get_object()
zend_object_store_set_object()
zend_objects_clone_members()
zend_objects_clone_obj()
zend_objects_destroy_object()
zend_objects_free_object_storage()
zend_objects_get_address()
zend_objects_new()
zend_objects_store_add_ref()
zend_objects_store_call_destructors()
zend_objects_store_clone_obj()
zend_objects_store_del_ref()
zend_objects_store_destroy()
zend_objects_store_free_object_storage()
zend_objects_store_init()
zend_objects_store_mark_destructed()
zend_objects_store_put()
zend_output_debug_string()
zend_parse_ini_file()
zend_parse_method_parameters()
zend_parse_method_parameters_ex()
zend_parse_parameters()
zend_parse_parameters_ex()
zend_prepare_scanner_converters()
zend_print_flat_zval_r()
zend_print_variable()
zend_print_zval()
zend_print_zval_ex()
zend_print_zval_r()
zend_print_zval_r_ex()
zend_putc()
zend_puts()
zend_qsort()
zend_read_property()
zend_read_static_property()
zend_register_auto_global()
zend_register_constant()
zend_register_default_classes()
zend_register_double_constant()
zend_register_functions()
zend_register_ini_entries()
zend_register_interfaces()
zend_register_internal_class()
zend_register_internal_class_ex()
zend_register_internal_interface()
zend_register_internal_module()
zend_register_list_destructors()
zend_register_list_destructors_ex()
zend_register_long_constant()
zend_register_module()
zend_register_module_ex()
zend_register_resource()
zend_register_resource()
zend_register_string_constant()
zend_register_stringl_constant()
zend_reset_all_cv()
zend_reset_locale_deps()
zend_restore_compiled_filename()
zend_restore_compiled_script_encoding()
zend_restore_ini_entry()
zend_rsrc_dtor_func()
zend_rsrc_list_get_rsrc_type()
zend_set_compiled_filename()
zend_set_compiled_script_encoding()
zend_set_global_var()
zend_set_global_var_with_length()
zend_set_memory_limit()
zend_set_symbol()
zend_set_symbol_with_length()
zend_set_timeout()
zend_set_user_opcode_handler()
zend_startup_module()
zend_startup_module_ex()
zend_startup_modules()
zend_std_call_user_call()
zend_std_cast_object_tostring()
zend_std_get_static_property()
zend_std_unset_static_property()
zend_stream_close()
zend_stream_ferror()
zend_stream_fixup()
zend_stream_ftell()
zend_stream_getc()
zend_stream_open()
zend_stream_read()
zend_strip()
zend_strl()
zend_strndup()
zend_strs()
zend_strtod()
zend_symtable_del()
zend_symtable_exists()
zend_symtable_find()
zend_symtable_update()
zend_symtable_update_current_key()
zend_throw_exception_object()
zend_timeout()
zend_truth()
zend_u_converter()
zend_u_declare_property()
zend_u_declare_property_ex()
zend_u_delete_global_variable()
zend_u_equal()
zend_u_eval_string()
zend_u_eval_string_ex()
zend_u_fetch_class()
zend_u_get_constant()
zend_u_get_hash_value()
zend_u_hash_add()
zend_u_hash_add_empty_element()
zend_u_hash_del()
zend_u_hash_del_key_or_index()
zend_u_hash_exists()
zend_u_hash_find()
zend_u_hash_func()
zend_u_hash_init()
zend_u_hash_init_ex()
zend_u_hash_quick_add()
zend_u_hash_quick_exists()
zend_u_hash_quick_find()
zend_u_hash_quick_update()
zend_u_hash_update()
zend_u_is_auto_global()
zend_u_lookup_class()
zend_u_lookup_class_ex()
zend_u_mangle_property_name()
zend_u_register_constant()
zend_u_set_symbol_with_length()
zend_u_symtable_del()
zend_u_symtable_exists()
zend_u_symtable_find()
zend_u_symtable_update()
zend_u_symtable_update_current_key()
zend_u_unmangle_property_name()
zend_unmangle_property_name()
zend_unregister_functions()
zend_unregister_ini_entries()
zend_unset_timeout()
zend_update_class_constants()
zend_update_property()
zend_update_property_ascii_string()
zend_update_property_ascii_stringl()
zend_update_property_bool()
zend_update_property_double()
zend_update_property_long()
zend_update_property_null()
zend_update_property_rt_string()
zend_update_property_rt_stringl()
zend_update_property_string()
zend_update_property_stringl()
zend_update_property_unicode()
zend_update_property_unicodel()
zend_update_static_property()
zend_update_static_property_ascii_string()
zend_update_static_property_ascii_stringl()
zend_update_static_property_bool()
zend_update_static_property_double()
zend_update_static_property_long()
zend_update_static_property_null()
zend_update_static_property_rt_string()
zend_update_static_property_rt_stringl()
zend_update_static_property_string()
zend_update_static_property_stringl()
zend_update_static_property_unicode()
zend_update_static_property_unicodel()
zend_ustrndup()
zend_uv()
zend_verify_resource()
zend_version()
zend_write()
zend_wrong_param_count()
zend_wrong_param_count()
zend_wrong_param_count_with_retval()
zend_zval_type_name()
zip_close()
zip_entry_close()
zip_entry_compressedsize()
zip_entry_compressionmethod()
zip_entry_filesize()
zip_entry_name()
zip_entry_open()
zip_entry_read()
zip_open()
zip_read()
ZipArchive::addFile()
ZipArchive::addFromString()
ZipArchive::close()
ZipArchive::deleteIndex()
ZipArchive::deleteName()
ZipArchive::extractTo()
ZipArchive::getArchiveComment()
ZipArchive::getCommentIndex()
ZipArchive::getCommentName()
ZipArchive::getFromIndex()
ZipArchive::getFromName()
ZipArchive::getNameIndex()
ZipArchive::getStream()
ZipArchive::locateName()
ZipArchive::open()
ZipArchive::renameIndex()
ZipArchive::renameName()
ZipArchive::setArchiveComment()
ZipArchive::setCommentIndex()
ZipArchive::setCommentName()
ZipArchive::statIndex()
ZipArchive::statName()
ZipArchive::unchangeAll()
ZipArchive::unchangeArchive()
ZipArchive::unchangeIndex()
ZipArchive::unchangeName()
zlib_get_coding_type()
zval_add_ref()
zval_internal_dtor()
zval_internal_ptr_dtor()
zval_ptr_dtor()
zval_string_to_unicode()
zval_string_to_unicode_ex()
zval_unicode_to_string()
zval_update_constant()

Précédent | Sommaire | Suivant
Index des fonctions | Niveau supérieur | Eléments Absents


Eléments Absents

Manuel PHP
Précédent Suivant

Annexe W. Eléments Absents

Précédent | Sommaire | Suivant
Index des fonctions | Niveau supérieur | Version HTML Help


Manuel PHP

Copyright

Copyright © 1997 - 2007 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 l'Open Publication License est distribuée avec ce manuel ; la dernière version est disponible à http://www.opencontent.org/openpub/.

La distribution de versions adaptées de ce document est interdite sans la permission explicite des propriétaires du copyright.

La distribution de ce travail ou d'un dérivé de celui-ci sous n'importe quelle forme (papier) est interdite sans l'accord des propriétaires du copyright.

Dans le cas où vous seriez intéressés par la distribution partielle ou totale de ce document (modifié ou non) et que vous ayez 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.

La section Chapitre 46 de la documentation est basée sur une contribution initiale de Zend Technologies.

Sommaire


Annexes

Manuel PHP
Précédent Suivant

IX. Annexes

Table des matières
A. Histoire de PHP
B. Migrating from PHP 5.1.x to PHP 5.2.x
C. Migration de PHP 4 à PHP 5
D. Migration de PHP 3 à PHP 4
E. Migration de PHP/FI 2 à PHP 3
F. Débogueur PHP
G. Options de configuration
H. Directives du php.ini
I. Liste des Fuseaux Horaires Supportés
J. Catégorie des extensions
K. Liste des alias
L. Mots réservés en PHP
M. Types des ressources PHP
N. Liste des protocoles supportés
O. Liste des filtres standards
P. Liste des modes de transport de sockets disponibles
Q. Comparaison de types en PHP
R. Liste des tokens de l'analyseur
S. Guide de nommage de l'espace utilisateur
T. À propos du manuel
U. Open Publication License
V. Index des fonctions
W. Eléments Absents

Précédent | Sommaire | Suivant
Questions diverses |  | Histoire de PHP


About This Edition

Manuel PHP
Précédent Suivant

Chapitre 63. 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). The user notes are in php_manual_notes.chm. You only need to have one copy of this file on your computer, regardless of how many languages you use to read the PHP Manual. The only requirement is that you need to have all php_manual_LANG.chm files in one directory with php_manual_notes.chm. 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.

Précédent | Sommaire | Suivant
Version HTML Help | Niveau supérieur | Using PHP Manual CHM Edition


CHM Edition Credits

Manuel PHP
Précédent

Chapitre 69. CHM Edition Credits

This enhanced version of the PHP Manual would never come to existence, if the following people would not help with their contribution to the project (in no particular order):

  • Holger Eggert, who created the two default designs, and provided many usability tips

  • Gonzalo De la Pena Andreu, who added many comments on how it would be ideal to provide the skinnable interface

  • Olexandr Vynnychenko added countless comments and testing all the time

  • Brendan Ferguson, who provided many optimizations, improvements to the HTML and JS codes behind the manual pages

  • Sandor Hojtsy, who coded the manual preferences desktop application

  • And at last but not least, everybody, who provided feedback through our mailing list, and in the user survey

Précédent | Sommaire
CSS classes | Niveau supérieur


Integrating the PHP Manual

Manuel PHP
Précédent Suivant

Chapitre 67. 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://msdn.microsoft.com/library/en-us/htmlhelp/html/vsconhh1start.asp.

Précédent | Sommaire | Suivant
Presentational Specialities | Niveau supérieur | Skin development


The Full Text Search

Manuel PHP
Précédent Suivant

Chapitre 65. The Full Text Search

Table des matières
General searching rules
Searching for words or phrases
Defining search terms
Using nested expressions when searching
Manual Content and User Note Separation

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

Précédent | Sommaire | Suivant
Keyboard Shortcuts | Niveau supérieur | Searching for words or phrases


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.

Précédent | Sommaire | Suivant
Defining search terms | Niveau supérieur | Manual Content and User Note Separation


Manual Content and User Note Separation

The manual content and the user notes are separated to php_manual_LANG.chm and php_manual_notes.chm. There were several resons to do this, including:

  • This way you can update the user notes and the manual independently as you need.

  • You can have more than one language of the manual, while only need to have one notes file. All the CHM files need to be in the same directory, and all translations need to share the same preferences if you would not like to have more then one notes file.

  • You can bookmark manual pages with notes, or just a notes part of a page separately.

  • You can "turn off" user note display and user note search results by simply deleting php_manual_notes.chm, moving it out of the directory or renaming it.

All these benefits lead us to provide the manual the way you can see it right now. This distribution had the effect on the full text search that you get search results from the manual content and from the user notes as separate ones. The "Location" column shows the source of the result, also enabling you to "add precedence" to manual content results with ordering the results by "Location". User note page titles are also prefixed with "N:" to make them easily distinguishable in the favorites list (there's no location info in the favorites list).

Précédent | Sommaire | Suivant
Using nested expressions when searching | Niveau supérieur | Specialities of this Edition


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

Tableau 65-2. 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.

Précédent | Sommaire | Suivant
Searching for words or phrases | Niveau supérieur | Using nested expressions when searching


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.

Tableau 65-1. 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".

Précédent | Sommaire | Suivant
The Full Text Search | Niveau supérieur | Defining search terms


Skin development

Manuel PHP
Précédent Suivant

Chapitre 68. Skin development

Table des matières
Page Display Process
Page Elements
CSS classes

This edition of the PHP Manual allows users to choose from skins to display the contents, as well as develop custom skins to meet some special needs. We decided to support skins because we realized that one skin cannot satisfy everybody's needs in a such heavily used edition.

We included two skins by default inside the CHM. These cannot be modified or removed, so if you have the CHM, you have these two skins inside. The Low skin is optimized for small window display, the High skin is a variation of the Low one with some graphics added to spice it up.

A skin must have at least two files, a skin loader JavaScript file and a CSS file. The two inline skins have these files inside the CHM. The skin loader JS should at least load in the CSS file and display the page contents to the viewer. Theoretically there are two kinds of skins: CSS skins and Full skins. CSS skins only modify the CSS and does not amend the page layout. Full skins also modify the page layout. We have included sample skins for both the CSS skin type and the Full skin type ("greenlinks" and "headernostalgia" respectively).

Avertissement

Note that though the current skin development methods are quite final, there may be heavy changes in used CSS classes or page elements while we refine the skin development ideas. As this edition is currently in development stage, the information described herein is not to be considered completely stable.

Page Display Process

If you are going to develop your own skin, you should know how one page is loaded and displayed to the user, and how a skin fits in this process. For these paragraphs, we assume that you have put your CHM into c:\phpmanual, so it's accessible as c:\phpmanual\php_manual_LANG.chm (where LANG is the language code), and you would like to see the function page of "echo", which is function.echo.html inside the CHM. See the sections about integration for more information on CHM contents.

  • First of all the HTML content is loaded in from function.echo.html from inside the CHM.

  • At the top of this file, there is a HTML <script> tag, which loads in the _script.js file from the CHM. This file contains all the JS code needed to move on with the process. Most importantly this JS defines many variables (like where the CHM is, or what is the actual page viewed) and many functions to print out the context menu or handle online functions.

  • At last _script.js loads in the preferences file from outside the CHM (c:\phpmanual\php_manual_prefs.js in our example). This JS file defines the preference variables, and calls back prefHandler() which is also defined in _script.js.

  • That function loads in the skin JS file as the preferences dictate. The skin JS file should load in the needed CSS file, and define a displayPage() function, which displays the page if called.

  • The HTML file (function.echo.html in this example) also contains a function call to load in the user notes, which simply puts the notes into this HTML file using DHTML to be displayed as if they were here before...

  • The HTML file also contains a body onload attribute which calls the skin-defined displayPage() function to show the page to the user. This is the last function called, it should present the page in it's complete form to the user.

Every action is synchronized with calling back a function in the previously loaded file when the JS is in memory. The notes loading and skin JS loading is only synchronized with the page's onload event (which as the Microsoft documentation says only fires if the page is completely loaded).

This load and callback chain may seem to be too complicated, but so far this seemed to be the best way to do as many things as possible parallel, while also synchronize some calls.

As you can see your skin JavaScript file is loaded in by _script.js and it's displayPage() function is called by the body onload event.

Précédent | Sommaire | Suivant
Integrating the PHP Manual | Niveau supérieur | Page Elements


CSS classes

We cannot provide accurate documentation currently on usable CSS classes, as some of the DocBook XSL sheets classes are not used and some classes are added. Please see the sample CSS files included for first time reference.

Précédent | Sommaire | Suivant
Page Elements | Niveau supérieur | CHM Edition Credits


Page Elements

The PHP Manual pages are all HTML files with several HTML tags in them for both presentational and divisional purposes. The HTML pages contain divisions to be used for skinning purposes and misc divisions added by the DocBook XSL sheets.

A HTML page can be either a function reference page or another kind of page (like a feature description). Skins should get ready to skin these two kinds of pages separately most of the time (depending on the actual design).

The pages are structured using <div> tags with appropriate IDs to ease the skin writers work. A page consists of these parts:

  • <div id="pageContent"></div> contains all the page contents. This begins right after <body> and ends just before </body>. This division is hidden by default, you need to show it after you are ready with the page rewriting process.

  • <div id="pageHeaders"></div> contains the page header parts. This includes the text only main title (in a <span id="pageTitle"></span>) and function properties, in case this is a function page (contained in <span id="funcPurpose"></span>, <span id="funcAvail"></span> and <span id="funcUsage"></span>). In case one of these three is not available, the current page is not a function page.

  • <div id="pageText"></div> contains the majority of the page contents, including examples, manual notes, warnings, etc. This also includes see also parts for now, as we still cannot differentiate between see also and normal text parts (may be a thing to change in the future).

  • <div id="pageNotes"></div> contains the user notes (itself loaded in from another HTML file by JS). It contains a heading, and then a <div> without ID for every user note and spans in that divs for every element of a user note (with "email", "date" and "text" IDs respectively).

  • <div id="pageNav"></div> contains the
navigation table, which is further divided into spans (<span
id="navPrev"></span>, <span
id="navPath"></span>, <span
id="navNext"></span>, <span
id="navOnline"></span>, <span
id="navThisOnline"></span> and <span
id="navReportBug"></span>), where navThisOnline
and navReportBug is inside navOnline.

If you would like to rewrite the page, you should first read in the parts you need from the page to JS variables, then clear the contents of pageContent (or just the part you would like to rewrite), write in the new content and show the pageContent div for the user. If you would not like to make any structural changes, you can simply display the pageContent div and only specify a special style sheet in your skin JS file (see the "greenlinks" skin for an example).

You can find a "Full skin" developed to show you how to make skins built on top of this structure. The skin name is "headernostalgia". It rewrites the header part and removes the footer navigational table.

Précédent | Sommaire | Suivant
Skin development | Niveau supérieur | CSS classes


Specialities of this Edition

Manuel PHP
Précédent Suivant

Chapitre 66. Specialities of this Edition

Table des matières
User Preferences
Presentational Specialities

The Windows HTML Help Edition of the PHP Manual over-performs the presentational and interactive capabilities offered by other editions (including the online manual). This was possible because currently CHMs can only be viewed on Windows using Internet explorer, so we can develop for one browser family and one operating system. Viewers for other OSes may be developed in the future by third parties.

User Preferences

Most of the interactive features of this manual are provided by the viewer application (including full text search, index, favorites list), but we extended this list with PHP Manual specific tools. All these can be adjusted to your needs using a simple desktop application named php_manual_prefs.exe. If you run this program you can see three groups of settings: Online Functions, Context Menu, and Skin. All your settings are stored in php_manual_prefs.js.

Online functions enable you to have elements connected to websites. The two ones you can see on all manual pages are "This page online" and "Report a bug". As you can figure out the first one shows you the same page in the online manual, the second one opens a page from http://bugs.php.net/ and prefills some bug data for you. You need to select a mirror site to use for "php.net sensitive" online functions. We recommend choosing a close mirror site to get the best speed. Other components that may be limited by this online functions setting include context menu items opening new websites ("Google search selection" for example). Custom designs may also include elements restricted by this setting.

The context menu settings enables you to choose which context menu you prefer. This application provides you with an option to define your own context menu adding elements to it from a predefined set. You can have this custom context menu for the right click of your mouse, and have the original menu for CTRL+right click, or the opposite way. Three special types of custom context menu items exist:

Tableau 66-1. Context menu items

Type | Examples | Comments
Page Jump | Function Reference, Function Index | These items jump to a specific page in the CHM. Page Jump options are not restricted to point inside the CHM though. They can point to websites or other resources. Page jump options with a protocol part in the URL open in new window.
Function Call | Print page, Select all, Copy selection to clipboard, Google Search Selection | These are "function calls" for internally defined context menu functions. The last two examples have the speciality that they only show up in the menu if you rightclicked on a selection. Currently there is no way to extend the context menu with skin defined functions.
Special display | Google SearchBox, AlltheWeb SearchBox | These are displayed as HTML forms, where you can enter search keywords, press ENTER, and receive a new window with the search issued in the appropriate search engine. Currently there is no way to extend the set of specially displayed context menu items.
Possible context menu elements and their "abstract implementations" are stored in context.ini. You have the ability to add possible page jump options there, but there is no way currently to extend the context menu system with user (skin) defined functions. The possible mirror sites are listed in mirrors.ini. Feel free to suggest more bundled context menu items to us at php-doc-chm@lists.php.net.

The skins setting enables you to choose from the two bundled default skins, or from any user defined skins. The Low skin is optimized to display correctly at any small size, the High skin is optimized for your viewing pleasure. Other skins may be developed according to our skins development guide. The recommended place for skins on the file system is the skins/SKINNAME subfolder of the PHP Manual directory. Though this is not required, some skins may define other rules (not recommended). We included sample skins for you to see examples of how to develop skins for the PHP Manual.

You have three buttons to choose from at the bottom. The Apply button applies your changes without exiting, the OK button applies and closes the application, the Cancel button does not modify your settings and closes the program.

Précédent | Sommaire | Suivant
Manual Content and User Note Separation | Niveau supérieur | Presentational Specialities


Presentational Specialities

This edition of the PHP Manual is highly optimized for screen presentation. Skins may be developed to better support printing, as this was not the goal of the included skins. This approach allowed us to make many modifications to the presentation of different parts of the manual.

The first thing you'll notice is that all examples are color coded, using the PHP function show_source(). The actual colors used are defined by CSS classes. Examples also have links to PHP functions used in them to provide quick access to reference material. All code examples have a "copy to clipboard" link by the side of them with which you can copy the text contents of the example to the clipboard.

External links are marked with a special » sign, and open in a new browser window. We also included the "path to this page" information on all pages for you to easily identify where you are and navigate as needed.

Other parts of the manual are quite similar to the online ones by default, though custom skins can modify many elements on the pages.

Précédent | Sommaire | Suivant
Specialities of this Edition | Niveau supérieur | Integrating the PHP Manual


Using PHP Manual CHM Edition

Manuel PHP
Précédent Suivant

Chapitre 64. Using PHP Manual CHM Edition

Table des matières
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.

Précédent | Sommaire | Suivant
About This Edition | Niveau supérieur | The Navigation Pane


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.

Tableau 64-1. 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 [see the User Preferences section] | SHIFT+F10

Tableau 64-2. 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

Tableau 64-3. 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

Tableau 64-4. 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

Tableau 64-5. 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

Tableau 64-6. 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

Précédent | Sommaire | Suivant
The Navigation Pane | Niveau supérieur | The Full Text Search


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.

Précédent | Sommaire | Suivant
Using PHP Manual CHM Edition | Niveau supérieur | Keyboard Shortcuts


Version HTML Help

Manuel PHP
Précédent Suivant

X. Version HTML Help

Table des matières
63. About This Edition
64. Using PHP Manual CHM Edition
65. The Full Text Search
66. Specialities of this Edition
67. Integrating the PHP Manual
68. Skin development
69. CHM Edition Credits

Précédent | Sommaire | Suivant
Eléments Absents |  | About This Edition


Configuration

Manuel PHP
Précédent Suivant

Chapitre 9. Configuration

Table des matières
Le fichier de configuration
Comment modifier la configuration

Le fichier de configuration

Le fichier de configuration (appelé php3.ini dans la version 3 de PHP, et simplement php.ini dans la version 4) 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 démon HTTP. Pour les versions CGI et CLI le fichier est lu à chaque invocation.

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

  • L'endroit spécifique du module SAPI (la directive PHPIniDir d'Apache 2, l'option de la ligne de commande -cen CGI et en CLI, le paramètre php_ini en NSAPI, la variable d'environnement PHP_INI_PATH en THTTPD)

  • La variable d'environnement PHPRC. Avant PHP 5.2.0, cette variable était récupérée après la clé de registre mentionnée ci-dessous.

  • Depuis PHP 5.2.0, les clés de registre suivantes sont cherchées dans cet ordre : HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z\IniFilePath, HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y\IniFilePath et HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x\IniFilePath, où x, y et z signifie les versions majeurs, mineurs et normales.

  • HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath (Registre Windows)

  • Le dossier courant de travail (sous pour CLI)

  • Le dossier du serveur web (pour les modules SAPI), ou le dossier contenant PHP (autrement dans 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émarage, ce qui fait que PHP essaye de lire php.ini depuis le système de fichier racine s'il existe.

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 liste disponible sur CVS.

Exemple 9-1. Extrait du php.ini

; tout texte sur une ligne, situé après un point-virgule ";" est ignoré
[php] ; les marqueur 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 anti-slash sont traités comme n'importe quel caractère
include_path = ".;c:\php\lib"

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

Précédent | Sommaire | Suivant
Rapports de Bogue | Niveau supérieur | Comment modifier la configuration


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

Dans la version 4 et 5 de PHP, il y a de nombreuses directives Apache qui vous permettent de modifier la configuration de PHP à partir des fichiers de configuration Apache. Pour une liste des directives qui sont PHP_INI_ALL, PHP_INI_PERDIR ou PHP_INI_SYSTEM reportez-vous à l'appendice Liste des directives du php.ini.

Note : Dans la version 3 de PHP, à chaque directive de configuration présente dans le fichier de configuration d'Apache correspond une directive de configuration dans le fichier php3.ini, à l'exception des directives préfixées par php3_.

php_value nom valeur

Modifie la valeur de la directive spécifiée. Cette instruction n'est utilisable qu'avec les directives PHP de type PHP_INI_ALL et PHP_INI_PERDIR. Pour annuler une valeur qui aurait été modifiée au préalable, utilisez la valeur none.

Note : N'utilisez pas php_value pour configurer des valeurs booléennes. php_flag (voir plus bas) doit être utilisée.

php_flag nom on|off

Cette instruction est utilisée pour activer ou désactiver une option. Cette instruction n'est utilisable qu'avec les directives PHP de type PHP_INI_ALL et PHP_INI_PERDIR.

php_admin_value nom valeur

Cette instruction affecte une valeur à la variable spécifiée. Cette instruction NE peut PAS être utilisée dans un fichier .htaccess. Toute directive de PHP configurée avec le type php_admin_value ne peut pas être modifiée en utilisant le fichier .htaccess ou les directives de virtualhost. 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 l'option précédente. 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 une directive virtualhost.

Exemple 9-2. Exemple de configuration Apache

<IfModule mod_php5.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
  php3_include_path ".:/usr/local/lib/php"
  php3_safe_mode 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 fixer 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 dans la base de registre Windows

Lorsque vous utilisez PHP sur Windows, la configuration peut être modifiée dossier par dossier en utilisant la base de registres de Windows. Les valeurs de configuration sont stockées avec la clé de registre HKLM\SOFTWARE\PHP\Per Directory Values, dans les sous-clés correspondantes aux noms de dossier. Par exemple, la valeur d'une option dans le dossier c:\inetpub\wwwroot sera stockée dans la clé HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. La valeur de cette option sera utilisée pour tous les scripts qui fonctionnent dans ce dossier ou ses sous-dossiers. Les valeurs sous la clé doivent avoir le nom d'une direction de configuration PHP, et la valeur correspondante. Les constantes PHP ne sont pas utilisables : il faut mettre la valeur entière. Cependant, seules les valeurs des configurations dans PHP_INI_USER peuvent être fixées de cette manière, celles dans PHP_INI_PERDIR ne peuvent l'être.

Autres interfaces de configuration de PHP

Suivant la façon dont vous exécutez PHP, vous pouvez changer certaines valeurs durant l'exécution de vos scripts en utilisant ini_set(). Voir la documentation de la fonction ini_set() pour plus d'informations.

Si vous êtes intéressé par une liste complète des options configurées sur votre système avec leurs valeurs courantes, vous pouvez exécuter la fonction phpinfo() et consulter la page résultante. Vous pouvez aussi accéder individuellement aux directives de configuration pendant l'exécution de vos scripts en utilisant soit la fonction ini_get(), soit la fonction get_cfg_var().

Précédent | Sommaire | Suivant
Configuration | Niveau supérieur | Référence du langage


Constantes

(no version information, might be only in CVS)

Constantes -- Constantes prédéfinies Curl

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CURLOPT_AUTOREFERER (entier)

Disponible depuis PHP 5.1.0

CURLOPT_COOKIESESSION (entier)

Disponible depuis PHP 5.1.0

CURLOPT_DNS_USE_GLOBAL_CACHE (entier)

CURLOPT_DNS_CACHE_TIMEOUT (entier)

CURLOPT_FTP_SSL (entier)

Disponible depuis PHP 5.2.0

CURLFTPSSL_TRY (entier)

Disponible depuis PHP 5.2.0

CURLFTPSSL_ALL (entier)

Disponible depuis PHP 5.2.0

CURLFTPSSL_CONTROL (entier)

Disponible depuis PHP 5.2.0

CURLFTPSSL_NONE (entier)

Disponible depuis PHP 5.2.0

CURLOPT_FTPSSLAUTH (entier)

Disponible depuis PHP 5.1.0

CURLOPT_FTPSSLAUTH (entier)

Disponible depuis PHP 5.1.0

CURLOPT_PORT (entier)

CURLOPT_FILE (entier)

CURLOPT_INFILE (entier)

CURLOPT_INFILESIZE (entier)

CURLOPT_URL (entier)

CURLOPT_PROXY (entier)

CURLOPT_VERBOSE (entier)

CURLOPT_HEADER (entier)

CURLOPT_HTTPHEADER (entier)

CURLOPT_NOPROGRESS (entier)

CURLOPT_NOBODY (entier)

CURLOPT_FAILONERROR (entier)

CURLOPT_UPLOAD (entier)

CURLOPT_POST (entier)

CURLOPT_FTPLISTONLY (entier)

CURLOPT_FTPAPPEND (entier)

CURLOPT_NETRC (entier)

CURLOPT_FOLLOWLOCATION (entier)

CURLOPT_FTPASCII (entier)

CURLOPT_PUT (entier)

CURLOPT_MUTE (entier)

CURLOPT_USERPWD (entier)

CURLOPT_PROXYUSERPWD (entier)

CURLOPT_RANGE (entier)

CURLOPT_TIMEOUT (entier)

CURLOPT_POSTFIELDS (entier)

CURLOPT_REFERER (entier)

CURLOPT_USERAGENT (entier)

CURLOPT_FTPPORT (entier)

CURLOPT_FTP_USE_EPSV (entier)

CURLOPT_LOW_SPEED_LIMIT (entier)

CURLOPT_LOW_SPEED_TIME (entier)

CURLOPT_RESUME_FROM (entier)

CURLOPT_COOKIE (entier)

CURLOPT_SSLCERT (entier)

CURLOPT_SSLCERTPASSWD (entier)

CURLOPT_WRITEHEADER (entier)

CURLOPT_SSL_VERIFYHOST (entier)

CURLOPT_COOKIEFILE (entier)

CURLOPT_SSLVERSION (entier)

CURLOPT_TIMECONDITION (entier)

CURLOPT_TIMEVALUE (entier)

CURLOPT_CUSTOMREQUEST (entier)

CURLOPT_STDERR (entier)

CURLOPT_TRANSFERTEXT (entier)

CURLOPT_RETURNTRANSFER (entier)

CURLOPT_QUOTE (entier)

CURLOPT_POSTQUOTE (entier)

CURLOPT_INTERFACE (entier)

CURLOPT_KRB4LEVEL (entier)

CURLOPT_HTTPPROXYTUNNEL (entier)

CURLOPT_FILETIME (entier)

CURLOPT_WRITEFUNCTION (entier)

CURLOPT_READFUNCTION (entier)

CURLOPT_PASSWDFUNCTION (entier)

CURLOPT_HEADERFUNCTION (entier)

CURLOPT_MAXREDIRS (entier)

CURLOPT_MAXCONNECTS (entier)

CURLOPT_CLOSEPOLICY (entier)

CURLOPT_FRESH_CONNECT (entier)

CURLOPT_FORBID_REUSE (entier)

CURLOPT_RANDOM_FILE (entier)

CURLOPT_EGDSOCKET (entier)

CURLOPT_CONNECTTIMEOUT (entier)

CURLOPT_SSL_VERIFYPEER (entier)

CURLOPT_CAINFO (entier)

CURLOPT_CAPATH (entier)

CURLOPT_COOKIEJAR (entier)

CURLOPT_SSL_CIPHER_LIST (entier)

CURLOPT_BINARYTRANSFER (entier)

CURLOPT_NOSIGNAL (entier)

CURLOPT_PROXYTYPE (entier)

CURLOPT_BUFFERSIZE (entier)

CURLOPT_HTTPGET (entier)

CURLOPT_HTTP_VERSION (entier)

CURLOPT_SSLKEY (entier)

CURLOPT_SSLKEYTYPE (entier)

CURLOPT_SSLKEYPASSWD (entier)

CURLOPT_SSLENGINE (entier)

CURLOPT_SSLENGINE_DEFAULT (entier)

CURLOPT_SSLCERTTYPE (entier)

CURLOPT_CRLF (entier)

CURLOPT_ENCODING (entier)

CURLOPT_PROXYPORT (entier)

CURLOPT_UNRESTRICTED_AUTH (entier)

CURLOPT_FTP_USE_EPRT (entier)

CURLOPT_HTTP200ALIASES (entier)

CURLOPT_HTTPAUTH (entier)

CURLAUTH_BASIC (entier)

CURLAUTH_DIGEST (entier)

CURLAUTH_GSSNEGOTIATE (entier)

CURLAUTH_NTLM (entier)

CURLAUTH_ANY (entier)

CURLAUTH_ANYSAFE (entier)

CURLOPT_PROXYAUTH (entier)

CURLCLOSEPOLICY_LEAST_RECENTLY_USED (entier)

CURLCLOSEPOLICY_LEAST_TRAFFIC (entier)

CURLCLOSEPOLICY_SLOWEST (entier)

CURLCLOSEPOLICY_CALLBACK (entier)

CURLCLOSEPOLICY_OLDEST (entier)

CURLINFO_EFFECTIVE_URL (entier)

CURLINFO_HTTP_CODE (entier)

CURLINFO_HEADER_OUT (entier)

Disponible depuis PHP 6.0.0

CURLINFO_HEADER_SIZE (entier)

CURLINFO_REQUEST_SIZE (entier)

CURLINFO_TOTAL_TIME (entier)

CURLINFO_NAMELOOKUP_TIME (entier)

CURLINFO_CONNECT_TIME (entier)

CURLINFO_PRETRANSFER_TIME (entier)

CURLINFO_SIZE_UPLOAD (entier)

CURLINFO_SIZE_DOWNLOAD (entier)

CURLINFO_SPEED_DOWNLOAD (entier)

CURLINFO_SPEED_UPLOAD (entier)

CURLINFO_FILETIME (entier)

CURLINFO_SSL_VERIFYRESULT (entier)

CURLINFO_CONTENT_LENGTH_DOWNLOAD (entier)

CURLINFO_CONTENT_LENGTH_UPLOAD (entier)

CURLINFO_STARTTRANSFER_TIME (entier)

CURLINFO_CONTENT_TYPE (entier)

CURLINFO_REDIRECT_TIME (entier)

CURLINFO_REDIRECT_COUNT (entier)

CURL_VERSION_IPV6 (entier)

CURL_VERSION_KERBEROS4 (entier)

CURL_VERSION_SSL (entier)

CURL_VERSION_LIBZ (entier)

CURLVERSION_NOW (entier)

CURLE_OK (entier)

CURLE_UNSUPPORTED_PROTOCOL (entier)

CURLE_FAILED_INIT (entier)

CURLE_URL_MALFORMAT (entier)

CURLE_URL_MALFORMAT_USER (entier)

CURLE_COULDNT_RESOLVE_PROXY (entier)

CURLE_COULDNT_RESOLVE_HOST (entier)

CURLE_COULDNT_CONNECT (entier)

CURLE_FTP_WEIRD_SERVER_REPLY (entier)

CURLE_FTP_ACCESS_DENIED (entier)

CURLE_FTP_USER_PASSWORD_INCORRECT (entier)

CURLE_FTP_WEIRD_PASS_REPLY (entier)

CURLE_FTP_WEIRD_USER_REPLY (entier)

CURLE_FTP_WEIRD_PASV_REPLY (entier)

CURLE_FTP_WEIRD_227_FORMAT (entier)

CURLE_FTP_CANT_GET_HOST (entier)

CURLE_FTP_CANT_RECONNECT (entier)

CURLE_FTP_COULDNT_SET_BINARY (entier)

CURLE_PARTIAL_FILE (entier)

CURLE_FTP_COULDNT_RETR_FILE (entier)

CURLE_FTP_WRITE_ERROR (entier)

CURLE_FTP_QUOTE_ERROR (entier)

CURLE_HTTP_NOT_FOUND (entier)

CURLE_WRITE_ERROR (entier)

CURLE_MALFORMAT_USER (entier)

CURLE_FTP_COULDNT_STOR_FILE (entier)

CURLE_READ_ERROR (entier)

CURLE_OUT_OF_MEMORY (entier)

CURLE_OPERATION_TIMEOUTED (entier)

CURLE_FTP_COULDNT_SET_ASCII (entier)

CURLE_FTP_PORT_FAILED (entier)

CURLE_FTP_COULDNT_USE_REST (entier)

CURLE_FTP_COULDNT_GET_SIZE (entier)

CURLE_HTTP_RANGE_ERROR (entier)

CURLE_HTTP_POST_ERROR (entier)

CURLE_SSL_CONNECT_ERROR (entier)

CURLE_FTP_BAD_DOWNLOAD_RESUME (entier)

CURLE_FILE_COULDNT_READ_FILE (entier)

CURLE_LDAP_CANNOT_BIND (entier)

CURLE_LDAP_SEARCH_FAILED (entier)

CURLE_LIBRARY_NOT_FOUND (entier)

CURLE_FUNCTION_NOT_FOUND (entier)

CURLE_ABORTED_BY_CALLBACK (entier)

CURLE_BAD_FUNCTION_ARGUMENT (entier)

CURLE_BAD_CALLING_ORDER (entier)

CURLE_HTTP_PORT_FAILED (entier)

CURLE_BAD_PASSWORD_ENTERED (entier)

CURLE_TOO_MANY_REDIRECTS (entier)

CURLE_UNKNOWN_TELNET_OPTION (entier)

CURLE_TELNET_OPTION_SYNTAX (entier)

CURLE_OBSOLETE (entier)

CURLE_SSL_PEER_CERTIFICATE (entier)

CURLE_GOT_NOTHING (entier)

CURLE_SSL_ENGINE_NOTFOUND (entier)

CURLE_SSL_ENGINE_SETFAILED (entier)

CURLE_SEND_ERROR (entier)

CURLE_RECV_ERROR (entier)

CURLE_SHARE_IN_USE (entier)

CURLE_SSL_CERTPROBLEM (entier)

CURLE_SSL_CIPHER (entier)

CURLE_SSL_CACERT (entier)

CURLE_BAD_CONTENT_ENCODING (entier)

CURLE_LDAP_INVALID_URL (entier)

CURLE_FILESIZE_EXCEEDED (entier)

CURLE_FTP_SSL_FAILED (entier)

CURLFTPAUTH_DEFAULT (entier)

Disponible depuis PHP 5.1.0

CURLFTPAUTH_SSL (entier)

Disponible depuis PHP 5.1.0

CURLFTPAUTH_TLS (entier)

Disponible depuis PHP 5.1.0

CURLPROXY_HTTP (entier)

CURLPROXY_SOCKS5 (entier)

CURL_NETRC_OPTIONAL (entier)

CURL_NETRC_IGNORED (entier)

CURL_NETRC_REQUIRED (entier)

CURL_HTTP_VERSION_NONE (entier)

CURL_HTTP_VERSION_1_0 (entier)

CURL_HTTP_VERSION_1_1 (entier)

CURLM_CALL_MULTI_PERFORM (entier)

CURLM_OK (entier)

CURLM_BAD_HANDLE (entier)

CURLM_BAD_EASY_HANDLE (entier)

CURLM_OUT_OF_MEMORY (entier)

CURLM_INTERNAL_ERROR (entier)

CURLMSG_DONE (entier)

Précédent | Sommaire | Suivant
CURL | Niveau supérieur | curl_close


Catégorie des extensions

Manuel PHP
Précédent Suivant

Annexe J. Catégorie des extensions

Table des matières
But
Adhésion
État

Cette annexe classe par catégorie plus de 150 extensions documentées dans le manuel PHP suivant différents critères.

But

Extensions PHP basiques

Extensions relatives aux variables et aux types

  • Référence V, Tableaux

  • Référence XIII, Fonctions Classkit

  • Référence XII, Classes et Objets

  • Référence XVII, Caractères

  • Référence XLI, Fonctions Filter

  • Référence XLVII, Fonctions

  • Référence CV, agrégation d'objets/Composition de fonctions

  • Référence CLXX, Fonctions de gestion des variables

Traitement du texte

  • Référence CXX, Expressions rationnelles compatibles Perl

  • Référence CXXVI, Expressions rationnelles

  • Référence CLXI, Chaînes de caractères (Strings)

  • Référence CLXXVIII, Fonctions xdiff

Affecte le comportement de PHP

  • Référence III, Alternative PHP Cache

  • Référence IV, Débogueur avancé pour PHP

  • Référence VIII, Compilateur bytecode pour PHP

  • Référence XXXIII, Gestion des erreurs

  • Référence LV, HTTP

  • Référence CXXIV, Options PHP et informations

  • Référence CXV, Bufferisation de sortie

  • Référence CXXXIX, Fonctions runkit

Extensions sur les sessions

  • Référence XCIV, Sessions Mohawk

  • Référence XCVII, Fonctions muscat

  • Référence CXLIX, Sessions

  • Référence CXLVIII, Sauvegarde d'Identifiant de session PostgreSQL

Autres extensions basiques

  • Référence XLVIII, Fonctions GeoIP

  • Référence LXXIII, Fonctions JSON

  • Référence XC, Fonctions diverses

  • Référence CXVIII, Fonctions Parsekit

  • Référence CLV, Fonctions Standard PHP Library (SPL)

  • Référence CLXVI, Tidy

  • Référence CLXVII, Analyseur de code PHP

  • Référence CLXIX, URL

Extensions relatives aux bases de données

Interfaces d'abstraction

  • Référence XXIV, DBA

  • Référence XXVII, Fonctions dbx

  • Référence CXXII, Fonctions PDO

  • Référence CXLIII, Fonctions SDO

  • Référence CXLV, Fonctions SDO Relationnel Service d'Accès de Données

  • Référence CVIII, Fonctions ODBC (unifiés)

Extensions spécifiques aux bases de données

  • Référence XXV, dBase

  • Référence XXIII, Fonctions DB++

  • Référence XLV, FrontBase

  • Référence XXXIX, Fonctions filePro

  • Référence XLII, Fonctions Firebird/InterBase

  • Référence LX, Fonctions IBM DB2, Cloudscape et Apache Derby

  • Référence LXVIII, Informix

  • Référence LXX, Ingres II

  • Référence LXXXII, MaxDB PHP Extension

  • Référence XCV, mSQL

  • Référence XCII, Microsoft SQL Server

  • Référence XCVIII, MySQL

  • Référence C, Extension MySQL améliorée

  • Référence CVII, Fonctions Oracle

  • Référence CXIII, Oracle (Obsolète)

  • Référence CXVI, Ovrimos SQL

  • Référence CXVII, Accès aux fichiers Paradox

  • Référence XCIII, Microsoft SQL Server et Fonctions Sybase (PDO_DBLIB)

  • Référence XLIII, Fonctions Firebird/Interbase (PDO_FIREBIRD)

  • Référence LXIX, Fonctions Informix (PDO_INFORMIX)

  • Référence XCIX, Fonctions MySQL (PDO_MYSQL)

  • Référence CXIV, Fonctions Oracle (PDO_OCI)

  • Référence CIX, Fonctions ODBC et DB2 (PDO_ODBC)

  • Référence CXXVIII, Fonctions PostgreSQL (PDO_PGSQL)

  • Référence CLVII, Fonctions SQLite (PDO_SQLITE)

  • Référence CXXVII, PostgreSQL

  • Référence CLVI, Fonctions SQLite

  • Référence CLXIV, Sybase

Manipulation XML

  • Référence XXX, Fonctions DOM

  • Référence XXXI, Fonctions DOM XML

  • Référence LXXVI, libxml

  • Référence CXXXIII, qtdom

  • Référence CXLIV, Fonctions de Service d'Accès de Données SDO XML

  • Référence CLI, Fonctions SimpleXML

  • Référence CLXXIX, Analyseur syntaxique XML

  • Référence CLXXXI, XMLReader functions

  • Référence CLXXXII, Fonctions XMLWriter

  • Référence CLXXXIII, XSL

  • Référence CLXXXIV, XSLT

Services Web

  • Référence CLIII, Fonctions SOAP

  • Référence CLXXIV, WDDX

  • Référence CLXXX, XML-RPC

Traitement des cartes de crédit

  • Référence XIX, Paiement Cybercash

  • Référence XX, Fonctions Crédit Mutuel CyberMUT

  • Référence LXXXV, Fonctions de paiement MCVE (Monetra)

  • Référence CLXXI, Paiement par Verisign

Mathématique et cryptologie

Extensions relatives aux mathématiques

  • Référence VII, Nombres de grande taille BCMath

  • Référence L, Fonctions GMP

  • Référence LXXXI, Mathématiques

  • Référence CLIX, Fonctions statistics

Extensions relatives à la cryptologie

  • Référence XVI, Crack

  • Référence LIV, Fonctions hash

  • Référence LXXXIV, chiffrement mcrypt

  • Référence LXXXVII, Hash

  • Référence CXII, OpenSSL

Langage humain et support de l'encodage de caractères

  • Référence XXXII, Fonctions enchant

  • Référence XLIV, Fonctions FriBiDi

  • Référence XLIX, Fonctions Gettext

  • Référence LXII, Iconv

  • Référence XCVI, Chaînes de caractères multi-octets

  • Référence CXXXII, Pspell

  • Référence CXXXVII, Recode (GNU)

  • Référence CLXVIII, Unicode Functions

Systèmes de fichiers et contrôle des processus

Extensions relatives aux systèmes de fichiers

  • Référence XXVIII, Direct IO

  • Référence XXIX, Accès aux dossiers

  • Référence XXXVI, Fonctions de monitorage d'altération de fichiers

  • Référence XXXVIII, Fonctions Fileinfo

  • Référence XL, Système de fichiers

  • Référence LXXXVIII, Fonctions Mimetype

  • Référence CLXXVII, Fonctions xattr

Extensions relatives au contrôle des processus

  • Référence CXXX, Exécution de programmes externes

  • Référence XXXV, Fonctions Expect

  • Référence CXIX, Contrôle des processus

  • Référence CXXV, Fonctions POSIX

  • Référence CXLVI, Sémaphores et gestion de la mémoire partagée

  • Référence CL, Mémoire partagée

Accès aux services

Extensions relatives aux Emails

  • Référence XXI, Cyrus IMAP

  • Référence LXVII, IMAP

  • Référence LXXIX, Mail

  • Référence LXXX, Traitement d'Email

  • Référence CLXXII, vpopmail

Services d'identification

  • Référence LXXIV, KADM5

  • Référence CXXXIV, Radius

Autres services

  • Référence XVIII, CURL

  • Référence XLVI, Fonctions FTP

  • Référence LVI, Hyperwave

  • Référence LVII, Hyperwave API

  • Référence LXXI, IRC

  • Référence LXXII, Intégration de Java avec PHP

  • Référence LXXV, LDAP

  • Référence LXXXVI, Fonctions Memcache

  • Référence XCI, mnoGoSearch

  • Référence LII, Net_Gopher

  • Référence CII, Réseau

  • Référence CLXXXVI, NIS

  • Référence LXXVII, Lotus Notes

  • Référence CLII, Fonctions SNMP

  • Référence CLIV, Sockets

  • Référence CLVIII, Shell2 sécurisé

  • Référence CLX, Flux

  • Référence CLXV, Fonctions TCP Wrappers

  • Référence CLXXXV, YAZ

Extensions relatives à la compression

  • Référence IX, Compression Bzip2

  • Référence LXXVIII, Fonctions LZF

  • Référence CXXXV, Rar

  • Référence CLXXXVII, Fonctions ZIP

  • Référence CLXXXVIII, Compression Zlib

Extensions relatives aux calendriers et aux évènements

  • Référence X, Calendrier

  • Référence XXII, Dates et heures

  • Référence LXXXIII, MCAL

Extensions relatives aux régions spécifiques

Sortie MIME Non-Texte

  • Référence XIV, Fonctions ClibPDF

  • Référence XXXVII, Forms Data Format

  • Référence LI, gnupg Fonctions

  • Référence LXXXIX, Ming pour Flash

  • Référence CXXI, Fonctions PDF

  • Référence CXXXI, Création de document PostScript

  • Référence CXXXVIII, Fonctions Lecture d'En-tête RPM

  • Référence CLXII, Shockwave Flash

Traitement et génération des images

  • Référence XXXIV, EXIF

  • Référence LXV, Images

Manipulations des formats audio

  • Référence LXIII, Fonctions ID3

  • Référence CX, oggvorbis

  • Référence CXI, Gestion Audio OpenAL

Extensions spécifiques à la ligne de commande

  • Référence CI, Fonctions de contrôle d'écran de terminal

  • Référence CIII, Fonctions Newt

  • Référence CXXXVI, Readline (GNU)

Extensions uniquement disponibles sous Windows

  • Référence XV, COM et .Net (Windows)

  • Référence I, Fonctions .NET

  • Référence CXXIX, Impression

  • Référence CLXXIII, API windows

  • Référence CLXXV, Fonctions win32ps

  • Référence CLXXVI, Fonctions win32service

Extensions spécifiques aux serveurs

  • Référence II, Fonctions Apache

  • Référence LXIV, Fonctions d'administration d'IIS

  • Référence CIV, Netscape Server API

Précédent | Sommaire | Suivant
Liste des fuseaux horaires dans le groupe Autres | Niveau supérieur | Adhésion


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.

  • Référence V, Tableaux

  • Référence XII, Classes et Objets

  • Référence XXII, Dates et heures

  • Référence XXIX, Accès aux dossiers

  • Référence XXXIII, Gestion des erreurs

  • Référence CXXX, Exécution de programmes externes

  • Référence XL, Système de fichiers

  • Référence XLVII, Fonctions

  • Référence CXXIV, Options PHP et informations

  • Référence LXXIX, Mail

  • Référence LXXXI, Mathématiques

  • Référence XC, Fonctions diverses

  • Référence CII, Réseau

  • Référence CXV, Bufferisation de sortie

  • Référence CXXVI, Expressions rationnelles

  • Référence CXLIX, Sessions

  • Référence CLX, Flux

  • Référence CLXI, Chaînes de caractères (Strings)

  • Référence CLXVII, Analyseur de code PHP

  • Référence CLXVIII, Unicode Functions

  • Référence CLXIX, URL

  • Référence CLXX, Fonctions de gestion des variables

Extensions embarquées

Ces extensions sont embarquées avec PHP.

  • Référence II, Fonctions Apache

  • Référence VII, Nombres de grande taille BCMath

  • Référence IX, Compression Bzip2

  • Référence X, Calendrier

  • Référence XV, COM et .Net (Windows)

  • Référence XVII, Caractères

  • Référence XVIII, CURL

  • Référence XXIV, DBA

  • Référence XXV, dBase

  • Référence XXX, Fonctions DOM

  • Référence I, Fonctions .NET

  • Référence XXXIV, EXIF

  • Référence XLV, FrontBase

  • Référence XXXVII, Forms Data Format

  • Référence XLVI, Fonctions FTP

  • Référence XLIX, Fonctions Gettext

  • Référence L, Fonctions GMP

  • Référence LIV, Fonctions hash

  • Référence XLII, Fonctions Firebird/InterBase

  • Référence LXII, Iconv

  • Référence LXVIII, Informix

  • Référence LXV, Images

  • Référence LXVII, IMAP

  • Référence LXXIII, Fonctions JSON

  • Référence LXXV, LDAP

  • Référence LXXVI, libxml

  • Référence XCVI, Chaînes de caractères multi-octets

  • Référence LXXXIV, chiffrement mcrypt

  • Référence LXXXVII, Hash

  • Référence LXXXVIII, Fonctions Mimetype

  • Référence LXXXIX, Ming pour Flash

  • Référence XCV, mSQL

  • Référence XCII, Microsoft SQL Server

  • Référence XCVIII, MySQL

  • Référence C, Extension MySQL améliorée

  • Référence CI, Fonctions de contrôle d'écran de terminal

  • Référence CIV, Netscape Server API

  • Référence CV, agrégation d'objets/Composition de fonctions

  • Référence CVII, Fonctions Oracle

  • Référence CXII, OpenSSL

  • Référence CXIX, Contrôle des processus

  • Référence CXX, Expressions rationnelles compatibles Perl

  • Référence CXXII, Fonctions PDO

  • Référence XCIII, Microsoft SQL Server et Fonctions Sybase (PDO_DBLIB)

  • Référence XLIII, Fonctions Firebird/Interbase (PDO_FIREBIRD)

  • Référence XCIX, Fonctions MySQL (PDO_MYSQL)

  • Référence CXIV, Fonctions Oracle (PDO_OCI)

  • Référence CIX, Fonctions ODBC et DB2 (PDO_ODBC)

  • Référence CXXVIII, Fonctions PostgreSQL (PDO_PGSQL)

  • Référence CLVII, Fonctions SQLite (PDO_SQLITE)

  • Référence CXXVII, PostgreSQL

  • Référence CXXV, Fonctions POSIX

  • Référence CXXXII, Pspell

  • Référence CXXXVI, Readline (GNU)

  • Référence CXXXVII, Recode (GNU)

  • Référence CXLVI, Sémaphores et gestion de la mémoire partagée

  • Référence CL, Mémoire partagée

  • Référence CLI, Fonctions SimpleXML

  • Référence CLII, Fonctions SNMP

  • Référence CLIII, Fonctions SOAP

  • Référence CLIV, Sockets

  • Référence CLV, Fonctions Standard PHP Library (SPL)

  • Référence CLVI, Fonctions SQLite

  • Référence CLXIV, Sybase

  • Référence CLXVI, Tidy

  • Référence CVIII, Fonctions ODBC (unifiés)

  • Référence CLXXIV, WDDX

  • Référence CLXXIX, Analyseur syntaxique XML

  • Référence CLXXXI, XMLReader functions

  • Référence CLXXX, XML-RPC

  • Référence CLXXXIII, XSL

  • Référence CLXXXIV, XSLT

  • Référence CLXXXVII, Fonctions ZIP

  • Référence CLXXXVIII, Compression Zlib

Extensions externes

Pour pouvoir compiler ces extensions, des bibliothèques externes sont nécessaires.

  • Référence IX, Compression Bzip2

  • Référence XIV, Fonctions ClibPDF

  • Référence XVI, Crack

  • Référence XVIII, CURL

  • Référence XXV, dBase

  • Référence XXIII, Fonctions DB++

  • Référence XXVII, Fonctions dbx

  • Référence XXX, Fonctions DOM

  • Référence XXXI, Fonctions DOM XML

  • Référence XXXII, Fonctions enchant

  • Référence XXXVI, Fonctions de monitorage d'altération de fichiers

  • Référence XLV, FrontBase

  • Référence XXXVII, Forms Data Format

  • Référence XXXVIII, Fonctions Fileinfo

  • Référence XLIV, Fonctions FriBiDi

  • Référence XLVIII, Fonctions GeoIP

  • Référence XLIX, Fonctions Gettext

  • Référence L, Fonctions GMP

  • Référence LVI, Hyperwave

  • Référence LVII, Hyperwave API

  • Référence XLII, Fonctions Firebird/InterBase

  • Référence LX, Fonctions IBM DB2, Cloudscape et Apache Derby

  • Référence LXVIII, Informix

  • Référence LXVII, IMAP

  • Référence LXX, Ingres II

  • Référence LXXI, IRC

  • Référence LXXII, Intégration de Java avec PHP

  • Référence LXXV, LDAP

  • Référence LXXVI, libxml

  • Référence LXXXII, MaxDB PHP Extension

  • Référence LXXXIII, MCAL

  • Référence LXXXIV, chiffrement mcrypt

  • Référence LXXXVI, Fonctions Memcache

  • Référence LXXXVII, Hash

  • Référence LXXXIX, Ming pour Flash

  • Référence XCI, mnoGoSearch

  • Référence XCIV, Sessions Mohawk

  • Référence XCV, mSQL

  • Référence XCII, Microsoft SQL Server

  • Référence XCVII, Fonctions muscat

  • Référence XCVIII, MySQL

  • Référence C, Extension MySQL améliorée

  • Référence CI, Fonctions de contrôle d'écran de terminal

  • Référence CIII, Fonctions Newt

  • Référence CVII, Fonctions Oracle

  • Référence CX, oggvorbis

  • Référence CXI, Gestion Audio OpenAL

  • Référence CXII, OpenSSL

  • Référence CXIII, Oracle (Obsolète)

  • Référence CXVI, Ovrimos SQL

  • Référence CXVII, Accès aux fichiers Paradox

  • Référence CXXI, Fonctions PDF

  • Référence XCIII, Microsoft SQL Server et Fonctions Sybase (PDO_DBLIB)

  • Référence XLIII, Fonctions Firebird/Interbase (PDO_FIREBIRD)

  • Référence LXIX, Fonctions Informix (PDO_INFORMIX)

  • Référence XCIX, Fonctions MySQL (PDO_MYSQL)

  • Référence CXIV, Fonctions Oracle (PDO_OCI)

  • Référence CIX, Fonctions ODBC et DB2 (PDO_ODBC)

  • Référence CXXVIII, Fonctions PostgreSQL (PDO_PGSQL)

  • Référence CLXXI, Paiement par Verisign

  • Référence CXXVII, PostgreSQL

  • Référence CXXXI, Création de document PostScript

  • Référence CXXXII, Pspell

  • Référence CXXXIII, qtdom

  • Référence CXXXIV, Radius

  • Référence CXXXV, Rar

  • Référence CXXXVI, Readline (GNU)

  • Référence CXXXVII, Recode (GNU)

  • Référence CXLVIII, Sauvegarde d'Identifiant de session PostgreSQL

  • Référence CLI, Fonctions SimpleXML

  • Référence CLII, Fonctions SNMP

  • Référence CLIII, Fonctions SOAP

  • Référence CLVIII, Shell2 sécurisé

  • Référence CLXII, Shockwave Flash

  • Référence CLXIV, Sybase

  • Référence CLXVI, Tidy

  • Référence CLXVIII, Unicode Functions

  • Référence CVIII, Fonctions ODBC (unifiés)

  • Référence CLXXII, vpopmail

  • Référence CLXXIV, WDDX

  • Référence CLXXVII, Fonctions xattr

  • Référence CLXXVIII, Fonctions xdiff

  • Référence CLXXIX, Analyseur syntaxique XML

  • Référence CLXXXI, XMLReader functions

  • Référence CLXXXIII, XSL

  • Référence CLXXXIV, XSLT

  • Référence CLXXXV, YAZ

Extensions PECL

Ces extensions sont disponibles depuis PECL. Plus d'extensions PECL existent mais elles ne sont pas encore documentées dans le manuel de PHP.

  • Référence III, Alternative PHP Cache

  • Référence IV, Débogueur avancé pour PHP

  • Référence VIII, Compilateur bytecode pour PHP

  • Référence XIII, Fonctions Classkit

  • Référence XIV, Fonctions ClibPDF

  • Référence XVI, Crack

  • Référence XIX, Paiement Cybercash

  • Référence XX, Fonctions Crédit Mutuel CyberMUT

  • Référence XXI, Cyrus IMAP

  • Référence XXIII, Fonctions DB++

  • Référence XXVII, Fonctions dbx

  • Référence XXVIII, Direct IO

  • Référence XXXI, Fonctions DOM XML

  • Référence XXXII, Fonctions enchant

  • Référence XXXV, Fonctions Expect

  • Référence XXXVI, Fonctions de monitorage d'altération de fichiers

  • Référence XXXVIII, Fonctions Fileinfo

  • Référence XXXIX, Fonctions filePro

  • Référence XLI, Fonctions Filter

  • Référence XLIV, Fonctions FriBiDi

  • Référence XLVIII, Fonctions GeoIP

  • Référence LI, gnupg Fonctions

  • Référence LIV, Fonctions hash

  • Référence LV, HTTP

  • Référence LVI, Hyperwave

  • Référence LVII, Hyperwave API

  • Référence LX, Fonctions IBM DB2, Cloudscape et Apache Derby

  • Référence LXIII, Fonctions ID3

  • Référence LXIV, Fonctions d'administration d'IIS

  • Référence LXX, Ingres II

  • Référence LXXI, IRC

  • Référence LXXII, Intégration de Java avec PHP

  • Référence LXXIII, Fonctions JSON

  • Référence LXXIV, KADM5

  • Référence LXXVIII, Fonctions LZF

  • Référence LXXX, Traitement d'Email

  • Référence LXXXII, MaxDB PHP Extension

  • Référence LXXXIII, MCAL

  • Référence LXXXV, Fonctions de paiement MCVE (Monetra)

  • Référence LXXXVI, Fonctions Memcache

  • Référence XCI, mnoGoSearch

  • Référence XCIV, Sessions Mohawk

  • Référence XCVII, Fonctions muscat

  • Référence CI, Fonctions de contrôle d'écran de terminal

  • Référence LII, Net_Gopher

  • Référence CIII, Fonctions Newt

  • Référence CLXXXVI, NIS

  • Référence LXXVII, Lotus Notes

  • Référence CX, oggvorbis

  • Référence CXI, Gestion Audio OpenAL

  • Référence CXIII, Oracle (Obsolète)

  • Référence CXVI, Ovrimos SQL

  • Référence CXVII, Accès aux fichiers Paradox

  • Référence CXVIII, Fonctions Parsekit

  • Référence CXXI, Fonctions PDF

  • Référence CXXII, Fonctions PDO

  • Référence XCIII, Microsoft SQL Server et Fonctions Sybase (PDO_DBLIB)

  • Référence XLIII, Fonctions Firebird/Interbase (PDO_FIREBIRD)

  • Référence LXIX, Fonctions Informix (PDO_INFORMIX)

  • Référence XCIX, Fonctions MySQL (PDO_MYSQL)

  • Référence CXIV, Fonctions Oracle (PDO_OCI)

  • Référence CIX, Fonctions ODBC et DB2 (PDO_ODBC)

  • Référence CXXVIII, Fonctions PostgreSQL (PDO_PGSQL)

  • Référence CLVII, Fonctions SQLite (PDO_SQLITE)

  • Référence CLXXI, Paiement par Verisign

  • Référence CXXIX, Impression

  • Référence CXXXI, Création de document PostScript

  • Référence CXXXIII, qtdom

  • Référence CXXXIV, Radius

  • Référence CXXXV, Rar

  • Référence CXXXVIII, Fonctions Lecture d'En-tête RPM

  • Référence CXXXIX, Fonctions runkit

  • Référence CXLIII, Fonctions SDO

  • Référence CXLIV, Fonctions de Service d'Accès de Données SDO XML

  • Référence CXLV, Fonctions SDO Relationnel Service d'Accès de Données

  • Référence CXLVIII, Sauvegarde d'Identifiant de session PostgreSQL

  • Référence CLVIII, Shell2 sécurisé

  • Référence CLIX, Fonctions statistics

  • Référence CLXII, Shockwave Flash

  • Référence CLXV, Fonctions TCP Wrappers

  • Référence CLXVI, Tidy

  • Référence CLXXII, vpopmail

  • Référence CLXXIII, API windows

  • Référence CLXXV, Fonctions win32ps

  • Référence CLXXVI, Fonctions win32service

  • Référence CLXXVII, Fonctions xattr

  • Référence CLXXVIII, Fonctions xdiff

  • Référence CLXXXI, XMLReader functions

  • Référence CLXXXII, Fonctions XMLWriter

  • Référence CLXXXV, YAZ

  • Référence CLXXXVII, Fonctions ZIP

Précédent | Sommaire | Suivant
Catégorie des extensions | Niveau supérieur | État


État

Cette partie liste les extensions non prévues pour un environnement de production - elles sont soit trop "vieilles" (dépréciées), soit trop "nouvelles" (expérimentales).

Extensions dépréciées

Ces extensions ont été dépréciées habituellement en faveur d'autres extensions.

  • Référence VI, Aspell (Obsolète)

  • Référence XI, Paiement CCVS (Obsolète)

  • Référence XXVI, DBM (Obsolète)

  • Référence LXI, ICAP

  • Référence LXXXVIII, Fonctions Mimetype

  • Référence CXIII, Oracle (Obsolète)

  • Référence CVI, Overload

  • Référence CXLI, Extension client Satellite CORBA (Obsolète)

  • Référence CXLVII, SESAM

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.

  • Référence I, Fonctions .NET

  • Référence XLI, Fonctions Filter

  • Référence LIV, Fonctions hash

  • Référence LXXII, Intégration de Java avec PHP

  • Référence LXXX, Traitement d'Email

  • Référence XCVII, Fonctions muscat

  • Référence CIII, Fonctions Newt

  • Référence CV, agrégation d'objets/Composition de fonctions

  • Référence CXLIII, Fonctions SDO

  • Référence CXLIV, Fonctions de Service d'Accès de Données SDO XML

  • Référence CXLV, Fonctions SDO Relationnel Service d'Accès de Données

  • Référence CLXXII, vpopmail

Précédent | Sommaire | Suivant
Adhésion | Niveau supérieur | Liste des alias


apc_add

(no version information, might be only in CVS)

apc_add -- Cache a variable in the data store (only if it's not stored)

Description

bool apc_add ( string key, mixed var [, int ttl] )

Note : Unlike many other mechanisms in PHP, variables stored using apc_add() will persist between requests (until the value is removed from the cache).

Liste de paramètres

key

Store the variable using this name. keys are cache-unique, so attempting to use apc_add() to store data with a key that already exists will not overwrite the existing data, and will instead return FALSE. (This is the only difference between apc_add() and apc_store().)

var

The variable to store

ttl

Time To Live; store var in the cache for ttl seconds. After the ttl has passed, the stored variable will be expunged from the cache (on the next request). If no ttl is supplied (or if the ttl is 0), the value will persist until it is removed from the cache manually, or otherwise fails to exist in the cache (clear, restart, etc.).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. A apc_add() example

<?php
$bar = 'BAR';
apc_add('foo', $bar);
var_dump(apc_fetch('foo'));
echo "\n";
$bar = 'NEVER GETS SET';
apc_add('foo', $bar);
var_dump(apc_fetch('foo'));
echo "\n";
?>

L'exemple ci-dessus va afficher :

string(3) "BAR"
string(3) "BAR"

Voir aussi

apc_store()
apc_fetch()
apc_delete()

Précédent | Sommaire | Suivant
Alternative PHP Cache | Niveau supérieur | apc_cache_info


apc_cache_info

(PECL)

apc_cache_info -- Récupère les informations de cache (et les méta-données) pour des données stockées APC

Description

array apc_cache_info ( [string cache_type [, bool limited]] )

Valeurs de retour

Un tableau de données mis en cache (et les méta-données) ou FALSE en cas d'échec.

Note : apc_cache_info() émettra une alerte s'il n'est pas capable de récupérer les données APC mises en cache. Ceci arrive typiquement lorsque APC n'est pas activé.

Liste de paramètres

cache_type

Si cache_type vaut "user", les informations sur le cache utilisateur seront retournées ; sinon, les informations sur le cache système (fichiers en cache) seront retournées.

limited

Si limited vaut TRUE, la valeur retournée excluera les entrées de la liste individuelle du cache. Ceci est utile lorsque l'on tente d'optimiser les appels pour la collecte de statistiques.

Historique

Version | Description
3.0.11 | Le paramètre limited a été introduit.

Exemples

Exemple 1. Exemple avec apc_cache_info()

<?php
print_r(apc_cache_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [num_slots] => 2000
    [ttl] => 0
    [num_hits] => 9
    [num_misses] => 3
    [start_time] => 1123958803
    [cache_list] => Array
        (
            [0] => Array
                (
                    [filename] => /chemin/vers/apc_test.php
                    [device] => 29954
                    [inode] => 1130511
                    [type] => file
                    [num_hits] => 1
                    [mtime] => 1123960686
                    [creation_time] => 1123960696
                    [deletion_time] => 0
                    [access_time] => 1123962864
                    [ref_count] => 1
                    [mem_size] => 677
                )
            [1] => Array (...itération pour chaque fichier mis en cache)
)

Voir aussi

Directives de configuration APC

Précédent | Sommaire | Suivant
apc_add | Niveau supérieur | apc_clear_cache


apc_clear_cache

(PECL)

apc_clear_cache -- Efface le cache APC

Description

bool apc_clear_cache ( [string cache_type] )

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Liste de paramètres

cache_type

Si cache_type vaut "user", le cache utilisateur sera nettoyé ; sinon, le cache système (les fichiers mis en cache) sera nettoyé.

Précédent | Sommaire | Suivant
apc_cache_info | Niveau supérieur | apc_define_constants


apc_define_constants

(PECL)

apc_define_constants -- Définit des constantes pour les récupérer, et la définition de masse

Description

bool apc_define_constants ( string key, array constants [, bool case_sensitive] )

define() est notoirement lent. Vu que le principal bénéfice d'APC est d'augmenter les performances des applications/scripts, ce mécanisme est fournit pour améliorer le processus de la définition de constantes de masse. Cependant, cette fonction n'effectue aucune opération anticipée.

Pour une solution plus performante, essayez l'extension PECL hidef.

Note : Pour effacer plusieurs constantes stockées (sans effacer tout le cache), un tableau vide peut être passé en tant que paramètre constants, ce qui effacera les valeurs stockées.

Liste de paramètres

key

La clé key correspondant au nom du jeu de constantes stockées. Ce paramètre key est utilisé pour récupérer les constantes stockées avec la fonction apc_load_constants().

constants

Un tableau associatif de paires constant_name => value. Le constant_name doit suivre les règles de nommage normales des constantes. value doit être évalué comme une valeur scalaire.

case_sensitive

Le comportement par défaut pour les constantes est d'être déclarées en tenant compte de la casse ; i.e. CONSTANT et Constant représentent des valeurs différentes. Si ce paramètre est évalué à FALSE, les constantes seront déclarées en tant que symboles insensibles à la casse.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec apc_define_constants()

<?php
$constants = array(
    'UN'   => 1,
    'DEUX'   => 2,
    'TROIS' => 3,
);
apc_define_constants('numbers', $constants);
echo UN, DEUX, TROIS;
?>

L'exemple ci-dessus va afficher :

123

Voir aussi

apc_load_constants()
define()
constant()
Or la référence sur les constantes PHP

Précédent | Sommaire | Suivant
apc_clear_cache | Niveau supérieur | apc_delete


apc_delete

(PECL)

apc_delete -- Efface une variable stockée depuis le cache

Description

bool apc_delete ( string key )

Liste de paramètres

key

La clé key utilisée pour stocker la valeur (avec apc_store()).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec apc_delete()

<?php
$bar = 'BAR';
apc_store('foo', $bar);
apc_delete('foo');
// c'est évidemment inutile sous cette forme
?>

Voir aussi

apc_store()
apc_fetch()

Précédent | Sommaire | Suivant
apc_define_constants | Niveau supérieur | apc_fetch


apc_fetch

(PECL)

apc_fetch -- Récupère une variable stockée depuis le cache

Description

mixed apc_fetch ( string key )

Liste de paramètres

key

La clé key utilisée pour stocker la valeur (avec apc_store()).

Valeurs de retour

La variable stockée en cas de succès, FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec apc_fetch()

<?php
$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));
?>

L'exemple ci-dessus va afficher :

string(3) "BAR"

Voir aussi

apc_store()
apc_delete()

Précédent | Sommaire | Suivant
apc_delete | Niveau supérieur | apc_load_constants


apc_load_constants

(PECL)

apc_load_constants -- Charge un jeu de constantes depuis le cache

Description

bool apc_load_constants ( string key [, bool case_sensitive] )

Liste de paramètres

key

Le nom du jeu de constantes (qui a été stocké avec la fonction apc_define_constants()) à récupérer.

case_sensitive

Le comportement par défaut pour les constantes est d'être déclarées en tenant compte de la casse ; i.e. CONSTANT et Constant représentent des valeurs différentes. Si ce paramètre est évalué à FALSE, les constantes seront déclarées en tant que symboles insensibles à la casse.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec apc_load_constants()

<?php
$constants = array(
    'UN'   => 1,
    'DEUX'   => 2,
    'TROIS' => 3,
);
apc_define_constants('numbers', $constants);
apc_load_constants('numbers');
echo UN, DEUX, TROIS;
?>

L'exemple ci-dessus va afficher :

123

Voir aussi

apc_define_constants()
define()
constant()
Or la référence sur les constantes PHP

Précédent | Sommaire | Suivant
apc_fetch | Niveau supérieur | apc_sma_info


apc_sma_info

(PECL)

apc_sma_info -- Récupère les informations d'allocation mémoire partagée APC

Description

array apc_sma_info ( void )

Valeurs de retour

Tableau de données d'allocation mémoire partagée ; FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec apc_sma_info()

<?php
print_r(apc_sma_info());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [num_seg] => 1
    [seg_size] => 31457280
    [avail_mem] => 31448408
    [block_lists] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [size] => 31448408
                            [offset] => 8864
                        )

                )

        )

)

Voir aussi

les directives de configuration APC

Précédent | Sommaire | Suivant
apc_load_constants | Niveau supérieur | apc_store


apc_store

(PECL)

apc_store -- Met en cache une variable dans les données stockées

Description

bool apc_store ( string key, mixed var [, int ttl] )

Note : Contrairement à tous les autres mécanismes de PHP, les variables stockées en utilisant la fonction apc_store() persistent entre les requêtes (tant que la valeur n'est pas effacée du cache).

Liste de paramètres

key

Stocke la variable en utilisant ce nom. Les clés key sont uniques, donc, stocker une seconde valeur avec la même clé effacera la valeur originale.

var

La variable à stocker.

ttl

Temps de vie : stocke la variable var dans le cache pour ttl secondes. Après que ttl soit passé, la variable stockée sera supprimée du cache (à la prochaine requête). Si aucun ttl n'est fournit (ou si le ttl vaut 0), la valeur persistera tant qu'elle ne sera pas effacée manuellement du cache, ou sinon n'existe pas dans le cache (effacement, redémarrage, etc.).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec apc_store()

<?php
$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));
?>

L'exemple ci-dessus va afficher :

string(3) "BAR"

Voir aussi

apc_add()
apc_fetch()
apc_delete()

Précédent | Sommaire | Suivant
apc_sma_info | Niveau supérieur | Débogueur avancé pour PHP


array_fill_keys

(no version information, might be only in CVS)

array_fill_keys -- Remplit un tableau avec des valeurs, en spécifiant les clés

Description

array array_fill_keys ( array keys, mixed value )

array_fill_keys() remplit un tableau avec la valeur du paramètre value, et en utilisant les valeurs du tableau keys comme clés..

Exemple 1. Exemple avec array_fill_keys()

<?php
$keys = array('foo', 5, 10, 'bar');
$a = array_fill_keys($keys, 'banane');
print_r($a);
?>

$a vaut maintenant :

Array
(
    [foo] => banane
    [5] => banane
    [10] => banane
    [bar] => banane
)

Voir aussi array_fill() et array_combine().

Précédent | Sommaire | Suivant
array_diff | Niveau supérieur | array_fill


array_product

(PHP 5 >= 5.1.0RC1)

array_product -- Calcule le produit des valeurs du tableau

Description

number array_product ( array array )

array_product() retourne le produit des valeurs du tableau array, sous forme d'un entier ou d'un nombre à virgule flottante.

Exemple 1. Exemple avec array_product()

$a = array(2, 4, 6, 8);
echo "produit(a) = " . array_product($a) . "\n";

L'exemple ci-dessus va afficher :

produit(a) = 384

Précédent | Sommaire | Suivant
array_pop | Niveau supérieur | array_push


bcompiler_write_included_filename

(PECL)

bcompiler_write_included_filename -- Écrit un fichier inclus en tant que bytecode

Description

bool bcompiler_write_included_filename ( resource filehandle, string filename )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Précédent | Sommaire | Suivant
bcompiler_write_header | Niveau supérieur | Compression Bzip2


curl_setopt_array

(PHP 5 CVS only)

curl_setopt_array -- Fixe plusieurs options pour un transfert cURL

Description

bool curl_setopt_array ( resource ch, array options )

Fixe plusieurs options pour une session cURL. Cette fonction est utile pour configurer un grand nombre d'options cURL sans appeler à chaque fois curl_setopt().

Liste de paramètres

ch

Un gestionnaire cURL retourné par la fonction curl_init().

options

Un tableau spécifiant quelles options à fixer avec leurs valeurs. Les clés devraient être des constantes valides de curl_setopt() ou leur entier équivalent.

Valeurs de retour

Retourne TRUE si toutes les options ont été fixées correctement. Si une option ne peut pas être fixée correctement, FALSE est retourné immédiatement, en ignorant toutes les options futures dans le tableau options.

Exemples

Exemple 1. Initialisation d'une nouvelle session cURL et récupération d'une page web

<?php
// crée une nouvelle ressource cURL
$ch = curl_init();

// fixe l'URL et les autres options appropriées
$options = array(CURLOPT_URL => 'http://www.example.com/',
                 CURLOPT_HEADER => false
                );

curl_setopt_array($ch, $options);

// attrape l'URL et la passe au navigateur
curl_exec($ch);

// ferme la ressource cURL et libère les ressources systèmes
curl_close($ch);
?>

Avant PHP 5.1.4, vous pouvez simuler cette fonction avec :

Exemple 2. Notre propre implémentation de la fonction curl_setopt_array()

<?php
if (!function_exists('curl_setopt_array')) {
   function curl_setopt_array(&$ch, $curl_options)
   {
       foreach ($curl_options as $option => $value) {
           if (!curl_setopt($ch, $option, $value)) {
               return false;
           }
       }
       return true;
   }
}
?>

Voir aussi

curl_setopt()

Précédent | Sommaire | Suivant
curl_multi_select | Niveau supérieur | curl_setopt


cybermut_creerformulairecm

(4.0.5 - 4.2.3 only, PECL)

cybermut_creerformulairecm -- Génère le formulaire HTML de demande pour le payement

Description

string cybermut_creerformulairecm ( string url_cm, string version, string tpe, string price, string ref_command, string text_free, string url_return, string url_return_ok, string url_return_err, string language, string code_company, string text_button )

cybermut_creerformulairecm() est utilisé pour générer le formulaire HTML de demande pour le payement.

Voir aussi

cybermut_testmac()
cybermut_creerreponsecm()

Précédent | Sommaire | Suivant
Fonctions Crédit Mutuel CyberMUT | Niveau supérieur | cybermut_creerreponsecm


cybermut_creerreponsecm

(4.0.5 - 4.2.3 only, PECL)

cybermut_creerreponsecm -- Génère le remerciement lors de la confirmation du payement

Description

string cybermut_creerreponsecm ( string sentence )

Le paramètre est "OK" si le message de confirmation du payement a été correctement identifié par la fonction cybermut_testmac(). Tout autre chaîne est considéré comme un message d'erreur.

Valeurs de retour

Retourne une chaîne contenant le message de remerciement délivré.

Voir aussi

cybermut_creerformulairecm()
cybermut_testmac()

Précédent | Sommaire | Suivant
cybermut_creerformulairecm | Niveau supérieur | cybermut_testmac


cybermut_testmac

(4.0.5 - 4.2.3 only, PECL)

cybermut_testmac -- Assurez-vous qu'il n'y avait aucune falsification de données dans le message de confirmation reçu

Description

bool cybermut_testmac ( string code_mac, string version, string tpe, string cdate, string price, string ref_command, string text_free, string code_return )

cybermut_testmac() est utilisé pour vous assurer qu'il n'y a aucune falsification de données dans le message de confirmation reçu. Faites attention aux paramètres code_return et text_free, qui ne peuvent pas être évalués tel que, en raison du tiret.

Voir aussi

cybermut_creerformulairecm()
cybermut_creerreponsecm()

Précédent | Sommaire | Suivant
cybermut_creerreponsecm | Niveau supérieur | Cyrus IMAP


date_create

(PHP 5 >= 5.1.0RC1)

date_create -- Retourne un nouvel objet DateTime

Description

DateTime date_create ( [string time [, DateTimeZone timezone]] )

DateTime DateTime::__construct ( [string time [, DateTimeZone timezone]] )

Liste de paramètres

time

Une chaîne de caractères dans le format accepté par strtotime(), la valeur par défaut est "now".

timezone

Fuseau horaire du temps.

Valeurs de retour

Retourne un objet DateTime en cas de succès ou FALSE en cas d'échec.

Précédent | Sommaire | Suivant
checkdate | Niveau supérieur | date_date_set


date_date_set

(no version information, might be only in CVS)

date_date_set -- Fixe la date

Description

void date_date_set ( DateTime object, int year, int month, int day )

void DateTime::setDate ( int year, int month, int day )

Liste de paramètres

object

Objet DateTime.

year

Année de la date.

month

Mois de la date.

day

Jour de la date.

Valeurs de retour

Retourne NULL en cas de succès ou FALSE en cas d'échec.

Voir aussi

date_isodate_set()
date_time_set()

Précédent | Sommaire | Suivant
date_create | Niveau supérieur | date_default_timezone_get


date_default_timezone_get

(PHP 5 >= 5.1.0RC1)

date_default_timezone_get -- Récupère le décalage horaire par défaut utilisé par toutes les fonctions date/heure dans un script

Description

string date_default_timezone_get ( void )

Cette fonction retourne le décalage horaire par défaut, utilisant l'odre suivant :

  • Le décalage horaire est définie en utilisant la fonction date_default_timezone_set() (si elle existe)

  • La variable d'environnement TZ (si elle n'est pas vide)

  • L'option de configuration date.timezone (si elle est définie)

  • Interrogation magique (si le système le supporte)

  • Si aucune des options suivantes ne réussissent, retourne UTC

Valeurs de retour

Retourne une chaîne de caractères.

Voir aussi

date_default_timezone_set()

Précédent | Sommaire | Suivant
date_date_set | Niveau supérieur | date_default_timezone_set


date_default_timezone_set

(PHP 5 >= 5.1.0RC1)

date_default_timezone_set -- Définit le décalage horaire par défaut utilisé par toutes les fonctions date/heure dans un script

Description

bool date_default_timezone_set ( string timezone_identifier )

date_default_timezone_set() définit le décalage horaire par défaut utilisé par toutes les fonctions date/heure.

Note : Depuis PHP 5.1.0 (lorsque les fonctions date/heure ont été écrites), chaque appel à une fonction date/heure génère une E_NOTICE si le décalage horaire n'est pas valide et/ou un message E_STRICT si vous utilisez des configurations système ou la variable d'environnement TZ.

Au lieu d'utiliser cette fonction pour définir le décalage horaire par défaut dans votre script, vous pouvez également utiliser la configuration INI date.timezone.

Liste de paramètres

timezone_identifier

L'identifiant de décalage horaire, comme UTC ou Europe/Lisbon. La liste des identifiants valides est disponible dans le Annexe I.

Valeurs de retour

Cette fonction retourne FALSE si timezone_identifier n'est pas valide, TRUE sinon.

Historique

Version | Description
5.1.2 | La fonction commence à valider le paramètre timezone_identifier.

Voir aussi

date_default_timezone_get()

Précédent | Sommaire | Suivant
date_default_timezone_get | Niveau supérieur | date_format


date_format

(PHP 5 >= 5.1.0RC1)

date_format -- Retourne la date mis en forme dans le format donné

Description

string date_format ( DateTime object, string format )

string DateTime::format ( string format )

Liste de paramètres

object

Objet DateTime.

format

Format accepté par date().

Valeurs de retour

Retourne une date mise en forme en cas de succès ou FALSE en cas d'échec.

Voir aussi

date()

Précédent | Sommaire | Suivant
date_default_timezone_set | Niveau supérieur | date_isodate_set


date_isodate_set

(no version information, might be only in CVS)

date_isodate_set -- Fixe la date ISO

Description

void date_isodate_set ( DateTime object, int year, int week [, int day] )

void DateTime::setISODate ( int year, int week [, int day] )

Liste de paramètres

object

Objet DateTime.

year

Année de la date.

month

Mois de la date.

day

Jour de la date.

Valeurs de retour

Retourne NULL en cas de succès ou FALSE en cas d'échec.

Voir aussi

date_date_set()

Précédent | Sommaire | Suivant
date_format | Niveau supérieur | date_modify


date_modify

(PHP 5 >= 5.1.0RC1)

date_modify -- Modifie le timestamp

Description

void date_modify ( DateTime object, string modify )

void DateTime::modify ( string modify )

Liste de paramètres

object

Objet DateTime.

modify

Une chaîne de caractères dans le format relatif accepté par strtotime().

Valeurs de retour

Retourne NULL en cas de succès ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec date_modify()

<?php
$date = new DateTime("2006-12-12");
$date->modify("+1 day");
echo $date->format("Y-m-d");
?>

L'exemple ci-dessus va afficher :

2006-12-13

Voir aussi

strtotime()

Précédent | Sommaire | Suivant
date_isodate_set | Niveau supérieur | date_offset_get


date_offset_get

(PHP 5 >= 5.1.0RC1)

date_offset_get -- Retourne le décalage de l'heure avancée

Description

int date_offset_get ( DateTime object )

int DateTime::getOffset ( void )

Liste de paramètres

object

Objet DateTime.

Valeurs de retour

Retourne le décalage de l'heure avancée en cas de succès ou FALSE en cas d'échec.

Précédent | Sommaire | Suivant
date_modify | Niveau supérieur | date_parse


date_parse

(no version information, might be only in CVS)

date_parse -- Retourne un tableau associatif avec des informations détaillées sur une date donnée

Description

array date_parse ( string date )

Liste de paramètres

date

Date mise en forme acceptée par strtotime().

Valeurs de retour

Retourne un tableau en cas de succès ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec date_parse()

<?php
print_r(date_parse("2006-12-12 10:00:00.5"));
?>

L'exemple ci-dessus va afficher :

Array
(
    [year] => 2006
    [month] => 12
    [day] => 12
    [hour] => 10
    [minute] => 0
    [second] => 0
    [fraction] => 0.5
    [warning_count] => 0
    [warnings] => Array()
    [error_count] => 0
    [errors] => Array()
    [is_localtime] =>
)

Voir aussi

getdate()

Précédent | Sommaire | Suivant
date_offset_get | Niveau supérieur | date_sun_info


date_sun_info

(no version information, might be only in CVS)

date_sun_info -- Retourne un tableau avec les informations sur lever/coucher du soleil ainsi que le début et la fin de l'aube

Description

array date_sun_info ( int time, float latitude, float longitude )

Liste de paramètres

time

Timestamp.

latitude

Latitude en degrés.

longitude

Longitude en degrés.

Valeurs de retour

Retourne un tableau en cas de succès ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec date_sun_info()

<?php
$sun_info = date_sun_info(strtotime("2006-12-12"), 31.7667, 35.2333);
foreach ($sun_info as $key => $val) {
    echo "$key: " . date("H:i:s", $val) . "\n";
}
?>

L'exemple ci-dessus va afficher :

sunrise: 05:52:11
sunset: 15:41:21
transit: 10:46:46
civil_twilight_begin: 05:24:08
civil_twilight_end: 16:09:24
nautical_twilight_begin: 04:52:25
nautical_twilight_end: 16:41:06
astronomical_twilight_begin: 04:21:32
astronomical_twilight_end: 17:12:00

Voir aussi

date_sunrise()
date_sunset()

Précédent | Sommaire | Suivant
date_parse | Niveau supérieur | date_sunrise


date_time_set

(no version information, might be only in CVS)

date_time_set -- Fixe le temps

Description

void date_time_set ( DateTime object, int hour, int minute [, int second] )

void DateTime::setTime ( int hour, int minute [, int second] )

Liste de paramètres

object

Objet DateTime.

hour

Heure du temps.

minute

Minute du temps.

second

Seconde du temps.

Valeurs de retour

Retourne NULL en cas de succès ou FALSE en cas d'échec.

Voir aussi

date_date_set()

Précédent | Sommaire | Suivant
date_sunset | Niveau supérieur | date_timezone_get


date_timezone_get

(PHP 5 >= 5.1.0RC1)

date_timezone_get -- Retourne le fuseau horaire relatif au DateTime donné

Description

DateTimeZone date_timezone_get ( DateTime object )

DateTimeZone DateTime::getTimezone ( void )

Liste de paramètres

object

Objet DateTime.

Valeurs de retour

Retourne un objet DateTimeZone en cas de succès ou FALSE en cas d'échec.

Voir aussi

date_timezone_set()

Précédent | Sommaire | Suivant
date_time_set | Niveau supérieur | date_timezone_set


date_timezone_set

(PHP 5 >= 5.1.0RC1)

date_timezone_set -- Fixe le fuseau horaire pour l'objet DateTime

Description

void date_timezone_set ( DateTime object, DateTimeZone timezone )

void DateTime::setTimezone ( DateTimeZone timezone )

Liste de paramètres

object

Objet DateTime.

timezone

Fuseau horaire désiré.

Valeurs de retour

Retourne NULL en cas de succès ou FALSE en cas d'échec.

Voir aussi

date_timezone_get()

Précédent | Sommaire | Suivant
date_timezone_get | Niveau supérieur | date


db2_client_info

(no version information, might be only in CVS)

db2_client_info -- Retourne un objet avec des propriétés qui décrivent le client de base de données DB2

Description

object db2_client_info ( resource connection )

Cette fonction retourne un objet avec des propriétés en lecture seule qui retournent des informations à propos du client de base de données DB2. La table suivante liste les propriétés du client DB2 :

Tableau 1. Propriétés du client DB2

Nom Propriété | Type de retour | Description
APPL_CODEPAGE | int | L'application est un code page.
CONN_CODEPAGE | int | Le code page pour la connexion courante.
DATA_SOURCE_NAME | string | Le nom source de la donnée (DSN) utilisé pour créer la connexion courante à la base de données.
DRIVER_NAME | string | Le nom de la bibliothèque qui implémente la spécification DB2 Call Level Interface (CLI).
DRIVER_ODBC_VER | string | La version de ODBC que le client DB2 supporte. Ceci retourne une ??? "MM.mm" où MM est la version majeure et mm est la version mineure. Le client DB2 retourne toujours "03.51".
DRIVER_VER | string | 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 string 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 | string | La version de ODBC que le gestionnaire de pilote ODBC supporte. Cela retourne une chaîne de caractères "MM.mm.rrrr" où MM est la version majeure, mm est la version mineure et rrrr est la mise à jour. Le client DB2 retourne toujours "03.01.0000".

Liste de paramètres

connection

Spécifie la connexion cliente DB2 active.

Valeurs de retour

Retourne un objet si l'appel est réussi. Retourne FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec db2_client_info()

Pour récupérer des informations à propos du client, vous devez passer une ressource de connexion de base de données valide à la fonction db2_client_info().

<?php
$conn = db2_connect( 'SAMPLE', 'db2inst1', 'ibmdb2' );
$client = db2_client_info( $conn );

if ($client) {
    echo "DRIVER_NAME: ";         var_dump( $client->DRIVER_NAME );
    echo "DRIVER_VER: ";         var_dump( $client->DRIVER_VER );
    echo "DATA_SOURCE_NAME: ";         var_dump( $client->DATA_SOURCE_NAME );
    echo "DRIVER_ODBC_VER: ";         var_dump( $client->DRIVER_ODBC_VER );
    echo "ODBC_VER: ";             var_dump( $client->ODBC_VER );
    echo "ODBC_SQL_CONFORMANCE: ";     var_dump( $client->ODBC_SQL_CONFORMANCE );
    echo "APPL_CODEPAGE: ";         var_dump( $client->APPL_CODEPAGE );
    echo "CONN_CODEPAGE: ";         var_dump( $client->CONN_CODEPAGE );
}
else {
    echo "Erreur de récupération des informations du client.
     Peut-être que votre connexion à la base de données était invalide.";
}
db2_close($conn);

?>

L'exemple ci-dessus va afficher :

DRIVER_NAME: string(8) "libdb2.a"
DRIVER_VER: string(10) "08.02.0001"
DATA_SOURCE_NAME: string(6) "SAMPLE"
DRIVER_ODBC_VER: string(5) "03.51"
ODBC_VER: string(10) "03.01.0000"
ODBC_SQL_CONFORMANCE: string(8) "EXTENDED"
APPL_CODEPAGE: int(819)
CONN_CODEPAGE: int(819)

Voir aussi

db2_server_info()

Précédent | Sommaire | Suivant
db2_bind_param | Niveau supérieur | db2_close


db2_fetch_array

(PECL)

db2_fetch_array -- Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats

Description

array db2_fetch_array ( resource stmt [, int row_number] )

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 erreur PHP de type warning 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()
db2_fetch_both()
db2_fetch_object()
db2_fetch_row()
db2_result()

Précédent | Sommaire | Suivant
db2_execute | Niveau supérieur | db2_fetch_assoc


db2_fetch_object

(PECL)

db2_fetch_object -- Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite

Description

object db2_fetch_object ( resource stmt [, int row_number] )

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 erreur PHP de type warning 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 remplient 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()
db2_fetch_assoc()
db2_fetch_both()
db2_fetch_row()
db2_result()

Précédent | Sommaire | Suivant
db2_fetch_both | Niveau supérieur | db2_fetch_row


db2_server_info

(no version information, might be only in CVS)

db2_server_info -- Retourne un objet avec des propriétés qui décrivent le serveur de base de données DB2

Description

object db2_server_info ( resource connection )

Cette fonction retourne un objet avec des propriétés en lecture seule qui retournent des informations à propos le serveur de base de données IBM DB2, Cloudscape ou Apache Derby. La table suivante liste les propriétés du serveur de base de données :

Tableau 1. Propriétés serveur de base de données

Nom Propriété | Type de retour | Description
DBMS_NAME | string | 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 | string | 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 | int | Le code page de la base de données sur laquelle vous êtes connecté.
DB_NAME | string | Le nom de la base de données sur laquelle vous êtes connecté.
DFT_ISOLATION string 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) : un 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 | string | Le caractère utilisé pour délimiter un identifiant.
INST_NAME | string | L'instance sur le serveur de base de données qui contient la base de données.
ISOLATION_OPTION | array | 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 | array | Un tableau des mots-clés réservés par le serveur de base de données.
LIKE_ESCAPE_CLAUSE | bool | 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 | int | Taille maximale d'un nom de colonne supportée par le serveur de base de données, exprimée en octets.
MAX_IDENTIFIER_LEN | int | Taille maximale d'un identifiant SQL supportée par les serveurs de base de données, exprimée en caractères.
MAX_INDEX_SIZE | int | 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 | int | Taille maximale d'un nom de procédure supporté par le serveur de base de données, exprimée en octets.
MAX_ROW_SIZE | int | 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 | int | Taille maximale d'un nom de schéma supporté par le serveur de base de données, exprimé en octets.
MAX_STATEMENT_LEN | int | Taille maximale d'une requête SQL supporté par le serveur de base de données, exprimée en octets.
MAX_TABLE_NAME_LEN | int | Taille maximale d'un nom de table supporté par le serveur de base de données, exprimée en octets.
NON_NULLABLE_COLUMNS | bool | 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 | 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 | string | Un chaîne de caractères contenant tous les caractères autre que a-Z, 0-9 et la barre de soulignement qui peuvent être utilisé en tant que nom d'identifiant.
SQL_CONFORMANCE string Le niveau de conformité à la spécification ANSI/ISO SQL-92 offert par le serveur de base de données :

ENTRY

Niveau de conformité SQL-92.

FIPS127

Conformité traditionnelle FIPS-127-2.

FULL

Niveau complet de conformité SQL-92.

INTERMEDIATE

Niveau intermédiaire de conformité SQL-92.

Liste de paramètres

connection

Spécifie la connexion cliente DB2 active.

Valeurs de retour

Retourne un objet si l'appel est réussi. Retourne FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec db2_server_info()

Pour récupérer des informations à propos du serveur, vous devez passer une ressource de connexion de base de données valide à la fonction db2_server_info().

<?php

$conn = db2_connect('sample', 'db2inst1', 'ibmdb2');

$server = db2_server_info( $conn );

if ($server) {
    echo "DBMS_NAME: ";                 var_dump( $server->DBMS_NAME );
    echo "DBMS_VER: ";                  var_dump( $server->DBMS_VER );
    echo "DB_CODEPAGE: ";               var_dump( $server->DB_CODEPAGE );
    echo "DB_NAME: ";                   var_dump( $server->DB_NAME );
    echo "INST_NAME: ";                 var_dump( $server->INST_NAME );
    echo "SPECIAL_CHARS: ";             var_dump( $server->SPECIAL_CHARS );
    echo "KEYWORDS: ";                  var_dump( sizeof($server->KEYWORDS) );
    echo "DFT_ISOLATION: ";             var_dump( $server->DFT_ISOLATION );
    echo "ISOLATION_OPTION: ";
    $il = '';
    foreach( $server->ISOLATION_OPTION as $opt )
    {
       $il .= $opt." ";
    }
    var_dump( $il );
    echo "SQL_CONFORMANCE: ";           var_dump( $server->SQL_CONFORMANCE );
    echo "PROCEDURES: ";                var_dump( $server->PROCEDURES );
    echo "IDENTIFIER_QUOTE_CHAR: ";     var_dump( $server->IDENTIFIER_QUOTE_CHAR );
    echo "LIKE_ESCAPE_CLAUSE: ";        var_dump( $server->LIKE_ESCAPE_CLAUSE );
    echo "MAX_COL_NAME_LEN: ";          var_dump( $server->MAX_COL_NAME_LEN );
    echo "MAX_ROW_SIZE: ";              var_dump( $server->MAX_ROW_SIZE );
    echo "MAX_IDENTIFIER_LEN: ";        var_dump( $server->MAX_IDENTIFIER_LEN );
    echo "MAX_INDEX_SIZE: ";            var_dump( $server->MAX_INDEX_SIZE );
    echo "MAX_PROC_NAME_LEN: ";         var_dump( $server->MAX_PROC_NAME_LEN );
    echo "MAX_SCHEMA_NAME_LEN: ";       var_dump( $server->MAX_SCHEMA_NAME_LEN );
    echo "MAX_STATEMENT_LEN: ";         var_dump( $server->MAX_STATEMENT_LEN );
    echo "MAX_TABLE_NAME_LEN: ";        var_dump( $server->MAX_TABLE_NAME_LEN );
    echo "NON_NULLABLE_COLUMNS: ";      var_dump( $server->NON_NULLABLE_COLUMNS );

    db2_close($conn);
}
?>

L'exemple ci-dessus va afficher :

DBMS_NAME: string(9) "DB2/LINUX"
DBMS_VER: string(10) "08.02.0000"
DB_CODEPAGE: int(1208)
DB_NAME: string(6) "SAMPLE"
INST_NAME: string(8) "db2inst1"
SPECIAL_CHARS: string(2) "@#"
KEYWORDS: int(179)
DFT_ISOLATION: string(2) "CS"
ISOLATION_OPTION: string(12) "UR CS RS RR "
SQL_CONFORMANCE: string(7) "FIPS127"
PROCEDURES: bool(true)
IDENTIFIER_QUOTE_CHAR: string(1) """
LIKE_ESCAPE_CLAUSE: bool(true)
MAX_COL_NAME_LEN: int(30)
MAX_ROW_SIZE: int(32677)
MAX_IDENTIFIER_LEN: int(18)
MAX_INDEX_SIZE: int(1024)
MAX_PROC_NAME_LEN: int(128)
MAX_SCHEMA_NAME_LEN: int(30)
MAX_STATEMENT_LEN: int(2097152)
MAX_TABLE_NAME_LEN: int(128)
NON_NULLABLE_COLUMNS: bool(true)

Voir aussi

db2_client_info()

Précédent | Sommaire | Suivant
db2_rollback | Niveau supérieur | db2_set_option


db2_set_option

(PECL)

db2_set_option -- Fixe des options pour une connexion ou des ressources

Description

bool db2_set_option ( resource resource, array options [, int type] )

Fixe des options pour une ressource ou une connexion. Vous ne pouvez pas fixer des options pour un jeu de résultats.

Liste de paramètres

resource

Une ressource valide comme retournée par
db2_prepare() ou une connexion valide comme
retournée par db2_connect() ou
db2_pconnect().

options

Un tableau associatif contenant des options de ressources ou de connexion valides. Ce paramètre peut être utilisé pour changer les valeurs d'autocommit, types de curseur (flottant ou à avance seule) et spécifier la casse des noms de colonne (minuscule, majuscule ou naturelle) qui apparaîtra dans le jeu de résultats.

autocommit

Passer DB2_AUTOCOMMIT_ON active l'autocommit pour la connexion spécifiée.

Passer DB2_AUTOCOMMIT_OFF désactive l'autocommit pour la connexion spécifiée.

cursor

Passer DB2_FORWARD_ONLY spécifie un curseur à avance seule pour une ressource. Ceci est le type de défaut pour un curseur et est supporté par tous les serveurs de base de données.

Passer DB2_SCROLLABLE spécifie un curseur flottant pour une ressource. Les curseurs flottants permettent aux lignes de résultats d'être accessibles dans un ordre non séquentiel. Ce type de curseur est supporté seulement par les bases de données IBM DB2 Universal Database.

binmode

Passer DB2_BINARY spécifie que des données binaires seront retournées comme telles. Ceci est le mode par défaut. Ceci est équivalent à la configuration ibm_db2.binmode=1 dans php.ini.

Passer DB2_CONVERT spécifie que les données binaires seront converties en encodage hexadécimal et seront retourné ainsi. Ceci est équivalent à la configuration ibm_db2.binmode=2 dans php.ini.

Passer DB2_PASSTHRU spécifie que les données binaires seront converties en NULL. Ceci est équivalent à la configuration ibm_db2.binmode=3 dans php.ini.

db2_attr_case

Passer DB2_CASE_LOWER spécifie que les noms des colonnes dans le jeu de résultats seront retournés en minuscule.

Passer DB2_CASE_UPPER spécifie que les noms des colonnes dans le jeu de résultats seront retournés en majuscule.

Passer DB2_CASE_NATURAL spécifie que les noms de colonnes dans le jeu de résultats seront retournés en casse naturelle.

Les nouvelles options suivantes i5/OS sont disponibles depuis la version 1.5.1 de ibm_db2. Note : les anciennes versions de ibm_db2 ne supportent pas ces nouvelles options.

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.

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 non égal à 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 :

Tableau 1. Resource-Parameter Matrix

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 | X | -
cursor | DB2_FORWARD_ONLY | X | 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 | -
i5_fetch_only | DB2_I5_FETCH_ON | - | X | -
i5_fetch_only | DB2_I5_FETCH_OFF | - | X | -

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
db2_pconnect()
db2_exec()
db2_prepare()
db2_cursor_type()

Précédent | Sommaire | Suivant
db2_server_info | Niveau supérieur | db2_special_columns


DOMDocument->normalizeDocument()

(no version information, might be only in CVS)

DOMDocument->normalizeDocument() -- Normalise le document

Description

class DOMDocument {

void normalizeDocument ( void )

}

Cette méthode fonctionne comme si vous sauvegardiez le document, puis vous le chargiez de nouveau, rendant le document sous une forme "normal".

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

La spécification DOM
DOMNode->normalize()

Précédent | Sommaire | Suivant
DOMDocument->loadXML() | Niveau supérieur | DOMDocument->registerNodeClass()


DOMDocument->registerNodeClass()

(no version information, might be only in CVS)

DOMDocument->registerNodeClass() -- Enregistre la classe étendue utilisée pour créer un type de base de noeud

Description

class DOMDocument {

bool registerNodeClass ( string baseclass, string extendedclass )

}

Cette méthode vous permet d'enregistrer votre propre classe étendue DOM à utiliser ensuite dans l'extension DOM de PHP.

Cette méthode ne fait pas partie du standard DOM.

Liste de paramètres

baseclass

La classe DOM qui vous voulez étendre. Vous pouvez trouver une liste de ces classes dans l'introduction du chapitre.

Bien sûr, vous ne pouvez pas enregistrer une classe étendant DOMDocument mais vous pouvez toujours commencer votre document en instanciant votre propre classe étendue.

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, FALSE en cas d'échec.

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>

Précédent | Sommaire | Suivant
DOMDocument->normalizeDocument() | Niveau supérieur | DOMDocument->relaxNGValidate()


DOMDocumentFragment->appendXML()

(no version information, might be only in CVS)

DOMDocumentFragment->appendXML() -- Ajoute des données XML

Description

class DOMDocumentFragment {

bool appendXML ( string data )

}

Ajoute des données XML brutes à un DOMDocumentFragment.

Cette méthode ne fait pas partie du standard DOM. Elle a été créée pour simplifier l'ajout d'un fragment XML dans un DOMDocument.

Si vous voulez respecter les standards, vous devez créer un DOMDocument temporaire avec une racine et parcourir les noeuds enfants de vos données XML pour les ajouter.

Liste de paramètres

data

XML à ajouter.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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>

Précédent | Sommaire | Suivant
DOMDocument->xinclude() | Niveau supérieur | DOMElement->__construct()


DOMElement->setIdAttribute()

(no version information, might be only in CVS)

DOMElement->setIdAttribute() -- Déclare l'attribut spécifié par son nom à être de type ID

Description

class DOMElement {

void setIdAttribute ( string name, bool isId )

}

Déclare l'attribut name afin qu'il soit de type ID.

Liste de paramètres

name

Le nom de l'attribut.

isId

Définissez à TRUE si vous voulez que name soit de type ID, FALSE sinon.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Envoyé si le noeud est en lecture seul.

DOM_NOT_FOUND

Envoyé si name n'est pas un attribut de cet élément.

Voir aussi

DOMDocument->getElementById()
DOMElement->setIdAttributeNode()
DOMElement->setIdAttributeNS()

Précédent | Sommaire | Suivant
DOMElement->setAttributeNS() | Niveau supérieur | DOMElement->setIdAttributeNode()


DOMElement->setIdAttributeNode()

(no version information, might be only in CVS)

DOMElement->setIdAttributeNode() -- Déclare l'attribut spécifié par le noeud à être de type ID

Description

class DOMElement {

void setIdAttributeNode ( DOMAttr attr, bool isId )

}

Déclare l'attribut spécifié par attr afin qu'il soit de type ID.

Liste de paramètres

attr

L'attribut du noeud.

isId

Définissez à TRUE si vous voulez que name soit de type ID, FALSE sinon.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Envoyé si le noeud est en lecture seul.

DOM_NOT_FOUND

Envoyé si name n'est pas un attribut de cet élément.

Voir aussi

DOMDocument->getElementById()
DOMElement->setIdAttribute()
DOMElement->setIdAttributeNS()

Précédent | Sommaire | Suivant
DOMElement->setIdAttribute() | Niveau supérieur | DOMElement->setIdAttributeNS()


DOMElement->setIdAttributeNS()

(no version information, might be only in CVS)

DOMElement->setIdAttributeNS() -- Déclare l'attribut spécifié par son nom local et son espace de nom URI à être de type ID

Description

class DOMElement {

void setIdAttributeNS ( string namespaceURI, string localName, bool isId )

}

Déclare l'attribut spécifié par localName et namespaceURI afin qu'il soit de type ID.

Liste de paramètres

namespaceURI

L'URI de l'espace de nom de l'attribut.

localName

Le nom local de l'attribut, sous la forme prefix:tagname.

isId

Définissez à TRUE si vous voulez que name soit de type ID, FALSE sinon.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

DOM_NO_MODIFICATION_ALLOWED_ERR

Envoyé si le noeud est en lecture seul.

DOM_NOT_FOUND

Envoyé si name n'est pas un attribut de cet élément.

Voir aussi

DOMDocument->getElementById()
DOMElement->setIdAttribute()
DOMElement->setIdAttributeNode()

Précédent | Sommaire | Suivant
DOMElement->setIdAttributeNode() | Niveau supérieur | DOMEntityReference->__construct()


DOMNode->isDefaultNamespace()

(no version information, might be only in CVS)

DOMNode->isDefaultNamespace() -- Vérifie si l'espace de nom spécifié est l'espace de noms par défaut ou non

Description

class DOMNode {

bool isDefaultNamespace ( string namespaceURI )

}

Vérifie si namespaceURI est l'espace de noms par défaut.

Liste de paramètres

namespaceURI

L'URI de l'espace de noms à vérifier.

Valeurs de retour

Retourne TRUE si namespaceURI est l'espace de noms par défaut, FALSE sinon.

Précédent | Sommaire | Suivant
DOMNode->insertBefore() | Niveau supérieur | DOMNode->isSameNode()


DomAttribute->set_value

(no version information, might be only in CVS)

DomAttribute->set_value -- Spécifie une valeur à un attribut

Description

class DomAttribute {

bool set_value ( string content )

}

Cette fonction spécifie une valeur à un attribut.

Liste de paramètres

content

La nouvelle valeur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Migration vers PHP 5

Utilisez la propriété value de DOMAttr.

Voir aussi

DomAttribute->value

Précédent | Sommaire | Suivant
DomAttribute->name | Niveau supérieur | DomAttribute->specified


DomElement->set_attribute_node()

(no version information, might be only in CVS)

DomElement->set_attribute_node() -- Ajoute un nouvel attribut

Description

class DomElement {

DomNode set_attribute_node ( DomNode attr )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
DomElement->remove_attribute() | Niveau supérieur | DomElement->set_attribute()


domxml_xslt_version

(PHP 4 >= 4.2.0, PECL)

domxml_xslt_version -- Lit le numéro de version de la bibliothèque XSLT

Description

int domxml_xslt_version ( void )

Lit le numéro de version de la bibliothèque XSLT.

Valeurs de retour

Retourne le numéro de version de la bibliothèque XSLT, comme un entier.

Exemples

Exemple 1. Exemple avec domxml_xslt_version()

<?php

echo domxml_xslt_version();

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

10112

Voir aussi

domxml_version()

Précédent | Sommaire | Suivant
domxml_xslt_stylesheet | Niveau supérieur | xpath_eval_expression


enchant_broker_describe

(PECL)

enchant_broker_describe -- Énumère les fournisseurs Enchant

Description

array enchant_broker_describe ( resource broker )

Énumère les fournisseurs Enchant et affiche quelques informations sur eux. Les mêmes informations sont fournis via la fonction phpinfo().

Liste de paramètres

broker

Ressource d'un sponsor

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, 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);

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Le sponsor courant fournit les interfaces suivantes :
Array
(
    [0] => Array
        (
            [name] => aspell
            [desc] => Aspell Provider
            [file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [1] => Array
        (
            [name] => hspell
            [desc] => Hspell Provider
            [file] => /usr/lib/enchant/libenchant_hspell.so
        )

    [2] => Array
        (
            [name] => ispell
            [desc] => Ispell Provider
            [file] => /usr/lib/enchant/libenchant_ispell.so
        )

    [3] => Array
        (
            [name] => myspell
            [desc] => Myspell Provider
            [file] => /usr/lib/enchant/libenchant_myspell.so
        )

)

Précédent | Sommaire | Suivant
Fonctions enchant | Niveau supérieur | enchant_broker_dict_exists


enchant_broker_dict_exists

(PECL)

enchant_broker_dict_exists -- Vérifie si un dictionnaire existe

Description

bool enchant_broker_dict_exists ( resource broker, string tag )

Vérifie si un dictionnaire existe.

Liste de paramètres

broker

Ressource de sponsor

tag

langage, dans un format comme us_US, ch_DE, etc.

Valeurs de retour

Retourne TRUE si le langage existe, FALSE sinon.

Exemples

Exemple 1. Exemple avec enchant_broker_dict_exists()

<?php
$tag = 'en_US';
$r = enchant_broker_init();
if (enchant_broker_dict_exists($r,$tag)) {
    echo $tag . " dictionary found.\n";
}
?>

Voir aussi

enchant_broker_describe()

Précédent | Sommaire | Suivant
enchant_broker_describe | Niveau supérieur | enchant_broker_free_dict


enchant_broker_free

(PECL)

enchant_broker_free -- Libère la ressource de sponsor ainsi que ses dictionnaires

Description

bool enchant_broker_free ( resource broker )

Libère une ressource de sponsor ainsi que tous ses dictionnaires.

Liste de paramètres

broker

Ressource de sponsor

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

enchant_broker_init()

Précédent | Sommaire | Suivant
enchant_broker_free_dict | Niveau supérieur | enchant_broker_get_error


enchant_broker_free_dict

(PECL)

enchant_broker_free_dict -- Libère une ressource de dictionnaire

Description

bool enchant_broker_free_dict ( resource dict )

Libère une ressource de dictionnaire.

Liste de paramètres

dict

Ressource de dictionnaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

enchant_broker_request_dict()
enchant_broker_request_pwl_dict()

Précédent | Sommaire | Suivant
enchant_broker_dict_exists | Niveau supérieur | enchant_broker_free


enchant_broker_get_error

(PECL)

enchant_broker_get_error -- Retourne la dernière erreur d'un sponsor

Description

string enchant_broker_get_error ( resource broker )

Retourne la dernière erreur survenue pour ce sponsor.

Liste de paramètres

broker

Ressource de sponsor

Valeurs de retour

Retourne le message si une erreur a été trouvée, ou FALSE sinon.

Précédent | Sommaire | Suivant
enchant_broker_free | Niveau supérieur | enchant_broker_init


enchant_broker_init

(PECL)

enchant_broker_init -- Crée un nouvel objet sponsor

Description

resource enchant_broker_init ( void )

Liste de paramètres

Valeurs de retour

Retourne une ressource de sponsor en cas de succès, FALSE sinon.

Voir aussi

enchant_broker_free()

Précédent | Sommaire | Suivant
enchant_broker_get_error | Niveau supérieur | enchant_broker_list_dicts


enchant_broker_list_dicts

(no version information, might be only in CVS)

enchant_broker_list_dicts -- Retourne une liste de tous les dictionnaires disponibles

Description

mixed enchant_broker_list_dicts ( resource broker )

Retourne une liste de tous les dictionnaires disponibles ainsi que leurs détails.

Liste de paramètres

broker

Ressource de sponsor

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, 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);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
        (
            [lang_tag] => de
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [1] => Array
        (
            [lang_tag] => de_DE
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [3] => Array
        (
            [lang_tag] => en
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [4] => Array
        (
            [lang_tag] => en_GB
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [5] => Array
        (
            [lang_tag] => en_US
            [provider_name] => aspell
            [provider_desc] => Aspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_aspell.so
        )

    [6] => Array
        (
            [lang_tag] => hi_IN
            [provider_name] => myspell
            [provider_desc] => Myspell Provider
            [provider_file] => /usr/lib/enchant/libenchant_myspell.so
        )

)

Voir aussi

enchant_broker_describe ()

Précédent | Sommaire | Suivant
enchant_broker_init | Niveau supérieur | enchant_broker_request_dict


enchant_broker_request_dict

(PECL)

enchant_broker_request_dict -- Crée un nouveau dictionnaire

Description

resource enchant_broker_request_dict ( resource broker, string tag )

Crée un nouveau dictionnaire en utilisant le paramètre tag, représentant le langage dont vous voulez associer le dictionnaire ("en_US", "de_DE", ...).

Liste de paramètres

broker

Ressource de sponsor

tag

Une balise décrivant le langage, par exemple, en_US, de_DE

Valeurs de retour

Retourne une ressource de dictionnaire en cas de succès, FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec enchant_broker_request_dict()

Vérifie si un dictionnaire existe en utilisant la fonction enchant_broker_dict_exists() et le demande.

<?php
$tag = 'en_US';
$broker = enchant_broker_init();
if (enchant_broker_dict_exists($broker,$tag)) {
    $dict = enchant_broker_request_dict($r, $tag);
}
?>

Voir aussi

enchant_dict_describe()
enchant_broker_dict_exists()
enchant_broker_dict_free()

Précédent | Sommaire | Suivant
enchant_broker_list_dicts | Niveau supérieur | enchant_broker_request_pwl_dict


enchant_broker_request_pwl_dict

(PECL)

enchant_broker_request_pwl_dict -- Crée un dictionnaire en utilisant un fichier PWL. Un fichier PWL est un fichier de mots personnels contenant un mot par ligne

Description

resource enchant_broker_request_pwl_dict ( resource broker, string filename )

Crée un dictionnaire en utilisant un fichier PWL. Un fichier PWL est un fichier de mots personnels contenant un mot par ligne.

Liste de paramètres

broker

Ressource de sponsor

filename

Chemin vers le fichier PWL

Valeurs de retour

Retourne une ressource de dictionnaire en cas de succès, FALSE si une erreur survient.

Voir aussi

enchant_dict_describe()
enchant_broker_dict_exists()
enchant_broker_dict_free()

Précédent | Sommaire | Suivant
enchant_broker_request_dict | Niveau supérieur | enchant_broker_set_ordering


enchant_broker_set_ordering

(PECL)

enchant_broker_set_ordering -- Déclare une préférence pour un dictionnaire d'une langue

Description

bool enchant_broker_set_ordering ( resource broker, string tag, string ordering )

Déclare une préférence pour un dictionnaire à utiliser pour la langue spécifiée par le paramètre tag. L'ordre des langues est une liste séparée par une virgule. Le caractère spécial "*" peut être utilisé comme langue pour déclarer un ordre par défaut pour tous les langages qui ne déclarent pas explicitement un ordre.

Liste de paramètres

broker

Ressource de sponsor

tag

La langue. Le caractère "*" peut être utilisé en tant que langage pour déclarer un ordre par défaut pour tous les langages qui ne déclarent pas explicitement un ordre.

ordering

Liste de noms de fournisseurs séparée par une virgule

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
enchant_broker_request_pwl_dict | Niveau supérieur | enchant_dict_add_to_personal


enchant_dict_add_to_personal

(PECL)

enchant_dict_add_to_personal -- Ajoute un mot à la liste des mots personnelle

Description

void enchant_dict_add_to_personal ( resource dict, string word )

Ajoute le mot word à la liste des mots personnelle du dictionnaire dict.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à ajouter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

enchant_broker_request_pwl_dict()
enchant_broker_request_dict()

Précédent | Sommaire | Suivant
enchant_broker_set_ordering | Niveau supérieur | enchant_dict_add_to_session


enchant_dict_add_to_session

(PECL)

enchant_dict_add_to_session -- Ajoute un mot à la session courante

Description

void enchant_dict_add_to_session ( resource dict, string word )

Ajoute le mot word au dictionnaire fourni. Il ne sera ajouté que pour la session courante.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à ajouter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

enchant_broker_request_dict()

Précédent | Sommaire | Suivant
enchant_dict_add_to_personal | Niveau supérieur | enchant_dict_check


enchant_dict_check

(PECL)

enchant_dict_check -- Vérifie si un mot est correctement orthographié

Description

bool enchant_dict_check ( resource dict, string word )

Retourne TRUE si le mot word est correctement orthographié, FALSE sinon.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à vérifier

Valeurs de retour

Retourne TRUE si le mot est correctement orthographié, FALSE sinon.

Précédent | Sommaire | Suivant
enchant_dict_add_to_session | Niveau supérieur | enchant_dict_describe


enchant_dict_describe

(PECL)

enchant_dict_describe -- Décrit un dictionnaire

Description

mixed enchant_dict_describe ( resource dict )

Retourne les détails d'un dictionnaire.

Liste de paramètres

dict

Ressource de dictionnaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, 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);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [lang] => en_US
    [name] => aspell
    [desc] => Aspell Provider
    [file] => /usr/lib/enchant/libenchant_aspell.so
)

Précédent | Sommaire | Suivant
enchant_dict_check | Niveau supérieur | enchant_dict_get_error


enchant_dict_get_error

(PECL)

enchant_dict_get_error -- Retourne la dernière erreur de la session courante

Description

string enchant_dict_get_error ( resource dict )

Retourne la dernière erreur de la session courante.

Liste de paramètres

dict

Ressource de dictionnaire

Valeurs de retour

Retourne le message d'erreur sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
enchant_dict_describe | Niveau supérieur | enchant_dict_is_in_session


enchant_dict_is_in_session

(PECL)

enchant_dict_is_in_session -- Vérifie si un mot existe dans une session de vérification

Description

bool enchant_dict_is_in_session ( resource dict, string word )

Vérifie si un mot existe ou non dans la session courante.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à vérifier

Valeurs de retour

Retourne TRUE si le mot existe, FALSE sinon.

Voir aussi

enchant_dict_add_to_session()

Précédent | Sommaire | Suivant
enchant_dict_get_error | Niveau supérieur | enchant_dict_quick_check


enchant_dict_quick_check

(PECL)

enchant_dict_quick_check -- Vérifie si le mot est correctement orthographié et fournit des suggestions

Description

bool enchant_dict_quick_check ( resource dict, string word [, array &suggestions] )

Retourne TRUE si le mot est correctement orthographié, FALSE si la variable des suggestions est fournie, et la remplit des suggestions possibles.

Liste de paramètres

dict

Ressource de dictionnaire

word

Le mot à vérifier

suggestions

Si le mot n'est pas correctement orthographié, cette variable contiendra un tableau de suggestions.

Valeurs de retour

Retourne TRUE si le mot est correctement orthographié, FALSE sinon.

Exemples

Exemple 1. Exemple avec enchant_dict_quick_check()

<?php
$tag = 'en_US';
$r = enchant_broker_init();

if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);
    enchant_dict_quick_check($d, 'soong', $suggs);
    print_r($suggs);
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => song
    [1] => snog
    [2] => soon
    [3] => Sang
    [4] => Sung
    [5] => sang
    [6] => sung
    [7] => sponge
    [8] => spongy
    [9] => snag
    [10] => snug
    [11] => sonic
    [12] => sing
    [13] => songs
    [14] => Son
    [15] => Sonja
    [16] => Synge
    [17] => son
    [18] => Sejong
    [19] => sarong
    [20] => sooner
    [21] => Sony
    [22] => sown
    [23] => scone
    [24] => song's
)

Voir aussi

enchant_dict_check()
enchant_dict_suggest()

Précédent | Sommaire | Suivant
enchant_dict_is_in_session | Niveau supérieur | enchant_dict_store_replacement


enchant_dict_store_replacement

(PECL)

enchant_dict_store_replacement -- Ajoute une orthographe pour un mot

Description

void enchant_dict_store_replacement ( resource dict, string mis, string cor )

Ajoute une orthographe pour mis en utilisant cor. Notez que si vous remplacez @mis par @cor, alors il est probable que les futures occurences den@mis seront remplacées par @cor. Ainsi, @cor sera ajouté à la liste des suggestions.

Liste de paramètres

dict

Ressource de dictionnaire

mis

Le mot à traiter

cor

Le mot correct

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
enchant_dict_quick_check | Niveau supérieur | enchant_dict_suggest


enchant_dict_suggest

(PECL)

enchant_dict_suggest -- Retourne une liste de valeurs si aucunes des conditions ne sont réunies

Description

array enchant_dict_suggest ( resource dict, string word )

Liste de paramètres

dict

Ressource de dictionnaire

word

Mot à utiliser pour les suggestions

Valeurs de retour

Retourne un tableau de suggestions si le mot est mal orthographié.

Exemples

Exemple 1. Exemple avec enchant_dict_suggest()

<?php
$tag = 'en_US';
$r = enchant_broker_init();
if (enchant_broker_dict_exists($r,$tag)) {
    $d = enchant_broker_request_dict($r, $tag);

    $spellerrors = enchant_dict_check($d, "soong");
    echo "found $spellerrors spell errors\n";
    if ($spellerrors) {
        $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()
enchant_dict_quick_check()

Précédent | Sommaire | Suivant
enchant_dict_store_replacement | Niveau supérieur | Gestion des erreurs


error_get_last

(no version information, might be only in CVS)

error_get_last -- Récupère la dernière erreur survenue

Description

array error_get_last ( void )

Récupère la dernière erreur survenue.

Valeurs de retour

Retourne un tableau associatif décrivant la dernière errer avec les clés "type", "message", "file" et "line". Retourne NULL s'il n'y a actuellement aucune erreur.

Exemples

Exemple 1. Exemple avec error_get_last()

<?php
echo $a;
print_r(error_get_last());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [type] => 8
    [message] => Undefined variable: a
    [file] => C:\WWW\index.php
    [line] => 2
)

Voir aussi

Error constants
Variable $php_errormsg
Directive display_errors

Précédent | Sommaire | Suivant
debug_print_backtrace | Niveau supérieur | error_log


expect_expectl

(no version information, might be only in CVS)

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

mixed expect_expectl ( resource expect, array cases, array &match )

Attend jusqu'à ce que la sortie d'un processus corresponde à un des motifs, un période de temps spécifique est passée ou un EOF est vu.

Si le paramètre match est fourni, alors il est rempli avec le résultat de la recherche. La chaîne de caractères de recherche peut être trouvée dans match[0]. Les sous-chaînes de recherche (selon les parenthèses) dans le motif original peuvent être trouvées dans match[1], match[2] et ainsi de suite jusqu'à match[9] (limité par libexpect).

Liste de paramètres

expect

Un flux de données Expect, ouvert précédemment avec expect_popen().

cases

Un tableau des cas expect. Chaque cas expect est un tableau indexé, comme décrit dans la table suivante :

Tableau 1. Expect Case Array

Clé Index | Type Valeur | Description | Est Obligatoire | Valeur par Défaut
0 | string | motif, qui sera vérifié avec la sortie du flux | oui
1 | mixed | valeur, qui sera retournée par cette fonction, si le motif concorde | oui
2 | integer | type de motif, un de : EXP_GLOB, EXP_EXACT ou EXP_REGEXP | non | EXP_GLOB

Valeurs de retour

Retourne une valeur associée avec le motif qui correspond.

En cas d'échec, cette fonction retourne : EXP_EOF, EXP_TIMEOUT ou EXP_FULLBUFFER

Historique

Version | Description
0.2.1 | Avant la version 0.2.1, dans le paramètre match, un résultat en chaîne de caractères était retourné et non un tableau de sous-chaînes de résultat.

Exemples

Exemple 1. Exemple avec expect_expectl()

<?php
// Copie le fichier à partir de l'hôte distant :
ini_set ("expect.timeout", 30);

$stream = fopen ("expect://scp user@remotehost:/var/log/messages /home/user/messages.txt", "r");

$cases = array (
  array (0 => "password:", 1 => PASSWORD),
  array (0 => "yes/no)?", 1 => YESNO)
);

while (true) {
 switch (expect_expectl ($stream, $cases))
 {
  case PASSWORD:
   fwrite ($stream, "password\n");
   break;

  case YESNO:
   fwrite ($stream, "yes\n");
   break;

  case EXP_TIMEOUT:
  case EXP_EOF:
   break 2;

  default:
   die ("Une erreur s'est produite !\n");
 }
}

fclose ($stream);
?>

Voir aussi

expect_popen()

Précédent | Sommaire | Suivant
Fonctions Expect | Niveau supérieur | expect_popen


expect_popen

(no version information, might be only in CVS)

expect_popen -- Exécute une commande via le shell Bourne, et ouvre le flux PTY au processus

Description

resource expect_popen ( string command )

Exécute une commande via le shell Bourne, et ouvre le flux PTY au processus.

Liste de paramètres

command

Commande à exécuter.

Valeurs de retour

Retourne un flux de données PTY ouvert au processus stdio, stdout et stderr.

En cas d'erreur, cette fonction retourne FALSE.

Exemples

Exemple 1. Exemple avec expect_popen()

<?php
// Identification au répertoire CVS de PHP.net
$stream = expect_popen ("cvs -d :pserver:anonymous@cvs.php.net:/repository login");
sleep (3);
fwrite ($stream, "phpfi\n");
fclose ($stream);
?>

Voir aussi

popen()

Précédent | Sommaire | Suivant
expect_expectl | Niveau supérieur | Fonctions de monitorage d'altération de fichiers


fbsql_rows_fetched

(PHP 5 >= 5.1.0RC1)

fbsql_rows_fetched -- Récupère le nombre de lignes affectées par la dernière requête

Description

int fbsql_rows_fetched ( resource result )

Récupère le nombre de lignes affectées par la dernière requête.

Liste de paramètres

result

Un identifiant de résultat retourné par la fonction fbsql_query() ou la fonction fbsql_db_query().

Valeurs de retour

Retourne le nombre de lignes, sous la forme d'un entier.

Précédent | Sommaire | Suivant
fbsql_rollback | Niveau supérieur | fbsql_select_db


fbsql_set_characterset

(PHP 5 >= 5.1.0RC1)

fbsql_set_characterset -- Modifie le jeu de caractères pour l'entrée / sortie

Description

void fbsql_set_characterset ( resource link_identifier, int characterset [, int in_out_both] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
fbsql_select_db | Niveau supérieur | fbsql_set_lob_mode


fbsql_table_name

(PHP 4 >= 4.2.0, PHP 5)

fbsql_table_name -- Récupère le nom de la table d'un champs

Description

string fbsql_table_name ( resource result, int index )

fbsql_table_name() récupère le nom de la table courante dans le jeu de résultats result.

La fonction fbsql_num_rows() peut être utilisée pour déterminer le nombre de tables dans le pointeur de résultats.

Liste de paramètres

result

Un pointeur de résultats retourné par la fonction fbsql_list_tables().

index

L'index de la table courante, sous la forme d'un entier.

Valeurs de retour

Retourne le nom de la table, sous le forme d'une chaîne de caractères.

Exemples

Exemple 1. Exemple avec fbsql_table_name()

<?php
fbsql_connect("localhost", "_SYSTEM", "");
$result = fbsql_list_tables("wisconsin");
$i = 0;
while ($i < fbsql_num_rows($result)) {
    $tb_names[$i] = fbsql_table_name($result, $i);
    echo $tb_names[$i] . "<br />";
    $i++;
}
?>

Précédent | Sommaire | Suivant
fbsql_stop_db | Niveau supérieur | fbsql_tablename


filter_has_var

(no version information, might be only in CVS)

filter_has_var -- VÃ©rifie si une variable d'un type spÃ©cifique existe

Description

bool filter_has_var ( int type, string variable_name )

Liste de paramètres

type

Une constante parmi INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV.

variable_name

Nom de la variable Ã vÃ©rifier.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
Fonctions Filter | Niveau supérieur | filter_id


filter_id

(no version information, might be only in CVS)

filter_id -- Retourne l'identifiant d'un filtre nommé

Description

int filter_id ( string filtername )

Liste de paramètres

filtername

Nom du filtre à récupérer.

Valeurs de retour

Identifiant du filtre en cas de succès, ou NULL si le filtre n'existe pas.

Voir aussi

filter_list()

Précédent | Sommaire | Suivant
filter_has_var | Niveau supérieur | filter_input_array


filter_input

(no version information, might be only in CVS)

filter_input -- Récupère une variable externe à PHP et la filtre

Description

mixed filter_input ( int type, string variable_name [, int filter [, mixed options]] )

Liste de paramètres

type

Une constante parmi INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV, INPUT_SESSION (actuellement non implémenté) ou INPUT_REQUEST (actuellement non implémenté).

variable_name

Nom de la variable à récupérer.

filter

Filtre à appliquer. Par défaut, vaut FILTER_DEFAULT.

options

Tableau associatif d'options ou des drappeaux. Si le filtre accepte les options, les drappeaux peuvent être fournis dans le champ "flags" du tableau.

Valeurs de retour

Valeur de la variable demandée en cas de succès, FALSE si le filtre échoue, ou NULL si la variable variable_name n'est pas définie. Si le drappeau FILTER_NULL_ON_FAILURE est utilisé, la fonction retournera FALSE si la variable n'est pas définie et NULL si le filtre échoue.

Exemples

Exemple 1. Exemple avec filter_input()

<?php
$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);
echo "Vous avez recherché $search_html.\n";
echo "<a href='?search=$search_url'>Nouvelle recherche.</a>";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Vous avez recherché Me &#38; son.
<a href='?search=Me%20%26%20son'>Nouvelle recherche.</a>

Voir aussi

filter_var()
filter_input_array()
filter_var_array()

Précédent | Sommaire | Suivant
filter_input_array | Niveau supérieur | filter_list


filter_input_array

(no version information, might be only in CVS)

filter_input_array -- Récupère plusieurs valeurs externes à PHP et, les filtrent

Description

mixed filter_input_array ( int type [, mixed definition] )

Cet fonction est utile pour récupérer plusieurs valeurs sans avoir à appeler répétitivement la fonction filter_input().

Liste de paramètres

type

Une constante parmi INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV, INPUT_SESSION, ou INPUT_REQUEST.

definition

Un tableau définissant les arguments. Une clé valide est une chaîne de caractères contenant le nom de la variable et une valeur valide est soit le type d'un filtre, soit un tableau spécifiant le filtre, les drappeaux 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 drappeaux à 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.

Valeurs de retour

Un tableau contenant les valeurs des variables demandées en cas de succès, ou FALSE si une erreur survient. Un tableau de valeurs peut valoir FALSE si le filtre échoue, ou NULL si la variable n'est pas définie. Ou, si le drappeau FILTER_NULL_ON_FAILURE est utilisé, la fonction retournera FALSE si la variable n'est pas définie et NULL si le filtre échoue.

Exemples

Exemple 1. Exemple avec filter_input_array()

<?php
error_reporting(E_ALL | E_STRICT);
/* les données arrivent depuis POST
$_POST = array(
    'product_id'    => 'libgd<script>',
    'component'     => '10',
    'versions'      => '2.0.33',
    'testscalar'    => array('2', '23', '10', '12'),
    'testarray'     => '2',
);
*/

$args = array(
    'product_id'   => FILTER_SANITIZE_ENCODED,
    'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            'flags'     => FILTER_FLAG_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_FLAG_SCALAR,
                           ),
    'testarray'    => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_FLAG_ARRAY,
                           )

);

$myinputs = filter_input_array(INPUT_POST, $args);

var_dump($myinputs);
echo "\n";
?>

L'exemple ci-dessus va afficher :

array(6) {
  ["product_id"]=>
  array(1) {
    [0]=>
    string(17) "libgd%3Cscript%3E"
  }
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
  array(1) {
    [0]=>
    string(6) "2.0.33"
  }
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

Voir aussi

filter_input()
filter_var_array()

Précédent | Sommaire | Suivant
filter_id | Niveau supérieur | filter_input


filter_list

(no version information, might be only in CVS)

filter_list -- Retourne une liste de tous les filtres supportés

Description

array filter_list ( void )

Valeurs de retour

Retourne un tableau de noms de tous les filtres supportés, un tableau vide s'il n'y a pas de filtre. Les index de ce tableau ne sont pas les identifiants des filtres, ils peuvent être obtenus avec la fonction filter_id() à partir du nom.

Exemples

Exemple 1. Exemple avec filter_list()

<?php
print_r(filter_list());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => int
    [1] => boolean
    [2] => float
    [3] => validate_regexp
    [4] => validate_url
    [5] => validate_email
    [6] => validate_ip
    [7] => string
    [8] => stripped
    [9] => encoded
    [10] => special_chars
    [11] => unsafe_raw
    [12] => email
    [13] => url
    [14] => number_int
    [15] => number_float
    [16] => magic_quotes
    [17] => callback
)

Précédent | Sommaire | Suivant
filter_input | Niveau supérieur | filter_var_array


filter_var

(no version information, might be only in CVS)

filter_var -- Filtre une variable avec un filtre spécifique

Description

mixed filter_var ( mixed variable [, int filter [, mixed options]] )

Liste de paramètres

variable

Valeur à filtrer, les tableaux sont filtrés récursivement.

filter

Identifiant du filtre à utiliser. Par défaut, vaut FILTER_SANITIZE_STRING.

options

Tableau associatif d'options ou des drappeaux. Si le filtre accepte les options, les drappeaux peuvent être fournis dans le champ "flags" du tableau. Pour les filtres de "callback", le type callback devra être passé.

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('example.com', FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED));
?>

L'exemple ci-dessus va afficher :

string(15) "bob@example.com"
bool(false)

Voir aussi

filter_var_array()
filter_input()
filter_input_array()
information à propos de callback type

Précédent | Sommaire | Suivant
filter_var_array | Niveau supérieur | Fonctions Firebird/InterBase


filter_var_array

(no version information, might be only in CVS)

filter_var_array -- Récupère plusieurs variables et les filtrent

Description

mixed filter_var_array ( array data [, mixed definition] )

Cette fonction est utile pour récupérer plusieurs valeurs sans appeler répétitivement la fonction filter_var().

Liste de paramètres

data

Un tableau avec les clés contenant les données à filtrer.

definition

Un tableau définissant les arguments. Une clé valide est une chaîne de caractères contenant le nom de la variable et une valeur valide est soit le type d'un filtre, soit un tableau spécifiant le filtre, les drappeaux 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 drappeaux à 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.

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. A filter_var_array() example

<?php
error_reporting(E_ALL | E_STRICT);
$data = array(
    'product_id'    => 'libgd<script>',
    'component'     => '10',
    'versions'      => '2.0.33',
    'testscalar'    => array('2', '23', '10', '12'),
    'testarray'     => '2',
);

$args = array(
    'product_id'   => FILTER_SANITIZE_ENCODED,
    'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            'flags'     => FILTER_FORCE_ARRAY,
                            'options'   => array('min_range' => 1, 'max_range' => 10)
                           ),
    'versions'     => FILTER_SANITIZE_ENCODED,
    'doesnotexist' => FILTER_VALIDATE_INT,
    'testscalar'   => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_SCALAR,
                           ),
    'testarray'    => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_FORCE_ARRAY,
                           )

);

$myinputs = filter_var_array($data, $args);

var_dump($myinputs);
echo "\n";
?>

L'exemple ci-dessus va afficher :

array(6) {
  ["product_id"]=>
  array(1) {
    [0]=>
    string(17) "libgd%3Cscript%3E"
  }
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
  array(1) {
    [0]=>
    string(6) "2.0.33"
  }
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

Voir aussi

filter_input_array()
filter_var()
filter_input()

Précédent | Sommaire | Suivant
filter_list | Niveau supérieur | filter_var


finfo_buffer

(PECL)

finfo_buffer -- Retourne des informations à propos une chaîne de caractères tampon

Description

string finfo_buffer ( resource finfo, string string [, int options] )

class finfo {

string buffer ( string string [, int options] )

}

Cette fonction est utilisée pour récupérer des informations à propos de données binaires dans une chaîne de caractères.

Liste de paramètres

finfo

Ressource Fileinfo retournée par finfo_open().

string

Contenu d'un fichier à être vérifié.

options

Une ou une union de plusieurs constantes Fileinfo.

Valeurs de retour

Retourne une description textuelle de l'argument string ou FALSE si une erreur s'est produite.

Exemples

Exemple 1. Exemple avec finfo_buffer()

<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

application/x-sh

Voir aussi

finfo_file()

Précédent | Sommaire | Suivant
Fonctions Fileinfo | Niveau supérieur | finfo_close


finfo_close

(PECL)

finfo_close -- Ferme une ressource fileinfo

Description

bool finfo_close ( resource finfo )

class finfo {

__destruct(); }

Cette fonction ferme la ressource ouverte par finfo_open().

Liste de paramètres

finfo

Ressource Fileinfo retournée par finfo_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
finfo_buffer | Niveau supérieur | finfo_file


finfo_file

(PECL)

finfo_file -- Retourne des informations à propos d'un fichier

Description

string finfo_file ( resource finfo, string file_name [, int options [, resource context]] )

class finfo {

string file ( string file_name [, int options [, resource context]] )

}

Cette fonction est utilisée pour récupérer des informations à propos d'un fichier.

Liste de paramètres

finfo

Ressource Fileinfo retournée par finfo_open().

file_name

Nom d'un fichier à être vérifié.

options

Une ou une union de plusieurs constantes Fileinfo.

context

Pour une description de contexts, référez-vous à Référence CLX, Flux.

Valeurs de retour

Retourne une description textuelle du contenu de l'argument filename ou FALSE si une erreur s'est produite.

Exemples

Exemple 1. Exemple avec finfo_file()

<?php
$finfo = finfo_open(FILEINFO_MIME); // Retourne le type mime à la extension mimetype
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

text/html
image/gif
application/vnd.ms-excel

Voir aussi

finfo_buffer()

Précédent | Sommaire | Suivant
finfo_close | Niveau supérieur | finfo_open


finfo_open

(PECL)

finfo_open -- Crée une nouvelle ressource fileinfo

Description

resource finfo_open ( [int options [, string arg]] )

class finfo {

__construct ( [int options [, string magic_file]] )

}

Cette fonction ouvre une base de données magique et retourne sa ressource.

Liste de paramètres

options

Une ou une union de plusieurs constantes Fileinfo.

magic_file

Nom de fichier d'une base de données magique, normalement quelque chose comme /path/to/magic.mime. Si non spécifié, la variable d'environnement MAGIC est utilisée. Si cette variable n'est pas fixée non plus, /usr/share/misc/magic est utilisé. L'extension .mime et/ou .mgc est ajoutée si approprié.

Valeurs de retour

Retourne une ressource de base de données magique en cas de succès ou FALSE en cas d'échec.

Voir aussi

finfo_close()

Précédent | Sommaire | Suivant
finfo_file | Niveau supérieur | finfo_set_flags


finfo_set_flags

(PECL)

finfo_set_flags -- Fixe des options de configuration libmagic

Description

bool finfo_set_flags ( resource finfo, int options )

class finfo {

bool set_flags ( int options )

}

Cette fonction fixe diverses options de Fileinfo. Les options peuvent être aussi fixées directement dans finfo_open() ou par d'autres fonctions Fileinfo.

Liste de paramètres

finfo

Ressource Fileinfo retournée par finfo_open().

options

Une ou une union de plusieurs constantes Fileinfo.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
finfo_open | Niveau supérieur | Fonctions filePro


geoip_country_code3_by_name

(no version information, might be only in CVS)

geoip_country_code3_by_name -- Récupère les trois lettres du code pays

Description

string geoip_country_code3_by_name ( string hostname )

La fonction geoip_country_code3_by_name() retourne les trois lettres du code pays correspondant au nom de l'hôte ou à l'adresse IP.

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne les trois lettres do code pays en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple 1. Exemple avec geoip_country_code3_by_name()

Cet exemple affiche où est localisé l'hôte example.com.

<?php
$country = geoip_country_code3_by_name('www.example.com');
if ($country) {
    echo 'Localisation de cet hôte : ' . $country;
}
?>

L'exemple ci-dessus va afficher :

Localisation de cet hôte : USA

Voir aussi

geoip_country_code_by_name()
geoip_country_name_by_name()

Précédent | Sommaire | Suivant
geoip_country_code_by_name | Niveau supérieur | geoip_country_name_by_name


geoip_country_code_by_name

(no version information, might be only in CVS)

geoip_country_code_by_name -- Récupère les deux lettres du code pays

Description

string geoip_country_code_by_name ( string hostname )

La fonction geoip_country_code_by_name() retourne les deux lettres du code pays correspondant au nom de l'hôte ou à l'adresse IP.

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne les deux lettres du code pays ISO en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple 1. Exemple avec geoip_country_code_by_name()

Cet exemple affiche la localisation de l'hôte example.com.

<?php
$country = geoip_country_code_by_name('www.example.com');
if ($country) {
    echo 'Localisation de cet hôte : ' . $country;
}
?>

L'exemple ci-dessus va afficher :

Localisation de cet hôte : US

Voir aussi

geoip_country_code3_by_name()
geoip_country_name_by_name()

Précédent | Sommaire | Suivant
Fonctions GeoIP | Niveau supérieur | geoip_country_code3_by_name


geoip_country_name_by_name

(no version information, might be only in CVS)

geoip_country_name_by_name -- Récupère le nom complet du pays

Description

string geoip_country_name_by_name ( string hostname )

La fonction geoip_country_name_by_name() retourne le nom complet du pays correspondant au nom de l'hôte ou à l'adresse IP.

Liste de paramètres

hostname

Le nom de l'hôte ou l'adresse IP

Valeurs de retour

Retourne le nom du pays en cas de succès, ou FALSE si l'adresse n'a pu être trouvée dans la base de données.

Exemples

Exemple 1. Exemple avec geoip_country_name_by_name()

Cet exemple affiche la localisation de l'hôte example.com.

<?php
$country = geoip_country_name_by_name('www.example.com');
if ($country) {
    echo 'Localisation de cet hôte : ' . $country;
}
?>

L'exemple ci-dessus va afficher :

Localisation de cet hôte : United States

Voir aussi

geoip_country_code_by_name()
geoip_country_code3_by_name()

Précédent | Sommaire | Suivant
geoip_country_code3_by_name | Niveau supérieur | geoip_database_info


geoip_database_info

(no version information, might be only in CVS)

geoip_database_info -- Récupère les informations de la base de données GeoIP

Description

string geoip_database_info ( [int database] )

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

Cet exemple affiche la version de la base de données courante.

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

Précédent | Sommaire | Suivant
geoip_country_name_by_name | Niveau supérieur | geoip_id_by_name


geoip_id_by_name

(no version information, might be only in CVS)

geoip_id_by_name -- Récupère le débit de la connexion Internet

Description

int geoip_id_by_name ( string hostname )

La fonction geoip_id_by_name() retourne la pays et la région 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 de l'hôte ou l'adresse IP

Valeurs de retour

Retourne le débit réseau.

Exemples

Exemple 1. Exemple avec geoip_id_by_name()

Cet exemple affiche le débit réseau 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

Précédent | Sommaire | Suivant
geoip_database_info | Niveau supérieur | geoip_org_by_name


geoip_org_by_name

(no version information, might be only in CVS)

geoip_org_by_name -- Récupère le nom de l'organisation

Description

string geoip_org_by_name ( string hostname )

La fonction geoip_org_by_name() retourne le nom de l'organisation auquel l'adresse IP est assignée.

Cette fonction est actuellement uniquement disponible aux utilisateurs qui ont acheté une license 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_country_code_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

Précédent | Sommaire | Suivant
geoip_id_by_name | Niveau supérieur | geoip_record_by_name


geoip_record_by_name

(no version information, might be only in CVS)

geoip_record_by_name -- Récupère les informations détaillées sur un pays, trouvées dans la base de données GeoIP

Description

array geoip_record_by_name ( string hostname )

La fonction geoip_record_by_name() retourne les informations enregistrées correspondant au nom de l'hôte ou à l'adresse IP.

Cette fonction est disponible pour les bases de données GeoLite City Edition et la version commerciale GeoIP City Edition. Une alerte sera émise si la base de données n'a pu être trouvée.

Les noms des différentes clés du tableau associatif retourné sont les suivantes :

  • "country_code" -- Les deux lettres du code pays (Voir geoip_country_code_by_name())

  • "region" -- Le code région (ex: CA pour California)

  • "city" -- La ville.

  • "postal_code" -- Le code postal, FSA ou Zip.

  • "latitude" -- La latitude.

  • "longitude" -- La longitude.

  • "dma_code"

  • "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.

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
(
    [country_code] => US
    [region] => CA
    [city] => Marina Del Rey
    [postal_code] =>
    [latitude] => 33.9776992798
    [longitude] => -118.435096741
    [dma_code] => 803
    [area_code] => 310
)

Précédent | Sommaire | Suivant
geoip_org_by_name | Niveau supérieur | geoip_region_by_name


geoip_region_by_name

(no version information, might be only in CVS)

geoip_region_by_name -- Récupère le code pays et la région

Description

array geoip_region_by_name ( string hostname )

La fonction geoip_region_by_name() retourne le pays et la région correspondant au nom de l'hôte ou à l'adresse IP.

Cette fonction est actuellement uniquement disponible pour les utilisateurs qui ont acheté une license 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
)

Précédent | Sommaire | Suivant
geoip_record_by_name | Niveau supérieur | Fonctions Gettext


gmp_nextprime

(no version information, might be only in CVS)

gmp_nextprime -- Trouve le prochain nombre premier

Description

resource gmp_nextprime ( int a )

Retourne le prochain nombre premier plus grand que a.

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.

Exemple 1. gmp_nextprime() example

<?php
$prime1 = gmp_nextprime(10); // prochain nom premier supérieur à 10
$prime2 = gmp_nextprime(-1000); // prochain nombre premier supérieur à -1000

echo gmp_strval($prime1) . "\n";
echo gmp_strval($prime2) . "\n";
?>

L'exemple ci-dessus va afficher :

11
-997

Précédent | Sommaire | Suivant
gmp_neg | Niveau supérieur | gmp_or


gnupg_adddecryptkey

(no version information, might be only in CVS)

gnupg_adddecryptkey -- Ajoute une clé pour déchiffrement

Description

bool gnupg_adddecryptkey ( resource identifier, string fingerprint, string passphrase )

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
gnupg Fonctions | Niveau supérieur | gnupg_addencryptkey


gnupg_addencryptkey

(no version information, might be only in CVS)

gnupg_addencryptkey -- Ajoute une clé pour chiffrement

Description

bool gnupg_addencryptkey ( resource identifier, string fingerprint )

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
gnupg_adddecryptkey | Niveau supérieur | gnupg_addsignkey


gnupg_addsignkey

(no version information, might be only in CVS)

gnupg_addsignkey -- Ajoute une clé pour signer

Description

bool gnupg_addsignkey ( resource identifier, string fingerprint [, string passphrase] )

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
gnupg_addencryptkey | Niveau supérieur | gnupg_cleardecryptkeys


gnupg_cleardecryptkeys

(no version information, might be only in CVS)

gnupg_cleardecryptkeys -- Supprime toutes les clés qui étaient fixées pour déchiffrement auparavant

Description

bool gnupg_cleardecryptkeys ( resource identifier )

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
gnupg_addsignkey | Niveau supérieur | gnupg_clearencryptkeys


gnupg_clearencryptkeys

(no version information, might be only in CVS)

gnupg_clearencryptkeys -- Supprime toutes les clés qui étaient fixées pour chiffrement auparavant

Description

bool gnupg_clearencryptkeys ( resource identifier )

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
gnupg_cleardecryptkeys | Niveau supérieur | gnupg_clearsignkeys


gnupg_clearsignkeys

(no version information, might be only in CVS)

gnupg_clearsignkeys -- Supprime toutes les clés qui étaient fixées pour signature auparavant

Description

bool gnupg_clearsignkeys ( resource identifier )

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
gnupg_clearencryptkeys | Niveau supérieur | gnupg_decrypt


gnupg_decrypt

(no version information, might be only in CVS)

gnupg_decrypt -- Déchiffre un texte donné

Description

string gnupg_decrypt ( resource identifier, string text )

Déchiffre un texte donné avec les clés qui ont été fixées avec gnupg_adddecryptkey auparavant.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec gnupg_decrypt() (Style procédural)

<?php
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = gnupg_decrypt($res,$encrypted_text);
echo $plain;
?>

Exemple 2. Exemple avec gnupg_encrypt() (Style orienté objet)

<?php
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = $gpg -> decrypt($encrypted_text);
echo $plain;
?>

Précédent | Sommaire | Suivant
gnupg_clearsignkeys | Niveau supérieur | gnupg_decryptverify


gnupg_decryptverify

(no version information, might be only in CVS)

gnupg_decryptverify -- Déchiffre et vérifie un texte donné

Description

array gnupg_decryptverify ( resource identifier, string text, string plaintext )

Déchiffre et vérifie un texte donné et retourne les informations à propos de la signature. 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);
?>

Précédent | Sommaire | Suivant
gnupg_decrypt | Niveau supérieur | gnupg_encrypt


gnupg_encrypt

(no version information, might be only in CVS)

gnupg_encrypt -- Chiffre un texte donné

Description

string gnupg_encrypt ( resource identifier, string plaintext )

Chiffre le paramètre plaintext avec les clés qui ont été fixées avec gnupg_addencryptkey auparavant et retourne le texte chiffré.

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

Précédent | Sommaire | Suivant
gnupg_decryptverify | Niveau supérieur | gnupg_encryptsign


gnupg_encryptsign

(no version information, might be only in CVS)

gnupg_encryptsign -- Chiffre et signe un texte donné

Description

string gnupg_encryptsign ( resource identifier, string plaintext )

Chiffre et signe le paramètre plaintext avec les clés qui ont été fixées avec gnupg_addsignkey et gnupg_addencryptkey auparavant et retourne le texte chiffré et signé.

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

Précédent | Sommaire | Suivant
gnupg_encrypt | Niveau supérieur | gnupg_export


gnupg_export

(no version information, might be only in CVS)

gnupg_export -- Exporte une clé

Description

string gnupg_export ( resource identifier, string fingerprint )

Exporte la clé fingerprint.

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

Précédent | Sommaire | Suivant
gnupg_encryptsign | Niveau supérieur | gnupg_geterror


gnupg_geterror

(no version information, might be only in CVS)

gnupg_geterror -- Retourne le texte d'erreur, si une fonction échoue

Description

string gnupg_geterror ( resource identifier )

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

Précédent | Sommaire | Suivant
gnupg_export | Niveau supérieur | gnupg_getprotocol


gnupg_getprotocol

(no version information, might be only in CVS)

gnupg_getprotocol -- Retourne le protocole actif courant pour toutes les opérations

Description

int gnupg_getprotocol ( resource identifier )

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

Précédent | Sommaire | Suivant
gnupg_geterror | Niveau supérieur | gnupg_import


gnupg_import

(no version information, might be only in CVS)

gnupg_import -- Importe une clé

Description

array gnupg_import ( resource identifier, string keydata )

Importe la clé keydata et retourne un tableau avec les informations à propos du processus d'importation.

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

Précédent | Sommaire | Suivant
gnupg_getprotocol | Niveau supérieur | gnupg_keyinfo


gnupg_keyinfo

(no version information, might be only in CVS)

gnupg_keyinfo -- Retourne un tableau avec les informations à propos de toutes les clés qui correspondent au motif donné

Description

array gnupg_keyinfo ( resource identifier, string pattern )

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

Précédent | Sommaire | Suivant
gnupg_import | Niveau supérieur | gnupg_setarmor


gnupg_setarmor

(no version information, might be only in CVS)

gnupg_setarmor -- Change la sortie blindée

Description

bool gnupg_setarmor ( resource identifier, int 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, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
gnupg_keyinfo | Niveau supérieur | gnupg_seterrormode


gnupg_seterrormode

(no version information, might be only in CVS)

gnupg_seterrormode -- Fixe le mode pour error_reporting

Description

void gnupg_seterrormode ( resource identifier, int errormode )

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

Précédent | Sommaire | Suivant
gnupg_setarmor | Niveau supérieur | gnupg_setsignmode


gnupg_setsignmode

(no version information, might be only in CVS)

gnupg_setsignmode -- Fixe le mode pour signer

Description

bool gnupg_setsignmode ( resource identifier, int signmode )

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, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
gnupg_seterrormode | Niveau supérieur | gnupg_sign


gnupg_sign

(no version information, might be only in CVS)

gnupg_sign -- Signe un texte donné

Description

string gnupg_sign ( resource identifier, string plaintext )

Signe le paramètre plaintext avec les clés qui ont été fixées avec gnupg_addsignkey auparavant et retourne le texte signé ou la signature, dépendamment de ce qui a été fixé avec gnupg_setsignmode.

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 -> setsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed = $gpg -> sign("juste un test");
echo $signed;
?>

Précédent | Sommaire | Suivant
gnupg_setsignmode | Niveau supérieur | gnupg_verify


gnupg_verify

(no version information, might be only in CVS)

gnupg_verify -- Vérifie un texte signé

Description

array gnupg_verify ( resource identifier, string signed_text, string signature [, string plaintext] )

Vérifie le paramètre signed_text et retourne les informations à propos de la signature. Pour vérifier un texte signé en clair, fixez la signature à FALSE. Si le paramètre optionnel plaintext 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);
?>

Précédent | Sommaire | Suivant
gnupg_sign | Niveau supérieur | Net_Gopher


gopher_parsedir

(PECL)

gopher_parsedir -- Transpose une entrÃ©e d'un dossier formatÃ© gopher dans un tableau associatif

Description

array gopher_parsedir ( string dirent )

gopher_parsedir() transpose une entrÃ©e d'un dossier formatÃ© gopher dans un tableau associatif.

Gopher retourne des documents text/plain pour les documents demandÃ©s. Une requÃªte vers un dossier (comme /) retournera des sÃ©ries de lignes encodÃ©es oÃ¹ chaque ligne est une entrÃ©e du dossier ou une ligne d'informations.

Liste de paramètres

dirent

L'entrÃ©e du dossier.

Valeurs de retour

Retourne un tableau associatif dont les composants sont :

  • type - Une constante GOPHER_XXX.

  • title - Le nom de la ressource.

  • path - Le chemin vers la ressource.

  • host - Le nom du domaine de l'hÃ´te qui possÃ¨de ce document (ou dossier).

  • port - Le port de connexion sur l'hÃ´te host.

En cas d'Ã©chec, l'entrÃ©e additionnelle data du tableau retournÃ©e contiendra la ligne analysÃ©e.

Exemples

Exemple 1. Affichage hypothÃ©tique depuis gopher://gopher.example.com/

0All about my gopher site.	/allabout.txt	gopher.example.com	70
9A picture of my cat.	/pics/cat.png	gopher.example.com	70
1A collection of my writings.	/stories	gopher.example.com	70
hThe HTTP version of this site.	URL:http://www.example.com	gopher.example.com	70
1Mirror of this site in Spain.	/	gopher.ejemplo.co.es	70
iWelcome to my gopher site.		error.host	1
iPlease select one of the options above		error.host	1
iSend complaints to /dev/null		error.host	1
iLong live gopher!		error.host	1

Dans l'exemple prÃ©cÃ©dent, le dossier racine de gopher.example.com reconnaÃ®t un DOCUMENT identifiÃ© par 0 et se trouvant Ã l'adresse gopher://gopher.example.com:70/allabout.txt. Il reconnaÃ®t Ã©galement deux autres dossiers (qui ont leur propre liste de fichiers) Ã l'adresse gopher://gopher.exmaple.com:70/stories et Ã l'adresse gopher://gopher.ejemplo.co.es:70/. Il y a Ã©galement un fichier binaire, un lien vers une url HTTP et plusieurs lignes d'informations.

En passant chaque ligne du listing de ce dossier Ã la fonction gopher_parsedir(), un tableau associatif est formÃ© contenant une version analysÃ©e des donnÃ©es.

Exemple 2. Exemple avec gopher_parsedir()

<?php

$directory = file("gopher://gopher.example.com");

foreach($directory as $dirent) {
    print_r(gopher_parsedir($dirent));
}
?>

L'exemple ci-dessus va afficher :

Array (
  [type] => 0
  [title] => All about my gopher site.
  [path] => /allabout.txt
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 9
  [title] => A picture of my cat.
  [path] => /pics/cat.png
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 1
  [title] => A collection of my writings.
  [path] => /stories
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 254
  [title] => The HTTP version of this site.
  [path] => URL:http://www.example.com
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 1
  [title] => Mirror of this site in Spain.
  [path] => /
  [host] => gopher.ejemplo.co.es
  [port] => 70
)
Array (
  [type] => 255
  [title] => Welcome to my gopher site.
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Please select one of the options above.
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Send complaints to /dev/null
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Long live gopher!
  [path] =>
  [host] => error.host
  [port] => 1
)

Précédent | Sommaire | Suivant
Net_Gopher | Niveau supérieur | Haru PDF Functions


gzdecode

(no version information, might be only in CVS)

gzdecode -- Décode une chaîne de caractères compressée gzip

Description

string gzdecode ( string data [, int length] )

Cette fonction retourne une version décodée des données data.

Liste de paramètres

data

Les données à décoder, encodées par la fonction gzencode().

length

La longueur maximale de données à décoder.

Valeurs de retour

La chaîne de caractères décodée, ou FALSE si une erreur survient.

Voir aussi

gzencode()

Précédent | Sommaire | Suivant
gzcompress | Niveau supérieur | gzdeflate


__halt_compiler

(no version information, might be only in CVS)

__halt_compiler -- Stoppe l'exécution du compilateur

Description

void __halt_compiler ( void )

Stoppe l'exécution du compilateur. Ceci peut être très utile pour embarquer des données dans des scripts PHP, comme des fichiers d'installation. L'octet de la position du début des données peut être déterminé par la constante __COMPILER_HALT_OFFSET__ qui n'est définie que s'il y a une fonction __halt_compiler() présente dans le fichier.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Exemple avec __halt_compiler()

<?php

// Ouverture d'un fichier
$fp = fopen(__FILE__, 'r');

// Déplace le pointeur de fichier vers les données
fseek($fp, __COMPILER_HALT_OFFSET__);

// Puis, on l'affiche
var_dump(stream_get_contents($fp));

// La fin de l'exécution du script
__halt_compiler();les données d'installation (eg. tar, gz, PHP, etc..)

Notes

Note : __halt_compiler() ne peut être utilisé que depuis une portée extérieure.

Précédent | Sommaire | Suivant
get_browser | Niveau supérieur | highlight_file


HaruAnnotation::setBorderStyle

(no version information, might be only in CVS)

HaruAnnotation::setBorderStyle -- Set the border style of the annotation

Description

bool HaruAnnotation::setBorderStyle ( float width, int dash_on, int dash_off )

Defines the style of the border of the annotation. This function may be used with link annotations only.

Liste de paramètres

width

The width of the border line.

dash_on

The dash style.

dash_off

The dash style.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDestination | Niveau supérieur | HaruAnnotation::setHighlightMode


HaruAnnotation::setHighlightMode

(no version information, might be only in CVS)

HaruAnnotation::setHighlightMode -- Set the highlighting mode of the annotation

Description

bool HaruAnnotation::setHighlightMode ( int mode )

Defines the appearance of the annotation when clicked. This function may be used with link annotations only.

Liste de paramètres

mode

The highlighting mode of the annotation. Can take only these values:

HaruAnnotation::NO_HIGHLIGHT - no highlighting.
HaruAnnotation::INVERT_BOX - invert the contents of the annotation.
HaruAnnotation::INVERT_BORDER - invert the border of the annotation.
HaruAnnotation::DOWN_APPEARANCE - dent the annotation.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruAnnotation::setBorderStyle | Niveau supérieur | HaruAnnotation::setIcon


HaruAnnotation::setIcon

(no version information, might be only in CVS)

HaruAnnotation::setIcon -- Set the icon style of the annotation

Description

bool HaruAnnotation::setIcon ( int icon )

Defines the style of the annotation icon. This function may be used with text annotations only.

Liste de paramètres

icon

The style of the icon. Can take only these values:

HaruAnnotation::ICON_COMMENT
HaruAnnotation::ICON_KEY
HaruAnnotation::ICON_NOTE
HaruAnnotation::ICON_HELP
HaruAnnotation::ICON_NEW_PARAGRAPH
HaruAnnotation::ICON_PARAGRAPH
HaruAnnotation::ICON_INSERT

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruAnnotation::setHighlightMode | Niveau supérieur | HaruAnnotation::setOpened


HaruAnnotation::setOpened

(no version information, might be only in CVS)

HaruAnnotation::setOpened -- Set the initial state of the annotation

Description

bool HaruAnnotation::setOpened ( bool opened )

Defines whether the annotation is initially displayed open. This function may be used with text annotations only.

Liste de paramètres

opened

TRUE means the annotation is initially displayed open, FALSE - means it's closed.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruAnnotation::setIcon | Niveau supérieur | HaruDestination::setFit


HaruDestination::setFit

(no version information, might be only in CVS)

HaruDestination::setFit -- Set the appearance of the page to fit the window

Description

bool HaruDestination::setFit ( void )

Defines the appearance of the page to fit the window.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruAnnotation::setOpened | Niveau supérieur | HaruDestination::setFitB


HaruDestination::setFitB

(no version information, might be only in CVS)

HaruDestination::setFitB -- Set the appearance of the page to fit the bounding box of the page within the window

Description

bool HaruDestination::setFitB ( void )

Defines the appearance of the page to fit the bounding box of the page within the window.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDestination::setFit | Niveau supérieur | HaruDestination::setFitBH


HaruDestination::setFitBH

(no version information, might be only in CVS)

HaruDestination::setFitBH -- Set the appearance of the page to fit the width of the bounding box

Description

bool HaruDestination::setFitBH ( float top )

Defines the appearance of the page to magnifying to fit the width of the bounding box and setting the top position of the page to the value of top.

Liste de paramètres

top

The top coordinates of the page.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDestination::setFitB | Niveau supérieur | HaruDestination::setFitBV


HaruDestination::setFitBV

(no version information, might be only in CVS)

HaruDestination::setFitBV -- Set the appearance of the page to fit the height of the boudning box

Description

bool HaruDestination::setFitBV ( float left )

Defines the appearance of the page to magnifying to fit the height of the bounding box and setting the left position of the page to the value of left.

Liste de paramètres

left

The left coordinates of the page.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDestination::setFitBH | Niveau supérieur | HaruDestination::setFitH


HaruDestination::setFitH

(no version information, might be only in CVS)

HaruDestination::setFitH -- Set the appearance of the page to fit the window width

Description

bool HaruDestination::setFitH ( float top )

Defines the appearance of the page to fit the window width and sets the top position of the page to the value of top.

Liste de paramètres

top

The top position of the page.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDestination::setFitBV | Niveau supérieur | HaruDestination::setFitR


HaruDestination::setFitR

(no version information, might be only in CVS)

HaruDestination::setFitR -- Set the appearance of the page to fit the specified rectangle

Description

bool HaruDestination::setFitR ( float left, float bottom, float right, float top )

Defines the appearance of the page to fit the rectangle by the parameters.

Liste de paramètres

left

The left coordinates of the page.

bottom

The bottom coordinates of the page.

right

The right coordinates of the page.

top

The top coordinates of the page.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDestination::setFitH | Niveau supérieur | HaruDestination::setFitV


HaruDestination::setFitV

(no version information, might be only in CVS)

HaruDestination::setFitV -- Set the appearance of the page to fit the window height

Description

bool HaruDestination::setFitV ( float left )

Defines the appearance of the page to fit the window height.

Liste de paramètres

left

The left position of the page.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDestination::setFitR | Niveau supérieur | HaruDestination::setXYZ


HaruDestination::setXYZ

(no version information, might be only in CVS)

HaruDestination::setXYZ -- Set the appearance of the page

Description

bool HaruDestination::setXYZ ( float left, float top, float zoom )

Defines the appearance of the page using three parameters: left, top and zoom.

Liste de paramètres

left

The left position of the page.

top

The top position of the page.

zoom

The magnification factor. The value must be between 0.08 (8%) and 32 (3200%).

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDestination::setFitV | Niveau supérieur | HaruDoc::addPage


HaruDoc::addPage

(no version information, might be only in CVS)

HaruDoc::addPage -- Add new page to the document

Description

object HaruDoc::addPage ( void )

Adds new page to the document and returns new HaruPage instance.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::insertPage()

Précédent | Sommaire | Suivant
HaruDestination::setXYZ | Niveau supérieur | HaruDoc::addPageLabel


HaruDoc::addPageLabel

(no version information, might be only in CVS)

HaruDoc::addPageLabel -- Set the numbering style for the specified range of pages

Description

bool HaruDoc::addPageLabel ( int first_page, int style, int first_num [, string prefix] )

Set the numbering style for the specified range of pages.

Liste de paramètres

first_page

The first page included into the labeling range.

style

The numbering style. The following values are allowed:

HaruPage::NUM_STYLE_DECIMAL - page label is displayed using decimal numerals.
HaruPage::NUM_STYLE_UPPER_ROMAN - page label is displayed using uppercase Roman numerals.
HaruPage::NUM_STYLE_LOWER_ROMAN - page label is displayed using lowercase Roman numerals.
HaruPage::NUM_STYLE_UPPER_LETTER - page label is displayed using uppercase letters (from A to Z).
HaruPage::NUM_STYLE_LOWER_LETTERS - page label is displayed using lowercase letters (from a to z).

first_num

The first page number in this range.

prefix

The prefix for the page label. Optional, empty by default.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDoc::addPage | Niveau supérieur | HaruDoc::__construct


HaruDoc::__construct

(no version information, might be only in CVS)

HaruDoc::__construct -- Construct new HaruDoc instance

Description

void HaruDoc::__construct ( void )

Constructs new HaruDoc instance.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDoc::addPageLabel | Niveau supérieur | HaruDoc::createOutline


HaruDoc::createOutline

(no version information, might be only in CVS)

HaruDoc::createOutline -- Create a HaruOutline instance

Description

object HaruDoc::createOutline ( string title [, object parent_outline [, object encoder]] )

Creates and returns new HaruOutline instance.

Liste de paramètres

title

The caption of new outline object.

parent_outline

A valid HaruOutline instance or NULL.

encoder

A valid HaruEncoder instance or NULL.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDoc::__construct | Niveau supérieur | HaruDoc::getCurrentEncoder


HaruDoc::getCurrentEncoder

(no version information, might be only in CVS)

HaruDoc::getCurrentEncoder -- Get HaruEncoder currently used in the document

Description

object HaruDoc::getCurrentEncoder ( void )

Returns HaruEncoder currently used in the document or FALSE if encoder is not set.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::setCurrentEncoder()

Précédent | Sommaire | Suivant
HaruDoc::createOutline | Niveau supérieur | HaruDoc::getCurrentPage


HaruDoc::getCurrentPage

(no version information, might be only in CVS)

HaruDoc::getCurrentPage -- Return current page of the document

Description

object HaruDoc::getCurrentPage ( void )

Get current page of the document. Returns HaruPage instance on success or FALSE if there is no current page at the moment.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDoc::getCurrentEncoder | Niveau supérieur | HaruDoc::getEncoder


HaruDoc::getEncoder

(no version information, might be only in CVS)

HaruDoc::getEncoder -- Get HaruEncoder instance for the specified encoding

Description

object HaruDoc::getEncoder ( string encoding )

Returns HaruEncoder instance for the specified encoding.

Liste de paramètres

encoding

The encoding name. See Builtin Encodings for the list of allowed values.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::setCurrentEncoder()
HaruDoc::getCurrentEncoder()

Précédent | Sommaire | Suivant
HaruDoc::getCurrentPage | Niveau supérieur | HaruDoc::getFont


HaruDoc::getFont

(no version information, might be only in CVS)

HaruDoc::getFont -- Get HaruFont instance

Description

object HaruDoc::getFont ( string fontname [, string encoding] )

Creates and returns HaruFont instance with the specified fontname and encoding.

Liste de paramètres

fontname

The name of the font. See Builtin Fonts for the list of builtin fonts. You can also use the name of a font loaded via HaruDoc::loadTTF(), HaruDoc::loadTTC() and HaruDoc::loadType1().

encoding

The encoding to use. See Builtin Encodings for the list of supported encodings.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setFontAndSize()
HaruPage::getCurrentFont()

Précédent | Sommaire | Suivant
HaruDoc::getEncoder | Niveau supérieur | HaruDoc::getInfoAttr


HaruDoc::getInfoAttr

(no version information, might be only in CVS)

HaruDoc::getInfoAttr -- Get current value of the specified document attribute

Description

string HaruDoc::getInfoAttr ( int type )

Returns the string value of the specified document attribute.

Liste de paramètres

type

The type of the attribute. The following values are available:

HaruDoc::INFO_AUTHOR
HaruDoc::INFO_CREATOR
HaruDoc::INFO_TITLE
HaruDoc::INFO_SUBJECT
HaruDoc::INFO_KEYWORDS
HaruDoc::INFO_CREATION_DATE
HaruDoc::INFO_MOD_DATE

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::setInfoAttr()
HaruDoc::setInfoDateAttr()

Précédent | Sommaire | Suivant
HaruDoc::getFont | Niveau supérieur | HaruDoc::getPageLayout


HaruDoc::getPageLayout

(no version information, might be only in CVS)

HaruDoc::getPageLayout -- Get current page layout

Description

int HaruDoc::getPageLayout ( void )

Returns the page layout currently set in the document or FALSE if page layout was not set. See HaruDoc::setPageLayout() for the list of possible values.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::setPageLayout()

Précédent | Sommaire | Suivant
HaruDoc::getInfoAttr | Niveau supérieur | HaruDoc::getPageMode


HaruDoc::getPageMode

(no version information, might be only in CVS)

HaruDoc::getPageMode -- Get current page mode

Description

int HaruDoc::getPageMode ( void )

Returns the page mode currently set in the document. See HaruDoc::setPageMode() for the list of possible values.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::setPageMode()

Précédent | Sommaire | Suivant
HaruDoc::getPageLayout | Niveau supérieur | HaruDoc::getStreamSize


HaruDoc::getStreamSize

(no version information, might be only in CVS)

HaruDoc::getStreamSize -- Get the size of the temporary stream

Description

int HaruDoc::getStreamSize ( void )

Returns the size of the data in the temporary stream of the document. The size is zero if the document was not saved to the temporary stream.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::saveToStream()
HaruDoc::resetStream()
HaruDoc::readFromStream()

Précédent | Sommaire | Suivant
HaruDoc::getPageMode | Niveau supérieur | HaruDoc::insertPage


HaruDoc::insertPage

(no version information, might be only in CVS)

HaruDoc::insertPage -- Insert new page just before the specified page

Description

object HaruDoc::insertPage ( object page )

Creates new page and inserts just before the specified page. Returns new HaruPage instance.

Liste de paramètres

page

A valid HaruPage instance.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::addPage()

Précédent | Sommaire | Suivant
HaruDoc::getStreamSize | Niveau supérieur | HaruDoc::loadJPEG


HaruDoc::loadJPEG

(no version information, might be only in CVS)

HaruDoc::loadJPEG -- Load JPEG image and return new HaruImage instance

Description

object HaruDoc::loadJPEG ( string filename )

Loads the specified JPEG image and returns new HaruImage instance.

Liste de paramètres

filename

A valid JPEG image file.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::loadPNG()
HaruDoc::loadRAW()

Précédent | Sommaire | Suivant
HaruDoc::insertPage | Niveau supérieur | HaruDoc::loadPNG


HaruDoc::loadPNG

(no version information, might be only in CVS)

HaruDoc::loadPNG -- Load PNG image and return HaruImage instance

Description

object HaruDoc::loadPNG ( string filename [, bool deferred] )

Loads PNG image and returns HaruImage instance. You can set deferred parameter to TRUE for deferred data loading, in this case only size and color are loaded immediately. Default value of deferred is FALSE.

Libharu might be built without libpng support, in this case each call to this function would result in exception.

Liste de paramètres

filename

The name of a PNG image file.

deferred

Do not load data immediately. Defaults to FALSE.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::loadJPEG()
HaruDoc::loadRAW()

Précédent | Sommaire | Suivant
HaruDoc::loadJPEG | Niveau supérieur | HaruDoc::loadRaw


HaruDoc::loadRaw

(no version information, might be only in CVS)

HaruDoc::loadRaw -- Load RAW image and return HaruImage instance

Description

object HaruDoc::loadRaw ( string filename, int width, int height, int color_space )

Loads RAW image and returns new HaruImage instance.

Liste de paramètres

filename

The name of a RAW image file.

width

The width of the image.

height

The height of the image.

color_space

The color space of the image. Can be one of the following values:

HaruDoc::CS_DEVICE_GRAY
HaruDoc::CS_DEVICE_RGB
HaruDoc::CS_DEVICE_CMYK

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::loadJPEG()
HaruDoc::loadPNG()

Précédent | Sommaire | Suivant
HaruDoc::loadPNG | Niveau supérieur | HaruDoc::loadTTC


HaruDoc::loadTTC

(no version information, might be only in CVS)

HaruDoc::loadTTC -- Load the font with the specified index from TTC file

Description

string HaruDoc::loadTTC ( string fontfile, int index [, bool embed] )

Loads the TrueType font with the specified index from a TrueType collection file.

Liste de paramètres

fontfile

The TrueType collection file.

index

The index of the font in the collection file.

embed

When set to TRUE, the glyph data of the font is embedded into the PDF file, otherwise only the matrix data is included. Defaults to FALSE.

Valeurs de retour

Returns the name of the loaded font on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::loadTTF()
HaruDoc::loadType1()

Précédent | Sommaire | Suivant
HaruDoc::loadRaw | Niveau supérieur | HaruDoc::loadTTF


HaruDoc::loadTTF

(no version information, might be only in CVS)

HaruDoc::loadTTF -- Load TTF font file

Description

string HaruDoc::loadTTF ( string fontfile [, bool embed] )

Loads the given TTF file and (optionally) embed its data into the document.

Liste de paramètres

fontfile

The TTF file to load.

embed

When set to TRUE, the glyph data of the font is embedded into the PDF file, otherwise only the matrix data is included. Defaults to FALSE.

Valeurs de retour

Returns the name of the loaded font on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::loadTTC()
HaruDoc::loadType1()

Précédent | Sommaire | Suivant
HaruDoc::loadTTC | Niveau supérieur | HaruDoc::loadType1


HaruDoc::loadType1

(no version information, might be only in CVS)

HaruDoc::loadType1 -- Load Type1 font

Description

string HaruDoc::loadType1 ( string afmfile [, string pfmfile] )

Loads Type1 font from the given file and registers it in the PDF document.

Liste de paramètres

afmfile

Path to an AFM file.

pfmfile

Path to a PFA/PFB file, optional. If it's not set only the glyph data of the font is embedded into the PDF document.

Valeurs de retour

Returns the name of the loaded font on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::loadTTC()
HaruDoc::loadTTF()

Précédent | Sommaire | Suivant
HaruDoc::loadTTF | Niveau supérieur | HaruDoc::output


HaruDoc::output

(no version information, might be only in CVS)

HaruDoc::output -- Write the document data to the output buffer

Description

bool HaruDoc::output ( void )

Writes the document data into standard output.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::save()

Précédent | Sommaire | Suivant
HaruDoc::loadType1 | Niveau supérieur | HaruDoc::readFromStream


HaruDoc::readFromStream

(no version information, might be only in CVS)

HaruDoc::readFromStream -- Read data from the temporary stream

Description

string HaruDoc::readFromStream ( int bytes )

Returns data from the temporary stream. The bytes parameter specifies how much bytes to read, though the stream may contain less bytes than requested.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::saveToStream()
HaruDoc::resetStream()
HaruDoc::getStreamSize()

Précédent | Sommaire | Suivant
HaruDoc::output | Niveau supérieur | HaruDoc::resetError


HaruDoc::resetError

(no version information, might be only in CVS)

HaruDoc::resetError -- Reset error state of the document handle

Description

bool HaruDoc::resetError ( void )

Once an error code is set, most of the operations, including I/O processing functions cannot be performed. In case if you want to continue after the cause of the error has been fixed, you have to invoke this function in order to reset the document error state.

Valeurs de retour

Always succeedes and returns TRUE.

Précédent | Sommaire | Suivant
HaruDoc::readFromStream | Niveau supérieur | HaruDoc::resetStream


HaruDoc::resetStream

(no version information, might be only in CVS)

HaruDoc::resetStream -- Rewind the temporary stream

Description

bool HaruDoc::resetStream ( void )

Rewinds the temporary stream of the document.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::saveToStream()
HaruDoc::getStreamSize()
HaruDoc::readFromStream()

Précédent | Sommaire | Suivant
HaruDoc::resetError | Niveau supérieur | HaruDoc::save


HaruDoc::save

(no version information, might be only in CVS)

HaruDoc::save -- Save the document into the specified file

Description

bool HaruDoc::save ( string file )

Saves the document into the specified file.

Liste de paramètres

file

The file to save the document to.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::output()

Précédent | Sommaire | Suivant
HaruDoc::resetStream | Niveau supérieur | HaruDoc::saveToStream


HaruDoc::saveToStream

(no version information, might be only in CVS)

HaruDoc::saveToStream -- Save the document into a temporary stream

Description

bool HaruDoc::saveToStream ( void )

Saves the document data into a temporary stream.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::resetStream()
HaruDoc::getStreamSize()
HaruDoc::readFromStream()

Précédent | Sommaire | Suivant
HaruDoc::save | Niveau supérieur | HaruDoc::setCompressionMode


HaruDoc::setCompressionMode

(no version information, might be only in CVS)

HaruDoc::setCompressionMode -- Set compression mode for the document

Description

bool HaruDoc::setCompressionMode ( int mode )

Defines compression mode for the document. In case when libharu was compiled without Zlib support this function will always throw HaruException.

Liste de paramètres

mode

The compression mode to use. The value is a combination of the following flags:

HaruDoc::COMP_NONE - all contents is not compressed.
HaruDoc::COMP_TEXT - compress the text data.
HaruDoc::COMP_IMAGE - compress the image data.
HaruDoc::COMP_METADATA - compress other data (fonts, cmaps).
HaruDoc::COMP_ALL - compress all data.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDoc::saveToStream | Niveau supérieur | HaruDoc::setCurrentEncoder


HaruDoc::setCurrentEncoder

(no version information, might be only in CVS)

HaruDoc::setCurrentEncoder -- Set the current encoder for the document

Description

bool HaruDoc::setCurrentEncoder ( string encoding )

Defines the encoder currently used in the document.

Liste de paramètres

encoding

The name of the encoding to use. See Builtin Encodings for the list of allowed values.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDoc::setCompressionMode | Niveau supérieur | HaruDoc::setEncryptionMode


HaruDoc::setEncryptionMode

(no version information, might be only in CVS)

HaruDoc::setEncryptionMode -- Set encryption mode for the document

Description

bool HaruDoc::setEncryptionMode ( int mode [, int key_len] )

Defines encryption mode for the document. The encryption mode cannot be set before setting the password.

Liste de paramètres

mode

The encryption mode to use. Can be one of the following:

HaruDoc::ENCRYPT_R2 - use "revision2" algorithm.
HaruDoc::ENCRYPT_R3 - use "revision3" algorithm. Using this value bumps the version of PDF to 1.4.

key_len

The encryption key length in bytes. This parameter is optional and used only when mode is HaruDoc::ENCRYPT_R3. The default value is 5 (40bit).

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::setPassword()
HaruDoc::setPermission()

Précédent | Sommaire | Suivant
HaruDoc::setCurrentEncoder | Niveau supérieur | HaruDoc::setInfoAttr


HaruDoc::setInfoAttr

(no version information, might be only in CVS)

HaruDoc::setInfoAttr -- Set the info attribute of the document

Description

bool HaruDoc::setInfoAttr ( int type, string info )

Defines an info attribute. Uses the current encoding of the document.

Liste de paramètres

type

The type of the attribute. Can be one of the following:

HaruDoc::INFO_AUTHOR
HaruDoc::INFO_CREATOR
HaruDoc::INFO_TITLE
HaruDoc::INFO_SUBJECT
HaruDoc::INFO_KEYWORDS

info

The value of the attribute.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::setInfoDateAttr()

Précédent | Sommaire | Suivant
HaruDoc::setEncryptionMode | Niveau supérieur | HaruDoc::setInfoDateAttr


HaruDoc::setInfoDateAttr

(no version information, might be only in CVS)

HaruDoc::setInfoDateAttr -- Set the datetime info attributes of the document

Description

bool HaruDoc::setInfoDateAttr ( int type, int year, int month, int day, int hour, int min, int sec, string ind, int off_hour, int off_min )

Sets the datetime info attributes of the document.

Liste de paramètres

type

The type of the attribute. Can be one of the following:

HaruDoc::INFO_CREATION_DATE
HaruDoc::INFO_MOD_DATE

year

month

Between 1 and 12.

day

Between 1 and 31, 30, 29 or 28 (different for each month).

hour

Between 0 and 23.

min

Between 0 and 59.

sec

Between 0 and 59.

ind

The timezone relation to UTC, can be "", " ", "+", "-" and "Z".

off_hour

If ind is not " " or "", values between 0 and 23 are valid. Otherwise, this parameter is ignored.

off_min

If ind is not " " or "", values between 0 and 59 are valid. Otherwise, this parameter is ignored.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::setInfoAttr()

Précédent | Sommaire | Suivant
HaruDoc::setInfoAttr | Niveau supérieur | HaruDoc::setOpenAction


HaruDoc::setOpenAction

(no version information, might be only in CVS)

HaruDoc::setOpenAction -- Define which page is shown when the document is opened

Description

bool HaruDoc::setOpenAction ( object destination )

Defines wich page should be shown when the document is opened.

Liste de paramètres

destination

A valid HaruDestination instance.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDoc::setInfoDateAttr | Niveau supérieur | HaruDoc::setPageLayout


HaruDoc::setPageLayout

(no version information, might be only in CVS)

HaruDoc::setPageLayout -- Set how pages should be displayed

Description

bool HaruDoc::setPageLayout ( int layout )

Defines how pages should be displayed.

Liste de paramètres

layout

The following values are accepted:

HaruDoc::PAGE_LAYOUT_SINGLE - only one page is displayed.
HaruDoc::PAGE_LAYOUT_ONE_COLUMN - display the pages in one column.
HaruDoc::PAGE_LAYOUT_TWO_COLUMN_LEFT - display pages in two columns, first page left.
HaruDoc::PAGE_LAYOUT_TWO_COLUMN_RIGHT - display pages in two columns, first page right.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::getPageLayout()

Précédent | Sommaire | Suivant
HaruDoc::setOpenAction | Niveau supérieur | HaruDoc::setPageMode


HaruDoc::setPageMode

(no version information, might be only in CVS)

HaruDoc::setPageMode -- Set how the document should be displayed

Description

bool HaruDoc::setPageMode ( int mode )

Defines how the document should be displayed.

Liste de paramètres

mode

The following values are accepted:

HaruDoc::PAGE_MODE_USE_NONE - display the document with neither outline nor thumbnail.
HaruDoc::PAGE_MODE_USE_OUTLINE - display the document with outline pane.
HaruDoc::PAGE_MODE_USE_THUMBS - display the document with thumbnail pane.
HaruDoc::PAGE_MODE_FULL_SCREEN - display the document with full screen mode.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::getPageMode()

Précédent | Sommaire | Suivant
HaruDoc::setPageLayout | Niveau supérieur | HaruDoc::setPagesConfiguration


HaruDoc::setPagesConfiguration

(no version information, might be only in CVS)

HaruDoc::setPagesConfiguration -- Set the number of pages per set of pages

Description

bool HaruDoc::setPagesConfiguration ( int page_per_pages )

By default the document has one pages object as a root for all pages. All page objects are create as branches of this object. One pages object can contain only 8191, therefore the maximum number of pages per document is 8191. But you can change that fact by setting page_per_pages parameter, so that the root pages object contains 8191 more pages (not page) objects, which in turn contain 8191 pages each. So the maximum number of pages in the document becomes 8191*page_per_pages.

Liste de paramètres

page_per_pages

The numbers of pages that a pages object can contain.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDoc::setPageMode | Niveau supérieur | HaruDoc::setPassword


HaruDoc::setPassword

(no version information, might be only in CVS)

HaruDoc::setPassword -- Set owner and user passwords for the document

Description

bool HaruDoc::setPassword ( string owner_password, string user_password )

Defines owner and user passwords for the document. Setting the passwords makes the document contents encrypted.

Liste de paramètres

owner_password

The password of the owner, which can change permissions of the document. Empty password is not accepted. Owner's password cannot be the same as the user's password.

user_password

The password of the user. Can be empty.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::setEncryptionMode()
HaruDoc::setPermission()

Précédent | Sommaire | Suivant
HaruDoc::setPagesConfiguration | Niveau supérieur | HaruDoc::setPermission


HaruDoc::setPermission

(no version information, might be only in CVS)

HaruDoc::setPermission -- Set permissions for the document

Description

bool HaruDoc::setPermission ( int permission )

Defines permissions for the document.

Liste de paramètres

permission

The values is a combination of these flags:

HaruDoc::ENABLE_READ - user can read the document.
HaruDoc::ENABLE_PRINT - user can print the document.
HaruDoc::ENABLE_EDIT_ALL - user can edit the contents of the document other than annotations and form fields.
HaruDoc::ENABLE_COPY - user can copy the text and the graphics of the document.
HaruDoc::ENABLE_EDIT - user can add or modify the annotations and form fields of the document.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::setPassword()
HaruDoc::setEncryptionMode()

Précédent | Sommaire | Suivant
HaruDoc::setPassword | Niveau supérieur | HaruDoc::useCNSEncodings


HaruDoc::useCNSEncodings

(no version information, might be only in CVS)

HaruDoc::useCNSEncodings -- Enable Chinese simplified encodings

Description

bool HaruDoc::useCNSEncodings ( void )

Enables Chinese simplified encodings.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::useCNSFonts()

Précédent | Sommaire | Suivant
HaruDoc::setPermission | Niveau supérieur | HaruDoc::useCNSFonts


HaruDoc::useCNSFonts

(no version information, might be only in CVS)

HaruDoc::useCNSFonts -- Enable builtin Chinese simplified fonts

Description

bool HaruDoc::useCNSFonts ( void )

Enableis builtin Chinese simplified fonts.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::useCNSEncodings()

Précédent | Sommaire | Suivant
HaruDoc::useCNSEncodings | Niveau supérieur | HaruDoc::useCNTEncodings


HaruDoc::useCNTEncodings

(no version information, might be only in CVS)

HaruDoc::useCNTEncodings -- Enable Chinese traditional encodings

Description

bool HaruDoc::useCNTEncodings ( void )

Enables Chinese traditional encodings.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::useCNTFonts()

Précédent | Sommaire | Suivant
HaruDoc::useCNSFonts | Niveau supérieur | HaruDoc::useCNTFonts


HaruDoc::useCNTFonts

(no version information, might be only in CVS)

HaruDoc::useCNTFonts -- Enable builtin Chinese traditional fonts

Description

bool HaruDoc::useCNTFonts ( void )

Enables builtin Chinese traditional fonts.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::useCNTEncodings()

Précédent | Sommaire | Suivant
HaruDoc::useCNTEncodings | Niveau supérieur | HaruDoc::useJPEncodings


HaruDoc::useJPEncodings

(no version information, might be only in CVS)

HaruDoc::useJPEncodings -- Enable Japanese encodings

Description

bool HaruDoc::useJPEncodings ( void )

Enables Japanese encodings.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::useJPFonts()

Précédent | Sommaire | Suivant
HaruDoc::useCNTFonts | Niveau supérieur | HaruDoc::useJPFonts


HaruDoc::useJPFonts

(no version information, might be only in CVS)

HaruDoc::useJPFonts -- Enable builtin Japanese fonts

Description

bool HaruDoc::useJPFonts ( void )

Enables builtin Japanese fonts.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::useJPEncodings()

Précédent | Sommaire | Suivant
HaruDoc::useJPEncodings | Niveau supérieur | HaruDoc::useKREncodings


HaruDoc::useKREncodings

(no version information, might be only in CVS)

HaruDoc::useKREncodings -- Enable Korean encodings

Description

bool HaruDoc::useKREncodings ( void )

Enables Korean encodings.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::useKRFonts()

Précédent | Sommaire | Suivant
HaruDoc::useJPFonts | Niveau supérieur | HaruDoc::useKRFonts


HaruDoc::useKRFonts

(no version information, might be only in CVS)

HaruDoc::useKRFonts -- Enable builtin Korean fonts

Description

bool HaruDoc::useKRFonts ( void )

Enables builtin Korean fonts.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::useKREncodings()

Précédent | Sommaire | Suivant
HaruDoc::useKREncodings | Niveau supérieur | HaruEncoder::getByteType


HaruEncoder::getByteType

(no version information, might be only in CVS)

HaruEncoder::getByteType -- Get the type of the byte in the text

Description

int HaruEncoder::getByteType ( string text, int index )

Returns the type of the byte in the text on the specified position. The result is one of the following values:

HaruEncoder::BYTE_TYPE_SINGLE - single byte character.
HaruEncoder::BYTE_TYPE_LEAD - lead byte of a double-byte character.
HaruEncoder::BYTE_TYPE_TRAIL - trailing byte of a double-byte character.
HaruEncoder::BYTE_TYPE_UNKNOWN - invalid encoder or cannot detect the byte type.

Liste de paramètres

text

The text.

index

The position in the text.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruDoc::useKRFonts | Niveau supérieur | HaruEncoder::getType


HaruEncoder::getType

(no version information, might be only in CVS)

HaruEncoder::getType -- Get the type of the encoder

Description

int HaruEncoder::getType ( void )

Returns the type of the encoder. The result is one of the followin values:

HaruEncoder::TYPE_SINGLE_BYTE - the encoder is for single byte characters.
HaruEncoder::TYPE_DOUBLE_BYTE - the encoder is for multibyte characters.
HaruEncoder::TYPE_UNINITIALIZED - the encoder is not initialized.
HaruEncoder::UNKNOWN - the encoder is invalid.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruEncoder::getByteType | Niveau supérieur | HaruEncoder::getUnicode


HaruEncoder::getUnicode

(no version information, might be only in CVS)

HaruEncoder::getUnicode -- Convert the specified character to unicode

Description

int HaruEncoder::getUnicode ( int character )

Converts the specified character to unicode.

Liste de paramètres

character

The character code to convert.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruEncoder::getType | Niveau supérieur | HaruEncoder::getWritingMode


HaruEncoder::getWritingMode

(no version information, might be only in CVS)

HaruEncoder::getWritingMode -- Get the writing mode of the encoder

Description

int HaruEncoder::getWritingMode ( void )

Returns the writing mode of the encoder. The result value is on of the following:

HaruEncoder::WMODE_HORIZONTAL - horizontal writing mode.
HaruEncoder::WMODE_VERTICAL - vertical writing mode.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruEncoder::getUnicode | Niveau supérieur | HaruFont::getAscent


HaruFont::getAscent

(no version information, might be only in CVS)

HaruFont::getAscent -- Get the vertical ascent of the font

Description

int HaruFont::getAscent ( void )

Returns the vertical ascent of the font.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruEncoder::getWritingMode | Niveau supérieur | HaruFont::getCapHeight


HaruFont::getCapHeight

(no version information, might be only in CVS)

HaruFont::getCapHeight -- Get the distance from the baseline of uppercase letters

Description

int HaruFont::getCapHeight ( void )

Returns the distance from the baseline of uppercase letters.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruFont::getAscent | Niveau supérieur | HaruFont::getDescent


HaruFont::getDescent

(no version information, might be only in CVS)

HaruFont::getDescent -- Get the vertical descent of the font

Description

int HaruFont::getDescent ( void )

Return the vertical descent of the font.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruFont::getCapHeight | Niveau supérieur | HaruFont::getEncodingName


HaruFont::getEncodingName

(no version information, might be only in CVS)

HaruFont::getEncodingName -- Get the name of the encoding

Description

string HaruFont::getEncodingName ( void )

Returns the name of the font encoding.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruFont::getDescent | Niveau supérieur | HaruFont::getFontName


HaruFont::getFontName

(no version information, might be only in CVS)

HaruFont::getFontName -- Get the name of the font

Description

string HaruFont::getFontName ( void )

Returns the name of the font.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruFont::getEncodingName | Niveau supérieur | HaruFont::getTextWidth


HaruFont::getTextWidth

(no version information, might be only in CVS)

HaruFont::getTextWidth -- Get the total width of the text, number of characters, number of words and number of spaces

Description

array HaruFont::getTextWidth ( string text )

Returns the total width of the text, number of characters, number of words and number of spaces in the given text.

Liste de paramètres

text

The text to measure.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruFont::getFontName | Niveau supérieur | HaruFont::getUnicodeWidth


HaruFont::getUnicodeWidth

(no version information, might be only in CVS)

HaruFont::getUnicodeWidth -- Get the width of the character in the font

Description

int HaruFont::getUnicodeWidth ( int character )

Returns the width of the character in the font.

Liste de paramètres

character

The code of the character.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruFont::getTextWidth | Niveau supérieur | HaruFont::getXHeight


HaruFont::getXHeight

(no version information, might be only in CVS)

HaruFont::getXHeight -- Get the distance from the baseline of lowercase letters

Description

int HaruFont::getXHeight ( void )

Returns the distance from the baseline of lowercase letters.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruFont::getUnicodeWidth | Niveau supérieur | HaruFont::measureText


HaruFont::measureText

(no version information, might be only in CVS)

HaruFont::measureText -- Calculate the number of characters which can be included within the specified width

Description

int HaruFont::measureText ( string text, float width, float font_size, float char_space, float word_space [, bool word_wrap] )

Returns the number of characters which can be included within the specified width.

Liste de paramètres

text

The text to fit the width.

width

The width of the area to put the text to.

font_size

The size of the font.

char_space

The character spacing.

word_space

The word spacing.

word_wrap

When this parameter is set to TRUE the function "emulates" word wrapping and doesn't include the part of the current word if reached the end of the area. Defaults to FALSE.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruFont::getXHeight | Niveau supérieur | HaruImage::getBitsPerComponent


HaruImage::getBitsPerComponent

(no version information, might be only in CVS)

HaruImage::getBitsPerComponent -- Get the number of bits used to describe each color component of the image

Description

int HaruImage::getBitsPerComponent ( void )

Returns the number of bits used to describe each color component of the image.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruFont::measureText | Niveau supérieur | HaruImage::getColorSpace


HaruImage::getColorSpace

(no version information, might be only in CVS)

HaruImage::getColorSpace -- Get the name of the color space

Description

string HaruImage::getColorSpace ( void )

Returns the name of the color space of the image. The name is one of the following values:

"DeviceGray"
"DeviceRGB"
"DeviceCMYK"
"Indexed"

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruImage::getBitsPerComponent | Niveau supérieur | HaruImage::getHeight


HaruImage::getHeight

(no version information, might be only in CVS)

HaruImage::getHeight -- Get the height of the image

Description

int HaruImage::getHeight ( void )

Returns the height of the image.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruImage::getColorSpace | Niveau supérieur | HaruImage::getSize


HaruImage::getSize

(no version information, might be only in CVS)

HaruImage::getSize -- Get size of the image

Description

array HaruImage::getSize ( void )

Returns an array with two elements: width and height, which contain appropriate dimensions of the image.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruImage::getHeight | Niveau supérieur | HaruImage::getWidth


HaruImage::getWidth

(no version information, might be only in CVS)

HaruImage::getWidth -- Get the width of the image

Description

int HaruImage::getWidth ( void )

Returns the width of the image.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruImage::getSize | Niveau supérieur | HaruImage::setColorMask


HaruImage::setColorMask

(no version information, might be only in CVS)

HaruImage::setColorMask -- Set the color mask of the image

Description

bool HaruImage::setColorMask ( int rmin, int rmax, int gmin, int gmax, int bmin, int bmax )

Defines the transparent color of the image using the RGB range values. The color within the range is displayed as a transparent color. The color space of the image must be RGB.

Liste de paramètres

rmin

The lower limit of red. Must be between 0 and 255.

rmax

The upper limit of red. Must be between 0 and 255.

gmin

The lower limit of green. Must be between 0 and 255.

gmax

The upper limit of green. Must be between 0 and 255.

bmin

The lower limit of blue. Must be between 0 and 255.

bmax

The upper limit of blue. Must be between 0 and 255.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruImage::getWidth | Niveau supérieur | HaruImage::setMaskImage


HaruImage::setMaskImage

(no version information, might be only in CVS)

HaruImage::setMaskImage -- Set the image mask

Description

bool HaruImage::setMaskImage ( object mask_image )

Sets the image used as image-mask. It must be 1bit gray-scale color image.

Liste de paramètres

mask_image

A valid HaruImage instance.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruImage::setColorMask | Niveau supérieur | HaruOutline::setDestination


HaruOutline::setDestination

(no version information, might be only in CVS)

HaruOutline::setDestination -- Set the destination for the outline

Description

bool HaruOutline::setDestination ( object destination )

Sets a destination object which becomes a target to jump to when the outline is clicked.

Liste de paramètres

destination

A valid HaruDestination instance.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruImage::setMaskImage | Niveau supérieur | HaruOutline::setOpened


HaruOutline::setOpened

(no version information, might be only in CVS)

HaruOutline::setOpened -- Set the initial state of the outline

Description

bool HaruOutline::setOpened ( bool opened )

Defines whether this node is opened or not when the outline is displayed for the first time.

Liste de paramètres

opened

TRUE means open, FALSE - closed.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruOutline::setDestination | Niveau supérieur | HaruPage::arc


HaruPage::arc

(no version information, might be only in CVS)

HaruPage::arc -- Append an arc to the current path

Description

bool HaruPage::arc ( float x, float y, float ray, float ang1, float ang2 )

Appends an arc to the current path.

Liste de paramètres

x

Horizontal coordinate of the center.

y

Vertical coordinate of the center.

ray

The ray of the arc.

ang1

The angle of the beginning.

ang2

The angle of the end. Must be greater than ang1.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruOutline::setOpened | Niveau supérieur | HaruPage::beginText


HaruPage::beginText

(no version information, might be only in CVS)

HaruPage::beginText -- Begin a text object and set the current text position to (0,0)

Description

bool HaruPage::beginText ( void )

Begins new text object and sets the current text position to (0,0).

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::arc | Niveau supérieur | HaruPage::circle


HaruPage::circle

(no version information, might be only in CVS)

HaruPage::circle -- Append a circle to the current path

Description

bool HaruPage::circle ( float x, float y, float ray )

Appends a circle to the current path.

Liste de paramètres

x

Horizontal coordinate of the center point.

y

Vertical coordinate of the center point.

ray

The ray of the circle.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::beginText | Niveau supérieur | HaruPage::closePath


HaruPage::closePath

(no version information, might be only in CVS)

HaruPage::closePath -- Append a straight line from the current point to the start point of the path

Description

bool HaruPage::closePath ( void )

Appends a straight line from the current point to the start point of the path.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::circle | Niveau supérieur | HaruPage::concat


HaruPage::concat

(no version information, might be only in CVS)

HaruPage::concat -- Concatenate current transformation matrix of the page and the specified matrix

Description

bool HaruPage::concat ( float a, float b, float c, float d, float x, float y )

Concatenates current transformation matrix of the page and the specified matrix.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::closePath | Niveau supérieur | HaruPage::createDestination


HaruPage::createDestination

(no version information, might be only in CVS)

HaruPage::createDestination -- Create new HaruDestination instance

Description

object HaruPage::createDestination ( void )

Creates and returns new HaruDestination instance.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::concat | Niveau supérieur | HaruPage::createLinkAnnotation


HaruPage::createLinkAnnotation

(no version information, might be only in CVS)

HaruPage::createLinkAnnotation -- Create new HaruAnnotation instance

Description

object HaruPage::createLinkAnnotation ( array rectangle, object destination )

Creates and returns new HaruAnnotation instance.

Liste de paramètres

rectangle

An array with 4 coordinates of the clickable area.

destination

Valid HaruDestination instance.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::createDestination | Niveau supérieur | HaruPage::createTextAnnotation


HaruPage::createTextAnnotation

(no version information, might be only in CVS)

HaruPage::createTextAnnotation -- Create new HaruAnnotation instance

Description

object HaruPage::createTextAnnotation ( array rectangle, string text [, object encoder] )

Creates and returns new HaruAnnotation instance.

Liste de paramètres

rectangle

An array with 4 coordinates of the annotation area.

text

The text to be displayed.

encoder

Optional HaruEncoder instance.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::createLinkAnnotation | Niveau supérieur | HaruPage::createURLAnnotation


HaruPage::createURLAnnotation

(no version information, might be only in CVS)

HaruPage::createURLAnnotation -- Create and return new HaruAnnotation instance

Description

object HaruPage::createURLAnnotation ( array rectangle, string url )

Creates and returns new HaruAnnotation instance.

Liste de paramètres

rectangle

An array with 4 coordinates of the clickable area.

url

The URL to open.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::createTextAnnotation | Niveau supérieur | HaruPage::curveTo2


HaruPage::curveTo

(no version information, might be only in CVS)

HaruPage::curveTo -- Append a Bezier curve to the current path

Description

bool HaruPage::curveTo ( float x1, float y1, float x2, float y2, float x3, float y3 )

Append a Bezier curve to the current path. The point (x1, y1) and the point (x2, y2) are used as the control points for a Bezier curve and current point is moved to the point (x3, y3).

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::curveTo3 | Niveau supérieur | HaruPage::drawImage


HaruPage::curveTo2

(no version information, might be only in CVS)

HaruPage::curveTo2 -- Append a Bezier curve to the current path

Description

bool HaruPage::curveTo2 ( float x2, float y2, float x3, float y3 )

Appends a Bezier curve to the current path. The current point and the point (x2, y2) are used as the control points for the Bezier curve and current point is moved to the point (x3, y3).

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::createURLAnnotation | Niveau supérieur | HaruPage::curveTo3


HaruPage::curveTo3

(no version information, might be only in CVS)

HaruPage::curveTo3 -- Append a Bezier curve to the current path

Description

bool HaruPage::curveTo3 ( float x1, float y1, float x3, float y3 )

Appends a Bezier curve to the current path. The point (x1, y1) and the point (x3, y3) are used as the control points for a Bezier curve and current point is moved to the point (x3, y3).

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::curveTo2 | Niveau supérieur | HaruPage::curveTo


HaruPage::drawImage

(no version information, might be only in CVS)

HaruPage::drawImage -- Show image at the page

Description

bool HaruPage::drawImage ( object image, float x, float y, float width, float height )

Show image at the page.

Liste de paramètres

image

Valid HaruImage instance.

x

The left border of the area where the image is displayed.

y

The lower border of the area where the image is displayed.

width

The width of the image area.

height

The height of the image area.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::curveTo | Niveau supérieur | HaruPage::ellipse


HaruPage::ellipse

(no version information, might be only in CVS)

HaruPage::ellipse -- Append an ellipse to the current path

Description

bool HaruPage::ellipse ( float x, float y, float xray, float yray )

Appends an ellipse to the current path.

Liste de paramètres

x

Horizontal coordinate of the center.

y

Vertical coordinate of the center.

xray

The ray of the ellipse in the x direction.

yray

The ray of the ellipse in the y direction.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::drawImage | Niveau supérieur | HaruPage::endPath


HaruPage::endPath

(no version information, might be only in CVS)

HaruPage::endPath -- End current path object without filling and painting operations

Description

bool HaruPage::endPath ( void )

Ends current path object without performing filling and painting operations.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::ellipse | Niveau supérieur | HaruPage::endText


HaruPage::endText

(no version information, might be only in CVS)

HaruPage::endText -- End current text object

Description

bool HaruPage::endText ( void )

Finalizes current text object.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::endPath | Niveau supérieur | HaruPage::eofill


HaruPage::eofill

(no version information, might be only in CVS)

HaruPage::eofill -- Fill current path using even-odd rule

Description

bool HaruPage::eofill ( void )

Fills current path using even-odd rule.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::endText | Niveau supérieur | HaruPage::eoFillStroke


HaruPage::eoFillStroke

(no version information, might be only in CVS)

HaruPage::eoFillStroke -- Fill current path using even-odd rule, then paint the path

Description

bool HaruPage::eoFillStroke ( [bool close_path] )

Fills current path using even-odd rule, then paints the path.

Liste de paramètres

close_path

Optional parameter. When set to TRUE, the function closes the current path. Default to FALSE.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::eofill | Niveau supérieur | HaruPage::fill


HaruPage::fill

(no version information, might be only in CVS)

HaruPage::fill -- Fill current path using nonzero winding number rule

Description

bool HaruPage::fill ( void )

Fills current path using nonzero winding number rule.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::eoFillStroke | Niveau supérieur | HaruPage::fillStroke


HaruPage::fillStroke

(no version information, might be only in CVS)

HaruPage::fillStroke -- Fill current path using nonzero winding number rule, then paint the path

Description

bool HaruPage::fillStroke ( [bool close_path] )

Fills current path using nonzero winding number rule, then paints the path.

Liste de paramètres

close_path

Optional parameter. When set to TRUE, the function closes the current path. Default to FALSE.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::fill | Niveau supérieur | HaruPage::getCharSpace


HaruPage::getCharSpace

(no version information, might be only in CVS)

HaruPage::getCharSpace -- Get the current value of character spacing

Description

float HaruPage::getCharSpace ( void )

Returns the current value of character spacing.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::fillStroke | Niveau supérieur | HaruPage::getCMYKFill


HaruPage::getCMYKFill

(no version information, might be only in CVS)

HaruPage::getCMYKFill -- Get the current filling color

Description

array HaruPage::getCMYKFill ( void )

Returns the current filling color as an array with 4 elements ("c", "m", "y" and "k").

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::getCharSpace | Niveau supérieur | HaruPage::getCMYKStroke


HaruPage::getCMYKStroke

(no version information, might be only in CVS)

HaruPage::getCMYKStroke -- Get the current stroking color

Description

array HaruPage::getCMYKStroke ( void )

Returns the current stroking color as an array with 4 elements ("c", "m", "y" and "k").

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::getCMYKFill | Niveau supérieur | HaruPage::getCurrentFont


HaruPage::getCurrentFont

(no version information, might be only in CVS)

HaruPage::getCurrentFont -- Get the currently used font

Description

object HaruPage::getCurrentFont ( void )

Returns the currently used font as an instance of HaruFont.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::getCMYKStroke | Niveau supérieur | HaruPage::getCurrentFontSize


HaruPage::getCurrentFontSize

(no version information, might be only in CVS)

HaruPage::getCurrentFontSize -- Get the current font size

Description

float HaruPage::getCurrentFontSize ( void )

Returns the current font size.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::getCurrentFont | Niveau supérieur | HaruPage::getCurrentPos


HaruPage::getCurrentPos

(no version information, might be only in CVS)

HaruPage::getCurrentPos -- Get the current position for path painting

Description

array HaruPage::getCurrentPos ( void )

Returns the current position for path painting as an array of with two elements - "x" and "y".

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::getCurrentFontSize | Niveau supérieur | HaruPage::getCurrentTextPos


HaruPage::getCurrentTextPos

(no version information, might be only in CVS)

HaruPage::getCurrentTextPos -- Get the current position for text printing

Description

array HaruPage::getCurrentTextPos ( void )

Returns the current position for text printing as an array with 2 elements - "x" and "y".

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::getCurrentPos | Niveau supérieur | HaruPage::getDash


HaruPage::getDash

(no version information, might be only in CVS)

HaruPage::getDash -- Get the current dash pattern

Description

array HaruPage::getDash ( void )

Returns the current dash pattern as an array of two elements - "pattern" and "phase" or FALSE if dash pattern was not set. See HaruPage::setDash() for more information on dash patterns.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setDash()

Précédent | Sommaire | Suivant
HaruPage::getCurrentTextPos | Niveau supérieur | HaruPage::getFillingColorSpace


HaruPage::getFillingColorSpace

(no version information, might be only in CVS)

HaruPage::getFillingColorSpace -- Get the current filling color space

Description

int HaruPage::getFillingColorSpace ( void )

Returns the current filling color space. The result value is one of the following:

HaruDoc::CS_DEVICE_GRAY
HaruDoc::CS_DEVICE_RGB
HaruDoc::CS_DEVICE_CMYK
HaruDoc::CS_CAL_GRAY
HaruDoc::CS_CAL_RGB
HaruDoc::CS_LAB
HaruDoc::CS_ICC_BASED
HaruDoc::CS_SEPARATION
HaruDoc::CS_DEVICE_N
HaruDoc::CS_INDEXED
HaruDoc::CS_PATTERN

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::getDash | Niveau supérieur | HaruPage::getFlatness


HaruPage::getFlatness

(no version information, might be only in CVS)

HaruPage::getFlatness -- Get the flatness of the page

Description

float HaruPage::getFlatness ( void )

Returns the flatness of the page.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setFlatness()

Précédent | Sommaire | Suivant
HaruPage::getFillingColorSpace | Niveau supérieur | HaruPage::getGMode


HaruPage::getGMode

(no version information, might be only in CVS)

HaruPage::getGMode -- Get the current graphics mode

Description

int HaruPage::getGMode ( void )

Returns the current graphics mode. The result value is one of the following:

HaruPage::GMODE_PAGE_DESCRIPTION
HaruPage::GMODE_TEXT_OBJECT
HaruPage::GMODE_PATH_OBJECT
HaruPage::GMODE_CLIPPING_PATH
HaruPage::GMODE_SHADING
HaruPage::GMODE_INLINE_IMAGE
HaruPage::GMODE_EXTERNAL_OBJECT

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::getFlatness | Niveau supérieur | HaruPage::getGrayFill


HaruPage::getGrayFill

(no version information, might be only in CVS)

HaruPage::getGrayFill -- Get the current filling color

Description

float HaruPage::getGrayFill ( void )

Returns the current filling color.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setGrayFill()

Précédent | Sommaire | Suivant
HaruPage::getGMode | Niveau supérieur | HaruPage::getGrayStroke


HaruPage::getGrayStroke

(no version information, might be only in CVS)

HaruPage::getGrayStroke -- Get the current stroking color

Description

float HaruPage::getGrayStroke ( void )

Returns the current stroking color.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setGrayStroke()

Précédent | Sommaire | Suivant
HaruPage::getGrayFill | Niveau supérieur | HaruPage::getHeight


HaruPage::getHeight

(no version information, might be only in CVS)

HaruPage::getHeight -- Get the height of the page

Description

float HaruPage::getHeight ( void )

Returns the height of the page.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setHeight()

Précédent | Sommaire | Suivant
HaruPage::getGrayStroke | Niveau supérieur | HaruPage::getHorizontalScaling


HaruPage::getHorizontalScaling

(no version information, might be only in CVS)

HaruPage::getHorizontalScaling -- Get the current value of horizontal scaling

Description

float HaruPage::getHorizontalScaling ( void )

Returns the current value of horizontal scaling.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setHorizontalScaling()

Précédent | Sommaire | Suivant
HaruPage::getHeight | Niveau supérieur | HaruPage::getLineCap


HaruPage::getLineCap

(no version information, might be only in CVS)

HaruPage::getLineCap -- Get the current line cap style

Description

int HaruPage::getLineCap ( void )

Returns the current line cap style. The result value is one of the following:

HaruPage::BUTT_END - the line is squared off at the endpoint of the path.
HaruPage::ROUND_END - the end of the line becomes a semicircle with center in the end point of the path.
HaruPage::PROJECTING_SCUARE_END - the line continues to the point that exceeds half of the stroke width the end point.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setLineCap()

Précédent | Sommaire | Suivant
HaruPage::getHorizontalScaling | Niveau supérieur | HaruPage::getLineJoin


HaruPage::getLineJoin

(no version information, might be only in CVS)

HaruPage::getLineJoin -- Get the current line join style

Description

int HaruPage::getLineJoin ( void )

Returns the current line join style. The result value is one of the following:

HaruPage::MITER_JOIN
HaruPage::ROUND_JOIN
HaruPage::BEVEL_JOIN

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setLineJoin()

Précédent | Sommaire | Suivant
HaruPage::getLineCap | Niveau supérieur | HaruPage::getLineWidth


HaruPage::getLineWidth

(no version information, might be only in CVS)

HaruPage::getLineWidth -- Get the current line width

Description

float HaruPage::getLineWidth ( void )

Returns the current line width.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setLineWidth()

Précédent | Sommaire | Suivant
HaruPage::getLineJoin | Niveau supérieur | HaruPage::getMiterLimit


HaruPage::getMiterLimit

(no version information, might be only in CVS)

HaruPage::getMiterLimit -- Get the value of miter limit

Description

float HaruPage::getMiterLimit ( void )

Returns the value of miter limit.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setMiterLimit()

Précédent | Sommaire | Suivant
HaruPage::getLineWidth | Niveau supérieur | HaruPage::getRGBFill


HaruPage::getRGBFill

(no version information, might be only in CVS)

HaruPage::getRGBFill -- Get the current filling color

Description

array HaruPage::getRGBFill ( void )

Returns the current filling color as an array with 3 elements: "r", "g" and "b".

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setRGBFill()

Précédent | Sommaire | Suivant
HaruPage::getMiterLimit | Niveau supérieur | HaruPage::getRGBStroke


HaruPage::getRGBStroke

(no version information, might be only in CVS)

HaruPage::getRGBStroke -- Get the current stroking color

Description

array HaruPage::getRGBStroke ( void )

Returns the current stroking color.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setRGBStroke()

Précédent | Sommaire | Suivant
HaruPage::getRGBFill | Niveau supérieur | HaruPage::getStrokingColorSpace


HaruPage::getStrokingColorSpace

(no version information, might be only in CVS)

HaruPage::getStrokingColorSpace -- Get the current stroking color space

Description

int HaruPage::getStrokingColorSpace ( void )

Returns the current stroking color space. The list of return values is the same as for HaruPage::getFillingColorSpace().

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getFillingColorSpace()

Précédent | Sommaire | Suivant
HaruPage::getRGBStroke | Niveau supérieur | HaruPage::getTextLeading


HaruPage::getTextLeading

(no version information, might be only in CVS)

HaruPage::getTextLeading -- Get the current value of line spacing

Description

float HaruPage::getTextLeading ( void )

Returns the current value of line spacing.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setTextLeading()

Précédent | Sommaire | Suivant
HaruPage::getStrokingColorSpace | Niveau supérieur | HaruPage::getTextMatrix


HaruPage::getTextMatrix

(no version information, might be only in CVS)

HaruPage::getTextMatrix -- Get the current text transformation matrix of the page

Description

array HaruPage::getTextMatrix ( void )

Returns the current text transformation matrix of the page as an array of 6 elements: "a", "b", "c", "d", "x" and "y".

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setTextMatrix()

Précédent | Sommaire | Suivant
HaruPage::getTextLeading | Niveau supérieur | HaruPage::getTextRenderingMode


HaruPage::getTextRenderingMode

(no version information, might be only in CVS)

HaruPage::getTextRenderingMode -- Get the current text rendering mode

Description

int HaruPage::getTextRenderingMode ( void )

Returns the current text rendering mode. The result value is one of the following:

HaruPage::FILL
HaruPage::STROKE
HaruPage::FILL_THEN_STROKE
HaruPage::INVISIBLE
HaruPage::FILL_CLIPPING
HaruPage::STROKE_CLIPPING
HaruPage::FILL_STROKE_CLIPPING
HaruPage::CLIPPING

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setTextRenderingMode()

Précédent | Sommaire | Suivant
HaruPage::getTextMatrix | Niveau supérieur | HaruPage::getTextRise


HaruPage::getTextRise

(no version information, might be only in CVS)

HaruPage::getTextRise -- Get the current value of text rising

Description

float HaruPage::getTextRise ( void )

Returns the current value of text rising.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setTextRise()

Précédent | Sommaire | Suivant
HaruPage::getTextRenderingMode | Niveau supérieur | HaruPage::getTextWidth


HaruPage::getTextWidth

(no version information, might be only in CVS)

HaruPage::getTextWidth -- Get the width of the text using current fontsize, character spacing and word spacing

Description

float HaruPage::getTextWidth ( string text )

Returns the width of the text using current fontsize, character spacing and word spacing.

Liste de paramètres

text

The text to measure.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::measureText()

Précédent | Sommaire | Suivant
HaruPage::getTextRise | Niveau supérieur | HaruPage::getTransMatrix


HaruPage::getTransMatrix

(no version information, might be only in CVS)

HaruPage::getTransMatrix -- Get the current transformation matrix of the page

Description

array HaruPage::getTransMatrix ( void )

Returns the current transformation matrix of the page as an array of 6 elements: "a", "b", "c", "d", "x" and "y".

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::concat()

Précédent | Sommaire | Suivant
HaruPage::getTextWidth | Niveau supérieur | HaruPage::getWidth


HaruPage::getWidth

(no version information, might be only in CVS)

HaruPage::getWidth -- Get the width of the page

Description

float HaruPage::getWidth ( void )

Returns the width of the page.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setWidth()

Précédent | Sommaire | Suivant
HaruPage::getTransMatrix | Niveau supérieur | HaruPage::getWordSpace


HaruPage::getWordSpace

(no version information, might be only in CVS)

HaruPage::getWordSpace -- Get the current value of word spacing

Description

float HaruPage::getWordSpace ( void )

Returns the current value of word spacing.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setWordSpace()

Précédent | Sommaire | Suivant
HaruPage::getWidth | Niveau supérieur | HaruPage::lineTo


HaruPage::lineTo

(no version information, might be only in CVS)

HaruPage::lineTo -- Draw a line from the current point to the specified point

Description

bool HaruPage::lineTo ( float x, float y )

Draws a line from the current point to the specified point.

Liste de paramètres

x

y

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::curveTo()
HaruPage::curveTo2()
HaruPage::curveTo3()

Précédent | Sommaire | Suivant
HaruPage::getWordSpace | Niveau supérieur | HaruPage::measureText


HaruPage::measureText

(no version information, might be only in CVS)

HaruPage::measureText -- Calculate the number of characters which can be included within the specified width

Description

int HaruPage::measureText ( string text, float width [, bool wordwrap] )

Returns the number of characters which can be included within the specified width.

Liste de paramètres

text

The text to measure.

width

The width of the area to put the text to.

wordwrap

When this parameter is set to TRUE the function "emulates" word wrapping and doesn't include the part of the current word if reached the end of the area. Defaults to FALSE.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruFont::measureText()

Précédent | Sommaire | Suivant
HaruPage::lineTo | Niveau supérieur | HaruPage::moveTextPos


HaruPage::moveTextPos

(no version information, might be only in CVS)

HaruPage::moveTextPos -- Move text position to the specified offset

Description

bool HaruPage::moveTextPos ( float x, float y [, bool set_leading] )

Moves text position to the specified offset. If the start position of the current line is (x1, y1), the start of the next line is (x1 + x, y1 + y). If optional parameter set_leading is TRUE, the function sets the text leading to -y. The default value of set_leading is FALSE.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::moveToNextLine()

Précédent | Sommaire | Suivant
HaruPage::measureText | Niveau supérieur | HaruPage::moveTo


HaruPage::moveTo

(no version information, might be only in CVS)

HaruPage::moveTo -- Set starting point for new drawing path

Description

bool HaruPage::moveTo ( float x, float y )

Defines starting point for new drawing path.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::moveTextPos | Niveau supérieur | HaruPage::moveToNextLine


HaruPage::moveToNextLine

(no version information, might be only in CVS)

HaruPage::moveToNextLine -- Move text position to the start of the next line

Description

bool HaruPage::moveToNextLine ( void )

Moves text position to the start of the next line.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::moveTextPos()

Précédent | Sommaire | Suivant
HaruPage::moveTo | Niveau supérieur | HaruPage::rectangle


HaruPage::rectangle

(no version information, might be only in CVS)

HaruPage::rectangle -- Append a rectangle to the current path

Description

bool HaruPage::rectangle ( float x, float y, float width, float height )

Appends a rectangle to the current drawing path.

Liste de paramètres

x

The left border of the rectangle.

y

The lower border of the rectangle.

width

The width of the rectangle.

height

The height of the rectangle.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::moveToNextLine | Niveau supérieur | HaruPage::setCharSpace


HaruPage::setCharSpace

(no version information, might be only in CVS)

HaruPage::setCharSpace -- Set character spacing for the page

Description

bool HaruPage::setCharSpace ( float char_space )

Defines character spacing for the page.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getCharSpace()

Précédent | Sommaire | Suivant
HaruPage::rectangle | Niveau supérieur | HaruPage::setCMYKFill


HaruPage::setCMYKFill

(no version information, might be only in CVS)

HaruPage::setCMYKFill -- Set filling color for the page

Description

bool HaruPage::setCMYKFill ( float c, float m, float y, float k )

Defines filling color for the page.

Liste de paramètres

c

m

y

k

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getCMYKFill()

Précédent | Sommaire | Suivant
HaruPage::setCharSpace | Niveau supérieur | HaruPage::setCMYKStroke


HaruPage::setCMYKStroke

(no version information, might be only in CVS)

HaruPage::setCMYKStroke -- Set stroking color for the page

Description

bool HaruPage::setCMYKStroke ( float c, float m, float y, float k )

Defines stroking color for the page.

Liste de paramètres

c

m

y

k

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getCMYKStroke()

Précédent | Sommaire | Suivant
HaruPage::setCMYKFill | Niveau supérieur | HaruPage::setDash


HaruPage::setDash

(no version information, might be only in CVS)

HaruPage::setDash -- Set the dash pattern for the page

Description

bool HaruPage::setDash ( array pattern, int phase )

Defines the dash pattern for the page.

Liste de paramètres

pattern

An array (8 elements max) which contains a pattern of dashes and gaps used for lines on the page.

phase

The phase on which the pattern begins.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getDash()

Précédent | Sommaire | Suivant
HaruPage::setCMYKStroke | Niveau supérieur | HaruPage::setFlatness


HaruPage::setFlatness

(no version information, might be only in CVS)

HaruPage::setFlatness -- Set flatness for the page

Description

bool HaruPage::setFlatness ( float flatness )

Defines flatness for the page.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getFlatness()

Précédent | Sommaire | Suivant
HaruPage::setDash | Niveau supérieur | HaruPage::setFontAndSize


HaruPage::setFontAndSize

(no version information, might be only in CVS)

HaruPage::setFontAndSize -- Set font and fontsize for the page

Description

bool HaruPage::setFontAndSize ( object font, float size )

Defines current font and its size for the page.

Liste de paramètres

font

A valid HaruFont instance.

size

The size of the font.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruDoc::getFont()

Précédent | Sommaire | Suivant
HaruPage::setFlatness | Niveau supérieur | HaruPage::setGrayFill


HaruPage::setGrayFill

(no version information, might be only in CVS)

HaruPage::setGrayFill -- Set filling color for the page

Description

bool HaruPage::setGrayFill ( float value )

Defines filling color for the page.

Liste de paramètres

value

The value of gray level between 0 and 1.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getGrayFill()

Précédent | Sommaire | Suivant
HaruPage::setFontAndSize | Niveau supérieur | HaruPage::setGrayStroke


HaruPage::setGrayStroke

(no version information, might be only in CVS)

HaruPage::setGrayStroke -- Sets stroking color for the page

Description

bool HaruPage::setGrayStroke ( float value )

Defines stroking color for the page.

Liste de paramètres

value

The value of gray level between 0 and 1.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getGrayStroke()

Précédent | Sommaire | Suivant
HaruPage::setGrayFill | Niveau supérieur | HaruPage::setHeight


HaruPage::setHeight

(no version information, might be only in CVS)

HaruPage::setHeight -- Set height of the page

Description

bool HaruPage::setHeight ( float height )

Defines height of the page.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getHeight()

Précédent | Sommaire | Suivant
HaruPage::setGrayStroke | Niveau supérieur | HaruPage::setHorizontalScaling


HaruPage::setHorizontalScaling

(no version information, might be only in CVS)

HaruPage::setHorizontalScaling -- Set horizontal scaling for the page

Description

bool HaruPage::setHorizontalScaling ( float scaling )

Defines horizontal scaling for text showing on the page. The initial value is 100.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getHorizontalScaling()

Précédent | Sommaire | Suivant
HaruPage::setHeight | Niveau supérieur | HaruPage::setLineCap


HaruPage::setLineCap

(no version information, might be only in CVS)

HaruPage::setLineCap -- Set the shape to be used at the ends of lines

Description

bool HaruPage::setLineCap ( int cap )

Defines the shape to be used at the ends of lines.

Liste de paramètres

cap

Must be one of the following values:

HaruPage::BUTT_END - the line is squared off at the endpoint of the path.
HaruPage::ROUND_END - the end of the line becomes a semicircle with center in the end point of the path.
HaruPage::PROJECTING_SCUARE_END - the line continues to the point that exceeds half of the stroke width the end point.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getLineCap()

Précédent | Sommaire | Suivant
HaruPage::setHorizontalScaling | Niveau supérieur | HaruPage::setLineJoin


HaruPage::setLineJoin

(no version information, might be only in CVS)

HaruPage::setLineJoin -- Set line join style for the page

Description

bool HaruPage::setLineJoin ( int join )

Defines line join style for the page.

Liste de paramètres

join

Must be one of the following values:

HaruPage::MITER_JOIN
HaruPage::ROUND_JOIN
HaruPage::BEVEL_JOIN

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getLineJoin()

Précédent | Sommaire | Suivant
HaruPage::setLineCap | Niveau supérieur | HaruPage::setLineWidth


HaruPage::setLineWidth

(no version information, might be only in CVS)

HaruPage::setLineWidth -- Set line width for the page

Description

bool HaruPage::setLineWidth ( float width )

Defines line width for the page.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getLineWidth()

Précédent | Sommaire | Suivant
HaruPage::setLineJoin | Niveau supérieur | HaruPage::setMiterLimit


HaruPage::setMiterLimit

(no version information, might be only in CVS)

HaruPage::setMiterLimit -- Set the current value of the miter limit of the page

Description

bool HaruPage::setMiterLimit ( float limit )

Defines the current value of the miter limit of the page.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getMiterLimit()

Précédent | Sommaire | Suivant
HaruPage::setLineWidth | Niveau supérieur | HaruPage::setRGBFill


HaruPage::setRGBFill

(no version information, might be only in CVS)

HaruPage::setRGBFill -- Set filling color for the page

Description

bool HaruPage::setRGBFill ( float r, float g, float b )

Defines filling color for the page. All values must be between 0 and 1.

Liste de paramètres

r

g

b

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getRGBFill()

Précédent | Sommaire | Suivant
HaruPage::setMiterLimit | Niveau supérieur | HaruPage::setRGBStroke


HaruPage::setRGBStroke

(no version information, might be only in CVS)

HaruPage::setRGBStroke -- Set stroking color for the page

Description

bool HaruPage::setRGBStroke ( float r, float g, float b )

Defines stroking color for the page. All values must be between 0 and 1.

Liste de paramètres

r

g

b

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getRGBStroke()

Précédent | Sommaire | Suivant
HaruPage::setRGBFill | Niveau supérieur | HaruPage::setRotate


HaruPage::setRotate

(no version information, might be only in CVS)

HaruPage::setRotate -- Set rotation angle of the page

Description

bool HaruPage::setRotate ( int angle )

Defines rotation angle of the page.

Liste de paramètres

angle

Must be a multiple of 90 degrees.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::setRGBStroke | Niveau supérieur | HaruPage::setSize


HaruPage::setSize

(no version information, might be only in CVS)

HaruPage::setSize -- Set size and direction of the page

Description

bool HaruPage::setSize ( int size, int direction )

Changes size and direction of the page to a predefined format.

Liste de paramètres

size

Must be one of the following values:

HaruPage::SIZE_LETTER
HaruPage::SIZE_LEGAL
HaruPage::SIZE_A3
HaruPage::SIZE_A4
HaruPage::SIZE_A5
HaruPage::SIZE_B4
HaruPage::SIZE_B5
HaruPage::SIZE_EXECUTIVE
HaruPage::SIZE_US4x6
HaruPage::SIZE_US4x8
HaruPage::SIZE_US5x7
HaruPage::SIZE_COMM10

direction

Must be one of the following values:

HaruPage::PORTRAIT
HaruPage::LANDSCAPE

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::setWidth()
HaruPage::setHeight()

Précédent | Sommaire | Suivant
HaruPage::setRotate | Niveau supérieur | HaruPage::setSlideShow


HaruPage::setSlideShow

(no version information, might be only in CVS)

HaruPage::setSlideShow -- Set transition style for the page

Description

bool HaruPage::setSlideShow ( int type, float disp_time, float trans_time )

Defines transition style for the page.

Liste de paramètres

type

Must be one of the following values:

HaruPage::TS_WIPE_RIGHT
HaruPage::TS_WIPE_LEFT
HaruPage::TS_WIPE_UP
HaruPage::TS_WIPE_DOWN
HaruPage::TS_BARN_DOORS_HORIZONTAL_OUT
HaruPage::TS_BARN_DOORS_HORIZONTAL_IN
HaruPage::TS_BARN_DOORS_VERTICAL_OUT
HaruPage::TS_BARN_DOORS_VERTICAL_IN
HaruPage::TS_BOX_OUT
HaruPage::TS_BOX_IN
HaruPage::TS_BLINDS_HORIZONTAL
HaruPage::TS_BLINDS_VERTICAL
HaruPage::TS_DISSOLVE
HaruPage::TS_GLITTER_RIGHT
HaruPage::TS_GLITTER_DOWN
HaruPage::TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT
HaruPage::TS_REPLACE

disp_time

The display duration of the page in seconds.

trans_time

The duration of the transition effect in seconds.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::setSize | Niveau supérieur | HaruPage::setTextLeading


HaruPage::setTextLeading

(no version information, might be only in CVS)

HaruPage::setTextLeading -- Set text leading (line spacing) for the page

Description

bool HaruPage::setTextLeading ( float text_leading )

Defines line spacing for the page.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getTextLeading()

Précédent | Sommaire | Suivant
HaruPage::setSlideShow | Niveau supérieur | HaruPage::setTextMatrix


HaruPage::setTextMatrix

(no version information, might be only in CVS)

HaruPage::setTextMatrix -- Set the current text transformation matrix of the page

Description

bool HaruPage::setTextMatrix ( float a, float b, float c, float d, float x, float y )

Defines the text transformation matrix of the page.

Liste de paramètres

a

b

c

d

x

y

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getTextMatrix()

Précédent | Sommaire | Suivant
HaruPage::setTextLeading | Niveau supérieur | HaruPage::setTextRenderingMode


HaruPage::setTextRenderingMode

(no version information, might be only in CVS)

HaruPage::setTextRenderingMode -- Set text rendering mode for the page

Description

bool HaruPage::setTextRenderingMode ( int mode )

Defines text rendering mode for the page.

Liste de paramètres

mode

Must be one of the following values:

HaruPage::FILL
HaruPage::STROKE
HaruPage::FILL_THEN_STROKE
HaruPage::INVISIBLE
HaruPage::FILL_CLIPPING
HaruPage::STROKE_CLIPPING
HaruPage::FILL_STROKE_CLIPPING
HaruPage::CLIPPING

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getTextRenderingMode()

Précédent | Sommaire | Suivant
HaruPage::setTextMatrix | Niveau supérieur | HaruPage::setTextRise


HaruPage::setTextRise

(no version information, might be only in CVS)

HaruPage::setTextRise -- Set the current value of text rising

Description

bool HaruPage::setTextRise ( float rise )

Defines the current value of text rising.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getTextRise()

Précédent | Sommaire | Suivant
HaruPage::setTextRenderingMode | Niveau supérieur | HaruPage::setWidth


HaruPage::setWidth

(no version information, might be only in CVS)

HaruPage::setWidth -- Set width of the page

Description

bool HaruPage::setWidth ( float width )

Defines width of the page.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getWidth()

Précédent | Sommaire | Suivant
HaruPage::setTextRise | Niveau supérieur | HaruPage::setWordSpace


HaruPage::setWordSpace

(no version information, might be only in CVS)

HaruPage::setWordSpace -- Set word spacing for the page

Description

bool HaruPage::setWordSpace ( float word_space )

Defines word spacing for the page.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::getWordSpace()

Précédent | Sommaire | Suivant
HaruPage::setWidth | Niveau supérieur | HaruPage::showText


HaruPage::showText

(no version information, might be only in CVS)

HaruPage::showText -- Print text at the current position of the page

Description

bool HaruPage::showText ( string text )

Prints out the text at the current position of the page.

Liste de paramètres

text

The text to show.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::showTextNextLine()
HaruPage::textOut()

Précédent | Sommaire | Suivant
HaruPage::setWordSpace | Niveau supérieur | HaruPage::showTextNextLine


HaruPage::showTextNextLine

(no version information, might be only in CVS)

HaruPage::showTextNextLine -- Move the current position to the start of the next line and print the text

Description

bool HaruPage::showTextNextLine ( string text [, float word_space [, float char_space]] )

Moves the current position to the start of the next line and print out the text.

Liste de paramètres

text

The text to show.

word_space

The word spacing.

char_space

The character spacing.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::showText()
HaruPage::textOut()

Précédent | Sommaire | Suivant
HaruPage::showText | Niveau supérieur | HaruPage::stroke


HaruPage::stroke

(no version information, might be only in CVS)

HaruPage::stroke -- Paint current path

Description

bool HaruPage::stroke ( [bool close_path] )

Paints the current path.

Liste de paramètres

close_path

Closes the current path if set to TRUE. Defaults to FALSE.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Précédent | Sommaire | Suivant
HaruPage::showTextNextLine | Niveau supérieur | HaruPage::textOut


HaruPage::textOut

(no version information, might be only in CVS)

HaruPage::textOut -- Print the text on the specified position

Description

bool HaruPage::textOut ( float x, float y, string text )

Prints the text on the specified position.

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::showTextNextLine()
HaruPage::showText()

Précédent | Sommaire | Suivant
HaruPage::stroke | Niveau supérieur | HaruPage::textRect


HaruPage::textRect

(no version information, might be only in CVS)

HaruPage::textRect -- Print the text inside the specified region

Description

bool HaruPage::textRect ( float left, float top, float right, float bottom, string text [, int align] )

Prints the text inside the specified region.

Liste de paramètres

left

Left border of the text area.

top

Top border of the text area.

right

Right border of the text area.

bottom

Lower border of the text area.

text

The text to print.

align

Text alignment. Must be one of the following values:

HaruPage::TALING_LEFT
HaruPage::TALING_RIGHT
HaruPage::TALING_CENTER
HaruPage::TALING_JUSTIFY

Valeurs de retour

Returns TRUE on success.

Erreurs / Exceptions

Throws HaruException on error.

Voir aussi

HaruPage::showTextNextLine()
HaruPage::showText()
HaruPage::textOut()

Précédent | Sommaire | Suivant
HaruPage::textOut | Niveau supérieur | Fonctions hash


hash

(no version information, might be only in CVS)

hash -- Génère une valeur de hachage (empreinte numérique)

Description

string hash ( string algo, string data [, bool raw_output] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.)

data

Message à être haché.

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule. La valeur par défaut est FALSE.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Exemples

Exemple 1. Exemple avec hash()

<?php
echo hash('ripemd160', 'Le rapide goupil brun sauta par dessus le chien paresseux.');
?>

L'exemple ci-dessus va afficher :

cdb8426cb020896cea1d040e62a0f8cf9f5b4226

Voir aussi

hash_file()
hash_hmac()
hash_init()

Précédent | Sommaire | Suivant
hash_update | Niveau supérieur | HTTP


hash_algos

(no version information, might be only in CVS)

hash_algos -- Retourne une liste des algorithmes de hachage enregistrés

Description

array hash_algos ( void )

Valeurs de retour

Retourne un tableau indexé numériquement contenant la liste des algorithmes de hachage supportés.

Exemples

Exemple 1. Exemple avec hash_algos()

Dans PHP 5.1.2, hash_algos() retournera la liste d'algorithmes suivante :

<?php
print_r(hash_algos());
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => md4
    [1] => md5
    [2] => sha1
    [3] => sha256
    [4] => sha384
    [5] => sha512
    [6] => ripemd128
    [7] => ripemd160
    [8] => whirlpool
    [9] => tiger128,3
    [10] => tiger160,3
    [11] => tiger192,3
    [12] => tiger128,4
    [13] => tiger160,4
    [14] => tiger192,4
    [15] => snefru
    [16] => gost
    [17] => adler32
    [18] => crc32
    [19] => crc32b
    [20] => haval128,3
    [21] => haval160,3
    [22] => haval192,3
    [23] => haval224,3
    [24] => haval256,3
    [25] => haval128,4
    [26] => haval160,4
    [27] => haval192,4
    [28] => haval224,4
    [29] => haval256,4
    [30] => haval128,5
    [31] => haval160,5
    [32] => haval192,5
    [33] => haval224,5
    [34] => haval256,5
)

Précédent | Sommaire | Suivant
Fonctions hash | Niveau supérieur | hash_file


hash_file

(no version information, might be only in CVS)

hash_file -- Génère une valeur de hachage en utilisant le contenu d'un fichier donné

Description

string hash_file ( string algo, string filename [, bool raw_output] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.)

filename

URL indiquant l'emplacement du fichier qui sera haché; Supporte les enveloppes fopen.

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule. La valeur par défaut est FALSE.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Exemples

Exemple 1. Exemple avec hash_file()

<?php
/* Crée un fichier pour calculer son empreinte numérique */
file_put_contents('exemple.txt', 'Le rapide goupil brun sauta par dessus le chien paresseux.');

echo hash_file('md5', 'exemple.txt');
?>

L'exemple ci-dessus va afficher :

2dfe052a8caca3db869ede6ae544cd5d

Voir aussi

hash()
hash_hmac_file()
hash_update_file()

Précédent | Sommaire | Suivant
hash_algos | Niveau supérieur | hash_final


hash_final

(no version information, might be only in CVS)

hash_final -- Finalise un hachage incrémentiel et retourne le résultat de l'empreinte numérique

Description

string hash_final ( resource context [, bool raw_output] )

Liste de paramètres

context

Contexte de hachage retourné par hash_init().

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule. La valeur par défaut est FALSE.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Exemples

Exemple 1. Exemple avec hash_final()

<?php
$ctx = hash_init('sha1');
hash_update($ctx, 'Le rapide goupil brun sauta par dessus le chien paresseux.');
echo hash_final($ctx);
?>

L'exemple ci-dessus va afficher :

7d36f32a7c271e74a44d759b89d19bbaf1b53904

Voir aussi

hash_init()
hash_update()
hash_update_stream()
hash_update_file()

Précédent | Sommaire | Suivant
hash_file | Niveau supérieur | hash_hmac_file


hash_hmac

(no version information, might be only in CVS)

hash_hmac -- Génère une valeur de clé de hachage en utilisant la méthode HMAC

Description

string hash_hmac ( string algo, string data, string key [, bool raw_output] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.)

data

Le message qui sera haché.

key

Clé secrète partagée utilisée pour générer la variance HMAC de l'empreinte numérique.

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule. La valeur par défaut est FALSE.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Exemples

Exemple 1. Exemple avec hash_hmac()

<?php
echo hash_hmac('ripemd160', 'Le rapide goupil brun sauta par dessus le chien paresseux.', 'secret');
?>

L'exemple ci-dessus va afficher :

a6f41314c7a3482836268cf504b066e08216e40f

Voir aussi

hash()
hash_init()
hash_hmac_file()

Précédent | Sommaire | Suivant
hash_hmac_file | Niveau supérieur | hash_init


hash_hmac_file

(no version information, might be only in CVS)

hash_hmac_file -- Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné

Description

string hash_hmac_file ( string algo, string filename, string key [, bool raw_output] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.)

filename

URL indiquant l'emplacement du fichier qui sera haché; Supporte les enveloppes fopen.

key

Clé secrète partagée utilisée pour générer la variance HMAC de l'empreinte numérique.

raw_output

Lorsqu'il vaut TRUE, la sortie sera des données brutes binaires. Lorsqu'il vaut FALSE, la sortie sera des chiffres hexadécimaux en minuscule. La valeur par défaut est FALSE.

Valeurs de retour

Retourne une chaîne de caractères contenant l'empreinte numérique calculée en chiffre hexadécimal minuscule à moins que raw_output soit fixé à TRUE. Dans ce cas, la représentation brute binaire de l'empreinte numérique est retournée.

Exemples

Exemple 1. Exemple avec hash_hmac_file()

<?php
/* Crée un fichier pour calculer son empreinte numérique */
file_put_contents('exemple.txt', 'Le rapide goupil brun sauta par dessus le chien paresseux.');

echo hash_hmac_file('md5', 'exemple.txt', 'secret');
?>

L'exemple ci-dessus va afficher :

0d68e079ae8a5d364df207637e4f6860

Voir aussi

hash_hmac()
hash_file()

Précédent | Sommaire | Suivant
hash_final | Niveau supérieur | hash_hmac


hash_init

(no version information, might be only in CVS)

hash_init -- Initialise un contexte de hachage incrémentiel

Description

resource hash_init ( string algo [, int options, string key] )

Liste de paramètres

algo

Nom de l'algorithme de hachage sélectionné (c'est-à-dire "md5", "sha256", "haval160,4", etc.)

options

Configurations optionnelles pour la génération du hachage, supporte actuellement seulement une option : HASH_HMAC. Lorsque cette option est spécifiée, le paramètre key doit être spécifié.

key

Lorsque HASH_HMAC est spécifiée pour options, une clé secrète partagée qui sera utilisée avec la méthode de hachage HMAC doit être fournie dans ce paramètre.

Valeurs de retour

Retourne une ressource de Contexte de Hachage pour utilisation avec hash_update(), hash_update_stream(), hash_update_file() et hash_final().

Exemples

Exemple 1. Exemple de hachage incrémentiel

<?php
$ctx = hash_init('md5');
hash_update($ctx, 'Le rapide goupil brun ');
hash_update($ctx, 'sauta par dessus le chien paresseux.');
echo hash_final($ctx);
?>

L'exemple ci-dessus va afficher :

2dfe052a8caca3db869ede6ae544cd5d

Voir aussi

hash()
hash_file()
hash_hmac()
hash_hmac_file()

Précédent | Sommaire | Suivant
hash_hmac | Niveau supérieur | hash_update_file


hash_update

(no version information, might be only in CVS)

hash_update -- Ajoute des données dans le contexte de hachage actif

Description

bool hash_update ( resource context, string data )

Liste de paramètres

context

Contexte de hachage retourné par hash_init().

data

Message qui sera inclut dans l'empreinte de hachage.

Valeurs de retour

Retourne TRUE.

Voir aussi

hash_init()
hash_update_file()
hash_update_stream()
hash_final()

Précédent | Sommaire | Suivant
hash_update_stream | Niveau supérieur | hash


hash_update_file

(no version information, might be only in CVS)

hash_update_file -- Ajoute des données dans un contexte de hachage actif provenant d'un fichier

Description

bool hash_update_file ( resource context, string filename [, resource context] )

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.

context

Contexte de flux retourné par stream_context_create().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

hash_init()
hash_update()
hash_update_stream()
hash_final()
hash()
hash_file()

Précédent | Sommaire | Suivant
hash_init | Niveau supérieur | hash_update_stream


hash_update_stream

(no version information, might be only in CVS)

hash_update_stream -- Ajoute des données dans un contexte de hachage actif d'un flux ouvert

Description

int hash_update_stream ( resource context, resource handle [, int length] )

Liste de paramètres

context

Contexte de hachage retourné par hash_init().

handle

Identifiant de fichier ouvert comme retourné par n'importe quelle fonction de création de flux.

length

Taille maximale de caractères à copier de handle dans le contexte de hachage.

Valeurs de retour

Nombre actuel d'octets ajoutés au contexte de hachage de handle.

Exemples

Exemple 1. Exemple avec hash_update_stream()

<?php
$fp = tmpfile();
fwrite($fp, 'Le rapide goupil brun sauta par dessus le chien paresseux.');
rewind($fp);

$ctx = hash_init('md5');
hash_update_stream($ctx, $fp);
echo hash_final($ctx);
?>

L'exemple ci-dessus va afficher :

2dfe052a8caca3db869ede6ae544cd5d

Voir aussi

hash_init()
hash_update()
hash_final()
hash()
hash_file()

Précédent | Sommaire | Suivant
hash_update_file | Niveau supérieur | hash_update


http_build_cookie

(no version information, might be only in CVS)

http_build_cookie -- Construit le cookie

Description

string http_build_cookie ( array cookie )

Construit un cookie depuis un objet/tableau comme retourné par la fonction http_parse_cookie().

Liste de paramètres

cookie

une liste de cookies comme retournée par la fonction http_parse_cookie()

Valeurs de retour

Retourne le(s) cookie(s) sous la forme d'une chaîne de caractères.

Précédent | Sommaire | Suivant
http_match_request_header | Niveau supérieur | http_negotiate_charset


http_build_str

(no version information, might be only in CVS)

http_build_str -- Construit une URL à partir d'une chaîne de caractères

Description

string http_build_str ( array query [, string prefix [, string arg_separator]] )

Cette fonction estl'inverse de la fonction parse_str().

Liste de paramètres

query

tableau associatif de paramètres pour la construction de l'URL associative array of query string parameters

prefix

Préfixe de premier niveau

arg_separator

séparateur à utiliser (par défaut, ce sera le contenu de la variable de configuration INI arg_separator.output) ou "&" si rien n'est défini

Valeurs de retour

Retourne l'URL construite sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
http_throttle | Niveau supérieur | http_build_url


http_build_url

(no version information, might be only in CVS)

http_build_url -- Construit une URL

Description

string http_build_url ( [mixed url [, mixed parts [, int flags = HTTP_URL_REPLACE [, array &new_url]]]] )

Construit une URL.

Les parties de la seconde URL seront ajoutées dans la première en fonction des arguments.

Liste de paramètres

url

partie(s) d'une URL sous la forme d'une chaîne ou un tableau associatif comme retourné par la fonction parse_url()

parts

la même chose que le premier argument

flags

un masque de constantes HTTP_URL ; HTTP_URL_REPLACE est la valeur par défaut

new_url

si défini, il sera ajouté avec les parties de l'URL composée comme retournée par la fonction parse_url()

Valeurs de retour

Retourne la nouvelle URL sous la forme d'une chaîne en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec http_build_url()

<?php
echo http_build_url("http://user@www.example.com/pub/index.php?a=b#files",
         array(
                 "scheme" => "ftp",
                 "host" => "ftp.example.com",
                 "path" => "files/current/",
                  "query" => "a=c"
          ),
         HTTP_URL_STRIP_AUTH | HTTP_URL_JOIN_PATH | HTTP_URL_JOIN_QUERY | HTTP_URL_STRIP_FRAGMENT
);
?>

L'exemple ci-dessus va afficher :

ftp://ftp.example.com/pub/files/current/?a=b&a=c

Précédent | Sommaire | Suivant
http_build_str | Niveau supérieur | Hyperwave


http_cache_etag

(PECL)

http_cache_etag -- Mise en cache en fonction de l'ETag

Description

bool http_cache_etag ( [string etag] )

Tente de mettre en cache l'entité envoyée en fonction de l'ETag soit fourni, soit généré par l'algorithme de hashage spécifié par l'option de configuration http.etag.mode.

Si l'en-tête If-None-Match du client correspond à l'ETag fourni/calculé, le corps est considéré comme étant en cache côté client et un code statut 304 Not Modified est émis.

Une entrée dans l'historique est écrite dans l'historique de cache si le Paramètres INI http.log.cache est défini et que la mise en cache est un succès.

Liste de paramètres

etag

ETag personnalisé

Valeurs de retour

Returns FALSE or exits on success avec un en-tête 304 Not Modified si l'entité est mis en cache. See the Paramètres INI http.force_exit for what "exits" means.

Précédent | Sommaire | Suivant
HttpResponse::setThrottleDelay | Niveau supérieur | http_cache_last_modified


http_cache_last_modified

(PECL)

http_cache_last_modified -- Mise en cache en fonction de la date de dernière modification

Description

bool http_cache_last_modified ( [int timestamp_or_expires] )

Tente de mettre en cache l'entité envoyé en fonction de sa date de dernière modification.

Si l'argument fourni est plus grand que 0, il sera considéré comme un timestamp Unix et sera envoyé comme date de dernière modification. S'il vaut 0 ou s'il est omis, la date courante sera envoyée comme date de dernière modification. S'il est négatif, il sera considéré comme une date d'expiration, en secondes, ce qui signifie que si la date de dernière modification demandée n'est pas dans l'intervalle de la période calculée, l'en-tête Last-Modified sera mise à jour et le corps actuel sera envoyé.

Une entrée dans l'historique sera écrite dans l'historique du cache si le Paramètres INI http.log.cache est défini et que la mise en cache est un succès.

Liste de paramètres

timestamp_or_expires

Timestamp Unix

Valeurs de retour

Returns FALSE or exits on success avec un en-tête 304 Not Modified si l'entité est mis en cache. See the Paramètres INI http.force_exit for what "exits" means.

Précédent | Sommaire | Suivant
http_cache_etag | Niveau supérieur | http_chunked_decode


http_chunked_decode

(PECL)

http_chunked_decode -- Décode un fragment de donnée encodé

Description

string http_chunked_decode ( string encoded )

Décode un fragment de chaîne encodée.

Liste de paramètres

encoded

Fragment de chaîne encodée

Valeurs de retour

Retourne la chaîne décodée en cas de succès, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
http_cache_last_modified | Niveau supérieur | http_deflate


http_date

(PECL)

http_date -- Compose une date respectant la RFC HTTP

Description

string http_date ( [int timestamp] )

Compose une date HTTP valide au regard de la RFC 1123, tel que : Wed, 22 Dec 2004 11:34:47 GMT.

Liste de paramètres

timestamp

Timestamp Unix

Valeurs de retour

Retourne une date HTTP sous la forme d'une chaîne de caractères.

Précédent | Sommaire | Suivant
http_get_request_headers | Niveau supérieur | http_support


http_deflate

(no version information, might be only in CVS)

http_deflate -- Compresse des données

Description

string http_deflate ( [string data [, int flags = 0]] )

Compresse des données avec gzip, zlib AKA deflate ou l'encodage raw deflate.

Voir la table des constantes de compression pour les valeurs possibles pour le paramètre flags.

Liste de paramètres

data

chaîne contenant les données qui doivent être encodées

flags

Options de compression

Valeurs de retour

Retourne la chaîne encodée en cas de succès, ou NULL si une erreur survient.

Précédent | Sommaire | Suivant
http_chunked_decode | Niveau supérieur | http_inflate


http_get

(PECL)

http_get -- Effectue une requête GET

Description

string http_get ( string url [, array options [, array &info]] )

Effectue une requête HTTP GET sur l'URL fournie.

Voir la fonction http_get() pour une liste complète des paramètres options et options disponibles.

Liste de paramètres

url

URL

options

Options de demande

info

Doit contenir les informations requête/réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec http_get()

<?php
$response = http_get("http://www.example.com/", array("timeout"=>1), $info);
print_r($info);
?>

L'exemple ci-dessus va afficher :

array (
  'effective_url' => 'http://www.example.com/',
  'response_code' => 302,
  'connect_code' => 0,
  'filetime' => -1,
  'total_time' => 0.212348,
  'namelookup_time' => 0.038296,
  'connect_time' => 0.104144,
  'pretransfer_time' => 0.104307,
  'starttransfer_time' => 0.212077,
  'redirect_time' => 0,
  'redirect_count' => 0,
  'size_upload' => 0,
  'size_download' => 218,
  'speed_download' => 1026,
  'speed_upload' => 0,
  'header_size' => 307,
  'request_size' => 103,
  'ssl_verifyresult' => 0,
  'ssl_engines' =>
  array (
    0 => 'dynamic',
    1 => 'cswift',
    2 => 'chil',
    3 => 'atalla',
    4 => 'nuron',
    5 => 'ubsec',
    6 => 'aep',
    7 => 'sureware',
    8 => '4758cca',
  ),
  'content_length_download' => 218,
  'content_length_upload' => 0,
  'content_type' => 'text/html',
  'httpauth_avail' => 0,
  'proxyauth_avail' => 0,
  'num_connects' => 1,
  'os_errno' => 0,
  'error' => '',
)

Précédent | Sommaire | Suivant
http_persistent_handles_clean | Niveau supérieur | http_head


http_get_request_body

(PECL)

http_get_request_body -- Récupère le corps demandé sous la forme d'une chaîne de caractères

Description

string http_get_request_body ( void )

Récupère le corps demandé (e.g. données POST ou PUT).

Cette fonction ne peut pas être utilisée après la fonction http_get_request_body_stream() si la méthode de la demande est autre chose que POST.

Liste de paramètres

Valeurs de retour

Retourne le corps demandé sous la forme d'une chaîne de caractères, ou NULL si une erreur survient.

Précédent | Sommaire | Suivant
http_get_request_body_stream | Niveau supérieur | http_get_request_headers


http_get_request_body_stream

(no version information, might be only in CVS)

http_get_request_body_stream -- Récupère le corps demandé sous la forme d'un flux

Description

resource http_get_request_body_stream ( void )

Crée un flux pour lire le corps demandé (e.g. données POST ou PUT).

Cette fonction ne peut être utilisée qu'une seule dois si la méthode de la demande est autre chose que POST.

Liste de paramètres

Valeurs de retour

Retourne le corps demandé sous la forme d'un flux en cas de succès, ou NULL si une erreur survient.

Précédent | Sommaire | Suivant
http_inflate | Niveau supérieur | http_get_request_body


http_get_request_headers

(PECL)

http_get_request_headers -- Récupère les en-têtes sous la forme d'un tableau

Description

array http_get_request_headers ( void )

Récupère une liste d'en-têtes HTTP entrants.

Liste de paramètres

Valeurs de retour

Retourne un tableau associatif d'en-têtes entrants.

Précédent | Sommaire | Suivant
http_get_request_body | Niveau supérieur | http_date


http_head

(PECL)

http_head -- Effectue une requête HEAD

Description

string http_head ( [string url [, array options [, array &info]]] )

Effectue une requête HTTP HEAD sur l'URL fournie.

Voir la fonction http_get() pour une liste complète des paramètres options et options disponibles.

Liste de paramètres

url

URL

options

Options de demande

info

Information sur la demande / réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE en cas d'échec.

Précédent | Sommaire | Suivant
http_get | Niveau supérieur | http_post_data


http_inflate

(no version information, might be only in CVS)

http_inflate -- Décompresse des données

Description

string http_inflate ( string data )

Décompresse des données compressées avec gzip, deflate AKA zlib ou l'encodage raw deflate.

Liste de paramètres

data

chaîne contenant les données compressées

Valeurs de retour

Retourne la chaîne décodée en cas de succès, ou NULL si une erreur survient.

Précédent | Sommaire | Suivant
http_deflate | Niveau supérieur | http_get_request_body_stream


http_match_etag

(PECL)

http_match_etag -- Cherche un ETag particulier

Description

bool http_match_etag ( [string etag [, bool for_range = FALSE]] )

Cherche l'ETag fourni dans l'en-tête HTTP If-Match ou If-None-Match du client.

Liste de paramètres

etag

l'ETag à chercher

for_range

si défini à TRUE, l'en-tête habituellement utilisé pour valider l'intervalle HTTP sera analysé

Valeurs de retour

Retourne TRUE si l'ETag correspond ou l'en-ête contient une astérisque ("*"), FALSE sinon.

Précédent | Sommaire | Suivant
http_support | Niveau supérieur | http_match_modified


http_match_modified

(PECL)

http_match_modified -- Vérifie la date de dernière modification

Description

bool http_match_modified ( [int timestamp [, bool for_range = FALSE]] )

Vérifie si le timestamp Unix fourni est valide vis-à-vis de l'en-tête HTTP "If-Modified-Since" ou "If-Unmodified-Since" du client.

Liste de paramètres

timestamp

Timestamp Unix ou la date courante si ce paramètre est omis

for_range

si défini à TRUE, l'en-tête habituellement utilisé pour valider l'intervalle HTTP sera vérifié

Valeurs de retour

Retourne TRUE si le timestamp représente une date plus récente que l'en-tete, FALSE sinon.

Précédent | Sommaire | Suivant
http_match_etag | Niveau supérieur | http_match_request_header


http_match_request_header

(PECL)

http_match_request_header -- Cherche n'importe quel en-tete

Description

bool http_match_request_header ( string header [, string value [, bool match_case = FALSE]] )

Cherche un en-tête HTTP entrant.

Liste de paramètres

header

Le nom de l'en-tête (insensible à la casse)

value

La valeur de l'en-tête qui doit être comparée

match_case

Si la valeur doit être comparée en respectant la casse

Valeurs de retour

Retourne TRUE si la valeur de l'en-tête correspond, FALSE sinon.

Précédent | Sommaire | Suivant
http_match_modified | Niveau supérieur | http_build_cookie


http_negotiate_charset

(PECL)

http_negotiate_charset -- Jeu de caractères préféré pour la négociation avec les clients

Description

string http_negotiate_charset ( [array supported [, array &result]] )

Cette fonction négocie le jeu de caractères préféré par les cliens basé sur les en-têtes HTTP Accept-Charset.

Liste de paramètres

supported

tableau contenant les jeux de caractères supportés comme valeurs

result

doit contenir un tableau contenant les résultats de la négociation

Valeurs de retour

Retourne le jeu de caractères négocié ou le jeu de caractères par défaut (i.e. première entrée du tableau) si aucun ne correspond.

Exemples

Exemple 1. Exemple avec http_negotiate_charset()

<?php
$charsets = array(
    'iso-8859-1', // default
    'iso-8859-2',
    'iso-8859-15',
    'utf-8'
);

$pref = http_negotiate_charset($charsets, $result);

if (strcmp($pref, 'iso-8859-1')) {
    iconv_set_encoding('internal_encoding', 'iso-8859-1');
    iconv_set_encoding('output_encoding', $pref);
    ob_start('ob_iconv_handler');
}

print_r($result);
?>

Précédent | Sommaire | Suivant
http_build_cookie | Niveau supérieur | http_negotiate_content_type


http_negotiate_content_type

(no version information, might be only in CVS)

http_negotiate_content_type -- Negotiate clients preferred content type

Description

string http_negotiate_content_type ( [array supported [, array &result]] )

This function negotiates the clients preferred content type based on its Accept HTTP header. The qualifier is recognized and content types without qualifier are rated highest.

Liste de paramètres

supported

Array containing the supported content types as values

result

Will be filled with an array containing the negotiation results

Valeurs de retour

Returns the negotiated content type or the default content type (i.e. first array entry) if none match.

Exemples

Exemple 1. Using http_negotiate_content_type()

<?php
$content_types = array('application/xhtml+xml', 'text/html');
http_send_content_type(http_negotiate_content_type($content_types));
?>

Précédent | Sommaire | Suivant
http_negotiate_charset | Niveau supérieur | http_negotiate_language


http_negotiate_language

(PECL)

http_negotiate_language -- Négocie le langage préféré par les clients

Description

string http_negotiate_language ( [array supported [, array &result]] )

Cette fonction négocie le langage préféré par les clients, basé sur les en-têtes HTTP Accept-Language.

Liste de paramètres

supported

tableau contenant les langages supportés en tant que valeurs

result

contient un tableau, contenant les résultats de la négociation

Valeurs de retour

Retourne le langage négocié ou le langage par défaut (i.e. première entrée du tableau) si aucun ne correspond.

Exemples

Exemple 1. Exemple avec http_negotiate_language()

<?php
$langs = array(
    'en-US',// défaut
    'fr',
    'fr-FR',
    'de',
    'de-DE',
    'de-AT',
    'de-CH',
);

include './langs/'. http_negotiate_language($langs, $result) .'.php';

print_r($result);
?>

Précédent | Sommaire | Suivant
http_negotiate_content_type | Niveau supérieur | ob_deflatehandler


http_parse_cookie

(no version information, might be only in CVS)

http_parse_cookie -- Analyse un cookie HTTP

Description

object http_parse_cookie ( [string cookie [, int flags [, array allowed_extras]]] )

Analyse des cookies HTTP comme ceux envoyés dans une réponse.

Liste de paramètres

cookie

Chaîne contenant la valeur de l'en-tête Set-Cookie de la réponse

flags

Flags d'analyse

allowed_extras

Tableau contenant des clés reconnues supplémentaires. Par défaut, toutes les clés inconnues seront traitées comme des noms de cookies.

Valeurs de retour

Retourne une stdClass comme montrée dans l'exemple en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec http_parse_cookie()

<?php
print_r(http_parse_cookie("foo=bar; bar=baz; path=/; domain=example.com; comment=; secure", 0, array("comment")));
?>

L'exemple ci-dessus va afficher :

stdClass Object
(
  [cookies] => Array
  (
    [foo] => bar
    [bar] => baz
  )

  [extras] => Array
  (
    [comment] =>
  )

  [flags] => 16
  [expires] => 0
  [path] => /
  [domain] => example.com
)

Précédent | Sommaire | Suivant
ob_inflatehandler | Niveau supérieur | http_parse_headers


http_parse_headers

(PECL)

http_parse_headers -- Analyse les en-tetes HTTP

Description

array http_parse_headers ( string header )

Analyse les en-têtes HTTP et les placent dans un tableau associatif.

Liste de paramètres

header

Chaîne contenant les en-têtes HTTP

Valeurs de retour

Retourne un tableau en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec http_parse_headers()

<?php
$headers = "content-type: text/html; charset=UTF-8\r\n".
  "Server: Funky/1.0\r\n".
  "Set-Cookie: foo=bar\r\n".
  "Set-Cookie: baz=quux\r\n".
  "Folded: works\r\n\ttoo\r\n";
print_r(http_parse_headers($headers));
?>

L'exemple ci-dessus va afficher :

Array
(
  [Content-Type] => text/html; chatset=UTF-8
  [Server] => Funky/1.0
  [Set-Cookie] => Array
  (
    [0] => foo=bar
    [1] => baz=quux
  )
  [Folded] => works
    too
)

Précédent | Sommaire | Suivant
http_parse_cookie | Niveau supérieur | http_parse_message


http_parse_message

(PECL)

http_parse_message -- Analyse un message HTTP

Description

object http_parse_message ( string message )

Analyse le message HTTP dans un objet simple récursif.

Liste de paramètres

message

Chaîne contenant un message HTTP simple ou plusieurs messages HTTP consécutifs

Valeurs de retour

Une structure d'???s hiérarchiques des messages analysés.

Exemples

Exemple 1. Exemple avec http_parse_message()

<?php
define ('URL', 'http://www.example.com/');
print_r(http_parse_message(http_get(URL, array('redirect' => 3))));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

stdClass object
(
  [type] => 2
  [httpVersion] => 1.1
  [responseCode] => 200
  [headers] => Array
  (
    [Content-Length] => 3
    [Server] => Apache
  )
  [body] => Hi!
  [parentMessage] => stdClass object
  (
    [type] => 2
    [httpVersion] => 1.1
    [responseCode] => 302
    [headers] => Array
    (
      [Content-Length] => 0
      [Location] => ...
    )
    [body] =>
    [parentMessage] => ...
  )
)

Précédent | Sommaire | Suivant
http_parse_headers | Niveau supérieur | http_parse_params


http_parse_params

(no version information, might be only in CVS)

http_parse_params -- Analyse la liste des paramètres

Description

object http_parse_params ( [string param [, int flags = HTTP_PARAMS_DEFAULT]] )

Analyse la liste des paramètres.

Voir la table des constantes analysées pour les valeurs possibles de l'argument flags.

Liste de paramètres

param

Paramètres

flags

Flags d'analyse

Valeurs de retour

Retourne la liste des paramètres.

Exemples

Exemple 1. Exemple avec http_parse_params()

<?php
var_dump(http_parse_params("text/html; charset=\"utf8\""));
?>

L'exemple ci-dessus va afficher :

object(stdClass)#1 (1) {
  ["params"]=>
  array(2) {
    [0]=>
    string(9) "text/html"
    [1]=>
    array(1) {
      ["charset"]=>
      string(4) "utf8"
    }
  }
}

Précédent | Sommaire | Suivant
http_parse_message | Niveau supérieur | http_persistent_handles_count


http_persistent_handles_clean

(no version information, might be only in CVS)

http_persistent_handles_clean -- Clean up persistent handles

Description

string http_persistent_handles_clean ( [string ident] )

Clean up (close) persistent handles, optionally identified with ident.

Liste de paramètres

clean

the identification string

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
http_persistent_handles_ident | Niveau supérieur | http_get


http_persistent_handles_count

(no version information, might be only in CVS)

http_persistent_handles_count -- Stat persistent handles

Description

object http_persistent_handles_count ( void )

List statistics about persistent handles usage.

Liste de paramètres

Valeurs de retour

Returns persistent handles statistics as stdClass object on success or FALSE on failure.

Exemples

Exemple 1. A http_persistent_handles_count() example

<?php
print_r(http_persistent_handles_count());
?>

L'exemple ci-dessus va afficher :

stdClass Object
(
    [http_request] => Array
        (
            [GLOBAL] => Array
                (
                    [used] => 0
                    [free] => 1
                )

        )

    [http_request_datashare] => Array
        (
            [GLOBAL] => Array
                (
                    [used] => 1
                    [free] => 0
                )

        )

    [http_request_pool] => Array
        (
        )

)

Précédent | Sommaire | Suivant
http_parse_params | Niveau supérieur | http_persistent_handles_ident


http_persistent_handles_ident

(no version information, might be only in CVS)

http_persistent_handles_ident -- Get/set ident of persistent handles

Description

string http_persistent_handles_ident ( string ident )

Query or define the ident of persistent handles.

Liste de paramètres

ident

the identification string

Valeurs de retour

Returns the prior ident as string on success or FALSE on failure.

Exemples

Exemple 1. A http_persistent_handles_ident() example

<?php
echo http_persistent_handles_ident("CUSTOM"), "\n";
echo http_persistent_handles_ident("MyApp1"), "\n";
http_get("http://www.example.com/");
print_r(http_persistent_handles_count());
?>

L'exemple ci-dessus va afficher :

GLOBAL
CUSTOM
stdClass Object
(
    [http_request] => Array
        (
            [MyApp1] => Array
                (
                    [used] => 0
                    [free] => 1
                )

        )

    [http_request_datashare] => Array
        (
            [GLOBAL] => Array
                (
                    [used] => 1
                    [free] => 0
                )

        )

    [http_request_pool] => Array
        (
        )

)

Précédent | Sommaire | Suivant
http_persistent_handles_count | Niveau supérieur | http_persistent_handles_clean


http_post_data

(PECL)

http_post_data -- Effectue une requête POST avec des données pré-encodées

Description

string http_post_data ( string url [, string data [, array options [, array &info]]] )

Effectue une requête HTTP POST sur l'URL fournie.

Voir la fonction http_get() pour une liste complète des paramètres options et options disponibles.

Liste de paramètres

url

URL

data

chaîne contenant les données pré-encodées à envoyer par méthode POST

options

Options de demande

info

Information sur la demande / réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE en cas d'échec.

Précédent | Sommaire | Suivant
http_head | Niveau supérieur | http_post_fields


http_post_fields

(PECL)

http_post_fields -- Effectue une requête POST avec des données à encoder

Description

string http_post_fields ( string url [, array data [, array files [, array options [, array &info]]]] )

Effectue une requête HTTP POST sur l'URL fournie.

Voir la fonction http_get() pour une liste complète des paramètres options et options disponibles.

Liste de paramètres

url

URL

data

tableau associatif de valeurs POST

files

tableau de fichiers à envoyer par méthode POST

options

Options de demande

info

Information sur la demande / réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec http_post_fields()

<?php
$fields = array(
    'name' => 'mike',
    'pass' => 'se_ret'
);
$files = array(
    array(
        'name' => 'uimg',
        'type' => 'image/jpeg',
        'file' => './profile.jpg',
    )
);

$response = http_post_fields("http://www.example.com/", $fields, $files);
?>

Précédent | Sommaire | Suivant
http_post_data | Niveau supérieur | http_put_data


http_put_data

(no version information, might be only in CVS)

http_put_data -- Effectue une requête PUT avec des données

Description

string http_put_data ( string url [, string data [, array options [, array &info]]] )

Effectue une requête HTTP PUT sur l'URL fournie.

Voir la fonction http_get() pour une liste complète des paramètres options et options disponibles.

Liste de paramètres

url

URL

data

coprs de la requête PUT

options

Options de demande

info

Information sur la demande / réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE en cas d'échec.

Précédent | Sommaire | Suivant
http_post_fields | Niveau supérieur | http_put_file


http_put_file

(PECL)

http_put_file -- Effecute une requête PUT avec un fichier

Description

string http_put_file ( string url [, string file [, array options [, array &info]]] )

Effectue une requête HTTP PUT sur l'URL fournie.

Voir la fonction http_get() pour une liste complète des paramètres options et options disponibles.

Liste de paramètres

url

URL

file

le fichier à envoyer par méthode PUT

options

Options de demande

info

Information sur la demande / réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE en cas d'échec.

Précédent | Sommaire | Suivant
http_put_data | Niveau supérieur | http_put_stream


http_put_stream

(PECL)

http_put_stream -- Effectue une requête PUT avec un flux

Description

string http_put_stream ( string url [, resource stream [, array options [, array &info]]] )

Effectue une requête HTTP PUT sur l'URL fournie.

Voir la fonction http_get() pour une liste complète des paramètres options et options disponibles.

Liste de paramètres

url

URL

stream

le flux à lire pour le corps de la requête PUT

options

Options de demande

info

Information sur la demande / réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE en cas d'échec.

Précédent | Sommaire | Suivant
http_put_file | Niveau supérieur | http_request_method_exists


http_redirect

(PECL)

http_redirect -- Effectue une redirection HTTP

Description

void http_redirect ( [string url [, array params [, bool session = FALSE [, int status]]]] )

Effectue une redirection vers l'URL fournie.

L'URL fournie sera traité par la fonction http_build_url(), le tableau de paramètres sera traité par la fonction http_build_str() et l'identifiant de session sera ajouté si la session est active.

Le code réponse HTTP sera définit en accord avec le statut.

Vous pouvez utiliser une des constantes de redirection pour plus de confort.

Repportez-vous à la RFC 2616 pour connaître le code réponse de redirection à utiliser et dans quelle situation.

Par défaut, PHP décidera quel staut à la réponse convient le mieux.

Pour rester conforme à la RFC, "Redirecting to <a>URL</a>." doit être affiché, si le client ne redirige pas immédiatement, et que la méthode de la requête était différent de HEAD.

Une entrée sera écrite dans l'historique de la redirection, si le Paramètres INI http.log.redirect est définit et que la redirection réussit.

Liste de paramètres

url

l'URL de redirection

params

tableau associatif de paramètres de la requête

session

si l'on doit ou pas ajouter les informations de session

status

code du statut de la réponse personnalisée

Valeurs de retour

Returns FALSE or exits on success avec un code statut spécifique. See the Paramètres INI http.force_exit for what "exits" means.

Précédent | Sommaire | Suivant
http_request_body_encode | Niveau supérieur | http_send_content_disposition


http_request

(no version information, might be only in CVS)

http_request -- Effectue une requête personnalisée

Description

string http_request ( int method [, string url [, string body [, array options [, array &info]]]] )

Effectue une requête HTTP personnalisée sur l'URL suppliée.

Voir la fonction http_get() pour une liste complète des paramètres options et options disponibles.

Liste de paramètres

method

Méthode de la requête

url

URL

body

Corps de la requête

options

Options de demande

info

Information sur la demande / réponse

Valeurs de retour

Retourne la(les) réponse(s) HTTP sous la forme d'une chaîne de caractères en cas de succès, ou FALSE en cas d'échec.

Précédent | Sommaire | Suivant
http_request_method_unregister | Niveau supérieur | http_request_body_encode


http_request_body_encode

(no version information, might be only in CVS)

http_request_body_encode -- Encode le corps de la requête

Description

string http_request_body_encode ( array fields, array files )

Génère un coprs de requête encodé x-www-form-urlencoded.

Liste de paramètres

fields

champs POST

files

fichiers POST

Valeurs de retour

Retourne une chaîne encodée en cas de succès, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
http_request | Niveau supérieur | http_redirect


http_request_method_exists

(PECL)

http_request_method_exists -- Vérifie si la méthode de requête existe

Description

int http_request_method_exists ( mixed method )

Vérifie si la méthode de requête est enregistrée (ou disponible, par défaut).

Liste de paramètres

method

nom ou l'ID de la méthode de requête

Valeurs de retour

Retourne TRUE si la méthode de requête est connue, FALSE sinon.

Précédent | Sommaire | Suivant
http_put_stream | Niveau supérieur | http_request_method_name


http_request_method_name

(PECL)

http_request_method_name -- Récupère le nom de la requête

Description

string http_request_method_name ( int method )

Récupère la représentation litérale de la méthode de requête standard ou enregistrée.

Liste de paramètres

method

l'ID de la méthode de requête

Valeurs de retour

Retourne le nom de la méthode de requête sous la forme d'une chaîne de caractères, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
http_request_method_exists | Niveau supérieur | http_request_method_register


http_request_method_register

(PECL)

http_request_method_register -- Enregistre une méthode de requête

Description

int http_request_method_register ( string method )

Enregistre une méthode de requête personnalisée.

Liste de paramètres

method

le nom de la méthode de requête à enregistrer

Valeurs de retour

Retourne l'ID de la méthode de requête en cas de succès, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
http_request_method_name | Niveau supérieur | http_request_method_unregister


http_request_method_unregister

(PECL)

http_request_method_unregister -- Désenregistre une méthode de requête

Description

bool http_request_method_unregister ( mixed method )

Désenregistre une méthode personnalisée de requête précédemment enregistrée.

Liste de paramètres

method

Le nom ou l'ID de la méthode de requête

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
http_request_method_register | Niveau supérieur | http_request


http_send_content_disposition

(PECL)

http_send_content_disposition -- Envoi l'en-tête Content-Disposition

Description

bool http_send_content_disposition ( [string filename [, bool inline = FALSE]] )

Envoi l'en-tête Content-Disposition. L'en-tête Content-Disposition est très utile si les données actuellement envoyées proviennent d'un fichier ou quelque chose de similaire, qui doit être "sauvegardé" par le client/utilisateur (i.e. par les navigateurs via le popup "Enregistrer sous...").

Liste de paramètres

filename

le nom du fichier à utiliser pour la boîte de dialogue "Enregistrer sous..."

inline

Si défini à TRUE et que l'agent utilisateur sait comme gérer le type de contenu, ce paramètre fera probablement ne pas apparaître le popup

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
http_redirect | Niveau supérieur | http_send_content_type


http_send_content_type

(PECL)

http_send_content_type -- Envoi le type de contenu

Description

bool http_send_content_type ( [string content_type = 'application/x-octetstream'] )

Envoi le type de contenu d'entité envoyé. Ceci est particulièrement important si vous utilisez l'API http_send().

Liste de paramètres

content_type

le type de contenu désiré (primaire/secondaire)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
http_send_content_disposition | Niveau supérieur | http_send_data


http_send_data

(PECL)

http_send_data -- Envoi des données arbitraires

Description

bool http_send_data ( string data )

Envoi des données par ligne avec le support (multiple) des requêtes.

Liste de paramètres

data

données à envoyer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
http_send_content_type | Niveau supérieur | http_send_file


http_send_file

(PECL)

http_send_file -- Envoi un fichier

Description

bool http_send_file ( string file )

Envoi un fichier avec le support (multiple) des requêtes.

Liste de paramètres

file

le fichier à envoyer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
http_send_data | Niveau supérieur | http_send_last_modified


http_send_last_modified

(PECL)

http_send_last_modified -- Envoi l'en-tête Last-Modified

Description

bool http_send_last_modified ( [int timestamp] )

Envoi un en-tête Last-Modified avec une date HTTP valide.

Liste de paramètres

timestamp

un timestamp Unix, convertit en une date HTTP valide ; si ce paramètre est omis, la date courante sera utilisée

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
http_send_file | Niveau supérieur | http_send_status


http_send_status

(PECL)

http_send_status -- Envoi le statut

Description

bool http_send_status ( int status )

Envoi le code statut HTTP.

Liste de paramètres

status

code statut HTTP

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
http_send_last_modified | Niveau supérieur | http_send_stream


http_send_stream

(PECL)

http_send_stream -- Envoi un flux

Description

bool http_send_stream ( resource stream )

Envoi un flux déjà ouvert avec le support (multiple) des requêtes.

Liste de paramètres

stream

flux à lire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
http_send_status | Niveau supérieur | http_throttle


http_support

(no version information, might be only in CVS)

http_support -- Vérifie le support HTTP interne

Description

int http_support ( [int feature = 0] )

Vérifie les fonctionnalités qui nécessitent des bibliothèques externes.

Voir la table des constantes supportées pour les valeurs possibles pour l'argument feature.

Liste de paramètres

feature

Fonctionnalité à vérifier ; si le paramètre vaut 0 ou est omis, la valeur retournée contiendra un bitmask de toutes les fonctionnalités supportées qui dépendent d'une bibliothèques externes

Valeurs de retour

Retourne un entier si la fonctionnalité demandée est supportée, ou un bitmask contenant toutes les fonctionnalités supportées.

Précédent | Sommaire | Suivant
http_date | Niveau supérieur | http_match_etag


http_throttle

(PECL)

http_throttle -- Étranglement HTTP

Description

void http_throttle ( [double sec [, int bytes = 40960]] )

Définit le délai d'étranglement et envoie la taille du buffer à utiliser avec l'API http_send(). Fournit un méchanisme d'étranglement basic, qui va gérer le processus courant de la réponse tant que la totalité n'a pas été envoyée.

Liste de paramètres

sec

secondes à attendre après chaque partie envoyée

bytes

la taille d'une partie en octets

Exemples

Exemple 1. Exemple avec http_throttle()

Envoi un fichier à une vitesse approximative de 20 ko/s.

<?php
// ~ 20 ko/s
# http_throttle(1, 20000);
# http_throttle(0.5, 10000);
# http_throttle(0.1, 2000);
http_send_file('document.pdf');
?>
?>

Précédent | Sommaire | Suivant
http_send_stream | Niveau supérieur | http_build_str


HttpDeflateStream::__construct

(no version information, might be only in CVS)

HttpDeflateStream::__construct -- Constructeur de la classe HttpDeflateStream

Description

publicvoid HttpDeflateStream::__construct ( [int flags = 0] )

Créé une nouvelle instance de l'objet HttpDeflateStream.

Voir la table des constantes des flux pour les arguments possibles.

Liste de paramètres

flags

flags d'initialisation

Précédent | Sommaire | Suivant
HttpDeflateStream | Niveau supérieur | HttpDeflateStream::update


HttpDeflateStream::finish

(no version information, might be only in CVS)

HttpDeflateStream::finish -- Finalise un flux compressé

Description

publicstring HttpDeflateStream::finish ( [string data] )

Finalise le flux compressé. Le flux compressé peut être réutilisé après sa finalisation.

Liste de paramètres

data

Données à compresser

Valeurs de retour

Retourne la partie finale des données compressées.

Précédent | Sommaire | Suivant
HttpDeflateStream::flush | Niveau supérieur | HttpInflateStream


HttpDeflateStream::flush

(no version information, might be only in CVS)

HttpDeflateStream::flush -- Envoi un flux compressé

Description

publicstring HttpDeflateStream::flush ( [string data] )

Envoi le flux compressé.

Liste de paramètres

data

Plus de données à compresser

Valeurs de retour

Retourne quelques données compressées sous la forme d'une chaîne de caractères ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
HttpDeflateStream::update | Niveau supérieur | HttpDeflateStream::finish


HttpDeflateStream::update

(no version information, might be only in CVS)

HttpDeflateStream::update -- Met à jour le flux compressé

Description

publicstring HttpDeflateStream::update ( string data )

Passe plus de données via le flux compressé.

Liste de paramètres

data

Données à compresser

Valeurs de retour

Retourne les données compressées en cas de succès, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
HttpDeflateStream::__construct | Niveau supérieur | HttpDeflateStream::flush


HttpInflateStream::__construct

(no version information, might be only in CVS)

HttpInflateStream::__construct -- Constructeur de la classe HttpInflateStream

Description

publicvoid HttpInflateStream::__construct ( [int flags = 0] )

Créé une nouvelle instance de l'objet HttpInflateStream.

Voir la table des constantes décompressées pour les arguments possibles.

Liste de paramètres

flags

Flags d'initialisation

Précédent | Sommaire | Suivant
HttpInflateStream | Niveau supérieur | HttpInflateStream::update


HttpInflateStream::finish

(no version information, might be only in CVS)

HttpInflateStream::finish -- Finalise un flux décompressé

Description

publicstring HttpInflateStream::finish ( [string data] )

Finalise le flux décompressé. Le flux décompressé peut être réutilisé après sa finalisation.

Liste de paramètres

data

Données à décompresser

Valeurs de retour

Retourne la partie finale des données décompressées.

Précédent | Sommaire | Suivant
HttpInflateStream::flush | Niveau supérieur | HttpRequest


HttpInflateStream::flush

(no version information, might be only in CVS)

HttpInflateStream::flush -- Envoi un flux décompressé

Description

publicstring HttpInflateStream::flush ( [string data] )

Envoi le flux décompressé.

Note : L'envoi n'a habituellement aucun effet sur les flux décompressés.

Liste de paramètres

data

Plus de données à décompresser

Valeurs de retour

Retourne quelques données décompressées sous la forme d'une chaîne décompressée ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
HttpInflateStream::update | Niveau supérieur | HttpInflateStream::finish


HttpInflateStream::update

(no version information, might be only in CVS)

HttpInflateStream::update -- Met à jour un flux décompressé

Description

publicstring HttpInflateStream::update ( string data )

Passe plus de données via le flux décompressé.

Liste de paramètres

data

Données à décompresser

Valeurs de retour

Retourne les données décompressées ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
HttpInflateStream::__construct | Niveau supérieur | HttpInflateStream::flush


HttpMessage::addHeaders

(no version information, might be only in CVS)

HttpMessage::addHeaders -- Ajoute des en-têtes

Description

publicvoid HttpMessage::addHeaders ( [array headers [, bool append = FALSE]] )

Ajoute des en-têtes. Si le paramètre append vaut TRUE, les en-têtes avec les mêmes noms seront séparés, sinon, ils seront écrasés.

Liste de paramètres

headers

tableau associatif contenant les en-têtes HTTP additionnels à ajouter aux en-têtes existants du message

append

si ce paramètre vaut TRUE et qu'un en-tête avec le même nom existe déjà, cet en-tête sera converti en un tableau associatif contenant les différentes valeurs de l'en-ête, sinon, il sera écrasé avec la nouvelle valeur de l'en-tête

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpMessage::getHeader | Niveau supérieur | HttpMessage::setHeaders


HttpMessage::__construct

(no version information, might be only in CVS)

HttpMessage::__construct -- Constructeur de la classe HttpMessage

Description

publicvoid HttpMessage::__construct ( [string message] )

Instancie un nouvel objet HttpMessage.

L'objet construit représente le dernier message de la chaîne passée. S'il y a des messages précédents, ils peuvent être accéder via HttpMessage::getParentMessage().

Liste de paramètres

message

un ou plusieurs messages HTTP consécutifs

Erreurs / Exceptions

Lance une exception HttpMalformedHeaderException.

Précédent | Sommaire | Suivant
HttpMessage | Niveau supérieur | HttpMessage::factory


HttpMessage::detach

(no version information, might be only in CVS)

HttpMessage::detach -- Détache un HttpMessage

Description

publicHttpMessage HttpMessage::detach ( void )

Retourne un clône de l'objet HttpMessage détaché depuis les messages parents.

Liste de paramètres

Valeurs de retour

Retourne un copie de l'objet détaché HttpMessage.

Précédent | Sommaire | Suivant
HttpMessage::guessContentType | Niveau supérieur | HttpMessage::prepend


HttpMessage::factory

(no version information, might be only in CVS)

HttpMessage::factory -- Create HttpMessage from string

Description

static publicHttpMessage HttpMessage::factory ( [string raw_message [, string class_name = 'HttpMessage']] )

Create an HttpMessage object from a string.

Liste de paramètres

raw_message

a single or several consecutive HTTP messages

class_name

a class extending HttpMessage

Valeurs de retour

Returns an HttpMessage object on success or NULL on failure.

Erreurs / Exceptions

Throws HttpMalformedHeadersException.

Voir aussi

HttpMessage::fromEnv().

Précédent | Sommaire | Suivant
HttpMessage::__construct | Niveau supérieur | HttpMessage::fromEnv


HttpMessage::fromEnv

(no version information, might be only in CVS)

HttpMessage::fromEnv -- Create HttpMessage from environment

Description

static publicHttpMessage HttpMessage::fromEnv ( int message_type [, string class_name = 'HttpMessage'] )

Create an HttpMessage object from script environment.

Liste de paramètres

message_type

The message type. See HttpMessage type constants.

class_name

a class extending HttpMessage

Valeurs de retour

Returns an HttpMessage object on success or NULL on failure.

Voir aussi

HttpMessage::factory().

Précédent | Sommaire | Suivant
HttpMessage::factory | Niveau supérieur | HttpMessage::fromString


HttpMessage::fromString

(no version information, might be only in CVS)

HttpMessage::fromString -- Crée un HttpMessage depuis une chaîne de caractères

Description

static publicHttpMessage HttpMessage::fromString ( [string raw_message [, string class_name = 'HttpMessage']] )

Crée un objet HttpMessage depuis une chaîne de caractères.

Cet alias est déprécié et n'existe que pour des raisons de compatiblité. Il est recommandé de ne pas utiliser cette fonction car elle peut être supprimée de PHP un jour.

Liste de paramètres

raw_message

un ou plusieurs messages HTTP consécutifs

class_name

une classe étendant la classe HttpMessage

Valeurs de retour

Retourne un objet HttpMessage en cas de succès, ou NULL si une erreur survient.

Erreurs / Exceptions

Lance une exception HttpMalformedHeadersException.

Voir aussi

HttpMessage::factory().

Précédent | Sommaire | Suivant
HttpMessage::fromEnv | Niveau supérieur | HttpMessage::toString


HttpMessage::getBody

(no version information, might be only in CVS)

HttpMessage::getBody -- Récupère le corps du message

Description

publicstring HttpMessage::getBody ( void )

Récupère le corps du HttpMessage.

Valeurs de retour

Retourne le corps du message sous la forme d'une chaîne de caractères.

Précédent | Sommaire | Suivant
HttpMessage::setHeaders | Niveau supérieur | HttpMessage::setBody


HttpMessage::getHeader

(no version information, might be only in CVS)

HttpMessage::getHeader -- Récupère les en-têtes

Description

publicstring HttpMessage::getHeader ( string header )

Récupère les en-têtes du message.

Liste de paramètres

header

nom de l'en-tête

Valeurs de retour

Retourne la valeur de l'en-tête en cas de succès, ou NULL si l'en-tête n'existe pas.

Précédent | Sommaire | Suivant
HttpMessage::getHeaders | Niveau supérieur | HttpMessage::addHeaders


HttpMessage::getHeaders

(no version information, might be only in CVS)

HttpMessage::getHeaders -- Récupère les en-têtes du message

Description

publicarray HttpMessage::getHeaders ( void )

Récupère les en-têtes du message.

Valeurs de retour

Retourne un tableau associatif contenant les en-têtes du message HTTP.

Précédent | Sommaire | Suivant
HttpMessage::setHttpVersion | Niveau supérieur | HttpMessage::getHeader


HttpMessage::getHttpVersion

(no version information, might be only in CVS)

HttpMessage::getHttpVersion -- Récupère la version HTTP

Description

publicstring HttpMessage::getHttpVersion ( void )

Récupère la version du protocole HTTP du message.

Valeurs de retour

Retourne la version du protocole HTTP sous la forme d'une chaîne de caractères.

Précédent | Sommaire | Suivant
HttpMessage::setType | Niveau supérieur | HttpMessage::setHttpVersion


HttpMessage::getParentMessage

(no version information, might be only in CVS)

HttpMessage::getParentMessage -- Récupère le message parent

Description

publicHttpMessage HttpMessage::getParentMessage ( void )

Récupère le message parent.

Valeurs de retour

Retourne l'objet parent HttpMessage.

Erreurs / Exceptions

Lance une exception HttpRuntimeException.

Précédent | Sommaire | Suivant
HttpMessage::send | Niveau supérieur | HttpMessage::getType


HttpMessage::getRequestMethod

(no version information, might be only in CVS)

HttpMessage::getRequestMethod -- Récupère la méthode de la demande

Description

publicstring HttpMessage::getRequestMethod ( void )

Récupère la méthode de la demande du message.

Valeurs de retour

Retourne le nom de la méthode de la demande en cas de succès, ou FALSE si le message n'est pas du type HttpMessage::TYPE_REQUEST.

Précédent | Sommaire | Suivant
HttpMessage::setBody | Niveau supérieur | HttpMessage::setRequestMethod


HttpMessage::getRequestUrl

(no version information, might be only in CVS)

HttpMessage::getRequestUrl -- Récupère l'URL de la demande

Description

publicstring HttpMessage::getRequestUrl ( void )

Récupère l'URL de la demande du message.

Liste de paramètres

Valeurs de retour

Retourne l'URL de la demande sous la forme d'une chaîne de caractères en cas de succès, ou FALSE si le message n'est pas du type HttpMessage::TYPE_REQUEST.

Précédent | Sommaire | Suivant
HttpMessage::setRequestMethod | Niveau supérieur | HttpMessage::setRequestUrl


HttpMessage::getResponseCode

(no version information, might be only in CVS)

HttpMessage::getResponseCode -- Récupère le code réponse

Description

publicint HttpMessage::getResponseCode ( void )

Récupère le code réponse du message.

Valeurs de retour

Retourne le code réponse HTTP si le message est du type HttpMessage::TYPE_RESPONSE, FALSE sinon.

Précédent | Sommaire | Suivant
HttpMessage::setRequestUrl | Niveau supérieur | HttpMessage::setResponseCode


HttpMessage::getResponseStatus

(no version information, might be only in CVS)

HttpMessage::getResponseStatus -- Récupère le statut de la réponse

Description

publicstring HttpMessage::getResponseStatus ( void )

Récupère le statut de la réponse du message (i.e. la chaîne suivant le code réponse).

Valeurs de retour

Retourne le statut de la réponse HTTP si le message est du type HttpMessage::TYPE_RESPONSE, FALSE sinon.

Précédent | Sommaire | Suivant
HttpMessage::setResponseCode | Niveau supérieur | HttpMessage::setResponseStatus


HttpMessage::getType

(no version information, might be only in CVS)

HttpMessage::getType -- Récupère le type du message

Description

publicint HttpMessage::getType ( void )

Récupère le type de message. Le type du message peut être HTTP_MSG_NONE, HTTP_MSG_REQUEST ou HTTP_MSG_RESPONSE.

Valeurs de retour

Retourne le HttpMessage::TYPE.

Précédent | Sommaire | Suivant
HttpMessage::getParentMessage | Niveau supérieur | HttpMessage::setType


HttpMessage::guessContentType

(no version information, might be only in CVS)

HttpMessage::guessContentType -- Demande le type de contenu

Description

publicstring HttpMessage::guessContentType ( [string magic_file [, int magic_mode = MAGIC_MIME]] )

Demande le type de contenu du corps du message via libmagic.

Liste de paramètres

magic_file

la base de données magic.mime à utiliser

magic_mode

balises pour libmagic

Valeurs de retour

Retourne le type de contenu en cas de succès, ou FALSE si une erreur survient.

Erreurs / Exceptions

Lance une exception HttpRuntimeException ou HttpInvalidParamException.

Précédent | Sommaire | Suivant
HttpMessage::toMessageTypeObject | Niveau supérieur | HttpMessage::detach


HttpMessage::prepend

(no version information, might be only in CVS)

HttpMessage::prepend -- Ajoute un message

Description

publicvoid HttpMessage::prepend ( [HttpMessage message [, bool top = TRUE]] )

Ajoute un message au message HTTP.

Liste de paramètres

message

Objet HttpMessage à ajouter

top

si l'on doit ajouter le message au plus haut ou à droite de ce message

Erreurs / Exceptions

Lance une exception HttpInvalidParamException si le message se trouve dans la même chaîne de message.

Précédent | Sommaire | Suivant
HttpMessage::detach | Niveau supérieur | HttpMessage::reverse


HttpMessage::reverse

(no version information, might be only in CVS)

HttpMessage::reverse -- Renverse la chaîne du message

Description

publicHttpMessage HttpMessage::reverse ( void )

Réordonne la chaîne du message dans un ordre inverse.

Valeurs de retour

Retourne l'objet HttpMessage.

Précédent | Sommaire | Suivant
HttpMessage::prepend | Niveau supérieur | HttpMessage::send


HttpMessage::send

(no version information, might be only in CVS)

HttpMessage::send -- Envoie le message

Description

publicbool HttpMessage::send ( void )

Envoie le message en fonction de son type (réponse ou demande).

Ceci fournit des fonctionnalités limitées par rapport à HttpRequest et HttpResponse.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpMessage::reverse | Niveau supérieur | HttpMessage::getParentMessage


HttpMessage::setBody

(no version information, might be only in CVS)

HttpMessage::setBody -- Définit le corps du message

Description

publicvoid HttpMessage::setBody ( string body )

Définit le corps du message HttpMessage.

Note : N'oubliez pas de mettre à jour tous les en-têtes en fonction.

Liste de paramètres

body

le nouveau corps du message

Précédent | Sommaire | Suivant
HttpMessage::getBody | Niveau supérieur | HttpMessage::getRequestMethod


HttpMessage::setHeaders

(no version information, might be only in CVS)

HttpMessage::setHeaders -- Définit les en-têtes

Description

publicvoid HttpMessage::setHeaders ( array headers )

Définit de nouveaux en-têtes.

Liste de paramètres

headers

tableau associatif contenant les nouveaux en-têtes HTTP, qui remplaceront tous les précédents en-têtes HTTP du message

Précédent | Sommaire | Suivant
HttpMessage::addHeaders | Niveau supérieur | HttpMessage::getBody


HttpMessage::setHttpVersion

(no version information, might be only in CVS)

HttpMessage::setHttpVersion -- Définit la version HTTP

Description

publicbool HttpMessage::setHttpVersion ( string version )

Définit la version du protocole HTTP du message.

Liste de paramètres

version

la version du protocole HTTP

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si la version fournie n'est pas dans l'intervalle (1.0/1.1).

Précédent | Sommaire | Suivant
HttpMessage::getHttpVersion | Niveau supérieur | HttpMessage::getHeaders


HttpMessage::setRequestMethod

(no version information, might be only in CVS)

HttpMessage::setRequestMethod -- Définit la méthode de la demande

Description

publicbool HttpMessage::setRequestMethod ( string method )

Définit la méthode de la demande du message HTTP.

Liste de paramètres

method

le nom de la méthode de la demande

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si le message n'est pas du type HttpMessage::TYPE_REQUEST ou si une méthode de demande invalide est fournie.

Précédent | Sommaire | Suivant
HttpMessage::getRequestMethod | Niveau supérieur | HttpMessage::getRequestUrl


HttpMessage::setRequestUrl

(no version information, might be only in CVS)

HttpMessage::setRequestUrl -- Définit l'URL de la demande

Description

publicbool HttpMessage::setRequestUrl ( string url )

Définit l'URL de la demande du message HTTP.

Liste de paramètres

url

l'URL de la demande

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si le message n'est pas du type HttpMessage::TYPE_REQUEST ou si l'URL fournie était vide.

Précédent | Sommaire | Suivant
HttpMessage::getRequestUrl | Niveau supérieur | HttpMessage::getResponseCode


HttpMessage::setResponseCode

(no version information, might be only in CVS)

HttpMessage::setResponseCode -- Définit le code réponse

Description

publicbool HttpMessage::setResponseCode ( int code )

Définit le code réponse du message de la réponse HTTP.

Liste de paramètres

code

Code de la réponse HTTP

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si le message n'est pas du type HttpMessage::TYPE_RESPONSE ou si le code réponse n'est pas dans l'intervalle (100-510).

Précédent | Sommaire | Suivant
HttpMessage::getResponseCode | Niveau supérieur | HttpMessage::getResponseStatus


HttpMessage::setResponseStatus

(no version information, might be only in CVS)

HttpMessage::setResponseStatus -- Définit le statut de la réponse

Description

publicbool HttpMessage::setResponseStatus ( string status )

Définit le statut de la réponse du message HTTP (i.e. la chaîne suivant le code réponse).

Liste de paramètres

status

le texte du statut de la réponse

Valeurs de retour

Retourne TRUE en cas de succès ou FALSE si le message n'est pas du type HttpMessage::TYPE_RESPONSE.

Précédent | Sommaire | Suivant
HttpMessage::getResponseStatus | Niveau supérieur | HttpQueryString


HttpMessage::setType

(no version information, might be only in CVS)

HttpMessage::setType -- Définit le type de message

Description

publicvoid HttpMessage::setType ( int type )

Définit le type de message. Le type de message peut être HTTP_MSG_NONE, HTTP_MSG_REQUEST ou HTTP_MSG_RESPONSE.

Liste de paramètres

type

Le HttpMessage::TYPE

Précédent | Sommaire | Suivant
HttpMessage::getType | Niveau supérieur | HttpMessage::getHttpVersion


HttpMessage::toMessageTypeObject

(no version information, might be only in CVS)

HttpMessage::toMessageTypeObject -- Crée un objet HTTP en fonction du type de message

Description

publicHttpRequest|HttpResponse HttpMessage::toMessageTypeObject ( void )

Crée un objet en fonction du type de message.

Liste de paramètres

Valeurs de retour

Retourne soit un objet HttpRequest, soit un objet HttpResponse en cas de succès, ou NULL si une erreur survient.

Erreurs / Exceptions

Lance une exception HttpRuntimeException, HttpMessageTypeException ou HttpHeaderException.

Précédent | Sommaire | Suivant
HttpMessage::toString | Niveau supérieur | HttpMessage::guessContentType


HttpMessage::toString

(no version information, might be only in CVS)

HttpMessage::toString -- Récupère la représentation du message sous la forme d'une chaîne de caractères

Description

publicstring HttpMessage::toString ( [bool include_parent = FALSE] )

Récupère la représentation du message sous la forme d'une chaîne de caractères.

Liste de paramètres

include_parent

spécifie si la chaîne retournée doit contenir tous les messages parents

Valeurs de retour

Retourne le message sous la forme d'une chaîne de caractères.

Précédent | Sommaire | Suivant
HttpMessage::fromString | Niveau supérieur | HttpMessage::toMessageTypeObject


HttpQueryString::__construct

(no version information, might be only in CVS)

HttpQueryString::__construct -- Constructeur de la classe HttpQueryString

Description

final publicvoid HttpQueryString::__construct ( [bool global = TRUE [, mixed add]] )

Crée une nouvelle instance de l'objet HttpQueryString.

Opère sur et modifie $_GET et $_SERVER['QUERY_STRING'] si le paramètre global = TRUE vaut TRUE.

Liste de paramètres

global

si l'on doit opérer directement sur $_GET et $_SERVER['QUERY_STRING']

add

paramètres additionnels/initiaux de la requête

Erreurs / Exceptions

Lance une exception HttpRuntimeException.

Précédent | Sommaire | Suivant
HttpQueryString | Niveau supérieur | HttpQueryString::singleton


HttpQueryString::get

(no version information, might be only in CVS)

HttpQueryString::get -- Récupère (une partie) de la requête

Description

publicmixed HttpQueryString::get ( [string key [, mixed type = 0 [, mixed defval = NULL [, bool delete = FALSE]]]] )

Récupère (une partie) de la requête.

Le type de paramètre est soir une constante HttpQueryString::TYPE_*, soit une abbréviation comme "b" pour booléen, "i" pour integer, "f" pour float, "s" pour string, "a" pour array et "o" pour un objet stdClass.

Liste de paramètres

key

clé du paramètre de la requête à récupérer

type

type de la variable

defval

valeur par défaut si la clé n'existe pas

delete

si l'on doit effacer la paire clé/valeur de la requête

Valeurs de retour

Retorne la valeur du paramètre de la requête ou la requête complète si aucune clé n'est spécifié en cas de succès, ou la valeur par défaut si la clé n'existe pas.

Précédent | Sommaire | Suivant
HttpQueryString::singleton | Niveau supérieur | HttpQueryString::mod


HttpQueryString::mod

(no version information, might be only in CVS)

HttpQueryString::mod -- Modifie la copie de la requête

Description

publicHttpQueryString HttpQueryString::mod ( mixed params )

Copie l'objet représentant la requête et définit les paramètres sur son clône.

Liste de paramètres

params

paramètres de la requête à ajouter

Valeurs de retour

Retourne un nouvel objet HttpQueryString.

Précédent | Sommaire | Suivant
HttpQueryString::get | Niveau supérieur | HttpQueryString::set


HttpQueryString::set

(no version information, might be only in CVS)

HttpQueryString::set -- Définit les paramètres de la requête

Description

publicstring HttpQueryString::set ( mixed params )

Définit les paramètres de la requête. Les valeurs NULL effaceront les variables.

Liste de paramètres

params

paramètres à ajouter

Valeurs de retour

Retourne la requête courante.

Précédent | Sommaire | Suivant
HttpQueryString::mod | Niveau supérieur | HttpQueryString::toArray


HttpQueryString::singleton

(no version information, might be only in CVS)

HttpQueryString::singleton -- Récupère un instance simple de HttpQueryString

Description

static publicHttpQueryString HttpQueryString::singleton ( [bool global = TRUE] )

Récupère une instance simple (différente de la configuration globale).

Liste de paramètres

global

si l'on doit utiliser $_GET et $_SERVER['QUERY_STRING']

Valeurs de retour

Retourne toujours la même instance de HttpQueryString vis-à-vis de la configuration globale.

Erreurs / Exceptions

Lance une exception HttpRuntimeException.

Précédent | Sommaire | Suivant
HttpQueryString::__construct | Niveau supérieur | HttpQueryString::get


HttpQueryString::toArray

(no version information, might be only in CVS)

HttpQueryString::toArray -- Récupère la requête sous la forme d'un tableau

Description

publicarray HttpQueryString::toArray ( void )

Récupère la requête sous la forme d'un tableau associatif.

Valeurs de retour

Retourne un tableau représentant la requête.

Précédent | Sommaire | Suivant
HttpQueryString::set | Niveau supérieur | HttpQueryString::toString


HttpQueryString::toString

(no version information, might be only in CVS)

HttpQueryString::toString -- Récupère la requête

Description

publicstring HttpQueryString::toString ( void )

Récupère la requête.

Liste de paramètres

Valeurs de retour

Retourne la requête sous la forme d'une chaîne de caractères.

Précédent | Sommaire | Suivant
HttpQueryString::toArray | Niveau supérieur | HttpQueryString::xlate


HttpQueryString::xlate

(no version information, might be only in CVS)

HttpQueryString::xlate -- Modifie le jeu de caractères de la requête

Description

publicbool HttpQueryString::xlate ( string ie, string oe )

Convertit la requête depuis le jeu de caractères source ie en le jeu de caractères de destination oe.

Avertissement

N'utilisez pas de jeux de caractères qui contiennent des octets vides, comme l'UTF-16.

Note : Cette méthode nécessite d'activer et de charger l'extension iconv.

Liste de paramètres

ie

jeu de caractères source

oe

jeu de caractères désiré

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpQueryString::toString | Niveau supérieur | HttpDeflateStream


HttpRequest::addCookies

(no version information, might be only in CVS)

HttpRequest::addCookies -- Ajoute des cookies

Description

publicbool HttpRequest::addCookies ( array cookies )

Ajoute un cookie personnalisé.

Note : The request option encodecookies controls whether the cookie values should be urlencode()d.

Note : Affects any request method.

Liste de paramètres

cookies

un tableau associatif contenant toutes les paires nom/valeurs des cookies à ajouter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec HttpRequest::addCookies()

<?php
$r = new HttpRequest;
$r->addCookies(
    array(
        "nom_du_cookie" => "valeur du cookie",
    )
);
?>

Voir aussi

HttpRequest::setCookies()

Précédent | Sommaire | Suivant
HttpRequest | Niveau supérieur | HttpRequest::addHeaders


HttpRequest::addHeaders

(no version information, might be only in CVS)

HttpRequest::addHeaders -- Ajoute des en-têtes

Description

publicbool HttpRequest::addHeaders ( array headers )

Ajoute des paires nom/valeur aux en-têtes demandés.

Liste de paramètres

headers

un tableau associatif contenant les paires nom/valeur additionnelles d'en-têtes

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::addCookies | Niveau supérieur | HttpRequest::addPostFields


HttpRequest::addPostFields

(no version information, might be only in CVS)

HttpRequest::addPostFields -- Ajoute des champs POST

Description

publicbool HttpRequest::addPostFields ( array post_data )

Ajoute des entrées de données POST, laissant inchangées les données précédemment définies, tant qu'une entrée POST avec le même nom n'existe pas déjà.

Affecte uniquement POST et les requêtes personnalisées.

Liste de paramètres

post_data

un tableau associatif contenant les champs POST

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::addHeaders | Niveau supérieur | HttpRequest::addPostFile


HttpRequest::addPostFile

(no version information, might be only in CVS)

HttpRequest::addPostFile -- Ajoute un fichier en POST

Description

publicbool HttpRequest::addPostFile ( string name [, string file [, string content_type = 'application/x-octetstream']] )

Ajoute un fichier à une requête POST, laissant inchangés les fichiers précédemment définis.

Affecte uniquement les requêtes POST et les requêtes personnalisées. Ne peut être utilisé avec les lignes de données POST.

Liste de paramètres

name

Le nom de l'élément de formulaire

file

le chemin vers le fichier

content_type

le type de contenu du fichier

Valeurs de retour

Retourne TRUE en cas de succès, FALSE si le type de contenu ne semble pas contenir une première ou une seconde partie de type de contenu.

Précédent | Sommaire | Suivant
HttpRequest::addPostFields | Niveau supérieur | HttpRequest::addPutData


HttpRequest::addPutData

(no version information, might be only in CVS)

HttpRequest::addPutData -- Ajoute des données PUT

Description

publicbool HttpRequest::addPutData ( string put_data )

Ajoute des données PUT, laissant inchangées les données précédemment définies.

Affecte uniquement les requêtes PUT.

Liste de paramètres

put_data

les données à concaténer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::addPostFile | Niveau supérieur | HttpRequest::addQueryData


HttpRequest::addQueryData

(no version information, might be only in CVS)

HttpRequest::addQueryData -- Ajoute des paramètres à une requête

Description

publicbool HttpRequest::addQueryData ( array query_params )

Ajoute des paramètres à la liste des paramètres d'une requête, laissant inchangés les paramètres précédemment définis.

Affecte tous les types de requêtes.

Liste de paramètres

query_params

un tableau associatif contenant les champs de la requête à ajouter

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::addPutData | Niveau supérieur | HttpRequest::addRawPostData


HttpRequest::addRawPostData

(no version information, might be only in CVS)

HttpRequest::addRawPostData -- Ajoute une ligne de données POST

Description

publicbool HttpRequest::addRawPostData ( string raw_post_data )

Ajoute une ligne de données POST, laissant inchangée la précédente ligne de données POST.

Ajjecte uniquement les données POST et les demandes personnalisées.

Liste de paramètres

raw_post_data

la ligne de données POST à concaténer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::addQueryData | Niveau supérieur | HttpRequest::addSslOptions


HttpRequest::addSslOptions

(no version information, might be only in CVS)

HttpRequest::addSslOptions -- Ajoute des options SSL

Description

publicbool HttpRequest::addSslOptions ( array options )

Définit des options additionnelles SSL.

Liste de paramètres

options

un tableau associatif contenant les options additionnelles spécifiques à SSL

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::addRawPostData | Niveau supérieur | HttpRequest::clearHistory


HttpRequest::clearHistory

(no version information, might be only in CVS)

HttpRequest::clearHistory -- Efface l'historique

Description

publicvoid HttpRequest::clearHistory ( void )

Efface tous les messages de l'historique.

Note : L'historique est enregistré uniquement si la variable recordHistory a été activée.

Précédent | Sommaire | Suivant
HttpRequest::addSslOptions | Niveau supérieur | HttpRequest::__construct


HttpRequest::__construct

(no version information, might be only in CVS)

HttpRequest::__construct -- Constructeur de HttpRequest

Description

publicvoid HttpRequest::__construct ( [string url [, int request_method = HTTP_METH_GET [, array options]]] )

Instantie un nouvel objet HttpRequest.

Liste de paramètres

url

L'URL cible de la requête

request_method

la méthode de requête à utiliser

options

un tableau associatif avec les options de la requête

Erreurs / Exceptions

Lance une exception HttpException.

Précédent | Sommaire | Suivant
HttpRequest::clearHistory | Niveau supérieur | HttpRequest::enableCookies


HttpRequest::enableCookies

(no version information, might be only in CVS)

HttpRequest::enableCookies -- Active les cookies

Description

publicbool HttpRequest::enableCookies ( void )

Active l'envoi automatique des cookies.

Note : Noter qu'actuellement les cookies définis seront envoyés de toutefaçon.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::__construct | Niveau supérieur | HttpRequest::getContentType


HttpRequest::getContentType

(no version information, might be only in CVS)

HttpRequest::getContentType -- Récupère le type de contenu

Description

publicstring HttpRequest::getContentType ( void )

Récupère le type de contenu précédemment défini.

Valeurs de retour

Retourne le dernier type de contenu précédemment défini en tant que chaîne de caractères.

Précédent | Sommaire | Suivant
HttpRequest::enableCookies | Niveau supérieur | HttpRequest::getCookies


HttpRequest::getCookies

(no version information, might be only in CVS)

HttpRequest::getCookies -- Récupère les cookies

Description

publicarray HttpRequest::getCookies ( void )

Récupère les cookies précédemment définis.

Valeurs de retour

Retourne un tableau associatif contenant tous les cookies précédemment définis.

Précédent | Sommaire | Suivant
HttpRequest::getContentType | Niveau supérieur | HttpRequest::getHeaders


HttpRequest::getHeaders

(no version information, might be only in CVS)

HttpRequest::getHeaders -- Récupère les en-têtes

Description

publicarray HttpRequest::getHeaders ( void )

Récupère les en-têtes précédemment définis.

Valeurs de retour

Retourne un tableau associatif contenant tous les en-têtes actuellement définis.

Précédent | Sommaire | Suivant
HttpRequest::getCookies | Niveau supérieur | HttpRequest::getHistory


HttpRequest::getHistory

(no version information, might be only in CVS)

HttpRequest::getHistory -- Récupère l'historique

Description

publicHttpMessage HttpRequest::getHistory ( void )

Récupère toutes des requêtes envoyées et les réponses reçues en tant qu'objet HttpMessage.

Si vous voulez enregistrer l'historique, définissez la variable HttpRequest::recordHistory à TRUE.

L'objet retourné référence la dernière réponse reçue, utilisez HttpMessage::getParentMessage()() pour accéder aux données des requêtes envoyées et des réponses reçues précédemment.

Valeurs de retour

Retourne un objet HttpMessage représentant l'historique complète des requêtes/réponses.

Erreurs / Exceptions

Lance une exception HttpRuntimeException.

Précédent | Sommaire | Suivant
HttpRequest::getHeaders | Niveau supérieur | HttpRequest::getMethod


HttpRequest::getMethod

(no version information, might be only in CVS)

HttpRequest::getMethod -- Récupère une méthode

Description

publicint HttpRequest::getMethod ( void )

Récupère la dernière méthode précédemment définies.

Valeurs de retour

Retourne la méthode actuellement définie.

Précédent | Sommaire | Suivant
HttpRequest::getHistory | Niveau supérieur | HttpRequest::getOptions


HttpRequest::getOptions

(no version information, might be only in CVS)

HttpRequest::getOptions -- Récupère les options

Description

publicarray HttpRequest::getOptions ( void )

Récupère les options précédemment définies.

Valeurs de retour

Retourne un tableau associatif contenant les options actuellement définies.

Précédent | Sommaire | Suivant
HttpRequest::getMethod | Niveau supérieur | HttpRequest::getPostFields


HttpRequest::getPostFields

(no version information, might be only in CVS)

HttpRequest::getPostFields -- Récupère les champs POST

Description

publicarray HttpRequest::getPostFields ( void )

Récupère les données POST précédemment définies.

Liste de paramètres

Valeurs de retour

Retourne les champs POST précédemment définies sous la forme d'un tableau associatif.

Précédent | Sommaire | Suivant
HttpRequest::getOptions | Niveau supérieur | HttpRequest::getPostFiles


HttpRequest::getPostFiles

(no version information, might be only in CVS)

HttpRequest::getPostFiles -- Récupère les fichiers POST

Description

publicarray HttpRequest::getPostFiles ( void )

Récupère tous les fichiers POST précédemment ajoutés.

Valeurs de retour

Retourne un tableau contenant les fichiers POST actuellement définis.

Précédent | Sommaire | Suivant
HttpRequest::getPostFields | Niveau supérieur | HttpRequest::getPutData


HttpRequest::getPutData

(no version information, might be only in CVS)

HttpRequest::getPutData -- Récupère des données PUT

Description

publicstring HttpRequest::getPutData ( void )

Récupère des données PUT précédemment définies.

Valeurs de retour

Retourne une chaîne contenant les données PUT actuellement définies.

Précédent | Sommaire | Suivant
HttpRequest::getPostFiles | Niveau supérieur | HttpRequest::getPutFile


HttpRequest::getPutFile

(no version information, might be only in CVS)

HttpRequest::getPutFile -- Récupère un fichier PUT

Description

publicstring HttpRequest::getPutFile ( void )

Récupère un fichier PUT précédemment défini.

Valeurs de retour

Retourne une chaîne contenant le chemin vers le fichier PUT actuellement défini.

Précédent | Sommaire | Suivant
HttpRequest::getPutData | Niveau supérieur | HttpRequest::getQueryData


HttpRequest::getQueryData

(no version information, might be only in CVS)

HttpRequest::getQueryData -- Récupère les données de la requête

Description

publicstring HttpRequest::getQueryData ( void )

Récupère les données de la requête courante sous la forme d'une chaîne encodée URL.

Valeurs de retour

Retourne une chaîne contenant la requête encodée URL.

Précédent | Sommaire | Suivant
HttpRequest::getPutFile | Niveau supérieur | HttpRequest::getRawPostData


HttpRequest::getRawPostData

(no version information, might be only in CVS)

HttpRequest::getRawPostData -- Récupère les données POST

Description

publicstring HttpRequest::getRawPostData ( void )

Récupère les données POST précédemment définies.

Liste de paramètres

Valeurs de retour

Retourne une chaîne contenant les données POST actuellement définies.

Précédent | Sommaire | Suivant
HttpRequest::getQueryData | Niveau supérieur | HttpRequest::getRawRequestMessage


HttpRequest::getRawRequestMessage

(no version information, might be only in CVS)

HttpRequest::getRawRequestMessage -- Récupère le message de la requête

Description

publicstring HttpRequest::getRawRequestMessage ( void )

Récupère le message HTTP envoyé.

Liste de paramètres

Valeurs de retour

Retourne un message HttpMessage sous la forme d'une chaîne de caractères.

Précédent | Sommaire | Suivant
HttpRequest::getRawPostData | Niveau supérieur | HttpRequest::getRawResponseMessage


HttpRequest::getRawResponseMessage

(no version information, might be only in CVS)

HttpRequest::getRawResponseMessage -- Récupère le message de réponse

Description

publicstring HttpRequest::getRawResponseMessage ( void )

Récupère la réponse HTTP complète.

Liste de paramètres

Valeurs de retour

Retourne la réponse complète du serveur web, incluant les en-têtes sous la forme d'une chaîne de caractères.

Précédent | Sommaire | Suivant
HttpRequest::getRawRequestMessage | Niveau supérieur | HttpRequest::getRequestMessage


HttpRequest::getRequestMessage

(no version information, might be only in CVS)

HttpRequest::getRequestMessage -- Récupère le message de la requête

Description

publicHttpMessage HttpRequest::getRequestMessage ( void )

Récupère le message HTTP envoyé.

Si les redirections sont permises et que plusieurs réponses sont reçues, la donnée fait référence à la dernière réponse reçue. Utilisez HttpMessage::getParentMessage() pour accéder aux données des requêtes précédemment envoyées dans le cycle des requêtes.

Note : Noter que les messages des requêtes internes sont immuables, ce qui signifie que le message de la requête reçu via HttpRequest::getRequestMessage() sera toujours identique pour une même requête, indépendament des modifications que vous pouvez faire sur l'objet retourné.

Valeurs de retour

Retourne un objet HttpMessage représentant la requête envoyée.

Erreurs / Exceptions

Lance une exception HttpMalformedHeadersException ou une exception HttpEncodingException.

Précédent | Sommaire | Suivant
HttpRequest::getRawResponseMessage | Niveau supérieur | HttpRequest::getResponseBody


HttpRequest::getResponseBody

(no version information, might be only in CVS)

HttpRequest::getResponseBody -- Récupère le coprs de la réponse

Description

publicstring HttpRequest::getResponseBody ( void )

Récupère le corps de la réponse après l'envoi de la requête.

Si les redirections sont autorisées et que plusieurs réponses sont reçues, la donnée fait référence à la dernière réponse reçue.

Liste de paramètres

Valeurs de retour

Retourne une chaîne contenant le corps de la réponse.

Précédent | Sommaire | Suivant
HttpRequest::getRequestMessage | Niveau supérieur | HttpRequest::getResponseCode


HttpRequest::getResponseCode

(no version information, might be only in CVS)

HttpRequest::getResponseCode -- Récupère le code de la réponse

Description

publicint HttpRequest::getResponseCode ( void )

Récupère le code de la réponse après l'envoi de la requête.

Si les redirections sont autorisées et que plusieurs réponses sont reçues, la donnée fera référence à la dernière réponse reçue.

Valeurs de retour

Retourne un entier représentant le code de la réponse.

Précédent | Sommaire | Suivant
HttpRequest::getResponseBody | Niveau supérieur | HttpRequest::getResponseCookies


HttpRequest::getResponseCookies

(no version information, might be only in CVS)

HttpRequest::getResponseCookies -- Récupère la réponse des cookies

Description

publicarray HttpRequest::getResponseCookies ( [int flags [, array allowed_extras]] )

Récupère la réponse des cookies après l'envoi de la requête.

Si les redirections sont autorisées et que plusieurs réponses sont reçues, la donnée fera référence à la dernière réponse reçue.

Liste de paramètres

flags

flags http_parse_cookie()

allowed_extras

permet des clés traitées comme des informations supplémentaires au lieu des noms de cookies

Valeurs de retour

Retourne un tableau d'objets stdClass comme http_parse_cookie() peut retourné.

Précédent | Sommaire | Suivant
HttpRequest::getResponseCode | Niveau supérieur | HttpRequest::getResponseData


HttpRequest::getResponseData

(no version information, might be only in CVS)

HttpRequest::getResponseData -- Récupère les données de la réponse

Description

publicarray HttpRequest::getResponseData ( void )

Récupère les données de la réponse après l'envoi de la requête.

Si les redirections sont autorisées et que plusieurs réponses sont reçues, la donnée fera référence à la dernière réponse reçue.

Valeurs de retour

Retourne un tableau associatif avec une clé "headers" contenant un tableau associatif de tous les en-têtes de la réponse, ainsi qu'une clé "body" contenant une chaîne avec le corps de la réponse.

Précédent | Sommaire | Suivant
HttpRequest::getResponseCookies | Niveau supérieur | HttpRequest::getResponseHeader


HttpRequest::getResponseHeader

(no version information, might be only in CVS)

HttpRequest::getResponseHeader -- Récupère les en-têtes de la réponse

Description

publicmixed HttpRequest::getResponseHeader ( [string name] )

Récupère les en-têtes de la réponse après l'envoi de la requête.

Si les redirections sont autorisées et que plusieurs réponses sont reçues, la donnée fera référence à la dernière réponse reçue.

Liste de paramètres

name

nom de l'en-tête à lire ; si ce aramètre est vide, tous les en-têtes de la réponse seront retournés.

Valeurs de retour

Retourne soit une chaîne de caractères correspondant à la valeur de l'en-têtes correspondant au nom fourni, FALSE en cas d'échec ou un tableau associatif contenant tous les en-têtes de la réponse.

Précédent | Sommaire | Suivant
HttpRequest::getResponseData | Niveau supérieur | HttpRequest::getResponseInfo


HttpRequest::getResponseInfo

(no version information, might be only in CVS)

HttpRequest::getResponseInfo -- Récupère les informations de la réponse

Description

publicmixed HttpRequest::getResponseInfo ( [string name] )

Récupère les informations de la réponse après l'envoi de la requête.

Voir la fonction http_get() pour une liste complète des informations retournées.

Si les redirections sont autorisées et que plusieurs réponses sont reçues, la donnée fera référence à la dernière réponse reçue.

Liste de paramètres

name

nom de l'information à lire ; si ce paramètre est vide ou omis, un tableau associatif contenant toutes les informations disponibles sera retourné.

Valeurs de retour

Retourne soit un scalaire contenant la valeur de l'information correspondant au nom demandé si fourni, FALSE en cas d'échec ou un tableau associatif contenant toutes les informations disponibles.

Précédent | Sommaire | Suivant
HttpRequest::getResponseHeader | Niveau supérieur | HttpRequest::getResponseMessage


HttpRequest::getResponseMessage

(no version information, might be only in CVS)

HttpRequest::getResponseMessage -- Récupère le message de la réponse

Description

publicHttpMessage HttpRequest::getResponseMessage ( void )

Récupère la réponse complète sous la forme d'un objet HttpMessage après l'envoi de la requête.

Si les redirections sont autorisées et que plusieurs réponses sont reçues, la donnée fera référence à la dernière réponse reçue. Utilisez HttpMessage::getParentMessage() pour accéder aux données des réponses précédemment reçues dans ce cycle de requêtes.

Valeurs de retour

Retourne un objet HttpMessage de la réponse.

Erreurs / Exceptions

Lance une exception HttpException ou une exception HttpRuntimeException.

Précédent | Sommaire | Suivant
HttpRequest::getResponseInfo | Niveau supérieur | HttpRequest::getResponseStatus


HttpRequest::getResponseStatus

(no version information, might be only in CVS)

HttpRequest::getResponseStatus -- Récupère le statut de la réponse

Description

publicstring HttpRequest::getResponseStatus ( void )

Récupère le statut de la réponse (i.e. la chaîne après le code de la réponse) après l'envoi du message.

Valeurs de retour

Retourne une chaîne contenant le texte du statut de la réponse.

Précédent | Sommaire | Suivant
HttpRequest::getResponseMessage | Niveau supérieur | HttpRequest::getSslOptions


HttpRequest::getSslOptions

(no version information, might be only in CVS)

HttpRequest::getSslOptions -- RÃ©cupÃ¨re les options SSL

Description

publicarray HttpRequest::getSslOptions ( void )

RÃ©cupÃ¨re les options SSL prÃ©cÃ©demment dÃ©finies.

Valeurs de retour

Retourne un tableau associatif contenant les options SSL prÃ©cÃ©demment dÃ©finies.

Précédent | Sommaire | Suivant
HttpRequest::getResponseStatus | Niveau supérieur | HttpRequest::getUrl


HttpRequest::getUrl

(no version information, might be only in CVS)

HttpRequest::getUrl -- Récupère l'url

Description

publicstring HttpRequest::getUrl ( void )

Récupère l'url de la requête précédemment définie.

Valeurs de retour

Retourne l'url de la requête actuellement définie sous la forme d'une chaîne de caractères.

Précédent | Sommaire | Suivant
HttpRequest::getSslOptions | Niveau supérieur | HttpRequest::resetCookies


HttpRequest::resetCookies

(no version information, might be only in CVS)

HttpRequest::resetCookies -- Efface les cookies

Description

publicbool HttpRequest::resetCookies ( [bool session_only = FALSE] )

Efface tous les cookies automatiquement reçus/envoyés.

Note : Noter que les cookies personnalisés ne sont pas affectés.

Liste de paramètres

session_only

si l'on doit affacer uniquement les cookies de session (nécessite libcurl >= v7.15.4, ou libcurl >= v7.14.1)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::getUrl | Niveau supérieur | HttpRequest::send


HttpRequest::send

(no version information, might be only in CVS)

HttpRequest::send -- Envoi une requête

Description

publicHttpMessage HttpRequest::send ( void )

Envoi une requête HTTP.

Note : Bien qu'une exception peut avoir été lancée, le transfert peut avoir réussi, au moins, partiellement, vous devriez donc vérifier les valeurs retournées des différentes méthodes HttpRequest::getResponse*().

Valeurs de retour

Retourne la réponse reçue sous la forme d'un objet HttpMessage.

Erreurs / Exceptions

Lance une exception HttpRuntimeException, HttpRequestException, HttpMalformedHeaderException ou HttpEncodingException.

Exemples

Exemple 1. Exemple GET

<?php
$r = new HttpRequest('http://example.com/feed.rss', HttpRequest::METH_GET);
$r->setOptions(array('lastmodified' => filemtime('local.rss')));
$r->addQueryData(array('category' => 3));
try {
    $r->send();
    if ($r->getResponseCode() == 200) {
        file_put_contents('local.rss', $r->getResponseBody());
    }
} catch (HttpException $ex) {
    echo $ex;
}
?>

Exemple 2. Exemple POST

<?php
$r = new HttpRequest('http://example.com/form.php', HttpRequest::METH_POST);
$r->setOptions(array('cookies' => array('lang' => 'de')));
$r->addPostFields(array('user' => 'mike', 'pass' => 's3c|r3t'));
$r->addPostFile('image', 'profile.jpg', 'image/jpeg');
try {
    echo $r->send()->getBody();
} catch (HttpException $ex) {
    echo $ex;
}
?>

Précédent | Sommaire | Suivant
HttpRequest::resetCookies | Niveau supérieur | HttpRequest::setContentType


HttpRequest::setContentType

(no version information, might be only in CVS)

HttpRequest::setContentType -- Définit le type de contenu

Description

publicbool HttpRequest::setContentType ( string content_type )

Définit le type de contenu que la requête POST devra avoir.

Liste de paramètres

content_type

le type de contenu de la requête (primaire/secondaire)

Valeurs de retour

Retourne TRUE en cas de succès ou FALSE si le type de contenu ne semble pas contenu une partie primaire et secondaire.

Précédent | Sommaire | Suivant
HttpRequest::send | Niveau supérieur | HttpRequest::setCookies


HttpRequest::setCookies

(no version information, might be only in CVS)

HttpRequest::setCookies -- Définit un cookie

Description

publicbool HttpRequest::setCookies ( [array cookies] )

Définit un cookie personnalisé.

Liste de paramètres

cookies

un tableau associatif contenant les paires nom/valeur des cookies ; si ce paramètre est vide ou omis, tous les cookies récédemment définis seront effacés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::setContentType | Niveau supérieur | HttpRequest::setHeaders


HttpRequest::setHeaders

(no version information, might be only in CVS)

HttpRequest::setHeaders -- Définit un en-tête

Description

publicbool HttpRequest::setHeaders ( [array headers] )

Définit des en-têtes.

Liste de paramètres

headers

un tableau associatif contenant les paires nom/valeur des en-têtes ; si ce paramètre est vide ou omis, tous les en-têtes précédemment définis seront effacés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::setCookies | Niveau supérieur | HttpRequest::setMethod


HttpRequest::setMethod

(no version information, might be only in CVS)

HttpRequest::setMethod -- Définit la méthode

Description

publicbool HttpRequest::setMethod ( int request_method )

Définit la méthode de la requête.

Liste de paramètres

request_method

la méthode de la requête à utiliser.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::setHeaders | Niveau supérieur | HttpRequest::setOptions


HttpRequest::setOptions

(no version information, might be only in CVS)

HttpRequest::setOptions -- Définit des options

Description

publicbool HttpRequest::setOptions ( [array options] )

Définit des options de requêtes à utiliser.

Voir la fonction http_get() pour une liste complète des paramètres options et options disponibles.

Liste de paramètres

options

un tableau associatif, dont les valeurs écraseront les options de requêtes actuellement définies ; si ce paramètre est vide ou omis, les options de l'objet HttpRequest seront effacées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::setMethod | Niveau supérieur | HttpRequest::setPostFields


HttpRequest::setPostFields

(no version information, might be only in CVS)

HttpRequest::setPostFields -- Définit les champs POST

Description

publicbool HttpRequest::setPostFields ( [array post_data] )

Définit les entrées des données POST, écrasant les données POST précédemment définies.

Affecte uniquement les données POST et les requêtes personnalisées.

Liste de paramètres

post_data

un tableau associatif contenant les champs POST ; si ce paramètre est vide ou omis, les données POST seront effacées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::setOptions | Niveau supérieur | HttpRequest::setPostFiles


HttpRequest::setPostFiles

(no version information, might be only in CVS)

HttpRequest::setPostFiles -- Définit les fichiers POST

Description

publicbool HttpRequest::setPostFiles ( [array post_files] )

Définit les fichiers POST, écrasant les fichiers POST précédemment définis.

Affecte uniquement les fichiers POST et les requêtes. Ne peut pas être utilisé avec les données POST.

Liste de paramètres

post_files

un tableau contenant les fichiers POST ; si ce paramètre est vide ou omis, les fichiers POST seront effacés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::setPostFields | Niveau supérieur | HttpRequest::setPutData


HttpRequest::setPutData

(no version information, might be only in CVS)

HttpRequest::setPutData -- Définit les données PUT

Description

publicbool HttpRequest::setPutData ( [string put_data] )

Définit les données PUT à envoyer, écrasant les données PUT précédemment définies.

Affecte uniquement les requêtes PUT.

Uniquement soit des données PUT, soit des fichiers PUT peuvent être utilisés pour chaque requête. Les données PUT sont prioritaires et seront utilisées même si un fichier PUT est défini.

Liste de paramètres

put_data

les données à télécharger

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::setPostFiles | Niveau supérieur | HttpRequest::setPutFile


HttpRequest::setPutFile

(no version information, might be only in CVS)

HttpRequest::setPutFile -- Définit le fichier PUT

Description

publicbool HttpRequest::setPutFile ( [string file] )

Définit le fichier PUT. Affecte uniquement les requêtes PUT.

Liste de paramètres

file

le chemin vers le fichier à envoyer ; si ce paramètre est vide ou omis, le fichier PUT sera effacé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::setPutData | Niveau supérieur | HttpRequest::setQueryData


HttpRequest::setQueryData

(no version information, might be only in CVS)

HttpRequest::setQueryData -- Définit les données de la requête

Description

publicbool HttpRequest::setQueryData ( [mixed query_data] )

Définit les paramètres URL de la requête à utiliser, écrasant les paramètres de requête précédemment définis.

Affecte tous les types de requêtes.

Liste de paramètres

query_data

une chaîne ou un tableau associatif contenant la chaîne de la requête pré-encodée ou les champs de la requête à encoder ; si ce paramètre est vide ou omis, les données de la requête seront effacées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::setPutFile | Niveau supérieur | HttpRequest::setRawPostData


HttpRequest::setRawPostData

(no version information, might be only in CVS)

HttpRequest::setRawPostData -- Définit les données POST

Description

publicbool HttpRequest::setRawPostData ( [string raw_post_data] )

Définit les données par ligne POST à envoyer, écrasant les données par ligne POST précédemment définies. N'oubliez pas de spécifier le type de contenu. Affecte uniquement les données POST et les requêtes personnalisées.

Uniquement soit les champs POST, soit les données par ligne POST peuvent être utilisés pour chaque requête. Les données par ligne POST sont prioritaires et seront utilisées même si des champs POST sont définis.

Liste de paramètres

raw_post_data

données par ligne POST raw post data

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::setQueryData | Niveau supérieur | HttpRequest::setSslOptions


HttpRequest::setSslOptions

(no version information, might be only in CVS)

HttpRequest::setSslOptions -- Définit les options SSL

Description

publicbool HttpRequest::setSslOptions ( [array options] )

Définit des options SSL.

Liste de paramètres

options

un tableau associatif contenant les options spécifiques à SSL ; si ce paramètre est vide ou omis, les options SSL seront effacées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::setRawPostData | Niveau supérieur | HttpRequest::setUrl


HttpRequest::setUrl

(no version information, might be only in CVS)

HttpRequest::setUrl -- Définit l'URL

Description

publicbool HttpRequest::setUrl ( string url )

Définit l'URL de la requête.

Liste de paramètres

url

l'URL de la requête

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequest::setSslOptions | Niveau supérieur | HttpRequestPool


HttpRequestPool::attach

(no version information, might be only in CVS)

HttpRequestPool::attach -- Attache un objet HttpRequest

Description

publicbool HttpRequestPool::attach ( HttpRequest request )

Attache un objet HttpRequest à ce HttpRequestPool.

Avertissement

Définissez toutes les options avant d'effectuer l'attachement !

Liste de paramètres

request

un objet HttpRequest qui n'est pas déjà attaché à un objet HttpRequestPool

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Erreurs / Exceptions

Lance une exception HttpInvalidParamException, HttpRequestException, HttpRequestPoolException, HttpEncodingException.

Précédent | Sommaire | Suivant
HttpRequestPool | Niveau supérieur | HttpRequestPool::__construct


HttpRequestPool::__construct

(no version information, might be only in CVS)

HttpRequestPool::__construct -- Constructeur de la classe HttpRequestPool

Description

void HttpRequestPool::__construct ( [HttpRequest request] )

Instancie un nouvel objet HttpRequestPool. Un HttpRequestPool est capable d'envoyer plusieurs HttpRequests en parallèle.

Accepte une infinité de paramètres optionnels, chacun se référant à un objet HttpRequest.

Liste de paramètres

request

objet HttpRequest à attacher

Erreurs / Exceptions

Lance une exception HttpRequestPoolException (HttpRequestException, HttpInvalidParamException).

Exemples

Exemple 1. Exemple avec HttpRequestPool

<?php
try {
    $pool = new HttpRequestPool(
        new HttpRequest('http://www.google.com/', HttpRequest::METH_HEAD),
        new HttpRequest('http://www.php.net/', HttpRequest::METH_HEAD)
    );
    $pool->send();
    foreach($pool as $request) {
        printf("%s is %s (%d)\n",
            $request->getUrl(),
            $request->getResponseCode() ? 'active' : 'non active',
            $request->getResponseCode()
        );
    }
} catch (HttpException $e) {
    echo $e;
}
?>

Précédent | Sommaire | Suivant
HttpRequestPool::attach | Niveau supérieur | HttpRequestPool::__destruct


HttpRequestPool::__destruct

(no version information, might be only in CVS)

HttpRequestPool::__destruct -- Déstructeur de la classe HttpRequestPool

Description

void HttpRequestPool::__destruct ( void )

Détruit l'objet HttpRequestPool.

Précédent | Sommaire | Suivant
HttpRequestPool::__construct | Niveau supérieur | HttpRequestPool::detach


HttpRequestPool::detach

(no version information, might be only in CVS)

HttpRequestPool::detach -- Détache un objet HttpRequest

Description

bool HttpRequestPool::detach ( HttpRequest request )

Détache un objet HttpRequest depuis ce HttpRequestPool.

Liste de paramètres

request

un objet HttpRequest attaché à cet objet HttpRequestPool

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Erreurs / Exceptions

Lance une exception HttpInvalidParamException, HttpRequestPoolException.

Précédent | Sommaire | Suivant
HttpRequestPool::__destruct | Niveau supérieur | HttpRequestPool::getAttachedRequests


HttpRequestPool::getAttachedRequests

(no version information, might be only in CVS)

HttpRequestPool::getAttachedRequests -- Récupère les requêtes attachées

Description

array HttpRequestPool::getAttachedRequests ( void )

Récupère les objets HttpRequest attachés.

Liste de paramètres

Valeurs de retour

Retourne un tableau contenant tous les objets HttpRequest actuellement attachés.

Précédent | Sommaire | Suivant
HttpRequestPool::detach | Niveau supérieur | HttpRequestPool::getFinishedRequests


HttpRequestPool::getFinishedRequests

(no version information, might be only in CVS)

HttpRequestPool::getFinishedRequests -- Récupère les requêtes terminées

Description

array HttpRequestPool::getFinishedRequests ( void )

Récupère les objets HttpRequest attachés qui ont terminés leurs travaux.

Liste de paramètres

Valeurs de retour

Retourne un tableau contenant tous les objets HttpRequest attachés qui ont terminés leurs travaux.

Précédent | Sommaire | Suivant
HttpRequestPool::getAttachedRequests | Niveau supérieur | HttpRequestPool::reset


HttpRequestPool::reset

(no version information, might be only in CVS)

HttpRequestPool::reset -- Efface la file d'attente des requêtes

Description

void HttpRequestPool::reset ( void )

Détache tous les objets HttpRequest attachés.

Précédent | Sommaire | Suivant
HttpRequestPool::getFinishedRequests | Niveau supérieur | HttpRequestPool::send


HttpRequestPool::send

(no version information, might be only in CVS)

HttpRequestPool::send -- Envoie toutes les requêtes

Description

bool HttpRequestPool::send ( void )

Envoie tous les objets HttpRequest attachés en parallèle.

Liste de paramètres

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Erreurs / Exceptions

Lance une exception HttpRequestPoolException (HttpSocketException, HttpRequestException, HttpMalformedHeaderException).

Précédent | Sommaire | Suivant
HttpRequestPool::reset | Niveau supérieur | HttpRequestPool::socketPerform


HttpRequestPool::socketPerform

(no version information, might be only in CVS)

HttpRequestPool::socketPerform -- Effectue une action sur le socket

Description

protectedbool HttpRequestPool::socketPerform ( void )

Retourne TRUE tant que chaque requête a terminé sa transaction.

Valeurs de retour

Retourne TRUE tant que chaque requête a terminé sa transaction.

Exemples

Exemple 1. Exempe avec HttpRequestPool::socketPerform()

<?php
class MyPool extends HttpRequestPool
{
    public function send()
    {
        while ($this->socketPerform()) {
            if (!$this->socketSelect()) {
                throw new HttpSocketExcpetion;
            }
        }
    }

    protected final function socketPerform()
    {
        $result = parent::socketPerform();
        foreach ($this->getFinishedRequests() as $r) {
            $this->detach($r);
            // gestion de la réponse lorsque la requête se termine
        }
        return $result;
    }
}
?>

Précédent | Sommaire | Suivant
HttpRequestPool::send | Niveau supérieur | HttpRequestPool::socketSelect


HttpRequestPool::socketSelect

(no version information, might be only in CVS)

HttpRequestPool::socketSelect -- Sélectionne un socket

Description

protectedbool HttpRequestPool::socketSelect ( void )

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpRequestPool::socketPerform | Niveau supérieur | HttpResponse


HttpResponse::capture

(no version information, might be only in CVS)

HttpResponse::capture -- Capture la sortie du script

Description

staticvoid HttpResponse::capture ( void )

Capture la sortie du script.

Exemples

Exemple 1. Exemple avec HttpResponse::capture()

<?php
HttpResponse::setCache(true);
HttpResponse::capture();
// script follows
?>

Précédent | Sommaire | Suivant
HttpResponse | Niveau supérieur | HttpResponse::getBufferSize


HttpResponse::getBufferSize

(no version information, might be only in CVS)

HttpResponse::getBufferSize -- Récupère la taille du buffer

Description

staticint HttpResponse::getBufferSize ( void )

Récupère la taille du buffer.

Valeurs de retour

Retourne un entier représentant la taille du buffer courant en octets.

Précédent | Sommaire | Suivant
HttpResponse::capture | Niveau supérieur | HttpResponse::getCacheControl


HttpResponse::getCache

(no version information, might be only in CVS)

HttpResponse::getCache -- Récupère le cache

Description

staticbool HttpResponse::getCache ( void )

Récupère la configuration du cache courant.

Valeurs de retour

Retourne TRUE si le cache est disponible, FALSE sinon.

Précédent | Sommaire | Suivant
HttpResponse::getCacheControl | Niveau supérieur | HttpResponse::getContentDisposition


HttpResponse::getCacheControl

(no version information, might be only in CVS)

HttpResponse::getCacheControl -- Récupère l'en-tête Cache-Control

Description

staticstring HttpResponse::getCacheControl ( void )

Récupère l'en-tête Cache-Control courant.

Valeurs de retour

Retourne la configuration du contrôle du cache courant sous la forme d'une chaîne de caractères comme envoyée dans l'en-tête.

Précédent | Sommaire | Suivant
HttpResponse::getBufferSize | Niveau supérieur | HttpResponse::getCache


HttpResponse::getContentDisposition

(no version information, might be only in CVS)

HttpResponse::getContentDisposition -- Récupère l'en-tête Content-Disposition

Description

staticstring HttpResponse::getContentDisposition ( void )

Récupère l'en-tête Content-Disposition courant.

Valeurs de retour

Retourne le contenu de l'en-tête Content-Disposition courant sous la forme d'une chaîne de caractères comme envoyée à l'en-tête.

Précédent | Sommaire | Suivant
HttpResponse::getCache | Niveau supérieur | HttpResponse::getContentType


HttpResponse::getContentType

(no version information, might be only in CVS)

HttpResponse::getContentType -- Récupère l'en-tête Content-Type

Description

staticstring HttpResponse::getContentType ( void )

Récupère l'en-tête Content-Type courant.

Valeurs de retour

Retourne l'en-tête Content-Type courant sous la forme d'une chaîne de caractères.

Précédent | Sommaire | Suivant
HttpResponse::getContentDisposition | Niveau supérieur | HttpResponse::getData


HttpResponse::getData

(no version information, might be only in CVS)

HttpResponse::getData -- Récupère les données

Description

staticstring HttpResponse::getData ( void )

Récupère les données précédemment définies à envoyer.

Valeurs de retour

Retourne une chaîne contenant les données précédemment définies à envoyer.

Précédent | Sommaire | Suivant
HttpResponse::getContentType | Niveau supérieur | HttpResponse::getETag


HttpResponse::getETag

(no version information, might be only in CVS)

HttpResponse::getETag -- Récupère l'ETag

Description

staticstring HttpResponse::getETag ( void )

Récupère l'ETag calculé ou précédemment défini.

Valeurs de retour

Retourne l'ETag calculé ou précédemment défini sous la forme d'une chaîne.

Précédent | Sommaire | Suivant
HttpResponse::getData | Niveau supérieur | HttpResponse::getFile


HttpResponse::getFile

(no version information, might be only in CVS)

HttpResponse::getFile -- Récupère le fichier

Description

staticstring HttpResponse::getFile ( void )

Récupère le fichier précédemment défini à envoyer.

Valeurs de retour

Retourne le chemin précédemment défini vers le fichier à envoyer, sous la forme d'une chaîne de caractères.

Précédent | Sommaire | Suivant
HttpResponse::getETag | Niveau supérieur | HttpResponse::getGzip


HttpResponse::getGzip

(no version information, might be only in CVS)

HttpResponse::getGzip -- Récupère la configuration gzip

Description

staticbool HttpResponse::getGzip ( void )

Récupère la configuration courante du gzip.

Valeurs de retour

Retourne TRUE si la compression GZip est active, ??? sinon.

Précédent | Sommaire | Suivant
HttpResponse::getFile | Niveau supérieur | HttpResponse::getHeader


HttpResponse::getHeader

(no version information, might be only in CVS)

HttpResponse::getHeader -- Récupère un en-tête

Description

staticmixed HttpResponse::getHeader ( [string name] )

Récupère un(des) en-tête(s) à envoyer.

Note : Avec Apache 2, ceci ne fonctionne qu'avec PHP 5.1.3 et suivant.

Liste de paramètres

name

spéciie le nom de l'en-tête à lire ; si ce paramètre est vide ou omis, un tableau associatif contenant tous les en-têtes sera retourné

Valeurs de retour

Retourne soit une chaîne contenant la valeur de l'en-tête correspondant au nom, soit FALSE si une erreur survient, soit un tableau associatif contenant tous les en-têtes.

Précédent | Sommaire | Suivant
HttpResponse::getGzip | Niveau supérieur | HttpResponse::getLastModified


HttpResponse::getLastModified

(no version information, might be only in CVS)

HttpResponse::getLastModified -- Récupère l'en-tête Last-Modified

Description

staticint HttpResponse::getLastModified ( void )

Récupère la date de l'en-tête Last-Modified calculée ou précédemment définie.

Valeurs de retour

Retourne un timestamp Unix calculé ou précédemment défini.

Précédent | Sommaire | Suivant
HttpResponse::getHeader | Niveau supérieur | HttpResponse::getStream


HttpResponse::getStream

(no version information, might be only in CVS)

HttpResponse::getStream -- Récupère le flux

Description

staticresource HttpResponse::getStream ( void )

Récupère la ressource précédemment définie à envoyer.

Liste de paramètres

Valeurs de retour

Retourne la ressource précédemment définie.

Précédent | Sommaire | Suivant
HttpResponse::getLastModified | Niveau supérieur | HttpResponse::getThrottleDelay


HttpResponse::getThrottleDelay

(no version information, might be only in CVS)

HttpResponse::getThrottleDelay -- Récupère le délai de la commande

Description

staticdouble HttpResponse::getThrottleDelay ( void )

Récupère le délai courant de la commade.

Valeurs de retour

Retourne le délau de la commande courante, en secondes.

Précédent | Sommaire | Suivant
HttpResponse::getStream | Niveau supérieur | HttpResponse::guessContentType


HttpResponse::guessContentType

(no version information, might be only in CVS)

HttpResponse::guessContentType -- Devine le type de contenu

Description

staticstring HttpResponse::guessContentType ( [string magic_file [, int magic_mode=MAGIC_MIME]] )

Essaie de deviner le type de contenu via libmagic.

Si c'est un succès, le type de contenu sera automatiquement défini comme type de contenu de la réponse.

Liste de paramètres

magic_file

spécifie la base de données magic.mime à utiliser

magic_mode

balises pour libmagic

Valeurs de retour

Retourne le type de contenu trouvé en cas de succès, ou FALSE si une erreur survient.

Erreurs / Exceptions

Lance une exception HttpRuntimeException, HttpInvalidParamException.

Précédent | Sommaire | Suivant
HttpResponse::getThrottleDelay | Niveau supérieur | HttpResponse::send


HttpResponse::send

(no version information, might be only in CVS)

HttpResponse::send -- Envoi la réponse

Description

staticbool HttpResponse::send ( [bool clean_ob = TRUE] )

Envoi la réponse.

Si c'est un succès, le script setermine et une entrée dans l'historique est écrite si le Paramètres INI http.cache_log est défini.

Liste de paramètres

clean_ob

si l'on doit détruite tous les gestionnaires de sortie précédemment démarrés ainsi que leurs buffers

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Erreurs / Exceptions

Lance une excetion HttpHeaderException, HttpResponseException

Exemples

Exemple 1. Exemple avec HttpResponse::send()

<?php
HttpResponse::setCache(true);
HttpResponse::setContentType('application/pdf');
HttpResponse::setContentDisposition("$user.pdf", false);
HttpResponse::setFile('sheet.pdf');
HttpResponse::send();
?>

Précédent | Sommaire | Suivant
HttpResponse::guessContentType | Niveau supérieur | HttpResponse::setBufferSize


HttpResponse::setBufferSize

(no version information, might be only in CVS)

HttpResponse::setBufferSize -- Définit la taille du buffer

Description

staticbool HttpResponse::setBufferSize ( int bytes )

Définit la taille du buffer envoyé pour l'utiliser avec HttpResponse::setThrottleDelay().

Fournit un méchanisme basique de commande, qui va gérer le processus courant en attendant l'envoi complet.

Note : Ceci ne fonctionne pas correctement avec FastCGI.

Liste de paramètres

bytes

la taille, en octets

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpResponse::send | Niveau supérieur | HttpResponse::setCacheControl


HttpResponse::setCache

(no version information, might be only in CVS)

HttpResponse::setCache -- Définit le cache

Description

staticbool HttpResponse::setCache ( bool cache )

Si l'on doit mettre en cache l'entrée.

Ceci rend nécessaire la mise en cache des en-têtes ainsi que la vérification des en-têtes If-Modified-Since et If-None-Match du client. Si un de ces en-têtes correspond, le code statut 304 Not Modified sera envoyé.

Note : Si vous utilisez les sessions, assurez-vous que l'option de configuration session.cache_limiter contient quelque chose de plus approprié que no-cache !

Liste de paramètres

cache

si l'on doit mettre en cache

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpResponse::setCacheControl | Niveau supérieur | HttpResponse::setContentDisposition


HttpResponse::setCacheControl

(no version information, might be only in CVS)

HttpResponse::setCacheControl -- Définit l'en-tête cache-control

Description

staticbool HttpResponse::setCacheControl ( [string control [, int max_age = 0 [, bool must_revalidate = TRUE]]] )

Définit l'en-tête personnalisé cache-control, habtuellement de type privé ou public;

Liste de paramètres

control

la configuration du contrôle du cache primaire

max_age

la durée de validité, en secondes, suggère combien de temps l'entrée du cache est valide côté client

must_revalidate

si l'entrée du cache doit être revalidé par le client à chaque requête

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si le contrôle ne correspond pas à public, private ou no-cache.

Erreurs / Exceptions

Lance une exception HttpInvalidParamException.

Précédent | Sommaire | Suivant
HttpResponse::setBufferSize | Niveau supérieur | HttpResponse::setCache


HttpResponse::setContentDisposition

(no version information, might be only in CVS)

HttpResponse::setContentDisposition -- Définit l'en-tête Content-Disposition

Description

staticbool HttpResponse::setContentDisposition ( [string filename [, bool inline = FALSE]] )

Définit l'en-tête Content-Disposition. Cet en-tête est très utile si les données actuellement envoyées proviennent d'un fichier ou quelque chose de similaire qui doit être sauvegardé par le client/l'utilisateur (i.e. la fenêtre du navigateur "Sauvegarder sous...").

Liste de paramètres

filename

le nom du fichier à afficher dans la fenêtre "Sauvegarder sous..."

inline

si défini à TRUE et que l'agent utilisateur sait gérer ce type de contenu, la fenêtre de sauvegarde du navigateur ne s'affichera pas

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpResponse::setCache | Niveau supérieur | HttpResponse::setContentType


HttpResponse::setContentType

(no version information, might be only in CVS)

HttpResponse::setContentType -- Définit l'en-tête content-type

Description

staticbool HttpResponse::setContentType ( string content_type )

Définit l'en-tête content-type de l'entité envoyée.

Liste de paramètres

content_type

le type de contenu de l'entité envoyée (primaire/secondaire)

Valeurs de retour

Retourne TRUE en cas de succès, ou FALSE si le type de contenu semble ne pas contenir de partie primaire et secondaire.

Erreurs / Exceptions

Lance une exception HttpInvalidParamException.

Précédent | Sommaire | Suivant
HttpResponse::setContentDisposition | Niveau supérieur | HttpResponse::setData


HttpResponse::setData

(no version information, might be only in CVS)

HttpResponse::setData -- Définit les données

Description

staticbool HttpResponse::setData ( mixed data )

Définit les données à envoyer.

Liste de paramètres

data

les données à envoyer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpResponse::setContentType | Niveau supérieur | HttpResponse::setETag


HttpResponse::setETag

(no version information, might be only in CVS)

HttpResponse::setETag -- Dfinit l'ETag

Description

staticbool HttpResponse::setETag ( string etag )

Définit l'ETag personnalisé. Utilisez ceci uniquement si vous savez ce que vous faîtes.

Liste de paramètres

etag

l'ETag

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpResponse::setData | Niveau supérieur | HttpResponse::setFile


HttpResponse::setFile

(no version information, might be only in CVS)

HttpResponse::setFile -- Définit le fichier

Description

staticbool HttpResponse::setFile ( string file )

Déinit le fichier à envoyer.

Liste de paramètres

file

le chemin vers le fichier à envoyer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpResponse::setETag | Niveau supérieur | HttpResponse::setGzip


HttpResponse::setGzip

(no version information, might be only in CVS)

HttpResponse::setGzip -- Définit le mode gzip

Description

staticbool HttpResponse::setGzip ( bool gzip )

Active à la volée le mode gzip pour l'entité envoyée.

Liste de paramètres

gzip

si l'on doit activer le mode GZip ou non

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpResponse::setFile | Niveau supérieur | HttpResponse::setHeader


HttpResponse::setHeader

(no version information, might be only in CVS)

HttpResponse::setHeader -- Définit un en-tête

Description

staticbool HttpResponse::setHeader ( string name [, mixed value [, bool replace = TRUE]] )

Définit un en-tête HTTP.

Liste de paramètres

name

le nom de l'en-tête

value

la valeur de l'en-tête ; si ce paramètre n'est pas définit, aucun en-tête avec ce nom ne sera envoyé

replace

si l'on doit remplacer un en-tête éventuel déjà existant

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Erreurs / Exceptions

Lance une exception HttpHeaderException.

Précédent | Sommaire | Suivant
HttpResponse::setGzip | Niveau supérieur | HttpResponse::setLastModified


HttpResponse::setLastModified

(no version information, might be only in CVS)

HttpResponse::setLastModified -- Définit l'en-tête Last-Modified

Description

staticbool HttpResponse::setLastModified ( int timestamp )

Définit la date pour l'en-tête Last-Modified personnalisé.

Liste de paramètres

timestamp

un timestamp Unix représentant la date de dernière modification de l'entité envoyée

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpResponse::setHeader | Niveau supérieur | HttpResponse::setStream


HttpResponse::setStream

(no version information, might be only in CVS)

HttpResponse::setStream -- Définit le flux

Description

staticbool HttpResponse::setStream ( resource stream )

Définit la ressource à envoyer.

Liste de paramètres

stream

flux déjà ouvert depuis lequel les données à envoyer doivent être lues

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpResponse::setLastModified | Niveau supérieur | HttpResponse::setThrottleDelay


HttpResponse::setThrottleDelay

(no version information, might be only in CVS)

HttpResponse::setThrottleDelay -- Définit le délai de la commande

Description

staticbool HttpResponse::setThrottleDelay ( double seconds )

Définit le délai de la commande à utiliser avec HttpResponse::setBufferSize().

Fournit un méchanisme basique de commande, qui va gérer le processus courant de la réponse tant que l'envoi n'est pas terminé.

Note : Ceci ne fonctionne pas correctement avec FastCGI.

Liste de paramètres

seconds

Les secondes à attendre entre chaque envoi

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
HttpResponse::setStream | Niveau supérieur | http_cache_etag


imageconvolution

(PHP 5 >= 5.1.0RC1)

imageconvolution -- Applique une matrice de la convolution 3x3, en utilisant le coefficient et l'excentrage

Description

bool imageconvolution ( resource image, array matrix, float div, float offset )

Applique une matrice de la convolution 3x3, en utilisant le coefficient et l'excentrage.

Liste de paramètres

image

Une ressource d'image, retourné par une des fonctions de création d'images, comme imagecreatetruecolor().

matrix

Une matrice 3x3 : un tableau contenant trois tableaux de trois nombres à virgules flottantes.

div

Le diviseur du résultat de la convolution, utilisé pour la normalisation.

offset

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Impression du logo PHP.net

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

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

Notes

Note : Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD.

Voir aussi

imagefilter()

Précédent | Sommaire | Suivant
imagecolortransparent | Niveau supérieur | imagecopy


imagick_begindraw

(PECL)

imagick_begindraw -- Begin draw

Description

bool imagick_begindraw ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
Image magick Functions | Niveau supérieur | imagick_blob2image


imagick_blob2image

(PECL)

imagick_blob2image -- Read image from BLOB

Description

resource imagick_blob2image ( string blob )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

blob

BLOB containing the image

Valeurs de retour

New image handle on success or FALSE on error.

Précédent | Sommaire | Suivant
imagick_begindraw | Niveau supérieur | imagick_blur


imagick_blur

(PECL)

imagick_blur -- Blur image

Description

bool imagick_blur ( resource image, float radius, float sigma )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

radius

Radius of the Gaussian in pixels, not counting the center pixel

sigma

Standard deviation of the Gaussian in pixels

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_blob2image | Niveau supérieur | imagick_border


imagick_border

(PECL)

imagick_border -- Surrounds the image with a border

Description

bool imagick_border ( resource image, int x, int y, int width, int height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

x

Horizontal offset

y

Vertical offset

width

Rectangle width

height

Rectangle height

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_blur | Niveau supérieur | imagick_charcoal


imagick_charcoal

(PECL)

imagick_charcoal -- Highlight edges

Description

bool imagick_charcoal ( resource image, float radius, float sigma )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

radius

Radius of the pixel neighborhood

sigma

Standard deviation of the Gaussian in pixels

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_border | Niveau supérieur | imagick_chop


imagick_chop

(PECL)

imagick_chop -- Remove a region of an image and collapse the image to occupy the removed portion

Description

bool imagick_chop ( resource image, int x, int y, int width, int height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

x

Horizontal offset

y

Vertical offset

width

Rectangle width

height

Rectangle height

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_charcoal | Niveau supérieur | imagick_clonehandle


imagick_clonehandle

(PECL)

imagick_clonehandle -- Clone image

Description

resource imagick_clonehandle ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

New image handle on success or FALSE on error.

Précédent | Sommaire | Suivant
imagick_chop | Niveau supérieur | imagick_composite


imagick_composite

(PECL)

imagick_composite -- Composite the second image onto the first at the specified offsets

Description

bool imagick_composite ( resource image, int type, resource image2, int x_offset, int y_offset )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

type

One of IMAGICK_COMPOSITE_* constants

image2

Image 2 handle

x_offset

Column offset of the composited image

y_offset

Row offset of the composited image

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_clonehandle | Niveau supérieur | imagick_contrast


imagick_contrast

(PECL)

imagick_contrast -- Enhance the intensity differences between the lighter and darker elements of the image

Description

bool imagick_contrast ( resource image, int sharpen )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

sharpen

Increase or decrease image contrast

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_composite | Niveau supérieur | imagick_convert


imagick_convert

(PECL)

imagick_convert -- Convert image

Description

bool imagick_convert ( resource image, string type )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

type

One of IMAGICK_TYPE_* constants

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_contrast | Niveau supérieur | imagick_crop


imagick_crop

(PECL)

imagick_crop -- Extract a region of the image

Description

bool imagick_crop ( resource image, int x, int y, int width, int height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

x

Horizontal offset

y

Vertical offset

width

Rectangle width

height

Rectangle height

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_convert | Niveau supérieur | imagick_despeckle


imagick_despeckle

(PECL)

imagick_despeckle -- Reduce the speckle noise

Description

bool imagick_despeckle ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_crop | Niveau supérieur | imagick_destroyhandle


imagick_destroyhandle

(PECL)

imagick_destroyhandle -- Free image from memory

Description

bool imagick_destroyhandle ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_despeckle | Niveau supérieur | imagick_drawannotation


imagick_drawannotation

(PECL)

imagick_drawannotation -- Write text

Description

bool imagick_drawannotation ( resource image, float x, float y, string text )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

x

X ordinate to left of text

y

Y ordinate to text baseline

text

Text to draw

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_destroyhandle | Niveau supérieur | imagick_drawarc


imagick_drawarc

(PECL)

imagick_drawarc -- Draw arc

Description

bool imagick_drawarc ( resource image, float x1, float y1, float x2, float y2, float start_rot, float end_rot )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

x1

Starting x ordinate of bounding rectangle

y1

Starting y ordinate of bounding rectangle

x2

Ending x ordinate of bounding rectangle

y2

Ending y ordinate of bounding rectangle

start_rot

Starting degrees of rotation

end_rot

Ending degrees of rotation

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_drawannotation | Niveau supérieur | imagick_drawcircle


imagick_drawcircle

(PECL)

imagick_drawcircle -- Draw circle

Description

bool imagick_drawcircle ( resource image, float x1, float y1, float x2, float y2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

x1

Origin x ordinate

y1

Origin y ordinate

x2

Perimeter x ordinate

y2

Perimeter y ordinate

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_drawarc | Niveau supérieur | imagick_drawellipse


imagick_drawellipse

(PECL)

imagick_drawellipse -- Draw ellipse

Description

bool imagick_drawellipse ( resource image, float x, float y, float radius_x, float radius_y, float start_rot, float end_rot )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

x

Origin x ordinate

y

Origin y ordinate

radius_x

Radius in x

radius_y

Radius in y

start_rot

Starting rotation in degrees

end_rot

Ending rotation in degrees

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_drawcircle | Niveau supérieur | imagick_drawline


imagick_drawline

(PECL)

imagick_drawline -- Draw line

Description

bool imagick_drawline ( resource image, float x1, float y1, float x2, float y2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

x1

Starting x ordinate

y1

Starting y ordinate

x2

Ending x ordinate

y2

Ending y ordinate

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_drawellipse | Niveau supérieur | imagick_drawpoint


imagick_drawpoint

(PECL)

imagick_drawpoint -- Draw point

Description

bool imagick_drawpoint ( resource image, float x, float y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

x

Horizontal offset

y

Vertical offset

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_drawline | Niveau supérieur | imagick_drawrectangle


imagick_drawrectangle

(PECL)

imagick_drawrectangle -- Draw rectangle

Description

bool imagick_drawrectangle ( resource image, float x1, float y1, float x2, float y2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

x1

X ordinate of first coordinate

y1

Y ordinate of first coordinate

x2

X ordinate of second coordinate

y2

Y ordinate of second coordinate

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_drawpoint | Niveau supérieur | imagick_edge


imagick_edge

(PECL)

imagick_edge -- Find edges

Description

bool imagick_edge ( resource image, float radius )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

radius

Radius of the pixel neighborhood

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_drawrectangle | Niveau supérieur | imagick_emboss


imagick_emboss

(PECL)

imagick_emboss -- Return a grayscale image with a three-dimensional effect

Description

bool imagick_emboss ( resource image, float radius, float sigma )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

radius

Radius of the pixel neighborhood

sigma

Standard deviation of the Gaussian in pixels

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_edge | Niveau supérieur | imagick_enhance


imagick_enhance

(PECL)

imagick_enhance -- Apply a digital filter that improves the quality of a noisy image

Description

bool imagick_enhance ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_emboss | Niveau supérieur | imagick_equalize


imagick_equalize

(PECL)

imagick_equalize -- Apply a histogram equalization to the image

Description

bool imagick_equalize ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_enhance | Niveau supérieur | imagick_error


imagick_error

(PECL)

imagick_error -- Check whether there is an error

Description

string imagick_error ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

String containing all types of errors or empty string if there is no error.

Précédent | Sommaire | Suivant
imagick_equalize | Niveau supérieur | imagick_faileddescription


imagick_faileddescription

(PECL)

imagick_faileddescription -- Get description of failure

Description

string imagick_faileddescription ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Description of failure or FALSE if there is no failure.

Précédent | Sommaire | Suivant
imagick_error | Niveau supérieur | imagick_failedreason


imagick_failedreason

(PECL)

imagick_failedreason -- Get reason of failure

Description

string imagick_failedreason ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Reason of failure or FALSE if there is no failure.

Précédent | Sommaire | Suivant
imagick_faileddescription | Niveau supérieur | imagick_first


imagick_first

(PECL)

imagick_first -- Set the internal pointer of an image list to its first element

Description

bool imagick_first ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_failedreason | Niveau supérieur | imagick_flatten


imagick_flatten

(PECL)

imagick_flatten -- Merge a sequence of images

Description

bool imagick_flatten ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_first | Niveau supérieur | imagick_flip


imagick_flip

(PECL)

imagick_flip -- Create a vertical mirror image by reflecting the pixels around the central x-axis

Description

bool imagick_flip ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_flatten | Niveau supérieur | imagick_flop


imagick_flop

(PECL)

imagick_flop -- Create a horizontal mirror image by reflecting the pixels around the central y-axis

Description

bool imagick_flop ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_flip | Niveau supérieur | imagick_frame


imagick_frame

(PECL)

imagick_frame -- Add a simulated three-dimensional border around the image

Description

bool imagick_frame ( resource image, int x, int y, int width, int height, int inner_bevel, int outer_bevel )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

x

Horizontal offset

y

Vertical offset

width

Rectangle width

height

Rectangle height

inner_bevel

Inner bevel

outer_bevel

Outer bevel

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_flop | Niveau supérieur | imagick_free


imagick_free

(PECL)

imagick_free -- Alias de imagick_destroyhandle()

Description

bool imagick_free ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_frame | Niveau supérieur | imagick_gamma


imagick_gamma

(PECL)

imagick_gamma -- Gamma-correct a particular image channel

Description

bool imagick_gamma ( resource image, string level )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

level

Image gamma

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_free | Niveau supérieur | imagick_gaussianblur


imagick_gaussianblur

(PECL)

imagick_gaussianblur -- Blur image

Description

bool imagick_gaussianblur ( resource image, float radius, float sigma )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

radius

Radius of the pixel neighborhood not counting the center pixel

sigma

Standard deviation of the Gaussian in pixels

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_gamma | Niveau supérieur | imagick_getcanvas


imagick_getcanvas

(PECL)

imagick_getcanvas -- Get canvas

Description

resource imagick_getcanvas ( string color, int width, int height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

color

Background color

width

Width of the image

height

Height of the image

Valeurs de retour

New image handle on success or FALSE on error.

Précédent | Sommaire | Suivant
imagick_gaussianblur | Niveau supérieur | imagick_getcolorspace


imagick_getcolorspace

(PECL)

imagick_getcolorspace -- Get color space

Description

int imagick_getcolorspace ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

One of IMAGICK_COLORSPACE_* constants.

Précédent | Sommaire | Suivant
imagick_getcanvas | Niveau supérieur | imagick_getdpix


imagick_getdpix

(PECL)

imagick_getdpix -- Get DPI in X axis

Description

int imagick_getdpix ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Number of dots per inch in X axis.

Précédent | Sommaire | Suivant
imagick_getcolorspace | Niveau supérieur | imagick_getdpiy


imagick_getdpiy

(PECL)

imagick_getdpiy -- Get DPI in Y axis

Description

int imagick_getdpiy ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Number of dots per inch in Y axis.

Précédent | Sommaire | Suivant
imagick_getdpix | Niveau supérieur | imagick_getheight


imagick_getheight

(PECL)

imagick_getheight -- Get height

Description

int imagick_getheight ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Height of an image in pixels.

Précédent | Sommaire | Suivant
imagick_getdpiy | Niveau supérieur | imagick_getimagedepth


imagick_getimagedepth

(PECL)

imagick_getimagedepth -- Get color depth

Description

int imagick_getimagedepth ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Minimum number of bits required to store every pixel of an image.

Précédent | Sommaire | Suivant
imagick_getheight | Niveau supérieur | imagick_getimagefromlist


imagick_getimagefromlist

(PECL)

imagick_getimagefromlist -- Return copy of an image from the list

Description

resource imagick_getimagefromlist ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

New image handle on success or FALSE on failure.

Précédent | Sommaire | Suivant
imagick_getimagedepth | Niveau supérieur | imagick_getimagetype


imagick_getimagetype

(PECL)

imagick_getimagetype -- Get image type

Description

int imagick_getimagetype ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

One of IMAGICK_TYPE_* constants.

Précédent | Sommaire | Suivant
imagick_getimagefromlist | Niveau supérieur | imagick_getlistindex


imagick_getlistindex

(PECL)

imagick_getlistindex -- Get position in the list of the specified image

Description

int imagick_getlistindex ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

0-based index of the specified image in the list.

Précédent | Sommaire | Suivant
imagick_getimagetype | Niveau supérieur | imagick_getlistsize


imagick_getlistsize

(PECL)

imagick_getlistsize -- Get list size

Description

int imagick_getlistsize ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Number of images in the list.

Précédent | Sommaire | Suivant
imagick_getlistindex | Niveau supérieur | imagick_getmagick


imagick_getmagick

(PECL)

imagick_getmagick -- Get Magick string

Description

string imagick_getmagick ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Magick string on success or FALSE on failure.

Précédent | Sommaire | Suivant
imagick_getlistsize | Niveau supérieur | imagick_getmimetype


imagick_getmimetype

(PECL)

imagick_getmimetype -- Get MIME type

Description

string imagick_getmimetype ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

MIME type on success or FALSE on failure.

Précédent | Sommaire | Suivant
imagick_getmagick | Niveau supérieur | imagick_getnumbercolors


imagick_getnumbercolors

(PECL)

imagick_getnumbercolors -- Get number of colors

Description

int imagick_getnumbercolors ( resource image, string hist_filename )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

hist_filename

Write a histogram of the color distribution to this file

Valeurs de retour

Number of unique colors used in the image on success or FALSE on failure.

Précédent | Sommaire | Suivant
imagick_getmimetype | Niveau supérieur | imagick_getwidth


imagick_getwidth

(PECL)

imagick_getwidth -- Get width

Description

int imagick_getwidth ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Width of an image in pixels.

Précédent | Sommaire | Suivant
imagick_getnumbercolors | Niveau supérieur | imagick_goto


imagick_goto

(PECL)

imagick_goto -- Go to specified image in a list

Description

bool imagick_goto ( resource image, int frame )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

frame

0-based index of a frame

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_getwidth | Niveau supérieur | imagick_image2blob


imagick_image2blob

(PECL)

imagick_image2blob -- Return image as BLOB

Description

string imagick_image2blob ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

BLOB representation of image.

Précédent | Sommaire | Suivant
imagick_goto | Niveau supérieur | imagick_implode


imagick_implode

(PECL)

imagick_implode -- Implode image pixels

Description

bool imagick_implode ( resource image, float amount )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

amount

Extent of the implosion

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_image2blob | Niveau supérieur | imagick_iserror


imagick_iserror

(PECL)

imagick_iserror -- Check whether there is an error with image

Description

bool imagick_iserror ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

TRUE if there is an error, FALSE otherwise.

Précédent | Sommaire | Suivant
imagick_implode | Niveau supérieur | imagick_isgrayimage


imagick_isgrayimage

(PECL)

imagick_isgrayimage -- Check whether image is gray

Description

bool imagick_isgrayimage ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

TRUE if image is gray, FALSE otherwise.

Précédent | Sommaire | Suivant
imagick_iserror | Niveau supérieur | imagick_isimagesequal


imagick_isimagesequal

(PECL)

imagick_isimagesequal -- Compare two images

Description

bool imagick_isimagesequal ( resource image, resource image2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

image2

Image 2 handle

Valeurs de retour

TRUE if images are equal, FALSE otherwise.

Précédent | Sommaire | Suivant
imagick_isgrayimage | Niveau supérieur | imagick_ismonochromeimage


imagick_ismonochromeimage

(PECL)

imagick_ismonochromeimage -- Check whether image is monochrome

Description

bool imagick_ismonochromeimage ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

TRUE if image is monochrome, FALSE otherwise.

Précédent | Sommaire | Suivant
imagick_isimagesequal | Niveau supérieur | imagick_isopaqueimage


imagick_isopaqueimage

(PECL)

imagick_isopaqueimage -- Check whether image is opaque

Description

bool imagick_isopaqueimage ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

TRUE if image is opaque, FALSE otherwise.

Précédent | Sommaire | Suivant
imagick_ismonochromeimage | Niveau supérieur | imagick_ispaletteimage


imagick_ispaletteimage

(PECL)

imagick_ispaletteimage -- Check whether image is palette

Description

bool imagick_ispaletteimage ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

TRUE if image is palette, FALSE otherwise.

Précédent | Sommaire | Suivant
imagick_isopaqueimage | Niveau supérieur | imagick_level


imagick_level

(PECL)

imagick_level -- Adjust levels of a particular image channel by scaling the colors falling between specified white and black points to the full available quantum range

Description

bool imagick_level ( resource image, string level )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

level

Specify the levels where the black and white points have the range of 0-QuantumRange, and gamma has the range 0-10 (e.g. 10x90+2)

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_ispaletteimage | Niveau supérieur | imagick_magnify


imagick_magnify

(PECL)

imagick_magnify -- Double-size the image using bilinear interpolation

Description

bool imagick_magnify ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_level | Niveau supérieur | imagick_medianfilter


imagick_medianfilter

(PECL)

imagick_medianfilter -- Replace each pixel by the median in a set of neighboring pixels

Description

bool imagick_medianfilter ( resource image, float radius )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

radius

Radius of the pixel neighborhood

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_magnify | Niveau supérieur | imagick_minify


imagick_minify

(PECL)

imagick_minify -- Half-size the image using the weighted average of a 4x4 cell

Description

bool imagick_minify ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_medianfilter | Niveau supérieur | imagick_modulate


imagick_modulate

(PECL)

imagick_modulate -- Control brightness, saturation and hue

Description

bool imagick_modulate ( resource image, string modulate )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

modulate

Define the percent change in brightness, saturation, and hue

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_minify | Niveau supérieur | imagick_mosaic


imagick_mosaic

(PECL)

imagick_mosaic -- Inlay a number of images to form a single coherent picture

Description

resource imagick_mosaic ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

New image handle on success or FALSE on failure.

Précédent | Sommaire | Suivant
imagick_modulate | Niveau supérieur | imagick_motionblur


imagick_motionblur

(PECL)

imagick_motionblur -- Simulate motion blur

Description

bool imagick_motionblur ( resource image, float radius, float sigma, float angle )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

radius

Radius of the pixel neighborhood not counting the center pixel

sigma

Standard deviation of the Gaussian in pixels

angle

Apply the effect along this angle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_mosaic | Niveau supérieur | imagick_negate


imagick_negate

(PECL)

imagick_negate -- Negate the colors

Description

bool imagick_negate ( resource image, int gray_scale )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

gray_scale

If non-zero, only negate grayscale pixels within the image

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_motionblur | Niveau supérieur | imagick_newimagelist


imagick_newimagelist

(PECL)

imagick_newimagelist -- Create new image list

Description

resource imagick_newimagelist ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour

New image list on success or FALSE on failure.

Précédent | Sommaire | Suivant
imagick_negate | Niveau supérieur | imagick_next


imagick_next

(PECL)

imagick_next -- Advance the internal pointer of an image list

Description

bool imagick_next ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_newimagelist | Niveau supérieur | imagick_normalize


imagick_normalize

(PECL)

imagick_normalize -- Enhance the contrast of a color image by mapping the darkest 2 percent of all pixel to black and the brightest 1 percent to white

Description

bool imagick_normalize ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_next | Niveau supérieur | imagick_oilpaint


imagick_oilpaint

(PECL)

imagick_oilpaint -- Simulate oil painting

Description

bool imagick_oilpaint ( resource image, float radius )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

radius

Radius of the circular neighborhood

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_normalize | Niveau supérieur | imagick_ordereddither


imagick_ordereddither

(PECL)

imagick_ordereddither -- Use the ordered dithering technique of reducing color images to monochrome

Description

bool imagick_ordereddither ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_oilpaint | Niveau supérieur | imagick_poplist


imagick_poplist

(PECL)

imagick_poplist -- Remove the last image in the list

Description

resource imagick_poplist ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Image handle of extracted image on success or FALSE on failure.

Précédent | Sommaire | Suivant
imagick_ordereddither | Niveau supérieur | imagick_prev


imagick_prev

(PECL)

imagick_prev -- Rewind the internal pointer of an image list

Description

bool imagick_prev ( resource image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_poplist | Niveau supérieur | imagick_profile


imagick_profile

(PECL)

imagick_profile -- Add or remove a ICC, IPTC, or generic profile from an image

Description

bool imagick_profile ( resource image, string name, int clone [, string profile] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

name

Name of profile to add or remove: ICC, IPTC, or generic profile

clone

Should be zero

profile

The profile data

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_prev | Niveau supérieur | imagick_pushlist


imagick_pushlist

(PECL)

imagick_pushlist -- Add an image to the end of the list

Description

bool imagick_pushlist ( resource image, resource push_image )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

push_image

Handle if an image to push

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_profile | Niveau supérieur | imagick_raise


imagick_raise

(PECL)

imagick_raise -- Create a simulated three-dimensional button-like effect

Description

bool imagick_raise ( resource image, int x, int y, int width, int height, int raise )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

x

Horizontal offset

y

Vertical offset

width

Rectangle width

height

Rectangle height

raise

A value other than zero creates a 3-D raise effect, otherwise it has a lowered effect

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_pushlist | Niveau supérieur | imagick_read


imagick_read

(PECL)

imagick_read -- Alias de imagick_readimage()

Description

resource imagick_read ( resource image, string filename )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

filename

Name of a file to read image from

Valeurs de retour

New image handle on success or FALSE on failure.

Précédent | Sommaire | Suivant
imagick_raise | Niveau supérieur | imagick_readimage


imagick_readimage

(PECL)

imagick_readimage -- Read image

Description

resource imagick_readimage ( string filename )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename

Name of a file to read image from

Valeurs de retour

New image handle on success or FALSE on failure.

Précédent | Sommaire | Suivant
imagick_read | Niveau supérieur | imagick_reducenoise


imagick_reducenoise

(PECL)

imagick_reducenoise -- Smooth the contours of an image while still preserving edge information

Description

bool imagick_reducenoise ( resource image, float radius )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

radius

Radius of the pixel neighborhood

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_readimage | Niveau supérieur | imagick_resize


imagick_resize

(PECL)

imagick_resize -- Resize image

Description

bool imagick_resize ( resource image, int cols, int rows, int filter, float blur [, string geo_mods] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

cols

The number of columns desired in the scaled image

rows

The number of rows desired in the scaled image

filter

One of IMAGICK_FILTER_* constants

blur

The blur factor where > 1 is blurry, < 1 is sharp

geo_mods

Geometry modificators

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_reducenoise | Niveau supérieur | imagick_roll


imagick_roll

(PECL)

imagick_roll -- Offset an image as defined by x and y

Description

bool imagick_roll ( resource image, int x_offset, int y_offset )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

x_offset

X offset

y_offset

Y offset

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_resize | Niveau supérieur | imagick_rotate


imagick_rotate

(PECL)

imagick_rotate -- Rotate image

Description

bool imagick_rotate ( resource image, float degrees )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

degrees

The number of degrees to rotate the image

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_roll | Niveau supérieur | imagick_sample


imagick_sample

(PECL)

imagick_sample -- Scale image using pixel sampling

Description

bool imagick_sample ( resource image, int cols, int rows [, string geo_mods] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

cols

The number of columns in the scaled image

rows

The number of rows in the scaled image

geo_mods

Geometry modificators

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_rotate | Niveau supérieur | imagick_scale


imagick_scale

(PECL)

imagick_scale -- Scale image using pnmscale() of PBMPLUS

Description

bool imagick_scale ( resource image, int cols, int rows [, string geo_mods] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

cols

The number of columns in the scaled image

rows

The number of rows in the scaled image

geo_mods

Geometry modificators

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_sample | Niveau supérieur | imagick_set_image_comment


imagick_set_image_comment

(PECL)

imagick_set_image_comment -- Set "comment" attribute of image

Description

bool imagick_set_image_comment ( resource image, string comment )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

comment

The image comment

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_scale | Niveau supérieur | imagick_set_image_quality


imagick_set_image_quality

(PECL)

imagick_set_image_quality -- Set image quality

Description

bool imagick_set_image_quality ( resource image, int quality )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

quality

The image quality

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_set_image_comment | Niveau supérieur | imagick_setcompressionquality


imagick_setcompressionquality

(PECL)

imagick_setcompressionquality -- Set compression quality

Description

bool imagick_setcompressionquality ( resource image, int quality )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

quality

The image compression quality

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_set_image_quality | Niveau supérieur | imagick_setcompressiontype


imagick_setcompressiontype

(PECL)

imagick_setcompressiontype -- Set compression type

Description

bool imagick_setcompressiontype ( resource image, int type )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

type

One of IMAGICK_COMPRESSION_* constants

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_setcompressionquality | Niveau supérieur | imagick_setdpi


imagick_setdpi

(PECL)

imagick_setdpi -- Set DPI

Description

bool imagick_setdpi ( resource image, int dpi_x, int dpi_y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

dpi_x

Horizontal dots per inch

dpi_y

Vertical dots per inch

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_setcompressiontype | Niveau supérieur | imagick_setfillcolor


imagick_setfillcolor

(PECL)

imagick_setfillcolor -- Set fill color

Description

bool imagick_setfillcolor ( resource image, string color )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

color

Fill color

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_setdpi | Niveau supérieur | imagick_setfillopacity


imagick_setfillopacity

(PECL)

imagick_setfillopacity -- Set fill opacity

Description

bool imagick_setfillopacity ( resource image, float opacity )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

opacity

Fill opacity

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_setfillcolor | Niveau supérieur | imagick_setfontface


imagick_setfontface

(PECL)

imagick_setfontface -- Set font face

Description

bool imagick_setfontface ( resource image, string face )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

face

Font family

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_setfillopacity | Niveau supérieur | imagick_setfontsize


imagick_setfontsize

(PECL)

imagick_setfontsize -- Set font size

Description

bool imagick_setfontsize ( resource image, float size )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

size

Font pointsize

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_setfontface | Niveau supérieur | imagick_setfontstyle


imagick_setfontstyle

(PECL)

imagick_setfontstyle -- Set font style

Description

bool imagick_setfontstyle ( resource image, int style )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

style

One of IMAGICK_FONTSTYLE_* constants

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_setfontsize | Niveau supérieur | imagick_shade


imagick_shade

(PECL)

imagick_shade -- Shine a distant light on an image to create a three-dimensional effect

Description

bool imagick_shade ( resource image, int gray, float azimuth, float elevation )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

gray

A value other than zero shades the intensity of each pixel

azimuth

Azimuth of the light source direction

elevation

Elevation of the light source direction

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_setfontstyle | Niveau supérieur | imagick_sharpen


imagick_sharpen

(PECL)

imagick_sharpen -- Sharpen image

Description

bool imagick_sharpen ( resource image, float radius, float sigma )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

radius

Radius of the pixel neighborhood not counting the center pixel

sigma

Standard deviation of the Laplacian in pixels

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_shade | Niveau supérieur | imagick_shear


imagick_shear

(PECL)

imagick_shear -- Slide one edge of an image along the X or Y axis, creating a parallelogram

Description

bool imagick_shear ( resource image, float x, float y )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

x

Horizontal offset

y

Vertical offset

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_sharpen | Niveau supérieur | imagick_solarize


imagick_solarize

(PECL)

imagick_solarize -- Solarize image

Description

bool imagick_solarize ( resource image, float threshold )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

threshold

Extent of the solarization

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_shear | Niveau supérieur | imagick_spread


imagick_spread

(PECL)

imagick_spread -- Randomly displace each pixel in a block

Description

bool imagick_spread ( resource image, int radius )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

radius

Choose a random pixel in a neighborhood of this extent

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_solarize | Niveau supérieur | imagick_swirl


imagick_swirl

(PECL)

imagick_swirl -- Swirl pixels around the center of image

Description

bool imagick_swirl ( resource image, float degrees )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

degrees

Tightness of the swirling effect

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_spread | Niveau supérieur | imagick_threshold


imagick_threshold

(PECL)

imagick_threshold -- Change the value of individual pixels based on the intensity of each pixel compared to threshold

Description

bool imagick_threshold ( resource image, float threshold )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

threshold

The desired threshold value

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_swirl | Niveau supérieur | imagick_transformrgb


imagick_transformrgb

(PECL)

imagick_transformrgb -- Convert the image from RGB to an alternate colorspace

Description

bool imagick_transformrgb ( resource image, int colorspace )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

colorspace

One of IMAGICK_COLORSPACE_* constants

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_threshold | Niveau supérieur | imagick_transparent


imagick_transparent

(PECL)

imagick_transparent -- Make image transparent

Description

bool imagick_transparent ( resource image, string trans_color )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

trans_color

Name of the transparent color

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_transformrgb | Niveau supérieur | imagick_unsharpmask


imagick_unsharpmask

(PECL)

imagick_unsharpmask -- Sharpen image

Description

bool imagick_unsharpmask ( resource image, float radius, float sigma, float amount, float threshold )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

radius

Radius of the pixel neighborhood not counting the center pixel

sigma

Standard deviation of the Gaussian in pixels

amount

Percentage of the difference between the original and the blur image that is added back into the original

threshold

Threshold in pixels needed to apply the diffence amount

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_transparent | Niveau supérieur | imagick_wave


imagick_wave

(PECL)

imagick_wave -- Creates a ripple effect in the image by shifting the pixels vertically along a sine wave

Description

bool imagick_wave ( resource image, float amplitude, float frequency )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

amplitude

Amplitude of the sine wave

frequency

Wave length of the sine wave

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_unsharpmask | Niveau supérieur | imagick_writeimage


imagick_writeimage

(PECL)

imagick_writeimage -- Write image

Description

bool imagick_writeimage ( resource image, string filename )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

filename

Name of a file to write image to

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_wave | Niveau supérieur | imagick_writeimages


imagick_writeimages

(PECL)

imagick_writeimages -- Write images

Description

bool imagick_writeimages ( resource image, string filename )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

filename

Name of a file to write images to

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_writeimage | Niveau supérieur | imagick_zoom


imagick_zoom

(PECL)

imagick_zoom -- Zoom image using selected filter

Description

bool imagick_zoom ( resource image, int cols, int rows [, string geo_mods] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

image

Image handle

cols

The number of columns in the scaled image

rows

The number of rows in the scaled image

geo_mods

Geometry modificators

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
imagick_writeimages | Niveau supérieur | IMAP


imap_savebody

(no version information, might be only in CVS)

imap_savebody -- Sauvegarde une partie spécifique du corps dans un fichier

Description

bool imap_savebody ( resource imap_stream, mixed file, int msg_number [, string part_number [, int options]] )

Sauvegarde une partie du corps du message spécifié.

Liste de paramètres

imap_stream

Un flux IMPA retourné par la fonction imap_open().

file

Le chemin vers le fichier de sauvegarde, sous la forme d'une chaîne de caractères ou un descripteur de fichier valide retourné par la fonction fopen().

msg_number

Le numéro du message

part_number

Le numéro de la section. C'est une chaîne de caractères d'entiers, délimités par une virgule qui correspondent à l'index dans la liste des sections du corps, tel que prévu par la spécification IMAP4.

options

Un masque qui contient une ou plusieurs des valeurs suivantes :

  • FT_UID - Le numéro msg_number est un UID

  • FT_PEEK - Ne pas définir le drapeau \Seen s'il n'est pas déjà défini

  • FT_INTERNAL - La chaîne de caractères retournée est dans un format interne, qui ne correspondant pas à CRLF.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

imap_fetchbody()

Précédent | Sommaire | Suivant
imap_rfc822_write_address | Niveau supérieur | imap_scanmailbox


ingres_cursor

(PECL)

ingres_cursor -- Récupère le nom du curseur pour une ressource donnée

Description

string ingres_cursor ( [resource link] )

Retourne une chaîne de caractères contenant le nom du curseur actif. Si aucun curseur n'est actif, alors NULL est retourné.

Si une ressource link est passée à la fonction ingres_cursor(), elle retourne le nom du curseur enregistré pour ce lien. Si aucun lien n'est passé alors ingres_cursor() retourne le nom du curseur associé avec le lien par défaut.

Exemple 1. Exemple avec ingres_cursor()

<?php
$link = ingres_connect($database, $user, $password);

ingres_prepare("select * from table", $link);

$cursor_name = ingres_cursor($link);

echo $cursor_name;

?>

Voyez aussi ingres_prepare() et ingres_execute().

Précédent | Sommaire | Suivant
ingres_connect | Niveau supérieur | ingres_errno


ingres_errno

(PECL)

ingres_errno -- Récupère le dernier numéro d'erreur d'ingres généré

Description

int ingres_errno ( [resource link] )

Retourne un entier contenant le dernier numéro d'erreur. Si aucune erreur n'est reportée, 0 est retourné.

Si une ressource link est passée à la fonction ingres_errno(), elle retourne la dernière erreur enregistrée pour ce lien. Si aucun lien n'est passé alors ingres_errno() retourne la dernière erreur en utilisant le lien par défaut.

La fonction, ingres_errno(), devrait toujours être appelée après avoir exécuté toute sorte de requête à la base de données. Un appel d'une autre fonction avant d'appeler ingres_errno() supprimera ou changera le message d'erreur provenant du dernier appel de fonction Ingres.

Exemple 1. Exemple avec ingres_errno()

<?php
$link = ingres_connect($database, $user, $password);

ingres_query("select * from table", $link);

$error_code = ingres_errno($link);

if ( $error_code != 0 ) {
   echo "Une erreur s'est produite - " . $error_code;
}
?>

Voyez aussi ingres_error() et ingres_errsqlstate().

Précédent | Sommaire | Suivant
ingres_cursor | Niveau supérieur | ingres_error


ingres_error

(PECL)

ingres_error -- Récupère un message d'erreur significatif pour la dernière erreur générée

Description

string ingres_error ( [resource link] )

Retourne une chaîne de caractères contenant la dernière erreur ou NULL si aucune erreur ne s'est produite.

Si une ressource link est passée à la fonction ingres_error(), elle retourne la dernière erreur enregistrée pour ce lien. Si aucun lien n'est passé alors ingres_error() retourne la dernière erreur en utilisant le lien par défaut.

La fonction, ingres_error(), devrait toujours être appelée après avoir exécuté toute sorte de requête à la base de données. Un appel d'une autre fonction avant d'appeler ingres_error() supprimera ou changera le message d'erreur provenant du dernier appel de fonction Ingres.

Exemple 1. Exemple avec ingres_error()

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");

$error_text = ingres_error();

if ( is_null($error_text) ) {
   echo "Une erreur s'est produite - " . $error_text;
}
?>

Voyez aussi ingres_errno() et ingres_errsqlstate().

Précédent | Sommaire | Suivant
ingres_errno | Niveau supérieur | ingres_errsqlstate


ingres_errsqlstate

(PECL)

ingres_errsqlstate -- Gets the last SQLSTATE error code generated

Description

string ingres_errsqlstate ( [resource link] )

Retourne une chaîne de caractères contenant le dernier SQLSTATE ou NULL si aucune erreur ne s'est produite.

Si une ressource link est passée à la fonction ingres_errsqlstate(), elle retourne la dernière erreur enregistrée pour ce lien. Si aucun lien n'est passé alors ingres_errsqlstate() retourne la dernière erreur en utilisant le lien par défaut.

La fonction, ingres_errsqlstate(), devrait toujours être appelée après avoir exécuté toute sorte de requête à la base de données. Un appel d'une autre fonction avant d'appeler ingres_errsqlstate() supprimera ou changera le message d'erreur provenant du dernier appel de fonction Ingres.

Exemple 1. Exemple avec ingres_errsqlstate()

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");

$error_sqlstate = ingres_errsqlstate();

if ( is_null($error_sqlstate) ) {
   echo "Une erreur s'est produite - " . $error_sqlstate;
}
?>

Voyez aussi ingres_errno() et ingres_errsqlstate().

Précédent | Sommaire | Suivant
ingres_error | Niveau supérieur | ingres_fetch_array


is_binary

(PHP 5 CVS only)

is_binary -- Finds whether a variable is a native binary string

Description

bool is_binary ( mixed var )

Finds whether the given variable is a native binary string.

Liste de paramètres

var

The variable being evaluated.

Valeurs de retour

Returns TRUE if var is a native binary string, FALSE otherwise.

Voir aussi

is_buffer()
is_string()
is_unicode()

Précédent | Sommaire | Suivant
is_array | Niveau supérieur | is_bool


is_buffer

(PHP 5 CVS only)

is_buffer -- Finds whether a variable is a native unicode or binary string

Description

bool is_buffer ( mixed var )

Finds whether the given variable is a native unicode or binary string.

Liste de paramètres

var

The variable being evaluated.

Valeurs de retour

Returns TRUE if var is a native unicode or binary string, FALSE otherwise.

Voir aussi

is_binary()
is_string()
is_unicode()

Précédent | Sommaire | Suivant
is_bool | Niveau supérieur | is_callable


is_unicode

(PHP 5 CVS only)

is_unicode -- Finds whether a variable is a unicode string

Description

bool is_unicode ( mixed var )

Finds whether the given variable is a unicode string.

Liste de paramètres

var

The variable being evaluated.

Valeurs de retour

Returns TRUE if var is a unicode string, FALSE otherwise.

Voir aussi

is_binary()
is_buffer()
is_string()
unicode_encode()

Précédent | Sommaire | Suivant
is_string | Niveau supérieur | isset


json_decode

(no version information, might be only in CVS)

json_decode -- DÃ©code une chaÃ®ne JSON

Description

mixed json_decode ( string json [, bool assoc] )

RÃ©cupÃ¨re une chaÃ®ne encodÃ©e JSON et la convertie en une variable PHP.

Liste de paramètres

json

La chaÃ®ne json Ã dÃ©coder.

assoc

Lorsque ce paramÃ¨tre vaut TRUE, l'objet retournÃ© sera converti en un tableau associatif.

Valeurs de retour

Retourne un objet ou, si le paramÃ¨tre optionnel assoc vaut TRUE, un tableau associatif.

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

Voir aussi

json_encode()

Précédent | Sommaire | Suivant
Fonctions JSON | Niveau supérieur | json_encode


json_encode

(no version information, might be only in CVS)

json_encode -- Retourne le représentation JSON d'une valeur

Description

string json_encode ( mixed value )

Retourne une chaîne contenant la représentation JSON de la valeur value.

Liste de paramètres

value

La valeur à encoder. Peut être de n'importe quel type, excepté une ressource.

Cette fonction ne fonctionne qu'avec des données encodées UTF-8.

Valeurs de retour

Retourne une chaîne encodé JSON.

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}

Voir aussi

json_decode()

Précédent | Sommaire | Suivant
json_decode | Niveau supérieur | KADM5


kadm5_chpass_principal

(PECL)

kadm5_chpass_principal -- Modifie le mot de passe du principal

Description

bool kadm5_chpass_principal ( resource handle, string principal, string password )

kadm5_chpass_principal() définit un nouveau mot de passe password pour le principal.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple de modification du mot de passe du principal

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

kadm5_chpass_principal($handle, "burbach@GONICUS.LOCAL", "newpassword");

kadm5_destroy($handle);
?>

Précédent | Sommaire | Suivant
KADM5 | Niveau supérieur | kadm5_create_principal


kadm5_create_principal

(PECL)

kadm5_create_principal -- Crée un principal kerberos avec les paramètres donnés

Description

bool kadm5_create_principal ( resource handle, string principal [, string password [, array options]] )

kadm5_create_principal() crée un principal avec le mot de passe password donné. Si password n'est pas spécifié ou s'il vaut NULL, une clé aléatoire sera générée.

Il est possible de spécifier plusieurs paramètres optionnels avec le tableau options. Les options suivantes sont autorisées : KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_KVNO, KADM5_POLICY, KADM5_CLEARPOLICY, KADM5_MAX_RLIFE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple de création d'un principal

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH | KRB5_KDB_DISALLOW_PROXIABLE;
$options = array(KADM5_PRINC_EXPIRE_TIME => 0,
                 KADM5_POLICY => "default",
                 KADM5_ATTRIBUTES => $attributes);

kadm5_create_principal($handle, "burbach@GONICUS.LOCAL", "password", $options);

kadm5_destroy($handle);
?>

Précédent | Sommaire | Suivant
kadm5_chpass_principal | Niveau supérieur | kadm5_delete_principal


kadm5_delete_principal

(PECL)

kadm5_delete_principal -- Efface un principal kerberos

Description

bool kadm5_delete_principal ( resource handle, string principal )

kadm5_delete_principal() efface un principal depuis la base de données Kerberos.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec kadm5_delete_principal()

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

kadm5_delete_principal($handle, "burbach@GONICUS.LOCAL");

kadm5_destroy($handle);
?>

Précédent | Sommaire | Suivant
kadm5_create_principal | Niveau supérieur | kadm5_destroy


kadm5_destroy

(PECL)

kadm5_destroy -- Ferme la connexion avec le serveur d'administration et libère toutes les ressources associées

Description

bool kadm5_destroy ( resource handle )

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
kadm5_delete_principal | Niveau supérieur | kadm5_flush


kadm5_flush

(PECL)

kadm5_flush -- Valide toutes les modifications de la base de données Kerberos, et quitte la connexion ouverte du serveur d'administration Kerberos

Description

bool kadm5_flush ( resource handle )

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
kadm5_destroy | Niveau supérieur | kadm5_get_policies


kadm5_get_policies

(PECL)

kadm5_get_policies -- Récupère toutes les directives depuis la base de données Kerberos

Description

array kadm5_get_policies ( resource handle )

kadm5_get_policies() retourne un tableau contenant tous les noms des directives.

Valeurs de retour

Retourne un tableau de directives en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec kadm5_get_policies()

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_policies</h1>\n";
foreach (kadm5_get_policies($handle) as $policy) {
    echo "$policy<br />\n";
}

kadm5_destroy($handle);
?>

Précédent | Sommaire | Suivant
kadm5_flush | Niveau supérieur | kadm5_get_principal


kadm5_get_principal

(PECL)

kadm5_get_principal -- Récupère les entrées des éléments principaux depuis la base de données Kerberos

Description

array kadm5_get_principal ( resource handle, string principal )

kadm5_get_principal() retourne un tableau associatif contenant les clés suivantes : KADM5_PRINCIPAL, KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_MOD_NAME, KADM5_MOD_TIME, KADM5_KVNO, KADM5_POLICY, KADM5_MAX_RLIFE, KADM5_LAST_SUCCESS, KADM5_LAST_FAILED, KADM5_FAIL_AUTH_COUNT.

Valeurs de retour

Retourne un tableau d'options en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec kadm5_get_principal()

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_principal burbach@GONICUS.LOCAL</h1>\n";

$options = kadm5_get_principal($handle, "burbach@GONICUS.LOCAL" );

foreach ($options as $key => $value) {
    echo "$key: $value<br />\n";
}

kadm5_destroy($handle);
?>

Précédent | Sommaire | Suivant
kadm5_get_policies | Niveau supérieur | kadm5_get_principals


kadm5_get_principals

(PECL)

kadm5_get_principals -- Récupère tous les éléments principaux depuis la base de données Kerberos

Description

array kadm5_get_principals ( resource handle )

kadm5_get_principals() retourne un tableau contenant tous les noms des éléments principaux.

Valeurs de retour

Retourne un tableau d'éléments principaux en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec kadm5_get_principals()

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_principals</h1>\n";
foreach (kadm5_get_principals($handle) as $principal) {
    echo "$principal<br />\n";
}

kadm5_destroy($handle);
?>

Précédent | Sommaire | Suivant
kadm5_get_principal | Niveau supérieur | kadm5_init_with_password


kadm5_init_with_password

(PECL)

kadm5_init_with_password -- Ouvre une connexion à la bibliothèque KADM5 et initialise toutes les informations nécessaires

Description

resource kadm5_init_with_password ( string admin_server, string realm, string principal, string password )

kadm5_init_with_password() ouvre une connexion avec la bibliothèque KADM5 en utilisant le principal et le mot de passe password pour obtenir les créances initiales depuis le serveur d'administration admin_server. Le paramètre realm définie le domaine d'identification pour la connexion.

Valeurs de retour

Retourne un gestionnaire KADM5 en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple d'initialisation KADM5

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH | KRB5_KDB_DISALLOW_PROXIABLE;
$options = array(KADM5_PRINC_EXPIRE_TIME => 0,
                 KADM5_POLICY => "default",
                 KADM5_ATTRIBUTES => $attributes);

kadm5_create_principal($handle, "burbach@GONICUS.LOCAL", "password", $options);

kadm5_destroy($handle);
?>

Notes

Note : La connexion doit être close après l'avoir utilisée avec la fonction kadm5_destroy().

Voir aussi

kadm5_destroy()

Précédent | Sommaire | Suivant
kadm5_get_principals | Niveau supérieur | kadm5_modify_principal


kadm5_modify_principal

(PECL)

kadm5_modify_principal -- Modifie un principal Kerberos avec les paramètres donnés

Description

bool kadm5_modify_principal ( resource handle, string principal, array options )

kadm5_modify_principal() modifie un principal en utilisant les options options. Les constantes suivantes sont autorisées : KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_KVNO, KADM5_POLICY, KADM5_CLEARPOLICY, KADM5_MAX_RLIFE, KADM5_FAIL_AUTH_COUNT.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple de modification d'un principal

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH;
$options = array(KADM5_PRINC_EXPIRE_TIME => 3451234,
KADM5_POLICY => "gonicus",
KADM5_ATTRIBUTES => $attributes);

kadm5_modify_principal($handle, "burbach@GONICUS.LOCAL", $options);

kadm5_destroy($handle);
?>

Précédent | Sommaire | Suivant
kadm5_init_with_password | Niveau supérieur | LDAP


lchgrp

(no version information, might be only in CVS)

lchgrp -- Change l'appartenance du groupe d'un lien symbolique

Description

bool lchgrp ( string filename, mixed group )

Essaie de remplacer le groupe du lien symbolique filename par le groupe group (spécifié par son nom ou son numéro). 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.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voir aussi chgrp(),
lchown()
chown() et
chmod().

Précédent | Sommaire | Suivant
is_writeable | Niveau supérieur | lchown


lchown

(no version information, might be only in CVS)

lchown -- Change l'appartenance du propriétaire d'un lien symbolique

Description

bool lchown ( string filename, mixed user )

Essaie de remplacer le propriétaire du lien symbolique filename par l'utilisateur user (spécifié par son nom ou son numéro). Seul le super-utilisateur peut changer le propriétaire d'un lien symbolique.

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Cette fonction ne fonctionne pas avec les fichiers distants, car le fichier utilisé doit être accessible sur le système de fichiers local.

Note : Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Voyez aussi chown(),
lchgrp(),
chgrp() et
chmod().

Précédent | Sommaire | Suivant
lchgrp | Niveau supérieur | link


locale_get_default

(no version information, might be only in CVS)

locale_get_default -- Get the default Locale

Description

string locale_get_default ( void )

This function returns the default Locale, which is used by PHP to localize certain features. Please note that this isn't influenced by setlocale() or the system settings.

Valeurs de retour

Returns a string with the current Locale.

Exemples

Exemple 1. A locale_get_default() example

<?php

// get the default Locale
echo locale_get_default();

//set a new Locale...
locale_set_default('pt_PT');

// ... and print it
echo locale_get_default();

?>

L'exemple ci-dessus va afficher :

en_US_POSIX
pt_PT

Voir aussi

locale_set_default()

Précédent | Sommaire | Suivant
i18n Fonctions | Niveau supérieur | locale_set_default


locale_set_default

(no version information, might be only in CVS)

locale_set_default -- Set the default Locale

Description

bool locale_set_default ( string name )

Sets the default Locale for PHP programs. Please note that this has nothing to do with setlocale() nor with the system locale.

Liste de paramètres

name

The new Locale name. A comprehensive list of the supported locales is available at http://www-950.ibm.com/software/globalization/icu/demo/locales/en/?d_=en.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. A locale_set_default() example

This example demonstrates a possible usage of locale_set_default() to localize the sort() functions.

<?php

// the list of the strings to sort
$array = array(
    'caramelo',
    'cacto',
    'caçada'
);

// set our locale (Portuguese, in this case)
locale_set_default('pt_PT');

// sort using the locale we previously set
sort($array, SORT_LOCALE_STRING);

print_r($array);
?>

L'exemple ci-dessus va afficher :

Array
(
    [0] => caçada
    [1] => cacto
    [2] => caramelo
)

If we didn't use the locale, PHP would sort the string using the ASCII characters value, thus returning (wrongly):

Array
(
    [0] => cacto
    [1] => caramelo
    [2] => caçada
)

Voir aussi

locale_get_default()

Précédent | Sommaire | Suivant
locale_get_default | Niveau supérieur | Fonctions IBM (PDO_IBM)


m_checkstatus

(PHP 4 >= 4.3.9, PHP 5)

m_checkstatus -- Vérifie si la transaction a été complétée

Description

int m_checkstatus ( resource conn, int identifier )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Précédent | Sommaire | Suivant
Fonctions de paiement MCVE (Monetra) | Niveau supérieur | m_completeauthorizations


m_completeauthorizations

(PHP 4 >= 4.3.9, PHP 5)

m_completeauthorizations -- Nombre d'autorisations complètes en attente, retourne un tableau de leur identifiant

Description

int m_completeauthorizations ( resource conn, int &array )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

array

Précédent | Sommaire | Suivant
m_checkstatus | Niveau supérieur | m_connect


m_connect

(PHP 4 >= 4.3.9, PHP 5)

m_connect -- Établit une connexion à MCVE

Description

int m_connect ( resource conn )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Précédent | Sommaire | Suivant
m_completeauthorizations | Niveau supérieur | m_connectionerror


m_connectionerror

(PHP 4 >= 4.3.9, PHP 5)

m_connectionerror -- Obtient une représentation textuelle de la cause de l'échec de connexion

Description

string m_connectionerror ( resource conn )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Précédent | Sommaire | Suivant
m_connect | Niveau supérieur | m_deletetrans


m_deletetrans

(PHP 4 >= 4.3.9, PHP 5)

m_deletetrans -- Supprime une transaction spécifiée de la structure MCVE_CONN

Description

bool m_deletetrans ( resource conn, int identifier )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Précédent | Sommaire | Suivant
m_connectionerror | Niveau supérieur | m_destroyconn


m_destroyconn

(PHP 4 >= 4.3.9, PHP 5)

m_destroyconn -- Détruit la connexion et la structure MCVE_CONN

Description

bool m_destroyconn ( resource conn )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

m_initconn()

Précédent | Sommaire | Suivant
m_deletetrans | Niveau supérieur | m_destroyengine


m_destroyengine

(PHP 4 >= 4.3.9, PHP 5)

m_destroyengine -- Libère la mémoire associée avec la connectivité IP/SSL

Description

void m_destroyengine ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
m_destroyconn | Niveau supérieur | m_getcell


m_getcell

(PHP 4 >= 4.3.9, PHP 5)

m_getcell -- Récupère une cellule spécifique d'une réponse délimitée par virgule avec le nom de colonne

Description

string m_getcell ( resource conn, int identifier, string column, int row )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

column

row

Précédent | Sommaire | Suivant
m_destroyengine | Niveau supérieur | m_getcellbynum


m_getcellbynum

(PHP 4 >= 4.3.9, PHP 5)

m_getcellbynum -- Récupère une cellule spécifique d'une réponse délimitée par virgule avec le numéro de colonne

Description

string m_getcellbynum ( resource conn, int identifier, int column, int row )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

column

row

Précédent | Sommaire | Suivant
m_getcell | Niveau supérieur | m_getcommadelimited


m_getcommadelimited

(PHP 4 >= 4.3.9, PHP 5)

m_getcommadelimited -- Récupère les données brutes délimitées par virgule retournées par MCVE

Description

string m_getcommadelimited ( resource conn, int identifier )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Précédent | Sommaire | Suivant
m_getcellbynum | Niveau supérieur | m_getheader


m_getheader

(PHP 4 >= 4.3.9, PHP 5)

m_getheader -- Récupère le nom de la colonne dans la réponse délimitée par virgule

Description

string m_getheader ( resource conn, int identifier, int column_num )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

column_num

Précédent | Sommaire | Suivant
m_getcommadelimited | Niveau supérieur | m_initconn


m_initconn

(PHP 4 >= 4.3.9, PHP 5)

m_initconn -- Crée et initialise une structure MCVE_CONN

Description

resource m_initconn ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Retourne une ressource MCVE_CONN.

Voir aussi

m_destroyconn()

Précédent | Sommaire | Suivant
m_getheader | Niveau supérieur | m_initengine


m_initengine

(PHP 4 >= 4.3.9, PHP 5)

m_initengine -- Apprête le client pour Communication IP/SSL

Description

int m_initengine ( string location )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

location

Valeurs de retour

Précédent | Sommaire | Suivant
m_initconn | Niveau supérieur | m_iscommadelimited


m_iscommadelimited

(PHP 4 >= 4.3.9, PHP 5)

m_iscommadelimited -- Vérifie si la réponse est délimitée par virgule

Description

int m_iscommadelimited ( resource conn, int identifier )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Précédent | Sommaire | Suivant
m_initengine | Niveau supérieur | m_maxconntimeout


m_maxconntimeout

(PHP 4 >= 4.3.9, PHP 5)

m_maxconntimeout -- Le temps maximal que l'API tentera une connexion à MCVE

Description

bool m_maxconntimeout ( resource conn, int secs )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

secs

Précédent | Sommaire | Suivant
m_iscommadelimited | Niveau supérieur | m_monitor


m_monitor

(PHP 4 >= 4.3.9, PHP 5)

m_monitor -- Effectue une communication avec MCVE (envoi/réception de données) en mode non-bloquant

Description

int m_monitor ( resource conn )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Précédent | Sommaire | Suivant
m_maxconntimeout | Niveau supérieur | m_numcolumns


m_numcolumns

(PHP 4 >= 4.3.9, PHP 5)

m_numcolumns -- Nombre de colonnes retournées dans une réponse délimitée par virgule

Description

int m_numcolumns ( resource conn, int identifier )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Précédent | Sommaire | Suivant
m_monitor | Niveau supérieur | m_numrows


m_numrows

(PHP 4 >= 4.3.9, PHP 5)

m_numrows -- Nombre de lignes retournés dans une réponse délimitée par virgule

Description

int m_numrows ( resource conn, int identifier )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Précédent | Sommaire | Suivant
m_numcolumns | Niveau supérieur | m_parsecommadelimited


m_parsecommadelimited

(PHP 4 >= 4.3.9, PHP 5)

m_parsecommadelimited -- Analyse la réponse délimitée par virgule alors m_getcell, etc. fonctionnera

Description

int m_parsecommadelimited ( resource conn, int identifier )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Précédent | Sommaire | Suivant
m_numrows | Niveau supérieur | m_responsekeys


m_responsekeys

(PHP 5 >= 5.1.0RC1)

m_responsekeys -- Retourne un tableau de chaînes de caractères qui représente les clés qui peuvent être utilisées en tant que paramètres de réponse sur cette transaction

Description

array m_responsekeys ( resource conn, int identifier )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Précédent | Sommaire | Suivant
m_parsecommadelimited | Niveau supérieur | m_responseparam


m_responseparam

(PHP 4 >= 4.3.9, PHP 5)

m_responseparam -- Récupère un paramètre spécial de réponse

Description

string m_responseparam ( resource conn, int identifier, string key )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

key

Précédent | Sommaire | Suivant
m_responsekeys | Niveau supérieur | m_returnstatus


m_returnstatus

(PHP 4 >= 4.3.9, PHP 5)

m_returnstatus -- Vérifie si la transaction fut complétée correctement

Description

int m_returnstatus ( resource conn, int identifier )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Précédent | Sommaire | Suivant
m_responseparam | Niveau supérieur | m_setblocking


m_setblocking

(PHP 4 >= 4.3.9, PHP 5)

m_setblocking -- Fixe le mode bloquant/non-bloquant pour une connexion

Description

int m_setblocking ( resource conn, int tf )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

tf

Précédent | Sommaire | Suivant
m_returnstatus | Niveau supérieur | m_setdropfile


m_setdropfile

(PHP 4 >= 4.3.9, PHP 5)

m_setdropfile -- Fixe la méthode de connexion à Drop-File

Description

int m_setdropfile ( resource conn, string directory )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

directory

Précédent | Sommaire | Suivant
m_setblocking | Niveau supérieur | m_setip


m_setip

(PHP 4 >= 4.3.9, PHP 5)

m_setip -- Fixe la méthode de connexion à IP

Description

int m_setip ( resource conn, string host, int port )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

host

port

Précédent | Sommaire | Suivant
m_setdropfile | Niveau supérieur | m_setssl_cafile


m_setssl

(PHP 4 >= 4.3.9, PHP 5)

m_setssl -- Fixe la méthode de connexion à SSL

Description

int m_setssl ( resource conn, string host, int port )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

host

port

Précédent | Sommaire | Suivant
m_setssl_files | Niveau supérieur | m_settimeout


m_setssl_cafile

(PHP 5 >= 5.1.0RC1)

m_setssl_cafile -- Fixe le fichier SSL CA (Certificate Authority) pour vérification du certificat du serveur

Description

int m_setssl_cafile ( resource conn, string cafile )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

cafile

Précédent | Sommaire | Suivant
m_setip | Niveau supérieur | m_setssl_files


m_setssl_files

(PHP 4 >= 4.3.9, PHP 5)

m_setssl_files -- Fixe les fichiers de clé de certificat et certifie si le serveur requiert la vérification du client par certificat

Description

int m_setssl_files ( resource conn, string sslkeyfile, string sslcertfile )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

sslkeyfile

sslcertfile

Précédent | Sommaire | Suivant
m_setssl_cafile | Niveau supérieur | m_setssl


m_settimeout

(PHP 4 >= 4.3.9, PHP 5)

m_settimeout -- Fixe le temps maximal d'une transaction (par transaction)

Description

int m_settimeout ( resource conn, int seconds )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

seconds

Précédent | Sommaire | Suivant
m_setssl | Niveau supérieur | m_sslcert_gen_hash


m_sslcert_gen_hash

(no version information, might be only in CVS)

m_sslcert_gen_hash -- Génère une clé de hachage pour les vérifications de certificat de client SSL

Description

string m_sslcert_gen_hash ( string filename )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

filename

Précédent | Sommaire | Suivant
m_settimeout | Niveau supérieur | m_transactionssent


m_transactionssent

(PHP 4 >= 4.3.9, PHP 5)

m_transactionssent -- Vérifie si le tampon de sortie est vide

Description

int m_transactionssent ( resource conn )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Précédent | Sommaire | Suivant
m_sslcert_gen_hash | Niveau supérieur | m_transinqueue


m_transinqueue

(PHP 4 >= 4.3.9, PHP 5)

m_transinqueue -- Nombre de transactions dans la file de client

Description

int m_transinqueue ( resource conn )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Précédent | Sommaire | Suivant
m_transactionssent | Niveau supérieur | m_transkeyval


m_transkeyval

(PHP 5 >= 5.1.0RC1)

m_transkeyval -- Ajoute une paire clé/valeur d'une transaction. Replace transparam() dépréciée

Description

int m_transkeyval ( resource conn, int identifier, string key, string value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

key

value

Précédent | Sommaire | Suivant
m_transinqueue | Niveau supérieur | m_transnew


m_transnew

(PHP 4 >= 4.3.9, PHP 5)

m_transnew -- Démarre une nouvelle transaction

Description

int m_transnew ( resource conn )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

Précédent | Sommaire | Suivant
m_transkeyval | Niveau supérieur | m_transsend


m_transsend

(PHP 4 >= 4.3.9, PHP 5)

m_transsend -- Finalise et envoie la transaction

Description

int m_transsend ( resource conn, int identifier )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

identifier

Précédent | Sommaire | Suivant
m_transnew | Niveau supérieur | m_uwait


m_uwait

(PHP 4 >= 4.3.9, PHP 5)

m_uwait -- Attend x micro secondes

Description

int m_uwait ( int microsecs )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

microsecs

Précédent | Sommaire | Suivant
m_transsend | Niveau supérieur | m_validateidentifier


m_validateidentifier

(PHP 5 >= 5.1.0RC1)

m_validateidentifier -- Valide ou non l'identifiant passé sur n'importe quelle transaction qu'il est passé

Description

int m_validateidentifier ( resource conn, int tf )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

tf

Précédent | Sommaire | Suivant
m_uwait | Niveau supérieur | m_verifyconnection


m_verifyconnection

(PHP 4 >= 4.3.9, PHP 5)

m_verifyconnection -- Ping ou non sur la connexion pour la vérifier

Description

bool m_verifyconnection ( resource conn, int tf )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

tf

Précédent | Sommaire | Suivant
m_validateidentifier | Niveau supérieur | m_verifysslcert


m_verifysslcert

(PHP 4 >= 4.3.9, PHP 5)

m_verifysslcert -- Vérifie ou non le certificat du serveur SSL

Description

bool m_verifysslcert ( resource conn, int tf )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

conn

Une ressource MCVE_CONN retournée par la fonction m_initengine().

tf

Précédent | Sommaire | Suivant
m_verifyconnection | Niveau supérieur | Fonctions Memcache


mailparse_msg_extract_whole_part_file

(PECL)

mailparse_msg_extract_whole_part_file -- Extracts a message section including headers without decoding the transfer encoding

Description

string mailparse_msg_extract_whole_part_file ( resource mimemail, string filename [, callback callbackfunc] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

mimemail

A valid MIME resource.

filename

callbackfunc

Valeurs de retour

Voir aussi

mailparse_msg_extract_part()
mailparse_msg_extract_part_file()

Précédent | Sommaire | Suivant
mailparse_msg_extract_part | Niveau supérieur | mailparse_msg_free


mb_check_encoding

(no version information, might be only in CVS)

mb_check_encoding -- Vérifie si une chaîne est valide pour un encodage spécifique

Description

bool mb_check_encoding ( [string var [, string encoding]] )

mb_check_encoding() vérifie si la chaîne est valide pour un encodage spécifique. C'est utile pour prévenir les attaques par encodage invalide.

Liste de paramètres

var

Chaîne à vérifier. Si elle est omise, cette fonction vérifie toutes les entrées depuis le début de la requète.

encoding

Encodage attendu.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
Chaînes de caractères multi-octets | Niveau supérieur | mb_convert_case


mb_list_encodings_alias_names

(no version information, might be only in CVS)

mb_list_encodings_alias_names -- Returns an array of all supported alias encodings

Description

array mb_list_encodings_alias_names ( [string encoding] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mb_language | Niveau supérieur | mb_list_encodings


mb_list_mime_names

(no version information, might be only in CVS)

mb_list_mime_names -- Returns an array or string of all supported mime names

Description

mixed mb_list_mime_names ( [string encoding] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mb_list_encodings | Niveau supérieur | mb_output_handler


mb_stripos

(no version information, might be only in CVS)

mb_stripos -- Trouve la première occurence d'une chaîne dans une autre, sans tenir compte de la casse

Description

int mb_stripos ( string haystack, string needle [, int offset [, string encoding]] )

mb_stripos() retourne la position numérique de la première occurence 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 occurence de needle

needle

La chaîne à chercher dans haystack

offset

La position dans haystack où l'on doit commencer à chercher

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne est utilisé.

Valeurs de retour

Retourne la position numérique de la première occurence de needle dans la chaîne haystack ou FALSE si needle n'est pas trouvé.

Voir aussi

stripos()
strpos()
mb_strpos()

Précédent | Sommaire | Suivant
mb_strimwidth | Niveau supérieur | mb_stristr


mb_stristr

(no version information, might be only in CVS)

mb_stristr -- Trouve la première occurece d'une chaîne dans une autre, sans tenir compte de la casse

Description

string mb_stristr ( string haystack, string needle [, bool part [, string encoding]] )

mb_stristr() trouve la première occurence 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 occurence de needle

needle

La chaîne à chercher dans haystack

part

Détermine quelle portion de haystack cette fonction retourne. Si défini à TRUE, la fonction retournera toute la chaîne haystack depuis le début jusqu'à la première occurence de needle. Si défini à FALSE, la fonction retournera toute la chaîne haystack depuis la première occurence de needle jusqu'à la fin. Par défaut, ce paramètre vaut FALSE.

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne est utilisé.

Valeurs de retour

Retourne la portion de haystack, ou FALSE si needle n'est pas trouvé.

Voir aussi

stristr()
strstr()
mb_strstr()

Précédent | Sommaire | Suivant
mb_stripos | Niveau supérieur | mb_strlen


mb_strrchr

(no version information, might be only in CVS)

mb_strrchr -- Trouve la dernière occurence d'un caractère d'une chaîne dans une autre

Description

string mb_strrchr ( string haystack, string needle [, bool part [, string encoding]] )

mb_strrchr() trouve la dernière occurence 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 occurence de needle

needle

La chaîne à trouver dans haystack

part

Détermine quelle portion de haystack cette fonction retourne. Si défini à TRUE, la fonction retourne toute la chaîne haystack depuis le début jusqu'à la dernière occurence de needle. Si défini à FALSE, la fonction retourne toute la chaîne haystack depuis la dernière occurence de needle jusqu'à la fin, Par défaut, ce paramètre vaut FALSE.

encoding

Nom de l'encodage à utiliser.Si ce paramètre est omis, l'encodage interne sera utilisé.

Valeurs de retour

Retourne la portion de haystack. ou FALSE si needle n'est pas trouvé.

Voir aussi

strrchr()
mb_strstr()
mb_strrichr()

Précédent | Sommaire | Suivant
mb_strpos | Niveau supérieur | mb_strrichr


mb_strrichr

(no version information, might be only in CVS)

mb_strrichr -- Trouve la dernière occurence d'un caractère d'une chaîne dans une autre, insensible à la casse

Description

string mb_strrichr ( string haystack, string needle [, bool part [, string encoding]] )

mb_strrichr() trouve la dernière occurence 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 occurence de needle

needle

La chaîne à chercher dans haystack

part

Détermine quelle portion de haystack cette fonction retourne. Si défini à TRUE, la fonction retourne toute la chaîne haystack depuis le début jusqu'à la dernière occurence de needle. Si défini à FALSE, la fonction retourne toute la chaîne haystack depuis la dernière occurence de needle jusqu'à la fin, Par défaut, ce paramètre vaut FALSE.

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne sera utilisé.

Valeurs de retour

Retourne la portion de haystack. ou FALSE si needle n'est pas trouvé.

Voir aussi

mb_stristr()
mb_strrchr()

Précédent | Sommaire | Suivant
mb_strrchr | Niveau supérieur | mb_strripos


mb_strripos

(no version information, might be only in CVS)

mb_strripos -- Trouve la position de la dernière occurence d'une chaîne dans une autre, en tenant compte de la casse

Description

int mb_strripos ( string haystack, string needle [, int offset [, string encoding]] )

mb_strripos() effectue une opération strripos() basée sur le nombre de caractères. La position needle est comptée depuis le début de haystack. La poition du premier caractère est 0. Le second a comme position 1, etc.. Contrairement à mb_strrpos(), mb_strripos() est sensible à la casse.

Liste de paramètres

haystack

La chaîne depuis laquelle on récupère la position de la dernière occurence 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 occurence de needle dans la chaîne haystack, ou FALSE si needle n'est pas trouvé.

Voir aussi

strripos()
strrpos()
mb_strrpos()

Précédent | Sommaire | Suivant
mb_strrichr | Niveau supérieur | mb_strrpos


mb_strstr

(no version information, might be only in CVS)

mb_strstr -- Trouve la première occurence d'une chaîne dans une autre

Description

string mb_strstr ( string haystack, string needle [, bool part [, string encoding]] )

mb_strstr() trouve la première occurence de needle dans haystack et retourne la portionde 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 occurence de needle

needle

La chaîne à chercher dans haystack

part

Détermine quelle portion de haystack cette fonction retourne. Si défini à TRUE, la fonction retournera toute la chaîne haystack depuis le début jusqu'à la première occurence de needle. Si défini à FALSE, la fonction retounera toute la chaîne haystack depuis la première occurence de needle jusqu'à la fin. Par défaut, ce paramètre vaut FALSE.

encoding

Nom de l'encodage à utiliser. Si ce paramètre est omis, l'encodage interne est utilisé.

Valeurs de retour

Retourne la portion de haystack, ou FALSE si needle n'est pas trouvé.

Voir aussi

stristr()
strstr()
mb_stristr()

Précédent | Sommaire | Suivant
mb_strrpos | Niveau supérieur | mb_strtolower


Memcache::addServer

(no version information, might be only in CVS)

Memcache::addServer -- Ajoute un serveur memcache à la liste de connexion

Description

bool Memcache::addServer ( string host [, int port [, bool persistent [, int weight [, int timeout [, int retry_interval [, bool status [, callback failure_callback]]]]]]] )

Memcache::addServer() ajoute un serveur à la liste de connexion. La connexion, qui a été ouverte avec la fonction Memcache::addServer(), sera automatiquement fermée à la fin de l'exécution du script ; vous pouvez également la fermer manuellement avec la fonction Memcache::close(). Vous pouvez également utiliser la fonction memcache_add_server().

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égniant à 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.

port

Pointe au port où memcache écoute pour des connexions. Ce paramètre est optionnel et sa valeur par défaut est 11211.

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 daemon. 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 retenté, 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 interval 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 flaggué comme étant en ligne. Si ce paramètre vaut FALSE et le paramètre retry_interval -1, cela permet de conserver un serveur qui a échoué dans la liste et n'affectera pas l'algorythme 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 callback permettant de contourner une erreur. Le callback est exécuté 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, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec Memcache::addServer()

<?php

/* API orientée objet */

$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
$memcache->addServer('memcache_host2', 11211);

/* API procédurale */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_add_server($memcache_obj, 'memcache_host2', 11211);

?>

Voir aussi

Memcache::connect()
Memcache::pconnect()
Memcache::close()
Memcache::setServerParams()
Memcache::getServerStatus()

Précédent | Sommaire | Suivant
Memcache::add | Niveau supérieur | Memcache::close


Memcache::getExtendedStats

(no version information, might be only in CVS)

Memcache::getExtendedStats -- Récupère des statistiques de tous les serveurs dans la liste

Description

array Memcache::getExtendedStats ( [string type [, int slabid [, int limit]]] )

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ébogage.

limit

Utilisé avec le paramètre type définit à cachedump pour limiter le nombre d'entrées à récupérer. La valeur par défaut vaut 100.

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()
Memcache::getStats()

Précédent | Sommaire | Suivant
Memcache::get | Niveau supérieur | Memcache::getServerStatus


Memcache::getServerStatus

(no version information, might be only in CVS)

Memcache::getServerStatus -- Retourne le statut du serveur

Description

int Memcache::getServerStatus ( string host [, int port] )

Memcache::getServerStatus() retourne le staut 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. Ce paramÃ¨tre est optionnel et sa valeur par dÃ©faut est 11211.

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()
Memcache::setServerParams()

Précédent | Sommaire | Suivant
Memcache::getExtendedStats | Niveau supérieur | Memcache::getStats


Memcache::setCompressThreshold

(no version information, might be only in CVS)

Memcache::setCompressThreshold -- Active la compression automatique des valeurs larges

Description

bool Memcache::setCompressThreshold ( int threshold [, float min_savings] )

Memcache::setCompressThreshold() active la compression automatique des valeurs larges. Vous pouvez également utiliser la fonction memcache_set_compress_threshold().

Note : Cette fonction a été ajoutée à la version de Memcache 2.0.0.

Liste de paramètres

threshold

Contrôle la taille de la valeur minimale avant d'essayer de compresser automatiquement.

min_saving

Spécifie le nombre minimum de sauvegarde pour enregistrer les valeurs compressées. La valeur fournie doit être comprise entre 0 et 1. La valeur par défaut est 0.2, ce qui donne un minimum de 20% de sauvegarde de compression.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

?>

Précédent | Sommaire | Suivant
Memcache::set | Niveau supérieur | Memcache::setServerParams


Memcache::setServerParams

(no version information, might be only in CVS)

Memcache::setServerParams -- Modifit les paramètres et les statuts du serveur pendant l'exécution

Description

bool Memcache::setServerParams ( string host [, int port [, int timeout [, int retry_interval [, bool status [, callback failure_callback]]]]] )

Memcache::setServerParams() modifit 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

Pointe à l'hôte où memcache écoute pour des connexions.

port

Pointe au port où memcache écoute pour des connexions. Ce paramètre est optionnel et sa valeur par défaut est 11211.

timeout

Valeur en seconde qui sera utilisée pour se connecter au daemon. 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 retenté, 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 flaggué comme étant en ligne. Si ce paramètre vaut FALSE et le paramètre retry_interval -1, cela permet de conserver un serveur qui a échoué dans la liste et n'affectera pas l'algorythme 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 callback permettant de contourner une erreur. Le callback est exécuté 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, FALSE en cas d'échec.

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()
Memcache::getServerStatus()

Précédent | Sommaire | Suivant
Memcache::setCompressThreshold | Niveau supérieur | Hash


memory_get_peak_usage

(no version information, might be only in CVS)

memory_get_peak_usage -- Retourne la quantité de mémoire allouée par PHP

Description

int memory_get_peak_usage ( [bool real_usage] )

Retourne la quantité de mémoires, en octets, qui peut être allouée à votre script PHP.

Liste de paramètres

real_usage

Définire à 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éfinit ou vaut FALSE, seule la mémoire utilisée par emalloc() sera retournée.

Valeurs de retour

Retourne la quantité de mémoire, en octets.

Historique

Version | Description
5.2.1 | La compilation avec l'option de configuration --enable-memory-limit n'est plus nécessaire pour que cette fonction existe.
5.2.0 | Le paramètre real_usage a été ajouté.

Voir aussi

memory_get_usage()
memory_limit

Précédent | Sommaire | Suivant
main | Niveau supérieur | memory_get_usage


ming_keypress

(PHP 5)

ming_keypress -- Retourne le drapeau d'action pour keyPress(char)

Description

int ming_keypress ( string char )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SWFVideoStream->setDimension() | Niveau supérieur | ming_setcubicthreshold


ming_setswfcompression

(no version information, might be only in CVS)

ming_setswfcompression -- Sets the SWF output compression

Description

void ming_setswfcompression ( int level )

Sets the SWF output compression level.

Liste de paramètres

level

The new compression level. Should be a value between 1 and 9 inclusive.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
ming_setscale | Niveau supérieur | ming_useconstants


ming_useconstants

(PHP 5)

ming_useconstants -- Use constant pool

Description

void ming_useconstants ( int use )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
ming_setswfcompression | Niveau supérieur | ming_useswfversion


mysqli_embedded_server_end

(PHP 5 >= 5.1.0RC1)

mysqli_embedded_server_end --

Description

void mysqli_embedded_server_end ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_dump_debug_info | Niveau supérieur | mysqli_embedded_server_start


mysqli_embedded_server_start

(PHP 5 >= 5.1.0RC1)

mysqli_embedded_server_start --

Description

bool mysqli_embedded_server_start ( bool start, array arguments, array groups )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_embedded_server_end | Niveau supérieur | mysqli_enable_reads_from_master


mysqli_get_charset

(PHP 5 >= 5.1.0RC1)

mysqli_get_charset -- Retourne un objet contenant le jeu de caractères

Description

object mysqli_get_charset ( mysqli link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_free_result | Niveau supérieur | mysqli_get_client_info


mysqli_get_warnings

(PHP 5 >= 5.1.0RC1)

mysqli_get_warnings --

Description

object mysqli_get_warnings ( mysqli link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_get_server_version | Niveau supérieur | mysqli_info


mysqli_set_charset

(PHP 5 >= 5.1.0RC1)

mysqli_set_charset

(no version information, might be only in CVS)

mysqli->set_charset -- Définit le jeu de caractères par défaut du client

Description

Style procédural

bool mysqli_set_charset ( mysqli link, string charset )

Style orienté objet (méthode)

class mysqli {

bool set_charset ( string charset )

}

Définit le jeu de caractères par défaut à utiliser lors de l'envoi de données depuis et vers le serveur de base de données.

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

charset

Le jeu de caractères à définir.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Notes

Note : Pour utilier 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). Elle peut être téléchargée sur http://dev.mysql.com/downloads/connector/php/.

Exemples

Exemple 1. Style orienté objet

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Modification du jeu de résultats en utf8 */
if (!$mysqli->set_charset("utf8")) {
    printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $mysqli->error);
} else {
    printf("Jeu de caractères courant : %s\n", $mysqli->character_set_name());
}

$mysqli->close();
?>

Exemple 2. Style procédural

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');

/* Vérification de la connexion */
if (mysqli_connect_errno()) {
    printf("Échec de la connexion : %s\n", mysqli_connect_error());
    exit();
}

/* Modification du jeu de résultats en utf8 */
if (!mysqli_set_charset($link, "utf8")) {
    printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", mysqli_error($link));
} else {
    printf("Jeu de caractères courant : %s\n", mysqli_character_set_name($link));
}

mysqli_close($link);
?>

L'exemple ci-dessus va afficher :

Jeu de caractères courant : utf8

Voir aussi

mysqli_character_set_name()
mysqli_real_escape_string()

Précédent | Sommaire | Suivant
mysqli_server_init | Niveau supérieur | mysqli_set_local_infile_default


mysqli_set_local_infile_default

(PHP 5)

mysqli_set_local_infile_default -- Rétablit le gestionnaire par défaut pour la commande LOAD LOCAL INFILE

Description

void mysqli_set_local_infile_default ( mysqli link )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_set_charset | Niveau supérieur | mysqli_set_local_infile_handler


mysqli_set_local_infile_handler

(PHP 5)

mysqli_set_local_infile_handler -- Définit une fonction de callback pour la commande LOAD DATA LOCAL INFILE

Description

bool mysqli_set_local_infile_handler ( mysqli link, callback read_func )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_set_local_infile_default | Niveau supérieur | mysqli_set_opt


mysqli_slave_query

(PHP 5)

mysqli_slave_query -- Force l'exécution de la requête sur un serveur esclave pour une configuration maître/esclave

Description

bool mysqli_slave_query ( mysqli link, string query )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_set_opt | Niveau supérieur | mysqli_sqlstate


mysqli_stmt_attr_get

(PHP 5)

mysqli_stmt_attr_get --

Description

int mysqli_stmt_attr_get ( mysqli_stmt stmt, int attr )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_stmt_affected_rows | Niveau supérieur | mysqli_stmt_attr_set


mysqli_stmt_attr_set

(PHP 5)

mysqli_stmt_attr_set --

Description

int mysqli_stmt_attr_set ( mysqli_stmt stmt, int attr, int mode )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_stmt_attr_get | Niveau supérieur | mysqli_stmt_bind_param


mysqli_stmt_field_count

(PHP 5)

mysqli_stmt_field_count -- Retourne le nombre de champs présent dans la requête donnée

Description

int mysqli_stmt_field_count ( mysqli_stmt stmt )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_stmt_fetch | Niveau supérieur | mysqli_stmt_free_result


mysqli_stmt_get_warnings

(PHP 5 >= 5.1.0RC1)

mysqli_stmt_get_warnings --

Description

object mysqli_stmt_get_warnings ( mysqli_stmt stmt )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_stmt_free_result | Niveau supérieur | mysqli_stmt_init


mysqli_stmt_insert_id

(PHP 5)

mysqli_stmt_insert_id -- Récupère l'ID généré par la dernière requête INSERT

Description

mixed mysqli_stmt_insert_id ( mysqli_stmt stmt )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
mysqli_stmt_init | Niveau supérieur | mysqli_stmt_num_rows


newt_bell

(PECL)

newt_bell -- Envoie un beep au terminal

Description

void newt_bell ( void )

Cette fonction envoie un beep au terminal.

Note : Dépendemment des configurations du terminal, le beep peut être ou ne peut être audible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
Fonctions Newt | Niveau supérieur | newt_button_bar


newt_button

(PECL)

newt_button -- Crée un nouveau bouton

Description

resource newt_button ( int left, int top, string text )

Crée un nouveau bouton.

Liste de paramètres

left

Coordonnée X du bouton.

top

Coordonnée Y du bouton.

text

Le texte qui devrait apparaître dans le bouton.

Valeurs de retour

Retourne une ressource du composant bouton créé ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec newt_button()

<?php

$form = newt_form();

$ok_button = newt_button(5, 12, "Run Tool");

newt_form_add_component($form, $ok_button);

?>

Voir aussi

newt_button_bar()

Précédent | Sommaire | Suivant
newt_button_bar | Niveau supérieur | newt_centered_window


newt_button_bar

(PECL)

newt_button_bar --

Description

resource newt_button_bar ( array &buttons )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_bell | Niveau supérieur | newt_button


newt_centered_window

(PECL)

newt_centered_window -- Ouvre une fenêtre centrée de la taille spécifiée

Description

int newt_centered_window ( int width, int height [, string title] )

Ouvre une fenêtre centrée de la taille spécifiée.

Liste de paramètres

width

Largeur de la fenêtre

height

Hauteur de la fenêtre

title

Titre de la fenêtre

Valeurs de retour

Valeur non définie.

Voir aussi

newt_pop_window()
newt_open_window()

Précédent | Sommaire | Suivant
newt_button | Niveau supérieur | newt_checkbox_get_value


newt_checkbox

(PECL)

newt_checkbox --

Description

resource newt_checkbox ( int left, int top, string text, string def_value [, string seq] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_checkbox_tree | Niveau supérieur | newt_clear_key_buffer


newt_checkbox_get_value

(PECL)

newt_checkbox_get_value --

Description

string newt_checkbox_get_value ( resource checkbox )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_centered_window | Niveau supérieur | newt_checkbox_set_flags


newt_checkbox_set_flags

(PECL)

newt_checkbox_set_flags --

Description

void newt_checkbox_set_flags ( resource checkbox, int flags, int sense )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_checkbox_get_value | Niveau supérieur | newt_checkbox_set_value


newt_checkbox_set_value

(PECL)

newt_checkbox_set_value --

Description

void newt_checkbox_set_value ( resource checkbox, string value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_checkbox_set_flags | Niveau supérieur | newt_checkbox_tree_add_item


newt_checkbox_tree

(PECL)

newt_checkbox_tree --

Description

resource newt_checkbox_tree ( int left, int top, int height [, int flags] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_checkbox_tree_set_width | Niveau supérieur | newt_checkbox


newt_checkbox_tree_add_item

(PECL)

newt_checkbox_tree_add_item -- *

Description

void newt_checkbox_tree_add_item ( resource checkboxtree, string text, mixed data, int flags, int index [, int ...] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_checkbox_set_value | Niveau supérieur | newt_checkbox_tree_find_item


newt_checkbox_tree_find_item

(PECL)

newt_checkbox_tree_find_item --

Description

array newt_checkbox_tree_find_item ( resource checkboxtree, mixed data )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_checkbox_tree_add_item | Niveau supérieur | newt_checkbox_tree_get_current


newt_checkbox_tree_get_current

(PECL)

newt_checkbox_tree_get_current --

Description

mixed newt_checkbox_tree_get_current ( resource checkboxtree )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_checkbox_tree_find_item | Niveau supérieur | newt_checkbox_tree_get_entry_value


newt_checkbox_tree_get_entry_value

(PECL)

newt_checkbox_tree_get_entry_value --

Description

string newt_checkbox_tree_get_entry_value ( resource checkboxtree, mixed data )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_checkbox_tree_get_current | Niveau supérieur | newt_checkbox_tree_get_multi_selection


newt_checkbox_tree_get_multi_selection

(PECL)

newt_checkbox_tree_get_multi_selection --

Description

array newt_checkbox_tree_get_multi_selection ( resource checkboxtree, string seqnum )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_checkbox_tree_get_entry_value | Niveau supérieur | newt_checkbox_tree_get_selection


newt_checkbox_tree_get_selection

(PECL)

newt_checkbox_tree_get_selection --

Description

array newt_checkbox_tree_get_selection ( resource checkboxtree )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_checkbox_tree_get_multi_selection | Niveau supérieur | newt_checkbox_tree_multi


newt_checkbox_tree_multi

(PECL)

newt_checkbox_tree_multi --

Description

resource newt_checkbox_tree_multi ( int left, int top, int height, string seq [, int flags] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_checkbox_tree_get_selection | Niveau supérieur | newt_checkbox_tree_set_current


newt_checkbox_tree_set_current

(PECL)

newt_checkbox_tree_set_current --

Description

void newt_checkbox_tree_set_current ( resource checkboxtree, mixed data )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_checkbox_tree_multi | Niveau supérieur | newt_checkbox_tree_set_entry_value


newt_checkbox_tree_set_entry

(PECL)

newt_checkbox_tree_set_entry --

Description

void newt_checkbox_tree_set_entry ( resource checkboxtree, mixed data, string text )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_checkbox_tree_set_entry_value | Niveau supérieur | newt_checkbox_tree_set_width


newt_checkbox_tree_set_entry_value

(PECL)

newt_checkbox_tree_set_entry_value --

Description

void newt_checkbox_tree_set_entry_value ( resource checkboxtree, mixed data, string value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_checkbox_tree_set_current | Niveau supérieur | newt_checkbox_tree_set_entry


newt_checkbox_tree_set_width

(PECL)

newt_checkbox_tree_set_width --

Description

void newt_checkbox_tree_set_width ( resource checkbox_tree, int width )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_checkbox_tree_set_entry | Niveau supérieur | newt_checkbox_tree


newt_clear_key_buffer

(PECL)

newt_clear_key_buffer -- Jette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle

Description

void newt_clear_key_buffer ( void )

Jette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

newt_wait_for_key()

Précédent | Sommaire | Suivant
newt_checkbox | Niveau supérieur | newt_cls


newt_cls

(PECL)

newt_cls --

Description

void newt_cls ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_clear_key_buffer | Niveau supérieur | newt_compact_button


newt_compact_button

(PECL)

newt_compact_button --

Description

resource newt_compact_button ( int left, int top, string text )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_cls | Niveau supérieur | newt_component_add_callback


newt_component_add_callback

(PECL)

newt_component_add_callback --

Description

void newt_component_add_callback ( resource component, mixed func_name, mixed data )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_compact_button | Niveau supérieur | newt_component_takes_focus


newt_component_takes_focus

(PECL)

newt_component_takes_focus --

Description

void newt_component_takes_focus ( resource component, bool takes_focus )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_component_add_callback | Niveau supérieur | newt_create_grid


newt_create_grid

(PECL)

newt_create_grid --

Description

resource newt_create_grid ( int cols, int rows )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_component_takes_focus | Niveau supérieur | newt_cursor_off


newt_cursor_off

(PECL)

newt_cursor_off --

Description

void newt_cursor_off ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_create_grid | Niveau supérieur | newt_cursor_on


newt_cursor_on

(PECL)

newt_cursor_on --

Description

void newt_cursor_on ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_cursor_off | Niveau supérieur | newt_delay


newt_delay

(PECL)

newt_delay --

Description

void newt_delay ( int microseconds )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_cursor_on | Niveau supérieur | newt_draw_form


newt_draw_form

(PECL)

newt_draw_form --

Description

void newt_draw_form ( resource form )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_delay | Niveau supérieur | newt_draw_root_text


newt_draw_root_text

(PECL)

newt_draw_root_text -- Affiche la chaîne de caractères à la position indiquée

Description

void newt_draw_root_text ( int left, int top, string text )

Affiche la chaîne de caractères à la position indiquée.

Liste de paramètres

left

Numéro de colonne

Note : Si left est négatif, la position est mesurée à partir du côté opposé de l'écran.

top

Numéro de ligne

Note : Si top est négatif, la position est mesurée à partir du côté opposé de l'écran.

text

Texte à afficher.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Exemple avec newt_draw_root_text()

Ce code démontre l'affichage des titres dans les deux coins de l'écran.

<?php
 newt_init();
 newt_cls();

 newt_draw_root_text (2, 0, "Un peu de texte");
 newt_refresh();
 sleep(1);

 newt_draw_root_text (-30, 0, "Du texte dans l'autre coin");
 newt_refresh();
 sleep(1);

 newt_finished();
?>

Voir aussi

newt_push_help_line()
newt_pop_help_line()

Précédent | Sommaire | Suivant
newt_draw_form | Niveau supérieur | newt_entry_get_value


newt_entry

(PECL)

newt_entry --

Description

resource newt_entry ( int left, int top, int width [, string init_value [, int flags]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_entry_set | Niveau supérieur | newt_finished


newt_entry_get_value

(PECL)

newt_entry_get_value --

Description

string newt_entry_get_value ( resource entry )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_draw_root_text | Niveau supérieur | newt_entry_set_filter


newt_entry_set

(PECL)

newt_entry_set --

Description

void newt_entry_set ( resource entry, string value [, bool cursor_at_end] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_entry_set_flags | Niveau supérieur | newt_entry


newt_entry_set_filter

(PECL)

newt_entry_set_filter --

Description

void newt_entry_set_filter ( resource entry, callback filter, mixed data )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_entry_get_value | Niveau supérieur | newt_entry_set_flags


newt_entry_set_flags

(PECL)

newt_entry_set_flags --

Description

void newt_entry_set_flags ( resource entry, int flags, int sense )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_entry_set_filter | Niveau supérieur | newt_entry_set


newt_finished

(PECL)

newt_finished -- Arrête l'interface newt

Description

int newt_finished ( void )

Arrête l'interface newt. Cette fonction est appelée lorsque le programme est prêt à être arrêté.

Valeurs de retour

Retourne 1 en cas de succès ou 0 en cas d'échec.

Voir aussi

newt_init()

Précédent | Sommaire | Suivant
newt_entry | Niveau supérieur | newt_form_add_component


newt_form

(PECL)

newt_form -- Crée une forme

Description

resource newt_form ( [resource vert_bar [, string help [, int flags]]] )

Crée une nouvelle forme.

Liste de paramètres

vert_bar

Barre de défilement vertical qui devrait être associée à la forme

help

Chaîne de caractères d'aide

flags

Drapeaux variés

Valeurs de retour

Retourne le lien ressource du composant de la forme créé ou FALSE en cas d'erreur.

Exemples

Exemple 1. Exemple avec newt_form()

Affiche un simple boutton "Quitter", qui ferme l'application une fois qu'il est pressé.

<?php
newt_init();
newt_cls();

$myform = newt_form();
$button = newt_button (5, 12, "Quitter");

newt_form_add_component ($myform, $button);
newt_refresh ();
newt_run_form ($myform);

newt_finished ();
newt_form_destroy ($myform);
?>

Voir aussi

newt_form_run()
newt_run_form()
newt_form_add_component()
newt_form_add_components()
newt_form_destroy()

Précédent | Sommaire | Suivant
newt_form_watch_fd | Niveau supérieur | newt_get_screen_size


newt_form_add_component

(PECL)

newt_form_add_component -- Ajoute un seul composant à la forme

Description

void newt_form_add_component ( resource form, resource component )

Ajoute un seul composant à la forme qui est passé dans le premier paramètre.

Liste de paramètres

form

Forme à laquelle le composant sera ajouté

component

Composant à ajouter à la forme

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Exemple avec newt_form_add_component()

<?php
$form = newt_form();

$options = array("Authentication configuration", "Firewall configuration",
"Mouse configuration", "Network configuration", "Printer configuration",
"System services");

$list = newt_listbox(3, 2, 10);

foreach ($options as $l_item) {
       newt_listbox_add_entry($list, $l_item, $l_item);
}

newt_form_add_component($form, $list);
?>

Voir aussi

newt_form_add_components()

Précédent | Sommaire | Suivant
newt_finished | Niveau supérieur | newt_form_add_components


newt_form_add_components

(PECL)

newt_form_add_components -- Ajoute plusieurs composants à la forme

Description

void newt_form_add_components ( resource form, array components )

Ajoute plusieurs composants à la forme form.

Liste de paramètres

form

Forme à laquelle les composants seront ajoutés

components

Tableau de composants à ajouter à la forme

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Exemple avec newt_form_add_components()

<?php
$form = newt_form();

$b1 = newt_button(5, 12, "Run Tool");
$b2 = newt_button(21, 12, "Quit");

newt_form_add_components($form, array($b1, $b2));
?>

Voir aussi

newt_form_add_component()

Précédent | Sommaire | Suivant
newt_form_add_component | Niveau supérieur | newt_form_add_hot_key


newt_form_add_hot_key

(PECL)

newt_form_add_hot_key --

Description

void newt_form_add_hot_key ( resource form, int key )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_form_add_components | Niveau supérieur | newt_form_destroy


newt_form_destroy

(PECL)

newt_form_destroy -- Détruit une forme

Description

void newt_form_destroy ( resource form )

Cette fonction libère les ressources mémoires utilisées par la forme et tous les composants qui avaient été ajoutés à la forme (en incluant les composants qui sont sur des formes filles). Une fois que la forme est détruite, aucun des composants qui appartenaient à la forme ne peut être utilisé.

Liste de paramètres

form

Composant forme, qui sera détruit

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

newt_form_run()
newt_run_form()

Précédent | Sommaire | Suivant
newt_form_add_hot_key | Niveau supérieur | newt_form_get_current


newt_form_get_current

(PECL)

newt_form_get_current --

Description

resource newt_form_get_current ( resource form )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_form_destroy | Niveau supérieur | newt_form_run


newt_form_run

(PECL)

newt_form_run -- Exécute une forme

Description

void newt_form_run ( resource form, array &exit_struct )

Cette fonction exécute la forme qui lui est passée.

Liste de paramètres

form

Composant forme

exit_struct

Tableau, utilisé pour retourner des informations après l'exécution des composants de la forme. Les clés et leur valeur sont décritent dans la table suivante :

Tableau 1. Structure Arrêt de Forme

Clé Index | Type de Valeur | Description
reason | integer | La raison indiquant pourquoi la forme a été quittée. Les valeurs possibles sont définies ici.
watch | resource | Lien de ressource, spécifié dans newt_form_watch_fd()
key | integer | Raccourci
component | resource | Composant, qui a causé la forme à quitter

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

newt_run_form()

Précédent | Sommaire | Suivant
newt_form_get_current | Niveau supérieur | newt_form_set_background


newt_form_set_background

(PECL)

newt_form_set_background --

Description

void newt_form_set_background ( resource from, int background )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_form_run | Niveau supérieur | newt_form_set_height


newt_form_set_height

(PECL)

newt_form_set_height --

Description

void newt_form_set_height ( resource form, int height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_form_set_background | Niveau supérieur | newt_form_set_size


newt_form_set_size

(PECL)

newt_form_set_size --

Description

void newt_form_set_size ( resource form )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_form_set_height | Niveau supérieur | newt_form_set_timer


newt_form_set_timer

(PECL)

newt_form_set_timer --

Description

void newt_form_set_timer ( resource form, int milliseconds )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_form_set_size | Niveau supérieur | newt_form_set_width


newt_form_set_width

(PECL)

newt_form_set_width --

Description

void newt_form_set_width ( resource form, int width )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_form_set_timer | Niveau supérieur | newt_form_watch_fd


newt_form_watch_fd

(PECL)

newt_form_watch_fd --

Description

void newt_form_watch_fd ( resource form, resource stream [, int flags] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_form_set_width | Niveau supérieur | newt_form


newt_get_screen_size

(PECL)

newt_get_screen_size -- Remplit les références passées avec la taille courante du terminal

Description

void newt_get_screen_size ( int &cols, int &rows )

Remplit les références passées avec la taille courante du terminal.

Liste de paramètres

cols

Nombre de colonnes dans le terminal

rows

Nombre de lignes dans le terminal

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Exemple avec newt_get_screen_size()

Ce code affiche la taille de l'écran de votre terminal.

<?php
 newt_init();
 newt_get_screen_size (&$cols, &$rows);
 newt_finished();

 print "Votre taille de terminal est : {$cols}x{$rows}\n";
?>

L'exemple ci-dessus va afficher :

Votre taille de terminal est : 138x47

Précédent | Sommaire | Suivant
newt_form | Niveau supérieur | newt_grid_add_components_to_form


newt_grid_add_components_to_form

(PECL)

newt_grid_add_components_to_form --

Description

void newt_grid_add_components_to_form ( resource grid, resource form, bool recurse )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_get_screen_size | Niveau supérieur | newt_grid_basic_window


newt_grid_basic_window

(PECL)

newt_grid_basic_window --

Description

resource newt_grid_basic_window ( resource text, resource middle, resource buttons )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_grid_add_components_to_form | Niveau supérieur | newt_grid_free


newt_grid_free

(PECL)

newt_grid_free --

Description

void newt_grid_free ( resource grid, bool recurse )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_grid_basic_window | Niveau supérieur | newt_grid_get_size


newt_grid_get_size

(PECL)

newt_grid_get_size --

Description

void newt_grid_get_size ( resouce grid, int &width, int &height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_grid_free | Niveau supérieur | newt_grid_h_close_stacked


newt_grid_h_close_stacked

(PECL)

newt_grid_h_close_stacked --

Description

resource newt_grid_h_close_stacked ( int element1_type, resource element1 [, int ... [, resource ...]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_grid_get_size | Niveau supérieur | newt_grid_h_stacked


newt_grid_h_stacked

(PECL)

newt_grid_h_stacked --

Description

resource newt_grid_h_stacked ( int element1_type, resource element1 [, int ... [, resource ...]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_grid_h_close_stacked | Niveau supérieur | newt_grid_place


newt_grid_place

(PECL)

newt_grid_place --

Description

void newt_grid_place ( resource grid, int left, int top )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_grid_h_stacked | Niveau supérieur | newt_grid_set_field


newt_grid_set_field

(PECL)

newt_grid_set_field --

Description

void newt_grid_set_field ( resource grid, int col, int row, int type, resource val, int pad_left, int pad_top, int pad_right, int pad_bottom, int anchor [, int flags] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_grid_place | Niveau supérieur | newt_grid_simple_window


newt_grid_simple_window

(PECL)

newt_grid_simple_window --

Description

resource newt_grid_simple_window ( resource text, resource middle, resource buttons )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_grid_set_field | Niveau supérieur | newt_grid_v_close_stacked


newt_grid_v_close_stacked

(PECL)

newt_grid_v_close_stacked --

Description

resource newt_grid_v_close_stacked ( int element1_type, resource element1 [, int ... [, resource ...]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_grid_simple_window | Niveau supérieur | newt_grid_v_stacked


newt_grid_v_stacked

(PECL)

newt_grid_v_stacked --

Description

resource newt_grid_v_stacked ( int element1_type, resource element1 [, int ... [, resource ...]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_grid_v_close_stacked | Niveau supérieur | newt_grid_wrapped_window_at


newt_grid_wrapped_window

(PECL)

newt_grid_wrapped_window --

Description

void newt_grid_wrapped_window ( resource grid, string title )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_grid_wrapped_window_at | Niveau supérieur | newt_init


newt_grid_wrapped_window_at

(PECL)

newt_grid_wrapped_window_at --

Description

void newt_grid_wrapped_window_at ( resource grid, string title, int left, int top )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_grid_v_stacked | Niveau supérieur | newt_grid_wrapped_window


newt_init

(PECL)

newt_init -- Initialise newt

Description

int newt_init ( void )

Initialise l'interface newt. Cette fonction doit être appelée avant n'importe quelle autre fonction newt.

Valeurs de retour

Retourne 1 en cas de succès ou 0 en cas d'échec.

Voir aussi

newt_finished()

Précédent | Sommaire | Suivant
newt_grid_wrapped_window | Niveau supérieur | newt_label_set_text


newt_label

(PECL)

newt_label --

Description

resource newt_label ( int left, int top, string text )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_label_set_text | Niveau supérieur | newt_listbox_append_entry


newt_label_set_text

(PECL)

newt_label_set_text --

Description

void newt_label_set_text ( resource label, string text )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_init | Niveau supérieur | newt_label


newt_listbox

(PECL)

newt_listbox --

Description

resource newt_listbox ( int left, int top, int height [, int flags] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_listbox_set_width | Niveau supérieur | newt_listitem_get_data


newt_listbox_append_entry

(PECL)

newt_listbox_append_entry --

Description

void newt_listbox_append_entry ( resource listbox, string text, mixed data )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_label | Niveau supérieur | newt_listbox_clear_selection


newt_listbox_clear

(PECL)

newt_listbox_clear --

Description

void newt_listbox_clear ( resource listobx )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_listbox_clear_selection | Niveau supérieur | newt_listbox_delete_entry


newt_listbox_clear_selection

(PECL)

newt_listbox_clear_selection --

Description

void newt_listbox_clear_selection ( resource listbox )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_listbox_append_entry | Niveau supérieur | newt_listbox_clear


newt_listbox_delete_entry

(PECL)

newt_listbox_delete_entry --

Description

void newt_listbox_delete_entry ( resource listbox, mixed key )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_listbox_clear | Niveau supérieur | newt_listbox_get_current


newt_listbox_get_current

(PECL)

newt_listbox_get_current --

Description

string newt_listbox_get_current ( resource listbox )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_listbox_delete_entry | Niveau supérieur | newt_listbox_get_selection


newt_listbox_get_selection

(PECL)

newt_listbox_get_selection --

Description

array newt_listbox_get_selection ( resource listbox )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_listbox_get_current | Niveau supérieur | newt_listbox_insert_entry


newt_listbox_insert_entry

(PECL)

newt_listbox_insert_entry --

Description

void newt_listbox_insert_entry ( resource listbox, string text, mixed data, mixed key )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_listbox_get_selection | Niveau supérieur | newt_listbox_item_count


newt_listbox_item_count

(PECL)

newt_listbox_item_count --

Description

int newt_listbox_item_count ( resource listbox )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_listbox_insert_entry | Niveau supérieur | newt_listbox_select_item


newt_listbox_select_item

(PECL)

newt_listbox_select_item --

Description

void newt_listbox_select_item ( resource listbox, mixed key, int sense )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_listbox_item_count | Niveau supérieur | newt_listbox_set_current_by_key


newt_listbox_set_current

(PECL)

newt_listbox_set_current --

Description

void newt_listbox_set_current ( resource listbox, int num )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_listbox_set_current_by_key | Niveau supérieur | newt_listbox_set_data


newt_listbox_set_current_by_key

(PECL)

newt_listbox_set_current_by_key --

Description

void newt_listbox_set_current_by_key ( resource listbox, mixed key )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_listbox_select_item | Niveau supérieur | newt_listbox_set_current


newt_listbox_set_data

(PECL)

newt_listbox_set_data --

Description

void newt_listbox_set_data ( resource listbox, int num, mixed data )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_listbox_set_current | Niveau supérieur | newt_listbox_set_entry


newt_listbox_set_entry

(PECL)

newt_listbox_set_entry --

Description

void newt_listbox_set_entry ( resource listbox, int num, string text )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_listbox_set_data | Niveau supérieur | newt_listbox_set_width


newt_listbox_set_width

(PECL)

newt_listbox_set_width --

Description

void newt_listbox_set_width ( resource listbox, int width )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_listbox_set_entry | Niveau supérieur | newt_listbox


newt_listitem

(PECL)

newt_listitem --

Description

resource newt_listitem ( int left, int top, string text, bool is_default, resouce prev_item, mixed data [, int flags] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_listitem_set | Niveau supérieur | newt_open_window


newt_listitem_get_data

(PECL)

newt_listitem_get_data --

Description

mixed newt_listitem_get_data ( resource item )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_listbox | Niveau supérieur | newt_listitem_set


newt_listitem_set

(PECL)

newt_listitem_set --

Description

void newt_listitem_set ( resource item, string text )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_listitem_get_data | Niveau supérieur | newt_listitem


newt_open_window

(PECL)

newt_open_window -- Ouvre une fenêtre de la taille et la position spécifiée

Description

int newt_open_window ( int left, int top, int width, int height [, string title] )

Ouvre une fenêtre de la taille et la position spécifiée.

Liste de paramètres

left

Empmlacement du coin haut gauche de la fenêtre (numéro de colonne)

top

Emplacement du coin haut gauche de la fenêtre (numéro de ligne)

width

Largeur de la fenêtre

height

Hauteur de la fenêtre

title

Titre de la fenête

Valeurs de retour

Retourne 1 en cas de succès ou 0 en cas d'échec.

Voir aussi

newt_pop_window()
newt_centered_window()

Précédent | Sommaire | Suivant
newt_listitem | Niveau supérieur | newt_pop_help_line


newt_pop_help_line

(PECL)

newt_pop_help_line -- Replace la ligne d'aide courante avec une provenant de la pile

Description

void newt_pop_help_line ( void )

Replace la ligne d'aide courante avec une provenant de la pile.

Note : Il est important de ne pas appeler la fonction newt_pop_help_line() plus que newt_push_help_line().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

newt_push_help_line()

Précédent | Sommaire | Suivant
newt_open_window | Niveau supérieur | newt_pop_window


newt_pop_window

(PECL)

newt_pop_window -- Supprime la fenêtre de premier plan de l'affichage

Description

void newt_pop_window ( void )

Supprime la fenêtre de premier plan de l'affichage et redessine le secteur d'affichage sur lequel la fenêtre se trouvait.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

newt_open_window()
newt_centered_window()

Précédent | Sommaire | Suivant
newt_pop_help_line | Niveau supérieur | newt_push_help_line


newt_push_help_line

(PECL)

newt_push_help_line -- Sauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne

Description

void newt_push_help_line ( [string text] )

Sauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne.

Liste de paramètres

text

Nouveau message d'aide

Note : Si non spécifié, la ligne d'aide est supprimée.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

newt_pop_help_line()

Précédent | Sommaire | Suivant
newt_pop_window | Niveau supérieur | newt_radio_get_current


newt_radio_get_current

(PECL)

newt_radio_get_current --

Description

resource newt_radio_get_current ( resource set_member )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_push_help_line | Niveau supérieur | newt_radiobutton


newt_radiobutton

(PECL)

newt_radiobutton --

Description

resource newt_radiobutton ( int left, int top, string text, bool is_default [, resource prev_button] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_radio_get_current | Niveau supérieur | newt_redraw_help_line


newt_redraw_help_line

(PECL)

newt_redraw_help_line --

Description

void newt_redraw_help_line ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_radiobutton | Niveau supérieur | newt_reflow_text


newt_reflow_text

(PECL)

newt_reflow_text --

Description

string newt_reflow_text ( string text, int width, int flex_down, int flex_up, int &actual_width, int &actual_height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_redraw_help_line | Niveau supérieur | newt_refresh


newt_refresh

(PECL)

newt_refresh -- Met à jour les portions modifiées de l'écran

Description

void newt_refresh ( void )

Pour améliorer les performances, newt met à jour seulement l'affichage lorsque c'est requis et non lorsque le programme lui demande d'écrire dans le terminal. Les applications peuvent forcer newt pour mettre à jour immédiatement les portions modifiées de l'écran en appelant cette fonction.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_reflow_text | Niveau supérieur | newt_resize_screen


newt_resize_screen

(PECL)

newt_resize_screen --

Description

void newt_resize_screen ( [bool redraw] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_refresh | Niveau supérieur | newt_resume


newt_resume

(PECL)

newt_resume -- Récupère l'interface de newt après l'appel de newt_suspend()

Description

void newt_resume ( void )

Récupère l'interface après l'appel de newt_suspend().

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

newt_suspend()

Précédent | Sommaire | Suivant
newt_resize_screen | Niveau supérieur | newt_run_form


newt_run_form

(PECL)

newt_run_form -- Exécute une forme

Description

resource newt_run_form ( resource form )

Cette fonction exécute la forme qui lui est passée en argument.

Liste de paramètres

form

Composant forme

Valeurs de retour

Le composant qui a arrêté la forme.

Note : Notez que cette fonction n'est pas similaire aux conventions de nom de newt. Il s'agit d'une plus vieille interface qui ne fonctionnera pas pour toutes les formes. Elle a été laissée dans newt seulement pour compatibilité des applications. Il s'agit d'une interface plus simple que la nouvelle newt_form_run() et est toujours utilisée plus souvent en pratique. Lorsqu'une application a terminée d'une forme, elle la détruit et tous les composants que la forme contient.

Voir aussi

newt_form_run()
newt_form_destroy()

Précédent | Sommaire | Suivant
newt_resume | Niveau supérieur | newt_scale_set


newt_scale

(PECL)

newt_scale --

Description

resource newt_scale ( int left, int top, int width, int full_value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_scale_set | Niveau supérieur | newt_scrollbar_set


newt_scale_set

(PECL)

newt_scale_set --

Description

void newt_scale_set ( resource scale, int amount )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_run_form | Niveau supérieur | newt_scale


newt_scrollbar_set

(PECL)

newt_scrollbar_set --

Description

void newt_scrollbar_set ( resource scrollbar, int where, int total )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_scale | Niveau supérieur | newt_set_help_callback


newt_set_help_callback

(PECL)

newt_set_help_callback --

Description

void newt_set_help_callback ( mixed function )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_scrollbar_set | Niveau supérieur | newt_set_suspend_callback


newt_set_suspend_callback

(PECL)

newt_set_suspend_callback -- Fixe une fonction de rappel qui sera appelée lorsque l'utilisateur appuiera sur la touche de suspension

Description

void newt_set_suspend_callback ( callback function, mixed data )

Fixe une fonction de rappel qui sera appelée lorsque l'utilisateur appuiera sur la touche de suspension (normalement ^Z). Si aucune fonction de rappel n'est fixée, la commande de suspension est ignorée.

Liste de paramètres

function

Une fonction de rappel, qui accepte un argument : data

data

Cette donnée sera passée à la fonction de rappel

Voir aussi

newt_suspend()
newt_resume()

Précédent | Sommaire | Suivant
newt_set_help_callback | Niveau supérieur | newt_suspend


newt_suspend

(PECL)

newt_suspend -- Indique à newt de retourner à l'état initial du terminal

Description

void newt_suspend ( void )

Indique newt de retourner à l'état initial du terminal. Une fois cela fait, l'application est suspendue (en envoyant à elle-même un SIGTSTP, embranche sur un programme enfant ou fait n'importe quoi d'autre qu'elle aime).

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

newt_resume()

Précédent | Sommaire | Suivant
newt_set_suspend_callback | Niveau supérieur | newt_textbox_get_num_lines


newt_textbox

(PECL)

newt_textbox --

Description

resource newt_textbox ( int left, int top, int width, int height [, int flags] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_textbox_set_text | Niveau supérieur | newt_vertical_scrollbar


newt_textbox_get_num_lines

(PECL)

newt_textbox_get_num_lines --

Description

int newt_textbox_get_num_lines ( resource textbox )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_suspend | Niveau supérieur | newt_textbox_reflowed


newt_textbox_reflowed

(PECL)

newt_textbox_reflowed --

Description

resource newt_textbox_reflowed ( int left, int top, char *text, int width, int flex_down, int flex_up [, int flags] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_textbox_get_num_lines | Niveau supérieur | newt_textbox_set_height


newt_textbox_set_height

(PECL)

newt_textbox_set_height --

Description

void newt_textbox_set_height ( resource textbox, int height )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_textbox_reflowed | Niveau supérieur | newt_textbox_set_text


newt_textbox_set_text

(PECL)

newt_textbox_set_text --

Description

void newt_textbox_set_text ( resource textbox, string text )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_textbox_set_height | Niveau supérieur | newt_textbox


newt_vertical_scrollbar

(PECL)

newt_vertical_scrollbar --

Description

resource newt_vertical_scrollbar ( int left, int top, int height [, int normal_colorset [, int thumb_colorset]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_textbox | Niveau supérieur | newt_wait_for_key


newt_wait_for_key

(PECL)

newt_wait_for_key -- Ne continue pas tant qu'une touche n'est pas appuyée

Description

void newt_wait_for_key ( void )

Cette fonction ne continue pas tant qu'une touche n'est pas appuyée. La frappe est alors ignorée. Si une touche est déjà dans le tampon du terminal, cette fonction jette la frappe et continue immmédiatement.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

newt_clear_key_buffer()

Précédent | Sommaire | Suivant
newt_vertical_scrollbar | Niveau supérieur | newt_win_choice


newt_win_choice

(PECL)

newt_win_choice --

Description

int newt_win_choice ( string title, string button1_text, string button2_text, string format [, mixed args [, mixed ...]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_wait_for_key | Niveau supérieur | newt_win_entries


newt_win_entries

(PECL)

newt_win_entries --

Description

int newt_win_entries ( string title, string text, int suggested_width, int flex_down, int flex_up, int data_width, array &items, string button1 [, string ...] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Exemples

Exemple 1. Exemple avec newt_win_entries()

<?php

newt_init();
newt_cls();

$entries[] = array('text' => 'First name:', 'value' => &$f_name);
$entries[] = array('text' => 'Last name:',  'value' => &$l_name);

$rc = newt_win_entries("User information", "Please enter your credentials:", 50, 7, 7, 30, $entries, "Ok", "Back");
newt_finished ();

if ($rc != 2) {
       echo "Your name is: $f_name $l_name\n";
}
?>

Précédent | Sommaire | Suivant
newt_win_choice | Niveau supérieur | newt_win_menu


newt_win_menu

(PECL)

newt_win_menu --

Description

int newt_win_menu ( string title, string text, int suggestedWidth, int flexDown, int flexUp, int maxListHeight, array items, int &listItem [, string button1 [, string ...]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_win_entries | Niveau supérieur | newt_win_message


newt_win_message

(PECL)

newt_win_message --

Description

void newt_win_message ( string title, string button_text, string format [, mixed args [, mixed ...]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_win_menu | Niveau supérieur | newt_win_messagev


newt_win_messagev

(PECL)

newt_win_messagev --

Description

void newt_win_messagev ( string title, string button_text, string format, array args )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
newt_win_message | Niveau supérieur | newt_win_ternary


newt_win_ternary

(PECL)

newt_win_ternary --

Description

int newt_win_ternary ( string title, string button1_text, string button2_text, string button3_text, string format [, mixed args [, mixed ...]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
newt_win_messagev | Niveau supérieur | Netscape Server API


ob_deflatehandler

(no version information, might be only in CVS)

ob_deflatehandler -- Gestionnaire de sortie de compression

Description

string ob_deflatehandler ( string data, int mode )

À utiliser avec la fonction ob_start().

Le gestionnaire de sortie de compression ne peut être utilisée qu'une seule fois.

Cela rentre en conflit avec la compression ob_gzhandler and zlib.output_compression et ne doit pas être utilisé après ext/mbstrings mb_output_handler et ext/sessions URL-Rewriter (eg. session.use_trans_sid).

Précédent | Sommaire | Suivant
http_negotiate_language | Niveau supérieur | ob_etaghandler


ob_etaghandler

(PECL)

ob_etaghandler -- Gestionnaire de sortie ETag

Description

string ob_etaghandler ( string data, int mode )

À utiliser avec la fonction ob_start().

Le gestionnaire de buffer de sortie génète un ETag avec l'algorythme de hashage spécifié par Paramètres INI http.etag.mode.

Ce gestionnaire de sortie est utilisé par la fonction http_cache_etag().

Précédent | Sommaire | Suivant
ob_deflatehandler | Niveau supérieur | ob_inflatehandler


ob_inflatehandler

(no version information, might be only in CVS)

ob_inflatehandler -- Gestionnaire de sortie de décompression

Description

string ob_inflatehandler ( string data, int mode )

À utiliser avec la fonction ob_start().

Les mêmes restrictions sont appliquées que pour la fonction ob_deflatehandler().

Précédent | Sommaire | Suivant
ob_etaghandler | Niveau supérieur | http_parse_cookie


oci_bind_array_by_name

(no version information, might be only in CVS)

oci_bind_array_by_name -- Lie un tableau PHP à un tableau Oracle PL/SQL par son nom

Description

bool oci_bind_array_by_name ( resource statement, string name, array &var_array, int max_table_length [, int max_item_length [, int type]] )

Lit un tableau PHP var_array à un marquer Oracle name, qui pointe vers un tableau PL/SQL. Il peut être utilisé pour l'entrée ou la sortie, suivant la configuration à l'exécution.

Liste de paramètres

statement

Un identifiant de requête OCI valide.

name

Le marqueur Oracle.

var_array

Un tableau.

max_table_length

Définit 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 fonctionne 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, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec oci_bind_array_by_name()

<?php

$c = oci_connect("scott", "tiger");

$create = "CREATE TABLE bind_example(name VARCHAR(20))";
$statement = oci_parse($c, $create);
oci_execute($statement);

$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;";
$statement = oci_parse($c, $create_pkg);
oci_execute($statement);

$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
    FOR i IN 1..5 LOOP
      INSERT INTO bind_example VALUES (c1(i));
    END LOOP;
    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;";
$statement = oci_parse($c, $create_pkg_body);
oci_execute($statement);

$statement = oci_parse($c, "BEGIN ARRAYBINDPKG1.iobind(:c1); END;");

$array = array("one", "two", "three", "four", "five");

oci_bind_array_by_name($statement, ":c1", $array, 5, -1, SQLT_CHR);

oci_execute($statement);

var_dump($array);

?>

Notes

Note : Cette fonction est disponible depuis OCI8 version 1.2.

Précédent | Sommaire | Suivant
Fonctions Oracle | Niveau supérieur | oci_bind_by_name


OCI-Collection->assignElem

(no version information, might be only in CVS)

OCI-Collection->assignElem -- Assigne une valeur à un élément d'une collection Oracle

Description

class OCI-Collection {

bool assignElem ( int index, mixed value )

}

Assigne une valeur à l'élélent dont l'index est index.

Liste de paramètres

index

L'index de l'élément. Le premier vaut 1.

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, FALSE en cas d'échec.

Voir aussi

OCI-Collection->getElem

Précédent | Sommaire | Suivant
OCI-Collection->assign | Niveau supérieur | OCI-Collection->free


OCI-Collection->getElem

(no version information, might be only in CVS)

OCI-Collection->getElem -- Retourne la valeur d'un élément d'une collection Oracle

Description

class OCI-Collection {

mixed getElem ( int index )

}

Retourne la valeur de l'élément à l'index index (en commençant à 1).

Liste de paramètres

index

L'index de l'élément. Le premier vaut 1.

Valeurs de retour

Retournera FALSE si cet élément n'existe pas; NULL, si l'élément est NULL chaîne si la colonne est de type chaîne, et nombre si c'est un champs numérique.

Voir aussi

OCI-Collection->assignElem

Précédent | Sommaire | Suivant
OCI-Collection->free | Niveau supérieur | OCI-Collection->max


OCI-Lob->free

(no version information, might be only in CVS)

OCI-Lob->free -- Détruit un pointeur de LOB Oracle

Description

class OCI-Lob {

bool free ( void )

}

Libère les ressources associées avec le descripteur, précédemment alloué avec oci_new_descriptor().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
OCI-Lob->flush | Niveau supérieur | OCI-Lob->getBuffering


OCI-Lob->getBuffering

(no version information, might be only in CVS)

OCI-Lob->getBuffering -- Retourne l'état de bufferisation LOB d'Oracle

Description

class OCI-Lob {

bool getBuffering ( void )

}

Retourne l'état de bufferisation LOB d'Oracle.

Valeurs de retour

Retourne FALSE si la bufferisation des LOB est désactivée, et TRUE si elle l'est.

Voir aussi

OCI-Lob->setBuffering

Précédent | Sommaire | Suivant
OCI-Lob->free | Niveau supérieur | OCI-Lob->import


OCI-Lob->saveFile

(no version information, might be only in CVS)

OCI-Lob->saveFile -- Alias de oci_lob_import()

Description

Cette fonction est un alias de : oci_lob_import().

Précédent | Sommaire | Suivant
OCI-Lob->save | Niveau supérieur | OCI-Lob->seek


OCI-Lob->setBuffering

(no version information, might be only in CVS)

OCI-Lob->setBuffering -- Active/désactive la bufferisation des LOB Oracle

Description

class OCI-Lob {

bool setBuffering ( bool on_off )

}

Active ou désactive la bufferisation des LOB Oracle, en fonction du paramètre on_off.

Utiliser cette fonction apporte des améliorations de performances par bufferisation des petites lectures et écritures de LOB : le buffer limite les allers/retours avec le serveur. oci_lob_flush() doit être utilisé pour vider les buffers une fois que vous avez fini de travailler avec le LOB.

Liste de paramètres

on_off

TRUE pour l'activer, et FALSE pourle désactiver.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Des appels répétés à lob->setbuffering() avec la même valeur de paramètre renverra toujours TRUE.

Voir aussi

OCI-Lob->getBuffering

Précédent | Sommaire | Suivant
OCI-Lob->seek | Niveau supérieur | OCI-Lob->size


OCI-Lob->writeTemporary

(no version information, might be only in CVS)

OCI-Lob->writeTemporary -- Écrit un LOB Oracle temporaire

Description

class OCI-Lob {

bool writeTemporary ( string data [, int lob_type] )

}

Crée un LOB temporaire et y écrit les données data.

Il faut utiliser la fonction OCI-Lob->close lorsque vous avez fini de travailler avec le LOB.

Liste de paramètres

data

Les données à écrire.

lob_type

Peut prendre l'une des valeurs suivantes :

OCI_TEMP_BLOB sert à créer un BLOB temporaire.
OCI_TEMP_CLOB sert à créer un CLOB temporaire (valeur par défaut).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

OCI-Lob->close

Précédent | Sommaire | Suivant
OCI-Lob->write | Niveau supérieur | OCI-Lob->writeToFile


OCI-Lob->writeToFile

(no version information, might be only in CVS)

OCI-Lob->writeToFile -- Alias de oci_lob_export()

Description

Cette fonction est un alias de : oci_lob_export().

Précédent | Sommaire | Suivant
OCI-Lob->writeTemporary | Niveau supérieur | oci_new_collection


openssl_csr_get_public_key

(no version information, might be only in CVS)

openssl_csr_get_public_key -- Retourne la clé publique d'un CERT

Description

mixed openssl_csr_get_public_key ( mixed csr, bool use_shortnames )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
openssl_csr_export | Niveau supérieur | openssl_csr_get_subject


openssl_csr_get_subject

(no version information, might be only in CVS)

openssl_csr_get_subject -- Retourne le sujet d'un CERT

Description

mixed openssl_csr_get_subject ( mixed csr, bool use_shortnames )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
openssl_csr_get_public_key | Niveau supérieur | openssl_csr_new


openssl_pkey_free

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_free -- Libère une clé privée

Description

void openssl_pkey_free ( resource key )

Cette fonction libère une clé privée créée par la fonction openssl_pkey_new().

Précédent | Sommaire | Suivant
openssl_pkey_export | Niveau supérieur | openssl_pkey_get_details


openssl_pkey_get_details

(no version information, might be only in CVS)

openssl_pkey_get_details -- Retourne un tableau contenant le détail des clés (bits, pkey, type)

Description

resource openssl_pkey_get_details ( resource key )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
openssl_pkey_free | Niveau supérieur | openssl_pkey_get_private


OrbitEnum

(no version information, might be only in CVS)

OrbitEnum -- Utilise les enums de Corba

Description

new OrbitEnum ( string id )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette classe représente l'énumération identifiée avec le paramètre id.

Liste de paramètres

id

Peut être soit le nom de l'énumération (c'est-à-dire "MyEnum") ou l'id complet du dossier (c'est-à-dire "IDL:MyEnum:1.0").

Exemples

Exemple 1. Fichier IDL d'Exemple

enum MyEnum {
    a,b,c,d,e
};

Exemple 2. Code PHP pour accéder MyEnum

<?php
$enum = new OrbitEnum ("MyEnum");

echo $enum->a;    /* écrit 0 */
echo $enum->c;    /* écrit 2 */
echo $enum->e;    /* écrit 4 */
?>

Précédent | Sommaire | Suivant
Extension client Satellite CORBA (Obsolète) | Niveau supérieur | OrbitObject


OrbitObject

(no version information, might be only in CVS)

OrbitObject -- Accéder à des objets CORBA

Description

new OrbitObject ( string ior )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette classe fournit un accès à un objet CORBA.

Liste de paramètres

ior

Devrait être une chaîne de caractères contenant le IOR (Interoperable Object Rerefence) qui identifie l'objet distant.

Exemples

Exemple 1. Fichier IDL d'Exemple

interface MyInterface {
    void SetInfo (string info);
    string GetInfo();

    attribute int value;
}

Exemple 2. Code PHP pour accéder MyInterface

<?php
$obj = new OrbitObject ($ior);

$obj->SetInfo ("A 2GooD object");

echo $obj->GetInfo();

$obj->value = 42;

echo $obj->value;
?>

Précédent | Sommaire | Suivant
OrbitEnum | Niveau supérieur | OrbitStruct


OrbitStruct

(no version information, might be only in CVS)

OrbitStruct -- Utilise des structures CORBA

Description

new OrbitStruct ( string id )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Cette classe représente la structure identifiée avec le paramètre id.

Liste de paramètres

id

Peut être soit le nom de l'énumération (c'est-à-dire "MyEnum") ou l'id complet du dossier (c'est-à-dire "IDL:MyEnum:1.0").

Exemples

Exemple 1. Fichier IDL d'Exemple

struct MyStruct {
    short shortvalue;
    string stringvalue;
};

interface SomeInterface {
  void SetValues (MyStruct values);
  MyStruct GetValues();
}

Exemple 2. Code PHP pour accéder MyStruct

<?php
$obj = new OrbitObject ($ior);

$initial_values = new OrbitStruct ("IDL:MyStruct:1.0");
$initial_values->shortvalue = 42;
$initial_values->stringvalue = "HGTTG";

$obj->SetValues ($initial_values);

$values = $obj->GetValues();

echo $values->shortvalue;
echo $values->stringvalue;
?>

Précédent | Sommaire | Suivant
OrbitObject | Niveau supérieur | satellite_caught_exception


PDF_activate_item

(PECL)

PDF_activate_item -- Active un élément de structure ou un autre élément de contenu

Description

bool PDF_activate_item ( resource pdfdoc, int id )

Active un élément de structure précédemment créé ou un autre élément de contenu. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
Fonctions PDF | Niveau supérieur | PDF_add_annotation


PDF_add_nameddest

(PECL)

PDF_add_nameddest -- Crée une destination nommée

Description

bool PDF_add_nameddest ( resource pdfdoc, string name, string optlist )

Crée une destination nommée sur une page arbitraire du document courant. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_add_locallink | Niveau supérieur | PDF_add_note


PDF_begin_document

(PECL)

PDF_begin_document -- Crée un nouveau fichier PDF

Description

int PDF_begin_document ( resource pdfdoc, string filename, string optlist )

Crée un nouveau fichier PDF avec diverses options.

Précédent | Sommaire | Suivant
PDF_attach_file | Niveau supérieur | PDF_begin_font


PDF_begin_font

(PECL)

PDF_begin_font -- Commence une définition de police de type 3

Description

bool PDF_begin_font ( resource pdfdoc, string filename, float a, float b, float c, float d, float e, float f, string optlist )

Commence une définition de police de type 3.

Précédent | Sommaire | Suivant
PDF_begin_document | Niveau supérieur | PDF_begin_glyph


PDF_begin_glyph

(PECL)

PDF_begin_glyph -- Commence une définition de glyphe pour les polices de tye 3

Description

bool PDF_begin_glyph ( resource pdfdoc, string glyphname, float wx, float llx, float lly, float urx, float ury )

Commence une définition de glyphe pour les polices de tye 3.

Précédent | Sommaire | Suivant
PDF_begin_font | Niveau supérieur | PDF_begin_item


PDF_begin_item

(PECL)

PDF_begin_item -- Ouvre un élément de structure ou un autre élément de contenu

Description

int PDF_begin_item ( resource pdfdoc, string tag, string optlist )

Ouvre un élément de structure ou un autre élément de structure avec les attributs fournis en tant qu'options.

Précédent | Sommaire | Suivant
PDF_begin_glyph | Niveau supérieur | PDF_begin_layer


PDF_begin_layer

(PECL)

PDF_begin_layer -- Commence une interface

Description

bool PDF_begin_layer ( resource pdfdoc, int layer )

Commence une interface pour les sous-séquences d'affichages sur la page. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction nécessite PDF 1.5.

Précédent | Sommaire | Suivant
PDF_begin_item | Niveau supérieur | PDF_begin_page_ext


PDF_begin_page_ext

(PECL)

PDF_begin_page_ext -- Commence une nouvelle page

Description

bool PDF_begin_page_ext ( resource pdfdoc, float width, float height, string optlist )

Ajoute une nouvelle page au document et spécifie diverses options. Les paramètres width et height correspondent aux dimensions, en points, de la nouvelle page. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Tableau 1. Tailles communes des pages en points

Nom | Taille
A0 | 2380?3368
A1 | 1684?2380
A2 | 1190?1684
A3 | 842?1190
A4 | 595?842
A5 | 421?595
A6 | 297?421
B5 | 501?709
letter (8.5"?11") | 612?792
legal (8.5"?14") | 612?1008
ledger (17"?11") | 1224?792
11"?17" | 792?1224

Précédent | Sommaire | Suivant
PDF_begin_layer | Niveau supérieur | PDF_begin_page


PDF_create_action

(PECL)

PDF_create_action -- Crée une action pour des objets ou des événements

Description

int PDF_create_action ( resource pdfdoc, string type, string optlist )

Crée une action qui peut être utilisée sur diverses objets et événements.

Précédent | Sommaire | Suivant
PDF_continue_text | Niveau supérieur | PDF_create_annotation


PDF_create_annotation

(PECL)

PDF_create_annotation -- Crée une annotation rectangulaire

Description

bool PDF_create_annotation ( resource pdfdoc, float llx, float lly, float urx, float ury, string type, string optlist )

Crée une annotation rectangulaire sur la page courante.

Précédent | Sommaire | Suivant
PDF_create_action | Niveau supérieur | PDF_create_bookmark


PDF_create_bookmark

(PECL)

PDF_create_bookmark -- Crée un signet

Description

int PDF_create_bookmark ( resource pdfdoc, string text, string optlist )

Crée un signet avec diverses options.

Précédent | Sommaire | Suivant
PDF_create_annotation | Niveau supérieur | PDF_create_field


PDF_create_field

(PECL)

PDF_create_field -- Crée un champ de formulaire

Description

bool PDF_create_field ( resource pdfdoc, float llx, float lly, float urx, float ury, string name, string type, string optlist )

Crée un champ de formulaire dans la page courante avec diverses options.

Précédent | Sommaire | Suivant
PDF_create_bookmark | Niveau supérieur | PDF_create_fieldgroup


PDF_create_fieldgroup

(PECL)

PDF_create_fieldgroup -- Crée un groupe de champs dans un formulaire

Description

bool PDF_create_fieldgroup ( resource pdfdoc, string name, string optlist )

Crée un groupe de champs avec diverses options dans un formulaire.

Précédent | Sommaire | Suivant
PDF_create_field | Niveau supérieur | PDF_create_gstate


PDF_create_gstate

(PECL)

PDF_create_gstate -- Crée un objet graphique

Description

int PDF_create_gstate ( resource pdfdoc, string optlist )

Crée un objet graphique avec diverses options.

Précédent | Sommaire | Suivant
PDF_create_fieldgroup | Niveau supérieur | PDF_create_pvf


PDF_create_pvf

(PECL)

PDF_create_pvf -- Crée un fichier PDFlib virtuel

Description

bool PDF_create_pvf ( resource pdfdoc, string filename, string data, string optlist )

Crée un fichier virtuel nommé, en lecture seul, depuis les données fournies en mémoire.

Précédent | Sommaire | Suivant
PDF_create_gstate | Niveau supérieur | PDF_create_textflow


PDF_create_textflow

(PECL)

PDF_create_textflow -- Crée un objet de flux de texte

Description

int PDF_create_textflow ( resource pdfdoc, string text, string optlist )

Prépare un texte pour formattage ultérieur et crée un objet de flux de texte.

Précédent | Sommaire | Suivant
PDF_create_pvf | Niveau supérieur | PDF_curveto


PDF_define_layer

(PECL)

PDF_define_layer -- Crée une définition d'interface

Description

int PDF_define_layer ( resource pdfdoc, string name, string optlist )

Crée une nouvelle définition d'interface.

Cette fonction nécessite PDF 1.5.

Précédent | Sommaire | Suivant
PDF_curveto | Niveau supérieur | PDF_delete_pvf


PDF_delete_pvf

(PECL)

PDF_delete_pvf -- Efface un fichier virtuel PDFlib

Description

int PDF_delete_pvf ( resource pdfdoc, string filename )

Efface un fichier virutel nommé et libère ses structures de données (mais pas le contenu).

Précédent | Sommaire | Suivant
PDF_define_layer | Niveau supérieur | PDF_delete_textflow


PDF_delete_textflow

(PECL)

PDF_delete_textflow -- Efface un objet de flux de texte

Description

bool PDF_delete_textflow ( resource pdfdoc, int textflow )

Efface un flux de texte ainsi que les structures de données associées.

Précédent | Sommaire | Suivant
PDF_delete_pvf | Niveau supérieur | PDF_delete


PDF_encoding_set_char

(PECL)

PDF_encoding_set_char -- Ajoute un nom de glyphe et/ou une valeur Unicode

Description

bool PDF_encoding_set_char ( resource pdfdoc, string encoding, int slot, string glyphname, int uv )

Ajoute un nom de glyphe et/ou une valeur Unicode à un encodage personnalisé.

Précédent | Sommaire | Suivant
PDF_delete | Niveau supérieur | PDF_end_document


PDF_end_document

(PECL)

PDF_end_document -- Ferme un fichier PDF

Description

bool PDF_end_document ( resource pdfdoc, string optlist )

Ferme un fichier PDF généré et y applique diverses options.

Précédent | Sommaire | Suivant
PDF_encoding_set_char | Niveau supérieur | PDF_end_font


PDF_end_font

(PECL)

PDF_end_font -- Termine une définition de police de type 3

Description

bool PDF_end_font ( resource pdfdoc )

Termine une définition de police de type 3.

Précédent | Sommaire | Suivant
PDF_end_document | Niveau supérieur | PDF_end_glyph


PDF_end_glyph

(PECL)

PDF_end_glyph -- Termine la définition d'un glyphe pour les polices de type 3

Description

bool PDF_end_glyph ( resource pdfdoc )

Termine la définition d'un glyphe pour les polices de type 3.

Précédent | Sommaire | Suivant
PDF_end_font | Niveau supérieur | PDF_end_item


PDF_end_item

(PECL)

PDF_end_item -- Ferme la structure d'un élément ou un autre élément de contenu

Description

bool PDF_end_item ( resource pdfdoc, int id )

Ferme la structure d'un élément ou un autre élément de contenu.

Précédent | Sommaire | Suivant
PDF_end_glyph | Niveau supérieur | PDF_end_layer


PDF_end_layer

(PECL)

PDF_end_layer -- Désactive toutes les interfaces actives

Description

bool PDF_end_layer ( resource pdfdoc )

Désactive toutes les interfaces actives. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction nécessite PDF 1.5.

Précédent | Sommaire | Suivant
PDF_end_item | Niveau supérieur | PDF_end_page_ext


PDF_end_page_ext

(PECL)

PDF_end_page_ext -- Termine une page

Description

bool PDF_end_page_ext ( resource pdfdoc, string optlist )

Termine une page et y applique diverses options. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_end_layer | Niveau supérieur | PDF_end_page


PDF_fill_imageblock

(PECL)

PDF_fill_imageblock -- Remplit un bloc d'image avec des données variables

Description

int PDF_fill_imageblock ( resource pdfdoc, int page, string blockname, int image, string optlist )

Remplit un bloc d'image avec des données variables suivant ses propriétés.

Cette fonction est uniquement disponible avec PDFlib Personalization Server (PPS).

Précédent | Sommaire | Suivant
PDF_endpath | Niveau supérieur | PDF_fill_pdfblock


PDF_fill_pdfblock

(PECL)

PDF_fill_pdfblock -- Remplit un bloc de contenu avec des données variables

Description

int PDF_fill_pdfblock ( resource pdfdoc, int page, string blockname, int contents, string optlist )

Remplit un bloc de contenu avec des données variables suivant ses propriétés.

Cette fonction est uniquement disponible avec PDFlib Personalization Server (PPS).

Précédent | Sommaire | Suivant
PDF_fill_imageblock | Niveau supérieur | PDF_fill_stroke


PDF_fill_textblock

(PECL)

PDF_fill_textblock -- Remplit un bloc de texte avec des données variables

Description

int PDF_fill_textblock ( resource pdfdoc, int page, string blockname, string text, string optlist )

Remplit un bloc de texte avec des données variables suivant ses propriétés.

Cette fonction est uniquement disponible avec PDFlib Personalization Server (PPS).

Précédent | Sommaire | Suivant
PDF_fill_stroke | Niveau supérieur | PDF_fill


PDF_fit_image

(PECL)

PDF_fit_image -- Place une image ou un template

Description

bool PDF_fit_image ( resource pdfdoc, int image, float x, float y, string optlist )

Place une image ou un template à une position précise. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_findfont | Niveau supérieur | PDF_fit_pdi_page


PDF_fit_pdi_page

(PECL)

PDF_fit_pdi_page -- Place une page PDF importée

Description

bool PDF_fit_pdi_page ( resource pdfdoc, int page, float x, float y, string optlist )

Place une page PDF importée sur la page, suivant diverses options. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_fit_image | Niveau supérieur | PDF_fit_textflow


PDF_fit_textflow

(PECL)

PDF_fit_textflow -- Formate un flux de texte dans un espace rectangulaire

Description

string PDF_fit_textflow ( resource pdfdoc, int textflow, float llx, float lly, float urx, float ury, string optlist )

Formate la portion suivante d'un flux de texte dans un espace rectangulaire.

Précédent | Sommaire | Suivant
PDF_fit_pdi_page | Niveau supérieur | PDF_fit_textline


PDF_fit_textline

(PECL)

PDF_fit_textline -- Place un simple ligne de texte

Description

bool PDF_fit_textline ( resource pdfdoc, string text, float x, float y, string optlist )

Place une simple ligne de texte à une position précise. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_fit_textflow | Niveau supérieur | PDF_get_apiname


PDF_get_apiname

(PECL)

PDF_get_apiname -- Récupère le nom d'une fonction de l'API qui a échouée

Description

string PDF_get_apiname ( resource pdfdoc )

Récupère le nom d'une fonction de l'API qui a lancée la dernière exception ou qui a échouée.

Précédent | Sommaire | Suivant
PDF_fit_textline | Niveau supérieur | PDF_get_buffer


PDF_get_errmsg

(PECL)

PDF_get_errmsg -- Récupère le texte d'une erreur

Description

string PDF_get_errmsg ( resource pdfdoc )

Récupère le texte de la dernière exceptions lancée ou la raison de l'échec lors de l'appel d'une fonction.

Précédent | Sommaire | Suivant
PDF_get_buffer | Niveau supérieur | PDF_get_errnum


PDF_get_errnum

(PECL)

PDF_get_errnum -- Récupère un numéro d'erreur

Description

int PDF_get_errnum ( resource pdfdoc )

Récupère le numéro de la dernière exception lancée ou la raison de l'échec lors de l'appel d'une fonction.

Précédent | Sommaire | Suivant
PDF_get_errmsg | Niveau supérieur | PDF_get_font


PDF_info_textflow

(PECL)

PDF_info_textflow -- Récupère le statut d'un flux de texte

Description

float PDF_info_textflow ( resource pdfdoc, int textflow, string keyword )

Récupère le statut courant d'un flux de texte.

Précédent | Sommaire | Suivant
PDF_get_value | Niveau supérieur | PDF_initgraphics


PDF_load_font

(PECL)

PDF_load_font -- Cherche et prépare une police

Description

int PDF_load_font ( resource pdfdoc, string fontname, string encoding, string optlist )

Recherche une police et la prépare pour une utilisation ultérieure.

Précédent | Sommaire | Suivant
PDF_lineto | Niveau supérieur | PDF_load_iccprofile


PDF_load_iccprofile

(PECL)

PDF_load_iccprofile -- Cherche et prépare un profile ICC

Description

int PDF_load_iccprofile ( resource pdfdoc, string profilename, string optlist )

Recherche un profile ICC et le prépare pour une utilisation ultérieure.

Précédent | Sommaire | Suivant
PDF_load_font | Niveau supérieur | PDF_load_image


PDF_load_image

(PECL)

PDF_load_image -- Ouvre un fichier image

Description

int PDF_load_image ( resource pdfdoc, string imagetype, string filename, string optlist )

Ouvre un fichier image local ou un fichier image virtuel suivant diverses options.

Précédent | Sommaire | Suivant
PDF_load_iccprofile | Niveau supérieur | PDF_makespotcolor


PDF_process_pdi

(PECL)

PDF_process_pdi -- Traite un document PDF importé

Description

int PDF_process_pdi ( resource pdfdoc, int doc, int page, string optlist )

Traite certains éléments d'un document PDF importé.

Précédent | Sommaire | Suivant
PDF_place_pdi_page | Niveau supérieur | PDF_rect


PDF_resume_page

(PECL)

PDF_resume_page -- Réouvre une page

Description

bool PDF_resume_page ( resource pdfdoc, string optlist )

Réouvre une page pour y ajouter plus de contenus.

Précédent | Sommaire | Suivant
PDF_restore | Niveau supérieur | PDF_rotate


PDF_set_gstate

(PECL)

PDF_set_gstate -- Active un objet graphique

Description

bool PDF_set_gstate ( resource pdfdoc, int gstate )

Active un objet graphique.

Précédent | Sommaire | Suivant
PDF_set_duration | Niveau supérieur | PDF_set_horiz_scaling


PDF_set_layer_dependency

(PECL)

PDF_set_layer_dependency -- Définit les liens entre les interfaces

Description

bool PDF_set_layer_dependency ( resource pdfdoc, string type, string optlist )

Définit les hiérarchies et les groupes pour les interfaces. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Cette fonction nécessite PDF 1.5.

Précédent | Sommaire | Suivant
PDF_set_info | Niveau supérieur | PDF_set_leading


PDF_setdashpattern

(PECL)

PDF_setdashpattern -- Définit un modèle de masque

Description

bool PDF_setdashpattern ( resource pdfdoc, string optlist )

Définit un modèle de masque suivant une liste d'option. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
PDF_setdash | Niveau supérieur | PDF_setflat


PDF_shading

(PECL)

PDF_shading -- Définit un dégradé

Description

int PDF_shading ( resource pdfdoc, string shtype, float x0, float y0, float x1, float y1, float c1, float c2, float c3, float c4, string optlist )

Définit un dégradé depuis la couleur courante vers une autre couleur.

Cette fonction nécessite PDF 1.4 ou supérieur.

Précédent | Sommaire | Suivant
PDF_shading_pattern | Niveau supérieur | PDF_shfill


PDF_shading_pattern

(PECL)

PDF_shading_pattern -- Définit un masque d'ombrage

Description

int PDF_shading_pattern ( resource pdfdoc, int shading, string optlist )

Définit un masque d'ombrage en utilisant un objet d'ombrage.

Cette fonction nécessite PDF 1.4 ou supérieur.

Précédent | Sommaire | Suivant
PDF_setrgbcolor | Niveau supérieur | PDF_shading


PDF_shfill

(PECL)

PDF_shfill -- Remplit un espace avec un degradé

Description

bool PDF_shfill ( resource pdfdoc, int shading )

Remplit un espace avec un degradé, basé sur un objet de degradé.

Cette fonction nécessite PDF 1.4 ou supérieur.

Précédent | Sommaire | Suivant
PDF_shading | Niveau supérieur | PDF_show_boxed


PDF_suspend_page

(PECL)

PDF_suspend_page -- Suspend une page

Description

bool PDF_suspend_page ( resource pdfdoc, string optlist )

Suspend la page courante et peut donc être réouverte plus tard avec la fonction PDF_resume_page().

Précédent | Sommaire | Suivant
PDF_stroke | Niveau supérieur | PDF_translate


PDF_utf8_to_utf16

(PECL)

PDF_utf8_to_utf16 -- Convertit une chaîne UTF-8 en UTF-16

Description

string PDF_utf8_to_utf16 ( resource pdfdoc, string utf8string, string ordering )

Convertit une chaîne UTF-8 en UTF-16.

Précédent | Sommaire | Suivant
PDF_utf16_to_utf8 | Niveau supérieur | Fonctions PDO


PDF_utf16_to_utf8

(PECL)

PDF_utf16_to_utf8 -- Convertit une chaîne UTF-16 en UTF-8

Description

string PDF_utf16_to_utf8 ( resource pdfdoc, string utf16string )

Convertit une chaîne UTF-16 en UTF-8.

Précédent | Sommaire | Suivant
PDF_translate | Niveau supérieur | PDF_utf8_to_utf16


PDO->getAvailableDrivers()

(no version information, might be only in CVS)

PDO->getAvailableDrivers() -- Retourne un tableau des pilotes PDO disponibles

Description

class PDO {

array getAvailableDrivers ( void )

}

Cette fonction retourne tous les pilotes PDO actuellement disponibles qui peuvent être utilisés dans le paramètre DSN de PDO->__construct(). Il s'agit d'une méthode statique.

Valeurs de retour

PDO->getAvailableDrivers() retourne un tableau de noms de pilote PDO. S'il n'y a pas de pilote disponible, elle retourne un tableau vide.

Exemples

Exemple 1. Exemple avec PDO->getAvailableDrivers()

<?php
print_r(PDO::getAvailableDrivers());
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => mysql
    [1] => sqlite
)

Précédent | Sommaire | Suivant
PDO->getAttribute() | Niveau supérieur | PDO->lastInsertId()


PDO::pgsqlLOBCreate

(no version information, might be only in CVS)

PDO::pgsqlLOBCreate -- Crée un nouvel objet large

Description

string PDO::pgsqlLOBCreate ( void )

PDO::pgsqlLOBCreate() crée un objet large et retourne le OID de cet objet. Vous devrez alors ouvrir un flux sur cet objet en utilisant PDO::pgsqlLOBOpen() pour lire et écrire des données à l'intérieur. Le OID peut être enregistré en colonnes de type OID et doit être utilisé pour référencer l'objet large, sans pour autant augmenter arbitrairement la grandeur des lignes. L'objet large continuera a vivre dans la base de données tant qu'il n'est pas supprimé en appelant PDO::pgsqlLOBUnlink().

Les objets larges peuvent atteindre une taille jusqu'à 2GO, mais sont encombrant à utiliser; vous devez vous assurer que PDO::pgsqlLOBUnlink() est appelée avant de supprimer la dernière ligne qui fait référence son OID de votre base de données. De plus, les objets larges n'ont pas de contrôle d'accès. Comme alternative, essayez la colonne de type bytea; les nouvelles versions de PostgreSQL autorisent les colonnes bytea à atteindre une taille de 1GO et gère de manière transparente l'enregistrement pour avoir une ligne de taille optimale.

Note : Cette fonction doit être appelée à l'intérieur d'une transaction.

Liste de paramètres

PDO::pgsqlLOBCreate() ne prend aucun paramètre.

Valeurs de retour

Retourne le OID du nouvel objet large créé en cas de réussite ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec PDO::pgsqlLOBCreate()

Cet exemple crée un nouvel objet large et copie le contenu d'un fichier à l'intérieur. Le OID est alors enregistré dans une table.

<?php
$db = new PDO('pgsql:dbname=test host=localhost', $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$oid = $db->pgsqlLOBCreate();
$stream = $db->pgsqlLOBOpen($oid, 'w');
$local = fopen($filename, 'rb');
stream_copy_to_stream($local, $stream);
$local = null;
$stream = null;
$stmt = $db->prepare("INSERT INTO BLOBS (ident, oid) VALUES (?, ?)");
$stmt->execute(array($some_id, $oid));
$db->commit();
?>

Voir aussi

PDO::pgsqlLOBOpen()
PDO::pgsqlLOBUnlink()
pg_lo_create()

Précédent | Sommaire | Suivant
PDO_PGSQL DSN | Niveau supérieur | PDO::pgsqlLOBOpen


PDO::pgsqlLOBOpen

(no version information, might be only in CVS)

PDO::pgsqlLOBOpen -- Ouvre un flux existant de large objet

Description

resource PDO::pgsqlLOBOpen ( string oid [, string mode] )

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 en cas d'échec.

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', $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
fpassthru($lob);
?>

Voir aussi

PDO::pgsqlLOBCreate()
PDO::pgsqlLOBUnlink()
pg_lo_open()

Précédent | Sommaire | Suivant
PDO::pgsqlLOBCreate | Niveau supérieur | PDO::pgsqlLOBUnlink


PDO::pgsqlLOBUnlink

(no version information, might be only in CVS)

PDO::pgsqlLOBUnlink -- Supprime un objet large

Description

bool PDO::pgsqlLOBUnlink ( string oid )

Supprime un large objet de la base de données identifié par le OID.

Note : Cette fonction doit être appelée à l'intérieur d'une transaction.

Liste de paramètres

oid

Un identifiant d'objet large

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
PDO::pgsqlLOBCreate()

Précédent | Sommaire | Suivant
PDO::pgsqlLOBOpen | Niveau supérieur | Impression


PDO::sqliteCreateAggregate

(no version information, might be only in CVS)

PDO::sqliteCreateAggregate -- Référence une fonction définie par l'utilisateur agrégative pour utilisation dans les requêtes SQL

Description

bool PDO::sqliteCreateAggregate ( string function_name, callback step_func, callback finalize_func [, int num_args] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

PDO::sqliteCreateAggregate() est similaire à PDO::sqliteCreateFunction() à l'exception que cela référence les fonctions qui peuvent être utilisés pour calculer un résultat agrégé à travers toutes les lignes d'une requête.

La différence entre cette fonction et PDO::sqliteCreateFunction() est que deux fonctions sont requises pour gérer les agrégation; step_func est appelée pour chaque ligne dans le jeu de résultats. Votre fonction PHP devrait accumuler les résultats et les enregistrer dans un contexte agrégatif. Une fois que toutes les lignes ont été traitées, finalize_func sera appelée et elle devrait alors prendre les données du contexte agrégatif et retourner le résultat. Les fonctions de rappel devraient retourner un type connu par SQLite (c'est-à-dire type scalaire).

Liste de paramètres

function_name

Le nom de la fonction utilisé dans les requêtes SQL.

step_func

Fonction de rappel appelée pour chaque ligne dans le jeu de résultats.

finalize_func

Fonction de rappel pour agréger les "étapes" de données de chaque ligne.

num_args

Conseil à l'analyseur SQLite si la fonction de rappel accepte un nombre prédéterminé d'arguments.

Exemples

Exemple 1. Exemple d'agrégation avec une fonction max_length

<?php
$data = array(
   'un',
   'deux',
   'trois',
   'quatre',
   'cinq',
   'six',
   'sept',
   'huit',
   'neuf',
   'dix',
   );
$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, $string)
{
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context)
{
    return $context;
}

$db->sqliteCreateAggregate('max_len', 'max_len_step', 'max_len_finalize');

var_dump($db->query('SELECT max_len(a) from strings')->fetchAll());

?>

Dans cet exemple, on crée une fonction agrégative qui va calculer la longueur de la plus grande chaîne de caractères dans une des colonnes de la table. Pour chaque ligne, la fonction max_len_step est appelée et le paramètre context est passé. Le paramètre de contexte est comme n'importe quelle autre variable PHP et doit être fixé pour contenir un tableau ou même un objet. Dans cet exemple, nous l'utilisons pour contenir la taille maximale que nous avons vu jusqu'à présent; si le paramètre string a une grandeur plus grande 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é sur les données trouvées dans context. Dans notre exemple simple, nous avons calculer le résultat comme si la requête progressait, alors nous avons simplement besoin de retourner la valeur de contexte.

Astuce : Ce n'est PAS recommandé pour vous d'enregistrer une copie des valeurs dans le contexte et ensuite de les traiter à la fin, puisque vous devriez causer à SQLite d'utiliser énormément de mémoire pour traiter la requête - pensez seulement combien de mémoire serait nécessaire si un million de lignes étaient enregistrées en mémoire, chaque ligne contenant une chaîne de caractères contenant 32 octets en longueur.

Astuce : Vous pouvez utiliser PDO::sqliteCreateFunction() et PDO::sqliteCreateAggregate() pour surcharger les fonctions natives de SQLite.

Note : Cette méthode n'est pas disponible avec les pilotes de SQLite2. Utilisez l'ancien style de l'API sqlite pour cela à la place.

Voir aussi

PDO::sqliteCreateFunction()
sqlite_create_function()
sqlite_create_aggregate()

Précédent | Sommaire | Suivant
PDO_SQLITE DSN | Niveau supérieur | PDO::sqliteCreateFunction


PDO::sqliteCreateFunction

(no version information, might be only in CVS)

PDO::sqliteCreateFunction -- Référence une fonction définie par l'utilisateur pour utilisation dans les requêtes SQL

Description

bool PDO::sqliteCreateFunction ( string function_name, callback callback [, int num_args] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

PDO::sqliteCreateFunction() vous permet de référencer une fonction PHP avec SQLite comme étant un UDF (User Defined Function), alors elle peut être appelée à l'intérieure 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 et aussi dans les marqueurs.

Liste de paramètres

function_name

Le nom de la fonction utilisé dans les requêtes SQL.

callback

Fonction de rappel pour manipuler la fonction SQL définie.

Note : Les fonctions de rappel devraient retourner un type connu par SQLite (c'est-à-dire type scalaire).

num_args

Conseil à l'analyseur SQLite si la fonction de rappel accepte un nombre prédéterminé d'arguments.

Note : Deux syntaxes alternatives sont supportées pour assurer la compatibilité avec les autres bases de données (telles que MySQL) : la forme recommandée est la première, où le paramètre dbhandle est le premier dans la fonction.

Exemples

Exemple 1. Exemple avec PDO::sqliteCreateFunction()

<?php
function md5_et_renverse($string)
{
    return strrev(md5($string));
}

$db = new PDO('sqlite:sqlitedb');
$db->sqliteCreateFunction('md5rev', 'md5_et_renverse', 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() PDO::sqliteCreateAggregate() pour surcharger les fonctions natives de SQL.

Note : Cette méthode n'est pas disponible avec les pilotes de SQLite2. Utilisez l'ancien style de l'API sqlite pour cela à la place.

Voir aussi

PDO::sqliteCreateAggregate()
sqlite_create_function()
sqlite_create_aggregate()

Précédent | Sommaire | Suivant
PDO::sqliteCreateAggregate | Niveau supérieur | Shell2 sécurisé


PDOStatement->bindValue()

(no version information, might be only in CVS)

PDOStatement->bindValue() -- Associe une valeur à un paramètre

Description

class PDOStatement {

bool bindValue ( mixed parameter, mixed value [, int data_type] )

}

Associe une valeur à un nom correspondant ou à un point d'interrogation (comme paramètre fictif) dans la requête SQL qui fut utilisée pour préparer la requête.

Liste de paramètres

parameter

Identifiant du paramètre. Pour une requête préparée utilisant les marqueurs, cela sera un nom de paramètre de la forme :nom. Pour une requête préparée utilisant les points d'interrogation (comme paramètre fictif), cela sera un tableau indexé numériquement qui commence à la position 1 du paramètre.

value

La valeur à associer au paramètre.

data_type

Type de données explicite pour le paramètre utilisant les constantes PDO::PARAM_*.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exécute une requête préparée avec des marqueurs nommés

<?php
/* Exécute une requête préparée en associant des variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < :calories AND couleur = :couleur');
$sth->bindValue(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':couleur', $couleur, PDO::PARAM_STR);
$sth->execute();
?>

Exemple 2. Exécute une requête préparée avec des points d'interrogation comme paramètre fictif

<?php
/* Exécute une requête préparée en associant des variables PHP */
$calories = 150;
$couleur = 'rouge';
$sth = $dbh->prepare('SELECT nom, couleur, calories
    FROM fruit
    WHERE calories < ? AND couleur = ?');
$sth->bindValue(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $couleur, PDO::PARAM_STR);
$sth->execute();
?>

Voir aussi

PDO->prepare()
PDOStatement->execute()
PDOStatement->bindParam()

Précédent | Sommaire | Suivant
PDOStatement->bindParam() | Niveau supérieur | PDOStatement->closeCursor()


PDOStatement->closeCursor()

(no version information, might be only in CVS)

PDOStatement->closeCursor() -- Ferme le curseur, permettant à la requête d'être de nouveau exécutée

Description

class PDOStatement {

bool closeCursor ( void )

}

PDOStatement->closeCursor() libère la connexion du serveur, permettant ainsi à d'autres requêtes SQL d'être exécutées, mais quitte la requête, permettant ainsi qu'elle soit 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 driver (autorisant un maximum d'efficacité), ou en tant que fallback PDO générique si aucune fonction spécifique au driver n'est installée. Le fallback générique PDO est sémantiquement la même chose que d'écrire le code suivant dans votre script PHP :

<?php
do {
    while ($stmt->fetch())
        ;
    if (!$stmt->nextRowset())
        break;
} while (true);
?>

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
PDOStatement->bindValue() | Niveau supérieur | PDOStatement->columnCount()


PDOStatement->fetchColumn()

(no version information, might be only in CVS)

PDOStatement->fetchColumn() -- Retourne une colonne depuis la ligne suivante d'un jeu de résultats

Description

class PDOStatement {

string fetchColumn ( [int column_number] )

}

Retourne une colonne depuis la ligne suivante d'un jeu de résultats ou FALSE s'il n'y a plus de ligne.

Liste de paramètres

column_number

Numéro de la colonne que vous voulez récupérer depuis la ligne (commençant à 0). Si aucune valeur n'est fournie, PDOStatement->fetchColumn() récupérera la première colonne.

Valeurs de retour

PDOStatement->fetchColumn() retourne une colonne depuis la ligne suivante d'un jeu de résultats.

Avertissement

Il n'y a pas de solution pour retourner une autre colonne depuis la même ligne si vous utilisez la fonction PDOStatement->fetchColumn() pour récupérer les données.

Exemples

Exemple 1. Retourne la première colonne de la ligne suivante

<?php
$sth = $dbh->prepare("SELECT nom, couleur FROM fruit");
$sth->execute();

/* Récupère la première colonne depuis la ligne suivante d'un jeu de résultats */
print("Récupère la première colonne depuis la ligne suivante d'un jeu de résultats :\n");
$result = $sth->fetchColumn();
print("nom=$result\n");

print("Récupère la deuxième colonne depuis la ligne suivante d'un jeu de résultats :\n");
$result = $sth->fetchColumn();
print("couleur=$result\n");
?>

L'exemple ci-dessus va afficher :

Récupère la première colonne depuis la ligne suivante d'un jeu de résultats :
nom=lemon
Récupère la deuxième colonne depuis la ligne suivante d'un jeu de résultats :
couleur=orange

Voir aussi

PDO->query()
PDOStatement->fetch()
PDOStatement->fetchAll()
PDO->prepare()
PDOStatement->setFetchMode()

Précédent | Sommaire | Suivant
PDOStatement->fetchAll() | Niveau supérieur | PDOStatement->fetchObject()


PDOStatement->fetchObject()

(no version information, might be only in CVS)

PDOStatement->fetchObject() -- Récupère la prochaine ligne et la retourne en tant qu'objet

Description

class PDOStatement {

mixed fetchObject ( [string class_name [, array ctor_args]] )

}

Récupère la prochaine ligne et la retourne en tant qu'objet. Cette fonction
est une alternative à PDOStatement->fetch() avec
PDO::FETCH_CLASS ou le style
PDO::FETCH_OBJ.

Liste de paramètres

class_name

Nom de la classe créée, la valeur par défaut est stdClass.

ctor_args

Éléments de ce tableau sont passés au constructeur.

Valeurs de retour

Retourne une instance de la classe demandée avec les propriétés de noms qui correspondent aux noms des colonnes ou FALSE en cas d'une erreur.

Voir aussi

PDOStatement->fetch()

Précédent | Sommaire | Suivant
PDOStatement->fetchColumn() | Niveau supérieur | PDOStatement->getAttribute()


pg_fetch_all_columns

(PHP 5 >= 5.1.0RC1)

pg_fetch_all_columns -- Récupère toutes les lignes d'une colonne de résultats particulière en tant que tableau

Description

array pg_fetch_all_columns ( resource result [, int column] )

pg_fetch_all_columns() retourne un tableau qui contient toutes les lignes (enregistrements) d'une colonne particulière d'une ressource de résultats.

Note : Cette fonction définit les champs NULL à la valeur PHP NULL.

Liste de paramètres

result

Ressource de résultats d'une requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).

column

Numéro de la colonne, commençant à 0, à récupérer depuis la ressource de résultats. Par défaut, la première colonne si ce paramètre n'est pas spécifié.

Valeurs de retour

Un tableau contenant toutes les valeurs d'une colonne du résultat.

FALSE est retourné si column est plus grand que le nombre de colonnes du résultat ou si toutes autres erreurs surviennent.

Exemples

Exemple 1. Exemple avec pg_fetch_all_columns()

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Une erreur est survenue.\n";
  exit;
}

$result = pg_query($conn, "SELECT title, name, address FROM authors");
if (!$result) {
  echo "Une erreur est survenue.\n";
  exit;
}

// Récupère un tableau contenant tous les noms d'auteurs
$arr = pg_fetch_all_columns($result, 1);

var_dump($arr);

?>

Voir aussi

pg_fetch_all()

Précédent | Sommaire | Suivant
pg_execute | Niveau supérieur | pg_fetch_all


pg_field_table

(no version information, might be only in CVS)

pg_field_table -- Retourne le nom ou l'oid d'une table

Description

mixed pg_field_table ( resource result, int field_number, bool oid_only )

pg_field_table() retourne le nom de la table à laquel le champ appartient ou l'oid de la table si le paramètre oid_only vaut TRUE.

Liste de paramètres

result

Ressource du résultat d'une requête PostgreSQL, retournée par la fonction pg_query(), pg_query_params() ou pg_execute() (et d'autres).

field_number

Numéro du champ, commençant à 0.

oid_only

Par défaut, le nom de la table à laquel le champ appartient est retourné mais si le paramètre oid_only est défini à TRUE, alors, ce sera l'oid qui sera retourné.

Valeurs de retour

En cas de succès, le nom de la table ou l'oid, FALSE en cas d'échec.

Exemples

Exemple 1. Récupération des informations d'une table à partir d'un champ

<?php
$dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");

$res = pg_query($dbconn, "SELECT bar FROM foo");

echo pg_field_table($res, 0);
echo pg_field_table($res, 0, true);

$res = pg_query($dbconn, "SELECT version()");
var_dump(pg_field_table($res, 0));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

foo
14379580

bool(false)

Notes

Note : Retourner l'oid est plus rapide que de retourner le nom de la table car la récupération du nom de la table nécessite une requête sur la table système de la base de données.

Voir aussi

pg_field_name()
pg_field_type()

Précédent | Sommaire | Suivant
pg_field_size | Niveau supérieur | pg_field_type_oid


pg_transaction_status

(PHP 5 >= 5.1.0RC1)

pg_transaction_status -- Retourne le statut de la transaction en cours du serveur

Description

int pg_transaction_status ( resource connection )

Retourne le statut de la transaction en cours du serveur.

Attention

pg_transaction_status() donnera de mauvais résultats lorsque vous l'utiliserez avec un serveur PostgreSQL 7.3 qui a le paramètre autocommit désactivé. La fonctionnalité de autocommit est dépréciée et n'existe plus dans les versions de serveur plus récentes.

Liste de paramètres

connection

Ressource de connexion de base de données PostgreSQL.

Valeurs de retour

Le statut peut être PGSQL_TRANSACTION_IDLE (actuellement inactif), PGSQL_TRANSACTION_ACTIVE (une commande est en cours), PGSQL_TRANSACTION_INTRANS (inactif, dans un bloc de transaction valide), ou PGSQL_TRANSACTION_INERROR (inactif, dans un bloc de transaction en échec). PGSQL_TRANSACTION_UNKNOWN est retourné si la connexion est mauvaise. PGSQL_TRANSACTION_ACTIVE est retourné seulement si la requête a été envoyée au serveur et que celle-ci n'a pas été encore complétée.

Exemples

Exemple 1. Exemple avec pg_transaction_status()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");
  $stat = pg_transaction_status($dbconn);
  if ($stat === PGSQL_TRANSACTION_UNKNOWN) {
      echo 'Connexion mauvaise';
  } else if ($stat === PGSQL_TRANSACTION_IDLE) {
      echo 'Connexion actuellement inactive';
  } else {
      echo 'Connexion est en cours de transaction';
  }
?>

Précédent | Sommaire | Suivant
pg_trace | Niveau supérieur | pg_tty


Phar::apiVersion

(no version information, might be only in CVS)

Phar::apiVersion -- Returns the api version

Description

string Phar::apiVersion ( void )

Return the API version of the phar file format that will be used when creating phars. The Phar extension supports reading API version 1.0.0 or newer.

Liste de paramètres

Valeurs de retour

The API version string as in "1.0.0".

Exemples

Exemple 1. A Phar::apiVersion() example

<?php
echo Phar::apiVersion();
?>

L'exemple ci-dessus va afficher :

1.0.0

Précédent | Sommaire | Suivant
Phar archive stream and classes | Niveau supérieur | Phar::canCompress


Phar::canCompress

(no version information, might be only in CVS)

Phar::canCompress -- Returns whether phar extension supports compression using either zlib or bzip2

Description

bool Phar::canCompress ( [int type] )

This should be used to test whether compression is possible prior to loading a phar archive containing compressed files.

Liste de paramètres

type

Either Phar::GZ or Phar::BZ2 can be used to test whether compression is possible with a specific compression algorithm (zlib or bzip2).

Valeurs de retour

TRUE if compression/decompression is available, FALSE if not.

Exemples

Exemple 1. A Phar::canCompress() example

<?php
if (Phar::canCompress()) {
    echo file_get_contents('phar://compressedphar.phar/internal/file.txt');
} else {
    echo 'no compression available';
}
?>

Voir aussi

PharFileInfo::isCompressed()

Précédent | Sommaire | Suivant
Phar::apiVersion | Niveau supérieur | Phar::canWrite


Phar::canWrite

(no version information, might be only in CVS)

Phar::canWrite -- Returns whether phar extension supports writing and creating phars

Description

bool Phar::canWrite ( void )

This method determines whether write access has been disabled in the system php.ini via the phar.readonly ini variable.

Liste de paramètres

Valeurs de retour

TRUE if write access is enabled, FALSE if it is disabled.

Exemples

Exemple 1. A Phar::canWrite() example

<?php
if (Phar::canWrite()) {
    file_put_contents('phar://myphar.phar/file.txt', 'hi there');
}
?>

Voir aussi

phar.readonly

Précédent | Sommaire | Suivant
Phar::canCompress | Niveau supérieur | Phar->compressAllFilesBZIP2


Phar->compressAllFilesBZIP2

(no version information, might be only in CVS)

Phar->compressAllFilesBZIP2 -- Compresses all files in the current Phar archive using Bzip2 compression

Description

bool Phar->compressAllFilesBZIP2 ( void )

This method compresses all files in the Phar archive using bzip2 compression. The bzip2 extension must be enabled to take advantage of this feature. In addition, if any files are already compressed using gzip compression, the zlib extension must be enabled in order to decompress the files prior to re-compressing with bzip2 compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Erreurs / Exceptions

Throws BadMethodCallException if the phar.readonly INI variable is on, the bzip2 extension is not available, or if any files are compressed using gzip compression and the zlib extension is not enabled.

Exemples

Exemple 1. A Phar->compressAllFilesBZIP2() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
$p->compressAllFilesBZIP2();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
?>

L'exemple ci-dessus va afficher :

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
bool(true)
bool(true)
bool(false)
string(11) "myfile2.txt"
bool(true)
bool(true)
bool(false)

Voir aussi

PharFileInfo->isCompressedGZ()
PharFileInfo->isCompressed()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCompressed()
Phar->uncompressAllFiles()
Phar->compressAllFilesGZ()

Précédent | Sommaire | Suivant
Phar::canWrite | Niveau supérieur | Phar->compressAllFilesGZ


Phar->compressAllFilesGZ

(no version information, might be only in CVS)

Phar->compressAllFilesGZ -- Compresses all files in the current Phar archive using Gzip compression

Description

bool Phar->compressAllFilesGZ ( void )

This method compresses all files in the Phar archive using gzip compression. The zlib extension must be enabled to take advantage of this feature. In addition, if any files are already compressed using bzip2 compression, the bzip2 extension must be enabled in order to decompress the files prior to re-compressing with gzip compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Erreurs / Exceptions

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

Exemples

Exemple 1. A Phar->compressAllFilesGZ() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
$p->compressAllFilesGZ();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
?>

L'exemple ci-dessus va afficher :

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
bool(true)
bool(false)
bool(true)
string(11) "myfile2.txt"
bool(true)
bool(false)
bool(true)

Voir aussi

PharFileInfo->getCompressedSize()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCompressed()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCompressed()
Phar->uncompressAllFiles()
Phar->compressAllFilesBZIP2()

Précédent | Sommaire | Suivant
Phar->compressAllFilesBZIP2 | Niveau supérieur | Phar::__construct


Phar::__construct

(no version information, might be only in CVS)

Phar::__construct -- Construct a Phar archive object

Description

void Phar::__construct ( string fname [, int flags [, string alias]] )

Liste de paramètres

fname

Path to an existing Phar archive

flags

flags to pass to parent class RecursiveDirectoryIterator. See SPL RecursiveDirectoryIterator docs

alias

Alias with which this Phar archive should be referred to in calls to stream functionality.

Erreurs / Exceptions

Throws BadMethodCallException if called twice, UnexpectedValueException if the phar archive can't be opened.

Exemples

Exemple 1. A Phar::__construct() example

<?php
try {
    $p = new Phar('/path/to/my.phar', CURRENT_AS_FILEINFO | KEY_AS_FILENAME,
                  'my.phar');
} catch (UnexpectedValueException $e) {
    die('Could not open my.phar');
} catch (BadMethodCallException $e) {
    echo 'technically, this cannot happen';
}
// this works now
echo file_get_contents('phar://my.phar/example.txt');
// and works as if we had typed
echo file_get_contents('phar:///path/to/my.phar/example.txt');
?>

Précédent | Sommaire | Suivant
Phar->compressAllFilesGZ | Niveau supérieur | Phar->count


Phar->count

(no version information, might be only in CVS)

Phar->count -- Returns the number of entries (files) in the Phar archive

Description

int Phar->count ( void )

Liste de paramètres

Valeurs de retour

The number of files contained within this phar, or 0 (the number zero) if none.

Exemples

Exemple 1. A Phar->count() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
} catch (Exception $e) {
    echo 'Could not create phar:', $e;
}
echo 'The new phar has ' . $p->count() . " entries\n";
$p['file.txt'] = 'hi';
echo 'The new phar has ' . $p->count() . " entries\n";
?>

L'exemple ci-dessus va afficher :

The new phar has 0 entries
The new phar has 1 entries

Précédent | Sommaire | Suivant
Phar::__construct | Niveau supérieur | Phar->getMetaData


Phar->getMetaData

(no version information, might be only in CVS)

Phar->getMetaData -- Returns phar archive meta-data

Description

int Phar->getMetaData ( void )

Liste de paramètres

Valeurs de retour

any PHP variable that can be serialized and is stored as meta-data for the Phar archive, or NULL if no meta-data is stored.

Exemples

Exemple 1. A Phar->getMetaData() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
} catch (Exception $e) {
    echo 'Could not create phar:', $e;
}
$p['file.php'] = '<?php echo "hello";';
$p->setMetaData(array('bootstrap' => 'file.php'));
var_dump($p->getMetaData());
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

Voir aussi

PharFileInfo->setMetaData()

Précédent | Sommaire | Suivant
Phar->count | Niveau supérieur | Phar->getModified


Phar->getModified

(no version information, might be only in CVS)

Phar->getModified -- Return whether phar was modified

Description

bool Phar->getModified ( void )

This method can be used to determine whether a phar has either had an internal file deleted, or contents of a file changed in some way.

Liste de paramètres

Valeurs de retour

TRUE if the phar has been modified since opened, FALSE if not.

Précédent | Sommaire | Suivant
Phar->getMetaData | Niveau supérieur | Phar->getSignature


Phar->getSignature

(no version information, might be only in CVS)

Phar->getSignature -- Return MD5/SHA1 signature of a Phar archive

Description

array Phar->getSignature ( void )

Returns the verification signature of a phar archive in a hexadecimal string.

Liste de paramètres

Valeurs de retour

Array with the opened archive's signature in "hash" key and "md5" or "sha1" in "hash_type". This signature is a hash calculated on the entire phar's contents, and may be used to verify the integrity of the archive. A valid signature is absolutely required of all phars if the phar.require_hash INI variable is set to true.

Précédent | Sommaire | Suivant
Phar->getModified | Niveau supérieur | Phar->getStub


Phar->getStub

(no version information, might be only in CVS)

Phar->getStub -- Return the PHP loader or bootstrap stub of a Phar archive

Description

string Phar->getStub ( void )

One of the features that differentiates a Phar archive from other familiar archive formats like tar or zip is that a Phar archive is explicitly designed to be included to allow distributing an application or library that can be run without extraction directly from the archive. In order to accomplish this, Phar archives contain a bootstrap loader, or stub written in PHP that can perform any action.

Avertissement

All stubs must end with __HALT_COMPILER(); or the file is not a valid Phar archive.

Valeurs de retour

Returns a string containing the contents of the bootstrap loader (stub) of the current Phar archive.

Erreurs / Exceptions

Throws RuntimeException if it is not possible to read the stub from the Phar archive.

Exemples

Exemple 1. A Phar->getStub() example

$p = new Phar('/path/to/my.phar', 0, 'my.phar');
echo $p->getStub();
echo "==NEXT==\n";
$p->setStub("<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER();");
echo $p->getStub();

L'exemple ci-dessus va afficher :

<?php __HALT_COMPILER();
==NEXT==
<?php
function __autoload($class)
{
    include 'phar://' . str_replace('_', '/', $class);
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER();

Voir aussi

Phar->setStub()

Précédent | Sommaire | Suivant
Phar->getSignature | Niveau supérieur | Phar->getVersion


Phar->getVersion

(no version information, might be only in CVS)

Phar->getVersion -- Return version info of Phar archive

Description

string Phar->getVersion ( void )

Returns the API version of an opened Phar archive.

Liste de paramètres

Valeurs de retour

The opened archive's API version. This is not to be confused with the API version that the loaded phar extension will use to create new phars. Each Phar archive has the API version hard-coded into its manifest. See Phar file format documentation for more information.

Voir aussi

Phar::apiVersion()

Précédent | Sommaire | Suivant
Phar->getStub | Niveau supérieur | Phar->isBuffering


Phar->isBuffering

(no version information, might be only in CVS)

Phar->isBuffering -- Used to determine whether Phar write operations are being buffered, or are flushing directly to disk

Description

void Phar->isBuffering ( void )

This method can be used to determine whether a Phar will save changes to disk immediately, or whether a call to Phar->stopBuffering() is needed to enable saving changes.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

Exemples

Exemple 1. A Phar->isBuffering() example

<?php
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p2 = new Phar('existingphar.phar');
$p['file1.txt'] = 'hi';
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()
Phar->stopBuffering()

Précédent | Sommaire | Suivant
Phar->getVersion | Niveau supérieur | Phar::loadPhar


Phar::loadPhar

(no version information, might be only in CVS)

Phar::loadPhar -- Loads any phar archive with an alias

Description

bool Phar::loadPhar ( string filename [, string alias] )

This can be used to read the contents of an external Phar archive. This is most useful for assigning an alias to a phar so that subsequent references to the phar can use the shorter alias, or for loading Phar archives that only contain data and are not intended for execution/inclusion in PHP scripts.

Liste de paramètres

filename

the full or relative path to the phar archive to open

alias

The alias that may be used to refer to the phar archive. Note that many phar archives specify an explicit alias inside the phar archive, and a PharException will be thrown if a new alias is specified in this case.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Erreurs / Exceptions

PharException is thrown if an alias is passed in and the phar archive already has an explicit alias

Exemples

Exemple 1. A Phar::loadPhar() example

Phar::loadPhar can be used anywhere to load an external Phar archive, whereas Phar::mapPhar should be used in a loader stub for a Phar.

<?php
try {
    Phar::loadPhar('/path/to/phar.phar', 'my.phar');
    echo file_get_contents('phar://my.phar/file.txt');
} catch (PharException $e) {
    echo $e;
}
?>

Voir aussi

Phar::mapPhar()

Précédent | Sommaire | Suivant
Phar->isBuffering | Niveau supérieur | Phar::mapPhar


Phar::mapPhar

(no version information, might be only in CVS)

Phar::mapPhar -- Reads the currently executed file (a phar) and registers its manifest

Description

bool Phar::mapPhar ( [string alias] )

This static method can only be used inside a Phar archive's loader stub in order to initialize the phar when it is directly executed, or when it is included in another script.

Liste de paramètres

alias

The alias with which this phar should be referred to.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Erreurs / Exceptions

PharException is thrown if not called directly within PHP execution, if no __HALT_COMPILER(); token is found in the current source file, or if the file cannot be opened for reading.

Exemples

Exemple 1. A Phar::mapPhar() example

mapPhar should be used only inside a phar's loader stub. Use loadPhar to load an external phar into memory.

Here is a sample Phar loader stub that uses mapPhar.

<?php
function __autoload($class)
{
    include 'phar://me.phar/' . str_replace('_', '/', $class) . '.php';
}
try {
    Phar::mapPhar('me.phar');
    include 'phar://me.phar/startup.php';
} catch (PharException $e) {
    echo $e->getMessage();
    die('Cannot initialize Phar');
}
__HALT_COMPILER();

Voir aussi

Phar::loadPhar()

Précédent | Sommaire | Suivant
Phar::loadPhar | Niveau supérieur | Phar::offsetExists


Phar::offsetExists

(no version information, might be only in CVS)

Phar::offsetExists -- determines whether a file exists in the phar

Description

bool Phar::offsetExists ( string offset )

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets.

offsetExists() is called whenever isset() is called.

Liste de paramètres

offset

The filename (relative path) to look for in a Phar.

Valeurs de retour

Returns TRUE if the file exists within the phar, or FALSE if not.

Exemples

Exemple 1. A Phar::offsetExists() example

<?php
$p = new Phar(dirname(__FILE__) . '/my.phar', 0, 'my.phar');
$p['firstfile.txt'] = 'first file';
$p['secondfile.txt'] = 'second file';
// the next set of lines call offsetExists() indirectly
var_dump(isset($p['firstfile.txt']));
var_dump(isset($p['nothere.txt']));
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi

Phar::offsetGet()
Phar::offsetSet()
Phar::offsetUnset()

Précédent | Sommaire | Suivant
Phar::mapPhar | Niveau supérieur | Phar::offsetGet


Phar::offsetGet

(no version information, might be only in CVS)

Phar::offsetGet -- get a PharFileInfo object for a specific file

Description

int Phar::offsetGet ( string offset )

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. offsetGet is used for retrieving files from a Phar archive.

Liste de paramètres

offset

The filename (relative path) to look for in a Phar.

Valeurs de retour

A PharFileInfo object is returned that can be used to iterate over a file's contents or to retrieve information about the current file.

Erreurs / Exceptions

This method throws BadMethodCallException if the file does not exist in the Phar archive.

Exemples

Exemple 1. A Phar::offsetGet() example

As with all classes that implement the ArrayAccess interface, offsetGet is automatically called when using the [] angle bracket operator

<?php
$p = new Phar(dirname(__FILE__) . '/myphar.phar', 0, 'myphar.phar');
$p['exists.txt'] = "file exists\n";
try {
    // automatically calls offsetGet()
    echo $p['exists.txt'];
    echo $p['doesnotexist.txt'];
} catch (BadMethodCallException $e) {
    echo $e;
}
?>

L'exemple ci-dessus va afficher :

file exists
Entry doesnotexist.txt does not exist

Voir aussi

Phar::offsetExists()
Phar::offsetSet()
Phar::offsetUnset()

Précédent | Sommaire | Suivant
Phar::offsetExists | Niveau supérieur | Phar::offsetSet


Phar::offsetSet

(no version information, might be only in CVS)

Phar::offsetSet -- set the contents of an internal file to those of an external file

Description

void Phar::offsetSet ( string offset, string value )

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. offsetSet is used for modifying an existing file, or adding a new file to a Phar archive.

Liste de paramètres

offset

The filename (relative path) to modify in a Phar.

value

Content of the file.

Valeurs de retour

No return values.

Erreurs / Exceptions

if phar.readonly is 1, BadMethodCallException is thrown, as modifying a Phar is only allowed when phar.readonly is set to 0. Throws PharException if there are any problems flushing changes made to the Phar archive to disk.

Exemples

Exemple 1. A Phar::offsetSet() example

offsetSet should not be accessed directly, but instead used via array access with the [] operator.

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
    // calls offsetSet
    $p['file.txt'] = 'Hi there';
} catch (Exception $e) {
    echo 'Could not modify file.txt:', $e;
}
?>

Voir aussi

Phar::offsetExists()
Phar::offsetGet()
Phar::offsetUnset()

Précédent | Sommaire | Suivant
Phar::offsetGet | Niveau supérieur | Phar::offsetUnset


Phar::offsetUnset

(no version information, might be only in CVS)

Phar::offsetUnset -- remove a file from a phar

Description

bool Phar::offsetUnset ( string offset )

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. offsetUnset is used for deleting an existing file, and is called by the unset() language construct.

Liste de paramètres

offset

The filename (relative path) to modify in a Phar.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Erreurs / Exceptions

if phar.readonly is 1, BadMethodCallException is thrown, as modifying a Phar is only allowed when phar.readonly is set to 0. Throws PharException if there are any problems flushing changes made to the Phar archive to disk.

Exemples

Exemple 1. A Phar::offsetUnset() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
    // deletes file.txt from my.phar by calling offsetUnset
    unset($p['file.txt']);
} catch (Exception $e) {
    echo 'Could not delete file.txt: ', $e;
}
?>

Voir aussi

Phar::offsetExists()
Phar::offsetGet()
Phar::offsetSet()

Précédent | Sommaire | Suivant
Phar::offsetSet | Niveau supérieur | Phar->setMetaData


Phar->setMetaData

(no version information, might be only in CVS)

Phar->setMetaData -- Sets phar archive meta-data

Description

int Phar->setMetaData ( mixed metadata )

setMetaData() should only be used to store customized data that describes something about the phar archive as a complete entity. PharFileInfo->setMetaData() should be used for file-specific meta-data. Meta-data can significantly slow down the performance of loading a phar archive if the data is large. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Some possible uses for meta-data include specifying which file within the archive should be used to bootstrap the archive, or the location of a file manifest like PEAR's package.xml file. However, any useful data that describes the phar archive may be stored.

Liste de paramètres

metadata

Any PHP variable containing information to store that describes the phar archive

Exemples

Exemple 1. A Phar->setMetaData() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.php'] = '<?php echo "hello"';
    $p->setMetaData(array('bootstrap' => 'file.php'));
    var_dump($p->getMetaData());
} catch (Exception $e) {
    echo 'Could not create and/or modify phar:', $e;
}
?>

L'exemple ci-dessus va afficher :

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

Voir aussi

Phar->getMetaData()

Précédent | Sommaire | Suivant
Phar::offsetUnset | Niveau supérieur | Phar->setStub


Phar->setStub

(no version information, might be only in CVS)

Phar->setStub -- Used to set the PHP loader or bootstrap stub of a Phar archive

Description

void Phar->setStub ( string stub )

This method is used to add a PHP bootstrap loader stub to a new Phar archive, or to replace the loader stub in an existing Phar archive.

The loader stub for a Phar archive is used whenever an archive is included directly as in this example:

<?php
include 'myphar.phar';
?>

The loader is not accessed when including a file through the phar stream wrapper like so:

<?php
include 'phar://myphar.phar/somefile.php';
?>

Erreurs / Exceptions

UnexpectedValueException is thrown if phar.readonly is enabled in php.ini. PharException is thrown if any problems are encountered flushing changes to disk.

Exemples

Exemple 1. A Phar->setStub() example

<?php
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['a.php'] = '<?php var_dump("Hello");';
    $p->setStub('<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>');
    include 'phar://brandnewphar.phar/a.php';
    var_dump($p->getStub());
    $p['b.php'] = '<?php var_dump("World");';
    $p->setStub('<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>');
    include 'phar://brandnewphar.phar/b.php';
    var_dump($p->getStub());
} catch (Exception $e) {
    echo 'Write operations failed on brandnewphar.phar: ', $e;
}
?>

L'exemple ci-dessus va afficher :

string(5) "Hello"
string(82) "<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"
string(5) "World"
string(83) "<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"

Voir aussi

Phar->getStub()

Précédent | Sommaire | Suivant
Phar->setMetaData | Niveau supérieur | Phar->startBuffering


Phar->startBuffering

(no version information, might be only in CVS)

Phar->startBuffering -- Start buffering Phar write operations, do not modify the Phar object on disk

Description

void Phar->startBuffering ( void )

Although technically unnecessary, the startBuffering() method can provide a significant performance boost when creating or modifying a Phar archive with a large number of files. Ordinarily, every time a file within a Phar archive is created or modified in any way, the entire Phar archive will be recreated with the changes. In this way, the archive will be up-to-date with the activity performed on it.

However, this can be unnecessary when simply creating a new Phar archive, when it would make more sense to write the entire archive out at once. Similarly, it is often necessary to make a series of changes and to ensure that they all are possible before making any changes on disk, similar to the relational database concept of transactions. the startBuffering()/stopBuffering() pair of methods is provided for this purpose.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

Exemples

Exemple 1. A Phar->startBuffering() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
} catch (Exception $e) {
    echo 'Could not create phar:', $e;
}
echo 'The new phar has ' . $p->count() . " entries\n";
$p->startBuffering();
$p['file.txt'] = 'hi';
$p['file2.txt'] = 'there';
$p['file2.txt']->setCompressedGZ();
$p['file3.txt'] = 'babyface';
$p['file3.txt']->setMetaData(42);
$p->setStub("<?php
function __autoload($class)
{
    include 'phar://myphar.phar/' . str_replace('_', '/', $class) . '.php';
}
Phar::mapPhar('myphar.phar');
include 'phar://myphar.phar/startup.php';
__HALT_COMPILER();");
$p->stopBuffering();
?>

Voir aussi

Phar->stopBuffering()
Phar->isBuffering()

Précédent | Sommaire | Suivant
Phar->setStub | Niveau supérieur | Phar->stopBuffering


Phar->stopBuffering

(no version information, might be only in CVS)

Phar->stopBuffering -- Stop buffering write requests to the Phar archive, and save changes to disk

Description

void Phar->stopBuffering ( void )

stopBuffering() is used in conjunction with the startBuffering() method. startBuffering() can provide a significant performance boost when creating or modifying a Phar archive with a large number of files. Ordinarily, every time a file within a Phar archive is created or modified in any way, the entire Phar archive will be recreated with the changes. In this way, the archive will be up-to-date with the activity performed on it.

However, this can be unnecessary when simply creating a new Phar archive, when it would make more sense to write the entire archive out at once. Similarly, it is often necessary to make a series of changes and to ensure that they all are possible before making any changes on disk, similar to the relational database concept of transactions. The startBuffering()/stopBuffering() pair of methods is provided for this purpose.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

Erreurs / Exceptions

PharException is thrown if any problems are encountered flushing changes to disk.

Exemples

Exemple 1. A Phar->stopBuffering() example

<?php
$p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
$p['file1.txt'] = 'hi';
$p->startBuffering();
var_dump($p->getStub());
$p->setStub("<?php
function __autoload(\$class)
{
    include 'phar://brandnewphar.phar/' . str_replace('_', '/', \$class) . '.php';
}
Phar::mapPhar('brandnewphar.phar');
include 'phar://brandnewphar.phar/startup.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('brandnewphar.phar');
include 'phar://brandnewphar.phar/startup.php';
__HALT_COMPILER();"

Voir aussi

Phar->startBuffering()
Phar->isBuffering()

Précédent | Sommaire | Suivant
Phar->startBuffering | Niveau supérieur | Phar->uncompressAllFiles


Phar->uncompressAllFiles

(no version information, might be only in CVS)

Phar->uncompressAllFiles -- Uncompresses all files in the current Phar archive

Description

bool Phar->uncompressAllFiles ( void )

This method decompresses all files in the Phar archive. If any files are already compressed using gzip compression, the zlib extension must be enabled in order to decompress the files, and any files compressed using bzip2 compression require the bzip2 extension to decompress the files. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Erreurs / Exceptions

Throws BadMethodCallException if the phar.readonly INI variable is on, the bzip2 extension is not enabled and any files are compressed using bzip2 compression, or if any files are compressed using gzip compression and the zlib extension is not enabled.

Exemples

Exemple 1. A Phar->uncompressAllFiles() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p->compressAllFilesGZ();
    foreach ($p as $file) {
        var_dump($file->getFileName());
        var_dump($file->isCompressed());
        var_dump($file->isCompressedBZIP2());
        var_dump($file->isCompressedGZ());
    }
    $p->uncompressAllFiles();
    foreach ($p as $file) {
        var_dump($file->getFileName());
        var_dump($file->isCompressed());
        var_dump($file->isCompressedBZIP2());
        var_dump($file->isCompressedGZ());
    }
} catch (Exception $e) {
    echo 'Write operations failed on my.phar: ', $e;
}
?>

L'exemple ci-dessus va afficher :

string(10) "myfile.txt"
bool(true)
bool(false)
bool(true)
string(11) "myfile2.txt"
bool(true)
bool(false)
bool(true)
string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)

Voir aussi

PharFileInfo->isCompressedGZ()
PharFileInfo->isCompressed()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCompressed()
Phar->compressAllFilesBZIP2()
Phar->compressAllFilesGZ()

Précédent | Sommaire | Suivant
Phar->stopBuffering | Niveau supérieur | PharFileInfo->chmod


PharFileInfo->chmod

(no version information, might be only in CVS)

PharFileInfo->chmod -- Sets file-specific meta-data saved with a file

Description

void PharFileInfo->chmod ( int permissions )

PharFileInfo->chmod() allows setting of the executable file permissions bit, as well as read-only bits. Writeable bits are ignored, and set at runtime based on the phar.readonly INI variable.

Liste de paramètres

permissions

permissions (see chmod())

Exemples

Exemple 1. A PharFileInfo->chmod() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.sh'] = '#!/usr/local/lib/php
    <?php echo "hi"; ?>';
    // set executable bit
    $p['file.sh']->chmod(0555);
    var_dump($p['file.sh']->isExecutable());
} catch (Exception $e) {
    echo 'Could not create/modify phar: ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(true)

Précédent | Sommaire | Suivant
Phar->uncompressAllFiles | Niveau supérieur | PharFileInfo::__construct


PharFileInfo::__construct

(no version information, might be only in CVS)

PharFileInfo::__construct -- Construct a Phar entry object

Description

void PharFileInfo::__construct ( string entry )

This should not be called directly. Instead, a PharFileInfo object is initialized by calling Phar::offsetGet() through array access.

Liste de paramètres

entry

The full url to retrieve a file. If you wish to retrieve the information for the file my/file.php from the phar boo.phar, the entry should be phar://boo.phar/my/file.php.

Erreurs / Exceptions

Throws BadMethodCallException if __construct() is called twice. Throws UnexpectedValueException if the phar URL requested is malformed, the requested phar cannot be opened, or the file can't be found within the phar.

Exemples

Exemple 1. A PharFileInfo::__construct() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['testfile.txt'] = "hi\nthere\ndude";
    $file = $p['testfile.txt'];
    foreach ($file as $line => $text) {
        echo "line number $line: $text";
    }
    // this also works
    $file = new PharFileInfo('phar:///path/to/my.phar/testfile.txt');
    foreach ($file as $line => $text) {
        echo "line number $line: $text";
    }
} catch (Exception $e) {
    echo 'Phar operations failed: ', $e;
}
?>

L'exemple ci-dessus va afficher :

line number 1: hi
line number 2: there
line number 3: dude
line number 1: hi
line number 2: there
line number 3: dude

Précédent | Sommaire | Suivant
PharFileInfo->chmod | Niveau supérieur | PharFileInfo->getCompressedSize


PharFileInfo->getCompressedSize

(no version information, might be only in CVS)

PharFileInfo->getCompressedSize -- Returns the actual size of the file (with compression) inside the Phar archive

Description

int PharFileInfo->getCompressedSize ( void )

This returns the size of the file within the Phar archive. Uncompressed files will return the same value for getCompressedSize as they will with filesize()

Valeurs de retour

The size in bytes of the file within the Phar archive on disk.

Exemples

Exemple 1. A PharFileInfo->getCompressedSize() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    echo $file->getCompressedSize();
} catch (Exception $e) {
    echo 'Write operations failed on my.phar: ', $e;
}
?>

L'exemple ci-dessus va afficher :

2

Voir aussi

PharFileInfo->isCompressed()

Précédent | Sommaire | Suivant
PharFileInfo::__construct | Niveau supérieur | PharFileInfo->getCRC32


PharFileInfo->getCRC32

(no version information, might be only in CVS)

PharFileInfo->getCRC32 -- Returns CRC32 code or throws an exception if not CRC checked

Description

int PharFileInfo->getCRC32 ( void )

This returns the crc32() checksum of the file within the Phar archive.

Valeurs de retour

The crc32() checksum of the file within the Phar archive.

Erreurs / Exceptions

Throws BadMethodCallException if the file has not yet had its CRC32 verified. This should be impossible with normal use, as the CRC is verified upon opening the file for reading or writing.

Exemples

Exemple 1. A PharFileInfo->getCRC32() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    echo $file->getCRC32();
} catch (Exception $e) {
    echo 'Write operations on my.phar.phar failed: ', $e;
}
?>

L'exemple ci-dessus va afficher :

3633523372

Précédent | Sommaire | Suivant
PharFileInfo->getCompressedSize | Niveau supérieur | PharFileInfo->getMetaData


PharFileInfo->getMetaData

(no version information, might be only in CVS)

PharFileInfo->getMetaData -- Returns file-specific meta-data saved with a file

Description

int PharFileInfo->getMetaData ( void )

Return meta-data that was saved in the Phar archive's manifest for this file.

Liste de paramètres

Valeurs de retour

any PHP variable that can be serialized and is stored as meta-data for the file, or NULL if no meta-data is stored.

Exemples

Exemple 1. A PharFileInfo->getMetaData() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.txt'] = 'hello';
    $p['file.txt']->setMetaData(array('user' => 'bill', 'mime-type' => 'text/plain'));
    var_dump($p['file.txt']->getMetaData());
} catch (Exception $e) {
    echo 'Could not create/modify brandnewphar.phar: ', $e;
}
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["user"]=>
  string(4) "bill"
  ["mime-type"]=>
  string(10) "text/plain"
}

Voir aussi

PharFileInfo->setMetaData()

Précédent | Sommaire | Suivant
PharFileInfo->getCRC32 | Niveau supérieur | PharFileInfo->getPharFlags


PharFileInfo->getPharFlags

(no version information, might be only in CVS)

PharFileInfo->getPharFlags -- Returns the Phar file entry flags

Description

int PharFileInfo->getPharFlags ( void )

This returns the flags set in the manifest for a Phar. This will always return 0 in the current implementation.

Valeurs de retour

The Phar flags (always 0 in the current implementation)

Exemples

Exemple 1. A PharFileInfo->getPharFlags() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->getPharFlags());
} catch (Exception $e) {
    echo 'Could not create/modify my.phar: ', $e;
}
?>

L'exemple ci-dessus va afficher :

int(0)

Précédent | Sommaire | Suivant
PharFileInfo->getMetaData | Niveau supérieur | PharFileInfo->isCompressed


PharFileInfo->isCompressed

(no version information, might be only in CVS)

PharFileInfo->isCompressed -- Returns whether the entry is compressed

Description

bool PharFileInfo->isCompressed ( void )

This returns whether a file is compressed within a Phar archive with either Gzip or Bzip2 compression.

Valeurs de retour

TRUE if the file is compressed within the Phar archive, FALSE if not.

Exemples

Exemple 1. A PharFileInfo->isCompressed() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p['myfile2.txt']->setCompressedGZ();
    $file = $p['myfile.txt'];
    $file2 = $p['myfile2.txt'];
    var_dump($file->isCompressed());
    var_dump($file2->isCompressed());
} catch (Exception $e) {
    echo 'Create/modify on phar my.phar failed: ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

PharFileInfo->getCompressedSize()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCompressedBZIP2()

Précédent | Sommaire | Suivant
PharFileInfo->getPharFlags | Niveau supérieur | PharFileInfo->isCompressedBZIP2


PharFileInfo->isCompressedBZIP2

(no version information, might be only in CVS)

PharFileInfo->isCompressedBZIP2 -- Returns whether the entry is compressed using bzip2

Description

bool PharFileInfo->isCompressedBZIP2 ( void )

This returns whether a file is compressed within a Phar archive with Bzip2 compression.

Valeurs de retour

TRUE if the file is compressed within the Phar archive using Bzip2, FALSE if not.

Exemples

Exemple 1. A PharFileInfo->isCompressedBZIP2() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p['myfile3.txt'] = 'hi';
    $p['myfile2.txt']->setCompressedGZ();
    $p['myfile3.txt']->setCompressedBZIP2();
    $file = $p['myfile.txt'];
    $file2 = $p['myfile2.txt'];
    $file3 = $p['myfile3.txt'];
    var_dump($file->isCompressedBZIP2());
    var_dump($file2->isCompressedBZIP2());
    var_dump($file3->isCompressedBZIP2());
} catch (Exception $e) {
    echo 'Create/modify on phar my.phar failed: ', $e;
}
?>

L'exemple ci-dessus va afficher :

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

Voir aussi

PharFileInfo->getCompressedSize()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCompressed()

Précédent | Sommaire | Suivant
PharFileInfo->isCompressed | Niveau supérieur | PharFileInfo->isCompressedGZ


PharFileInfo->isCompressedGZ

(no version information, might be only in CVS)

PharFileInfo->isCompressedGZ -- Returns whether the entry is compressed using gz

Description

bool PharFileInfo->isCompressedGZ ( void )

This returns whether a file is compressed within a Phar archive with Gzip compression.

Valeurs de retour

TRUE if the file is compressed within the Phar archive using Gzip, FALSE if not.

Exemples

Exemple 1. A PharFileInfo->isCompressedGZ() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p['myfile3.txt'] = 'hi';
    $p['myfile2.txt']->setCompressedGZ();
    $p['myfile3.txt']->setCompressedBZIP2();
    $file = $p['myfile.txt'];
    $file2 = $p['myfile2.txt'];
    $file3 = $p['myfile3.txt'];
    var_dump($file->isCompressedGZ());
    var_dump($file2->isCompressedGZ());
    var_dump($file3->isCompressedGZ());
} catch (Exception $e) {
    echo 'Create/modify on phar my.phar failed: ', $e;
}
?>

L'exemple ci-dessus va afficher :

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

Voir aussi

PharFileInfo->getCompressedSize()
PharFileInfo->isCompressedBZIP2()
PharFileInfo->isCompressed()

Précédent | Sommaire | Suivant
PharFileInfo->isCompressedBZIP2 | Niveau supérieur | PharFileInfo->isCRCChecked


PharFileInfo->isCRCChecked

(no version information, might be only in CVS)

PharFileInfo->isCRCChecked -- Returns whether file entry has had its CRC verified

Description

bool PharFileInfo->isCRCChecked ( void )

This returns whether a file within a Phar archive has had its CRC verified.

Valeurs de retour

TRUE if the file has had its CRC verified, FALSE if not.

Exemples

Exemple 1. A PharFileInfo->isCRCChecked() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCRCChecked());
} catch (Exception $e) {
    echo 'Create/modify operations failed on my.phar: ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(true)

Précédent | Sommaire | Suivant
PharFileInfo->isCompressedGZ | Niveau supérieur | PharFileInfo->setCompressedBZIP2


PharFileInfo->setCompressedBZIP2

(no version information, might be only in CVS)

PharFileInfo->setCompressedBZIP2 -- Compresses the current Phar entry within the phar using Bzip2 compression

Description

bool PharFileInfo->setCompressedBZIP2 ( void )

This method compresses the file inside the Phar archive using bzip2 compression. The bzip2 extension must be enabled to take advantage of this feature. In addition, if the file is already compressed using gzip compression, the zlib extension must be enabled in order to decompress the file. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Erreurs / Exceptions

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the bzip2 extension is not available.

Exemples

Exemple 1. A PharFileInfo->setCompressedBZIP2() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCompressedBZIP2());
    $p['myfile.txt']->setCompressedBZIP2();
    var_dump($file->isCompressedBZIP2());
} catch (Exception $e) {
    echo 'Create/modify operations on my.phar failed: ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

PharFileInfo->getCompressedSize()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCompressed()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCompressed()
Phar->compressAllFilesBZIP2()

Précédent | Sommaire | Suivant
PharFileInfo->isCRCChecked | Niveau supérieur | PharFileInfo->setCompressedGZ


PharFileInfo->setCompressedGZ

(no version information, might be only in CVS)

PharFileInfo->setCompressedGZ -- Compresses the current Phar entry within the phar using gz compression

Description

bool PharFileInfo->setCompressedGZ ( void )

This method compresses the file inside the Phar archive using gzip compression. The zlib extension must be enabled to take advantage of this feature. In addition, if the file is already compressed using bzip2 compression, the bzip2 extension must be enabled in order to decompress the file. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Erreurs / Exceptions

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the zlib extension is not available.

Exemples

Exemple 1. A PharFileInfo->setCompressedGZ() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCompressedGZ());
    $p['myfile.txt']->setCompressedGZ();
    var_dump($file->isCompressedGZ());
} catch (Exception $e) {
    echo 'Create/modify operations on my.phar failed: ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Voir aussi

PharFileInfo->getCompressedSize()
PharFileInfo->isCompressedBZIP2()
PharFileInfo->isCompressed()
PharFileInfo->isCompressedBZIP2()
PharFileInfo->isCompressed()
Phar->compressAllFilesGZ()

Précédent | Sommaire | Suivant
PharFileInfo->setCompressedBZIP2 | Niveau supérieur | PharFileInfo->setMetaData


PharFileInfo->setMetaData

(no version information, might be only in CVS)

PharFileInfo->setMetaData -- Sets file-specific meta-data saved with a file

Description

int PharFileInfo->setMetaData ( mixed metadata )

setMetaData() should only be used to store customized data in a file that cannot be represented with existing information stored with a file. Meta-data can significantly slow down the performance of loading a phar archive if the data is large, or if there are many files containing meta-data. It is important to note that file permissions are natively supported inside a phar, although it is possible to set them with the PharFileInfo->chmod() method. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Some possible uses for meta-data include passing a user/group that should be set when a file is extracted from the phar to disk. Other uses could include explicitly specifying a MIME type to return. However, any useful data that describes a file, but should not be contained inside of it may be stored.

Liste de paramètres

metadata

Any PHP variable containing information to store alongside a file

Exemples

Exemple 1. A PharFileInfo->setMetaData() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.txt'] = 'hello';
    $p['file.txt']->setMetaData(array('user' => 'bill', 'mime-type' => 'text/plain'));
    var_dump($p['file.txt']->getMetaData());
} catch (Exception $e) {
    echo 'Could not create/modify phar: ', $e;
}
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["user"]=>
  string(4) "bill"
  ["mime-type"]=>
  string(10) "text/plain"
}

Voir aussi

PharFileInfo->getMetaData()

Précédent | Sommaire | Suivant
PharFileInfo->setCompressedGZ | Niveau supérieur | PharFileInfo->setUncompressed


PharFileInfo->setUncompressed

(no version information, might be only in CVS)

PharFileInfo->setUncompressed -- Uncompresses the current Phar entry within the phar, if it is compressed

Description

bool PharFileInfo->setUncompressed ( void )

This method decompresses the file inside the Phar archive. Depending on how the file is compressed, the bzip2 or zlib extensions must be enabled to take advantage of this feature. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Erreurs / Exceptions

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the bzip2/zlib extension is not available.

Exemples

Exemple 1. A PharFileInfo->setUncompressed() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    $file->setCompressedGZ();
    var_dump($file->isCompressed());
    $p['myfile.txt']->setUncompressed();
    var_dump($file->isCompressed());
} catch (Exception $e) {
    echo 'Create/modify failed for my.phar: ', $e;
}
?>

L'exemple ci-dessus va afficher :

bool(true)
bool(false)

Voir aussi

PharFileInfo->getCompressedSize()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCompressedBZIP2()
PharFileInfo->isCompressedGZ()
PharFileInfo->isCompressed()
Phar->uncompressAllFiles()

Précédent | Sommaire | Suivant
PharFileInfo->setMetaData | Niveau supérieur | Options PHP et informations


posix_mknod

(PHP 5 >= 5.1.0RC1)

posix_mknod -- Crée un fichier spécial ou ordinaire (POSIX.1)

Description

bool posix_mknod ( string pathname, int mode [, int major [, int minor]] )

Crée un fichier spécial ou ordinaire.

Liste de paramètres

pathname

Le fichier à créer.

mode

Ce paramètre est construit par une manipulation de bits ou par des types de fichier (une des constantes suivantes : POSIX_S_IFREG, POSIX_S_IFCHR, POSIX_S_IFBLK, POSIX_S_IFIFO ou POSIX_S_IFSOCK) et des permissions.

major

L'identifiant majeur du dispositif du noyau (requis lorsque vous utilisez S_IFCHR ou S_IFBLK).

minor

L'identifiant mineur du dispositif du noyau (par défaut, 0).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
posix_mkfifo | Niveau supérieur | posix_setegid


preg_last_error

(no version information, might be only in CVS)

preg_last_error -- Retourne le code erreur de la dernière regex PCRE exécutée

Description

int preg_last_error ( void )

Retourne le code erreur de la dernière regex PCRE exécutée.

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

Précédent | Sommaire | Suivant
preg_grep | Niveau supérieur | preg_match_all


ps_add_bookmark

(PECL)

ps_add_bookmark -- Ajoute un signet à la page courante

Description

int ps_add_bookmark ( resource psdoc, string text [, int parent [, int open]] )

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.

Le signet n'a aucune signification si le document est imprimé ou vu mais sera utilisé si le document est converti en pdf par soit Acrobat Distiller™ ou 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()
ps_add_pdflink()
ps_add_weblink()

Précédent | Sommaire | Suivant
Création de document PostScript | Niveau supérieur | ps_add_launchlink


ps_add_launchlink

(PECL)

ps_add_launchlink -- Ajoute un lien qui démarre un fichier

Description

bool ps_add_launchlink ( resource psdoc, float llx, float lly, float urx, float ury, string filename )

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.

L'hyperlien ne sera pas visible si le document est imprimé ou vu mais sera visible si le document est converti en pdf par soit Acrobat Distiller™ ou 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, FALSE en cas d'échec.

Voir aussi

ps_add_locallink()
ps_add_pdflink()
ps_add_weblink()

Précédent | Sommaire | Suivant
ps_add_bookmark | Niveau supérieur | ps_add_locallink


ps_add_locallink

(PECL)

ps_add_locallink -- Ajoute un lien à une page dans le même document

Description

bool ps_add_locallink ( resource psdoc, float llx, float lly, float urx, float ury, int page, string dest )

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.

L'hyperlien ne sera pas visible si le document est imprimé ou vu mais sera visible si le document est converti en pdf par soit Acrobat Distiller™ ou 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, FALSE en cas d'échec.

Voir aussi

ps_add_launchlink()
ps_add_pdflink()
ps_add_weblink()

Précédent | Sommaire | Suivant
ps_add_launchlink | Niveau supérieur | ps_add_note


ps_add_note

(PECL)

ps_add_note -- Ajoute une note à la page courante

Description

bool ps_add_note ( resource psdoc, float llx, float lly, float urx, float ury, string contents, string title, string icon, int open )

Ajoute une note à une certaine position sur la page. Les notes sont comme de petites feuilles rectangulaires avec du texte par dessus, qui peut être placé n'importe où sur une page. Elles sont affichées soit pliées ou dépliées. Si elles sont dé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 par soit Acrobat Distiller™ ou 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, FALSE en cas d'échec.

Voir aussi

ps_add_pdflink()
ps_add_launchlink()
ps_add_locallink()
ps_add_weblink()

Précédent | Sommaire | Suivant
ps_add_locallink | Niveau supérieur | ps_add_pdflink


ps_add_pdflink

(PECL)

ps_add_pdflink -- Ajoute un lien à une page à un second document pdf

Description

bool ps_add_pdflink ( resource psdoc, float llx, float lly, float urx, float ury, string filename, int page, string dest )

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.

L'hyperlien ne sera pas visible si le document est imprimé ou vu mais sera visible si le document est converti en pdf par soit Acrobat Distiller™ ou 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, FALSE en cas d'échec.

Voir aussi

ps_add_launchlink()
ps_add_locallink()
ps_add_weblink()

Précédent | Sommaire | Suivant
ps_add_note | Niveau supérieur | ps_add_weblink


ps_add_weblink

(PECL)

ps_add_weblink -- Ajoute un lien à un emplacement web

Description

bool ps_add_weblink ( resource psdoc, float llx, float lly, float urx, float ury, string url )

Place un hyperlien à la position donnée à une page web. La position source de l'hyperlien est un rectangle avec son coin inférieur gauche à (llx, lly) et son coin supérieur droit à (urx, ury). Le rectangle a par défaut une mince bordure bleue.

L'hyperlien ne sera pas visible si le document est imprimé ou vu mais sera visible si le document est converti en pdf par soit Acrobat Distiller™ ou 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, FALSE en cas d'échec.

Voir aussi

ps_add_launchlink()
ps_add_locallink()
ps_add_pdflink()

Précédent | Sommaire | Suivant
ps_add_pdflink | Niveau supérieur | ps_arc


ps_arc

(PECL)

ps_arc -- Dessine un arc dans le sens contraire des aiguilles d'une montre

Description

bool ps_arc ( resource psdoc, float x, float y, float radius, float alpha, float beta )

Dessine une portion d'un cercle avec un point milieu à (x, y). L'arc débute à un angle de alpha et termine avec un angle de beta. Il est tracé dans le sens contraire des aiguilles d'une montre (utilisez ps_arcn() pour dessiner dans le sens des aiguilles d'une montre). La sous trajectoire ajoutée à la trajectoire courante débute sur l'arc à l'angle alpha et termine sur l'arc à l'angle beta.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du centre du cercle.

y

La position y du centre du cercle.

radius

Le rayon du cercle.

alpha

L'angle de départ donné en degrés.

beta

L'angle de fin donné en degrés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_arcn()

Précédent | Sommaire | Suivant
ps_add_weblink | Niveau supérieur | ps_arcn


ps_arcn

(no version information, might be only in CVS)

ps_arcn -- Dessine un arc dans le sens des aiguilles d'une montre

Description

bool ps_arcn ( resource psdoc, float x, float y, float radius, float alpha, float beta )

Dessine une portion d'un cercle avec un point milieu à (x, y). L'arc débute à un angle de alpha et termine avec un angle de beta. Il est tracé dans le sens des aiguilles d'une montre (utilisez ps_arc() pour dessiner dans le sens contraire des aiguilles d'une montre). La sous trajectoire ajoutée à la trajectoire courante débute sur l'arc à l'angle beta et termine sur l'arc à l'angle alpha.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du centre du cercle.

y

La position y du centre du cercle.

radius

Le rayon du cercle.

alpha

L'angle de départ donné en degrés.

beta

L'angle de fin donné en degrés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_arc()

Précédent | Sommaire | Suivant
ps_arc | Niveau supérieur | ps_begin_page


ps_begin_page

(PECL)

ps_begin_page -- Démarre une nouvelle page

Description

bool ps_begin_page ( resource psdoc, float width, float height )

Démarre une nouvelle page. Bien que les paramètres width et height implique une taille différente des feuilles pour chaque page, cela n'est pas possible dans PostScript. Le premier appel de ps_begin_page() fixera la taille des pages pour le document entier. Des appels consécutifs n'auront aucun effet, à l'exception pour créer une nouvelle page. La situation est différente si vous tentez de convertir le document PostScript en PDF. Cette fonction place des marques pdf à l'intérieur du document qui peuvent fixer la taille pour chaque page individuellement. Le document PDF résultant aura différentes tailles de pages.

Bien que le PostScript ne sait pas les tailles des différentes pages, pslib place une boîte de contour pour chaque page dans le document. La taille est évaluée par quelques visualisateurs 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, FALSE en cas d'échec.

Voir aussi

ps_end_page()
ps_findfont()
ps_set_info()

Précédent | Sommaire | Suivant
ps_arcn | Niveau supérieur | ps_begin_pattern


ps_begin_pattern

(PECL)

ps_begin_pattern -- Démarre un nouveau motif

Description

int ps_begin_pattern ( resource psdoc, float width, float height, float xstep, float ystep, int painttype )

Démarre un nouveau motif. Un motif est comme une page contenant par exemple un dessin qui peut être utilisé pour remplir des secteurs. Il est utilisé comme une couleur en appelant ps_setcolor() et en configurant l'emplacement de la couleur au motif.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

width

La largeur du motif en pixel.

height

La hauteur du motif en pixel.

x-step

La distance en pixel de l'emplacement du motif dans la direction horizontale.

y-step

La distance en pixel de l'emplacement du motif dans la direction verticale.

painttype

Doit être 1 ou 2.

Valeurs de retour

L'identifiant du motif ou FALSE en cas d'erreur.

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()
ps_setcolor()
ps_shading_pattern()

Précédent | Sommaire | Suivant
ps_begin_page | Niveau supérieur | ps_begin_template


ps_begin_template

(PECL)

ps_begin_template -- Démarre un nouveau modèle

Description

int ps_begin_template ( resource psdoc, float width, float height )

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

height

La hauteur du modèle en pixel.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Création et utilisation d'un modèle

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

Précédent | Sommaire | Suivant
ps_begin_pattern | Niveau supérieur | ps_circle


ps_circle

(PECL)

ps_circle -- Dessine un cercle

Description

bool ps_circle ( resource psdoc, float x, float y, float radius )

Dessine un cercle avec son point milieu à (x, y). Le cercle débute et termine à la position (x+radius, y). Si cette fonction est appelée à l'extérieur d'un chemin, elle démarrera un nouveau chemin. Si elle est appelée à l'intérieur d'un chemin, elle ajoutera le cercle comme étant un sous chemin. Si la dernière opération de dessin ne se termine pas au point (x+radius, y) alors il y aura un trou dans le chemin.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du centre du cercle.

y

La position y du centre du cercle.

radius

Le rayon du cercle.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_arc()
ps_arcn()

Précédent | Sommaire | Suivant
ps_begin_template | Niveau supérieur | ps_clip


ps_clip

(PECL)

ps_clip -- Attache le dessin au chemin courant

Description

bool ps_clip ( resource psdoc )

Prend le chemin courant et l'utilise pour définir la bordure du secteur à attacher. Tout ce qui est dessiné à l'extérieur de ce secteur ne sera pas visible.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_closepath()

Précédent | Sommaire | Suivant
ps_circle | Niveau supérieur | ps_close_image


ps_close

(PECL)

ps_close -- Ferme le document PostScript

Description

bool ps_close ( resource psdoc )

Ferme le document PostScript.

Cette fonction écrit les dernières informations dans le document PostScript. Elle écrit aussi l'arbre des signets. ps_close() ne libère aucune ressource, ceci peut être fait par ps_delete().

Cette fonction est aussi appelée par ps_delete() si elle n'avait pas été appelée avant.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_open_file()
ps_delete()

Précédent | Sommaire | Suivant
ps_close_image | Niveau supérieur | ps_closepath_stroke


ps_close_image

(PECL)

ps_close_image -- Ferme l'image et libère la mémoire

Description

void ps_close_image ( resource psdoc, int imageid )

Ferme une image et libère ses ressources. Une fois l'image fermée, elle ne peut plus être utilisée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

imageid

Identifiant d'une image retourné par ps_open_image() ou ps_open_image_file().

Valeurs de retour

Retourne NULL en cas de succès et FALSE en cas d'échec.

Voir aussi

ps_open_image()
ps_open_image_file()

Précédent | Sommaire | Suivant
ps_clip | Niveau supérieur | ps_close


ps_closepath

(PECL)

ps_closepath -- Ferme un chemin

Description

bool ps_closepath ( resource psdoc )

Connecte le dernier point avec le premier point du chemin. Le chemin résultant peut être utilisé comme ligne, remplissage, coupure, etc.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_clip()
ps_closepath_stroke()

Précédent | Sommaire | Suivant
ps_closepath_stroke | Niveau supérieur | ps_continue_text


ps_closepath_stroke

(PECL)

ps_closepath_stroke -- Ferme et trace un chemin

Description

bool ps_closepath_stroke ( resource psdoc )

Connecte le dernier point avec le premier point du chemin et dessine le résultat de la ligne fermée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_closepath()

Précédent | Sommaire | Suivant
ps_close | Niveau supérieur | ps_closepath


ps_continue_text

(PECL)

ps_continue_text -- Continue un texte à la ligne suivante

Description

bool ps_continue_text ( resource psdoc, string text )

Écrit un texte une ligne en dessous de la dernière ligne. L'espace entre les lignes est pris avec la valeur "leading" qui doit être fixée avec ps_set_value(). La position actuelle du texte est déterminée par les valeurs "textx" et "texty" qui peuvent être récupérées par ps_get_value().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte à afficher.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_show()
ps_show_xy()
ps_show_boxed()

Précédent | Sommaire | Suivant
ps_closepath | Niveau supérieur | ps_curveto


ps_curveto

(PECL)

ps_curveto -- Dessine une courbe

Description

bool ps_curveto ( resource psdoc, float x1, float y1, float x2, float y2, float x3, float y3 )

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, FALSE en cas d'échec.

Voir aussi

ps_lineto()

Précédent | Sommaire | Suivant
ps_continue_text | Niveau supérieur | ps_delete


ps_delete

(PECL)

ps_delete -- Supprime toutes les ressources d'un document PostScript

Description

bool ps_delete ( resource psdoc )

Libère principale la mémoire utilisée par le document. Ferme aussi un fichier, s'il n'était pas fermée auparavant avec la fonction ps_close(). Vous devriez dans tous les cas fermer le fichier avec ps_close() avant, car ps_close() ne ferme pas simplement le fichier mais écrit aussi les dernières informations contenant le commentaire PostScript avec le nombre de pages dans le document et ajoute la hiérarchie des signets.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_close()

Précédent | Sommaire | Suivant
ps_curveto | Niveau supérieur | ps_end_page


ps_end_page

(PECL)

ps_end_page -- Termine une page

Description

bool ps_end_page ( resource psdoc )

Termine une page qui a été débutée avec ps_begin_page(). Terminer une page laissera le contexte courant de dessin, qui par exemple requiert de recharger les polices si elles ont été chargées avec la page et fixe plusieurs autres paramètres de dessin comme la largeur des lignes, la couleur...

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_begin_page()

Précédent | Sommaire | Suivant
ps_delete | Niveau supérieur | ps_end_pattern


ps_end_pattern

(PECL)

ps_end_pattern -- Termine un motif

Description

bool ps_end_pattern ( resource psdoc )

Termine un motif qui a été débuté avec ps_begin_pattern(). Une fois qu'un motif est terminé, il peut être utilisé en tant que couleur pour remplir des secteurs.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_begin_pattern()

Précédent | Sommaire | Suivant
ps_end_page | Niveau supérieur | ps_end_template


ps_end_template

(PECL)

ps_end_template -- Termine un modèle

Description

bool ps_end_template ( resource psdoc )

Termine un modèle qui a été débuté avec ps_begin_template(). Une fois un modèle terminé, il peut être uilisé 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, FALSE en cas d'échec.

Voir aussi

ps_begin_template()

Précédent | Sommaire | Suivant
ps_end_pattern | Niveau supérieur | ps_fill_stroke


ps_fill

(PECL)

ps_fill -- Remplit le chemin courant

Description

bool ps_fill ( resource psdoc )

Remplit le chemin construit avec des fonctions de dessin comme ps_lineto() précédemment appelées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_fill_stroke()
ps_stroke()

Précédent | Sommaire | Suivant
ps_fill_stroke | Niveau supérieur | ps_findfont


ps_fill_stroke

(PECL)

ps_fill_stroke -- Remplit et trace le chemin courant

Description

bool ps_fill_stroke ( resource psdoc )

Remplit et dessine le chemin construit avec des fonctions de dessin comme ps_lineto() précédemment appelées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_fill()
ps_stroke()

Précédent | Sommaire | Suivant
ps_end_template | Niveau supérieur | ps_fill


ps_findfont

(PECL)

ps_findfont -- Charge une police

Description

int ps_findfont ( resource psdoc, string fontname, string encoding [, bool embed] )

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 mettra la 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()
ps_setfont()

Précédent | Sommaire | Suivant
ps_fill | Niveau supérieur | ps_get_buffer


ps_get_buffer

(PECL)

ps_get_buffer -- Récupère le tampon complet contenant les données PS générées

Description

string ps_get_buffer ( resource psdoc )

Cette fonction n'est pas encore implémentée. Elle retournera toujours une chaîne de caractères vide. L'idée pour une future implémentation est d'écrire le contenu du fichier postscript dans un tampon interne si création en mémoire est demandée et de retourner le contenu du tampon avec la fonction. Présentement, les documents créés en mémoire sont envoyés au navigateur sans utilisation de tampon.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Voir aussi

ps_open_file()

Précédent | Sommaire | Suivant
ps_findfont | Niveau supérieur | ps_get_parameter


ps_get_parameter

(PECL)

ps_get_parameter -- Récupère certains paramètres

Description

string ps_get_parameter ( resource psdoc, string name [, float modifier] )

Récupère plusieurs paramètre qui ont été fixés directement par ps_set_parameter() ou indirectement par une ou d'autres fonctions. Les paramètres sont par définitions 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 des images. Peut être soit hex ou 85. L'encodage hex utilise deux bytes dans le fichier postscript, chaque byte dans une image. 85 signifie 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 en cas d'erreur.

Voir aussi

ps_set_parameter()

Précédent | Sommaire | Suivant
ps_get_buffer | Niveau supérieur | ps_get_value


ps_get_value

(PECL)

ps_get_value -- Récupère certaines valeurs

Description

float ps_get_value ( resource psdoc, string name [, float modifier] )

Récupère plusieurs valeurs qui ont été fixées par ps_set_value(). Les valeurs sont par définition des valeurs de nombre à virgule flottante.

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

Précédent | Sommaire | Suivant
ps_get_parameter | Niveau supérieur | ps_hyphenate


ps_hyphenate

(PECL)

ps_hyphenate -- Relie un mot

Description

array ps_hyphenate ( resource psdoc, string text )

Relie le mot passé. ps_hyphenate() évalue la valeur hyphenminchars (fixé par ps_set_value()) et le paramètre hyphendic (fixé par ps_set_parameter()). hyphendict doit être fixé avant d'appeler cette fonction.

Cette fonction requiert que la configuration locale LC_CTYPE soit correctement fâite. 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 en cas d'erreur.

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()
locale(1)

Précédent | Sommaire | Suivant
ps_get_value | Niveau supérieur | ps_include_file


ps_include_file

(no version information, might be only in CVS)

ps_include_file -- Reads an external file with raw PostScript code

Description

bool ps_include_file ( resource psdoc, string file )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Resource identifier of the postscript file as returned by ps_new().

file

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ps_hyphenate | Niveau supérieur | ps_lineto


ps_lineto

(PECL)

ps_lineto -- Dessine une ligne

Description

bool ps_lineto ( resource psdoc, float x, float y )

Ajoute une ligne droite à partir du point courant aux coordonnées données au chemin courant. Utilisez ps_moveto() opur 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, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
ps_include_file | Niveau supérieur | ps_makespotcolor


ps_makespotcolor

(PECL)

ps_makespotcolor -- Crée une tache de couleur

Description

int ps_makespotcolor ( resource psdoc, string name [, float reserved] )

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

Précédent | Sommaire | Suivant
ps_lineto | Niveau supérieur | ps_moveto


ps_moveto

(PECL)

ps_moveto -- Fixe le point courant

Description

bool ps_moveto ( resource psdoc, float x, float y )

Fixe le point courant à de nouvelles coordonnées. Si cela est le premier appel de ps_moveto() après qu'un chemin précédent ait été terminé alors il démarrera un nouveau chemin. Si cette fonction est appelée au milieu d'un chemin, elle fixera simplement le point courant et débutera un sous chemin.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du point où se déplacer.

y

La position y du point où se déplacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_lineto()

Précédent | Sommaire | Suivant
ps_makespotcolor | Niveau supérieur | ps_new


ps_new

(PECL)

ps_new -- Crée un nouvel objet document PostScript

Description

resource ps_new ( void )

Crée une nouvelle instance de document. Elle ne crée pas le fichier sur le disque ou dans la mémoire. Elle prépare simplement tout. ps_new() est normalement suivie par un appel de ps_open_file() pour créer le document PostScript.

Valeurs de retour

Ressource d'un document PostScript ou FALSE en cas d'erreur. La valeur de retour est passé à toutes les autres fonctions en tant que premier argument.

Voir aussi

ps_delete()

Précédent | Sommaire | Suivant
ps_moveto | Niveau supérieur | ps_open_file


ps_open_file

(PECL)

ps_open_file -- Ouvre un fichier pour écriture

Description

bool ps_open_file ( resource psdoc [, string filename] )

Crée un nouveau fichier sur le disque et écrit le document PostScript à l'intérieur. Le fichier sera fermé lorsque ps_close() sera appelée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

filename

Le nom du fichier PostScript. Si filename n'est pas passé, le document sera créé en mémoire et toutes les écritures iront directement au navigateur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_close()

Précédent | Sommaire | Suivant
ps_new | Niveau supérieur | ps_open_image_file


ps_open_image

(PECL)

ps_open_image -- Lit une image pour placement futur

Description

int ps_open_image ( resource psdoc, string type, string source, string data, int lenght, int width, int height, int components, int bpc, string params )

Lit une image qui est déjà disponible en mémoire. Le paramètre source n'est présentent pas évalué et est assumé d'être memory. Les données de l'image est une séquence de pixels démarrant avec le coin supérieur gauche et termine avec le coin inférieur droit. Chaque pixel consiste de composants de couleur components et chaque composant a bpc bits.

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.

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

Voir aussi

ps_open_image_file()
ps_place_image()
ps_close_image()

Précédent | Sommaire | Suivant
ps_open_image_file | Niveau supérieur | ps_open_memory_image


ps_open_image_file

(PECL)

ps_open_image_file -- Ouvre une iamge à partir d'un fichier

Description

int ps_open_image_file ( resource psdoc, string type, string filename [, string stringparam [, int intparam]] )

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()
ps_place_image()
ps_close_image()

Précédent | Sommaire | Suivant
ps_open_file | Niveau supérieur | ps_open_image


ps_open_memory_image

(PECL)

ps_open_memory_image -- Takes an GD image and returns an image for placement in a PS document

Description

int ps_open_memory_image ( resource psdoc, int gd )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Resource identifier of the postscript file as returned by ps_new().

gd

Précédent | Sommaire | Suivant
ps_open_image | Niveau supérieur | ps_place_image


ps_place_image

(PECL)

ps_place_image -- Place une image sur la page

Description

bool ps_place_image ( resource psdoc, int imageid, float x, float y, float scale )

Place une image précédemment chargée sur la page. L'image peut être redimensionnée. Si l'image est tournée, vous devrez tourner le système de coordonnées avant avec ps_rotate().

Liste de paramètres

psdoc

Resource identifier of the postscript file as returned by 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, FALSE en cas d'échec.

Voir aussi

ps_open_image()
ps_open_image_file()

Précédent | Sommaire | Suivant
ps_open_memory_image | Niveau supérieur | ps_rect


ps_rect

(PECL)

ps_rect -- Dessine un rectangle

Description

bool ps_rect ( resource psdoc, float x, float y, float width, float height )

Dessine un rectangle avec son coin inférieur gauche à (x, y). Le rectangle débute et termine sur son coin inférieur gauche. Si cette fonction est appelée à l'extérieur d'un chemin, elle démarrera un nouveau chemin. Si elle est appelée à l'intérieur d'un chemin, elle ajoutera le rectangle comme étant un sous chemin. Si la dernière opération de dessin ne se termine pas au coin inférieur gauche alors il y aura un trou dans le chemin.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x du coin inférieur gauche du rectangle.

y

La position y du coin inférieur gauche du rectangle.

width

La largeur de l'image.

height

La hauteur de l'image.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_arc()
ps_cirle()
ps_lineto()

Précédent | Sommaire | Suivant
ps_place_image | Niveau supérieur | ps_restore


ps_restore

(PECL)

ps_restore -- Restaure un contexte précédemment sauvegardé

Description

bool ps_restore ( resource psdoc )

Restaure un contexte graphique précédemment sauvegardé. Tout appel de ps_save() doit être accompagné par un appel à ps_restore(). Toutes les transformations de coordonnée, de configurations de style de ligne, de couleur, etc. sont restaurées à l'état avant l'appel de la fonction ps_save().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_save()

Précédent | Sommaire | Suivant
ps_rect | Niveau supérieur | ps_rotate


ps_rotate

(PECL)

ps_rotate -- Fixe le facteur de rotation

Description

bool ps_rotate ( resource psdoc, float rot )

Fixe la rotation d'un système de coordonnées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

rot

Angle de rotation en degré.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
ps_restore | Niveau supérieur | ps_save


ps_save

(PECL)

ps_save -- Sauvegarde le contexte courant

Description

bool ps_save ( resource psdoc )

Sauvegarde le contexte graphique courant, contenant les configurations des couleurs, des translations et rotations et quelques autres. Un contexte sauvegardé peut être restauré avec ps_restore().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_restore()

Précédent | Sommaire | Suivant
ps_rotate | Niveau supérieur | ps_scale


ps_scale

(PECL)

ps_scale -- Fixe le facteur de redimensionnement

Description

bool ps_scale ( resource psdoc, float x, float y )

Fixe le redimensionnement horizontal et vertical d'un système de coordonnées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

Facteur de redimensionnement en direction horizontale.

y

Facteur de redimensionnement en direction verticale.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_rotate()
ps_translate()

Précédent | Sommaire | Suivant
ps_save | Niveau supérieur | ps_set_border_color


ps_set_border_color

(PECL)

ps_set_border_color -- Fixe la couleur des bordures pour les commentaires

Description

bool ps_set_border_color ( resource psdoc, float red, float green, float blue )

Les liens ajoutés avec une des fonctions telles que ps_add_weblink(), ps_add_pdflink(), etc. seront affichées avec un rectangle entouré lorsque le document postscript est converti en pdf et vu dans un visualisateur pdf. Ce rectangle n'est pas visible dans le document postscript. Cette fonction fixe la couleur de la bordure de la ligne du rectangle.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

red

Le composant rouge de la couleur de la bordure.

green

Le composant vert de la couleur de la bordure.

blue

Le composant bleu de la couleur de la bordure.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_set_border_dash()
ps_set_border_style()

Précédent | Sommaire | Suivant
ps_scale | Niveau supérieur | ps_set_border_dash


ps_set_border_dash

(PECL)

ps_set_border_dash -- Fixe la grandeur des tirets pour les bordures des commentaires

Description

bool ps_set_border_dash ( resource psdoc, float black, float white )

Les liens ajoutés avec une des fonctions telles que ps_add_weblink(), ps_add_pdflink(), etc. seront affichées avec un rectangle entouré lorsque le document postscript est converti en pdf et vu dans un visualisateur pdf. Ce rectangle n'est pas visible dans le document postscript. Cette fonction fixe la grandeur de la portion de noir et blanc de la ligne de bordure pointillée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

black

La grandeur des pointillés.

white

La grandeur de l'espace entre les pointilliés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_set_border_color()
ps_set_border_style()

Précédent | Sommaire | Suivant
ps_set_border_color | Niveau supérieur | ps_set_border_style


ps_set_border_style

(PECL)

ps_set_border_style -- Fixe le style de bordure des commentaires

Description

bool ps_set_border_style ( resource psdoc, string style, float width )

Les liens ajoutés avec une des fonctions telles que ps_add_weblink(), ps_add_pdflink(), etc. seront affichées avec un rectangle entouré lorsque le document postscript est converti en pdf et vu dans un visualisateur pdf. Ce rectangle n'est pas visible dans le document postscript. Cette fonction fixe l'apparence et la largeur de la ligne de bordure.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

style

style peut être solid ou dashed.

width

La largeur de la bordure.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_set_border_color()
ps_set_border_dash()

Précédent | Sommaire | Suivant
ps_set_border_dash | Niveau supérieur | ps_set_info


ps_set_info

(PECL)

ps_set_info -- Fixe les champs d'informations d'un document

Description

bool ps_set_info ( resource p, string key, string val )

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

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Liste de paramètres

psdoc

Resource identifier of the postscript file as returned by ps_new().

key

The name of the information field to set. The values which can be set are Keywords, Subject, Title, Creator, Author, BoundingBox, and Orientation. Be aware that some of them has a meaning to PostScript viewers.

value

Les valeurs du champ d'information. Le champs 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.

Voir aussi

ps_findfont()
ps_begin_page()

Précédent | Sommaire | Suivant
ps_set_border_style | Niveau supérieur | ps_set_parameter


ps_set_parameter

(PECL)

ps_set_parameter -- Fixe certains paramètres

Description

bool ps_set_parameter ( resource psdoc, string name, string value )

Fixe plusieurs paramètres qui sont utilisés par beaucoup de fonctions. Les paramètres sont par définition des valeurs de chaîne de caractères.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

name

Pour une liste des noms possibles, voyez ps_get_parameter().

value

La valeur du paramètre.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_get_parameters()
ps_set_value()

Précédent | Sommaire | Suivant
ps_set_info | Niveau supérieur | ps_set_text_pos


ps_set_text_pos

(PECL)

ps_set_text_pos -- Fixe la position l'écriture du texte

Description

bool ps_set_text_pos ( resource psdoc, float x, float y )

Fixe la position pour la prochaine écriture de texte. Vous devriez alternativement fixer la valeur x et y séparément en appelant ps_set_value() et choisir textx respectivement texty comme nom de valeur.

Si vous voulez afficher le texte à une certaine position, il est plus facile d'utiliser ps_show_xy() au lieu de configurer la position du texte et d'appeler ps_show().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x de la nouvelle position du texte.

y

La position y de la nouvelle position du texte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
ps_set_parameter | Niveau supérieur | ps_set_value


ps_set_value

(PECL)

ps_set_value -- Fixe certaines valeurs

Description

bool ps_set_value ( resource psdoc, string name, float value )

Fixe plusieurs valeurs qui sont utilisées par beaucoup de fonctions. Les paramètres sont par définitions des valeurs de nombre à virgule flottante.

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, FALSE en cas d'échec.

Voir aussi

ps_get_value()
ps_set_parameter()

Précédent | Sommaire | Suivant
ps_set_text_pos | Niveau supérieur | ps_setcolor


ps_setcolor

(PECL)

ps_setcolor -- Fixe la couleur courante

Description

bool ps_setcolor ( resource psdoc, string type, string colorspace, float c1, float c2, float c3, float c4 )

Fixe la couleur pour le dessin, remplissage ou les deux.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Le paramètre type peut être both, fill ou fillstroke.

colorspace

L'espace colorimétrique peut être soit gray, rgb, cmyk, spot, pattern. Dépendamment de l'espace colorimétrique soit le premier, les trois premiers ou tous les paramètres peuvent être utilisés.

c1

Dépendemment de l'espace colorimétrique, cette valeur peut être le composant rouge (rgb), le composant cyan (cmyk), la valeur de gris (gris), l'identifiant de la tache de couleur ou l'identifiant du motif.

c2

Dépendemment de l'espace colorimétrique, cette valeur peut être le composant vert (rgb) ou le composant magenta (cmyk).

c3

Dépendemment de l'espace colorimétrique, cette valeur peut être le composant bleu (rgb) ou le composant jaune (cymk).

c4

Ce paramètre doit être fixé seulement dans l'espace colorimétrique cymk et spécifie le composant noir.

Bogues

Le second paramètre n'est actuellement pas toujours évalué. La couleur est parfois fixée pour remplir et dessiner juste comme fillstroke était passée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ps_set_value | Niveau supérieur | ps_setdash


ps_setdash

(PECL)

ps_setdash -- Fixe l'apparence d'une ligne pointillée

Description

bool ps_setdash ( resource psdoc, float on, float off )

Fixe la longueur des portions de noir et blanc d'une ligne pointillée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

on

La grandeur des pointillés.

off

La grandeur des espaces entres les pointillés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_setpolydash()

Précédent | Sommaire | Suivant
ps_setcolor | Niveau supérieur | ps_setflat


ps_setflat

(PECL)

ps_setflat -- Fixe la position à plat

Description

bool ps_setflat ( resource psdoc, float value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

value

La valeur value doit être entre 0.2 et 1.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ps_setdash | Niveau supérieur | ps_setfont


ps_setfont

(PECL)

ps_setfont -- Fixe la police à utiliser pour la prochaine écriture

Description

bool ps_setfont ( resource psdoc, int fontid, float size )

Fixe une police, qui doit être chargée avant avec ps_findfont(). L'écriture de texte sans configurer une police provoquera une erreur.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

fontid

L'identifiant de la police retourné par ps_findfont().

size

La taille de la police.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_findfont()
ps_set_text_pos() pour un exemple.

Précédent | Sommaire | Suivant
ps_setflat | Niveau supérieur | ps_setgray


ps_setgray

(no version information, might be only in CVS)

ps_setgray -- Fixe la valeur de gris

Description

bool ps_setgray ( resource psdoc, float gray )

Fixe la valeur de gris pour toutes les opérations de dessin suivantes.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

gray

La valeur doit être entre 0 (blanc) et 1 (noir).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_setcolor()

Précédent | Sommaire | Suivant
ps_setfont | Niveau supérieur | ps_setlinecap


ps_setlinecap

(PECL)

ps_setlinecap -- Fixe l'apparence des fins de ligne

Description

bool ps_setlinecap ( resource psdoc, int type )

Fixe comment les fins de ligne ressemblent.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Le type de fin de ligne. Les valeurs possibles sont PS_LINECAP_BUTT, PS_LINECAP_ROUND ou PS_LINECAP_SQUARED.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_setlinejoin()
ps_setlinewidth()
ps_setmiterlimit()

Précédent | Sommaire | Suivant
ps_setgray | Niveau supérieur | ps_setlinejoin


ps_setlinejoin

(PECL)

ps_setlinejoin -- Fixe comment les lignes connectés sont jointes

Description

bool ps_setlinejoin ( resource psdoc, int type )

Fixe comment les lignes sont jointes.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Le moyen comment les lignes sont jointes. Les valeurs possibles sont PS_LINEJOIN_MITER, PS_LINEJOIN_ROUND ou PS_LINEJOIN_BEVEL.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_setlinecap()
ps_setlinewidth()
ps_setmiterlimit()

Précédent | Sommaire | Suivant
ps_setlinecap | Niveau supérieur | ps_setlinewidth


ps_setlinewidth

(PECL)

ps_setlinewidth -- Fixe la largeur d'une ligne

Description

bool ps_setlinewidth ( resource psdoc, float width )

Fixe la largeur d'une ligne pour toutes les opérations de dessin suivantes.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

width

La largeur des lignes en points.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_setlinecap()
ps_setlinejoin()
ps_setmiterlimit()

Précédent | Sommaire | Suivant
ps_setlinejoin | Niveau supérieur | ps_setmiterlimit


ps_setmiterlimit

(PECL)

ps_setmiterlimit -- Fixe les limites de l'anglet

Description

bool ps_setmiterlimit ( resource psdoc, float value )

Si deux lignes se joignent dans un petit angle et le joint des lignes est fixé à l'anglet PS_LINEJOIN_MITER, alors la mèche résultante sera vraiment longue. La limite de l'anglet est le ratio maximal de la longueur de l'anglet (la longueur de la mèche) et la largeur de la ligne.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

value

Le ratio maximal entre la grandeur de l'anglet et la largeur de la ligne. De grandes valeurs (> 10) auront pour effet l'affichage de très longues mèches lorsque deux lignes se joignent dans un petit angle. Gardez le par défaut à moins que vous sachiez que vous faites.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_setlinecap()
ps_setlinejoin()
ps_setlinewidth()

Précédent | Sommaire | Suivant
ps_setlinewidth | Niveau supérieur | ps_setoverprintmode


ps_setoverprintmode

(PECL)

ps_setoverprintmode -- Sets overprint mode

Description

bool ps_setoverprintmode ( resource psdoc, int mode )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Resource identifier of the postscript file as returned by ps_new().

mode

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ps_setmiterlimit | Niveau supérieur | ps_setpolydash


ps_setpolydash

(PECL)

ps_setpolydash -- Fixe l'apparence d'une ligne pointillée

Description

bool ps_setpolydash ( resource psdoc, float arr )

Fixe la longueur des portions de noir et blanc d'une ligne pointillée. ps_setpolydash() est utilisée pour fixer des motifs pointillés plus compliqués.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

arr

arr est une liste des grandeurs des éléments alternativement pour la portion de noir et de blanc.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
ps_setoverprintmode | Niveau supérieur | ps_shading_pattern


ps_shading

(PECL)

ps_shading -- Crée un ton pour usage futur

Description

int ps_shading ( resource psdoc, string type, float x0, float y0, float x1, float y1, float c1, float c2, float c3, float c4, string optlist )

Crée un ton, qui peut être utilisé par ps_shfill() ou ps_shading_pattern().

La couleur du ton peut être n'importe quelle couleur d'espace excepté pour pattern.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

type

Le type de ton peut être soit radial ou axial. Chaque ton débute avec la couleur courante de remplissage et termine avec la valeur de couleur donnée passée dans les paramètres c1 à c4 (voyez ps_setcolor() pour leur signification).

x0, x1, y0, y1

Les coordonnées x0, y0, x1, y1 sont le point de début et de fin du ton. Si le type de ton est radial, les deux points sont les points milieux du début et de la fin du cercle.

c1, c2, c3, c4

Voyez ps_setcolor() pour leur signification.

optlist

Si le ton est de type radial, le optlist doit aussi contenir les paramètres r0 et r1 avec le radius du début et de fin du cercle.

Valeurs de retour

Retourne un identifiant du motif ou FALSE en cas d'erreur.

Voir aussi

ps_shading_pattern()
ps_shfill()

Précédent | Sommaire | Suivant
ps_shading_pattern | Niveau supérieur | ps_shfill


ps_shading_pattern

(PECL)

ps_shading_pattern -- Crée un motif basé sur le ton

Description

int ps_shading_pattern ( resource psdoc, int shadingid, string optlist )

Crée un motif basé sur le ton, qui doit avoir été créé avant avec ps_shading(). Les motifs de ton peuvent être utilisés comme des motifs réguliers.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

shadingid

L'identifiant de ton créé précédemment avec ps_shading().

optlist

Cet argument n'est pas utilisé présentement.

Valeurs de retour

L'identifiant du motif ou FALSE en cas d'erreur.

Voir aussi

ps_shading()
ps_shfill()

Précédent | Sommaire | Suivant
ps_setpolydash | Niveau supérieur | ps_shading


ps_shfill

(PECL)

ps_shfill -- Remplit un espace avec un ton

Description

bool ps_shfill ( resource psdoc, int shadingid )

Remplit un espace avec un ton, qui doit être créé avant avec ps_shading(). Ceci est un moyen alternatif pour créer un motif à partir d'un ton venant de ps_shading_pattern() et d'utiliser le motif comme couleur de remplissage.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

shadingid

L'identifiant de ton créé précédemment avec ps_shading().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_shading()
ps_shading_pattern()

Précédent | Sommaire | Suivant
ps_shading | Niveau supérieur | ps_show_boxed


ps_show

(PECL)

ps_show -- Écrit du texte

Description

bool ps_show ( resource psdoc, string text )

Écrit du texte à la position courante du texte. La position du texte peut être fixée en mettant les positions des coordonnées x et y dans les valeurs textx et texty avec la fonction ps_set_value(). Cette fonction émettra une erreur si une police n'a été fixée auparavant avec ps_setfont().

ps_show() évalue les paramètres et les variables suivantes fixés par ps_set_parameter() et ps_set_value().

charspacing (valeur)

Distance entre deux glyphes consécutifs. Si cette valeur n'est pas égal à zéro, alors toutes les ligatures seront résolues. Les valeurs inférieures à zéro sont autorisées.

kerning (paramètre)

Fixer ce paramètre à FALSE désactivera le crénage. Le crénage est activé par défaut.

ligatures (paramètre)

Fixer ce paramètre à FALSE désactivera l'utilisation des ligatures. Les ligatures sont activées par défaut.

underline (paramètre)

Fixer ce paramètre à TRUE activera le soulignement. Le soulignement est désactivé par défaut.

overline (paramètre)

Fixer ce paramètre à TRUE activera surlignement. Le surlignement est désactivé par défaut.

strikeout (paramètre)

Fixer ce paramètre à TRUE activera le texte barré. Le texte barré est désactivé par défaut.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte à être affiché.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_continue_text()
ps_show_xy()
ps_setfont()

Précédent | Sommaire | Suivant
ps_show2 | Niveau supérieur | ps_string_geometry


ps_show2

(PECL)

ps_show2 -- Output a text at current position

Description

bool ps_show2 ( resource psdoc, string text, int len )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

len

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ps_show_xy | Niveau supérieur | ps_show


ps_show_boxed

(PECL)

ps_show_boxed -- Écriture de texte dans une boîte

Description

int ps_show_boxed ( resource psdoc, string text, float left, float bottom, float width, float height, string hmode [, string feature] )

É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 tabs sont traités 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 "hyphendic". 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 fourni 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()

Précédent | Sommaire | Suivant
ps_shfill | Niveau supérieur | ps_show_xy2


ps_show_xy

(PECL)

ps_show_xy -- Écrit du texte à la position donnée

Description

bool ps_show_xy ( resource psdoc, string text, float x, float y )

Écrit du texte à la position de texte donnée.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

text

Le texte à être affiché.

x

La position x du coin inférieur droit de la boîte entourant le texte.

y

La position y du coin inférieur droit de la boîte entourant le texte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_continue_text()
ps_show()

Précédent | Sommaire | Suivant
ps_show_xy2 | Niveau supérieur | ps_show2


ps_show_xy2

(PECL)

ps_show_xy2 -- Output text at position

Description

bool ps_show_xy2 ( resource psdoc, string text, int len, float xcoor, float ycoor )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ps_show_boxed | Niveau supérieur | ps_show_xy


ps_string_geometry

(PECL)

ps_string_geometry -- Récupère les géométries d'une chaîne de caractères

Description

array ps_string_geometry ( resource psdoc, string text [, int fontid [, float size]] )

Cette fonction 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()
ps_stringwidth()

Précédent | Sommaire | Suivant
ps_show | Niveau supérieur | ps_stringwidth


ps_stringwidth

(PECL)

ps_stringwidth -- Récupère la largeur d'une chaîne de caractères

Description

float ps_stringwidth ( resource psdoc, string text [, int fontid [, float size]] )

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

Précédent | Sommaire | Suivant
ps_string_geometry | Niveau supérieur | ps_stroke


ps_stroke

(PECL)

ps_stroke -- Dessine le chemin courant

Description

bool ps_stroke ( resource psdoc )

Dessine le chemin construit avec des fonctions de dessin comme ps_lineto() précédemment appelées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_closepath_stroke()
ps_fill()
ps_fill_stroke()

Précédent | Sommaire | Suivant
ps_stringwidth | Niveau supérieur | ps_symbol_name


ps_symbol

(PECL)

ps_symbol -- Écrit un glyphe

Description

bool ps_symbol ( resource psdoc, int ord )

Écrit un glyphe à la position ord dans le vecteur d'encodage de la police de la police courante. L'encodage de la police pour une police peut être fixé lors du chargement de la police avec ps_findfont().

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

ord

La position du glyphe dans le vecteur d'encodage de la police.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ps_symbol_name()
ps_symbol_width()

Précédent | Sommaire | Suivant
ps_symbol_width | Niveau supérieur | ps_translate


ps_symbol_name

(PECL)

ps_symbol_name -- Récupère le nom d'un glyphe

Description

string ps_symbol_name ( resource psdoc, int ord [, int fontid] )

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

Précédent | Sommaire | Suivant
ps_stroke | Niveau supérieur | ps_symbol_width


ps_symbol_width

(PECL)

ps_symbol_width -- Récupère la largeur d'un glyphe

Description

float ps_symbol_width ( resource psdoc, int ord [, int fontid [, float size]] )

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

Précédent | Sommaire | Suivant
ps_symbol_name | Niveau supérieur | ps_symbol


ps_translate

(PECL)

ps_translate -- Fixe une translation

Description

bool ps_translate ( resource psdoc, float x, float y )

Fixe un nouveau point initial d'un système de coordonnées.

Liste de paramètres

psdoc

Identifiant d'un fichier postscript retourné par ps_new().

x

La position x de l'origine du système de coordonnées translaté.

y

La position y de l'origine du système de coordonnées translaté.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
ps_symbol | Niveau supérieur | Pspell


px_close

(PECL)

px_close -- Ferme une base de données Paradox

Description

bool px_close ( resource pxdoc )

Ferme une base de données Paradox. Cette fonction ne ferme pas le fichier. Vous devez ensuite appeler la fonction fclose().

Liste de paramètres

pxdoc

Ressource identifiant la base de données Paradox telle que retournée par la fonction px_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

px_open_fp()
L'exemple de la fonction px_new()

Précédent | Sommaire | Suivant
Accès aux fichiers Paradox | Niveau supérieur | px_create_fp


px_create_fp

(PECL)

px_create_fp -- Crée une nouvelle base de données Paradox

Description

bool px_create_fp ( resource pxdoc, resource file, array fielddesc )

Crée un nouveau fichier de base de données Paradox. Le fichier actuel doit avoir été ouvert avec la fonction fopen(). Assurez-vous que ce fichier est accessible en écriture.

Note : L'appel à cette fonction émet une alerte à propos d'un nom de table vide qui peut être ignorée en toute sécurité. Définissez juste le nom de la table en suivant avec la fonction px_set_parameter().

Note : Cette fonction est hautement expérimentale, à cause du manque de documentation du format de fichier Paradox. Les fichiers de base de données créés avec cette fonction peuvent être ouvert avec la fonction px_open_fp() et devraient s'ouvrir sans problème avec les logiciels Paradox.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

file

Ressource de fichier telle que retournée par la fonction fopen().

fielddesc

fielddesc est un tableau comprenant un élément pour chaque champ contenant ses spécifications. Une spécification de champ est un tableau avec deux ou trois éléments. Le premier élément est toujours une chaîne de caractères représentant le nom du champ. Il ne peut être plus grand que dix caractères. Le deuxième élément contient le type du champ qui peut être une des constantes listées dans la table "Constantes pour les types de champ". Dans le cas d'un champ sous la forme de caractères ou de bcd, vous devez fournir un troisième élément spécifiant la longueur du champ. Si votre spécification de champ contient des champs Blob, vous devez vous assurer de rendre le champ assez grand pour toutes les valeurs des champs ou bien spécifier un fichier Blob avec la fonction px_blob_file() pour y stocker les Blobs. Si vous ne faîtes pas cela, les données du champ seront tronquées.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Création d'une base de données Paradox avec deux champs

<?php
if(!$pxdoc = px_new()) {
  /* Gestion d'erreurs */
}
$fp = fopen("test.db", "w+");
$fields = array(array("col1", "S"), array("col2", "I"));
if(!px_create_fp($pxdoc, $fp, $fields)) {
  /* Gestion d'erreurs */
}
px_set_parameter($pxdoc, "tablename", "testtable");
for($i=-50; $i<50; $i++) {
  $rec = array($i, -$i);
  px_put_record($pxdoc, $rec);
}
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

Voir aussi

px_new()
px_put_record()
fopen()

Précédent | Sommaire | Suivant
px_close | Niveau supérieur | px_date2string


px_date2string

(no version information, might be only in CVS)

px_date2string -- Convertit une date en une chaîne de caractères

Description

string px_date2string ( resource pxdoc, int value, string format )

Convertit une date stockée dans un fichier Paradox en un format humainement lisible. Les dates Paradox représentent le nombre de jours depuis le 1.1.0000. Cette fonction existe que pour une convenance technique. Elle peut être facilement remplacée par des fonctions mathématiques et relatives aux calendriers tel que montré dans l'exemple ci-dessous.

Liste de paramètres

pxdoc

Identifiant de ressource de la base de données Paradox tel que retourné par la fonction px_new().

value

Valeur comme stockée dans le champ de la base de données Paradox d'un type PX_FIELD_DATE.

format

Format similaire au format utilisé par la fonction date(). Les caractères spéciaux supportés par cette fonction est une partie de ceux utilisés par la fonction date() (Y, y, m, n, d, j, L).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Convertit une date Paradox en un format humainement lisible

<?php
$px = px_new();

/* définition d'une date telle qu'elle peut être stockée dans */
/* un champ date dans une base de données Paradox. */
/* 700000 jours depuis le 1.1.0000. */
$days = 700000;

/* Utilisation des fonctions de calendriers pour afficher */
/* la date en un format humainement lisible */
echo jdtogregorian($days+1721425)."\n";
/* px_date2string() affiche la même chose */
echo px_date2string($px, $days, "n/d/Y")."\n";

px_delete($px);
?>

L'exemple ci-dessus va afficher :

7/15/1917
7/15/1917

Voir aussi

px_timestamp2string()
jdtogregorian()

Précédent | Sommaire | Suivant
px_create_fp | Niveau supérieur | px_delete_record


px_delete

(PECL)

px_delete -- Efface la ressource d'une base de données Paradox

Description

bool px_delete ( resource pxdoc )

Efface la ressource d'une base de données Paradox et libère toute la mémoire.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
px_delete_record | Niveau supérieur | px_get_field


px_delete_record

(PECL)

px_delete_record -- Efface une enregistrement depuis une base de données Paradox

Description

bool px_delete_record ( resource pxdoc, int num )

Cette fonction efface un enregistrement depuis une base de données. Elle ne libère pas l'espace dans la base de données mais le marque comme effacé. L'insertion d'un nouvel enregistrement écrasera cet espace.

Note : Cette fonction est uniquement disponible si pxlib >= 0.6.0 est utilisé.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

num

Le numéro de l'enregistrement est un numéro artificiel comptant les enregistrements dans l'ordre dans les lesquels ils sont stockés en base de données. Le premier enregistrement a le numéro 0.

Précédent | Sommaire | Suivant
px_date2string | Niveau supérieur | px_delete


px_get_field

(PECL)

px_get_field -- Retourne les spécifications d'un champ

Description

array px_get_field ( resource pxdoc, int fieldno )

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

fieldno

Numéro du champ. Le premier champ a le numéro 0. Spécifier un numéro de champ inférieur à 0 ou plus grand ou égal au nombre de champs lancera une erreur.

Valeurs de retour

Retourne les spécifications du fieldno-ème champ de la base de données en tant que tableau associatif. Le tableau contient trois éléments nommés name, type et size.

Précédent | Sommaire | Suivant
px_delete | Niveau supérieur | px_get_info


px_get_info

(PECL)

px_get_info -- Retourne des informations sur un fichier Paradox

Description

array px_get_info ( resource pxdoc )

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

Valeurs de retour

Retourne un tableau associatif contenant des informations sur un fichier Paradox. Ce tableau est appelé à évoluer dans le futur.

fileversion

Version du fichier, multiplié par 10, e.g. 70.

tablename

Nom de la table stocké dans le fichier. Si la base de données a été créée par pxlib, alors ce sera la même chose que le nom du fichier sans l'extension.

numrecords

Nombre d'enregistrements dans cette table.

numfields

Nombre de champs dans cette table.

headersize

Nombre d'octets utilisés pour l'en-tête. Vaut habituellement 0x800.

recordsize

Nombre d'octets utilisé par chaque enregistrement. C'est la somme de la taille de tous les champs (disponible depuis la version 1.4.2).

maxtablesize

Cette valeur, multipliée par 0x400, est la taille du bloc de données en octets. Le nombre maximal d'enregistrements dans un bloc de données est un entier de l'intervalle (maxtablesize * 0x400 - 8) / taille de l'enregistrements.

numdatablocks

Le nombre de blocs de données dans le fichier. Chaque bloc de données contient un certain nombre d'enregistrements qui dépend de la taille de l'enregistrement et de la taille du bloc de données (maxtablesize). Les blocs de données ne doivent pas nécessairement être complètement remplis.

numindexfields

Nombre de champs utilisés pour l'index primaire. Le champ commence toujours au numéro 1.

codepage

La page de code DOS qui sera utilisé pour encoder les champs contenant des données sous forme de caractères. Si la cible d'encodage n'est pas définie avec la fonction px_set_targetencoding(), ceci sera l'encodage pour les champs sous forme de caractères lorsque les enregistrements seront récupérés avec la fonction px_get_record() ou px_retrieve_record().

Voir aussi

px_numfields()
px_numrecords()

Précédent | Sommaire | Suivant
px_get_field | Niveau supérieur | px_get_parameter


px_get_parameter

(PECL)

px_get_parameter -- Récupère un paramètre

Description

string px_get_parameter ( resource pxdoc, string name )

Récupère divers paramètres.

Liste de paramètres

pxdoc

Identifiant de ressource de la base de données Paradox tel que retourné par la fonction px_new().

name

Le nom name peut être un parmis la liste suivante :

tablename

Le nom de la table comme stocké dans l'en-tête de la base de données.

targetencoding

L'encodage pour la sortie. Les données qui seront lues depuis le champs de caractères avec la fonction px_get_record() ou la fonction px_retrieve_record() seront réencodées en utilisant l'encodage de sortie. S'il n'est pas défini, alors les données seront transmises tel que stockées dans la base de données.

inputencoding

L'encodage pour les données d'entrées qui seront sotckées dans la base de données. Lors du stockage de données dans un champ de type chaîne de caractères, les données sont attendues dans cette encodage.

Valeurs de retour

Retourne la valeur du paramètre ou FALSE en cas d'échec.

Précédent | Sommaire | Suivant
px_get_info | Niveau supérieur | px_get_record


px_get_record

(PECL)

px_get_record -- Retourne un enregistrement d'une base de données Paradox

Description

array px_get_record ( resource pxdoc, int num [, int mode] )

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

num

Le numéro de l'enregistrement est un numéro artificiel comptant les enregistrements dans le même ordre que celui de la base de données. Le premier enregistrement a le numéro 0.

mode

Le paramètre optionnel mode peut être PX_KEYTOLOWER ou PX_KEYTOUPPER pour convertir les clés du tableau retourné, en minuscule ou majuscule. Si mode n'est pas spécifié ou vaut 0, alors les clés seront exactement pareil que les noms des champs. Les valeurs des éléments seront les valeurs des champs. Les valeurs NULL seront maintenues et seront différentes de 0.0, 0 ou chaîne vide. Le type de champ PX_FIELD_TIME sera retourné en tant qu'entier contenant le nombre de millisecondes depuis minuit. Les timestamp (PX_FIELD_TIMESTAMP) et les dates (PX_FIELD_DATE) sont des entiers représentants respectivement les millisecondes et les jours depuis le début du calendrier Julien. Utilisez les fonctions px-timestamp2string() et px-date2string() pour les convertir en un format lisible.

Valeurs de retour

Retourne le numéro de l'enregistrement num depuis la base de données Paradox. L'enregistrement est retourné sous la forme d'un tableau associatif dont les clés représentent les noms de champs.

Voir aussi

px_retrieve_record()

Précédent | Sommaire | Suivant
px_get_parameter | Niveau supérieur | px_get_schema


px_get_schema

(PECL)

px_get_schema -- Retourne le schéma de la base de données

Description

array px_get_schema ( resource pxdoc [, int mode] )

px_get_schema() retourne le schéma de la base de données.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

mode

Si le paramètre optionnel mode vaut PX_KEYTOLOWER ou PX_KEYTOUPPER, les clés du tableau retourné seront converties en minuscule ou en majuscule. Si mode n'est pas fourni ou s'il vaut 0, alors le nom de la clé sera identique au nom du champ.

Valeurs de retour

Retourne le schéma du fichier de base de données en tant que tableau associatif. Le nom de la clé sera le nom du champ. Chaque élément du tableau est lui-même un tableau associatif contenant deux champs : type et size. type est une des constantes listées dans la table "Les constants pour les types de champs". size est le nombre d'octets que ce champ représente dans l'enregistrement. Le total de toutes les tailles des champs est égal à la taille de l'enregistrement tel qu'elle peut être récupérée avec la fonction px-get-info().

Précédent | Sommaire | Suivant
px_get_record | Niveau supérieur | px_get_value


px_get_value

(PECL)

px_get_value -- Récupère une valeur

Description

float px_get_value ( resource pxdoc, string name )

Récupère diverses valeurs.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

name

name peut être un parmis les suivants :

numprimkeys

Le nombre de clés primaires. Les base de données Paradox utilisent toujours les champs numprimkeys pour les index primaires.

Valeurs de retour

Retourne la valeur du paramètre ou FALSE en cas d'échec.

Précédent | Sommaire | Suivant
px_get_schema | Niveau supérieur | px_insert_record


px_insert_record

(PECL)

px_insert_record -- Insère un enregistrement dans une base de données Paradox

Description

int px_insert_record ( resource pxdoc, array data )

Insert un nouvel enregistrement dans une base de données. L'enregistrement n'est pas nécessairement inséré à la fin de la base de données mais peut être inséré à n'importe quelle position libre trouvée.

Les données à enregistrer sont passées via un tableau de valeurs. Les éléments du tableau doivent correspondre aux champs de la base de données. Si le tableau a moins d'éléments que de champs dans la base de données, les champs restants seront définis à NULL.

La plupart des valeurs des champs peut être passée en tant que leurs équivalents PHP, e.g. une valeur longue est utilisée pour les champs de type PX_FIELD_LONG, PX_FIELD_SHORT et PX_FIELD_AUTOINC, une valeur double est utilisée pour les champs de type PX_FIELD_CURRENCY et PX_FIELD_NUMBER. Les valeurs de champs Blob et alpha sont passées en tant que chaînes de caractères.

Les champs de type PX_FIELD_TIME et PX_FIELD_DATE nécessitent une valeur longue. Dans le premier cas, ce sera le nombre de milisecondes depuis minuit. Dans le second cas, ce sera le nombre de jours depuis le 1.1.0000. Ci-dessous, deux exemples pour convertir la date courante ou le timestamp en une valeur compréhensible par les champs Paradox date/heure.

Note : Cette fonction est uniquement disponible si pxlib >= 0.6.0 est utilisé..

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

data

Un tableau associatif ou indexé contenant les valeurs des champs comme retournées par la fonction px_retrieve_record().

Valeurs de retour

Retourne le numéro de l'enregistrement inséré ou FALSE en cas d'erreur.

Exemples

Exemple 1. Définit les champs date/heure dans une base de données Paradox à la date/heure courant

<?php
$px = px_new();
$fp = fopen("test.db", "w+");
px_create_fp($px, $fp, array(array("timestamp", "@"), array("time", "T"), array("date", "D")));

$curdate = getdate();
$jd = gregoriantojd($curdate["mon"], $curdate["mday"], $curdate["year"]);
$days = $jd - 1721425; /* Number of days between 1.1.4714 b.c. and 1.1.0000 */
$secs = $curdate["hours"]*3600 + $curdate["minutes"]*60 + $curdate["seconds"];
px_insert_record($px, array($days*86400000.0 + $secs*1000.0, $secs*1000.0, $days));

$curtimestamp = microtime(true);
$days = (int) ($curtimestamp/86400);
$secs = $curtimestamp - ($days * 86400.0);
$days += 2440588; /* Number of days between 1.1.4714 b.c. and 1.1.1970 */
$days -= 1721425; /* Number of days between 1.1.4714 b.c. and 1.1.0000 */
px_insert_record($px, array($days*86400000.0 + $secs*1000.0, $secs*1000.0, $days));
for($i=0; $i<2; $i++) {
   $rec = px_retrieve_record($px, $i);
   echo px_timestamp2string($px, $rec["timestamp"], "n/d/Y H:i:s")."\n";
   echo px_date2string($px, $rec["date"], "n/d/Y")."\n";
}
px_close($px);
px_delete($px);
?>

L'exemple ci-dessus va afficher :

2/21/2006 21:42:30
2/21/2006
2/21/2006 20:42:30
2/21/2006

Le nombre de jours Julien tel que passé à la fonction jdtogregorian() a une base différente de 1.1.4714 b.c. et doit être calculé en ajoutant 1721425 au nombre de jours utilisé dans le fichier Paradox. Le fait de convertir le nombre de jours en timestamp est facile ; il suffit de multiplier ce nombre par 86400000.0 pour obtenir des millisecondes.

Voir aussi

px_update_record()

Précédent | Sommaire | Suivant
px_get_value | Niveau supérieur | px_new


px_new

(PECL)

px_new -- Crée un nouvel objet Paradox

Description

resource px_new ( void )

Crée un nouvel objet Paradox. Vous devez appeler cette fonction avant toute autre fonction. px_new() ne crée aucun fichier sur le disque, il crée juste une instance d'un objet Paradox. Cette fonction doit être appelée si l'interface orientée objet est utilisée. Utilisez new paradox_db() à la place.

Valeurs de retour

Retourne FALSE si une erreur survient.

Exemples

Exemple 1. Ouverture d'une base de données Paradox

<?php
if(!$pxdoc = px_new()) {
  /* Gestionnaire d'erreurs */
}
$fp = fopen("test.db", "r");
if(!px_open_fp($pxdoc, $fp)) {
  /* Gestionnaire d'erreurs */
}
// ...
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

Si vous préférez l'API orientée objet, alors, l'exemple précédent ressemblera à ceci :

Exemple 2. Ouverture d'une base de données Paradox

<?php
$fp = fopen("test.db", "r");
$pxdoc = new paradox_db();
if(!$pxdoc->open_fp($fp)) {
  /*  Gestionnaire d'erreurs */
}
// ...
$pxdoc->close();
fclose($fp);
?>

Voir aussi

px_delete()
px_open_fp()

Précédent | Sommaire | Suivant
px_insert_record | Niveau supérieur | px_numfields


px_numfields

(PECL)

px_numfields -- Retourne le nombre de champs d'une base de données Paradox

Description

int px_numfields ( resource pxdoc )

Récupère le nombre de champs dans un fichier de base de données Paradox.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

Valeurs de retour

Retourne le nombre de champs d'un fichier de base de données Paradox. La valeur retournée par cette fonction est identique à la valeur de l'élément numfields du tableau associatif retourné par la fonction px_get_info().

Précédent | Sommaire | Suivant
px_new | Niveau supérieur | px_numrecords


px_numrecords

(PECL)

px_numrecords -- Retourne le nombre d'enregistrements d'une base de données Paradox

Description

int px_numrecords ( resource pxdoc )

Retourne le nombre d'enregistrements d'un fichier de base de données Paradox.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

Valeurs de retour

Retourne le nombre d'enregistrements d'un fichier de base de données Paradox. La valeur retournée par cette fonction est identique à la valeur de l'élément numrecords du tableau retourné par la fonction px_get_info().

Précédent | Sommaire | Suivant
px_numfields | Niveau supérieur | px_open_fp


px_open_fp

(PECL)

px_open_fp -- Ouvre une base de données Paradox

Description

bool px_open_fp ( resource pxdoc, resource file )

Ouvre un fichier de base de données Paradox existant. Le fichier actuel doit avoir été ouvert avant par la fonction fopen(). Cette fonction peut également être utilisée pour ouvrir les fichiers d'index primaires et les traiter comme des bases de données Paradox. Ceci est supporté pour ceux qui veulent investiguer un index primaire. Il ne peut être utilisé pour accélérer l'accès à un fichier de base de données.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

file

file est la valeur retournée par la fonction fopen() avec le fichier de base de données actuelle en tant que paramètre. Assurez-vous que la base de données est accessible en écriture si vous devez mettre à jour des enregistrements ou en insérer de nouveaux.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

fopen()
L'exemple de la fonction px_new()

Précédent | Sommaire | Suivant
px_numrecords | Niveau supérieur | px_put_record


px_put_record

(PECL)

px_put_record -- Stock un enregistrement dans une base de données Paradox

Description

bool px_put_record ( resource pxdoc, array record [, int recpos] )

Stock un enregistrement dans une base de données Paradox. L'enregistrement sera toujours ajouté à la fin de la base de données, indépendament des slots libres. Utilisez la fonction px_insert_record() pour ajouter un nouvel enregistrement dans le premier slot libre trouvé dans la base de données.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

record

Tableau associatif ou indexé contenant les valeurs des champs tel que retourné par la fonction px_retrieve_record().

recpos

Ce paramètre optionnel peut être utilisé pour spécifier un nombre d'enregistrements supérieurs au nombre d'enregistrements actuellement en base de données. La fonction ajoutera autant d'enregistrements vides que nécessaires. Ce paramètre est inutile dans la plupart des cas.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
px_open_fp | Niveau supérieur | px_retrieve_record


px_retrieve_record

(PECL)

px_retrieve_record -- Retourne un enregistrement depuis une base de données Paradox

Description

array px_retrieve_record ( resource pxdoc, int num [, int mode] )

Cette fonction est très similaire à la fonction px_get_record() mais utilise en interne une approche différente pour récupérer les données. Elle utilise pxlib pour lire la valeur de chaque champ, permettant ainsi le support de plus de types de champs.

Note : Cette fonction est uniquement disponible si pxlib >= 0.6.0 est utilisé.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox comme retourné par la fonction px_new().

num

Le numéro de l'enregistrement est un numéro artificiel comptant les enregistrements dans l'ordre dans les lesquels ils sont stockés en base de données. Le premier enregistrement a le numéro 0.

mode

Le paramètre optionnel mode peut être PX_KEYTOLOWER ou PX_KEYTOUPPER afin de convertir les clés en majuscule ou en minuscule. Si mode n'est pas fournie ou vaut 0, alors la clé sera exactement le nom du champ. Les valeurs des éléments contiendront les valeurs des champs. les valeurs NULL seront retenues et sont différentes de 0.0, 0 ou une chaîne vide. Les champs de type PX_FIELD_TIME seront retournés en tant qu'entiers représentant le nombre de secondes depuis minuit. Un timestamp est une valeur flottante comptant également les millisecondes depuis le début du calendrier julien.

Valeurs de retour

Retourne l'enregistrement numéro num depuis une base de données Paradox. L'enregistrement est retourné en tant que tableau associatif dont les clés sont les noms des champs.

Voir aussi

px_get_record()

Précédent | Sommaire | Suivant
px_put_record | Niveau supérieur | px_set_blob_file


px_set_blob_file

(PECL)

px_set_blob_file -- Définit le fichier depuis lequel les blobs seront lus

Description

bool px_set_blob_file ( resource pxdoc, string filename )

Définit le nom du fichier depuis lequel les blobs seront lus. Sans l'appel à cette fonction, px_get_record() ou px_retrieve_record() retournera uniquement les données des champs blob si les données sont des parties des enregistrements et ne sont pas stockées dans un fichier blob. Les données blob sont stockées dans un enregistrement si elles sont suffisamment petites pour correspondre à la taille du champ blob.

L'appel aux fonctions px_put_record(),
px_insert_record() ou
px_update_record() sans appeler la fonction
px_set_blob_file() fera que les champs Blobs seront
tronqués à moins que les données rentrent juste dans le fichier de base de données.

Deux appels à cette fonction fermera le premier fichier blob et ouvrira le nouveau.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

filename

Le nom du fichier. Son extension doit être .MB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
px_retrieve_record | Niveau supérieur | px_set_parameter


px_set_parameter

(PECL)

px_set_parameter -- Définit un paramètre

Description

bool px_set_parameter ( resource pxdoc, string name, string value )

Définit divers paramètres.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données Paradox comme retourné par la fonction px_new().

name

Suivant le paramètre que vous voulez définir, name peut prendre une des valeurs suivantes :

tablename

Le nom de la table comme il est stocké dans l'en-tête de la base de données.

targetencoding

L'encodage pour la sortie. Les données lues depuis les champs seront encodées avec ce paramètre.

inputencoding

L'encodage des données d'entrées qui seront stockées dans la base de données.

value

La valeur du paramètre à définir. Pour l'encodage de l'entrée et l'encodage de la sortie, cette valeur doit être le nom de l'encodage tel que reconnu par iconv ou recode, e.g. iso-8859-1, utf-8, cp850.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

px_get_info() to determine the DOS code page.

Précédent | Sommaire | Suivant
px_set_blob_file | Niveau supérieur | px_set_tablename


px_set_tablename

(PECL)

px_set_tablename -- Définit le nom de la table (déprécié)

Description

void px_set_tablename ( resource pxdoc, string name )

Définit le nom de la table d'une base de données Paradox, qui a été créé avec la fonction px_create_fp(). Cette fonction est obsolète, utilisez la fonction px_set_parameter() à la place.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

tablename

Le nom de la table. Si elle n'est pas nommée explicitement, le nom de la table correspondera au nom du fichier de base de données.

Valeurs de retour

Retourne NULL en cas de succès, ou FALSE si une erreur survient.

Voir aussi

px_set_parameter()

Précédent | Sommaire | Suivant
px_set_parameter | Niveau supérieur | px_set_targetencoding


px_set_targetencoding

(PECL)

px_set_targetencoding -- Définit l'encodage pour les caractères des champs (déprécié)

Description

bool px_set_targetencoding ( resource pxdoc, string encoding )

Définit l'encodage pour les données récupérées depuis les champs. Tous les caractères des champs seront réencodés par cette fonction. Si l'encodage n'est pas défini, les caractères des données seront retournés en utilisant l'encodage de page DOS comme spécifié dans la base de données. Le paramètre encoding peut être n'importe quel identifiant connu par iconv ou recode. Sous les systèmes Unix, exécutez la commande iconv -l pour obtenir une liste des encodages disponibles.

Cette fonction est obsolète et devrait être remplacée par la fonction px_set_parameter().

Voir aussi la fonction px_get_info() pour déterminer le code page DOS tel que stocké dans le fichier de base de données.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

encoding

L'encodage pour la sortie. Les données lues depuis des champs caractères seront encodées avec cet encodage.

Valeurs de retour

Retourne FALSE si l'encodage n'a pû être définie, e.g. l'encodage est inconnu ou pxlib ne supporte pas du tout le réencodage. Dans le deuxième cas, une alerte sera émise.

Voir aussi

px_set_parameter()

Précédent | Sommaire | Suivant
px_set_tablename | Niveau supérieur | px_set_value


px_set_value

(PECL)

px_set_value -- Définit une valeur

Description

bool px_set_value ( resource pxdoc, string name, float value )

Définit diverses valeurs.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données comme retourné par la fonction px_new().

name

name peut être un des suivants :

numprimkeys

Le nombre de clés primaires. Les bases de données Paradox utilisent toujours le premier champ numprimkeys pour l'index primaire.

value

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

px_set_parameter()

Précédent | Sommaire | Suivant
px_set_targetencoding | Niveau supérieur | px_timestamp2string


px_timestamp2string

(PECL)

px_timestamp2string -- Convertit un timestamp en une chaîne de caractères

Description

string px_timestamp2string ( resource pxdoc, float value, string format )

Convertit un timestamp tel que stocké dans un fichier Paradox en un format humainement lisible. Les timestamps Paradox sont le nombre de millisecondes depuis le 1.1.0000. Cette fonction peut facilement être remplacée par des fonctions mathématiques et de calendriers tel qu'utilisées dans l'exemple ci-dessous.

Liste de paramètres

pxdoc

Identifiant de la ressource de la base de données.

value

Valeur comme stockée dans un champ de base de données Paradox de type PX_FIELD_TIME ou PX_FIELD_TIMESTAMP.

format

Format similaire au format utilisé par la fonction date(). Les caractères spéciaux supportés par cette fonction sont une partie de ceux supportés par la fonction date() (Y, y, m, n, d, j, H, h, G, g, i, s, A, a, L).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Convertit un timestamp Paradox en un format humainement lisible

<?php
$px = px_new();

/* assignement d'une date telle qu'elle peut être stockée dans */
/* un champ date d'une base de données Paradox. */
/* 700000 jours depuis le 1.1.0000. */
$days = 700000;

/* Utilisation des fonctions de calendriers pour afficher */
/* un format humainement lisible de la date */
echo jdtogregorian($days+1721425)."\n";

/* Convertit en un timestamp tel que stocké dans une base de données Paradox */
/* Timestamps sont stockés en millisecondes depuis le 1.1.0000 */
$stamp = $days * 86400.0 * 1000.0;
/* Ajout d'une heure */
$stamp += 3600000.0;
/* Affichera : '7/15/1917 01:00:00'. */
echo px_timestamp2string($px, $stamp, "n/d/Y H:i:s")."\n";

px_delete($px);
?>

L'exemple ci-dessus va afficher :

7/15/1917
7/15/1917 01:00:00

Le nombre de jours Julien tel que passé à la fonction jdtogregorian() a une base différente de 1.1.4714 b.c. et doit être calculé en ajoutant 1721425 au nombre de jours utilisé dans le fichier Paradox. Le fait de convertir un nombre de jours en un timestamp est facile ; il suffit de le multiplier par 86400000.0 pour obtenir des millisecondes.

Voir aussi

px_date2string()
jdtogregorian()

Précédent | Sommaire | Suivant
px_set_value | Niveau supérieur | px_update_record


px_update_record

(PECL)

px_update_record -- Met à jour les enregistrements dans une base de données Paradox

Description

bool px_update_record ( resource pxdoc, array data, int num )

Cette fonction met à jour un enregistrement dans la base de données. L'enregistrement commence à 0.

Les données de l'enregistrement sont passées en tant que tableau de valeurs. Les éléments du tableau doivent correspondre aux champs de la base de données. Si le tableau a moins d'éléments que la base de données n'a de champs, les champs restants seront définis à NULL.

Note : Cette fonction est uniquement disponible si pxlib >= 0.6.0 est utilisé.

Liste de paramètres

pxdoc

Identifiant de ressource de la base de données Paradox comme retourné par la fonction px_new().

data

Tableau associatif contenant les valeurs des champs comme retournées par la fonction px_retrieve_record().

num

Le numéro de l'enregistrement est un numéro artificiel comptant les enregistrements dans l'ordre dans les lesquels ils sont stockés en base de données. Le premier enregistrement a le numéro 0.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

px_insert_record()

Précédent | Sommaire | Suivant
px_timestamp2string | Niveau supérieur | Fonctions Parsekit


radius_acct_open

(PECL)

radius_acct_open -- Crée une ressource Radius pour les comptes

Description

resource radius_acct_open ( void )

Valeurs de retour

Retourne une ressource en cas de succès ou FALSE si une erreur survient. Cette fonction n'échoue que s'il y a un manque de mémoire.

Exemples

Exemple 1. Exemple avec radius_acct_open()

<?php
$res = radius_acct_open ()
    or die ("Impossible de créer la ressource");
print("La ressource a été créée avec succès");
?>

Précédent | Sommaire | Suivant
Radius | Niveau supérieur | radius_add_server


radius_add_server

(PECL)

radius_add_server -- Ajoute un serveur

Description

bool radius_add_server ( resource radius_handle, string hostname, int port, string secret, int timeout, int max_tries )

radius_add_server() peut être utilisé plusieurs fois, et il peut être utilisé avec la fonction radius_config(). Tout au plus, 10 serveurs peuvent être spécifiés. Lorsque plusieurs serveurs sont fournis, ils sont essayés à la façon round-robin tant qu'une réponse valide n'est pas reçue, ou tant que la limite max_tries de chaque serveur n'est pas atteinte.

Liste de paramètres

radius_handle

hostname

Le paramètre hostname spécifie l'hôte serveur, soit en tant que nom de domaine qualifié, soit en tant qu'adresse IP.

port

Le port spécifie le port UDP à contacter sur le serveur. Si le port donné vaut 0, la bibliothèque recherchera le service radius/udp ou radacct/udp dans la base de données des services du réseau et utilisera le port s'y trouvant. Si aucune entrée n'est trouvée, la bibliothèque utilisera les ports Radius standards, 1812 pour l'identification et 1813 pour les comptes.

secret

Le secret partagé pour l'hôte serveur est passé au paramètre secret. Le protocole Radius ignore tout mais garde les 128 premiers octets du secret partagé.

timeout

Le délai limite pour recevoir les réponses du serveur est passé au paramètre timeout, sous la forme de seconde.

max_tries

Le nombre maximal de requêtes répétées à faire avant d'échouer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
radius_acct_open | Niveau supérieur | radius_auth_open


radius_auth_open

(PECL)

radius_auth_open -- Crée une ressource Radius pour l'identification

Description

resource radius_auth_open ( void )

Valeurs de retour

Retourne une ressource en cas de succès ou FALSE si une erreur survient. Cette fonction n'échoue que s'il y a un manque de mémoire.

Exemples

Exemple 1. Exemple avec radius_auth_open()

<?php
$radh = radius_auth_open()
    or die ("Impossible de créer la ressource");
echo "La ressource a été créée avec succès";
?>

Précédent | Sommaire | Suivant
radius_add_server | Niveau supérieur | radius_close


radius_close

(PECL)

radius_close -- Libère toutes les ressurces

Description

bool radius_close ( resource radius_handle )

Il n'est pas nécessaire d'appeler cette fonction car PHP libère toutes les ressources à la fin de chaque demande.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
radius_auth_open | Niveau supérieur | radius_config


radius_config

(PECL)

radius_config -- Demande à la bibliothèque de lire un fichier de configuration donné

Description

bool radius_config ( resource radius_handle, string file )

Avant toute demande Radius, la bibliothèque doit connaître le serveur à contacter. La manière simple de configurer la bibliothèque est d'appeler la fonction radius_config(). radius_config() demande à la bibliothèque de lire un fichier de configuration dont le format est décrit sur la page radius.conf.

Liste de paramètres

radius_handle

file

Le chemin vers le fichier de configuration est passé en tant qu'argument à la fonction radius_config(). La bibliothèque peut également être configurée en appelant la fonction radius_add_server().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

radius_add_server()

Précédent | Sommaire | Suivant
radius_close | Niveau supérieur | radius_create_request


radius_create_request

(PECL)

radius_create_request -- Crée une demande de compte ou d'identification

Description

bool radius_create_request ( resource radius_handle, int type )

Une demande Radius consiste en du code spécifiant une demande spécifique, ainsi que zéro ou plusieurs attributs qui fournissent des informations supplémentaires. Pour commencer à construire une nouvelle demande, appelez la fonction radius_create_request().

Note : Attention : Vous devez appeler cette fonction avant de passer n'importe quel argument !

Liste de paramètres

radius_handle

Le type est RADIUS_ACCESS_REQUEST ou RADIUS_ACCOUNTING_REQUEST.

type

Sa description

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
radius_config | Niveau supérieur | radius_cvt_addr


radius_cvt_addr

(PECL)

radius_cvt_addr -- Convertit des données brutes en adresse IP

Description

string radius_cvt_addr ( string data )

Exemples

Exemple 1. Exemple avec radius_cvt_addr()

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Erreur lors de la récupération des attributs : %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FRAMED_IP_ADDRESS:
        $ip = radius_cvt_addr($data);
        echo "IP : $ip<br>\n";
        break;

    case RADIUS_FRAMED_IP_NETMASK:
        $mask = radius_cvt_addr($data);
        echo "MASQUE : $mask<br>\n";
        break;
    }
}
?>

Voir aussi

radius_cvt_int()
radius_cvt_string()

Précédent | Sommaire | Suivant
radius_create_request | Niveau supérieur | radius_cvt_int


radius_cvt_int

(PECL)

radius_cvt_int -- Convertit des données brutes en entier

Description

int radius_cvt_int ( string data )

Exemples

Exemple 1. Exemple avec radius_cvt_int()

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Erreur lors de la récupération des attributs : %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FRAMED_MTU:
        $mtu = radius_cvt_int($data);
        echo "MTU : $mtu<br>\n";
        break;
    }
}
?>

Voir aussi

radius_cvt_addr()
radius_cvt_string()

Précédent | Sommaire | Suivant
radius_cvt_addr | Niveau supérieur | radius_cvt_string


radius_cvt_string

(PECL)

radius_cvt_string -- Convertit des données brutes en chaîne de caractères

Description

string radius_cvt_string ( string data )

Exemples

Exemple 1. Exemple avec radius_cvt_string()

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Erreur lors de la récupération des attributs : %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FILTER_ID:
        $id = radius_cvt_string($data);
        echo "Filtre ID : $id<br>\n";
        break;
    }
}
?>

Voir aussi

radius_cvt_addr()
radius_cvt_int()

Précédent | Sommaire | Suivant
radius_cvt_int | Niveau supérieur | radius_demangle_mppe_key


radius_demangle

(PECL)

radius_demangle -- Assèche des données

Description

string radius_demangle ( resource radius_handle, string mangled )

Quelques données (mots de passe, clés MS-CHAPv1 MPPE) sont "séchées" pour des raisons de sécurité et doivent être "asséchées" avant de pouvoir les utiliser.

Valeurs de retour

Retourne la chaîne "asséchées" ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
radius_demangle_mppe_key | Niveau supérieur | radius_get_attr


radius_demangle_mppe_key

(PECL)

radius_demangle_mppe_key -- Dérive les clés mppe depuis des données

Description

string radius_demangle_mppe_key ( resource radius_handle, string mangled )

Lors de l'utilisation de MPPE avec MS-CHAPv2, les clés reçues et envoyées sont "séchées" (voir la RFC 2548), cependant, cette fonction est utile, car je ne sais pas s'il y a ou pas une implémentation de PPTP-MPPE dans PHP.

Valeurs de retour

Retourne la chaîne ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
radius_cvt_string | Niveau supérieur | radius_demangle


radius_get_attr

(PECL)

radius_get_attr -- Extrait un attribut

Description

mixed radius_get_attr ( resource radius_handle )

Comme les demandes Radius, chaque réponse doit contenir zéro ou plusieurs attributs. Après la réception d'une réponse avec succès par la fonction radius_send_request(), ces attributs peuvent être extraits un par un en utilisant la fonction radius_get_attr(). À chaque appel de radius_get_attr(), le prochain attribut est récupéré depuis la réponse courante.

Valeurs de retour

Retourne un tableau associatif contenant le type de l'attribut ainsi que les données ou un numéro d'erreur <= 0.

Exemples

Exemple 1. Exemple avec radius_get_attr()

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf("Erreur lors de la récupération de l'attribut : %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];
    printf("Attribut récupéré :%d %d octets %s\n", $attr, strlen($data), bin2hex($data));
}
?>

Voir aussi

radius_put_attr()
radius_get_vendor_attr()
radius_put_vendor_attr()
radius_send_request()

Précédent | Sommaire | Suivant
radius_demangle | Niveau supérieur | radius_get_vendor_attr


radius_get_vendor_attr

(PECL)

radius_get_vendor_attr -- Extrait un attribut spécifique au vendeur

Description

array radius_get_vendor_attr ( string data )

Si radius_get_attr() retourne RADIUS_VENDOR_SPECIFIC, radius_get_vendor_attr() peut être appelé pour déterminer le vendeur.

Valeurs de retour

Retourne un tableau associatif contenant le type de l'attribut, le vendeur ainsi que les données, ou FALSE si une erreur survient.

Exemples

Exemple 1. Exemple avec radius_get_vendor_attr()

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Erreur lors de la récupération de l'attribut : %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];
    printf("Attribut récupéré :%d %d octets %s\n", $attr, strlen($data), bin2hex($data));
    if ($attr == RADIUS_VENDOR_SPECIFIC) {

        $resv = radius_get_vendor_attr($data);
        if (is_array($resv)) {
            $vendor = $resv['vendor'];
            $attrv = $resv['attr'];
            $datav = $resv['data'];
            printf("Récupération du vendeur de l'attribut :%d %d octets %s\n", $attrv, strlen($datav), bin2hex($datav));
        }

    }
}
?>

Voir aussi

radius_get_attr()
radius_put_vendor_attr()

Précédent | Sommaire | Suivant
radius_get_attr | Niveau supérieur | radius_put_addr


radius_put_addr

(PECL)

radius_put_addr -- Attache une adresse IP en tant qu'attribut

Description

bool radius_put_addr ( resource radius_handle, int type, string addr )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
radius_get_vendor_attr | Niveau supérieur | radius_put_attr


radius_put_attr

(PECL)

radius_put_attr -- Attache un attribut binaire

Description

bool radius_put_attr ( resource radius_handle, int type, string value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec radius_put_attr()

<?php
mt_srand(time());
$chall = mt_rand();
$chapval = md5(pack('Ca*',1 , 'sepp' . $chall));
$pass = pack('CH*', 1, $chapval);
if (!radius_put_attr($res, RADIUS_CHAP_PASSWORD, $pass)) {
    echo 'Erreur Radius :' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Voir aussi

radius_get_attr()
radius_get_vendor_attr()
radius_put_vendor_attr()

Précédent | Sommaire | Suivant
radius_put_addr | Niveau supérieur | radius_put_int


radius_put_int

(PECL)

radius_put_int -- Attache un attribut entier

Description

bool radius_put_int ( resource radius_handle, int type, int value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
radius_put_vendor_int()
radius_put_vendor_string()

Précédent | Sommaire | Suivant
radius_put_attr | Niveau supérieur | radius_put_string


radius_put_string

(PECL)

radius_put_string -- Attache un attribut chaîne de caractères

Description

bool radius_put_string ( resource radius_handle, int type, string value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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()
radius_put_vendor_int()
radius_put_vendor_string()

Précédent | Sommaire | Suivant
radius_put_int | Niveau supérieur | radius_put_vendor_addr


radius_put_vendor_addr

(PECL)

radius_put_vendor_addr -- Attache un attribut IP-Address spécifique à un vendeur

Description

bool radius_put_vendor_addr ( resource radius_handle, int vendor, int type, string addr )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
radius_put_string | Niveau supérieur | radius_put_vendor_attr


radius_put_vendor_attr

(PECL)

radius_put_vendor_attr -- Attache un attribut binaire à un vendeur spécifique

Description

bool radius_put_vendor_attr ( resource radius_handle, int vendor, int type, string value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
radius_put_vendor_addr | Niveau supérieur | radius_put_vendor_int


radius_put_vendor_int

(PECL)

radius_put_vendor_int -- Attache un attribut entier à un vendeur spécifique

Description

bool radius_put_vendor_int ( resource radius_handle, int vendor, int type, int value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
radius_put_vendor_attr | Niveau supérieur | radius_put_vendor_string


radius_put_vendor_string

(PECL)

radius_put_vendor_string -- Attache un attribut sous la forme d'une chaîne à un vendeur spécifique

Description

bool radius_put_vendor_string ( resource radius_handle, int vendor, int type, string value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
radius_put_vendor_int | Niveau supérieur | radius_request_authenticator


radius_request_authenticator

(PECL)

radius_request_authenticator -- Retourne l'identificateur demandé

Description

string radius_request_authenticator ( resource radius_handle )

L'identificateur demandé est nécessaire pour le rétablissement des données comme les mots de passe et les clés de cryptages.

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

Précédent | Sommaire | Suivant
radius_put_vendor_string | Niveau supérieur | radius_send_request


radius_send_request

(PECL)

radius_send_request -- Envoie la demande et attente une réponse

Description

int radius_send_request ( resource radius_handle )

Après qu'une demande Radius ait été construite, elle est envoyé grâce à la fonction radius_send_request().

La fonction radius_send_request() envoie la requête et attend une réponse valide, re-essayant à la façon round-robin autant que nécessaire.

Valeurs de retour

Si une réponse valide est reçue, radius_send_request() retourne le code Radius qui spécifie le type de réponse. C'est, typiquement, RADIUS_ACCESS_ACCEPT, RADIUS_ACCESS_REJECT ou RADIUS_ACCESS_CHALLENGE. Si aucune réponse valide n'est reçue, radius_send_request() retournera FALSE.

Voir aussi

radius_create_request()

Précédent | Sommaire | Suivant
radius_request_authenticator | Niveau supérieur | radius_server_secret


radius_server_secret

(PECL)

radius_server_secret -- Retourne le secret partagé

Description

string radius_server_secret ( resource radius_handle )

Le secret partagé est nécessaire pour le rétablissement des données comme les mots de passe et les clés de cryptages.

Valeurs de retour

Retourne le secret partagé du serveur en tant que chaîne de caractères ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
radius_send_request | Niveau supérieur | radius_strerror


radius_strerror

(PECL)

radius_strerror -- Retourne un message d'erreur

Description

string radius_strerror ( resource radius_handle )

Si une fonction Radius échoue, alors, elle enregistre un message d'erreur. Ce message d'erreur peut être récupéré avec cette fonction.

Valeurs de retour

Retourne un message d'erreur en tant que chaîne de caractères.

Précédent | Sommaire | Suivant
radius_server_secret | Niveau supérieur | Rar


rpm_close

(no version information, might be only in CVS)

rpm_close -- Ferme un fichier RPM

Description

bool rpm_close ( resource rpmr )

rpm_close() fermera le pointeur de fichier RPM.

Liste de paramètres

rpmr

Une ressource de pointeur de fichier ouverte par rpm_open().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec rpm_close()

<?php

$file = "/chemin/vers/fichier.rpm";
$rpmr = rpm_open($file);

rpm_close($rpmr);

?>

Voir aussi

rpm_open()

Précédent | Sommaire | Suivant
Fonctions Lecture d'En-tête RPM | Niveau supérieur | rpm_get_tag


rpm_get_tag

(no version information, might be only in CVS)

rpm_get_tag -- Récupération d'un tag de l'en-tête d'un fichier RPM

Description

mixed rpm_get_tag ( resource rpmr, int tagnum )

rpm_get_tag() récupérera un tag donné de l'en-tête du fichier RPM et le retournera.

Liste de paramètres

rpmr

Une ressource de pointeur de fichier correctement ouverte par rpm_open().

tagnum

Le numéro du tag à récupérer de l'en-tête RPM. La valeur peut être spécifiée en utilisant la liste des constantes définies par ce module.

Valeurs de retour

La valeur de retour peut être de type varié dépendamment du paramètre tagnum spécifié à la fonction.

Exemples

Exemple 1. Exemple avec rpm_get_tag()

<?php

$file = "/chemin/vers/fichier.rpm";
$rpmr = rpm_open($file);

$name = rpm_get_tag($rpmr, RPMREADER_NAME);
echo "$name<br />\n";

rpm_close($rpmr);

?>

Voir aussi

rpm_open()
rpm_close()

Précédent | Sommaire | Suivant
rpm_close | Niveau supérieur | rpm_is_valid


rpm_is_valid

(no version information, might be only in CVS)

rpm_is_valid -- Teste la validité du nom du fichier d'un fichier RPM

Description

bool rpm_is_valid ( string filename )

rpm_is_valid() testera la validité d'un fichier RPM pour que cela soit un fichier RPM. Ceci n'est pas la même chose que rpm_open() puisqu'elle vérifie seulement la validité du fichier mais ne retourne pas de pointeur de fichier pour être utiliser par d'autres fonctions.

Liste de paramètres

filename

Le nom de fichier du fichier RPM que vous voulez vérifier la validité.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec rpm_is_valid()

<?php

$file = "/chemin/vers/fichier.rpm";

if (rpm_is_valid($file)) {
    echo "Le fichier est reconnu en tant que fichier RPM.<br />\n";
}
else {
    echo "Le fichier n'est pas reconnu en tant que fichier RPM.<br />\n";
}

?>

Précédent | Sommaire | Suivant
rpm_get_tag | Niveau supérieur | rpm_open


rpm_open

(no version information, might be only in CVS)

rpm_open -- Ouvre un fichier RPM

Description

resource rpm_open ( string filename )

rpm_open() ouvrira un fichier RPM et déterminera si le fichier est un fichier RPM valide.

Liste de paramètres

filename

Le nom du fichier que vous souhaitez ouvrir en tant que fichier RPM.

Valeurs de retour

Si la fonction réussit, alors rpm_open() retournera une ressource de pointeur de fichier du nouveau fichier ouvert. En cas d'erreur, la fonction retournera FALSE.

Exemples

Exemple 1. Exemple avec rpm_open()

<?php

$file = "/chemin/vers/fichier.rpm";
$rpmr = rpm_open($file);

rpm_close($rpmr);

?>

Voir aussi

rpm_close()

Précédent | Sommaire | Suivant
rpm_is_valid | Niveau supérieur | rpm_version


rpm_version

(no version information, might be only in CVS)

rpm_version -- Retourne une chaîne de caractères représentant la version courante de l'extension rpmreader

Description

string rpm_version ( void )

rpm_version() retournera la version courante de l'extension rpmreader.

Valeurs de retour

rpm_version() retournera une chaîne de caractères représentant la version de rpmreader actuellement chargée dans PHP.

Exemples

Exemple 1. Exemple avec rpm_version()

<?php

$rpmr_ver = rpm_version();

echo "$rpmr_ver<br />\n";

?>

Précédent | Sommaire | Suivant
rpm_open | Niveau supérieur | Fonctions runkit


runkit_class_adopt

(PECL)

runkit_class_adopt -- Convertit une classe de base à une classe héritée, ajoute une méthode ancestrale lorsque approprié

Description

bool runkit_class_adopt ( string classname, string parentname )

Liste de paramètres

classname

Le nom de la classe à adopter

parentname

Classe parente pour laquelle la classe enfant s'étend

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec runkit_class_adopt()

<?php
class myParent {
  function parentFunc() {
    echo "Sortie Fonction Parente\n";
  }
}

class myChild {
}

runkit_class_adopt('myChild','myParent');
myChild::parentFunc();
?>

L'exemple ci-dessus va afficher :

Sortie Fonction Parente

Voir aussi

runkit_class_emancipate()

Précédent | Sommaire | Suivant
Runkit_Sandbox_Parent | Niveau supérieur | runkit_class_emancipate


runkit_class_emancipate

(PECL)

runkit_class_emancipate -- Convertit une classe héritée à une classe de base, supprime toute méthode pour qui la portée est ancestrale

Description

bool runkit_class_emancipate ( string classname )

Liste de paramètres

classname

Nom de la classe à émanciper

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec runkit_class_emancipate()

<?php
class myParent {
  function parentFunc () {
    echo "Sortie Fonction Parente\n";
  }
}
class myChild extends myParent {
}

myChild::parentFunc();
runkit_class_emancipate('myChild');
myChild::parentFunc();
?>

L'exemple ci-dessus va afficher :

Sortie Fonction Parente
Fatal error: Call to undefined function:  parentFunc() in example.php on line 12

Voir aussi

runkit_class_adopt()

Précédent | Sommaire | Suivant
runkit_class_adopt | Niveau supérieur | runkit_constant_add


runkit_constant_add

(PECL)

runkit_constant_add -- Similaire à define(), mais permet aussi la définition dans définitions de classe

Description

bool runkit_constant_add ( string constname, mixed value )

Liste de paramètres

constname

Nom de la constante à déclarer. Soit une chaîne de caractères pour indiquer une constante globale ou un classname::constname pour indiquer une constante de classe.

value

Valeur NULL, Bool, Long, Double, String ou Resource pour enregistrer la nouvelle constante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

define()
runkit_constant_redefine()
runkit_constant_remove()

Précédent | Sommaire | Suivant
runkit_class_emancipate | Niveau supérieur | runkit_constant_redefine


runkit_constant_redefine

(PECL)

runkit_constant_redefine -- Redéfinit une constante déjà définie

Description

bool runkit_constant_redefine ( string constname, mixed newvalue )

Liste de paramètres

constname

Constante à redéfinir. Soit une chaîne de caractères pour indiquer une constante globale ou classname::constname pour indiquer une constante de classe.

newvalue

Nouvelle valeur à assigner à la constante.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

runkit_constant_add()
runkit_constant_remove()

Précédent | Sommaire | Suivant
runkit_constant_add | Niveau supérieur | runkit_constant_remove


runkit_constant_remove

(PECL)

runkit_constant_remove -- Enlève/Supprime une constante déjà définie

Description

bool runkit_constant_remove ( string constname )

Liste de paramètres

constname

Nom de la constante à enlever. Soit une chaîne de caractères pour indiquer une constante globale ou classname::constname pour indiquer une constante de classe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

define()
runkit_constant_add()
runkit_constant_redefine()

Précédent | Sommaire | Suivant
runkit_constant_redefine | Niveau supérieur | runkit_function_add


runkit_function_add

(PECL)

runkit_function_add -- Ajoute une nouvelle fonction, similaire à create_function()

Description

bool runkit_function_add ( string funcname, string arglist, string code )

Liste de paramètres

funcname

Nom de la fonction à être créé

arglist

Liste d'arguments séparés par des virgules

code

Code qui compose la fonction

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec runkit_function_add()

<?php
runkit_function_add('testme','$a,$b','echo "La valeur de a est $a\n"; echo "La valeur de b est $b\n";');
testme(1,2);
?>

L'exemple ci-dessus va afficher :

La valeur de a est 1
La valeur de b est 2

Voir aussi

create_function()
runkit_function_redefine()
runkit_function_copy()
runkit_function_rename()
runkit_function_remove()
runkit_method_add()

Précédent | Sommaire | Suivant
runkit_constant_remove | Niveau supérieur | runkit_function_copy


runkit_function_copy

(PECL)

runkit_function_copy -- Copie une fonction vers un nom de fonction nouveau

Description

bool runkit_function_copy ( string funcname, string targetname )

Liste de paramètres

funcname

Nom de la fonction existante

targetname

Nom de la nouvelle fonction pour copier la définition vers celle-ci

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec runkit_function_copy()

<?php
function original() {
  echo "Dans une fonction\n";
}
runkit_function_copy('original','duplicate');
original();
duplicate();
?>

L'exemple ci-dessus va afficher :

Dans une fonction
Dans une fonction

Voir aussi

runkit_function_add()
runkit_function_redefine()
runkit_function_rename()
runkit_function_remove()

Précédent | Sommaire | Suivant
runkit_function_add | Niveau supérieur | runkit_function_redefine


runkit_function_redefine

(PECL)

runkit_function_redefine -- Remplace une définition de fonction avec une nouvelle implémentation

Description

bool runkit_function_redefine ( string funcname, string arglist, string code )

Note : Par défaut, seulement les fonctions définies par l'utilisateur peuvent être supprimées, renommées ou modifiées. Afin de surcharger des fonctions internes, vous devez activer la configuration runkit.internal_override dans le fichier php.ini du système entier.

Liste de paramètres

funcname

Nom de la fonction à redéfinir

arglist

Nouvelle liste d'arguments à être acceptés par la fonction

code

Nouvelle implémentation du code

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec runkit_function_redefine()

<?php
function testme() {
  echo "Implémentation de Testme originale\n";
}
testme();
runkit_function_redefine('testme','','echo "Nouvelle implémentation de Testme\n";');
testme();
?>

L'exemple ci-dessus va afficher :

Implémentation de Testme originale
Nouvelle implémentation de Testme

Voir aussi

runkit_function_add()
runkit_function_copy()
runkit_function_rename()
runkit_function_remove()

Précédent | Sommaire | Suivant
runkit_function_copy | Niveau supérieur | runkit_function_remove


runkit_function_remove

(PECL)

runkit_function_remove -- Enlève une définition de fonction

Description

bool runkit_function_remove ( string funcname )

Note : Par défaut, seulement les fonctions définies par l'utilisateur peuvent être supprimées, renommées ou modifiées. Afin de surcharger des fonctions internes, vous devez activer la configuration runkit.internal_override dans le fichier php.ini du système entier.

Liste de paramètres

funcname

Nom de la fonction à supprimer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

runkit_function_add()
runkit_function_copy()
runkit_function_redefine()
runkit_function_rename()

Précédent | Sommaire | Suivant
runkit_function_redefine | Niveau supérieur | runkit_function_rename


runkit_function_rename

(PECL)

runkit_function_rename -- Change le nom d'une fonction

Description

bool runkit_function_rename ( string funcname, string newname )

Note : Par défaut, seulement les fonctions définies par l'utilisateur peuvent être supprimées, renommées ou modifiées. Afin de surcharger des fonctions internes, vous devez activer la configuration runkit.internal_override dans le fichier php.ini du système entier.

Liste de paramètres

funcname

Nom de la fonction courante

newname

Nouveau nom de fonction

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

runkit_function_add()
runkit_function_copy()
runkit_function_redefine()
runkit_function_remove()

Précédent | Sommaire | Suivant
runkit_function_remove | Niveau supérieur | runkit_import


runkit_import

(PECL)

runkit_import -- Traite un fichier PHP important fonctions et définitions de classes, écrasement où applicable

Description

bool runkit_import ( string filename [, int flags] )

Similaire à include(), par contre tout code qui réside à l'extérieur de fonction ou classe est simplement ignoré. De plus, dépendamment de la valeur de flags, toutes fonctions et classes qui existent déjà dans l'environnement en cours d'exécution seront automatiquement écrasées par leurs nouvelles définitions.

Liste de paramètres

filename

Nom du fichier pour importer les définitions de fonctions et de classe

flags

Comparaison de bits OU (OR) de la famille de constantes RUNKIT_IMPORT_*.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
runkit_function_rename | Niveau supérieur | runkit_lint_file


runkit_lint

(PECL)

runkit_lint -- Vérifie la syntaxe PHP de code PHP spécifié

Description

bool runkit_lint ( string code )

La fonction runkit_lint() effectue une vérification de syntaxe (lint) sur le code PHP spécifié en testant les erreurs de scripts. Cette fonction est similaire à l'utilisation de php -l à partir de la ligne de commande à l'exception que runkit_lint() accepte le code actuel plutôt que d'un fichier.

Note : Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Liste de paramètres

code

Code PHP à être vérifié

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

runkit_lint_file()

Précédent | Sommaire | Suivant
runkit_lint_file | Niveau supérieur | runkit_method_add


runkit_lint_file

(PECL)

runkit_lint_file -- Vérifie la syntaxe PHP d'un fichier spécifié

Description

bool runkit_lint_file ( string filename )

La fonction runkit_lint_file() effectue une vérification de syntaxe (lint) sur le fichier spécifié en testant les erreurs de scripts. Cette fonction est similaire à l'utilisation de php -l à partir de la ligne de commande.

Note : Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Liste de paramètres

filename

Fichier contenant du code PHP à être vérifié

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

runkit_lint()

Précédent | Sommaire | Suivant
runkit_import | Niveau supérieur | runkit_lint


runkit_method_add

(PECL)

runkit_method_add -- Ajoute dynamiquement une nouvelle méthode à une classe donnée

Description

bool runkit_method_add ( string classname, string methodname, string args, string code [, int flags] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode sera ajoutée

methodname

Le nom de la méthode à ajouter

args

Liste des arguments séparés par des virgules pour la nouvelle méthode créée

code

Le code à être évalué lors que methodname est appelé

flags

Le type de méthode à créer, peut être RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED ou RUNKIT_ACC_PRIVATE

Note : Ce paramètre est utilisé seulement en PHP 5, parce que, avant cette version, toutes les méthodes étaient publiques.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec runkit_method_add()

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// Crée un objet Example
$e = new Example();

// Ajoute une nouvelle méthode publique
runkit_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    RUNKIT_ACC_PUBLIC
);

// ajoute 12 + 4
echo $e->add(12, 4);
?>

L'exemple ci-dessus va afficher :

16

Voir aussi

runkit_method_copy()
runkit_method_redefine()
runkit_method_remove()
runkit_method_rename()
runkit_function_add()

Précédent | Sommaire | Suivant
runkit_lint | Niveau supérieur | runkit_method_copy


runkit_method_copy

(PECL)

runkit_method_copy -- Copie une méthode d'une classe à une autre

Description

bool runkit_method_copy ( string dClass, string dMethod, string sClass [, string sMethod] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

dClass

Classe destination pour la méthode copiée

dMethod

Nom de la méthode de destination

sClass

Classe source pour la méthode à copier

sMethod

Nom de la méthode à copier à partir de la classe source. Si ce paramètre est omis, la valeur de dMethod est utilisée.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec runkit_method_copy()

<?php
class Foo {
    function example() {
        return "foo!\n";
    }
}

class Bar {
    // initialement, aucune méthode
}

// Copie la méthode example() de la classe Foo vers la classe Bar, comme étant baz()
runkit_method_copy('Bar', 'baz', 'Foo', 'example');

// sortie de la fonction copiée
echo Bar::baz();
?>

L'exemple ci-dessus va afficher :

foo!

Voir aussi

runkit_method_add()
runkit_method_redefine()
runkit_method_remove()
runkit_method_rename()
runkit_function_copy()

Précédent | Sommaire | Suivant
runkit_method_add | Niveau supérieur | runkit_method_redefine


runkit_method_redefine

(PECL)

runkit_method_redefine -- Change dynamiquement le code de la méthode donnée

Description

bool runkit_method_redefine ( string classname, string methodname, string args, string code [, int flags] )

Note : Cette fonction ne peut être utilisée pour manipuler la méthode en cours d'utilisation (ou chaînée).

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode sera redéfinie

methodname

Le nom de la méthode à redéfinir

args

Liste d'arguments séparés par des virgules pour la méthode redéfinie

code

Le nouveau code qui sera évalué lorsque methodname sera appelée

flags

La méthode redéfinie peut etre RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED ou RUNKIT_ACC_PRIVATE

Note : Ce paramètre est utilisé seulement en PHP 5, parce que, avant cette version, toutes les méthodes étaient publiques.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec runkit_method_redefine()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Crée un objet Example
$e = new Example();

// Sortie Example::foo() (avant la redéfinition)
echo "Avant : " . $e->foo();

// Redéfinition de la méthode 'foo'
runkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    RUNKIT_ACC_PUBLIC
);

// Sortie Example::foo() (après la redéfinition)
echo "Après : " . $e->foo();
?>

L'exemple ci-dessus va afficher :

Avant : foo!
Après : bar!

Voir aussi

runkit_method_add()
runkit_method_copy()
runkit_method_remove()
runkit_method_rename()
runkit_function_redefine()

Précédent | Sommaire | Suivant
runkit_method_copy | Niveau supérieur | runkit_method_remove


runkit_method_remove

(PECL)

runkit_method_remove -- Supprime dynamiquement la méthode donnée

Description

bool runkit_method_remove ( string classname, string methodname )

Note : Cette fonction ne peut être utilisée pour manipuler la méthode en cours d'utilisation (ou chaînée).

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode sera supprimée

methodname

Le nom de la méthode à supprimer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec runkit_method_remove()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Suppression de la méthode 'foo'
runkit_method_remove(
    'Example',
    'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

L'exemple ci-dessus va afficher :

bar

Voir aussi

runkit_method_add()
runkit_method_copy()
runkit_method_redefine()
runkit_method_rename()
runkit_function_remove()

Précédent | Sommaire | Suivant
runkit_method_redefine | Niveau supérieur | runkit_method_rename


runkit_method_rename

(PECL)

runkit_method_rename -- Change dynamiquement le nom de la méthode donnée

Description

bool runkit_method_rename ( string classname, string methodname, string newname )

Note : Cette fonction ne peut être utilisée pour manipuler la méthode en cours d'utilisation (ou chaînée).

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

classname

La classe dans laquelle la méthode sera renommée

methodname

Le nom de la méthode à renommer

newname

Le nouveau nom à donner à la métode renommée

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec runkit_method_rename()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Renomme la méthode 'foo' par 'bar'
runkit_method_rename(
    'Example',
    'foo',
    'bar'
);

// output renamed function
echo Example::bar();
?>

L'exemple ci-dessus va afficher :

foo!

Voir aussi

runkit_method_add()
runkit_method_copy()
runkit_method_redefine()
runkit_method_remove()
runkit_function_rename()

Précédent | Sommaire | Suivant
runkit_method_remove | Niveau supérieur | runkit_return_value_used


runkit_return_value_used

(no version information, might be only in CVS)

runkit_return_value_used -- Détermine si la valeur de retour des fonctions courantes sera utilisée

Description

bool runkit_return_value_used ( void )

Valeurs de retour

Retourne TRUE si la valeur de retour d'une fonction est utilisée par la portée appelante, FALSE autrement.

Exemples

Exemple 1. Exemple avec runkit_return_value_used()

<?php
function foo() {
  var_dump(runkit_return_value_used());
}

foo();
$f = foo();
?>

L'exemple ci-dessus va afficher :

bool(false)
bool(true)

Précédent | Sommaire | Suivant
runkit_method_rename | Niveau supérieur | runkit_sandbox_output_handler


runkit_sandbox_output_handler

(PECL)

runkit_sandbox_output_handler -- Spécifie une fonction à capturer et/ou traiter la sortie à partir d'un runkit sandbox

Description

mixed runkit_sandbox_output_handler ( object sandbox [, mixed callback] )

Normalement, toutes les sorties (comme avec echo() ou print()) seront écrites comme si elles avaient été écrites à partir de la portée du parent. Cependant, l'utilisation de runkit_sandbox_output_handler(), sorties générées par le sandbox (incluant les erreurs), peuvent être capturées par une fonction extérieure à sandbox.

Note : Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Dépréciée : Depuis la version de runkit 0.5, cette fonction est dépréciée et devrait être supprimée de ce paquetage avant la version 1.0. Le gestionnaire de sortie pour une instance donnée de Runkit_Sandbox devrait être lue/fixée en utilisant la syntaxe tableau de décalage montrée sur la page de définition de la classe Runkit_Sandbox.

Liste de paramètres

sandbox

Instance de la classe Runkit_Sandbox sur laquelle spécifier la gestion des sorties.

callback

Nom d'une fonction qui s'attend à un paramètre. La sortie générée par sandbox sera envoyée à cette fonction de rappel. Tout ce qui sera retourné par cette fonction sera affiché normalement. Si ce paramètre n'est pas passé, alors la gestion des sorties ne sera pas changée. Si une valeur incorrecte est passée, la gestion des sorties sera désactivée et sera retournée à l'affichage direct.

Valeurs de retour

Retourne le nom de la fonction de rappel précédemment définie en tant que gestion des sorties, ou FALSE si aucun gestionnaire n'avait été précédemment défini.

Exemples

Exemple 1. Alimentation de sortie vers une variable

<?php
function capture_output($str) {
  $GLOBALS['sandbox_output'] .= $str;

  return '';
}

$sandbox_output = '';

$php = new Runkit_Sandbox();
runkit_sandbox_output_handler($php, 'capture_output');
$php->echo("Bonjour\n");
$php->eval('var_dump("Excusez-moi");');
$php->die("Je me suis perdu.");
unset($php);

echo "Sandbox Complété\n\n";
echo $sandbox_output;
?>

L'exemple ci-dessus va afficher :

Sandbox Complété

Bonjour
string(9) "Excusez-moi"
Je me suis perdu.

Précédent | Sommaire | Suivant
runkit_return_value_used | Niveau supérieur | runkit_superglobals


runkit_superglobals

(PECL)

runkit_superglobals -- Retourne un tableau indexé numériquement des variables superglobales enregistrées

Description

array runkit_superglobals ( void )

Valeurs de retour

Retourne un tableau indexé numériquement des variables superglobales enregistrée actuellement. C'est-à-dire _GET, _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES

Voir aussi

Portées des Variables

Précédent | Sommaire | Suivant
runkit_sandbox_output_handler | Niveau supérieur | SAM - Messagerie asynchrone


SAMConnection->commit()

(no version information, might be only in CVS)

SAMConnection->commit() -- Valide le travail courant

Description

class SAMConnection {

bool commit ( void )

}

L'appel à la méthode "commit" sur un objet de connexion valide toutes les transactions courantes.

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple 1. Validation du travail courant

<?php
  if (!$conn->commit()) {
    // Échec de la validation !
    echo "La validation a échoué : ($conn->errno) $conn->error";
  }
?>

Voir aussi

SAMConnection->rollback()

Précédent | Sommaire | Suivant
SAM - Messagerie asynchrone | Niveau supérieur | SAMConnection->connect()


SAMConnection->connect()

(no version information, might be only in CVS)

SAMConnection->connect() -- Établie une connexion à un serveur de messagerie

Description

class SAMConnection {

bool connect ( string protocol [, array properties] )

}

L'appel à la méthode "connect" sur un objet SAMConnection connecte le script PHP à un serveur de messagerie. Aucun message ne peut être envoyé ou reçu tant qu'une connexion n'est pas établie.

Liste de paramètres

protocol

Une chaîne structurée identifiant le protocole à utiliser lors de la connexion à une serveur de messagerie. Les protocoles supportés sont représentés par des constantes qui sont utilisées normalement, mais, si demandé, la chaîne peut être composée dynamiquement dans le script. La chaîne est composée de deux parties : la première est l'identifiant du protocole et la seconde, les options du protocole. Les deux parties sont séparées par deux points (:). Les valeurs acceptables sont décrites dans le tableau suivante :

Protocole | Constanet | Utilisation
mqtt | SAM_MQTT | Utilisation du protocole MQTT (MQ Telemetry Transport) pour la connexion d'un client à un serveur.
wmq | SAM_WMQ | Utilisation du protocole IBM MQSeries pour la connexion d'un client à un serveur de messagerie distant. C'est l'équivalent de "wmq:client" (SAM_WMQ_CLIENT). De plus, un nom de broker (SAM_BROKER) doit être spécifié dans le tableau des options.
wmq:client | SAM_WMQ_CLIENT | Utilisation du protocole IBM MQSeries pour la connexion d'un client à un serveur de messagerie distant. De plus, un nom de broker (SAM_BROKER) doit être spécifié dans le tableau des options.
wmq:bindings | SAM_WMQ_BINDINGS | Utilisation du protocole IBM MQSeries pour la connexion à un serveur de messagerie local et une communication via la mémoire partagée. De plus, un nom de broker (SAM_BROKER) doit être spécifié dans le tableau des options.
wpm | SAM_WPM | Utilisation du protocole IBM WebSphere Platform Messaging pour la connexion à une infrastructure de messagerie WebSphere Application. Un nom de bus doit être spécifié dans le tableau des options (SAM_BUS) ainsi qu'une cible.
rtt | SAM_RTT | Utilisation du protocole de transport IBM Realtime pour la connexion à une infrastructure de messagerie.

properties

Un tableau associatif optionnel de propriétés décrivant les détails de la connexion. Le tableau suivant liste les noms des propriétés disponibles et des valeurs acceptées :

Nom de la propriété | Valeur par défaut | Utilisation
SAM_BROKER aucune Le nom du broker ou du gestionnaire de file d'attente fonctionnant sur le serveur de messagerie.

Cette propriété doit être définie si vous utilisez un des protocoles WebSphere MQSeries (SAM_WMQ, SAM_WMQ_CLIENT, SAM_WMQ_BINDINGS).

SAM_HOST | localhost | Le nom de l'hôte de la machine sur laquelle le serveur de messagerie fonctionne.
SAM_PORT | 1414 pour SAM_WMQ, 1506 pour SAM_WPM, ou 1883 pour SAM_MQTT | Le numéro du port utilisé pour la communication avec le serveur de messagerie.
SAM_EXPIRE_AFTER 0 Durée, en millisecondes, après laquelle un message est sensé expirer et peut être effacé depuis les files d'attente. Par défaut, la valeur est 0, indiquant que le message n'expire jamais.

Attention : Pas encore implémenté !

SAM_MESSAGE_PERSISTENCE aucune Spécifie si les messages doivent être persistents durant la délivrance. La valeur peut être SAM_PERSISTENT ou SAM_NON_PERSISTENT. La valeur par défaut est dépendant du type de connexion ainsi que des capacités du serveur de messagerie sur lequel la connexion est effectuée.

Attention : Pas encore implémenté !

SAM_MQTT_CLEANSTART | FALSE | Option de connexion optionnel pour indiquer à un serveur MQTT que toutes les connexions précédentes pour ce client doivent être effacées et que les souscriptions doivent être effacées lorsque le client se déconnecte explicitement ou de façon inattendu. Le fait de définir la valeur à TRUE fait que SAM refusera toute souscription déjà en place pour le client lorsqu'il se connecte ainsi que les souscriptions lorsque le client se déconnecte. Le fait de définir cette valeur à FALSE ou d'utiliser la valeur par défaut, va permettre d'autoriser toutes les souscriptions de façon durant et ce, même si le client se déconnecte.
SAM_PASSWORD | aucune | Le mot de passe à utiliser lors de l'identification avec le serveur de messagerie.
SAM_TRANSACTIONS | SAM_AUTO | Indique comment les transactions sont gérées sur la connexion. La vaeur peut être SAM_AUTO (la valeur par défaut) permettant une gestion automatique des opérations ou SAM_MANUEL permettant au script PHP de contrôler les transactions. Si SAM_MANUEL est utilisé, toutes les transactions seront annulées si le script se termine ou si la connexion se ferme sans qu'une validation sont effectuée.
SAM_USERID | aucune | L'identifiant de l'utilisation à utiliser lors de l'identification avec le serveur de messagerie.
SAM_WPM_DUR_SUB_HOME | aucune | Le nom du moteur de messagerie où les souscriptions durables sont gérées. (uniquement WPM).

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple 1. Création d'une connexion à un serveur de messagerie en utilisant le protocole IBM MQSeries (WMQ)

<?php

$conn->connect(SAM_WMQ, array(SAM_HOST => 'Myhost.myco.com', SAM_PORT => 1506, SAM_BROKER => 'MyBroker'));

?>

Exemple 2. Création d'une connexion avec contrôle des transactions, hôte par défaut et valeur du port de communication

<?php

$conn->connect(SAM_WMQ, array(SAM_BROKER => 'MyBroker', SAM_TRANSACTIONS => SAM_MANUAL));

?>

Exemple 3. Création d'une connexion à un serveur de messagerie en utilisant le protocole IBM WebSphere Platform Messaging (WPM)

<?php

$conn->connect(SAM_WPM, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
SAM_BUS => 'Bus1', SAM_TARGETCHAIN => 'InboundBasicMessaging'));

?>

Voir aussi

SAMConnection->isConnected()
SAMConnection->disconnect()

Précédent | Sommaire | Suivant
SAMConnection->commit() | Niveau supérieur | SAMConnection->__construct()


SAMConnection->__construct()

(no version information, might be only in CVS)

SAMConnection->__construct() -- Crée une nouvelle connexion à un serveur de messagerie

Description

class SAMConnection {

__construct ( )

}

Crée un nouvel objet SAMConnection.

Exemples

Exemple 1. Création d'un nouvel objet de connexion et connection à un serveur de messagerie

<?php

$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => localhost, SAM_PORT => 1414, SAM_BROKER => 'bull'));

?>

Précédent | Sommaire | Suivant
SAMConnection->connect() | Niveau supérieur | SAMConnection->disconnect()


SAMConnection->disconnect()

(no version information, might be only in CVS)

SAMConnection->disconnect() -- Déconnection d'un serveur de messagerie

Description

class SAMConnection {

bool disconnect ( void )

}

L'appel à la méthode "disconnect" d'un objet SAMConnection déconnecte le script PHP d'un serveur de messagerie. Aucun message ne peut être envoyé ou reçu tant qu'une connexion n'a pas été établie.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Déconnexion d'un serveur de messagerie

<?php

$conn->disconnect();

?>

Voir aussi

SAMConnection->isConnected()
SAMConnection->connect()

Précédent | Sommaire | Suivant
SAMConnection->__construct() | Niveau supérieur | SAMConnection->errno


SAMConnection->errno

(no version information, might be only in CVS)

SAMConnection->errno -- Récupère le numéro de la dernière erreur issue d'une opération SAM

Description

class SAMConnection {

int errno

}

Contient le code erreur de la dernière opération SAM sur la connexion. Si la dernière opération a réussie, cette propriété contient 0.

Valeurs de retour

Un entier supérieur à 0 indique le type de la dernière erreur rencontrée sur la connexion. 0 indique que la dernière opération a réussie.

Exemples

Exemple 1. Exemple d'utilisation du numéro et de la description de l'erreur

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'localhost', SAM_PORT => 1506));
$msg = new SAMMessage('This is a simple text item');
if (!$conn->send('topic://test', $msg)) {
    // L'envoi a échoué !
    echo "L'envoi a échoué : ($conn->errno) $conn->error";
}
?>

Voir aussi

SAMConnection->error

Précédent | Sommaire | Suivant
SAMConnection->disconnect() | Niveau supérieur | SAMConnection->error


SAMConnection->error

(no version information, might be only in CVS)

SAMConnection->error -- Récupère la description de la dernière erreur d'une opération SAM

Description

class SAMConnection {

string error

}

Contient la description de la dernière erreur survenue sur la connexion. Si la dernière opération a réussie, cette proprété contiendra une chaîne vide.

Valeurs de retour

Une chaîne de caractères contenant la description de la dernière erreur rencontrée sur la connexion. Une chaîne vide indique que la dernière opération sur la connexion a réussi.

Exemples

Exemple 1. Exemple d'utilisation du numéro et de la description d'une erreur

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'localhost', SAM_PORT => 1506));
$msg = new SAMMessage('This is a simple text item');
if (!$conn->send('topic://test', $msg)) {
    // L'envoi a échoué !
    echo "L'envoi a échoué : ($conn->errno) $conn->error";
}
?>

Voir aussi

SAMConnection->errno

Précédent | Sommaire | Suivant
SAMConnection->errno | Niveau supérieur | SAMConnection->isConnected()


SAMConnection->isConnected()

(no version information, might be only in CVS)

SAMConnection->isConnected() -- Vérifie si une connexion est établie avec un serveur de messagerie

Description

class SAMConnection {

bool isConnected ( void )

}

L'appel à la méthode "isConnected" sur un objet de connexion vérifie si le script PHP est connecté à un serveur de messagerie. Aucun message ne peut être envoyé, ni reçu tant qu'une connexion n'a pas été établie à un serveur de messagerie.

Valeurs de retour

Cette méthode retourne TRUE si l'objet SAMConnection est connecté à une serveur de messagerie, FALSE sinon.

Exemples

Exemple 1. Vérifie si la connexion est établie à un serveur de messagerie

<?php

if ($conn->isConnected()) {
  echo 'Connexion active.'
} else {
  echo 'Aucune connexion acitve !'
}

?>

Voir aussi

SAMConnection->disconnect()
SAMConnection->connect()

Précédent | Sommaire | Suivant
SAMConnection->error | Niveau supérieur | SAMConnection->peek()


SAMConnection->peek()

(no version information, might be only in CVS)

SAMConnection->peek() -- Lit un message depuis la file d'attente sans l'effacer

Description

class SAMConnection {

SAMMessage peek ( string target [, array properties] )

}

Liste de paramètres

target

L'identité de la file d'attente depuis laquelle on lit le message.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres pour contrôler l'opération.

Nom de la propriété | Valeurs possibles
SAM_CORRELID | C'est l'identifiant de corrélation des messages à lire. Ceci est typiquement retourné par la demande "send".
SAM_MESSAGEID | C'est l'identifiant du message à lire.

Valeurs de retour

Cette méthode retourne un objet SAMMessage ou FALSE si une erreur survient.

Exemples

Exemple 1. Récupération du prochain message depuis la file d'attente sans l'effacer

<?php
$msg = $conn->peek('queue://receive/test');

if (!$msg) {
  // Échec de la lecture !
  echo "Échec de la lecture : ($conn->errno) $conn->error";
}
?>

Exemple 2. Récupération d'un message spécifique depuis la file d'attente sans l'effacer

<?php
$msg = $conn->peek('queue://receive/test', array(SAM_MESSAGEID => $messageId));
?>

Voir aussi

SAMConnection->peekAll()

Précédent | Sommaire | Suivant
SAMConnection->isConnected() | Niveau supérieur | SAMConnection->peekAll()


SAMConnection->peekAll()

(no version information, might be only in CVS)

SAMConnection->peekAll() -- Lit un ou plusieurs messages depuis la file d'attente sans les effacer

Description

class SAMConnection {

array peekAll ( string target [, array properties] )

}

Liste de paramètres

target

L'identité de la file d'attente depuis laquelle les messages doivent être lus.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres pour contrôler l'opération.

Nom de la propriété | Valeurs possibles
SAM_CORRELID | C'est l'identifiant de corrélation des messages à lire. Ceci est typiquement retourné par la demande "send".
SAM_MESSAGEID | C'est l'identifiant du message à lire.

Valeurs de retour

Cette méthode retourne un tableau d'objets SAMMessage ou FALSE si une erreur survient.

Exemples

Exemple 1. Récupération de tous les messages d'une file d'attente sans les effacer

<?php
$msgArray = $conn->peekAll('queue://receive/test');
if ($msgArray) {
   foreach ( $msgArray as $key => $msg) {
       echo "Message $key: body = $msg->body\n";
   }
} else {
   echo "Échec de PeekAll ($conn->errno) $conn->error";
}
?>

Exemple 2. Récupération de tous les messages d'une file d'attente correspondant à un identifiant de corrélation

<?php

$msgArray = $conn->peekAll('queue://receive/test', array(SAM_CORRELID => $correlId ));
if ($msgArray) {

   foreach ( $msgArray as $key => $msg) {
         echo "Message $key: body = $msg->body\n";
      }
   }
else
   echo "Erreur de lecture : ($conn->errno) $conn->error";
}

?>

Voir aussi

SAMConnection->peek()

Précédent | Sommaire | Suivant
SAMConnection->peek() | Niveau supérieur | SAMConnection->receive()


SAMConnection->receive()

(no version information, might be only in CVS)

SAMConnection->receive() -- Reçoit un message depuis une file d'attente ou d'une souscription

Description

class SAMConnection {

SAMMessage receive ( string target [, array properties] )

}

Liste de paramètres

target

L'identité de la file d'attente, du sujet ou de la souscription depuis lequel le message est reçu.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres pour contrôler l'opération de réception :

Nom de la propriété | Valeurs possibles
SAM_CORRELID | Utilisé pour demander la réception d'un message en se basant sur l'identifiant de corrélatin du message.
SAM_MESSAGEID | Utilisé pour demander la réception d'un message en se basant sur l'identifiant du message.
SAM_WAIT | Délai d'attente maximal en millisecondes permettant de contrôler le temps d'attente de réception du message avant de retourner une erreur si aucun message n'est disponible sur la file d'attente ou sur le sujet. La valeur par défaut est 0, ce qui signifie que le délai est infini et doit donc être utilisée avec précaution car la demande attendra jusqu'au temps limite d'exécution PHP si aucun message n'est disponible.

Valeurs de retour

Cette méthode retoune un objet SAMMessage ou FALSE si une erreur survient.

Exemples

Exemple 1. Réception d'un message depuis la file d'attente

<?php
$msg = $conn->receive('queue://receive/test');

if (!$msg) {
  // La réception a échoué !
  echo "La réception a échoué : ($conn->errno) $conn->error";
}
?>

Exemple 2. Réception d'un message depuis la file d'attente avec des options

Dans cet exemple, l'option SAM_CORRELID est utilisé pour spécifier un identifiant de corrélation à utiliser pour identifier le message à recevoir ainsi qu'un délai d'attente maximal de 10 secondes.

<?php

$msg = $conn->receive('queue://receive/test', array(SAM_CORRELID => $token, SAM_WAIT => 10000));

?>

Exemple 3. Réception d'un message depuis une souscription

Dans cet exemple, nous montrons comment réceptionner un message depuis un identifiant de souscription.

<?php
$msg = $conn->receive($subscriptionName);

if (!$msg) {
  // La réception a échoué !
  echo "La réception a échoué : ($conn->errno) $conn->error";
}
?>

Noter que $subscriptionName est un identifiant de souscription retourné lors d'un précédent appel à une souscription.

Voir aussi

SAMConnection->send()

Précédent | Sommaire | Suivant
SAMConnection->peekAll() | Niveau supérieur | SAMConnection->remove()


SAMConnection->remove()

(no version information, might be only in CVS)

SAMConnection->remove() -- Efface un message depuis la file d'attente

Description

class SAMConnection {

SAMMessage remove ( string target [, array properties] )

}

Efface un message depuis la file d'attente.

Liste de paramètres

target

L'identité de la file d'attente depuis laquelle le message doit être effacé.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres permettant le contrôle de l'opération.

Nom de la propiété | Valeurs possibles
SAM_CORRELID | C'est l'identifiant de corrélation des messages à lire. Ceci est typiquement retourné par la demande "send".
SAM_MESSAGEID | C'est l'identifiant du message à effacer.

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple 1. Effacement d'un message depuis la file d'attente en utilisant un identifiant de message

<?php
if (!$conn->remove('queue://receive/test', array(SAM_MESSAGEID => $messageId))) {
  // L'effacement a échoué !
  echo "L'effacement a échoué : ($conn->errno) $conn->error";
}
?>

Précédent | Sommaire | Suivant
SAMConnection->receive() | Niveau supérieur | SAMConnection->rollback()


SAMConnection->rollback()

(no version information, might be only in CVS)

SAMConnection->rollback() -- Annulation d'un travail

Description

class SAMConnection {

bool rollback ( void )

}

Annulation d'un travail.

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple 1. Annulation d'un travail

<?php
if (!$conn->rollback()) {
  // L'annulation a échoué !
  echo "L'annulation a échoué : ($conn->errno) $conn->error";
}
?>

Voir aussi

SAMConnection->commit()

Précédent | Sommaire | Suivant
SAMConnection->remove() | Niveau supérieur | SAMConnection->send()


SAMConnection->send()

(no version information, might be only in CVS)

SAMConnection->send() -- Envoie un message à une file d'attente ou le publie sur un sujet

Description

class SAMConnection {

string send ( string target, SAMMessage msg [, array properties] )

}

La méthode "send" est utilisée pour envoyer un message à une file d'attente spécifique ou le publier à un sujet spécifique. La méthode retourne l'identifiant de corrélation qui peut être utilisé comme sélecteur pour identifier les messages réponses.

Liste de paramètres

target

Si l'on envoie un message, ce sera l'identité de la file d'attente (queue://queuename) ou, si on le publie à un sujet spécifique, l'identité du sujet (topic://topicname) auquel le message doit être délivré.

msg

Le message à envoyer ou à publier.

properties

Un tableau associatif optionnel de propriétés décrivant les autres paramètres pour contrôler l'opération.

Nom de la propriété | Valeurs de la propriété
SAM_DELIVERYMODE | Indique si le serveur de messagerie doit s'assurer de la délivrance du message ou s'il accepte que les messages soient perdus en cas de défaillance du serveur de messagerie. La valeur de cette propriété peut être définie soit à SAM_PERSISTENT, pour indiquer que la perte des messages n'est pas acceptable, soit à SAM_NON_PERSISTENT si la perte de messages est acceptable. Le comportement résultant de l'envoi dépendera des capacités du serveur de messagerie auquel est connecté le script PHP. Si le serveur ne supporte pas les messages persistants et que SAM_PERSISTENT est spécifié, l'envoi échouera avec une erreur indiquant que la fonctionnalité n'est pas disponible.
SAM_PRIORITY | Une valeur numérique entre 0 et 9 indique la priorité de délivrance du message. Une valeur de priorité de 0 indique une priorité basse, alors que 9 indique une priorité haute. Si aucune priorité n'est spécifiée, une valeur par défaut sera passée, dépendant du serveur de messagerie utilisé.
SAM_CORRELID | Une chaîne à assigner comme identifiant de corrélation pour ce message. Si aucune valeur n'est fournie, le serveur de messagerie peut assigner une valeur automatiquement.
SAM_TIMETOLIVE | Une durée, en millisecondes, indiquant combien de temps le serveur de messagerie doit retenir le message dans une file d'attente avant de le jeter. La valeur par défaut est 0 indiquant que le message doit être retenu indéfiniment.
SAM_WMQ_TARGET_CLIENT | Cette propriété n'est valide que lors de l'utilisation de WebSphere MQ et indique si l'on doit inclure un en-tête RFH2 dans le message. Cette option doit être définie à 'jms' ou 'mq'. Par défaut, elle vaut 'jms' ce qui signifie que l'en-tête RFH2 est incluse. Si la valeur 'mq' est spécifiée, alors, aucun en-tête RFH2 ne sera inclu dans le message.

Valeurs de retour

Un identifiant de corrélation qui peut être utilisé dans un appel de réception en tant que sélecteur pour obtenir toutes les réponses, ou FALSE si une erreur survient.

Note : Note : un identifiant de corrélation ne sera retourné qu'en cas d'un envoi avec succès à une file d'attente (queue://xxxx) et dans ce cas, sera l'identitié du message sur la file d'attente. Si l'envoi est destiné à publier des données sur un sujet, la valeur retournée sera TRUE car aucun identifiant de corrélation ne sera disponible.

Exemples

Exemple 1. Envoi d'un message à une file d'attente

<?php
$msg = new SAMMessage('Ceci est un message simple');
$correlId = $conn->send('queue://send/test', $msg);
if (!$correlId) {
    // L'envoi a échoué !
    echo "L'envoi a échoué : ($conn->errno) $conn->error";
}

?>

Exemple 2. Publication d'un message sur un sujet

<?php
$msg = new SAMMessage('Ceci est un élément simple');
if (!$conn->send('topic://test', $msg)) {
    // L'envoi a échoué !
    echo "L'envoi a échoué : ($conn->errno) $conn->error";
}
?>

Exemple 3. Envoi une demande et réceptionne la réponse

<?php
$msg = new SAMMessage('Ceci est un message simple');
$msg->header->SAM_REPLY_TO = 'queue://receive/test';
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
    // L'envoi a échoué !
    echo "L'envoi a échoué : ($conn->errno) $conn->error";
} else {
    $resp = $conn->receive('queue://receive/test', array(SAM_CORRELID => $correlid));
}
?>

Voir aussi

SAMConnection->receive()

Précédent | Sommaire | Suivant
SAMConnection->rollback() | Niveau supérieur | SAMConnection::setDebug()


SAMConnection::setDebug()

(no version information, might be only in CVS)

SAMConnection::setDebug() -- Turn on or off additional debugging output.

Description

The "setdebug" method is used to turn on or off additional debugging output. The SAM framework will provide method/function entry and exit trace data plus additional information. Protocol specific implementations also provide extra output.

class SAMConnection {

void send ( bool switch )

}

Liste de paramètres

switch

If this parameter is set to TRUE additional debugging output will be provided. If the value is set to FALSE output of additional information will be stopped.

Exemples

Exemple 1. Turn on debugging output

<?php
$conn->setdebug(TRUE);
?>

Exemple 2. Turn off debugging output

<?php
$conn->setdebug(FALSE);
?>

Précédent | Sommaire | Suivant
SAMConnection->send() | Niveau supérieur | SAMConnection->subscribe()


SAMConnection->subscribe()

(no version information, might be only in CVS)

SAMConnection->subscribe() -- Crée une souscription à un sujet spécifique

Description

class SAMConnection {

string subscribe ( string targetTopic )

}

La méthode "subscribe" est utilisée pour créer une nouvelle souscription à un sujet spécifique.

Liste de paramètres

targetTopic

L'identité du sujet (topic://topicname) à souscrire.

Valeurs de retour

Un identifiant de souscription qui peut être utilisé dans une sous-séquence de réception en tant que sélecteur pour obtenir n'importe quelles données du sujet ou FALSE si une erreur survient. L'identifiant de souscription doit être utilisé dans l'appel de réception en tant que nom du sujet.

Exemples

Exemple 1. Souscription à un sujet

<?php
$subid = $conn->subscribe('topic://A');
if (!$subid) {
  // La souscription a échoué !
  echo "La souscription a échoué : ($conn->errno) $conn->error";
}
?>

Voir aussi

SAMConnection->unsubscribe()

Précédent | Sommaire | Suivant
SAMConnection::setDebug() | Niveau supérieur | SAMConnection->unsubscribe()


SAMConnection->unsubscribe()

(no version information, might be only in CVS)

SAMConnection->unsubscribe() -- Annule une souscription à un sujet spécifique

Description

class SAMConnection {

bool unsubscribe ( string subscriptionId [, string targetTopic] )

}

La méthode "unsubscribe" est utilisée pour effacer une souscription existante à un sujet spécifique.

Liste de paramètres

subscriptionId

L'identifiant d'une souscription existante tel que retourné par un appel à la méthode "subscribe".

Valeurs de retour

Cette méthode retourne FALSE si une erreur survient.

Exemples

Exemple 1. Efface une souscription

<?php
if (!$conn->unsubscribe($subid)) {
  // La souscription a échoué !
  echo "La souscription a échoué : ($conn->errno) $conn->error";
}
?>

Voir aussi

SAMConnection->subscribe()

Précédent | Sommaire | Suivant
SAMConnection->subscribe() | Niveau supérieur | SAMMessage->body


SAMMessage->body

(no version information, might be only in CVS)

SAMMessage->body -- Définit le corps d'un message

Description

class SAMMessage {

string nody

}

La propriété "body" contient le corps actuel du message. Il peut ne pas toujours avoir été défini.

Exemples

Exemple 1. Définission d'un texte dans le corps d'un message

<?php
$msg = new SAMMessage();
$msg->body = 'Ceci est un texte simple.';

?>

Voir aussi

SAMMessage->header

Précédent | Sommaire | Suivant
SAMConnection->unsubscribe() | Niveau supérieur | SAMMessage->__construct()


SAMMessage->__construct()

(no version information, might be only in CVS)

SAMMessage->__construct() -- Crée un nouvel objet de message

Description

class SAMMessage {

__construct ( [mixed body] )

}

Crée un nouvel objet SAMMessage et, optionnellement, le corps d'un message.

Liste de paramètres

body

Le corps optionnel du message.

Exemples

Exemple 1. Création d'un message

<?php

$msg = new SAMMessage();

?>

Exemple 2. Création d'un message avec un texte simple

<?php

$msg = new SAMMessage('Ceci est un message simple.');

?>

Précédent | Sommaire | Suivant
SAMMessage->body | Niveau supérieur | SAMMessage->header


SAMMessage->header

(no version information, might be only in CVS)

SAMMessage->header -- Les propriétés d'en-tête d'un message

Description

class SAMMessage {

object header

}

La proriété header est un conteneur pour n'importe quel système ou propriétés utilisateur dont l'espace est associé au message. Les propriétés peuvent être assignées par l'expéditeur du message pour contrôler la façon dont le gestionnaire de messagerie va le gérer ou peuvent être assignées par le système de messagerie lui-même pour communiquer au récepteur des informations additionnelles sur le message ou la façon dont il doit le gérer.

Quelques propriétés sont comprises par SAM dans le cas où les constantes y ont été définies. Cependant, la majorité des propriétés sont ignorées par l'implémentation de SAM et simplement passées aux systèmes de messagerie permettant ainsi à l'application d'utiliser les noms des proriétés spécifique à la messagerie ou pour définir vos propres propriétés "utilisateur".

Les propriétés SAM définies sont les suivantes :

Nom de la propriété | Valeurs possibles
SAM_MESSAGEID | Lorsqu'un message est reçu, ce champs contient l'identifiant unique du message alloué par le système de messagerie. Lorsqu'un message est envoyé, ce champs est ignoré.
SAM_REPLY_TO | Une chaîne de caractères fournissant l'identifiant de la file d'attente à laquelle les réponses à ce message doit être posté.
SAM_TYPE

Une indication du type de message à envoyer. La valeur peut être SAM_TEXT, indiquant que le contenu du corps du message est du texte, ou SAM_BYTES, indiquant que le contenu du corps du message contient des formats définis.

La façon dont cette propriété est utilisée dépend du serveur de messagerie. Pour le moment, un serveur de messagerie qui supporte les spécifications JMS (Java Message Service) interprète cette valeur et envoie des messages du type "jms_text" et "jms_bytes". De plus, si la propriété SAM_TYPE est définie à SAM_TEXT, les données fournies pour le corps du message est supposées être encodées UTF8.

Lors de la configuration des valeurs de ces propriétés, il est souvent utile de fournir un indice quant au format dans lequel la propriété doit être délivrée au serveur de messagerie. Par défaut, les valeurs des propriétés sont délivrées en tant que texte et la synthaxe simple suivante peut être utilisée pour définir une valeur :

Exemple 1. Définission d'une propriété au format texte en utilisant la synthaxe par défaut

<?php
$msg = new SAMMessage();

$msg->header->myPropertyName = 'textData';
?>

Si vous voulez passer une information sur le type, une synthaxe alternative peut être utilisée où la valeur et le type sont passés dans un tableau associatif :

Exemple 2. Définission d'une propriété au format texte en utilisant un type

<?php
$msg = new SAMMessage();

$msg->header->myPropertyName = array('textData', SAM_STRING);
?>

Lorsque vous passez le type, il doit être un parmis les valeurs des constantes SAM définies, tel que dans le tableau suivante :

Constante | Description du type
SAM_BOOLEAN | Toute valeur passée sera interprétée comme logique, TRUE ou FALSE. Si la valeur n'a pû être interprétée en tant qu'une valeur booléenne PHP, la valeur passée au système de messagerie sera indéfinie.
SAM_BYTE | Une valeur entière signée sur 8-bit. SAM tentera de convertir la valeur spécifiée en une valeur sur un octet à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pû être déterminée en tant que valeur binaire signé sur 8-bit, les données peuvent être perdues pendant la conversion.
SAM_DOUBLE | Une valeur longue, à virgule flottante. SAM tentera de convertir la valeur spécifiée en une valeur à virgule flottante avec 15 unités de précision à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pû être déterminée en tant que valeur à virgule flottante avec 15 unités de précision, les données peuvent être perdues pendant la conversion.
SAM_FLOAT | Une valeur courte, à virgule flottante. SAM tentera de convertir la valeur spécifiée en une valeur à virgule flottante avec 7 unités de précision à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pû être déterminée en tant que valeur à virgule flottante avec 7 unités de précision, les données peuvent être perdues pendant la conversion.
SAM_INT | Une valeur entière signée 32-bit. SAM tentera de convertir la valeur spécifiée en une valeur entière, signée 32-bit à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pû être déterminée en tant que valeur entière signée 32-bit, les données peuvent être perdues pendant la conversion.
SAM_LONG | Une valeur entière signée 64-bit. SAM tentera de convertir la valeur spécifiée en une valeur entière, signée 64-bit à passer au système de messagerie. Si une chaîne de caractères est passée, on tentera de l'interpréter comme une valeur numérique. Si la valeur passée n'a pû être déterminée en tant que valeur entière signée 64-bit, les données peuvent être perdues pendant la conversion.
SAM_STRING | SAM interprétera la valeur spécifiée en tant que chaîne de caractères et la passera au système de messagerie.

Exemples

Exemple 3. Définission des propriétés en tant d'expéditeur d'un message

<?php
$msg = new SAMMessage('Ceci est un message test');

// définisstion des propriétés spécifiques à SAM...
$msg->header->SAM_REPLY_TO = 'queue://test/replyQueue';

// définission des propriétés arbitraires...
//
// une chaîne par défaut
$msg->header->myStringProp1 = 'une chaîne';
// une chaîne avec un type
$msg->header->myStringProp2 = array('une autre chaîne', SAM_STRING);

// un booléen
$msg->header->myBoolProp = array(FALSE, SAM_BOOL);

// format numérique
$msg->header->myIntProp = array(32768, SAM_INT);
$msg->header->myLongProp = array(9876543, SAM_LONG);
$msg->header->myByteProp1 = array(123, SAM_BYTE);
$msg->header->myByteProp2 = array('12', SAM_BYTE);
$msg->header->myFloatProp = array(3.141592, SAM_FLOAT);
$msg->header->myDoubleProp = array(3.14159265358979, SAM_DOUBLE);
?>

Exemple 4. Récupération d'une valeurs depuis un message

<?php

// accès à une propriété spécifique
$intProp = $msg->header->'MyIntProp';

// accès à une propriété spécifique
$encoding = $msg->header->'JMS_IBM_Msgtype';

?>

Voir aussi

SAMMessage->body

Précédent | Sommaire | Suivant
SAMMessage->__construct() | Niveau supérieur | Extension client Satellite CORBA (Obsolète)


satellite_caught_exception

(4.0.3 - 4.1.2 only, PECL)

satellite_caught_exception -- Vérifie si une exception a été attrapée de la fonction précédente

Description

bool satellite_caught_exception ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Valeurs de retour

Cette fonction retourne TRUE si une exception a été attrapée, FALSE autrement.

Exemples

Exemple 1. Fichier IDL d'Exemple

/* ++?????++ Out of Cheese Error. Redo From Start. */
exception OutOfCheeseError {
    int parameter;
}

interface AnotherInterface {
    void AskWhy() raises (OutOfCheeseError);
}

Exemple 2. Code PHP pour la gestion des exceptions CORBA

<?php
$obj = new OrbitObject ($ior);

$obj->AskWhy();

if (satellite_caught_exception()) {
    if ("IDL:OutOfCheeseError:1.0" == satellite_exception_id()) {
        $exception = satellite_exception_value();
        echo $exception->parameter;
    }
}
?>

Précédent | Sommaire | Suivant
OrbitStruct | Niveau supérieur | satellite_exception_id


satellite_exception_id

(4.0.3 - 4.1.2 only, PECL)

satellite_exception_id -- Récupère l'id du dossier pour la dernière exception

Description

string satellite_exception_id ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Pour un exemple, voyez l'utilisation dans satellite_caught_exception().

Valeurs de retour

Retourne une chaîne de caractères d'identification du dossier. (C'est-à-dire "IDL:MyException:1.0".)

Précédent | Sommaire | Suivant
satellite_caught_exception | Niveau supérieur | satellite_exception_value


satellite_exception_value

(4.0.3 - 4.1.2 only, PECL)

satellite_exception_value -- Récupère la structure de l'exception pour la dernière exception

Description

OrbitStruct satellite_exception_value ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne une structure d'exception. Pour un exemple, voyez l'utilisation dans satellite_caught_exception().

Précédent | Sommaire | Suivant
satellite_exception_id | Niveau supérieur | satellite_get_repository_id


satellite_get_repository_id

(4.0.3 - 4.1.2 only, PECL)

satellite_get_repository_id -- NON MIS EN APPLICATION

Description

int satellite_get_repository_id ( object obj )

Non mis en application.

Précédent | Sommaire | Suivant
satellite_exception_value | Niveau supérieur | satellite_load_idl


satellite_load_idl

(4.0.3 - 4.1.2 only, PECL)

satellite_load_idl -- Instruit le gestionnaire de type pour charger un fichier IDL

Description

bool satellite_load_idl ( string file )

Charge un fichier IDL dans Satellite.

Précédent | Sommaire | Suivant
satellite_get_repository_id | Niveau supérieur | satellite_object_to_string


satellite_object_to_string

(4.1.0 - 4.1.2 only, PECL)

satellite_object_to_string -- Convertit un objet vers sa représentation de chaîne de caractères

Description

string satellite_object_to_string ( object obj )

Convertit un objet vers sa représentation en chaîne de caractères (IOR).

Précédent | Sommaire | Suivant
satellite_load_idl | Niveau supérieur | SCA Functions


SCA::createDataObject

(no version information, might be only in CVS)

SCA::createDataObject -- create an SDO

Description

SDO_DataObject SCA::createDataObject ( string type_namespace_uri, string type_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

This method is used inside an SCA component that needs to create an SDO to return. The parameters are the desired SDO's namespace URI and type name. The namespace and type must be defined in one of the schema files which are specfied on the @types annotation within the component.

Liste de paramètres

type_namespace_uri

The namespace of the type.

type_name

The name of the type.

Valeurs de retour

Returns the newly created SDO_DataObject.

Erreurs / Exceptions

SDO_TypeNotFoundException

Thrown if the namespaceURI and typeName do not correspond to a type in any of the schema files specified in the @types annotations.

Précédent | Sommaire | Suivant
SCA_SoapProxy::createDataObject | Niveau supérieur | SCA::getService


SCA::getService

(no version information, might be only in CVS)

SCA::getService -- Obtain a proxy for a service

Description

mixed SCA::getService ( string target )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Examine the target and initialise and return a proxy of the appropriate sort. If the target is for a local PHP component the returned proxy will be an SCA_LocalProxy. If the target is for a WSDL file, the returned proxy will be a SCA_SoapProxy.

Liste de paramètres

target

An absolute or relative path to the PHP component, or to the WSDL file. A relative path, if specified, is resolved relative to the location of the script issuing the getService call, and not against the include_path or current working directory.

Valeurs de retour

The SCA_LocalProxy or SCA_SoapProxy.

Précédent | Sommaire | Suivant
SCA::createDataObject | Niveau supérieur | Fonctions SDO


SCA_LocalProxy::createDataObject

(no version information, might be only in CVS)

SCA_LocalProxy::createDataObject -- create an SDO

Description

SDO_DataObject SCA_LocalProxy::createDataObject ( string type_namespace_uri, string type_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

This method is used inside either an ordinary PHP script or an SCA component that needs to create an SDO to pass to a local service. The parameters are the desired SDO's namespace URI and type name. The namespace and type must be defined in the interface of the component that is to be called, so the namespace and type must be defined in one of the schema files which are specfied on the @types annotation within the component for which the SCA_LocalProxy object is a proxy.

Liste de paramètres

type_namespace_uri

The namespace of the type.

type_name

The name of the type.

Valeurs de retour

Returns the newly created SDO_DataObject.

Erreurs / Exceptions

SDO_TypeNotFoundException

Thrown if the namespaceURI and typeName do not correspond to a type in any of the schema files specified in the @types annotations within the component for which the SCA_LocalProxy object is a proxy..

Précédent | Sommaire | Suivant
SCA Functions | Niveau supérieur | SCA_SoapProxy::createDataObject


SCA_SoapProxy::createDataObject

(no version information, might be only in CVS)

SCA_SoapProxy::createDataObject -- create an SDO

Description

SDO_DataObject SCA_SoapProxy::createDataObject ( string type_namespace_uri, string type_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

This method is used inside either an ordinary PHP script or an SCA component that needs to create an SDO to pass to a web service. The parameters are the desired SDO's namespace URI and type name. The namespace and type must be defined in the interface of the component that is to be called, so the namespace and type must be defined within the WSDL for the web service. If the web service is also an SCA component then the types will have been defined within one of the schema files which are specfied on the @types annotation within the component for which the SCA_SoapProxy object is a proxy.

Liste de paramètres

type_namespace_uri

The namespace of the type.

type_name

The name of the type.

Valeurs de retour

Returns the newly created SDO_DataObject.

Erreurs / Exceptions

SDO_TypeNotFoundException

Thrown if the namespaceURI and typeName do not correspond to a type found in the WSDL that was used to initialise this SCA_SoapProxy.

Précédent | Sommaire | Suivant
SCA_LocalProxy::createDataObject | Niveau supérieur | SCA::createDataObject


SDO_DAS_ChangeSummary::beginLogging

(no version information, might be only in CVS)

SDO_DAS_ChangeSummary::beginLogging -- Commence la journalisation

Description

void SDO_DAS_ChangeSummary::beginLogging ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Commence la journalisation des changements effectués au SDO_DataObject.

Liste de paramètres

Aucun.

Valeurs de retour

Aucune.

Précédent | Sommaire | Suivant
Fonctions SDO | Niveau supérieur | SDO_DAS_ChangeSummary::endLogging


SDO_DAS_ChangeSummary::endLogging

(no version information, might be only in CVS)

SDO_DAS_ChangeSummary::endLogging -- Termine la journalisation

Description

void SDO_DAS_ChangeSummary::endLogging ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Termine la journalisation des changements effectués au SDO_DataObject.

Liste de paramètres

Aucun.

Valeurs de retour

Aucune.

Précédent | Sommaire | Suivant
SDO_DAS_ChangeSummary::beginLogging | Niveau supérieur | SDO_DAS_ChangeSummary::getChangeType


SDO_DAS_ChangeSummary::getChangedDataObjects

(no version information, might be only in CVS)

SDO_DAS_ChangeSummary::getChangedDataObjects -- Récupère une liste de d'objets de données qui ont été changés

Description

SDO_List SDO_DAS_ChangeSummary::getChangedDataObjects ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un SDO_List de SDO_DataObjects qui ont été changés. Ces objets de données peuvent alors être utilisés pour identifier les types de changements effectués de chacun, avec les anciennes valeurs.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne un SDO_List de SDO_DataObjects.

Précédent | Sommaire | Suivant
SDO_DAS_ChangeSummary::getChangeType | Niveau supérieur | SDO_DAS_ChangeSummary::getOldContainer


SDO_DAS_ChangeSummary::getChangeType

(no version information, might be only in CVS)

SDO_DAS_ChangeSummary::getChangeType -- Récupère le type de changement qui a été fait à l'objet de données

Description

int SDO_DAS_ChangeSummary::getChangeType ( SDO_DataObject dataObject )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le type de changement qui a été fait à l'objet SDO_DataObject fourni.

Liste de paramètres

dataObject

Le SDO_DataObject qui a été modifié.

Valeurs de retour

Le type de changement qui a été fait. Le type de changement est exprimé comme une énumération et sera une des quatre valeurs suivantes :

  • SDO_DAS_ChangeSummary::NONE

  • SDO_DAS_ChangeSummary::MODIFICATION

  • SDO_DAS_ChangeSummary::ADDITION

  • SDO_DAS_ChangeSummary::DELETION

Précédent | Sommaire | Suivant
SDO_DAS_ChangeSummary::endLogging | Niveau supérieur | SDO_DAS_ChangeSummary::getChangedDataObjects


SDO_DAS_ChangeSummary::getOldContainer

(no version information, might be only in CVS)

SDO_DAS_ChangeSummary::getOldContainer -- Récupère un ancien conteneur d'objet de données pour un objet de données supprimé

Description

SDO_DataObject SDO_DAS_ChangeSummary::getOldContainer ( SDO_DataObject data_object )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un ancien conteneur d'objet (SDO_DataObject) pour un SDO_DataObject supprimé.

Liste de paramètres

data_object

Le SDO_DataObject qui a été supprimé et pour lequel nous voulons identifier le conteneur.

Valeurs de retour

L'ancien conteneur d'objet de données de l'objet SDO_DataObject supprimé.

Précédent | Sommaire | Suivant
SDO_DAS_ChangeSummary::getChangedDataObjects | Niveau supérieur | SDO_DAS_ChangeSummary::getOldValues


SDO_DAS_ChangeSummary::getOldValues

(no version information, might be only in CVS)

SDO_DAS_ChangeSummary::getOldValues -- Récupère une liste des anciennes valeurs pour un objet de données

Description

SDO_List SDO_DAS_ChangeSummary::getOldValues ( SDO_DataObject data_object )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère une liste des anciennes valeurs pour l'objet SDO_DataObject donné. Retourne une liste SDO_DAS_Settings décrivant les anciennes valeurs pour les propriétés changées de SDO_DataObject.

Liste de paramètres

data_object

L'objet de données qui a été changé.

Valeurs de retour

Une liste de SDO_DAS_Settings décrivant les anciennes valeurs pour les propriétés changées de SDO_DataObject. Si le type de changement est SDO_DAS_ChangeSummary::ADDITION, sa liste est vide.

Précédent | Sommaire | Suivant
SDO_DAS_ChangeSummary::getOldContainer | Niveau supérieur | SDO_DAS_ChangeSummary::isLogging


SDO_DAS_ChangeSummary::isLogging

(no version information, might be only in CVS)

SDO_DAS_ChangeSummary::isLogging -- Vérifie pour voir si la journalisation des changements est activée

Description

bool SDO_DAS_ChangeSummary::isLogging ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si la journalisation des changements est activée.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si la journalisation est activée, autrement retourne FALSE.

Précédent | Sommaire | Suivant
SDO_DAS_ChangeSummary::getOldValues | Niveau supérieur | SDO_DAS_DataFactory::addPropertyToType


SDO_DAS_DataFactory::addPropertyToType

(no version information, might be only in CVS)

SDO_DAS_DataFactory::addPropertyToType -- Ajoute une nouvelle propriété à une définition de type

Description

void SDO_DAS_DataFactory::addPropertyToType ( string parent_type_namespace_uri, string parent_type_name, string property_name, string type_namespace_uri, string type_name [, array options] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajoute une nouvelle propriété à une définition de type. Le type doit être déjà connu de SDO_DAS_DataFactory (c'est-à-dire, a été ajouté en utilisant addType()). La propriété devient une propriété du type. Voici comment le modèle de graphique pour la structure d'un SDO_DataObject est construit.

Liste de paramètres

parent_type_namespace_uri

L'espace de nom URI du type parent.

parent_type_name

Le nom du type pour le type parent.

property_name

Le nom par lequel la propriété sera connue dans le type parent.

type_namespace_uri

L'espace de nom URI pour le type de la propriété.

type_name

Le nom du type pour le type de la propriété.

options

Ce tableau contient une ou plusieurs paires de clé=>valeur pour fixer les valeurs des attributs pour la propriété. Les clés optionnelles sont :

many

Un drapeau pour dire si la propriété est de valeurs multiples. Une valeur TRUE ajoute la propriété en tant que propriété à valeurs multiples (la valeur par défaut est FALSE).

readOnly

Un drapeau pour dire si la propriété est en lecture seule. Une valeur TRUE signifie que la valeur de la propriété ne peut être modifiée à travers des APIs de l'application SDO (la valeur par défaut est FALSE).

containment

Un drapeau pour dire si la propriété est contenue par le parent. Une valeur TRUE signifie que la propriété est contenue par le parent. Une valeur FALSE résulte en une référence non contenue (la valeur par défaut est TRUE). Ce drapeau est seulement interprété lors de l'ajout de propriétés qui sont des types d'objet de données, autrement il est ignoré.

default

Une valeur par défaut de la propriété. L'omission de cette clé signifie que la propriété ne possède pas de valeur par défaut. Une propriété peut seulement avoir une valeur par défaut s'il s'agit d'un type de données de valeur simple (primitive).

Valeurs de retour

Aucune.

Historique

Version | Description
0.5.2 | Les paramètres optionnels many, readOnly et containment sont obsolètes en faveur du tableau options.

Exemples

Exemple 1. Exemple avec SDO_DAS_DataFactory::addPropertyToType()

L'exemple suivant ajoute une propriété 'addressline' au type Person. Le type person est identifié par son espace de nom, 'PersonNS' et son nom de type 'PersonType'. Le type de la propriété 'addressline' est de valeurs multiples (primitive) avec un espace de nom 'commonj.sdo' et le nom de type est 'String'.

<?php
  $df->addPropertyToType('PersonNS', 'PersonType',
    'addressline', 'commonj.sdo', 'String', array('many'=>true));
?>

Précédent | Sommaire | Suivant
SDO_DAS_ChangeSummary::isLogging | Niveau supérieur | SDO_DAS_DataFactory::addType


SDO_DAS_DataFactory::addType

(no version information, might be only in CVS)

SDO_DAS_DataFactory::addType -- Ajoute un nouveau type à un modèle

Description

void SDO_DAS_DataFactory::addType ( string type_namespace_uri, string type_name [, array options] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ajoute un nouveau type à SDO_DAS_DataFactory, défini par son espace de nom et son type de nom. Le type devient une part du modèle de d'objets de données que la classe peut créer.

Liste de paramètres

type_namespace_uri

L'espace de nom du type.

type_name

Le nom du type.

options

Ce tableau contient une ou plusieurs paires clé=>valeur pour définir les valeurs de l'attribut de ce type. Les mot-clés optionnels sont :

open

Un flag pour dire si le type est ouvert. Un SDO_DataObject dont le type est ouvert peut avoir des propriétés ajoutées qui ne sont pas décrites par le type. Cette possibilité est utilisée pour supporter le travail avec les documents XML dont les schémas supportent le contenu ouvert tel que décrit par l'élément <xsd:any> element. La valeur par défaut est 'false'.

sequenced

Un flag pour dire si le type est séquencé. Les types séquencés peuvent préserver l'ordre des propriétés et peuvent contenir du texte non structuré. La valeur par défaut est 'false'. Pour plus d'informations sur les types séquencés, lisez la section sur le travail avec les objets de données séquencés.

basetype

Si spécifié, un tableau d'URI d'espace de noms et de noms de type pour le type depuis lequel ce type est dérivé. Un exemple d'utilisation des types de base est lorsque un type dérivé dans un schéma XML hérite d'un autre type en utilisant <extension base="...">.

Valeurs de retour

Aucune.

Exemples

Exemple 1. Exemple avec SDO_DAS_DataFactory::addType()

L'exemle suivant ajoute un nouvel objet de données de 'CompagnieType' à l'endroit où appartient l'espace de nom 'CompagnieNS'.

<?php
  $df->addType('CompagnieNS', 'CompagnieType');
?>

Précédent | Sommaire | Suivant
SDO_DAS_DataFactory::addPropertyToType | Niveau supérieur | SDO_DAS_DataFactory::getDataFactory


SDO_DAS_DataFactory::getDataFactory

(no version information, might be only in CVS)

SDO_DAS_DataFactory::getDataFactory -- Récupère l'instance de classe de données

Description

SDO_DAS_DataFactory SDO_DAS_DataFactory::getDataFactory ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Méthode statique pour obtenir une instance de SDO_DAS_DataFactory. Cette instance est initialement configuré avec les types de SDO basic. Un Service d'Accès de Données est responsable du remplissage du modèle de classe de données et permet ainsi aux applications PHP de créer des SDOs basés sur un modèle à travers de l'interface SDO_DataFactory. Les applications PHP devraient toujours obtenir une classe de données d'un Service d'Accès de Données configuré, et non à travers cette interface.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne un SDO_DAS_DataFactory.

Précédent | Sommaire | Suivant
SDO_DAS_DataFactory::addType | Niveau supérieur | SDO_DAS_DataObject::getChangeSummary


SDO_DAS_DataObject::getChangeSummary

(no version information, might be only in CVS)

SDO_DAS_DataObject::getChangeSummary -- Récupère le résumé de changement pour un objet de données

Description

SDO_DAS_ChangeSummary SDO_DAS_DataObject::getChangeSummary ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le SDO_DAS_ChangeSummary pour un SDO_DAS_DataObject ou NULL s'il n'en a pas.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_DAS_ChangeSummary pour un SDO_DAS_DataObject ou NULL s'il n'en a pas.

Précédent | Sommaire | Suivant
SDO_DAS_DataFactory::getDataFactory | Niveau supérieur | SDO_DAS_Setting::getListIndex


SDO_DAS_Relational::applyChanges

(no version information, might be only in CVS)

SDO_DAS_Relational::applyChanges -- Applique les changements effectués au graphique de données à la base de données.

Description

void SDO_DAS_Relational::applyChanges ( PDO database_handle, SDODataObject root_data_object )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

En donnant descripteur de base de données PDO et l'objet racine spécial d'un graphique de données, la fonction examine les changements dans le graphique de données et applique les changements à la base de données Les changements qui peut appliquer sont les créations d'objets de données, les suppressions des objets de données et les modifications des propriétés des objets de données.

Liste de paramètres

PDO_database_handle

Construit en utilisant l'extension PDO. Une ligne typique pour construire un descripteur de base de données PDO devrait ressembler à ceci :

$dbh = new PDO("mysql:dbname=COMPAGNIEDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

root_data_object

L'objet racine spécial qui est le sommet de chaque graphique de données SDO.

Valeurs de retour

Aucun. Notez cependant que le graphique de données qui a été passé est toujours intact et utilisable. De plus, si les objets de données ont été créés et écrits à une table avec des clés primaires générées automatiquement, alors ces clés primaires seront maintenant enregistrées dans les objets de données. Si les changements ont été correctement écrits, alors le changement associé avec le graphique de données sera supprimé, alors il est possible maintenant d'effectuer plus de changement au graphique de données et appliquer les changements alternativement. De cette façon, il est possible de travailler avec le même graphique de données et appliquer les changement à plusieurs reprises.

Erreurs / Exceptions

SDO_DAS_Relational::applyChanges() peut jeter une exception SDO_DAS_Relational_Exception si la méthode n'est pas capable d'appliquer tous les changements correctement.

Le DAS Relationnel démarre une transaction de base de données avant de commencer à appliquer les changements et enverra les transactions seulement si celles-ci sont réussies. Le DAS Relationnel génère des requêtes de mises à jour et de suppression qualifiées qui contiennent une clause WHERE qui spécifie que la ligne à être modifiée ou supprimée doit contenir les mêmes valeurs qu'elles avaient lorsque les données ont été préalablement récupérées. Voici comment la simultanéité optimiste est implantée. Si une des requêtes de mises à jour ou de suppression qualifiées échoue à mettre à jour ou à supprimer leur ligne, il se peut que cela soit à cause des données altérées dans la base de données en attendant. Quoi qu'il arrive, si une mise à jour échoue pour n'importe quelle raison, la transaction est retournée en arrière et une exception est jetée. Cette exception contiendra la requête SQL générée qui a échouée.

Le DAS Relationnel attrape aussi toutes les exceptions de PDO et obtient des informations de diagnostique de PDO qui incluent dans un SDO_DAS_Relational_Exception qui est lui-même ensuite jeté.

Exemples

Veuillez voir la section d'exemples dans les informations générales à propos de DAS Relationnel pour plusieurs exemples sur l'appel de cette méthode. Veuillez voir aussi la section sur le suivi pour voir comment vous pouvez voir quelles requêtes SQL sont générées par le DAS Relationnel.

Précédent | Sommaire | Suivant
Fonctions SDO Relationnel Service d'Accès de Données | Niveau supérieur | SDO_DAS_Relational::__construct


SDO_DAS_Relational::__construct

(no version information, might be only in CVS)

SDO_DAS_Relational::__construct -- Construit une instance de DAS Relationnel

Description

SDO_DAS_Relational SDO_DAS_Relational::__construct ( array database_metadata [, string application_root_type [, array SDO_containment_references_metadata]] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Construit une instance de DAS Relationnel à partir des méta-données passées.

Liste de paramètres

database_metadata

Un tableau contenant une ou plusieurs définitions de table, chacune d'elle est un tableau associatif contenant les clés name, columns, PK et optionnellement, FK. Pour une discussion complète sur les méta-données, voyez la section méta-données dans les informations générales à propos de DAS Relationnel.

application_root_type

La racine de chaque graphique de données est un objet d'un type de racine spécial et les objets de données de l'application viennent sous cela. De la plupart des types d'application dans le modèle SDO, une doit être le type d'application immédiatement sous la racine du graphique de données. S'il n'y a qu'une seule table dans les méta-données de base de données, alors le type de racine de l'application peut être impliqué et cet argument peut être omis.

SDO_containment_references_metadata

Un tableau contenant une ou plusieurs définitions d'une relation contenue, chacune d'elle est un tableau associatif contenant les clés parent et child. Les relations contenues décrient comment les types dans le modèle sont connectés pour former un arbre. Le type spécifié en tant que le type racine de l'application doit être présent en tant qu'un type de parent dans les références contenues. Si l'application doit seulement travailler avec une table à la fois et s'il n'y a pas de relation contenue dans le modèle, cet argument peut être omis. Pour une discussion complète sur les méta-données, voyez la section méta-données dans les informations générales à propos de DAS Relationnel.

Valeurs de retour

Retourne un objet SDO_DAS_Relational en cas de succès.

Erreurs / Exceptions

SDO_DAS_Relational::__construct() jette une exception SDO_DAS_Relational_Exception si des problèmes sont trouvés dans les méta-données.

Exemples

Pour une discussion complète sur les méta-données, voyez la section méta-données dans les informations générales à propos de DAS Relationnel.

Précédent | Sommaire | Suivant
SDO_DAS_Relational::applyChanges | Niveau supérieur | SDO_DAS_Relational::createRootDataObject


SDO_DAS_Relational::createRootDataObject

(no version information, might be only in CVS)

SDO_DAS_Relational::createRootDataObject -- Retourne un objet racine spécial d'un graphique de données vide. Utilisé lors de la création d'un graphique de données à partir de zéro.

Description

SDODataObject SDO_DAS_Relational::createRootDataObject ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne un objet racine spécial du sommet d'un graphique de données vide. Cet appel est utilisé lorsque l'application veut créer un graphique de données à partir de zéro, sans avoir appelé executeQuery() pour créer le graphique de données.

L'objet racine spécial a une propriété de valeurs multiples contenue, avec un nom du type de racine de l'application qui a été passé lors de la construction de DAS Relationnel. La propriété peut prendre des valeurs de seulement ce type. La seule chose que l'application peut faire d'utile avec le type de racine est d'appeler createDataObject() sur celui-ci, en passant le nom du type de racine de l'application, dans l'ordre pour créer un objet de données avec son propre type d'application

Liste de paramètres

Aucun.

Valeurs de retour

L'objet racine.

Erreurs / Exceptions

Aucun.

Exemples

Veuillez visitez la section exemples dans la section information générale à propos des DAS Relationnel pour beaucoup d'exemples en appelant cette méthode.

Précédent | Sommaire | Suivant
SDO_DAS_Relational::__construct | Niveau supérieur | SDO_DAS_Relational::executePreparedQuery


SDO_DAS_Relational::executePreparedQuery

(no version information, might be only in CVS)

SDO_DAS_Relational::executePreparedQuery -- Exécute une requête SQL passée comme requête préparée, avec une liste de valeurs à substituer pour les paramètres fictifs, et retourne les résultats comme un graphique de données normalisé.

Description

SDODataObject SDO_DAS_Relational::executePreparedQuery ( PDO database_handle, PDOStatement prepared_statement, array value_list [, array column_specifier] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exécute une requête donnée sur une base de données relationnelle, en utilisant le descripteur de base de données PDO fourni. Elle diffère de la fonction simple executeQuery() puisqu'elle prend des requêtes préparées et une liste de valeurs. Ceci est l'appel approprié lorsque vous voulez utiliser une requête qui doit être appelée un certain nombre de fois avec des arguments différents et il y a donc un avantage de performance à être préparée une seule fois. Elle est utile aussi pour les requêtes SQL qui contiennent des valeurs qui varient prises d'une source qui ne peut pas être totalement sûre. Dans ce dernier cas, il est peu sécuritaire de construire une requête SQL en concaténant simplement les parties de la requête ensemble, puisque les valeurs peuvent convenir des morceau de SQL. Pour se protéger de ceci, d'une prétendue attaque par injection SQL, il est plus sécuritaire de préparer la requête SQL avec des paramètres fictifs (aussi connu sous le nom de marqueurs, noté '?') et fournir une liste de valeurs qui devra être substituée dans un argument séparé. Autrement, cette fonction est la même que executeQuery() puisqu'elle utilise le modèle qui était bâti à partir des méta-données pour interpréter le jeu de résultats et retourner un graphique de données.

Liste de paramètres

PDO_database_handle

Construit en utilisant l'extension PDO. Une ligne typique pour construire un descripteur de base de données PDO devrait ressembler à ceci :

$dbh = new PDO("mysql:dbname=COMPAGNIEYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

prepared_statement

Une requête SQL préparée qui sera exécutée sur la base de données. Il aura été préparé par la méthode prepare() de PDO.

value_list

Un tableau de valeurs à être substituées dans la requête SQL à la place des paramètres fictifs. Dans le cas qu'il n'y a pas de paramètres fictifs ou de marqueurs dans la requête SQL, alors cet argument peut être spécifié comme NULL ou en tant qu'un tableau vide.

column_specifier

Le DAS Relationnel doit examiner le jeu de résultats et pour chaque colonne, provenant de quelle table et quelle colonne de la table il vient. Dans certaines circonstances, il peut trouver les informations pour lui-même, mais la plupart du temps il ne le peut pas. Dans ces cas, une colonne spécifique est requise, qui est un tableau qui identifie les colonnes. Chaque entrée dans le tableau est simplement une chaîne de caractères dans la forme table-name.column_name.

Le spécificateur de colonne est requis lorsqu'il y a des noms de colonnes similaires dans les méta-données de base de données. Par exemple, dans une base de données utilisée dans ces exemples, toutes les tables ont une colonne id et une colonne nom. Lorsque DAS Relationnel récupère le jeu de résultats à partir de PDO, il peut le faire avec l'attribut PDO_FETCH_ASSOC, ce qui permettra aux colonnes dans les jeux de résultats d'être marquées avec un nom de colonne, mais on ne pourra pas distinguer les entrées similaires. Alors cela fonctionnera seulement lorsqu'il y aura aucune entrée similaire possible dans les jeux de résultats.

Pour résumer, spécifier un tableau de spécificateurs de colonne lorsqu'il y a une incertitude à propos des colonnes qui pourraient venir de quelle table. Il faut l'omettre seulement lorsque chaque nom des colonnes dans les méta-données de base de données est unique.

Tous les exemples dans la section d'Exemples utilisent un spécificateur de colonne. Il y a un exemple dans le dossier Scenarios de l'installation qui ne fait pas : il ne fonctionne seulement avec la table employe et parce que il travaille seulement avec une seule table, il ne peut y avoir des noms de colonnes similaires.

Valeurs de retour

Retourne un graphique de données. Spécifiquement, elle retourne un objet racine d'un type spécial. Sous cet objet de racine se trouveront les données du jeu de résultat. L'objet de racine aura une propriété de valeurs multiples contenue avec le même nom que le type racine d'application spécifié dans le constructur, et la propriété continuera un ou plusieurs objets de donnés du type de racine de l'application.

Dans le cas que la requête aucune donnée, l'objet spécial de racine pour le type de racine de l'application sera vide.

Erreurs / Exceptions

SDO_DAS_Relational::executePreparedQuery() peut jeter une exception SDO_DAS_Relational_Exception si elle n'est pas capable de construire le graphique de données correctement. Cela peut arriver pour un certains nombres de raisons : par exemple, si elle trouve qu'elle n'a pas de clés primaire dans le jeu de résultats pour tous les objets. Le DAS Relationnel attrape toutes les exceptions de PDO et obtient des informations de diagnostique de PDO qui inclut un SDO_DAS_Relationnal_Exception qui sera alors jeté.

Exemples

Exemple 1. Récupération d'un objet de données en utilisant executePreparedQuery()

Dans cet exemple, un simple objet de données est récupéré de la base de données - ou possiblement plus d'un s'il y a plus d'une compagnie appelée 'Acme'. Pour chaque compagnie retournée, les propriétés nom et id sont affichées.

D'autres exemples d'utilisation de executePreparedQuery() peuvent être trouvés dans le code d'exemple fourni dans sdo/DAS/Relational/Scenarios.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les méta-données
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_reference_metadata);

/**************************************************************
 * Récupère une connexion à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Effectue une requête pour obtenir un objet compagnie - il pourrait y en
 * avoir plus s'ils existaient
 * Utilise une requête préparée avec des paramètres fictifs.
 ***************************************************************/
$nom = 'Acme';
$pdo_stmt = $dbh->prepare('select nom, id from compagnie where nom=?');
$root = $das->executePreparedQuery(
    $dbh,
    $pdo_stmt,
    array($nom),
    array('compagnie.nom', 'compagnie.id'));

/**************************************************************
 * Affiche le nom et son id
 ***************************************************************/
foreach ($root['compagnie'] as $compagnie) {
    echo "Compagnie obtenue de la base de données a le nom de = " .
    $compagnie['nom'] . " et son id est " . $compagnie['id'] . "\n";
}
?>

Précédent | Sommaire | Suivant
SDO_DAS_Relational::createRootDataObject | Niveau supérieur | SDO_DAS_Relational::executeQuery


SDO_DAS_Relational::executeQuery

(no version information, might be only in CVS)

SDO_DAS_Relational::executeQuery -- Exécute une requête SQL donnée à une base de données relationnelle et retourne les résultats comme graphique de données normalisé.

Description

SDODataObject SDO_DAS_Relational::executeQuery ( PDO database_handle, string SQL_statement [, array column_specifier] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Exécute une requête donnée à la base de données relationnelle en utilisant le descripteur de base de données PDO fourni. Utilise le modèle qui est bâti des méta-données pour interpréter le jeu de résultats. Retourne un graphique de données.

Liste de paramètres

PDO_database_handle

Construit en utilisant l'extension PDO. Une ligne typique pour construire un descripteur de base de données PDO devrait ressembler à ceci :

$dbh = new PDO("mysql:dbname=COMPAGNIEDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

SQL_statement

La requête SQL à être exécutée sur la base de données.

column_specifier

Le DAS Relationnel doit examiner le jeu de résultats et pour chaque colonne, provenant de quelle table et quelle colonne de la table il vient. Dans certaines circonstances, il peut trouver les informations pour lui-même, mais la plupart du temps il ne le peut pas. Dans ces cas, une colonne spécifique est requise, qui est un tableau qui identifie les colonnes. Chaque entrée dans le tableau est simplement une chaîne de caractères dans la forme table-name.column_name.

Le spécificateur de colonne est requis lorsqu'il y a des noms de colonnes similaires dans les méta-données de base de données. Par exemple, dans une base de données utilisée dans ces exemples, toutes les tables ont une colonne id et une colonne nom. Lorsque DAS Relationnel récupère le jeu de résultats à partir de PDO, il peut le faire avec l'attribut PDO_FETCH_ASSOC, ce qui permettra aux colonnes dans les jeux de résultats d'être marquées avec un nom de colonne, mais on ne pourra pas distinguer les entrées similaires. Alors cela fonctionnera seulement lorsqu'il y aura aucune entrée similaire possible dans les jeux de résultats.

Pour résumer, spécifier un tableau de spécificateurs de colonne lorsqu'il y a une incertitude à propos des colonnes qui pourraient venir de quelle table. Il faut l'omettre seulement lorsque chaque nom des colonnes dans les méta-données de base de données est unique.

Tous les exemples dans la section d'Exemples utilisent un spécificateur de colonne. Il y a un exemple dans le dossier Scenarios de l'installation qui ne fait pas : il ne fonctionne seulement avec la table employe et parce que il travaille seulement avec une seule table, il ne peut y avoir des noms de colonnes similaires.

Valeurs de retour

Retourne un graphique de données. Spécifiqueent, elle retourne un objet racine d'un type spécial. Sous cet objet de racine se trouvera les données du jeu de résultat. L'objet de racine aura une propriété de valeurs multiples contenue avec le même nom que le type racine d'application spécifié dans le constructur, et la propriété continera un ou plusieurs objets de donnés du type de racine de l'application.

Dans le cas que la requête aucune données, l'objet spécial de racine pour le type de racine de l'application sera vide.

Erreurs / Exceptions

SDO_DAS_Relational::executeQuery() peut jeter une exception SDO_DAS_Relational_Exception si elle n'est pas capable de construire le graphique de données correctement. Cela peut arriver pour un certains nombres de raisons : par exemple, si elle trouve qu'elle n'a pas de clés primaire dans le jeu de résultats pour tous les objets. Le DAS Relationnel attrape toutes les exceptions de PDO et obtient des informations de diagnostique de PDO qui inclut un SDO_DAS_Relationnal_Exception qui sera alors jeté.

Exemples

Veuillez visitez la section exemples dans la section information générale à propos des DAS Relationnel pour beaucoup d'exemples en appelant cette méthode.

Précédent | Sommaire | Suivant
SDO_DAS_Relational::executePreparedQuery | Niveau supérieur | Sémaphores et gestion de la mémoire partagée


SDO_DAS_Setting::getListIndex

(no version information, might be only in CVS)

SDO_DAS_Setting::getListIndex -- Récupère la liste des index pour une propriété de valeurs multiples changée

Description

int SDO_DAS_Setting::getListIndex ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère la liste des index pour une modification faite sur un élément de propriété à valeurs multiples. Par exemple, si nous avions modifié le troisième élément d'une propriété à valeurs multiples, nous pourrions obtenir un SDO_DAS_Setting pour un résumé du changement correspondant à la modification. Un appel à getListIndex() sur cette configuration retournerait la valeur 2 (les listes commencent leur indexation à zéro).

Liste de paramètres

Aucun.

Valeurs de retour

La liste des index pour un élément d'une propriété à valeurs multiples pour laquelle a été changée.

Précédent | Sommaire | Suivant
SDO_DAS_DataObject::getChangeSummary | Niveau supérieur | SDO_DAS_Setting::getPropertyIndex


SDO_DAS_Setting::getPropertyIndex

(no version information, might be only in CVS)

SDO_DAS_Setting::getPropertyIndex -- Récupère l'index de propriété pour la propriété changée

Description

int SDO_DAS_Setting::getPropertyIndex ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère l'index de propriété pour la propriété changée. Cet index identifie la propriété pour laquelle elle a été modifiée dans l'objet de données.

Liste de paramètres

Aucun.

Valeurs de retour

L'index de propriété pour une propriété changée.

Précédent | Sommaire | Suivant
SDO_DAS_Setting::getListIndex | Niveau supérieur | SDO_DAS_Setting::getPropertyName


SDO_DAS_Setting::getPropertyName

(no version information, might be only in CVS)

SDO_DAS_Setting::getPropertyName -- Récupère le nom de la propriété pour la propriété changée

Description

string SDO_DAS_Setting::getPropertyName ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le nom de la propriété pour la propriété changée. Le nom identifie la propriété pour laquelle elle a été modifiée dans l'objet de données.

Liste de paramètres

Aucun.

Valeurs de retour

Le nom de la propriété pour une propriété changée.

Précédent | Sommaire | Suivant
SDO_DAS_Setting::getPropertyIndex | Niveau supérieur | SDO_DAS_Setting::getValue


SDO_DAS_Setting::getValue

(no version information, might be only in CVS)

SDO_DAS_Setting::getValue -- Récupère l'ancienne valeur pour la propriété changée

Description

mixed SDO_DAS_Setting::getValue ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère l'ancienne valeur pour la propriété changée. Cela peut être utilisé par le Service d'Accès de Données lors de l'écriture des mises à jours à une source de données. Le DAS utilise l'ancienne valeur pour détecter les conflits en la comparant avec la valeur courante dans la source de données. Si elles ne concordent pas, alors la source de données a été mise à jour depuis que l'objet de données fut rempli, et alors l'écriture de nouvelles mises à jour risque de compromettre l'intégrité des données.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne l'ancienne valeur de la propriété changée.

Précédent | Sommaire | Suivant
SDO_DAS_Setting::getPropertyName | Niveau supérieur | SDO_DAS_Setting::isSet


SDO_DAS_Setting::isSet

(no version information, might be only in CVS)

SDO_DAS_Setting::isSet -- Vérifie pour voir si la propriété était fixée avant d'être modifiée

Description

bool SDO_DAS_Setting::isSet ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si la propriété était fixée avant d'être modifiée. Si elle avait été fixée avant d'être modifiée, alors le SDO_DAS_Setting contiendra aussi l'ancienne valeur.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si la propriété était fixée avant qu'elle soit modifiée, autrement retourne FALSE.

Précédent | Sommaire | Suivant
SDO_DAS_Setting::getValue | Niveau supérieur | SDO_DataFactory::create


SDO_DAS_XML::addTypes

(no version information, might be only in CVS)

SDO_DAS_XML::addTypes -- Pour charger un second ou subséquent fichier shcéma à un objet SDO_DAS_XML

Description

void SDO_DAS_XML::addTypes ( string xsd_file )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Charge un second ou subséquent fichier schéma à un XML DAS qui est déjà créé avec la méthode statique create(). Bien que le fichier puisse être n'importe quel fichier de schéma valide, une raison pour laquelle utiliser cette méthode est commode est que pour ajouter un fichier schéma contenant les définitions de types extra complex, par conséquent, le nom. Voyez l'exemple 4 du document parent pour un exemple.

Liste de paramètres

xsd_file

Chemin du Fichier Schéma XSD.

Valeurs de retour

Aucune si réussite, autrement émet une exception comme décrite ci-dessous.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.

SDO_DAS_XML_ParserException

Émis pour n'importe quels problèmes lors de l'analyse du fichier XSD donné.

SDO_DAS_XML_FileException

Émis si le fichier spécifié ne peut être trouvé.

Précédent | Sommaire | Suivant
SDO_DAS_XML_Document::setXMLVersion | Niveau supérieur | SDO_DAS_XML::create


SDO_DAS_XML::create

(no version information, might be only in CVS)

SDO_DAS_XML::create -- Pour créer un objet SDO_DAS_XML pour un fichier de schéma donné

Description

SDO_DAS_XML SDO_DAS_XML::create ( [string xsd_file] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Ceci est la seule méthode statique pour la classe SDO_DAS_XML. Utilisée pour instancier l'objet SDO_DAS_XML.

Liste de paramètres

xsd_file

Emplacement du fichier de Schéma XSD. Ceci est optionnel. S'il est omis, un DAS sera créé qui a seulement les types de base SDO de défini. Les fichiers de schéma peuvent être alors chargés avec la méthode addTypes().

Valeurs de retour

Retourne un objet SDO_DAS_XML en cas de succès ou autrement elle émet une exception comme décrite ci-dessous.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.

SDO_DAS_XML_ParserException

Émis pour n'importe quels problèmes lors de l'analyse du fichier XSD donné.

SDO_DAS_XML_FileException

Émis si le fichier spécifié ne peut être trouvé.

Précédent | Sommaire | Suivant
SDO_DAS_XML::addTypes | Niveau supérieur | SDO_DAS_XML::createDataObject


SDO_DAS_XML::createDataObject

(no version information, might be only in CVS)

SDO_DAS_XML::createDataObject -- Crée un SDO_DataObject pour un espace de nom URI et un nom de type donnés

Description

SDO_DataObject SDO_DAS_XML::createDataObject ( string namespace_uri, string type_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un SDO_DataObject pou un espace de nom URI et un nom de type donnés. Le type devrait être défini dans le modèle sous-jacent autrement SDO_TypeNotFoundException sera émis.

Liste de paramètres

namespace_uri

L'espace de nom URI du nom de type.

type_name

Nom de type.

Valeurs de retour

Retourne un SDO_DataObject en cas succès.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.

Précédent | Sommaire | Suivant
SDO_DAS_XML::create | Niveau supérieur | SDO_DAS_XML::createDocument


SDO_DAS_XML::createDocument

(no version information, might be only in CVS)

SDO_DAS_XML::createDocument -- Crée un objet de document XML à partir de zéro, sans avoir besoin de charger un document à partir d'un fichier ou d'une chaîne de caractère

Description

SDO_DAS_XML_Document SDO_DAS_XML::createDocument ( [string document_element_name] )

SDO_DAS_XML_Document SDO_DAS_XML::createDocument ( string document_element_namespace_URI, string document_element_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un objet de document XML. Ceci contiendra seulement un seul élément racine vide dans lequel aucune propriété ne sera fixée. Le but de cet appel est d'autoriser une application de créer un document XML à partir de zéro sans avoir besoin de charger un document à partir d'un fichier ou d'une chaîne de caractères. Le document qui est créé sera comme un document qui aurait été chargé qui contient seulement un seul élément vide avec aucun jeu d'attribut ou d'élément à l'intérieur.

createDocument() peut avoir besoin de savoir quel élément de document il sera. Ceci ne sera pas nécessaire dans les cas simples. Lorsqu'il n'y a pas d'ambiguïté, alors aucun paramètre n'est nécessaire. Cependant, il est possible de charger plus d'un fichier schéma dans le même XML DAS et dans ce cas, il pourrait y avoir plus d'un élément de document possible de défini : de plus, il est même possible qu'il y ait deux éléments de document possibles qui diffèrent seulement avec le espace de nom. Pour pallier à ce problème dans ces cas, il est possible de spécifier soit le nom de l'élément du document ou le nom et l'espace de nom de l'élément du document à la méthode.

Liste de paramètres

document_element_name

Le nom de l'élément du document. Seulement nécessaire s'il y a plus d'une seule possibilité.

document_element_namespace_URI

L'espace de nom qui fait parti du nom de l'élément du document. Seulement nécessaire s'il y a plus d'un élément de document possible avec le même nom.

Valeurs de retour

Retourne un objet SDO_DAS_XML_Document en cas de réussite.

Erreurs / Exceptions

SDO_UnsupportedOperationException

Émis si un nom de l'élément ou le nom de l'élément et l'espace de nom URI est passé, mais qu'ils ne sont pas trouvé dans le modèle sous-jacent.

Précédent | Sommaire | Suivant
SDO_DAS_XML::createDataObject | Niveau supérieur | SDO_DAS_XML::loadFile


SDO_DAS_XML_Document::getRootDataObject

(no version information, might be only in CVS)

SDO_DAS_XML_Document::getRootDataObject -- Retourne la racine de SDO_DataObject

Description

SDO_DataObject SDO_DAS_XML_Document::getRootDataObject ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la racine de SDO_DataObject.

Liste de paramètres

Valeurs de retour

Retourne la racine de SDO_DataObject.

Précédent | Sommaire | Suivant
Fonctions de Service d'Accès de Données SDO XML | Niveau supérieur | SDO_DAS_XML_Document::getRootElementName


SDO_DAS_XML_Document::getRootElementName

(no version information, might be only in CVS)

SDO_DAS_XML_Document::getRootElementName -- Retourne le nom de l'élément racine

Description

string SDO_DAS_XML_Document::getRootElementName ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le nom de l'élément racine.

Liste de paramètres

Valeurs de retour

Retourne le nom de l'élément racine.

Précédent | Sommaire | Suivant
SDO_DAS_XML_Document::getRootDataObject | Niveau supérieur | SDO_DAS_XML_Document::getRootElementURI


SDO_DAS_XML_Document::getRootElementURI

(no version information, might be only in CVS)

SDO_DAS_XML_Document::getRootElementURI -- Retourne la chaîne de caractères URI de l'élément racine

Description

string SDO_DAS_XML_Document::getRootElementURI ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la chaîne de caractères URI de l'élément racine.

Liste de paramètres

Valeurs de retour

Retourne la chaîne de caractères URI de l'élément racine.

Précédent | Sommaire | Suivant
SDO_DAS_XML_Document::getRootElementName | Niveau supérieur | SDO_DAS_XML_Document::setEncoding


SDO_DAS_XML_Document::setEncoding

(no version information, might be only in CVS)

SDO_DAS_XML_Document::setEncoding -- Fixe l'encodage à l'aide d'une chaîne de caractères

Description

void SDO_DAS_XML_Document::setEncoding ( string encoding )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Fixe l'encodage à l'aide d'une chaîne de caractères.

Liste de paramètres

encoding

Chaîne de caractères d'encodage.

Valeurs de retour

Aucune.

Précédent | Sommaire | Suivant
SDO_DAS_XML_Document::getRootElementURI | Niveau supérieur | SDO_DAS_XML_Document::setXMLDeclaration


SDO_DAS_XML_Document::setXMLDeclaration

(no version information, might be only in CVS)

SDO_DAS_XML_Document::setXMLDeclaration -- Fixe la déclaration xml

Description

void SDO_DAS_XML_Document::setXMLDeclaration ( bool xmlDeclatation )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Contrôle si une déclaration XML sera générée au début du document XML. Fixez à TRUE pour générer la déclaration XML ou à FALSE pour la supprimer.

Liste de paramètres

xmlDeclatation

Valeur booléenne pour fixer la déclaration XML.

Valeurs de retour

Aucune.

Précédent | Sommaire | Suivant
SDO_DAS_XML_Document::setEncoding | Niveau supérieur | SDO_DAS_XML_Document::setXMLVersion


SDO_DAS_XML_Document::setXMLVersion

(no version information, might be only in CVS)

SDO_DAS_XML_Document::setXMLVersion -- Fixe la version xml à l'aide d'une chaîne de caractères

Description

void SDO_DAS_XML_Document::setXMLVersion ( string xmlVersion )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Fixe la version xml à l'aide d'une chaîne de caractères.

Liste de paramètres

xmlVersion

Version xml en chaîne de caractères.

Valeurs de retour

Aucune.

Précédent | Sommaire | Suivant
SDO_DAS_XML_Document::setXMLDeclaration | Niveau supérieur | SDO_DAS_XML::addTypes


SDO_DAS_XML::loadFile

(no version information, might be only in CVS)

SDO_DAS_XML::loadFile -- Retourne un objet SDO_DAS_XML_Document pour un chemin donné d'une instance de document xml

Description

SDO_XMLDocument SDO_DAS_XML::loadFile ( string xml_file )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Construit un arbre de SDO_DataObjects à partir de l'adresse donnée d'une instance de document xml. Retourne un Objet SDO_DAS_XML_Document. Utilisez la méthode SDO_DAS_XML_Document::getRootDataObject pour récupérer l'objet de données racine.

Liste de paramètres

xml_file

Chemin du document d'instance. Cela peut être un chemin à un fichier local ou à une adresse URL.

Valeurs de retour

Retourne un objet SDO_DAS_XML_Document en cas de réussite ou émet une exception comme définie ci-dessous.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.

SDO_PropertyNotFoundException

Émis si une propriété dans un type n'est pas défini dans le modèle sous-jacent.

SDO_DAS_XML_ParserException

Émis pour n'importe quels problèmes lors de l'analyse du fichier XSD donné.

SDO_DAS_XML_FileException

Émis si le fichier spécifié ne peut être trouvé.

Précédent | Sommaire | Suivant
SDO_DAS_XML::createDocument | Niveau supérieur | SDO_DAS_XML::loadString


SDO_DAS_XML::loadString

(no version information, might be only in CVS)

SDO_DAS_XML::loadString -- Retourne un SDO_DAS_XML_Document pour une chaîne de caractères d'instance xml donnée

Description

SDO_DAS_XML_Document SDO_DAS_XML::loadString ( string xml_string )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Construit un arbre de SDO_DataObjects à partir d'une chaîne de caractères d'instance xml donnée. Retourne un Objet SDO_DAS_XML_Document. Utilisez la méthode SDO_DAS_XML_Document::getRootDataObject pour récupérer l'objet de données racine.

Liste de paramètres

xml_string

Chaînes de caractères xml.

Valeurs de retour

Retourne un objet SDO_DAS_XML_Document en cas de réussite ou émet une exception comme définie ci-dessous.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si un type n'est pas défini dans le modèle sous-jacent.

SDO_PropertyNotFoundException

Émis si une propriété dans un type n'est pas défini dans le modèle sous-jacent.

SDO_DAS_XML_ParserException

Émis pour n'importe quels problèmes lors de l'analyse du fichier XSD donné.

Précédent | Sommaire | Suivant
SDO_DAS_XML::loadFile | Niveau supérieur | SDO_DAS_XML::saveFile


SDO_DAS_XML::saveFile

(no version information, might be only in CVS)

SDO_DAS_XML::saveFile -- Sauvegarde l'objet SDO_DAS_XML_Document vers un fichier

Description

void SDO_DAS_XML::saveFile ( SDO_XMLDocument xdoc, string xml_file [, int indent] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sauvegarde l'objet SDO_DAS_XML_Document vers un fichier.

Liste de paramètres

xdoc

Objet SDO_DAS_XML_Document.

xml_file

Fichier xml.

indent

Argument optionnel pour spécifier si le fichier xml devrait être formaté. Un entier non négatif est le montant d'indentation de chaque niveau du xml. Alors, un entier 2 par exemple, indentera le xml de manière à ce que chaque élément contenu soit de deux espaces plus loin vers la droite que l'élément parent. L'entier 0 causera le fichier xml à être complètement aligné sur la gauche. Un entier -1 signifie aucun formatage - le fichier xml sera sur une longue ligne.

Valeurs de retour

Aucun.

Erreurs / Exceptions

SDO_DAS_XML_FileException

Émis si le fichier spécifié ne peut être trouvé.

Précédent | Sommaire | Suivant
SDO_DAS_XML::loadString | Niveau supérieur | SDO_DAS_XML::saveString


SDO_DAS_XML::saveString

(no version information, might be only in CVS)

SDO_DAS_XML::saveString -- Sauvegarde l'objet SDO_DAS_XML_Document vers une chaîne de caractères

Description

string SDO_DAS_XML::saveString ( SDO_XMLDocument xdoc [, int indent] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Sauvegarde l'objet SDO_DAS_XML_Document vers une chaîne de caractères

Liste de paramètres

xdoc

Objet SDO_DAS_XML_Document.

indent

Argument optionnel pour spécifier si le fichier xml devrait être formaté. Un entier non négatif est le montant d'indentation de chaque niveau du xml. Alors, un entier 2 par exemple, indentera le xml de manière à ce que chaque élément contenu soit de deux espaces plus loin vers la droite que l'élément parent. L'entier 0 causera le fichier xml à être complètement aligné sur la gauche. Un entier -1 signifie aucun formatage - le fichier xml sera sur une longue ligne.

Valeurs de retour

Chaîne de caractères xml.

Précédent | Sommaire | Suivant
SDO_DAS_XML::saveFile | Niveau supérieur | Fonctions SDO Relationnel Service d'Accès de Données


SDO_DataFactory::create

(no version information, might be only in CVS)

SDO_DataFactory::create -- Crée un SDO_DataObject

Description

void SDO_DataFactory::create ( string type_namespace_uri, string type_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un nouvel SDO_DataObject donné par l'espace de nom URI et le nom du type de l'objet de données.

Liste de paramètres

type_namespace_uri

L'espace de nom du type.

type_name

Le nom du type.

Valeurs de retour

Retourne le nouvel SDO_DataObject créé.

Erreurs / Exceptions

SDO_TypeNotFoundException

Émis si le namespaceURI et typeName ne correspondent pas à un type connu dans cette classe de données.

Précédent | Sommaire | Suivant
SDO_DAS_Setting::isSet | Niveau supérieur | SDO_DataObject::clear


SDO_DataObject::clear

(no version information, might be only in CVS)

SDO_DataObject::clear -- Détruit les propriétés d'un SDO_DataObject

Description

void SDO_DataObject::clear ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Détruit les propriétés d'un SDO_DataObject. Les propriétés en lecture seule ne sont pas affectées. Les appels successif de isset() pour l'objet de données retournera FALSE.

Liste de paramètres

Aucun.

Valeurs de retour

Aucune valeur retournée.

Précédent | Sommaire | Suivant
SDO_DataFactory::create | Niveau supérieur | SDO_DataObject::createDataObject


SDO_DataObject::createDataObject

(no version information, might be only in CVS)

SDO_DataObject::createDataObject -- Crée un enfant SDO_DataObject

Description

SDO_DataObject SDO_DataObject::createDataObject ( mixed identifier )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Crée un enfant SDO_DataObject du type par défaut pour la propriété identifiée. L'objet de données est automatiquement inséré dans l'arbre et une référence l'identifiant est retournée.

Liste de paramètres

identifier

Identifie la propriété pour le type de l'objet de données qui sera créé. Peut être soit un nom (chaîne de caractères), un index (entier) ou un SDO_Model_Property.

Valeurs de retour

Retourne le nouvel SDO_DataObject créé.

Erreurs / Exceptions

SDO_PropertyNotFoundException

Émis si l'identifiant ne correspond pas à une propriété de l'objet de données.

Précédent | Sommaire | Suivant
SDO_DataObject::clear | Niveau supérieur | SDO_DataObject::getContainer


SDO_DataObject::getContainer

(no version information, might be only in CVS)

SDO_DataObject::getContainer -- Récupère un conteneur de l'objet de données

Description

SDO_DataObject SDO_DataObject::getContainer ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un objet de données qui contient cet objet de données.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_DataObject qui contient ce SDO_DataObject ou retourne NULL s'il s'agit de la racine SDO_DataObject (c'est-à-dire qu'il ne possède pas de conteneur).

Précédent | Sommaire | Suivant
SDO_DataObject::createDataObject | Niveau supérieur | SDO_DataObject::getSequence


SDO_DataObject::getSequence

(no version information, might be only in CVS)

SDO_DataObject::getSequence -- Récupère la séquence pour un objet de données

Description

SDO_Sequence SDO_DataObject::getSequence ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le SDO_Sequence pour ce SDO_DataObject. L'accès à SDO_DataObject à travers de l'interface SDO_Sequence agit sur la même instance SDO_DataObject de données, mais préserve l'ordre à travers les propriétés.

Liste de paramètres

Aucun.

Valeurs de retour

Le SDO_Sequence pour ce SDO_DataObject ou retourne NULL si le SDO_DataObject n'est pas un type que peut avoir une séquence.

Précédent | Sommaire | Suivant
SDO_DataObject::getContainer | Niveau supérieur | SDO_DataObject::getTypeName


SDO_DataObject::getTypeName

(no version information, might be only in CVS)

SDO_DataObject::getTypeName -- Retourne le nom du type d'un objet de données

Description

string SDO_DataObject::getTypeName ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le nom du type d'un objet de données. Une méthode plus commode correspondant à SDO_Model_ReflectionDataObject::getType().getName().

Liste de paramètres

Aucun.

Valeurs de retour

Le nom du type d'un objet de données.

Précédent | Sommaire | Suivant
SDO_DataObject::getSequence | Niveau supérieur | SDO_DataObject::getTypeNamespaceURI


SDO_DataObject::getTypeNamespaceURI

(no version information, might be only in CVS)

SDO_DataObject::getTypeNamespaceURI -- Retourne l'espace de nom URI du type d'un objet de données

Description

string SDO_DataObject::getTypeNamespaceURI ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne l'espace de nom URI du type d'un objet de données. Une méthode plus commode correspondant à SDO_Model_ReflectionDataObject::getType().getNamespaceURI().

Liste de paramètres

Aucun.

Valeurs de retour

L'espace de nom URI du type d'un objet de données.

Précédent | Sommaire | Suivant
SDO_DataObject::getTypeName | Niveau supérieur | SDO_Exception::getCause


SDO_Exception::getCause

(no version information, might be only in CVS)

SDO_Exception::getCause -- Récupère la cause d'une exception

Description

mixed SDO_Exception::getCause ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la cause de cette exception ou NULL si la cause est inexistante ou inconnue. Normalement, la cause sera un objet SDO_CPPException, qui peut être utilisé pour obtenir des informations de diagnostique additionnelles.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne la cause de cette exception ou NULL si la cause est inexistante ou inconnue.

Précédent | Sommaire | Suivant
SDO_DataObject::getTypeNamespaceURI | Niveau supérieur | SDO_List::insert


SDO_List::insert

(no version information, might be only in CVS)

SDO_List::insert -- Insère dans une liste

Description

void SDO_List::insert ( mixed value [, int index] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Insère un nouvel évènement à une position spécifiée dans la liste. Tous les items qui suivent dans la liste sont déplacés vers le haut.

Liste de paramètres

value

La nouvelle valeur à être insérée. Cela peut soit être une primitive ou un SDO_DataObject.

index

La position à laquelle insérer le nouvel évènement. Si cet argument n'est pas spécifié alors la nouvelle valeur sera ajoutée à la suite.

Valeurs de retour

Aucun.

Erreurs / Exceptions

SDO_IndexOutOfBoundsException

Émis si l'index de la liste est inférieur à zéro ou supérieur à sa taille.

SDO_InvalidConversionException

Émis si le type de la nouvelle valeur ne correspond pas avec le type de la liste (par exemple, le type de propriété de valeurs multiples que la liste représente).

Précédent | Sommaire | Suivant
SDO_Exception::getCause | Niveau supérieur | SDO_Model_Property::getContainingType


SDO_Model_Property::getContainingType

(no version information, might be only in CVS)

SDO_Model_Property::getContainingType -- Récupère le SDO_Model_Type qui contient cette propriété

Description

SDO_Model_Type SDO_Model_Property::getContainingType ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le SDO_Model_Type qui contient cette propriété.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Type qui contient cette propriété.

Précédent | Sommaire | Suivant
SDO_List::insert | Niveau supérieur | SDO_Model_Property::getDefault


SDO_Model_Property::getDefault

(no version information, might be only in CVS)

SDO_Model_Property::getDefault -- Récupère la valeur par défaut pour la propriété

Description

mixed SDO_Model_Property::getDefault ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère la valeur par défaut pour la propriété. Seules les propriétés de type de données primitives peuvent être des valeurs par défaut.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne la valeur par défaut pour la propriété.

Précédent | Sommaire | Suivant
SDO_Model_Property::getContainingType | Niveau supérieur | SDO_Model_Property::getName


SDO_Model_Property::getName

(no version information, might be only in CVS)

SDO_Model_Property::getName -- Récupère le nom de SDO_Model_Property

Description

string SDO_Model_Property::getName ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le nom de SDO_Model_Property.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le nom de SDO_Model_Property.

Précédent | Sommaire | Suivant
SDO_Model_Property::getDefault | Niveau supérieur | SDO_Model_Property::getType


SDO_Model_Property::getType

(no version information, might be only in CVS)

SDO_Model_Property::getType -- Récupère le SDO_Model_Type de la propriété

Description

SDO_Model_Type SDO_Model_Property::getType ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le SDO_Model_Type de la propriété. Le SDO_Model_Type décrit les informations de type pour la propriété, comme le nom du type, l'espace de nom URI, si c'est un type de données primitive, et ainsi de suite.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Type décrit par les informations de type de la propriété.

Précédent | Sommaire | Suivant
SDO_Model_Property::getName | Niveau supérieur | SDO_Model_Property::isContainment


SDO_Model_Property::isContainment

(no version information, might be only in CVS)

SDO_Model_Property::isContainment -- Vérifie pour voir si la propriété définit une relation contenue

Description

bool SDO_Model_Property::isContainment ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si la propriété définit une relation contenue. Retourne TRUE si la propriété définit une relation contenue ou FALSE s'il s'agit d'une référence.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si la propriété définit une relation contenue ou FALSE s'il s'agit d'une référence.

Précédent | Sommaire | Suivant
SDO_Model_Property::getType | Niveau supérieur | SDO_Model_Property::isMany


SDO_Model_Property::isMany

(no version information, might be only in CVS)

SDO_Model_Property::isMany -- Vérifie pour voir si la propriété est de valeurs multiples

Description

bool SDO_Model_Property::isMany ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si la propriété est de valeurs multiples. Retourne TRUE pour voir si la propriété est de valeurs multiples autrement, elle retourne FALSE.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE pour voir si la propriété est de valeurs multiples autrement, elle retourne FALSE.

Précédent | Sommaire | Suivant
SDO_Model_Property::isContainment | Niveau supérieur | SDO_Model_ReflectionDataObject::__construct


SDO_Model_ReflectionDataObject::__construct

(no version information, might be only in CVS)

SDO_Model_ReflectionDataObject::__construct -- Construit un SDO_Model_ReflectionDataObject

Description

SDO_Model_ReflectionDataObject SDO_Model_ReflectionDataObject::__construct ( SDO_DataObject data_object )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Construit un SDO_Model_ReflectionDataObject pour effectuer une réflexion sur un SDO_DataObject. La réflexion sur un objet SDO_DataObject donne accès à des informations à propos de son modèle. Le modèle contient des informations comme le type d'objet de données et si le type de données est en séquence (garde l'ordre des propriétés) ou ouvert (chaque instance peut avoir son modèle étendu). Le modèle contient aussi des informations sur les propriétés de l'objet de données, des valeurs par défaut qu'il peut avoir, et ainsi de suite.

Liste de paramètres

data_object

Le SDO_DataObject sur lequel on effectuera la réflexion.

Valeurs de retour

Aucun.

Précédent | Sommaire | Suivant
SDO_Model_Property::isMany | Niveau supérieur | SDO_Model_ReflectionDataObject::export


SDO_Model_ReflectionDataObject::export

(no version information, might be only in CVS)

SDO_Model_ReflectionDataObject::export -- Récupère une chaîne de caractères décrivant le SDO_DataObject.

Description

mixed SDO_Model_ReflectionDataObject::export ( SDO_Model_ReflectionDataObject rdo [, bool return] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère une chaîne de caractères décrivant le SDO_DataObject. Le comportement par défaut est d'afficher le résultat, mais si TRUE est spécifié pour return, elle est retourné en tant que chaîne de caractères.

Liste de paramètres

rdo

Un SDO_Model_ReflectionDataObject.

return

Si TRUE, retourne le résultat en tant que chaîne de caractères, autrement l'affiche.

Valeurs de retour

Retourne le résultat si TRUE est spécifié pour return, autrement NULL.

Précédent | Sommaire | Suivant
SDO_Model_ReflectionDataObject::__construct | Niveau supérieur | SDO_Model_ReflectionDataObject::getContainmentProperty


SDO_Model_ReflectionDataObject::getContainmentProperty

(no version information, might be only in CVS)

SDO_Model_ReflectionDataObject::getContainmentProperty -- Récupère la propriété qui définit la relation contenue de l'objet de données

Description

SDO_Model_Property SDO_Model_ReflectionDataObject::getContainmentProperty ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le SDO_Model_Property que contient le SDO_DataObject. Cette méthode est utilisée pour naviguer à travers la propriété du parent qui contient l'objet de données qui a été réfléchi.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Property du conteneur qui référence le SDO_DataObject ou NULL s'il s'agit de la racine SDO_DataObject.

Précédent | Sommaire | Suivant
SDO_Model_ReflectionDataObject::export | Niveau supérieur | SDO_Model_ReflectionDataObject::getInstanceProperties


SDO_Model_ReflectionDataObject::getInstanceProperties

(no version information, might be only in CVS)

SDO_Model_ReflectionDataObject::getInstanceProperties -- Récupère les propriétés de l'instance de SDO_DataObject

Description

array SDO_Model_ReflectionDataObject::getInstanceProperties ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère les propriétés de l'instance pour SDO_DataObject. Les propriétés de l'instance consistent en toutes les propriétés définies dans le type de l'objet de données et n'importe quelle propriété d'instance d'un contenu ouvert (si l'objet de données est un type ouvert).

Liste de paramètres

Aucun.

Valeurs de retour

Un tableau d'objets SDO_Model_Property.

Précédent | Sommaire | Suivant
SDO_Model_ReflectionDataObject::getContainmentProperty | Niveau supérieur | SDO_Model_ReflectionDataObject::getType


SDO_Model_ReflectionDataObject::getType

(no version information, might be only in CVS)

SDO_Model_ReflectionDataObject::getType -- Récupère le SDO_Model_Type pour SDO_DataObject

Description

SDO_Model_Type SDO_Model_ReflectionDataObject::getType ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le SDO_Model_Type pour SDO_DataObject. Le SDO_Model_Type contient toutes les informations à propos du type de l'objet de données, comme l'espace de nom URI, le nom du type, si le type de données est une primitive, et ainsi de suite.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Type pour SDO_DataObject.

Précédent | Sommaire | Suivant
SDO_Model_ReflectionDataObject::getInstanceProperties | Niveau supérieur | SDO_Model_Type::getBaseType


SDO_Model_Type::getBaseType

(no version information, might be only in CVS)

SDO_Model_Type::getBaseType -- Récupère le type de base pour le type

Description

SDO_Model_Type SDO_Model_Type::getBaseType ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère le type de base pour le type. Retourne le SDO_Model_Type pour le type de base si ce type hérite d'un autre, autrement elle retourne NULL. Un exemple indiquant quand des types de base se produisent est lorsqu'un type défini dans un schéma XML hérite d'un autre en utilisant <extension base="..."> .

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le SDO_Model_Type pour le type de base si le type hérite d'un autre, autrement elle retourne NULL.

Précédent | Sommaire | Suivant
SDO_Model_ReflectionDataObject::getType | Niveau supérieur | SDO_Model_Type::getName


SDO_Model_Type::getName

(no version information, might be only in CVS)

SDO_Model_Type::getName -- Récupère le nom du type

Description

string SDO_Model_Type::getName ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne le nom du type. La combinaison du nom du type et de l'espace de nom URI est utilisée pour identifier de manière unique le type.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne le nom du type.

Précédent | Sommaire | Suivant
SDO_Model_Type::getBaseType | Niveau supérieur | SDO_Model_Type::getNamespaceURI


SDO_Model_Type::getNamespaceURI

(no version information, might be only in CVS)

SDO_Model_Type::getNamespaceURI -- Récupère l'espace de nom URI pour le type

Description

string SDO_Model_Type::getNamespaceURI ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne l'espace de nom pour le type. La combinaison de l'espace de nom URI et le nom du type est utilisée pour identifier de manière unique le type.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne l'espace de nom URI du type.

Précédent | Sommaire | Suivant
SDO_Model_Type::getName | Niveau supérieur | SDO_Model_Type::getProperties


SDO_Model_Type::getProperties

(no version information, might be only in CVS)

SDO_Model_Type::getProperties -- Récupère les objets SDO_Model_Property définis pour le type

Description

array SDO_Model_Type::getProperties ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un tableau des objets SDO_Model_Property décrivant les propriétés définies pour le SDO_Model_Type. Chaque SDO_Model_Property contient des informations comme le nom de la propriété, la valeur par défaut, et ainsi de suite.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne un tableau d'objets SDO_Model_Property.

Précédent | Sommaire | Suivant
SDO_Model_Type::getNamespaceURI | Niveau supérieur | SDO_Model_Type::getProperty


SDO_Model_Type::getProperty

(no version information, might be only in CVS)

SDO_Model_Type::getProperty -- Récupère un SDO_Model_Property du type

Description

SDO_Model_Property SDO_Model_Type::getProperty ( mixed identifier )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Récupère un SDO_Model_Property du type, identifié par son index ou son nom.

Liste de paramètres

identifier

L'index ou un nom.

Valeurs de retour

Retourne le SDO_Model_Property.

Précédent | Sommaire | Suivant
SDO_Model_Type::getProperties | Niveau supérieur | SDO_Model_Type::isAbstractType


SDO_Model_Type::isAbstractType

(no version information, might be only in CVS)

SDO_Model_Type::isAbstractType -- Vérifie pour voir si ce SDO_Model_Type est un objet de type abstrait

Description

bool SDO_Model_Type::isAbstractType ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si ce SDO_Model_Type est un objet de type abstrait. Retourne TRUE si le type est abstrait, ce qui signifie, qu'aucun SDO_DataObjet de ce type peut être instancié, par contre, d'autres types peuvent hériter de celui-ci.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si le type est un type abstrait, autrement retourne FALSE.

Précédent | Sommaire | Suivant
SDO_Model_Type::getProperty | Niveau supérieur | SDO_Model_Type::isDataType


SDO_Model_Type::isDataType

(no version information, might be only in CVS)

SDO_Model_Type::isDataType -- Vérifie pour voir si le SDO_Model_Type est un type de données primitive

Description

bool SDO_Model_Type::isDataType ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si ce SDO_Model_Type est un type de données primitive. Retourne TRUE si le type est une primitive, autrement retourne FALSE.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si le type de données est une primitive, autrement retourne FALSE.

Précédent | Sommaire | Suivant
SDO_Model_Type::isAbstractType | Niveau supérieur | SDO_Model_Type::isInstance


SDO_Model_Type::isInstance

(no version information, might be only in CVS)

SDO_Model_Type::isInstance -- Vérifie si un SDO_DataObject est une instance de ce SDO_Model_Type

Description

bool SDO_Model_Type::isInstance ( SDO_DataObject data_object )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie si un SDO_DataObject est une instance de ce SDO_Model_Type. Retourne TRUE si le SDO_DataObject fourni est une instance de ce SDO_Model_Type ou un type déviré, autrement retourne FALSE.

Liste de paramètres

data_object

Le SDO_DataObject à être testé.

Valeurs de retour

Retourne TRUE si le SDO_DataObject fourni est une instance de ce SDO_Model_Type ou un type dérivé, autrement retourne FALSE.

Précédent | Sommaire | Suivant
SDO_Model_Type::isDataType | Niveau supérieur | SDO_Model_Type::isOpenType


SDO_Model_Type::isOpenType

(no version information, might be only in CVS)

SDO_Model_Type::isOpenType -- Vérifie pour voir si le type est un type ouvert

Description

bool SDO_Model_Type::isOpenType ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si le type est un type ouvert. Retourne TRUE si le type est ouvert, autrement retourne FALSE. Un SDO_DataObject dont le type est ouvert peut avoir des propriétés ajoutées qui ne sont pas décrites par ce type. Cette capacité est utilisée pour supporter le travail avec les documents XML dont le schéma supporte les contenus ouvert, comme définis par l'élément <xsd:any> .

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si le type est ouvert, autrement retourne FALSE.

Précédent | Sommaire | Suivant
SDO_Model_Type::isInstance | Niveau supérieur | SDO_Model_Type::isSequencedType


SDO_Model_Type::isSequencedType

(no version information, might be only in CVS)

SDO_Model_Type::isSequencedType -- Vérifie pour voir si le type est une séquence

Description

bool SDO_Model_Type::isSequencedType ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Vérifie pour voir si le type est une séquence. Retourne TRUE si le type est une séquence, autrement retourne FALSE. Les types de séquence peuvent avoir des propriétés dont l'ordre est préservé et peut contenir du texte non structuré. Pour plus d'informations sur les types de séquence, voyez la section sur Travailler avec des Objets de Données Séquencés.

Liste de paramètres

Aucun.

Valeurs de retour

Retourne TRUE si le type est une séquence, autrement retourne FALSE.

Précédent | Sommaire | Suivant
SDO_Model_Type::isOpenType | Niveau supérieur | SDO_Sequence::getProperty


SDO_Sequence::getProperty

(no version information, might be only in CVS)

SDO_Sequence::getProperty -- Retourne la propriété pour l'index de séquence spécifié

Description

SDO_Model_Property SDO_Sequence::getProperty ( int sequence_index )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Retourne la propriété pour l'index de séquence spécifié

Liste de paramètres

sequence_index

La position de l'élément dans la séquence.

Valeurs de retour

Un SDO_Model_Property. Une valeur de retour NULL signifie que l'élément de séquence n'appartient pas à une propriété et doit donc être un texte non structuré.

Erreurs / Exceptions

SDO_IndexOutOfBoundsException

Émis si l'index de séquence est inférieur à zéro ou supérieur à la taille de la séquence.

Précédent | Sommaire | Suivant
SDO_Model_Type::isSequencedType | Niveau supérieur | SDO_Sequence::insert


SDO_Sequence::insert

(no version information, might be only in CVS)

SDO_Sequence::insert -- Ajoute dans une séquence

Description

void SDO_Sequence::insert ( mixed value [, int sequenceIndex [, mixed propertyIdentifier]] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Insère un nouvel élément à une position spécifiée dans la séquence. Tous les items de la séquence suivant sont déplacés vers le haut.

Liste de paramètres

value

La nouvelle valeur à être insérée. Cela peut être soit une primitive soit un SDO_DataObject.

sequenceIndex

La position à laquelle il faut insérer le nouvel élément. La valeur par défaut est NULL, ainsi la nouvelle valeur sera ajoutée à la suite de la séquence.

propertyIdentifier

Soit une propriété index, name ou un SDO_Model_Property, utilisé pour identifier une propriété dans la séquence correspondant à SDO_DataObject. Une valeur de NULL signifie un texte non structuré.

Valeurs de retour

Aucune.

Erreurs / Exceptions

SDO_IndexOutOfBoundsException

Émis si l'index de la séquence est inférieur à zéro ou supérieur à la taille de la séquence.

SDO_InvalidConversionException

Émis si le type de la nouvelle valeur ne correspond pas avec le type pour la propriété de l'objet de données spécifié.

Précédent | Sommaire | Suivant
SDO_Sequence::getProperty | Niveau supérieur | SDO_Sequence::move


SDO_Sequence::move

(no version information, might be only in CVS)

SDO_Sequence::move -- Déplace un item à une autre position de la séquence

Description

void SDO_Sequence::move ( int toIndex, int fromIndex )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Modifie la position d'un item dans la séquence, sans altérer la valeur de la propriété dans le SDO_DataObject.

Liste de paramètres

toIndex

L'index de destination de la séquence. Si l'index est inférieur à zéro ou supérieur à la taille de la séquence, la valeur est ajoutée à celle-ci.

fromIndex

L'index source de la séquence.

Valeurs de retour

Aucune.

Erreurs / Exceptions

SDO_IndexOutOfBoundsException

Émis si l'index de la séquence fromIndex est inférieur à zéro ou supérieur à la taille de la séquence.

Précédent | Sommaire | Suivant
SDO_Sequence::insert | Niveau supérieur | Fonctions de Service d'Accès de Données SDO XML


session_pgsql_add_error

(PECL)

session_pgsql_add_error -- Incrémente le nombre d'erreurs et fixe le dernier message d'erreur

Description

bool session_pgsql_add_error ( int error_level [, string error_message] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

error_level

error_message

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

session_pgsql_get_error()

Précédent | Sommaire | Suivant
Sauvegarde d'Identifiant de session PostgreSQL | Niveau supérieur | session_pgsql_get_error


session_pgsql_get_error

(PECL)

session_pgsql_get_error -- Retourne le nombre d'erreurs et le dernier message d'erreur

Description

array session_pgsql_get_error ( [bool with_error_message] )

Récupère le nombre d'erreurs et optionnellement les messages d'erreurs.

Liste de paramètres

with_error_message

Fixé à TRUE le message d'erreur literal pour chaque erreur est aussi retourné.

Valeurs de retour

Le nombre d'erreurs est retourné comme array.

Voir aussi

session_pgsql_add_error()

Précédent | Sommaire | Suivant
session_pgsql_add_error | Niveau supérieur | session_pgsql_get_field


session_pgsql_get_field

(PECL)

session_pgsql_get_field -- Récupère la valeur de champ spécial

Description

string session_pgsql_get_field ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

session_pgsql_set_field()

Précédent | Sommaire | Suivant
session_pgsql_get_error | Niveau supérieur | session_pgsql_reset


session_pgsql_reset

(PECL)

session_pgsql_reset -- Remet la connexion à la session des serveurs de base de données

Description

bool session_pgsql_reset ( void )

Remet la connexion à la session des serveurs de base de données.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
session_pgsql_get_field | Niveau supérieur | session_pgsql_set_field


session_pgsql_set_field

(PECL)

session_pgsql_set_field -- Fixe la valeur d'un champ spécial

Description

bool session_pgsql_set_field ( string value )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

value

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

session_pgsql_get_field()

Précédent | Sommaire | Suivant
session_pgsql_reset | Niveau supérieur | session_pgsql_status


session_pgsql_status

(PECL)

session_pgsql_status -- Récupère le statut de l'identifiant de sauvegarde courant

Description

array session_pgsql_status ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
session_pgsql_set_field | Niveau supérieur | Sessions


SimpleXMLElement->addAttribute()

(no version information, might be only in CVS)

SimpleXMLElement->addAttribute() -- Ajoute un attribut à l'élément SimpleXML

Description

class SimpleXMLElement {

void addAttribute ( string name, string value [, string namespace] )

}

Ajoute un attribut à l'élément SimpleXML.

Liste de paramètres

name

Le nom de l'attribut à ajouter.

value

La valeur de l'attribut.

namespace

Si spécifié, l'espace de nom auquel l'attribut appartient.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

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

?>

Voir aussi

SimpleXMLElement->addChild()

Précédent | Sommaire | Suivant
Fonctions SimpleXML | Niveau supérieur | SimpleXMLElement->addChild()


SimpleXMLElement->addChild()

(no version information, might be only in CVS)

SimpleXMLElement->addChild() -- Ajoute un élément enfant au noeud XML

Description

class SimpleXMLElement {

SimpleXMLElement addChild ( string name [, string value [, string namespace]] )

}

Ajoute un élément enfant au noeud et retourne un SimpleXMLElement de l'enfant.

Liste de paramètres

name

Le nom de l'élément enfant à ajouter.

value

Si spécifié, la valeur de l'élément enfant.

namespace

Si spécifié, l'espace de nom auquel l'élément enfant appartient.

Valeurs de retour

La méthode addChild retourne un objet SimpleXMLElement représentant l'enfant à ajouter au noeud XML.

Exemples

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

?>

Voir aussi

SimpleXMLElement->addAttribute()

Précédent | Sommaire | Suivant
SimpleXMLElement->addAttribute() | Niveau supérieur | SimpleXMLElement->asXML()


SimpleXMLElement->__construct()

(no version information, might be only in CVS)

SimpleXMLElement->__construct() -- Crée un nouvel objet SimpleXMLElement

Description

class SimpleXMLElement {

__construct ( string data [, int options [, bool data_is_url [, string ns [, bool is_prefix]]]] )

}

Crée un nouvel objet SimpleXMLElement

Liste de paramètres

data

Une chaîne de caractères XML bien formée ou le chemin d'accès ou un URL pointant à un document XML si data_is_url vaut TRUE.

options

Optionnellement utilisé pour spécifier des paramètres Libxml additionnels.

data_is_url

Par défaut, data_is_url vaut FALSE. Utilisez TRUE pour spécifier que le paramètres data est un chemin d'accès ou un URL pointant à un document XML au lieu d'une chaîne de caractères de données.

ns

is_prefix

Valeurs de retour

Retourne un objet SimpleXMLElement représentant les données data.

Erreurs / Exceptions

Produit un message d'erreur de type E_WARNING pour chaque erreur trouvée dans les données XML et lance une exception si des erreurs sont détectées.

Exemples

Exemple 1. Crée un objet SimpleXMLElement

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
echo $sxe->movie[0]->title;

?>

Exemple 2. Crée un objet SimpleXMLElement à partir d'un URL

<?php

$sxe = new SimpleXMLElement('http://example.org/document.xml', NULL, TRUE);
echo $sxe->asXML();

?>

Voir aussi

simplexml_load_string
simplexml_load_file

Précédent | Sommaire | Suivant
SimpleXMLElement->children() | Niveau supérieur | SimpleXMLElement->getDocNamespaces()


SimpleXMLElement->getDocNamespaces()

(no version information, might be only in CVS)

SimpleXMLElement->getDocNamespaces() -- Retourne les espaces de noms déclarés dans un document

Description

class SimpleXMLElement {

array getDocNamespaces ( [bool recursive] )

}

Retourne les espaces de noms déclarés dans un document.

Liste de paramètres

recursive

Si spécifié, retourne tous les espaces de noms déclarés dans les noeuds parents et enfants. Sinon, retourne uniquement les espaces de noms déclarés dans le noeud racine.

Valeurs de retour

La méthode getDocNamespaces retourne un tableau d'espaces de noms avec leurs URLs 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);

?>

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

?>

Voir aussi

SimpleXMLElement->getNamespaces()
SimpleXMLElement->registerXPathNamespace()

Précédent | Sommaire | Suivant
SimpleXMLElement->__construct() | Niveau supérieur | SimpleXMLElement->getName()


SimpleXMLElement->getName()

(no version information, might be only in CVS)

SimpleXMLElement->getName() -- Récupère le nom d'un élément XML

Description

class SimpleXMLElement {

string getName ( void )

}

Récupère le nom d'un élément XML.

Valeurs de retour

La méthode getName retourne un nom sous la forme de chaîne de caractères d'une balise XML référencé par l'objet SimpleXMLElement.

Exemples

Exemple 1. Récupère les noms des éléments XML

<?php

$sxe = new SimpleXMLElement($xmlstr);

echo $sxe->getName() . "\n";

foreach ($sxe->children() as $child)
{
    echo $child->getName() . "\n";
}

?>

Précédent | Sommaire | Suivant
SimpleXMLElement->getDocNamespaces() | Niveau supérieur | SimpleXMLElement->getNamespaces()


SimpleXMLElement->getNamespaces()

(no version information, might be only in CVS)

SimpleXMLElement->getNamespaces() -- Retourne les espaces de noms utilisés dans un document

Description

class SimpleXMLElement {

array getNamespaces ( [bool recursive] )

}

Retourne les espaces de noms utilisés dans un document.

Liste de paramètres

recursive

Si spécifié, retourne tous les espaces de noms utilisés dans les noeuds parents et enfants. Sinon, retourne uniquement les espaces de noms utilisés dans le noeud racine.

Valeurs de retour

La méthode getNamespaces retourne un tableau d'espaces de noms avec leurs URLs 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()
SimpleXMLElement->registerXPathNamespace()

Précédent | Sommaire | Suivant
SimpleXMLElement->getName() | Niveau supérieur | SimpleXMLElement->registerXPathNamespace()


SimpleXMLElement->registerXPathNamespace()

(no version information, might be only in CVS)

SimpleXMLElement->registerXPathNamespace() -- Crée un contexte préfixe/ns pour la prochaine requête XPath

Description

class SimpleXMLElement {

bool registerXPathNamespace ( string prefix, string ns )

}

Crée un contexte préfixe/ns pour la prochaine requête XPath. En particulier, ceci est utile si le fournisseur du document XML donné modifie les préfixes d'espace de nom. registerXPathNamespace créera un préfixe pour l'espace de nom associé, autorisant l'accès aux noeuds dans cet espace de nom sans avoir besoin de changer le code pour autoriser les nouveaux préfixes dictés par le fournisseur.

Liste de paramètres

prefix

Le préfixe d'espace de nom à utiliser dans la requête XPath pour l'espace de nom donnée dans ns.

ns

L'espace de nom à utiliser pour la requête XPath. Ceci doit concorder avec un espace de nom qui est utilisé par le document XML, sinon la requête XPath qui utilise prefix ne retournera aucun résultat.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

?>

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->getDocNamespaces()
SimpleXMLElement->getNamespaces()

Précédent | Sommaire | Suivant
SimpleXMLElement->getNamespaces() | Niveau supérieur | SimpleXMLElement->xpath()


snmp_set_oid_output_format

(no version information, might be only in CVS)

snmp_set_oid_output_format -- Définit le format de sortie OID

Description

void snmp_set_oid_output_format ( int oid_format )

snmp_set_oid_output_format() définit le format de sortie afin qu'il soit complet ou numérique.

Liste de paramètres

oid_format

Définissez ce paramètre à SNMP_OID_OUTPUT_FULL si vous voulez un affichage complet, à SNMP_OID_OUTPUT_NUMERIC sinon.

Valeurs de retour

Aucune valeur n'est retournée.

Notes

Note : snmp_set_oid_output_format() n'est disponible que lors de l'utilisation de la bilibothèque UCD SNMP. Cette fonction n'est pas disponible lors de l'utilisation de la bibliothèque SNMP de Windows.

Précédent | Sommaire | Suivant
snmp_set_oid_numeric_print | Niveau supérieur | snmp_set_quick_print


spl_autoload

(PHP 5 >= 5.1.0RC1)

spl_autoload -- Implémentation par défaut d'__autoload()

Description

void spl_autoload ( string class_name [, string file_extensions] )

Cette fonction est prévue pour être utilisée en tant qu'implémentation par défaut pour __autoload(). Si rien d'autre n'est spécifié et qu'autoload_register() est appelé sans argument, alors cette fonction sera utilisée pour tous les appels futurs à __autoload().

Précédent | Sommaire | Suivant
spl_autoload_unregister | Niveau supérieur | spl_classes


spl_autoload_call

(PHP 5 >= 5.1.0RC1)

spl_autoload_call -- Essai toutes les fonctions __autoload() enregistrées pour charger la classe demandée

Description

void spl_autoload_call ( string class_name )

Cette fonction peut être utilisée pour rechercher manuellement une classe ou une interface en utilisant les fonctions enregistrées __autoload.

Précédent | Sommaire | Suivant
iterator_to_array | Niveau supérieur | spl_autoload_extensions


spl_autoload_extensions

(PHP 5 >= 5.1.0RC1)

spl_autoload_extensions -- Enregistre et retourne l'extension du fichier par défaut pour spl_autoload

Description

string spl_autoload_extensions ( [string file_extensions] )

Cette fonction permet de modifier et de vérifier l'extension des fichiers utilisée en interne pour __autoload par spl_autoload. Lors d'un appel sans argument, cette fonction retourne simplement le liste courante des extensions, séparées par une virgule. Pour modifier la liste des extensions de fichiers, appelez simplement cette fonction avec la nouvelle liste des extensions de fichiers à utiliser sous la forme d'une chaîne dont chaque extension est séparée par une virgule.

Précédent | Sommaire | Suivant
spl_autoload_call | Niveau supérieur | spl_autoload_functions


spl_autoload_functions

(PHP 5 >= 5.1.0RC1)

spl_autoload_functions -- Retourne toutes les fonctions __autoload() enregistrées

Description

array spl_autoload_functions ( void )

Cette fonction retourne un tableau de toutes les fonctions __autoload enregistrées. Si la pile autoload n'est pas activée, alors la valeur retournée sera FALSE. Si aucune fonction n'est enregistrée, la valeur retournée sera un tableau vide.

Précédent | Sommaire | Suivant
spl_autoload_extensions | Niveau supérieur | spl_autoload_register


spl_autoload_register

(PHP 5 >= 5.1.0RC1)

spl_autoload_register -- Enregistre une fonction donnée en tant qu'__autoload()

Description

bool spl_autoload_register ( [mixed autoload_function] )

Enregistre une fonction dans la pile __autoload fournie. Si la pile n'est pas encore active, elle le deviendra. Si aucun paramètre n'est fourni, l'implémentation par défaut spl_autoload sera enregistrée. Lorsque l'enregistrement réussit, la valeur retournée est TRUE, sinon FALSE.

Si votre code a une fonction __autoload existante, alors cette fonction doit explicitement enregistrer la pile __autoload. Ceci est du au fait que spl_autoload_register() remplace le coche du moteur pour la fonction __autoload par soit spl_autoload(), soit spl_autoload_call().

Précédent | Sommaire | Suivant
spl_autoload_functions | Niveau supérieur | spl_autoload_unregister


spl_autoload_unregister

(PHP 5 >= 5.1.0RC1)

spl_autoload_unregister -- Efface d'une fonction donnée de l'implémentation __autoload()

Description

bool spl_autoload_unregister ( mixed autoload_function )

Efface une fonction de la pile __autoload fourni par spl. Si la pile est active et vide après l'effacement de la fonction donnée, alors elle sera désactivée. Lorsque l'effacement réussit, TRUE est retourné, sinon FALSE.

Lorsque cette fonction active une pile autoload, une fonction __autoload existante ne sera pas réactivée.

Précédent | Sommaire | Suivant
spl_autoload_register | Niveau supérieur | spl_autoload


spl_object_hash

(PHP 5 >= 5.2.0)

spl_object_hash -- Retourne l'identifiant de hashage pour un objet donné

Description

string spl_object_hash ( object obj )

Cette fonction retourne un identifiant unique pour l'objet. Cet identifiant peut être utilisé comme clé de hashage pour stocker les objets ou pour les identifier.

Liste de paramètres

class

N'importe quel objet.

Valeurs de retour

Retourne une chaîne de caractères qui est unique pour chaque objet et qui est toujours la même pour le même objet.

Exemples

Exemple 1. Exemple avec spl_object_hash()

<?php
$id = spl_object_hash($object);
$storage[$id] = $object;
?>

Précédent | Sommaire | Suivant
spl_classes | Niveau supérieur | Fonctions SQLite


ssh2_publickey_add

(PECL)

ssh2_publickey_add -- Ajoute une clé publique autorisée

Description

bool ssh2_publickey_add ( resource pkey, string algoname, string blob [, bool overwrite [, array attributes]] )

Note : Le publickey subsystem est utilisé pour gérer les clés publiques sur un serveur sur lequel le client est déjà identifié. Pour s'identifier à un system distant en utilisant l'identification par clé publique, utilisez la fonction ssh2_auth_pubkey_file() à la place.

Liste de paramètres

pkey

Ressource Publickey Subsystem créée par ssh2_publickey_init().

algoname

Algorithme de clé publique (exemple) : ssh-dss, ssh-rsa

blob

Blob 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, FALSE en cas d'échec.

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($ssh2, 'ssh-rsa', $keyblob, false, array('comment'=>"John's Key"));
?>

Voir aussi

ssh2_publickey_init()
ssh2_publickey_remove()
ssh2_publickey_list()

Précédent | Sommaire | Suivant
ssh2_methods_negotiated | Niveau supérieur | ssh2_publickey_init


ssh2_publickey_init

(PECL)

ssh2_publickey_init -- Initialise un Publickey Subsystem (sous-système de clé publique)

Description

resource ssh2_publickey_init ( resource session )

Demande le subsystem de la clé publique à partir d'un serveur SSH2 déjà connecté.

Le publickey subsystem permet à un client déjà connecté et identifié de gérer la liste des clés publiques autorisées enregistrée sur le serveur cible dans une manière d'implémentation agnostique. Si le serveur ne supporte pas le publickey subsystem, la fonction ssh2_publickey_init() retournera FALSE.

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.

Valeurs de retour

Retourne une ressource SSH2 Publickey Subsystem pour utiliser avec toutes les autres méthodes ssh2_publickey_*().

Voir aussi

ssh2_publickey_add()
ssh2_publickey_remove()
ssh2_publickey_list()

Précédent | Sommaire | Suivant
ssh2_publickey_add | Niveau supérieur | ssh2_publickey_list


ssh2_publickey_list

(PECL)

ssh2_publickey_list -- Liste les clés publiques actuellement autorisées

Description

array ssh2_publickey_list ( resource pkey )

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

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.

Tableau 1. Élément de clé publique

Clé Tableau | Explication
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 "Key: {$key['name']}\n";
  echo "Blob: " . chunk_split(base64_encode($key['blob']), 40, "\n") . "\n";
  echo "Comment: {$key['attrs']['comment']}\n\n";
}
?>

L'exemple ci-dessus va afficher :

Key: ssh-rsa
Blob: AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5P
TrLRdjNONxXH1tVFGn0Bd26BF0aCP9qyJRlvdJ3j
4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xjza
Lpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VE
HYckxQ16CjSTibI5X69GmnYC9PNqEYq/1TP+HF10
Comment: John's Key

Key: ssh-rsa
Blob: AAAAB3NzaHVt6VqSGd5C1yc2EAAAABIwA232dnJA
AIEA5HVt6VqSGd5PTrLRdjNONxX/1TP+HF1HVt6V
qSGd50H1tVFGn0BB3NzaC1yc2EAd26BF0aCP9qyJ
RlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26HVt6Vq
SGd5sDHwfL351xjzaLpipu\BGB3NzaC1yc2EA/1T
Comment: Alice's Key

Voir aussi

ssh2_publickey_init()
ssh2_publickey_add()
ssh2_publickey_remove()

Précédent | Sommaire | Suivant
ssh2_publickey_init | Niveau supérieur | ssh2_publickey_remove


ssh2_publickey_remove

(PECL)

ssh2_publickey_remove -- Supprime un clé publique autorisée

Description

bool ssh2_publickey_remove ( resource pkey, string algoname, string blob )

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

algoname

Algorithme de clé publique (exemple) : ssh-dss, ssh-rsa

blob

Blob clé publique comme données binaires brutes

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

ssh2_publickey_init()
ssh2_publickey_add()
ssh2_publickey_list()

Précédent | Sommaire | Suivant
ssh2_publickey_list | Niveau supérieur | ssh2_scp_recv


stats_absolute_deviation

(PECL)

stats_absolute_deviation -- Retourne l'écart absolu d'un tableau de valeurs

Description

float stats_absolute_deviation ( array a )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
Fonctions statistics | Niveau supérieur | stats_cdf_beta


stats_cdf_beta

(PECL)

stats_cdf_beta -- Fonction CDF pour Distribution BETA. Calcule n'importe quel paramètre de distribution beta des valeurs données pour les autres.

Description

float stats_cdf_beta ( float par1, float par2, float par3, int which )

Method Cumulative distribution function (P) is calculated directly by code associated with the following reference. DiDinato, A. R. and Morris, A. H. Algorithm 708: Significant Digit Computation of the Incomplete Beta Function Ratios. ACM Trans. Math. Softw. 18 (1993), 360-373. Computation of other parameters involve a seach for a value that produces the desired value of P. The search relies on the monotinicity of P with the other parameter. Note The beta density is proportional to t^(A-1) * (1-t)^(B-1) Arguments P -- The integral from 0 to X of the chi-square distribution. Input range: [0, 1]. Q -- 1-P. Input range: [0, 1]. P + Q = 1.0. X -- Upper limit of integration of beta density. Input range: [0,1]. Search range: [0,1] Y -- 1-X. Input range: [0,1]. Search range: [0,1] X + Y = 1.0. A -- The first parameter of the beta density. Input range: (0, +infinity). Search range: [1D-100,1D100] B -- The second parameter of the beta density. Input range: (0, +infinity). Search range: [1D-100,1D100] STATUS -- 0 if calculation completed correctly -I if input parameter number I is out of range 1 if answer appears to be lower than lowest search bound 2 if answer appears to be higher than greatest search bound 3 if P + Q .ne. 1 4 if X + Y .ne. 1 BOUND -- Undefined if STATUS is 0 Bound exceeded by parameter number I if STATUS is negative. Lower search bound if STATUS is 1. Upper search bound if STATUS is 2.

Liste de paramètres

par1

par2

par3

which

Integer indicating which of the next four argument values is to be calculated from the others. Legal range: 1..4 iwhich = 1 : Calculate P and Q from X,Y,A and B iwhich = 2 : Calculate X and Y from P,Q,A and B iwhich = 3 : Calculate A from P,Q,X,Y and B iwhich = 4 : Calculate B from P,Q,X,Y and A

Valeurs de retour

STATUS -- 0 if calculation completed correctly -I if input parameter number I is out of range 1 if answer appears to be lower than lowest search bound 2 if answer appears to be higher than greatest search bound 3 if P + Q .ne. 1 4 if X + Y .ne. 1

Précédent | Sommaire | Suivant
stats_absolute_deviation | Niveau supérieur | stats_cdf_binomial


stats_cdf_binomial

(PECL)

stats_cdf_binomial -- Calcule n'importe quel paramètre de distribution binomiale des valeurs données pour les autres.

Description

float stats_cdf_binomial ( float par1, float par2, float par3, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_beta | Niveau supérieur | stats_cdf_cauchy


stats_cdf_cauchy

(PECL)

stats_cdf_cauchy -- Non documenté

Description

float stats_cdf_cauchy ( float par1, float par2, float par3, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_binomial | Niveau supérieur | stats_cdf_chisquare


stats_cdf_chisquare

(PECL)

stats_cdf_chisquare -- Calcule n'importe quel paramètre de distribution Khi-carré des valeurs données pour les autres.

Description

float stats_cdf_chisquare ( float par1, float par2, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_cauchy | Niveau supérieur | stats_cdf_exponential


stats_cdf_exponential

(PECL)

stats_cdf_exponential -- Non documenté

Description

float stats_cdf_exponential ( float par1, float par2, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_chisquare | Niveau supérieur | stats_cdf_f


stats_cdf_f

(PECL)

stats_cdf_f -- Calcule n'importe quel paramètre de distribution F des valeurs données pour les autres.

Description

float stats_cdf_f ( float par1, float par2, float par3, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_exponential | Niveau supérieur | stats_cdf_gamma


stats_cdf_gamma

(PECL)

stats_cdf_gamma -- Calcule n'importe quel paramètre de distribution gamma des valeurs données pour les autres.

Description

float stats_cdf_gamma ( float par1, float par2, float par3, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_f | Niveau supérieur | stats_cdf_laplace


stats_cdf_laplace

(PECL)

stats_cdf_laplace -- Non documenté

Description

float stats_cdf_laplace ( float par1, float par2, float par3, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_gamma | Niveau supérieur | stats_cdf_logistic


stats_cdf_logistic

(PECL)

stats_cdf_logistic -- Non documenté

Description

float stats_cdf_logistic ( float par1, float par2, float par3, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_laplace | Niveau supérieur | stats_cdf_negative_binomial


stats_cdf_negative_binomial

(PECL)

stats_cdf_negative_binomial -- Calcule n'importe quel paramètre de distribution binomiale négative des valeurs données pour les autres.

Description

float stats_cdf_negative_binomial ( float par1, float par2, float par3, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_logistic | Niveau supérieur | stats_cdf_noncentral_chisquare


stats_cdf_noncentral_chisquare

(PECL)

stats_cdf_noncentral_chisquare -- Calcule n'importe quel paramètre de distribution non centrale Khi-carré des valeurs données pour les autres.

Description

float stats_cdf_noncentral_chisquare ( float par1, float par2, float par3, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_negative_binomial | Niveau supérieur | stats_cdf_noncentral_f


stats_cdf_noncentral_f

(PECL)

stats_cdf_noncentral_f -- Calcule n'importe quel paramètre de distribution non centrale F des valeurs données pour les autres.

Description

float stats_cdf_noncentral_f ( float par1, float par2, float par3, float par4, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_noncentral_chisquare | Niveau supérieur | stats_cdf_poisson


stats_cdf_poisson

(PECL)

stats_cdf_poisson -- Calcule n'importe quel paramètre de distribution de Poission des valeurs données pour les autres.

Description

float stats_cdf_poisson ( float par1, float par2, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_noncentral_f | Niveau supérieur | stats_cdf_t


stats_cdf_t

(PECL)

stats_cdf_t -- Calcule n'importe quel paramètre de distribution T des valeurs données pour les autres.

Description

float stats_cdf_t ( float par1, float par2, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_poisson | Niveau supérieur | stats_cdf_uniform


stats_cdf_uniform

(PECL)

stats_cdf_uniform -- Non documenté

Description

float stats_cdf_uniform ( float par1, float par2, float par3, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_t | Niveau supérieur | stats_cdf_weibull


stats_cdf_weibull

(PECL)

stats_cdf_weibull -- Non documenté

Description

float stats_cdf_weibull ( float par1, float par2, float par3, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_uniform | Niveau supérieur | stats_covariance


stats_covariance

(PECL)

stats_covariance -- Calcule la covariance de deux séries de données

Description

float stats_covariance ( array a, array b )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_cdf_weibull | Niveau supérieur | stats_den_uniform


stats_den_uniform

(no version information, might be only in CVS)

stats_den_uniform -- Non documenté

Description

float stats_den_uniform ( float x, float a, float b )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_covariance | Niveau supérieur | stats_dens_beta


stats_dens_beta

(PECL)

stats_dens_beta -- Non documenté

Description

float stats_dens_beta ( float x, float a, float b )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_den_uniform | Niveau supérieur | stats_dens_cauchy


stats_dens_cauchy

(PECL)

stats_dens_cauchy -- Non documenté

Description

float stats_dens_cauchy ( float x, float ave, float stdev )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_beta | Niveau supérieur | stats_dens_chisquare


stats_dens_chisquare

(PECL)

stats_dens_chisquare -- Non documenté

Description

float stats_dens_chisquare ( float x, float dfr )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_cauchy | Niveau supérieur | stats_dens_exponential


stats_dens_exponential

(PECL)

stats_dens_exponential -- Non documenté

Description

float stats_dens_exponential ( float x, float scale )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_chisquare | Niveau supérieur | stats_dens_f


stats_dens_f

(PECL)

stats_dens_f --

Description

float stats_dens_f ( float x, float dfr1, float dfr2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_exponential | Niveau supérieur | stats_dens_gamma


stats_dens_gamma

(PECL)

stats_dens_gamma -- Non documenté

Description

float stats_dens_gamma ( float x, float shape, float scale )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_f | Niveau supérieur | stats_dens_laplace


stats_dens_laplace

(PECL)

stats_dens_laplace -- Non documenté

Description

float stats_dens_laplace ( float x, float ave, float stdev )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_gamma | Niveau supérieur | stats_dens_logistic


stats_dens_logistic

(PECL)

stats_dens_logistic -- Non documenté

Description

float stats_dens_logistic ( float x, float ave, float stdev )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_laplace | Niveau supérieur | stats_dens_negative_binomial


stats_dens_negative_binomial

(no version information, might be only in CVS)

stats_dens_negative_binomial -- Non documenté

Description

float stats_dens_negative_binomial ( float x, float n, float pi )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_logistic | Niveau supérieur | stats_dens_normal


stats_dens_normal

(PECL)

stats_dens_normal -- Non documenté

Description

float stats_dens_normal ( float x, float ave, float stdev )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_negative_binomial | Niveau supérieur | stats_dens_pmf_binomial


stats_dens_pmf_binomial

(PECL)

stats_dens_pmf_binomial -- Non documenté

Description

float stats_dens_pmf_binomial ( float x, float n, float pi )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_normal | Niveau supérieur | stats_dens_pmf_hypergeometric


stats_dens_pmf_hypergeometric

(PECL)

stats_dens_pmf_hypergeometric --

Description

float stats_dens_pmf_hypergeometric ( float n1, float n2, float N1, float N2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_pmf_binomial | Niveau supérieur | stats_dens_pmf_poisson


stats_dens_pmf_poisson

(PECL)

stats_dens_pmf_poisson -- Non documenté

Description

float stats_dens_pmf_poisson ( float x, float lb )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_pmf_hypergeometric | Niveau supérieur | stats_dens_t


stats_dens_t

(PECL)

stats_dens_t -- Non documenté

Description

float stats_dens_t ( float x, float dfr )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_pmf_poisson | Niveau supérieur | stats_dens_weibull


stats_dens_weibull

(PECL)

stats_dens_weibull -- Non documenté

Description

float stats_dens_weibull ( float x, float a, float b )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_t | Niveau supérieur | stats_harmonic_mean


stats_harmonic_mean

(PECL)

stats_harmonic_mean -- Retourne la moyenne harmonique d'un tableau de valeurs

Description

number stats_harmonic_mean ( array a )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_dens_weibull | Niveau supérieur | stats_kurtosis


stats_kurtosis

(PECL)

stats_kurtosis -- Calcule le coefficient d'aplatissement des données dans un tableau

Description

float stats_kurtosis ( array a )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_harmonic_mean | Niveau supérieur | stats_rand_gen_beta


stats_rand_gen_beta

(PECL)

stats_rand_gen_beta -- Génère l'écart beta aléatoire

Description

float stats_rand_gen_beta ( float a, float b )

Retourne une déviation aléatoire de la distribution beta avec les paramètres A et B. La densité de beta est x^(a-1) * (1-x)^(b-1) / B(a,b) pour 0 < x <. Méthode R. C. H. Cheng.

Précédent | Sommaire | Suivant
stats_kurtosis | Niveau supérieur | stats_rand_gen_chisquare


stats_rand_gen_chisquare

(PECL)

stats_rand_gen_chisquare -- Génère l'écart aléatoire de la distribution Khi-carré avec "df" de degré de liberté de variables aléatoire.

Description

float stats_rand_gen_chisquare ( float df )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_beta | Niveau supérieur | stats_rand_gen_exponential


stats_rand_gen_exponential

(PECL)

stats_rand_gen_exponential -- Génère un écart aléatoire simple à partir d'une distribution exponentielle avec moyenne "av"

Description

float stats_rand_gen_exponential ( float av )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_chisquare | Niveau supérieur | stats_rand_gen_f


stats_rand_gen_f

(PECL)

stats_rand_gen_f -- Génère un écart aléatoire à partir de la distribution F (ratio de variance) avec "dfn" degrés de liberté dans le numérateur et "dfd" degré de liberté dans le dénominateur. Méthode : génère directement le radio des variétés de Khi-carré

Description

float stats_rand_gen_f ( float dfn, float dfd )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_exponential | Niveau supérieur | stats_rand_gen_funiform


stats_rand_gen_funiform

(PECL)

stats_rand_gen_funiform -- Génère une valeur décimale uniforme entre les basse (exclusif) et autre (exclusif)

Description

float stats_rand_gen_funiform ( float low, float high )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_f | Niveau supérieur | stats_rand_gen_gamma


stats_rand_gen_gamma

(PECL)

stats_rand_gen_gamma -- Génère un écart aléatoire d'une distribution gamma

Description

float stats_rand_gen_gamma ( float a, float r )

Génère une déviation aléatoire d'une distribution gamma dont la densité est (A**R)/Gamma(R) * X**(R-1) * Exp(-A*X).

Liste de paramètres

a

Paramètre d'emplacement de la distribution Gamma (a > 0).

r

Paramètre de forme de la distribution Gamma (r > 0).

Précédent | Sommaire | Suivant
stats_rand_gen_funiform | Niveau supérieur | stats_rand_gen_ibinomial_negative


stats_rand_gen_ibinomial

(no version information, might be only in CVS)

stats_rand_gen_ibinomial -- Génère un écart aléatoire simple d'une distribution binomiale à qui le nombre d'essaie est "n" (n >= 0) et à qui la probabilité d'un évènement de chaque essai est "pp" ([0;1]). Méthode : algorithme BTPE

Description

int stats_rand_gen_ibinomial ( int n, float pp )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_ibinomial_negative | Niveau supérieur | stats_rand_gen_int


stats_rand_gen_ibinomial_negative

(no version information, might be only in CVS)

stats_rand_gen_ibinomial_negative -- Génère un écart aléatoire simple de la distribution négative binomiale. Arguments : n - le nombre d'essai dans la distribution négative binomiale dans lequel l'écart aléatoire sera généré (n > 0), p - la probabilité d'un évènement (0 < p < 1)).

Description

int stats_rand_gen_ibinomial_negative ( int n, float p )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_gamma | Niveau supérieur | stats_rand_gen_ibinomial


stats_rand_gen_int

(no version information, might be only in CVS)

stats_rand_gen_int -- Génère un entier aléatoire entre 1 et 2147483562

Description

int stats_rand_gen_int ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_ibinomial | Niveau supérieur | stats_rand_gen_ipoisson


stats_rand_gen_ipoisson

(PECL)

stats_rand_gen_ipoisson -- Génère un écart aléatoire simple à partir de la distribution de Poisson avec la moyenne "mu" (mu >= 0.0).

Description

int stats_rand_gen_ipoisson ( float mu )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_int | Niveau supérieur | stats_rand_gen_iuniform


stats_rand_gen_iuniform

(PECL)

stats_rand_gen_iuniform -- Génère un entier uniformément distribué entre LOW (inclusif) et HIGH (inclusif)

Description

int stats_rand_gen_iuniform ( int low, int high )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_ipoisson | Niveau supérieur | stats_rand_gen_noncenral_chisquare


stats_rand_gen_noncenral_chisquare

(no version information, might be only in CVS)

stats_rand_gen_noncenral_chisquare -- Génère un écart aléatoire à partir de la distribution non centrale de Khi-carré de "df" degrés de liberté et de paramètre non central "nonc". d doit être >= 1.0, xnonc doit être *gt;= 0.0

Description

float stats_rand_gen_noncenral_chisquare ( float df, float xnonc )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_iuniform | Niveau supérieur | stats_rand_gen_noncentral_f


stats_rand_gen_noncentral_f

(no version information, might be only in CVS)

stats_rand_gen_noncentral_f -- Génère l'écart aléatoire à partir de la distribution non centrale de F (ratio variance) avec "dfn" degré de liberté dans le numérateur et "dfd" degré de liberté dans le dénominateur et le paramètre non central "xnonc". Méthode : génère directement le ratio d'une variation Khi-carré non cenrale de nmérateur à la variation Khi-carré centrale de dénominateur.

Description

float stats_rand_gen_noncentral_f ( float dfn, float dfd, float xnonc )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_noncenral_chisquare | Niveau supérieur | stats_rand_gen_noncentral_t


stats_rand_gen_noncentral_t

(PECL)

stats_rand_gen_noncentral_t -- Génère l'écart aléatoire simple à partir d'une distribution T non centrale

Description

float stats_rand_gen_noncentral_t ( float df, float xnonc )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_noncentral_f | Niveau supérieur | stats_rand_gen_normal


stats_rand_gen_normal

(PECL)

stats_rand_gen_normal -- Génère un écart aléatoire simple à partir d'une distribution normale avec la moyenne, av, et écart type sd (sd >= 0). Méthode : Renomme SNORM de TOMS légèrement modifié par BWB pour utiliser RANF au lieu de SUNIF.

Description

float stats_rand_gen_normal ( float av, float sd )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_noncentral_t | Niveau supérieur | stats_rand_gen_t


stats_rand_gen_t

(PECL)

stats_rand_gen_t -- Génère un écart aléatoire simple à partir de la distribution T

Description

float stats_rand_gen_t ( float df )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_normal | Niveau supérieur | stats_rand_get_seeds


stats_rand_get_seeds

(no version information, might be only in CVS)

stats_rand_get_seeds -- Non documenté

Description

array stats_rand_get_seeds ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_gen_t | Niveau supérieur | stats_rand_phrase_to_seeds


stats_rand_phrase_to_seeds

(PECL)

stats_rand_phrase_to_seeds -- Génère deux graines pour le générateur de nombre aléatoire RGN

Description

array stats_rand_phrase_to_seeds ( string phrase )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_get_seeds | Niveau supérieur | stats_rand_ranf


stats_rand_ranf

(PECL)

stats_rand_ranf -- Retourne un nombre à valeur décimale aléatoire à partir d'une distribution uniforme de 0 - 1 (les points finaux de cet interval ne sont pas retourné) en utilisant le générateur courant

Description

float stats_rand_ranf ( void )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_phrase_to_seeds | Niveau supérieur | stats_rand_setall


stats_rand_setall

(PECL)

stats_rand_setall -- Non documenté

Description

void stats_rand_setall ( int iseed1, int iseed2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_ranf | Niveau supérieur | stats_skew


stats_skew

(PECL)

stats_skew -- Calcul l'asymétrie des données dans un tableau

Description

float stats_skew ( array a )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_rand_setall | Niveau supérieur | stats_standard_deviation


stats_standard_deviation

(PECL)

stats_standard_deviation -- Retourne l'écart type

Description

float stats_standard_deviation ( array a [, bool sample] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_skew | Niveau supérieur | stats_stat_binomial_coef


stats_stat_binomial_coef

(PECL)

stats_stat_binomial_coef -- Non documenté

Description

float stats_stat_binomial_coef ( int x, int n )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_standard_deviation | Niveau supérieur | stats_stat_correlation


stats_stat_correlation

(PECL)

stats_stat_correlation -- Non documenté

Description

float stats_stat_correlation ( array arr1, array arr2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_stat_binomial_coef | Niveau supérieur | stats_stat_gennch


stats_stat_gennch

(no version information, might be only in CVS)

stats_stat_gennch -- Non documenté

Description

float stats_stat_gennch ( int n )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_stat_correlation | Niveau supérieur | stats_stat_independent_t


stats_stat_independent_t

(PECL)

stats_stat_independent_t -- Non documenté

Description

float stats_stat_independent_t ( array arr1, array arr2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_stat_gennch | Niveau supérieur | stats_stat_innerproduct


stats_stat_innerproduct

(PECL)

stats_stat_innerproduct --

Description

float stats_stat_innerproduct ( array arr1, array arr2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_stat_independent_t | Niveau supérieur | stats_stat_noncentral_t


stats_stat_noncentral_t

(no version information, might be only in CVS)

stats_stat_noncentral_t -- Calcule n'importe quel paramètre de distribution non centrale t des valeurs données pour les autres valeurs.

Description

float stats_stat_noncentral_t ( float par1, float par2, float par3, int which )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_stat_innerproduct | Niveau supérieur | stats_stat_paired_t


stats_stat_paired_t

(PECL)

stats_stat_paired_t -- Non documenté

Description

float stats_stat_paired_t ( array arr1, array arr2 )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_stat_noncentral_t | Niveau supérieur | stats_stat_percentile


stats_stat_percentile

(PECL)

stats_stat_percentile -- Non documenté

Description

float stats_stat_percentile ( float df, float xnonc )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_stat_paired_t | Niveau supérieur | stats_stat_powersum


stats_stat_powersum

(PECL)

stats_stat_powersum -- Non documenté

Description

float stats_stat_powersum ( array arr, float power )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_stat_percentile | Niveau supérieur | stats_variance


stats_variance

(PECL)

stats_variance -- Retourne la variance d'une population

Description

float stats_variance ( array a [, bool sample] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stats_stat_powersum | Niveau supérieur | Flux


str_getcsv

(no version information, might be only in CVS)

str_getcsv -- Analyse une chaîne de caractères CSV dans un tableau

Description

array str_getcsv ( string input [, string delimiter [, string enclosure [, string escape]]] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
sscanf | Niveau supérieur | str_ireplace


stream_bucket_append

(PHP 5)

stream_bucket_append -- Ajoute un compartiment au corps

Description

void stream_bucket_append ( resource brigade, resource bucket )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
Flux | Niveau supérieur | stream_bucket_make_writeable


stream_bucket_make_writeable

(PHP 5)

stream_bucket_make_writeable -- Retourne un objet de compartiment depuis le corps pour des opérations sur celui-ci

Description

object stream_bucket_make_writeable ( resource brigade )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stream_bucket_append | Niveau supérieur | stream_bucket_new


stream_bucket_new

(PHP 5)

stream_bucket_new -- Crée un nouveau compartiment pour l'utiliser sur le flux courant

Description

object stream_bucket_new ( resource stream, string buffer )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stream_bucket_make_writeable | Niveau supérieur | stream_bucket_prepend


stream_bucket_prepend

(PHP 5)

stream_bucket_prepend -- Ajout initial d'un compartiment au corps

Description

void stream_bucket_prepend ( resource brigade, resource bucket )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stream_bucket_new | Niveau supérieur | stream_context_create


stream_encoding

(no version information, might be only in CVS)

stream_encoding -- Définit le jeu de caractères pour l'encodage du flux

Description

bool stream_encoding ( resource stream [, string encoding] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stream_copy_to_stream | Niveau supérieur | stream_filter_append


stream_resolve_include_path

(no version information, might be only in CVS)

stream_resolve_include_path -- Détermine quel fichier sera ouvert lors des appels à la fonction fopen() avec un chemin relatif

Description

string stream_resolve_include_path ( string filename [, resource context] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
stream_register_wrapper | Niveau supérieur | stream_select


stream_socket_shutdown

(no version information, might be only in CVS)

stream_socket_shutdown -- Arrête une connexion full-duplex

Description

int stream_socket_shutdown ( resource stream, int how )

Arrête (partiellement ou non) une connexion full-duplex.

Liste de paramètres

stream

Un flux ouvert (ouvert avec la fonction stream_socket_client(), par exemple)

how

Une des constantes suivantes : STREAM_SHUT_RD (désactive les réceptions futures), STREAM_SHUT_WR (désactive les transmissions futures) ou STREAM_SHUT_RDWR (désactive les réceptions ou les transmissions futures).

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec stream_socket_shutdown()

<?php

$server = stream_socket_server('tcp://127.0.0.1:1337');
$client = stream_socket_client('tcp://127.0.0.1:1337');

var_dump(fputs($client, "Bonjour"));

stream_socket_shutdown($client, STREAM_SHUT_WR);
var_dump(fputs($client, "Bonjour")); // ne fonctionne actuellement pas

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(5)

Notice: fputs(): send of 5 bytes failed with errno=32 Broken pipe in test.php on line 9
int(0)

Voir aussi

fclose()

Précédent | Sommaire | Suivant
stream_socket_server | Niveau supérieur | stream_wrapper_register


SWFAction->__construct()

(no version information, might be only in CVS)

SWFAction->__construct() -- Creates a new SWFAction

Description

class SWFAction {

SWFAction __construct ( string script )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Creates a new SWFAction and compiles the given script in it.

Liste de paramètres

script

An ActionScript snippet to associate with the SWFAction. See SWFAction for more details.

Précédent | Sommaire | Suivant
SWFAction | Niveau supérieur | SWFBitmap


SWFBitmap->__construct()

(no version information, might be only in CVS)

SWFBitmap->__construct() -- Loads Bitmap object

Description

class SWFBitmap {

SWFBitmap __construct ( mixed file [, mixed alphafile] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Creates the new SWFBitmap object from the given file.

Liste de paramètres

For both parameters you can provide a file pointer returned by fopen() or the image data, as a binary string.

file

Note : We can only deal with baseline (frame 0) jpegs, no baseline optimized or progressive scan jpegs!

You can't import png images directly, though- have to use the png2dbl utility to make a dbl ("define bits lossless") file from the png. The reason for this is that I don't want a dependency on the png library in ming- autoconf should solve this, but that's not set up yet.

alphafile

An MSK file to be used as an alpha mask for a JPEG image.

Exemples

Exemple 1. Importing a DBL file

<?php
$s = new SWFShape();
$f = $s->addFill(new SWFBitmap(file_get_contents("image.dbl")));
$s->setRightFill($f);

$s->drawLine(32, 0);
$s->drawLine(0, 32);
$s->drawLine(-32, 0);
$s->drawLine(0, -32);

$m = new SWFMovie();
$m->setDimension(32, 32);
$m->add($s);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Exemple 2. Using an alpha mask

<?php

$s = new SWFShape();

// .msk file generated with "gif2mask" utility
$f = $s->addFill(new SWFBitmap(file_get_contents("alphafill.jpg"), file_get_contents("alphafill.msk")));
$s->setRightFill($f);

$s->drawLine(640, 0);
$s->drawLine(0, 480);
$s->drawLine(-640, 0);
$s->drawLine(0, -480);

$c = new SWFShape();
$c->setRightFill($c->addFill(0x99, 0x99, 0x99));
$c->drawLine(40, 0);
$c->drawLine(0, 40);
$c->drawLine(-40, 0);
$c->drawLine(0, -40);

$m = new SWFMovie();
$m->setDimension(640, 480);
$m->setBackground(0xcc, 0xcc, 0xcc);

// draw checkerboard background
for ($y=0; $y<480; $y+=40) {
  for ($x=0; $x<640; $x+=80) {
    $i = $m->add($c);
    $i->moveTo($x, $y);
  }

  $y+=40;

  for ($x=40; $x<640; $x+=80) {
    $i = $m->add($c);
    $i->moveTo($x, $y);
  }
}

$m->add($s);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Précédent | Sommaire | Suivant
SWFBitmap | Niveau supérieur | SWFBitmap->getHeight()


SWFButton->addASound()

(no version information, might be only in CVS)

SWFButton->addASound() -- Associates a sound with a button transition

Description

class SWFButton {

SWFSoundInstance addASound ( SWFSound sound, int flags )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SWFButton->addAction() | Niveau supérieur | SWFButton->addShape()


SWFButton->__construct()

(no version information, might be only in CVS)

SWFButton->__construct() -- Creates a new Button

Description

class SWFButton {

SWFButton __construct ( void )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Creates a new Button.

Exemples

This simple example will show your usual interactions with buttons : rollover, rollon, mouseup, mousedown, noaction.

Exemple 1. Usual interactions with buttons

<?php

$f = new SWFFont("_serif");

$p = new SWFSprite();

function label($string)
{
  global $f;

  $t = new SWFTextField();
  $t->setFont($f);
  $t->addString($string);
  $t->setHeight(200);
  $t->setBounds(3200, 200);
  return $t;
}

function addLabel($string)
{
  global $p;

  $i = $p->add(label($string));
  $p->nextFrame();
  $p->remove($i);
}

$p->add(new SWFAction("stop();"));
addLabel("NO ACTION");
addLabel("SWFBUTTON_MOUSEUP");
addLabel("SWFBUTTON_MOUSEDOWN");
addLabel("SWFBUTTON_MOUSEOVER");
addLabel("SWFBUTTON_MOUSEOUT");
addLabel("SWFBUTTON_MOUSEUPOUTSIDE");
addLabel("SWFBUTTON_DRAGOVER");
addLabel("SWFBUTTON_DRAGOUT");

function rect($r, $g, $b)
{
  $s = new SWFShape();
  $s->setRightFill($s->addFill($r, $g, $b));
  $s->drawLine(600, 0);
  $s->drawLine(0, 600);
  $s->drawLine(-600, 0);
  $s->drawLine(0, -600);

  return $s;
}

$b = new SWFButton();
$b->addShape(rect(0xff, 0, 0), SWFBUTTON_UP | SWFBUTTON_HIT);
$b->addShape(rect(0, 0xff, 0), SWFBUTTON_OVER);
$b->addShape(rect(0, 0, 0xff), SWFBUTTON_DOWN);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(1);"),
          SWFBUTTON_MOUSEUP);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(2);"),
      SWFBUTTON_MOUSEDOWN);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(3);"),
      SWFBUTTON_MOUSEOVER);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(4);"),
      SWFBUTTON_MOUSEOUT);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(5);"),
      SWFBUTTON_MOUSEUPOUTSIDE);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(6);"),
      SWFBUTTON_DRAGOVER);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(7);"),
      SWFBUTTON_DRAGOUT);

$m = new SWFMovie();
$m->setDimension(4000, 3000);

$i = $m->add($p);
$i->setName("label");
$i->moveTo(400, 1900);

$i = $m->add($b);
$i->moveTo(400, 900);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

This simple example will enables you to drag draw a big red button on the windows. No drag-and-drop, just moving around.

Exemple 2. Drag example

<?php

$s = new SWFShape();
$s->setRightFill($s->addFill(0xff, 0, 0));
$s->drawLine(1000,0);
$s->drawLine(0,1000);
$s->drawLine(-1000,0);
$s->drawLine(0,-1000);

$b = new SWFButton();
$b->addShape($s, SWFBUTTON_HIT | SWFBUTTON_UP | SWFBUTTON_DOWN | SWFBUTTON_OVER);

$b->addAction(new SWFAction("startDrag('/test', 0);"), // '0' means don't lock to mouse
      SWFBUTTON_MOUSEDOWN);

$b->addAction(new SWFAction("stopDrag();"),
      SWFBUTTON_MOUSEUP | SWFBUTTON_MOUSEUPOUTSIDE);

$p = new SWFSprite();
$p->add($b);
$p->nextFrame();

$m = new SWFMovie();
$i = $m->add($p);
$i->setName('test');
$i->moveTo(1000,1000);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Précédent | Sommaire | Suivant
SWFButton | Niveau supérieur | SWFButton->addAction()


SWFButton->setMenu()

(no version information, might be only in CVS)

SWFButton->setMenu() -- enable track as menu button behaviour

Description

class SWFButton {

void setMenu ( int flag )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

flag

This parameter can be used for a slight different behavior of buttons. You can set it to 0 (off) or 1 (on).

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFButton->setHit() | Niveau supérieur | SWFButton->setOver()


SWFDisplayItem->addAction()

(no version information, might be only in CVS)

SWFDisplayItem->addAction() -- Adds this SWFAction to the given SWFSprite instance

Description

class SWFDisplayItem {

void addAction ( SWFAction action, int flags )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

action

An SWFAction, returned by SWFAction->__construct().

flags

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFAction

Précédent | Sommaire | Suivant
SWFDisplayItem | Niveau supérieur | SWFDisplayItem->addColor()


SWFDisplayItem->endMask()

(no version information, might be only in CVS)

SWFDisplayItem->endMask() -- Another way of defining a MASK layer

Description

class SWFDisplayItem {

void endMask ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFDisplayItem->addColor() | Niveau supérieur | SWFDisplayItem->getRot()


SWFDisplayItem->getRot()

(no version information, might be only in CVS)

SWFDisplayItem->getRot() --

Description

class SWFDisplayItem {

float getRot ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SWFDisplayItem->endMask() | Niveau supérieur | SWFDisplayItem->getX()


SWFDisplayItem->getX()

(no version information, might be only in CVS)

SWFDisplayItem->getX() --

Description

class SWFDisplayItem {

float getX ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFDisplayItem->getY()

Précédent | Sommaire | Suivant
SWFDisplayItem->getRot() | Niveau supérieur | SWFDisplayItem->getXScale()


SWFDisplayItem->getXScale()

(no version information, might be only in CVS)

SWFDisplayItem->getXScale() --

Description

class SWFDisplayItem {

float getXScale ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFDisplayItem->getYScale()

Précédent | Sommaire | Suivant
SWFDisplayItem->getX() | Niveau supérieur | SWFDisplayItem->getXSkew()


SWFDisplayItem->getXSkew()

(no version information, might be only in CVS)

SWFDisplayItem->getXSkew() --

Description

class SWFDisplayItem {

float getXSkew ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFDisplayItem->getYSkew()

Précédent | Sommaire | Suivant
SWFDisplayItem->getXScale() | Niveau supérieur | SWFDisplayItem->getY()


SWFDisplayItem->getY()

(no version information, might be only in CVS)

SWFDisplayItem->getY() --

Description

class SWFDisplayItem {

float getY ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFDisplayItem->getX()

Précédent | Sommaire | Suivant
SWFDisplayItem->getXSkew() | Niveau supérieur | SWFDisplayItem->getYScale()


SWFDisplayItem->getYScale()

(no version information, might be only in CVS)

SWFDisplayItem->getYScale() --

Description

class SWFDisplayItem {

float getYScale ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFDisplayItem->getXScale()

Précédent | Sommaire | Suivant
SWFDisplayItem->getY() | Niveau supérieur | SWFDisplayItem->getYSkew()


SWFDisplayItem->getYSkew()

(no version information, might be only in CVS)

SWFDisplayItem->getYSkew() --

Description

class SWFDisplayItem {

float getYSkew ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFDisplayItem->getXSkew()

Précédent | Sommaire | Suivant
SWFDisplayItem->getYScale() | Niveau supérieur | SWFDisplayItem->move()


SWFDisplayItem->setMaskLevel()

(no version information, might be only in CVS)

SWFDisplayItem->setMaskLevel() -- Defines a MASK layer at level

Description

class SWFDisplayItem {

void setMaskLevel ( int level )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFDisplayItem->setDepth() | Niveau supérieur | SWFDisplayItem->setMatrix()


SWFDisplayItem->setMatrix()

(no version information, might be only in CVS)

SWFDisplayItem->setMatrix() -- Sets the item's transform matrix

Description

class SWFDisplayItem {

void setMatrix ( float a, float b, float c, float d, float x, float y )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFDisplayItem->setMaskLevel() | Niveau supérieur | SWFDisplayItem->setName()


SWFFont->__construct()

(no version information, might be only in CVS)

SWFFont->__construct() -- Loads a font definition

Description

class SWFFont {

SWFFont __construct ( string filename )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

If filename is the name of an FDB file (i.e., it ends in ".fdb"), load the font definition found in said file. Otherwise, create a browser-defined font reference.

FDB ("font definition block") is a very simple wrapper for the SWF DefineFont2 block which contains a full description of a font. One may create FDB files from SWT Generator template files with the included makefdb utility- look in the util directory off the main ming distribution directory.

Browser-defined fonts don't contain any information about the font other than its name. It is assumed that the font definition will be provided by the movie player. The fonts _serif, _sans, and _typewriter should always be available. For example:

<?php
$f = newSWFFont("_sans");
?>
will give you the standard sans-serif font, probably the same as what you'd get with <font name="sans-serif"> in HTML.

Précédent | Sommaire | Suivant
SWFFont | Niveau supérieur | SWFFont->getAscent()


SWFFont->getAscent()

(no version information, might be only in CVS)

SWFFont->getAscent() -- Returns the ascent of the font, or 0 if not available

Description

class SWFFont {

float getAscent ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFFont->getDescent()

Précédent | Sommaire | Suivant
SWFFont->__construct() | Niveau supérieur | SWFFont->getDescent()


SWFFont->getDescent()

(no version information, might be only in CVS)

SWFFont->getDescent() -- Returns the descent of the font, or 0 if not available

Description

class SWFFont {

float getDescent ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFFont->getAscent()

Précédent | Sommaire | Suivant
SWFFont->getAscent() | Niveau supérieur | SWFFont->getLeading()


SWFFont->getLeading()

(no version information, might be only in CVS)

SWFFont->getLeading() -- Returns the leading of the font, or 0 if not available

Description

class SWFFont {

float getLeading ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SWFFont->getDescent() | Niveau supérieur | SWFFont->getShape()


SWFFont->getShape()

(no version information, might be only in CVS)

SWFFont->getShape() -- Returns the glyph shape of a char as a text string

Description

class SWFFont {

string getShape ( int code )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SWFFont->getLeading() | Niveau supérieur | SWFFont->getUTF8Width()


SWFFont->getUTF8Width()

(no version information, might be only in CVS)

SWFFont->getUTF8Width() -- Calculates the width of the given string in this font at full height

Description

class SWFFont {

float getUTF8Width ( string string )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFFont->getWidth()

Précédent | Sommaire | Suivant
SWFFont->getShape() | Niveau supérieur | SWFFont->getWidth()


SWFFontChar->addChars()

(no version information, might be only in CVS)

SWFFontChar->addChars() -- Adds characters to a font for exporting font

Description

class SWFFontChar {

void addChars ( string char )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFFontChar->addUTF8Chars()

Précédent | Sommaire | Suivant
SWFFontChar | Niveau supérieur | SWFFontChar->addUTF8Chars()


SWFFontChar->addUTF8Chars()

(no version information, might be only in CVS)

SWFFontChar->addUTF8Chars() -- Adds characters to a font for exporting font

Description

class SWFFontChar {

void addUTF8Chars ( string char )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFFontChar->addChars()

Précédent | Sommaire | Suivant
SWFFontChar->addChars() | Niveau supérieur | SWFGradient


SWFGradient->__construct()

(no version information, might be only in CVS)

SWFGradient->__construct() -- Creates a gradient object

Description

class SWFGradient {

SWFGradient __construct ( void )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swfgradient() creates a new SWFGradient object.

After you've added the entries to your gradient, you can use the gradient in a shape fill with the swfshape->addfill() method.

SWFGradient has the following methods : swfgradient->addentry().

This simple example will draw a big black-to-white gradient as background, and a reddish disc in its center.

Exemple 1. swfgradient() example

<?php

  $m = new SWFMovie();
  $m->setDimension(320, 240);

  $s = new SWFShape();

  // first gradient- black to white
  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(1.0, 0xff, 0xff, 0xff);

  $f = $s->addFill($g, SWFFILL_LINEAR_GRADIENT);
  $f->scaleTo(0.01);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  $s = new SWFShape();

  // second gradient- radial gradient from red to transparent
  $g = new SWFGradient();
  $g->addEntry(0.0, 0xff, 0, 0, 0xff);
  $g->addEntry(1.0, 0xff, 0, 0, 0);

  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.005);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Précédent | Sommaire | Suivant
SWFGradient | Niveau supérieur | SWFGradient->addEntry()


SWFMorph->__construct()

(no version information, might be only in CVS)

SWFMorph->__construct() -- Creates a new SWFMorph object

Description

class SWFMorph {

SWFMorph __construct ( void )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Creates a new SWFMorph object.

Also called a "shape tween". This thing lets you make those tacky twisting things that make your computer choke. Oh, joy!

Exemples

This simple example will morph a big red square into a smaller blue black-bordered square.

Exemple 1. swfmorph() example

<?php
  $p = new SWFMorph();

  $s = $p->getShape1();
  $s->setLine(0, 0, 0, 0);

  /* Note that this is backwards from normal shapes (left instead of right).
     I have no idea why, but this seems to work.. */

  $s->setLeftFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(-1000,-1000);
  $s->drawLine(2000,0);
  $s->drawLine(0,2000);
  $s->drawLine(-2000,0);
  $s->drawLine(0,-2000);

  $s = $p->getShape2();
  $s->setLine(60,0,0,0);
  $s->setLeftFill($s->addFill(0, 0, 0xff));
  $s->movePenTo(0,-1000);
  $s->drawLine(1000,1000);
  $s->drawLine(-1000,1000);
  $s->drawLine(-1000,-1000);
  $s->drawLine(1000,-1000);

  $m = new SWFMovie();
  $m->setDimension(3000,2000);
  $m->setBackground(0xff, 0xff, 0xff);

  $i = $m->add($p);
  $i->moveTo(1500,1000);

  for ($r=0.0; $r<=1.0; $r+=0.1) {
    $i->setRatio($r);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Précédent | Sommaire | Suivant
SWFMorph | Niveau supérieur | SWFMorph->getShape1()


SWFMovie->addExport()

(no version information, might be only in CVS)

SWFMovie->addExport() --

Description

class SWFMovie {

void addExport ( SWFCharacter char, string name )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFMovie->add() | Niveau supérieur | SWFMovie->addFont()


SWFMovie->addFont()

(no version information, might be only in CVS)

SWFMovie->addFont() --

Description

class SWFFontChar {

mixed addFont ( SWFFont font )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFMovie->addExport() | Niveau supérieur | SWFMovie->importChar()


SWFMovie->__construct()

(no version information, might be only in CVS)

SWFMovie->__construct() -- Creates a new movie object, representing an SWF version 4 movie

Description

class SWFMovie {

SWFMovie __construct ( int version )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Creates a new movie object, representing an SWF movie.

Liste de paramètres

version

The desired SWF version. Default is 4.

Précédent | Sommaire | Suivant
SWFMovie | Niveau supérieur | SWFMovie->add()


SWFMovie->importChar()

(no version information, might be only in CVS)

SWFMovie->importChar() --

Description

class SWFMovie {

SWFSprite importChar ( string libswf, string name )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFMovie->importFont()

Précédent | Sommaire | Suivant
SWFMovie->addFont() | Niveau supérieur | SWFMovie->importFont()


SWFMovie->importFont()

(no version information, might be only in CVS)

SWFMovie->importFont() --

Description

class SWFMovie {

SWFFontChar importFont ( string libswf, string name )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFMovie->importChar()

Précédent | Sommaire | Suivant
SWFMovie->importChar() | Niveau supérieur | SWFMovie->labelFrame()


SWFMovie->labelFrame()

(no version information, might be only in CVS)

SWFMovie->labelFrame() -- Labels a frame

Description

class SWFMovie {

void labelFrame ( string label )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFMovie->importFont() | Niveau supérieur | SWFMovie->nextFrame()


SWFMovie->saveToFile()

(no version information, might be only in CVS)

SWFMovie->saveToFile() --

Description

class SWFMovie {

int saveToFile ( stream x [, int compression] )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

X

compression

The compression level can be a value between 0 and 9, defining the SWF compression similar to gzip compression.

This parameter is only available as of Flash MX (6).

Valeurs de retour

Return the number of bytes written or FALSE on error.

Voir aussi

SWFMovie->output()
SWFMovie->save()

Précédent | Sommaire | Suivant
SWFMovie->save() | Niveau supérieur | SWFMovie->setbackground()


SWFMovie->startSound()

(no version information, might be only in CVS)

SWFMovie->startSound() --

Description

class SWFMovie {

SWFSoundInstance startSound ( SWFSound sound )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFMovie->stopSound()

Précédent | Sommaire | Suivant
SWFMovie->setRate() | Niveau supérieur | SWFMovie->stopSound()


SWFMovie->stopSound()

(no version information, might be only in CVS)

SWFMovie->stopSound() --

Description

class SWFMovie {

void stopSound ( SWFSound sound )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFMovie->startSound()

Précédent | Sommaire | Suivant
SWFMovie->startSound() | Niveau supérieur | SWFMovie->streamMP3()


SWFMovie->writeExports()

(no version information, might be only in CVS)

SWFMovie->writeExports() --

Description

class SWFMovie {

void writeExports ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFMovie->streamMP3() | Niveau supérieur | SWFPrebuiltClip


SWFPrebuiltClip->__construct()

(no version information, might be only in CVS)

SWFPrebuiltClip->__construct() -- Returns a SWFPrebuiltClip object

Description

class SWFPrebuiltClip {

SWFPrebuiltClip __construct ( [string file] )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SWFPrebuiltClip | Niveau supérieur | SWFShape


SWFShape->__construct()

(no version information, might be only in CVS)

SWFShape->__construct() -- Creates a new shape object

Description

class SWFShape {

SWFShape __construct ( void )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Created a new SWFShape object.

Exemples

This simple example will draw a big red elliptic quadrant.

Exemple 1. swfshape() example

<?php
$s = new SWFShape();
$s->setLine(40, 0x7f, 0, 0);
$s->setRightFill($s->addFill(0xff, 0, 0));
$s->movePenTo(200, 200);
$s->drawLineTo(6200, 200);
$s->drawLineTo(6200, 4600);
$s->drawCurveTo(200, 4600, 200, 200);

$m = new SWFMovie();
$m->setDimension(6400, 4800);
$m->setRate(12.0);
$m->add($s);
$m->nextFrame();

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Précédent | Sommaire | Suivant
SWFShape | Niveau supérieur | SWFShape->addFill()


SWFShape->drawArc()

(no version information, might be only in CVS)

SWFShape->drawArc() -- Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock

Description

class SWFShape {

void drawArc ( float r, float startAngle, float endAngle )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFShape->drawCircle()

Précédent | Sommaire | Suivant
SWFShape->addFill() | Niveau supérieur | SWFShape->drawCircle()


SWFShape->drawCircle()

(no version information, might be only in CVS)

SWFShape->drawCircle() -- Draws a circle of radius r centered at the current location, in a counter-clockwise fashion

Description

class SWFShape {

void drawCircle ( float r )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFShape->drawArc() | Niveau supérieur | SWFShape->drawCubic()


SWFShape->drawCubic()

(no version information, might be only in CVS)

SWFShape->drawCubic() -- Draws a cubic bezier curve using the current position and the three given points as control points

Description

class SWFShape {

int drawCubic ( float bx, float by, float cx, float cy, float dx, float dy )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFShape->drawCubicTo()

Précédent | Sommaire | Suivant
SWFShape->drawCircle() | Niveau supérieur | SWFShape->drawCubicTo()


SWFShape->drawCubicTo()

(no version information, might be only in CVS)

SWFShape->drawCubicTo() -- Draws a cubic bezier curve using the current position and the three given points as control points

Description

class SWFShape {

int drawCubicTo ( float bx, float by, float cx, float cy, float dx, float dy )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFShape->drawCubic()

Précédent | Sommaire | Suivant
SWFShape->drawCubic() | Niveau supérieur | SWFShape->drawCurve()


SWFShape->drawGlyph()

(no version information, might be only in CVS)

SWFShape->drawGlyph() -- Draws the first character in the given string into the shape using the glyph definition from the given font

Description

class SWFShape {

void drawGlyph ( SWFFont font, string character [, int size] )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFShape->drawCurveTo() | Niveau supérieur | SWFShape->drawLine()


SWFSound

(no version information, might be only in CVS)

SWFSound -- Returns a new SWFSound object from given file

Description

class SWFSound {

SWFSound __construct ( string filename, int flags )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SWFSound | Niveau supérieur | SWFSoundInstance


SWFSoundInstance->loopCount()

(no version information, might be only in CVS)

SWFSoundInstance->loopCount() --

Description

class SWFSoundInstance {

void loopCount ( int point )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

point

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFSoundInstance->loopOutPoint()

Précédent | Sommaire | Suivant
SWFSoundInstance | Niveau supérieur | SWFSoundInstance->loopInPoint()


SWFSoundInstance->loopInPoint()

(no version information, might be only in CVS)

SWFSoundInstance->loopInPoint() --

Description

class SWFSoundInstance {

void loopInPoint ( int point )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

point

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFSoundInstance->loopOutPoint()

Précédent | Sommaire | Suivant
SWFSoundInstance->loopCount() | Niveau supérieur | SWFSoundInstance->loopOutPoint()


SWFSoundInstance->loopOutPoint()

(no version information, might be only in CVS)

SWFSoundInstance->loopOutPoint() --

Description

class SWFSoundInstance {

void loopOutPoint ( int point )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

point

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFSoundInstance->loopInPoint()

Précédent | Sommaire | Suivant
SWFSoundInstance->loopInPoint() | Niveau supérieur | SWFSoundInstance->noMultiple()


SWFSoundInstance->noMultiple()

(no version information, might be only in CVS)

SWFSoundInstance->noMultiple() --

Description

class SWFSoundInstance {

void noMultiple ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFSoundInstance->loopOutPoint() | Niveau supérieur | SWFSprite


SWFSprite->__construct()

(no version information, might be only in CVS)

SWFSprite->__construct() -- Creates a movie clip (a sprite)

Description

class SWFSprite {

SWFSprite __construct ( void )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Creates a new SWFSprite object.

Précédent | Sommaire | Suivant
SWFSprite | Niveau supérieur | SWFSprite->add()


SWFSprite->labelFrame()

(no version information, might be only in CVS)

SWFSprite->labelFrame() -- Labels frame

Description

class SWFSprite {

void labelFrame ( string label )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFSprite->add() | Niveau supérieur | SWFSprite->nextFrame()


SWFSprite->startSound()

(no version information, might be only in CVS)

SWFSprite->startSound() --

Description

class SWFSprite {

SWFSoundInstance startSound ( SWFSound sount )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFSprite->stopSound()

Précédent | Sommaire | Suivant
SWFSprite->setFrames() | Niveau supérieur | SWFSprite->stopSound()


SWFSprite->stopSound()

(no version information, might be only in CVS)

SWFSprite->stopSound() --

Description

class SWFSprite {

void stopSound ( SWFSound sount )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFSprite->startSound()

Précédent | Sommaire | Suivant
SWFSprite->startSound() | Niveau supérieur | SWFText


SWFText->addUTF8String()

(no version information, might be only in CVS)

SWFText->addUTF8String() -- Writes the given text into this SWFText object at the current pen position, using the current font, height, spacing, and color

Description

class SWFText {

void addUTF8String ( string text )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFText->addString()

Précédent | Sommaire | Suivant
SWFText->addString() | Niveau supérieur | SWFText->getAscent()


SWFText->__construct()

(no version information, might be only in CVS)

SWFText->__construct() -- Creates a new SWFText object

Description

class SWFText {

void __construct ( void )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Creates a new SWFText object, fresh for manipulating.

Exemples

This simple example will draw a big yellow "PHP generates Flash with Ming" text, on white background.

Exemple 1. swftext() example

<?php
$f = new SWFFont("Techno.fdb");
$t = new SWFText();
$t->setFont($f);
$t->moveTo(200, 2400);
$t->setColor(0xff, 0xff, 0);
$t->setHeight(1200);
$t->addString("PHP generates Flash with Ming!!");

$m = new SWFMovie();
$m->setDimension(5400, 3600);

$m->add($t);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Précédent | Sommaire | Suivant
SWFText | Niveau supérieur | SWFText->addString()


SWFText->getAscent()

(no version information, might be only in CVS)

SWFText->getAscent() -- Returns the ascent of the current font at its current size, or 0 if not available

Description

class SWFText {

float getAscent ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFText->getDescent()

Précédent | Sommaire | Suivant
SWFText->addUTF8String() | Niveau supérieur | SWFText->getDescent()


SWFText->getDescent()

(no version information, might be only in CVS)

SWFText->getDescent() -- Returns the descent of the current font at its current size, or 0 if not available

Description

class SWFText {

float getDescent ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFText->getAscent()

Précédent | Sommaire | Suivant
SWFText->getAscent() | Niveau supérieur | SWFText->getLeading()


SWFText->getLeading()

(no version information, might be only in CVS)

SWFText->getLeading() -- Returns the leading of the current font at its current size, or 0 if not available

Description

class SWFText {

float getLeading ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SWFText->getDescent() | Niveau supérieur | SWFText->getUTF8Width()


SWFText->getUTF8Width()

(no version information, might be only in CVS)

SWFText->getUTF8Width() -- calculates the width of the given string in this text objects current font and size

Description

class SWFText {

float getUTF8Width ( string string )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Voir aussi

SWFText->getWidth()

Précédent | Sommaire | Suivant
SWFText->getLeading() | Niveau supérieur | SWFText->getWidth()


SWFTextField->addChars()

(no version information, might be only in CVS)

SWFTextField->addChars() -- adds characters to a font that will be available within a textfield

Description

class SWFTextField {

void addChars ( string chars )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Voir aussi

SWFTextField->addString()

Précédent | Sommaire | Suivant
SWFTextField->__construct() | Niveau supérieur | SWFTextField->addString()


SWFTextField->__construct()

(no version information, might be only in CVS)

SWFTextField->__construct() -- Creates a text field object

Description

class SWFTextField {

SWFTextField __construct ( [int flags] )

}

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

swftextfield() creates a new text field object. Text Fields are less flexible than swftext() objects- they can't be rotated, scaled non-proportionally, or skewed, but they can be used as form entries, and they can use browser-defined fonts.

The optional flags change the text field's behavior. It has the following possibles values :

  • SWFTEXTFIELD_DRAWBOX draws the outline of the textfield

  • SWFTEXTFIELD_HASLENGTH

  • SWFTEXTFIELD_HTML allows text markup using HTML-tags

  • SWFTEXTFIELD_MULTILINE allows multiple lines

  • SWFTEXTFIELD_NOEDIT indicates that the field shouldn't be user-editable

  • SWFTEXTFIELD_NOSELECT makes the field non-selectable

  • SWFTEXTFIELD_PASSWORD obscures the data entry

  • SWFTEXTFIELD_WORDWRAP allows text to wrap

Flags are combined with the bitwise OR operation. For example,
<?php
$t = newSWFTextField(SWFTEXTFIELD_PASSWORD | SWFTEXTFIELD_NOEDIT);
?>
creates a totally useless non-editable password field.

SWFTextField has the following methods : swftextfield->setfont(),
swftextfield->setbounds(), swftextfield->align(),
swftextfield->setheight(), swftextfield->setleftmargin(),
swftextfield->setrightmargin(), swftextfield->setmargins(),
swftextfield->setindentation(), swftextfield->setlinespacing(),
swftextfield->setcolor(), swftextfield->setname() and
swftextfield->addstring().

Précédent | Sommaire | Suivant
SWFTextField | Niveau supérieur | SWFTextField->addChars()


SWFTextField->setPadding()

(no version information, might be only in CVS)

SWFTextField->setPadding() -- Sets the padding of this textfield

Description

class SWFTextField {

void setPadding ( float padding )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFTextField->setName() | Niveau supérieur | SWFTextField->setRightMargin()


SWFVideoStream->__construct()

(no version information, might be only in CVS)

SWFVideoStream->__construct() -- Returns a SWFVideoStream object

Description

class SWFVideoStream {

SWFVideoStream __construct ( [string file] )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SWFVideoStream | Niveau supérieur | SWFVideoStream->getNumFrames()


SWFVideoStream->getNumFrames()

(no version information, might be only in CVS)

SWFVideoStream->getNumFrames() --

Description

class SWFVideoStream {

int getNumFrames ( void )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Précédent | Sommaire | Suivant
SWFVideoStream->__construct() | Niveau supérieur | SWFVideoStream->setDimension()


SWFVideoStream->setDimension()

(no version information, might be only in CVS)

SWFVideoStream->setDimension() --

Description

class SWFVideoStream {

void setDimension ( int x, int y )

}

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Aucune valeur n'est retournée.

Précédent | Sommaire | Suivant
SWFVideoStream->getNumFrames() | Niveau supérieur | ming_keypress


Swish::__construct

(no version information, might be only in CVS)

Swish::__construct -- Construct a Swish object

Description

void Swish::__construct ( string string index_names )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

index_names

The list of index files separated by spaces.

Erreurs / Exceptions

Throws SwishException on error.

Exemples

Exemple 1. A Swish::__construct() example

<?php

try {
    $swish = new Swish("index1 index2");
} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

foreach ($swish->indexes as $index) {
    var_dump($index["name"]);
    var_dump($index["headers"]["Total Words"]);
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

string(6) "index1"
int(1888)
string(6) "index2"
int(2429)

Précédent | Sommaire | Suivant
Swish Functions | Niveau supérieur | Swish->getMetaList


Swish->getMetaList

(no version information, might be only in CVS)

Swish->getMetaList -- Get the list of meta entries for the index

Description

array Swish->getMetaList ( string index_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

index_name

The name of the index file.

Valeurs de retour

Returns an array of meta entries for the given index.

Exemples

Exemple 1. Basic Swish->getMetaList() example

<?php

try {

    $swish = new Swish("index.swish-e");
    var_dump($swish->getMetaList("index.swish-e"));

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  array(3) {
    ["Name"]=>
    string(12) "swishdefault"
    ["Type"]=>
    int(0)
    ["ID"]=>
    int(1)
  }
}

Précédent | Sommaire | Suivant
Swish::__construct | Niveau supérieur | Swish->getPropertyList


Swish->getPropertyList

(no version information, might be only in CVS)

Swish->getPropertyList -- Get the list of properties for the index

Description

array Swish->getPropertyList ( string index_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

index_name

The name of the index file.

Valeurs de retour

Returns an array of properties for the given index.

Exemples

Exemple 1. Basic Swish->getPropertyList() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $properties = $swish->getPropertyList("index.swish-e");
    foreach ($properties as $prop) {
        echo $prop["Name"],"\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

swishreccount
swishrank
swishfilenum
swishdbfile
swishdocpath
swishtitle
swishdocsize
swishlastmodified

Précédent | Sommaire | Suivant
Swish->getMetaList | Niveau supérieur | Swish->prepare


Swish->prepare

(no version information, might be only in CVS)

Swish->prepare -- Prepare a search query

Description

object Swish->prepare ( [string query] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Prepare and return a search object, which you can later use for unlimited number of queries.

Liste de paramètres

query

Optional query string. The query can be also set using SwishSearch->execute() method.

Valeurs de retour

Returns SwishSearch object.

Erreurs / Exceptions

Throws SwishException on error.

Exemples

Exemple 1. Basic Swish->prepare() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare("search query");
    $results = $search->execute();
    echo "Found: ", $results->hits, " hits\n";

    $results = $search->execute("new search");

    echo "Found: ", $results->hits, " hits\n";
} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Found: 2 hits
Found: 5 hits

Précédent | Sommaire | Suivant
Swish->getPropertyList | Niveau supérieur | Swish->query


Swish->query

(no version information, might be only in CVS)

Swish->query -- Execute a query and return results object

Description

object Swish->query ( string query )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

A quick method to execute a search with default parameters.

Liste de paramètres

query

Query string.

Valeurs de retour

Returns SwishResults object.

Erreurs / Exceptions

Throws SwishException on error.

Exemples

Exemple 1. Basic Swish->query() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("test query");

    echo "Found: ", $results->hits, " hits\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Found: 1 hits

Précédent | Sommaire | Suivant
Swish->prepare | Niveau supérieur | SwishResult->getMetaList


SwishResult->getMetaList

(no version information, might be only in CVS)

SwishResult->getMetaList -- Get a list of meta entries

Description

array SwishResult->getMetaList ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Valeurs de retour

Returns the same array as swish->getmetalist(), but uses the index file from the result handle.

Précédent | Sommaire | Suivant
Swish->query | Niveau supérieur | SwishResult->stem


SwishResult->stem

(no version information, might be only in CVS)

SwishResult->stem -- Stems the given word

Description

array SwishResult->stem ( string word )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Stems the word based on the fuzzy mode used during indexing. Each result object is linked with its index, so the results are based on this index.

Liste de paramètres

word

The word to stem.

Valeurs de retour

Returns array containing the stemmed word variants (usually just one).

Erreurs / Exceptions

Throws SwishException on error.

Exemples

Exemple 1. Basic () example

<?php

try {

    $swish = new Swish("ext/swish/tests/index.swish-e");
    $results = $swish->query("testing OR others");

    if ($result = $results->nextResult()) {
        var_dump($result->stem("testing")); //the results fully depend on the stemmer used in th index
        var_dump($result->stem("others"));
    }

} catch (SwishException $e) {
    echo "Error: ", $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(1) {
  [0]=>
  string(4) "test"
}
array(1) {
  [0]=>
  string(5) "other"
}

Précédent | Sommaire | Suivant
SwishResult->getMetaList | Niveau supérieur | SwishResults->getParsedWords


SwishResults->getParsedWords

(no version information, might be only in CVS)

SwishResults->getParsedWords -- Get an array of parsed words

Description

array SwishResults->getParsedWords ( string index_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

indexi_name

The name of the index used to initialize Swish object.

Valeurs de retour

An array of parsed words with stopwords removed. The list of parsed words may be useful for highlighting search terms in the results.

Exemples

Exemple 1. Basic SwishResults->getParsedWords() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("'some characters' and numbers");

    var_dump($results->getParsedWords("index.swish-e"));
    var_dump($results->indexes[0]['parsed_words']); //same result in a different way

} catch (SwishException $e) {
    echo "Error: ", $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

array(4) {
  [0]=>
  string(4) "some"
  [1]=>
  string(10) "characters"
  [2]=>
  string(3) "and"
  [3]=>
  string(7) "numbers"
}
array(4) {
  [0]=>
  string(4) "some"
  [1]=>
  string(10) "characters"
  [2]=>
  string(3) "and"
  [3]=>
  string(7) "numbers"
}

Précédent | Sommaire | Suivant
SwishResult->stem | Niveau supérieur | SwishResults->getRemovedStopwords


SwishResults->getRemovedStopwords

(no version information, might be only in CVS)

SwishResults->getRemovedStopwords -- Get an array of stopwords removed from the query

Description

array SwishResults->getRemovedStopwords ( string index_name )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

index_name

The name of the index used to initialize Swish object.

Valeurs de retour

Returns array of stopwords removed from the query.

Précédent | Sommaire | Suivant
SwishResults->getParsedWords | Niveau supérieur | SwishResults->nextResult


SwishResults->nextResult

(no version information, might be only in CVS)

SwishResults->nextResult -- Get the next search result

Description

object SwishResults->nextResult ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Valeurs de retour

Returns the next SwishResult object in the result set or FALSE if there are no more results available.

Exemples

Exemple 1. Basic SwishResults->nextResult() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("lost");
    while($result = $results->nextResult()) {
        /* do something with the result object */
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Précédent | Sommaire | Suivant
SwishResults->getRemovedStopwords | Niveau supérieur | SwishResults->seekResult


SwishResults->seekResult

(no version information, might be only in CVS)

SwishResults->seekResult -- Set current seek pointer to the given position

Description

int SwishResults->seekResult ( int position )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

position

Zero-based position number. Cannot be less than zero.

Valeurs de retour

Returns new position value on success.

Erreurs / Exceptions

Throws SwishException on error.

Exemples

Exemple 1. Basic SwishResults->seekResult() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("lost");

    var_dump($results->seekResult(0)); //this will succeed
    var_dump($results->seekResult(100)); //this will fail

} catch (SwishException $e) {
    echo "Error: ", $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

int(0)
Error: No more results

Précédent | Sommaire | Suivant
SwishResults->nextResult | Niveau supérieur | SwishSearch->execute


SwishSearch->execute

(no version information, might be only in CVS)

SwishSearch->execute -- Execute the search and get the results

Description

object SwishSearch->execute ( [string query] )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Searches the index file(s) based on the parameters set in the search object.

Liste de paramètres

query

The query string is an optional parameter, it can be also set using Swish->prepare() method. The query string is preserved between executions, so you can set it once, but execute the search multiple times.

Valeurs de retour

Returns SwishResults object.

Erreurs / Exceptions

Throws SwishException on error.

Exemples

Exemple 1. Basic SwishSearch->execute() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("query");
    echo "First query found: ", $results->hits, " hits\n";

    $results = $search->execute("new OR query");
    echo "Second query found: ", $results->hits, " hits\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

First query found: 2 hits
Second query found: 12 hits

Précédent | Sommaire | Suivant
SwishResults->seekResult | Niveau supérieur | SwishSearch->resetLimit


SwishSearch->resetLimit

(no version information, might be only in CVS)

SwishSearch->resetLimit -- Reset the search limits

Description

void SwishSearch->resetLimit ( void )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Reset the search limits previous set by SwishSearch->setLimit.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Basic SwishSearch->resetLimit() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "First query found: ", $results->hits, " hits\n";

    $search->setLimit("swishdocsize", "3000", "6000"); //limit by document size, from 3000 to 6000 bytes
    $results = $search->execute("time");
    echo "Second query found: ", $results->hits, " hits\n";

    $search->resetLimit();
    $results = $search->execute("time");
    echo "Third query found: ", $results->hits, " hits\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

First query found: 5 hits
Second query found: 2 hits
Third query found: 5 hits

Précédent | Sommaire | Suivant
SwishSearch->execute | Niveau supérieur | SwishSearch->setLimit


SwishSearch->setLimit

(no version information, might be only in CVS)

SwishSearch->setLimit -- Set the search limits

Description

void SwishSearch->setLimit ( string property, string low, string high )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

property

Search result property name.

low

The lowest value of the property.

high

The highest value of the property.

Valeurs de retour

Aucune valeur n'est retournée.

Erreurs / Exceptions

Throws SwishException on error.

Exemples

Exemple 1. Basic SwishSearch->setLimit() example

<?php
try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "First query found: ", $results->hits, " hits\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Hit #", ++$i, " - ", $result->swishdocsize, " bytes\n";
    }

    $search->setLimit("swishdocsize", "3000", "6000"); //limit by document size, from 3000 to 6000 bytes
    $results = $search->execute("time");
    echo "Second query found: ", $results->hits, " hits\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Hit #", ++$i, " - ", $result->swishdocsize, " bytes\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

First query found: 5 hits
Hit #1 - 4261 bytes
Hit #2 - 37937 bytes
Hit #3 - 7126 bytes
Hit #4 - 15427 bytes
Hit #5 - 4768 bytes
Second query found: 2 hits
Hit #1 - 4261 bytes
Hit #2 - 4768 bytes

Précédent | Sommaire | Suivant
SwishSearch->resetLimit | Niveau supérieur | SwishSearch->setPhraseDelimiter


SwishSearch->setPhraseDelimiter

(no version information, might be only in CVS)

SwishSearch->setPhraseDelimiter -- Set the phrase delimiter

Description

void SwishSearch->setPhraseDelimiter ( string delimiter )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

delimiter

Phrase delimiter character. The default delimiter is double-quotes.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Basic SwishSearch->setPhraseDelimiter() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute('"every time"'); //looking for "every time"
    echo "First query found: ", $results->hits, " hits\n";

    $search->setPhraseDelimiter("'");
    $results = $search->execute("'every time'"); //the same query, but using different delimiter
    echo "Second query found: ", $results->hits, " hits\n";

    $search->setPhraseDelimiter('"');
    $results = $search->execute("'every time'"); //looking for "every" and "time"
    echo "Third query found: ", $results->hits, " hits\n";

    //let's look at parsed words
    var_dump($results->getParsedWords("index.swish-e"));

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

First query found: 1 hits
Second query found: 1 hits
Third query found: 2 hits
array(2) {
  [0]=>
  string(5) "every"
  [1]=>
  string(4) "time"
}

Précédent | Sommaire | Suivant
SwishSearch->setLimit | Niveau supérieur | SwishSearch->setSort


SwishSearch->setSort

(no version information, might be only in CVS)

SwishSearch->setSort -- Set the sort order

Description

void SwishSearch->setSort ( string sort )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

sort

Sort order of the results is a string containing name of a result property combined with sort direction ("asc" or "desc"). Examples: "swishrank desc", "swishdocpath asc", "swishtitle asc", "swishdocsize desc", "swishlastmodified desc" etc.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Basic SwishSearch->setSort() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "First query found: ", $results->hits, " hits\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Hit #", ++$i, " - ", $result->swishdocsize, " bytes\n";
    }

    $search->setSort("swishdocsize desc"); //sort by document size
    $results = $search->execute("time");
    echo "Second query found: ", $results->hits, " hits\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Hit #", ++$i, " - ", $result->swishdocsize, " bytes\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

First query found: 5 hits
Hit #1 - 4261 bytes
Hit #2 - 37937 bytes
Hit #3 - 7126 bytes
Hit #4 - 15427 bytes
Hit #5 - 4768 bytes
Second query found: 5 hits
Hit #1 - 37937 bytes
Hit #2 - 15427 bytes
Hit #3 - 7126 bytes
Hit #4 - 4768 bytes
Hit #5 - 4261 bytes

Précédent | Sommaire | Suivant
SwishSearch->setPhraseDelimiter | Niveau supérieur | SwishSearch->setStructure


SwishSearch->setStructure

(no version information, might be only in CVS)

SwishSearch->setStructure -- Set the structure flag in the search object

Description

void SwishSearch->setStructure ( int structure )

Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Liste de paramètres

structure

The structure flag a bitmask is used to limit search to certain parts of HTML documents (like title, meta, body etc.). Its possible values are listed below. To combine several values use bitwise OR operator, see example below.

  • Swish::IN_FILE

  • Swish::IN_TITLE

  • Swish::IN_HEAD

  • Swish::IN_BODY

  • Swish::IN_COMMENTS

  • Swish::IN_HEADER

  • Swish::IN_EMPHASIZED

  • Swish::IN_META

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple 1. Basic SwishSearch->setStructure() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "First query found: ", $results->hits, " hits\n";

    $search->setStructure(Swish::IN_TITLE|Swish::IN_HEAD); //search in title and head
    $results = $search->execute("time");
    echo "Second query found: ", $results->hits, " hits\n";

    $search->setStructure(Swish::IN_ALL); //search in whole document, the default value
    $results = $search->execute("time");
    echo "Third query found: ", $results->hits, " hits\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

First query found: 5 hits
Second query found: 0 hits
Third query found: 5 hits

Précédent | Sommaire | Suivant
SwishSearch->setSort | Niveau supérieur | Sybase


sys_get_temp_dir

(no version information, might be only in CVS)

sys_get_temp_dir -- Retourne le chemin du répertoire utilisé pour les fichiers temporaires

Description

string sys_get_temp_dir ( void )

Retourne le chemin du répertoire PHP où sont enregistrés les fichiers temporaires par défaut.

Valeurs de retour

Retourne le chemin du répertoire temporaire.

Voir aussi

tmpfile()
tempnam()

Précédent | Sommaire | Suivant
set_time_limit | Niveau supérieur | version_compare


sys_getloadavg

(no version information, might be only in CVS)

sys_getloadavg -- Récupère la charge moyenne du système

Description

array sys_getloadavg ( void )

Cette fonction 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 16 minutes, respectivement.

Note : Cette fonction n'est pas implémentée sous Windows.

Valeurs de retour

Retourne un array avec trois échantillons (dernières 1, 5 et 15 minutes).

Exemples

Exemple 1. Exemple avec sys_getloadavg()

<?php
$load = sys_getloadavg();
if ($load[0] > 80) {
    header('HTTP/1.1 503 Too busy, try again later');
    die('Server too busy. Please try again later.');
}
?>

Précédent | Sommaire | Suivant
sleep | Niveau supérieur | time_nanosleep


tidy_get_opt_doc

(PHP 5 >= 5.1.0RC1)

tidy_get_opt_doc -- Retourne la documentation pour le nom de l'option donnée

Description

Style procédural

string tidy_get_opt_doc ( tidy object, string optname )

Style orienté objet (méthode)

string tidy->getOptDoc ( string optname )

tidy_get_opt_doc() retourne la documentation pour le nom de l'option donnée.

Note : Vous devez posséder au moins libtidy datant du 25 avril 2005 pour que cette fonction soit disponible.

Liste de paramètres

object

Un objet tidy

optname

Le nom de l'option

Valeurs de retour

Retourne une chaîne de caractères si l'option existe et qu'elle possède de la documentation ou FALSE autrement.

Exemples

Exemple 1. Affichage de toutes les options avec leur documentation et leur valeur par défaut

<?php

$tidy = new tidy;
$config = $tidy->getConfig();

ksort($config);

foreach ($config as $opt => $val) {

    if (!$doc = $tidy->getOptDoc($opt))
        $doc = 'aucune documentation disponible!';

    $val = ($tidy->getOpt($opt) === true)  ? 'true'  : $val;
    $val = ($tidy->getOpt($opt) === false) ? 'false' : $val;

    echo "<p><b>$opt</b> (défaut : '$val')<br />".
         "$doc</p><hr />\n";
}

?>

Voir aussi

tidy_get_config()
tidy_getopt()

Précédent | Sommaire | Suivant
tidy_get_html | Niveau supérieur | tidy_get_output


tidyNode::getParent

(no version information, might be only in CVS)

tidyNode::getParent -- returns the parent node of the current node

Description

tidyNode tidyNode::getParent ( void )

Returns the parent node of the current node.

Valeurs de retour

Returns a tidyNode if the node has a parent, or NULL otherwise.

Précédent | Sommaire | Suivant
tidyNode->isText | Niveau supérieur | Analyseur de code PHP


time_sleep_until

(PHP 5 >= 5.1.0RC1)

time_sleep_until -- Stoppe le script pendant une durée spécifiée

Description

bool time_sleep_until ( float timestamp )

Stoppe le script jusqu'à l'instant indiqué par le paramètre timestamp.

Liste de paramètres

timestamp

Le timestamp correspondant à la durée de la pause.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Erreurs / Exceptions

Si la durée 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(time()+0.2));

?>

Notes

Note : Tous les signaux seront délivrés une fois la reprise du script.

Note : Cette fonction n'est pas implémentée sous Windows.

Voir aussi

sleep()
usleep()
time_nanosleep()

Précédent | Sommaire | Suivant
time_nanosleep | Niveau supérieur | uniqid


timezone_abbreviations_list

(PHP 5 >= 5.1.0RC1)

timezone_abbreviations_list -- Retourne un tableau associatif contenant l'heure avancée, décalage et le nom du fuseau horaire

Description

array timezone_abbreviations_list ( void )

array DateTimeZone::listAbbreviations ( void )

Valeurs de retour

Retourne un tableau en cas de succès ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec timezone_abbreviations_list()

<?php
$timezone_abbreviations = DateTimeZone::listAbbreviations();
print_r($timezone_abbreviations["acst"]);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [0] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Porto_Acre
        )

    [1] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Eirunepe
        )

    [2] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Rio_Branco
        )

    [3] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => Brazil/Acre
        )

)

Voir aussi

timezone_identifiers_list()

Précédent | Sommaire | Suivant
time | Niveau supérieur | timezone_identifiers_list


timezone_identifiers_list

(PHP 5 >= 5.1.0RC1)

timezone_identifiers_list -- Retourne un tableau indexé numériquement avec tous les identifiants des fuseaux horaires

Description

array timezone_identifiers_list ( void )

array DateTimeZone::listIdentifiers ( void )

Valeurs de retour

Retourne un tableau en cas de succès ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec timezone_identifiers_list()

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers();
for ($i=0; $i < 5; $i++) {
    echo "$timezone_identifiers[$i]\n";
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmera

Voir aussi

timezone_abbreviations_list()

Précédent | Sommaire | Suivant
timezone_abbreviations_list | Niveau supérieur | timezone_name_from_abbr


timezone_name_from_abbr

(no version information, might be only in CVS)

timezone_name_from_abbr -- Retourne le nom du fuseau horaire à partir de son abréviation

Description

string timezone_name_from_abbr ( string abbr [, int gmtOffset [, int isdst]] )

Liste de paramètres

abbr

Abréviation du fuseau horaire.

gmtOffset

Décalage à partir du GMT en seconde. La valeur par défaut est -1 ce qui signifie que le premier fuseau horaire trouvé correspondant à abbr est retourné. Autrement, le décalage exact est recherché et seulement s'il n'est pas trouvé alors le premier fuseau horaire avec n'importe quel décalage est retourné.

isdst

Indicateur d'heure avancée. Si abbr n'existe pas, alors le fuseau horaire est recherché seulement par offset et isdst.

Valeurs de retour

Retourne un nom de fuseau horaire en cas de succès ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec timezone_name_from_abbr()

<?php
echo timezone_name_from_abbr("CET") . "\n";
echo timezone_name_from_abbr("", 3600, 0) . "\n";
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Europe/Berlin
Europe/Paris

Voir aussi

timezone_abbreviations_list()

Précédent | Sommaire | Suivant
timezone_identifiers_list | Niveau supérieur | timezone_name_get


timezone_name_get

(PHP 5 >= 5.1.0RC1)

timezone_name_get -- Retourne le nom du fuseau horaire

Description

string timezone_name_get ( DateTimeZone object )

string DateTimeZone::getName ( void )

Liste de paramètres

object

Objet DateTimeZone.

Valeurs de retour

Retourne le nom du fuseau horaire en cas de succès ou FALSE en cas d'échec.

Précédent | Sommaire | Suivant
timezone_name_from_abbr | Niveau supérieur | timezone_offset_get


timezone_offset_get

(PHP 5 >= 5.1.0RC1)

timezone_offset_get -- Retourne le décalage du fuseau horaire

Description

int timezone_offset_get ( DateTimeZone object, DateTime datetime )

int DateTimeZone::getOffset ( DateTime datetime )

Cette fonction retourne le décalage horaire depuis GMT pour la date/heure spécifiée dans le paramètre datetime. Le décalage horaire depuis GMT est calculé avec les informations depuis le fuseau horaire contenues dans l'objet DateTime utilisé.

Liste de paramètres

object

Objet DateTimeZone.

datetime

DateTime qui contient la date/heure pour calculer le décalage horaire.

Valeurs de retour

Retourne le décalage du fuseau horaire en seconde en cas de succès ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec timezone_offset_get()

<?php
// Création de deux objets de fuseau horaire, un pour Taipei (Taiwan) et un pour
// Tokyo (Japon)
$dateTimeZoneTaipei = new DateTimeZone("Asia/Taipei");
$dateTimeZoneJapan = new DateTimeZone("Asia/Tokyo");

// Création de deux objets DateTime qui contiendront le même timestamp Unix, mais
// avec des fuseaux horaires différents attachés.
$dateTimeTaipei = new DateTime("now", $dateTimeZoneTaipei);
$dateTimeJapan = new DateTime("now", $dateTimeZoneJapan);

// Calcul le décalage horaire depuis GMT pour la date/heure contenue dans l'objet $dateTimeTaipei,
// mais en utilisant les règles du fuseau horaire définies pour Tokyo
// ($dateTimeZoneJapan).
$timeOffset = $dateTimeZoneJapan->getOffset($dateTimeTaipei);

// Devrait afficher int(32400) (pour les dates après Sat Sep 8 01:00:00 1951 JST).
var_dump($timeOffset);
?>

Précédent | Sommaire | Suivant
timezone_name_get | Niveau supérieur | timezone_open


timezone_open

(PHP 5 >= 5.1.0RC1)

timezone_open -- Retourne un nouvel objet DateTimeZone

Description

DateTimeZone timezone_open ( string timezone )

DateTimeZone DateTimeZone::__construct ( string timezone )

Liste de paramètres

timezone

Identifiant du fuseau horaire comme étant un nom complet (par exemple Europe/Prague) ou son abréviation (par exemple CET).

Valeurs de retour

Retourne un objet DateTimeZone en cas de succès ou FALSE en cas d'échec.

Précédent | Sommaire | Suivant
timezone_offset_get | Niveau supérieur | timezone_transitions_get


timezone_transitions_get

(no version information, might be only in CVS)

timezone_transitions_get -- Retourne toutes les transitions pour le fuseau horaire

Description

array timezone_transitions_get ( DateTimeZone object )

array DateTimeZone::getTransitions ( void )

Liste de paramètres

object

Objet DateTimeZone.

Valeurs de retour

Retourne un tableau indexé numériquement contenant un tableau associatif avec toutes les transitions en cas de succès ou FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec timezone_transitions_get()

<?php
$timezone = new DateTimeZone("CET");
print_r(reset($timezone->getTransitions()));
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [ts] => -1693706400
    [time] => 1916-04-30T22:00:00+0000
    [offset] => 7200
    [isdst] => 1
    [abbr] => CEST
)

Précédent | Sommaire | Suivant
timezone_open | Niveau supérieur | Fonctions DB++


unicode_encode

(PHP 5 CVS only)

unicode_encode -- Prend une chaîne de caractères unicode et la convertit en une chaîne de caractères dans l'encodage spécifié

Description

string unicode_encode ( unicode input, string encoding )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Liste de paramètres

input

Sa description

encoding

Sa description

Valeurs de retour

Ce que la fonction retourne, premièrement en cas de succès, ensuite en cas d'échec.

Exemples

Exemple 1. Exemple avec unicode_encode()

Du texte qui explique le but de cela

<?php
if ($anexample === true) {
    echo 'Use the PEAR Coding Standards';
}
?>

L'exemple ci-dessus va afficher :

Use the PEAR Coding Standards

Voir aussi

unicode_decode()

Précédent | Sommaire | Suivant
Unicode Functions | Niveau supérieur | unicode_semantics


unicode_semantics

(no version information, might be only in CVS)

unicode_semantics -- Vérifie si la sémantique unicode est active

Description

bool unicode_semantics ( void )

unicode_semantics() vérifie si la sémantique unicode est active.

Valeurs de retour

Returns TRUE or FALSE.

Précédent | Sommaire | Suivant
unicode_encode | Niveau supérieur | URL


wddx_unserialize

(PHP 3 >= 3.0.7, PHP 5 CVS only)

wddx_unserialize -- Délinéarise un paquet WDDX

Description

mixed wddx_unserialize ( string packet )

Délinéarise un paquetpacket WDDX.

Liste de paramètres

packet

Un paquet WDDX, sous la forme d'une chaîne de caractères ou d'un flux.

Valeurs de retour

Retourne le résultat qui peut être une chaîne, un nombre ou un tableau. Notez que les structures sont délinéarisées dans des tableaux associatifs.

Précédent | Sommaire | Suivant
wddx_serialize_vars | Niveau supérieur | Fonctions win32ps


win32_create_service

(PECL)

win32_create_service -- Crée une nouvelle entrée pour service dans la base de données SCM

Description

int win32_create_service ( array details [, string machine] )

Liste de paramètres

details

Un tableau des détails des services :

service

Le nom court du service. C'est le nom que vous utiliserez pour contrôler le service en utilisant la commande net. Le service doit être unique (deux services ne peuvent parager 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.

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.

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

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

Retourne TRUE en cas de succès, retourne un code d'erreur win32 autrement.

Exemples

Exemple 1. Exemple avec win32_create_service()

N'importe quel texte qui décrit le but de cet exemple ou ce qui se passe dans l'exemple.

<?php
$x = win32_create_service(array(
        'service' => 'dummyphp',
        'display' => 'exemple dummy PHP service',
        'params' => __FILE__ . ' run',
));
debug_zval_dump($x);
?>

Voir aussi

win32_delete_service()

Précédent | Sommaire | Suivant
Fonctions win32service | Niveau supérieur | win32_delete_service


win32_delete_service

(PECL)

win32_delete_service -- Supprime une entrée de service de la base de données SCM

Description

int win32_delete_service ( string servicename [, string machine] )

Essaie de supprimer un service de la base de données SCM. Les privilèges d'administrateur sont requis pour que cette fonction réussisse.

Cette fonction ne fait que marquer le service pour suppression. Si d'autre processus (comme l'Applet Services) sont ouverts, alors la suppression sera reportée jusqu'à ce que ces applications soient fermées. Si un service est marqué pour suppression, d'autres tentatives de suppression échoueront et les tentatives de créer un nouveau service avec ce nom échoueront aussi.

Liste de paramètres

servicename

Le nom court du service.

machine

Le nom optionnel de la machine. Si oublié, cela utilisera la machine locale.

Valeurs de retour

Retourne TRUE en cas de succès, retourne un code d'erreur win32 autrement.

Exemples

Exemple 1. Exemple avec win32_delete_service()

Supprime le service dummyphp.

<?php
win32_delete_service('dummyphp');
?>

Précédent | Sommaire | Suivant
win32_create_service | Niveau supérieur | win32_get_last_control_message


win32_get_last_control_message

(PECL)

win32_get_last_control_message -- Retourne le dernier message de contrôle qui a été envoyé à ce service

Description

int win32_get_last_control_message ( void )

Retourne le code de contrôle qui a été envoyé en dernier à ce processus de service. Lorsqu'il fonctionne en tant que service, vous devriez vérifier périodiquement pour déterminer si le service doit être arrêté.

Valeurs de retour

Retourne une constante de contrôle; une de WIN32_SERVICE_CONTROL_CONTINUE, WIN32_SERVICE_CONTROL_INTERROGATE, WIN32_SERVICE_CONTROL_PAUSE, WIN32_SERVICE_CONTROL_STOP, WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE, WIN32_SERVICE_CONTROL_POWEREVENT, WIN32_SERVICE_CONTROL_SESSIONCHANGE.

Voir aussi

win32_start_service_ctrl_dispatcher()

Précédent | Sommaire | Suivant
win32_delete_service | Niveau supérieur | win32_query_service_status


win32_ps_list_procs

(no version information, might be only in CVS)

win32_ps_list_procs -- Liste des processus qui fonctionnent

Description

array win32_ps_list_procs ( void )

Récupère des statistiques à propos de tous les processus qui fonctionnent.

Valeurs de retour

Retourne FALSE en cas d'erreur ou un tableau contenant des statistiques de processus, comme la fonction win32_ps_stat_proc() retourne pour tous les processus qui fonctionnent, en cas de succès.

Voir aussi

win32_ps_stat_proc()

Précédent | Sommaire | Suivant
Fonctions win32ps | Niveau supérieur | win32_ps_stat_mem


win32_ps_stat_mem

(no version information, might be only in CVS)

win32_ps_stat_mem -- Statistiques de l'utilisation de la mémoire

Description

array win32_ps_stat_mem ( void )

Récupère des statistiques à propos de l'utilisation globale de la mémoire.

Valeurs de retour

Retourne FALSE en cas d'échec ou un tableau contenant les informations suivantes en cas de succès :

load

La charge courante de la mémoire en pourcentage de la mémoire physique.

unit

Ceci est toujours 1024 et indique que les valeurs suivantes sont au compte de 1024 octets.

total_phys

Le nombre total de mémoire physique.

avail_phys

Le nombre total encore disponible de mémoire physique.

total_pagefile

Le nombre total de mémoire paginable (mémoire physique + fichier paginé).

avail_pagefile

Le nombre total encore disponible de mémoire paginable (mémoire physique + fichier paginé).

total_virtual

Le nombre total de mémoire virtuelle pour un processus.

avail_virtual

Le nombre total encore disponible de mémoire virtuelle pour un processus.

Précédent | Sommaire | Suivant
win32_ps_list_procs | Niveau supérieur | win32_ps_stat_proc


win32_ps_stat_proc

(no version information, might be only in CVS)

win32_ps_stat_proc -- Statistique de processus

Description

array win32_ps_stat_proc ( [int pid] )

Récupère les statistiques à propos du processus avec l'identifiant pid.

Liste de paramètres

pid

L'identifiant du processus à obtenir des statistiques. Si omis, l'identifiant du processus courant est utilisé.

Valeurs de retour

Retourne FALSE en cas d'échec ou un tableau contenant les informations suivantes en cas de succès :

pid

L'identifiant du processus.

exe

Le chemin de l'image exécutable.

mem

Un tableau contenant les informations à propos des indicateurs de l'utilisation de mémoire suivants : page_fault_count, peak_working_set_size, working_set_size, quota_peak_paged_pool_usage, quota_paged_pool_usage, quota_peak_non_paged_pool_usage, quota_non_paged_pool_usage, pagefile_usage et peak_pagefile_usage.

tms

Un tableau contenant les informations à propos des indicateurs de l'utilisation du temps CPU suivants : created, kernel et user.

Voir aussi

win32_ps_list_procs()

Précédent | Sommaire | Suivant
win32_ps_stat_mem | Niveau supérieur | Fonctions win32service


win32_query_service_status

(PECL)

win32_query_service_status -- Questionne le statut d'un service

Description

mixed win32_query_service_status ( string servicename [, string machine] )

Questionne le statut courant pour un service, retournant un tableau d'informations.

Liste de paramètres

servicename

Le nom court du service.

machine

Le nom optionnel de la machine. Si oublié, cela utilisera la machine locale.

Valeurs de retour

Retourne FALSE en cas d'échec, autrement retourne un tableau contenant les informations suivantes :

ServiceType

Le dwServiceType.

CurrentState

Le dwCurrentState.

ControlsAccepted

Quels contrôles de service sont acceptés par le service.

Win32ExitCode

Si le service quitte, le code de retour du processus.

ServiceSpecificExitCode

Si le service quitte avec une condition d'erreur, le code spécifique du service qui sera enregistré dans le journal d'évènements est visible ici.

CheckPoint

Si le service s'arrête, garde le nombre courant de point de contrôle. Ceci est utilisé par SCM comme un genre de battement de coeur pour détecter un processus de service arrêté. La valeur du point de contrôle est mieux interprétée en conjonction avec la valeur WaitHint.

WaitHint

Si le service s'arrête, il fixera un WaitHint à une valeur de point de contrôle qui indiquera l'exécution 100%. Cela peut être utilisé pour implanter un indicateur de progrès.

ProcessId

L'identifiant de processus de fenêtre. Si 0, le processus ne fonctionne pas.

ServiceFlags

Le dwServiceFlags.

Précédent | Sommaire | Suivant
win32_get_last_control_message | Niveau supérieur | win32_set_service_status


win32_set_service_status

(PECL)

win32_set_service_status -- Met à jour le statut d'un service

Description

bool win32_set_service_status ( int status )

Informe le SCM d'un statut courant d'un service qui fonctionne. Cet appel est seulement valide pour un processus de service qui fonctionne.

Liste de paramètres

status

Le code de statut de service, un de WIN32_SERVICE_RUNNING, WIN32_SERVICE_STOPPED, WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING, WIN32_SERVICE_PAUSE_PENDING, WIN32_SERVICE_PAUSED.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

win32_start_service_ctrl_dispatcher()

Précédent | Sommaire | Suivant
win32_query_service_status | Niveau supérieur | win32_start_service_ctrl_dispatcher


win32_start_service

(PECL)

win32_start_service -- Démarre un service

Description

int win32_start_service ( string servicename [, string machine] )

Essaie de démarrer le service nommé. Normalement, les privilèges d'administrateur sont requis.

Liste de paramètres

servicename

Le nom court du service.

machine

Le nom optionnel de la machine. Si oublié, cela utilisera la machine locale.

Valeurs de retour

Retourne WIN32_NO_ERROR en cas de succès, retourne un code d'erreur win32 autrement.

Voir aussi

win32_stop_service()

Précédent | Sommaire | Suivant
win32_start_service_ctrl_dispatcher | Niveau supérieur | win32_stop_service


win32_start_service_ctrl_dispatcher

(PECL)

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

bool win32_start_service_ctrl_dispatcher ( string name )

Lorsque exécuté via le Gestionnaire de Contrôle de Service, un processus de service est requis pour "archiver" avec lui pour établir un service de surveillance et de communication ergonomique. Cette fonction effectue un archivage en démarrant un thread pour gérer les communications de bas niveau avec le gestionnaire de contrôle de service.

Une fois démarré, le processus de service devrait continuer à archiver avec le gestionnaire de contrôle de service ce qui permet de déterminer si il doit être terminé. Cela est effectué périodiquement en appelant win32_get_last_control_message() et en gérant le code de retour correctement.

Liste de paramètres

name

Le court nom du service, comme enregistré par win32_create_service().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Exemple avec win32_start_service_ctrl_dispatcher()

N'importe quel texte qui décrit le but de cet exemple ou ce qui se passe dans l'exemple.

<?php
if (!win32_start_service_ctrl_dispatcher('dummyphp')) {
  die("Je ne fonctionne probablement pas sous le gestionnaire de contrôle de service");
}

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

Précédent | Sommaire | Suivant
win32_set_service_status | Niveau supérieur | win32_start_service


win32_stop_service

(PECL)

win32_stop_service -- Arrête un service

Description

int win32_stop_service ( string servicename [, string machine] )

Arrête un service nommé. Les privilèges d'administrateur sont requis.

Liste de paramètres

servicename

Le nom court du service.

machine

Le nom optionnel de la machine. Si oublié, cela utilisera la machine locale.

Valeurs de retour

Retourne WIN32_NO_ERROR en cas de succès, retourne un code d'erreur win32 autrement.

Voir aussi

win32_start_service()

Précédent | Sommaire | Suivant
win32_start_service | Niveau supérieur | Fonctions xattr


XMLReader::close

(no version information, might be only in CVS)

XMLReader::close -- Ferme l'entrée XMLReader

Description

class XMLReader {

bool close ( void )

}

Ferme l'entrée de l'objet XMLReader qui est en train d'être analysé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLReader::open
XMLReader::XML

Précédent | Sommaire | Suivant
XMLReader functions | Niveau supérieur | XMLReader::expand


XMLReader::expand

(no version information, might be only in CVS)

XMLReader::expand -- Retourne une copie du noeud courant comme un noeud d'objet DOM

Description

class XMLReader {

DOMNode expand ( void )

}

Cette méthode copie le noeud courant et retourne l'objet approprié DOM.

Valeurs de retour

L'objet DOMNode résultant ou FALSE en cas d'erreur.

Précédent | Sommaire | Suivant
XMLReader::close | Niveau supérieur | XMLReader::getAttribute


XMLReader::getAttribute

(no version information, might be only in CVS)

XMLReader::getAttribute -- Récupère la valeur d'un attribut par nom

Description

class XMLReader {

string getAttribute ( string name )

}

Retourne la valeur d'un attribut par nom ou une chaîne de caractères vide si l'attribut n'existe pas ou n'est pas positionné sur le noeud.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

La valeur de l'attribut ou une chaîne de caractères vide si l'attribut avec le name donné n'existe pas ou n'est pas positionné sur l'élément.

Voir aussi

XMLReader::getAttributeNo
XMLReader::getAttributeNs

Précédent | Sommaire | Suivant
XMLReader::expand | Niveau supérieur | XMLReader::getAttributeNo


XMLReader::getAttributeNo

(no version information, might be only in CVS)

XMLReader::getAttributeNo -- Récupère la valeur d'un attribut par index

Description

class XMLReader {

string getAttributeNo ( int index )

}

Retourne la valeur d'un attribut basé sur sa position ou d'une chaîne de caractères vide si l'attribut n'existe pas ou n'est pas positionné sur le noeud.

Liste de paramètres

index

La position de l'attribut.

Valeurs de retour

La valeur de l'attribut ou une chaîne de caractères vide si aucun attribut n'existe à index ou n'est pas positionné sur l'élément.

Voir aussi

XMLReader::getAttribute
XMLReader::getAttributeNs

Précédent | Sommaire | Suivant
XMLReader::getAttribute | Niveau supérieur | XMLReader::getAttributeNs


XMLReader::getAttributeNs

(no version information, might be only in CVS)

XMLReader::getAttributeNs -- Récupère la valeur d'un attribut par nom local et URI

Description

class XMLReader {

string getAttributeNs ( string localName, string namespaceURI )

}

Retourne la valeur d'un attribut par nom et espace de nom URI ou une chaîne de caractères vide si l'attribut n'existe pas ou n'est pas positionné sur le noeud.

Liste de paramètres

localName

Le nom local.

namespaceURI

L'espace de nom URI.

Valeurs de retour

La valeur de l'attribut ou une chaîne de caractères vide si aucun attribut avec le localName et namespaceURI donnés n'est trouvé ou positionné sur l'élément.

Voir aussi

XMLReader::getAttribute
XMLReader::getAttributeNo

Précédent | Sommaire | Suivant
XMLReader::getAttributeNo | Niveau supérieur | XMLReader::getParserProperty


XMLReader::getParserProperty

(no version information, might be only in CVS)

XMLReader::getParserProperty -- Indique si la propriété spécifiée a été fixée

Description

class XMLReader {

bool getParserProperty ( int property )

}

Indique si la propriété spécifiée a été fixée.

Liste de paramètres

property

Une des constantes d'analyseur.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLReader::setParserProperty

Précédent | Sommaire | Suivant
XMLReader::getAttributeNs | Niveau supérieur | XMLReader::isValid


XMLReader::isValid

(no version information, might be only in CVS)

XMLReader::isValid -- Indique si le document analysé est valide

Description

class XMLReader {

bool isValid ( void )

}

Retourne un booléen indiquant si le document qui est en train d'être analysé est valide.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLReader::setParserProperty
XMLReader::setRelaxNGSchema
XMLReader::setRelaxNGSchemaSource

Précédent | Sommaire | Suivant
XMLReader::getParserProperty | Niveau supérieur | XMLReader::lookupNamespace


XMLReader::lookupNamespace

(no version information, might be only in CVS)

XMLReader::lookupNamespace -- Consulte l'espace de nom pour un préfixe

Description

class XMLReader {

bool lookupNamespace ( string prefix )

}

Consulte dans la portée de l'espace de nom pour un préfixe donné.

Liste de paramètres

prefix

Chaînes de caractères contenant le préfixe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
XMLReader::isValid | Niveau supérieur | XMLReader::moveToAttribute


XMLReader::moveToAttribute

(no version information, might be only in CVS)

XMLReader::moveToAttribute -- Déplace un curseur à un attribut nommé

Description

class XMLReader {

bool moveToAttribute ( string name )

}

Positionne le curseur sur l'attribut nommé.

Liste de paramètres

name

Le nom de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLReader::moveToElement
XMLReader::moveToAttributeNo
XMLReader::moveToAttributeNs
XMLReader::moveToFirstAttribute

Précédent | Sommaire | Suivant
XMLReader::lookupNamespace | Niveau supérieur | XMLReader::moveToAttributeNo


XMLReader::moveToAttributeNo

(no version information, might be only in CVS)

XMLReader::moveToAttributeNo -- Déplace le curseur à un attribut par index

Description

class XMLReader {

bool moveToAttributeNo ( int index )

}

Positionne le curseur sur l'attribut basé sur sa position.

Liste de paramètres

index

La position de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLReader::moveToElement
XMLReader::moveToAttribute
XMLReader::moveToAttributeNs
XMLReader::moveToFirstAttribute

Précédent | Sommaire | Suivant
XMLReader::moveToAttribute | Niveau supérieur | XMLReader::moveToAttributeNs


XMLReader::moveToAttributeNs

(no version information, might be only in CVS)

XMLReader::moveToAttributeNs -- Déplace le curseur à un attribut d'espace de nom

Description

class XMLReader {

bool moveToAttributeNs ( string localName, string namespaceURI )

}

Positionne le curseur sur le nom de l'attribut dans l'espace de nom spécifié.

Liste de paramètres

localName

Le nom local.

namespaceURI

L'espace de nom URI.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLReader::moveToElement
XMLReader::moveToAttribute
XMLReader::moveToAttributeNo
XMLReader::moveToFirstAttribute

Précédent | Sommaire | Suivant
XMLReader::moveToAttributeNo | Niveau supérieur | XMLReader::moveToElement


XMLReader::moveToElement

(no version information, might be only in CVS)

XMLReader::moveToElement -- Positionne le curseur sur l'élément parent de l'attribut courant

Description

class XMLReader {

bool moveToElement ( void )

}

Déplace le curseur de l'élément parent de l'attribut courant. 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.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLReader::moveToAttribute
XMLReader::moveToAttributeNo
XMLReader::moveToAttributeNs
XMLReader::moveToFirstAttribute

Précédent | Sommaire | Suivant
XMLReader::moveToAttributeNs | Niveau supérieur | XMLReader::moveToFirstAttribute


XMLReader::moveToFirstAttribute

(no version information, might be only in CVS)

XMLReader::moveToFirstAttribute -- Positionne le curseur sur le premier attribut

Description

class XMLReader {

bool moveToFirstAttribute ( void )

}

Déplace le curseur sur le premier attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLReader::moveToElement
XMLReader::moveToAttribute
XMLReader::moveToAttributeNo
XMLReader::moveToAttributeNs
XMLReader::moveToNextAttribute

Précédent | Sommaire | Suivant
XMLReader::moveToElement | Niveau supérieur | XMLReader::moveToNextAttribute


XMLReader::moveToNextAttribute

(no version information, might be only in CVS)

XMLReader::moveToNextAttribute -- Positionne le curseur sur le prochain attribut

Description

class XMLReader {

bool moveToNextAttribute ( void )

}

Déplace le curseur sur le prochain attribut si positionné sur un attribut ou déplace sur le premier attribut si positionné sur un élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLReader::moveToElement
XMLReader::moveToAttribute
XMLReader::moveToAttributeNo
XMLReader::moveToAttributeNs
XMLReader::moveToFirstAttribute

Précédent | Sommaire | Suivant
XMLReader::moveToFirstAttribute | Niveau supérieur | XMLReader::next


XMLReader::next

(no version information, might be only in CVS)

XMLReader::next -- Déplace le curseur au prochain noeud en sautant tous les sous arbres

Description

class XMLReader {

bool next ( [string localname] )

}

Positionne le curseur sur le prochain noeud en sautant tous les sous arbres.

Liste de paramètres

localname

Le nom du prochaine noeud à se déplacer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLReader::next
XMLReader::moveToElement
XMLReader::moveToAttribute

Précédent | Sommaire | Suivant
XMLReader::moveToNextAttribute | Niveau supérieur | XMLReader::open


XMLReader::open

(no version information, might be only in CVS)

XMLReader::open -- Fixe le URI contenant le XML à analyser

Description

class XMLReader {

bool open ( string URI [, string encoding [, int options]] )

}

Fixe le URI contenant le document XML à être analysé.

Liste de paramètres

URI

URI pointant vers le document.

encoding

L'encodae du document, ou NULL.

options

Un masque de constante d'options XMLReader.

Historique

Version | Description
5.2.0 | Les paramètres encoding et options ont été ajoutés.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLReader::XML
XMLReader::close

Précédent | Sommaire | Suivant
XMLReader::next | Niveau supérieur | XMLReader::read


XMLReader::read

(no version information, might be only in CVS)

XMLReader::read -- Déplace au prochain noeud dans le document

Description

class XMLReader {

bool read ( void )

}

Déplace le curseur au prochain noeud texte dans le document.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLReader::moveToElement
XMLReader::moveToAttribute
XMLReader::next

Précédent | Sommaire | Suivant
XMLReader::open | Niveau supérieur | XMLReader::setParserProperty


XMLReader::setParserProperty

(no version information, might be only in CVS)

XMLReader::setParserProperty -- Fixe ou supprime des options pour l'analyseur

Description

class XMLReader {

bool setParserProperty ( int property, bool value )

}

Fixe ou supprime 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, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
XMLReader::read | Niveau supérieur | XMLReader::setRelaxNGSchema


XMLReader::setRelaxNGSchema

(no version information, might be only in CVS)

XMLReader::setRelaxNGSchema -- Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG

Description

class XMLReader {

bool setRelaxNGSchema ( string filename )

}

Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG à utiliser pour validation.

Liste de paramètres

filename

Nom du fichier ou URI pointant vers le Schéma RelaxNG.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLReader::setRelaxNGSchemaSource

Précédent | Sommaire | Suivant
XMLReader::setParserProperty | Niveau supérieur | XMLReader::setRelaxNGSchemaSource


XMLReader::setRelaxNGSchemaSource

(no version information, might be only in CVS)

XMLReader::setRelaxNGSchemaSource -- Fixe les donneés contenant le Scéhma RelaxNG

Description

class XMLReader {

bool setRelaxNGSchemaSource ( string source )

}

Fixe les données contenant 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, FALSE en cas d'échec.

Voir aussi

XMLReader::setRelaxNGSchema

Précédent | Sommaire | Suivant
XMLReader::setRelaxNGSchema | Niveau supérieur | XMLReader::XML


XMLReader::XML

(no version information, might be only in CVS)

XMLReader::XML -- Fixe les données contenant le XML à analyser

Description

class XMLReader {

bool open ( string source [, string encoding [, int options]] )

}

Fixe les données contenant le XML à analyser.

Liste de paramètres

source

Chaîne de caractères contenant le XML à être analysée.

encoding

L'encodage du document, ou NULL.

options

Un masque de constantes d'options XMLReader.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLReader::open
XMLReader::close

Précédent | Sommaire | Suivant
XMLReader::setRelaxNGSchemaSource | Niveau supérieur | Fonctions XMLWriter


XMLWriter::endAttribute

(no version information, might be only in CVS)

XMLWriter::endAttribute -- Termine un attribut

Description

Style orienté objet (méthode)

class XMLWriter {

bool endAttribute ( void )

}

Style procédural

bool xmlwriter_end_attribute ( resource xmlwriter )

Termine l'attribut courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startAttribute
XMLWriter::startAttributeNs
XMLWriter::writeAttribute
XMLWriter::writeAttributeNs

Précédent | Sommaire | Suivant
Fonctions XMLWriter | Niveau supérieur | XMLWriter::endCData


XMLWriter::endCData

(no version information, might be only in CVS)

XMLWriter::endCData -- Termine un bloc CDATA

Description

Style orienté objet (méthode)

class XMLWriter {

bool endCData ( void )

}

Style procédural

bool xmlwriter_end_cdata ( resource xmlwriter )

Termine la section CDATA courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startCData
XMLWriter::writeCData

Précédent | Sommaire | Suivant
XMLWriter::endAttribute | Niveau supérieur | XMLWriter::endComment


XMLWriter::endComment

(no version information, might be only in CVS)

XMLWriter::endComment -- Termine un commentaire

Description

Style orienté objet (méthode)

class XMLWriter {

bool endComment ( void )

}

Style procédural

bool xmlwriter_end_comment ( resource xmlwriter )

Termine le commentaire courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startComment
XMLWriter::writeComment

Précédent | Sommaire | Suivant
XMLWriter::endCData | Niveau supérieur | XMLWriter::endDocument


XMLWriter::endDocument

(no version information, might be only in CVS)

XMLWriter::endDocument -- Termine un document

Description

Style orienté objet (méthode)

class XMLWriter {

bool endDocument ( void )

}

Style procédural

bool xmlwriter_end_document ( resource xmlwriter )

Termine le document courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startDocument

Précédent | Sommaire | Suivant
XMLWriter::endComment | Niveau supérieur | XMLWriter::endDTDAttlist


XMLWriter::endDTD

(no version information, might be only in CVS)

XMLWriter::endDTD -- Termine la DTD courante

Description

Style orienté objet (méthode)

class XMLWriter {

bool endDTD ( void )

}

Style procédural

bool xmlwriter_end_dtd ( resource xmlwriter )

Termine la DTD courante du document.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startDTD
XMLWriter::writeDTD

Précédent | Sommaire | Suivant
XMLWriter::endDTDEntity | Niveau supérieur | XMLWriter::endElement


XMLWriter::endDTDAttlist

(no version information, might be only in CVS)

XMLWriter::endDTDAttlist -- Termine la liste des attributs de la DTD courante

Description

Style orienté objet (méthode)

class XMLWriter {

bool endDTDAttlist ( void )

}

Style procédural

bool xmlwriter_end_dtd_attlist ( resource xmlwriter )

Termine la liste des attributs de la DTD courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startDTDAttlist
XMLWriter::writeDTDAttlist

Précédent | Sommaire | Suivant
XMLWriter::endDocument | Niveau supérieur | XMLWriter::endDTDElement


XMLWriter::endDTDElement

(no version information, might be only in CVS)

XMLWriter::endDTDElement -- Termine l'élément de la DTD courante

Description

Style orienté objet (méthode)

class XMLWriter {

bool endDTDElement ( void )

}

Style procédural

bool xmlwriter_end_dtd_element ( resource xmlwriter )

Termine l'élément de la DTD courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startDTDElement
XMLWriter::writeDTDElement

Précédent | Sommaire | Suivant
XMLWriter::endDTDAttlist | Niveau supérieur | XMLWriter::endDTDEntity


XMLWriter::endDTDEntity

(no version information, might be only in CVS)

XMLWriter::endDTDEntity -- Termine l'entité de la DTD courante

Description

Style orienté objet (méthode)

class XMLWriter {

bool endDTDEntity ( void )

}

Style procédural

bool xmlwriter_end_dtd_entity ( resource xmlwriter )

Termine l'entité de la DTD courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startDTDEntity
XMLWriter::writeDTDEntity

Précédent | Sommaire | Suivant
XMLWriter::endDTDElement | Niveau supérieur | XMLWriter::endDTD


XMLWriter::endElement

(no version information, might be only in CVS)

XMLWriter::endElement -- Termine l'élément courant

Description

Style orienté objet (méthode)

class XMLWriter {

bool endElement ( void )

}

Style procédural

bool xmlwriter_end_element ( resource xmlwriter )

Termine l'élément courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startElement
XMLWriter::writeElement

Précédent | Sommaire | Suivant
XMLWriter::endDTD | Niveau supérieur | XMLWriter::endPI


XMLWriter::endPI

(no version information, might be only in CVS)

XMLWriter::endPI -- Termine le PI courant

Description

Style orienté objet (méthode)

class XMLWriter {

bool endPI ( void )

}

Style procédural

bool xmlwriter_end_pi ( resource xmlwriter )

Termine l'instruction courante.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startPI
XMLWriter::writePI

Précédent | Sommaire | Suivant
XMLWriter::endElement | Niveau supérieur | XMLWriter::flush


XMLWriter::flush

(no version information, might be only in CVS)

XMLWriter::flush -- Affiche le buffer courant

Description

Style orienté objet (méthode)

class XMLWriter {

mixed flush ( [bool empty] )

}

Style procédural

mixed xmlwriter_flush ( resource xmlwriter [, bool empty] )

Affiche le buffer courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

empty

Si l'on doit vider le buffer ou non. Par défaut, ce paramètre vaut TRUE.

Valeurs de retour

Si vous aviez ouvert le gestionnaire d'écriture en mémoire, cette fonction retourne le buffer XML généré. Si vous utilisez une URI, cette fonction écrira le buffer et retournera le nombre d'octets écrits.

Précédent | Sommaire | Suivant
XMLWriter::endPI | Niveau supérieur | XMLWriter::fullEndElement


XMLWriter::fullEndElement

(no version information, might be only in CVS)

XMLWriter::fullEndElement -- Termine l'élément courant

Description

Style orienté objet (méthode)

class XMLWriter {

bool fullEndElement ( void )

}

Style procédural

bool xmlwriter_full_end_element ( resource xmlwriter )

Termine l'élément XML courant. Écrit une balise de fin même si l'élément est vide.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::endElement

Précédent | Sommaire | Suivant
XMLWriter::flush | Niveau supérieur | XMLWriter::openMemory


XMLWriter::openMemory

(no version information, might be only in CVS)

XMLWriter::openMemory -- Crée un nouveau xmlwriter en utilisant la mémoire pour l'affichage des chaînes

Description

Style orienté objet (méthode)

class XMLWriter {

bool openMemory ( void )

}

Style procédural

resource xmlwriter_open_memory ( void )

Crée un nouveau 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, FALSE en cas d'échec..

Style procédural : Retourne une ressource wmlwriter pour une utilisation future avec les fonctions wmlwriter en cas de succès, FALSE si une erreur survient.

Voir aussi

XMLWriter::openURI

Précédent | Sommaire | Suivant
XMLWriter::fullEndElement | Niveau supérieur | XMLWriter::openURI


XMLWriter::openURI

(no version information, might be only in CVS)

XMLWriter::openURI -- Crée un nouveau xmlwriter, en utilisant l'URI source pour l'affichage

Description

Style orienté objet (méthode)

class XMLWriter {

bool openURI ( string uri )

}

Style procédural

resource xmlwriter_open_uri ( string uri )

Crée un nouveau XMLWriter, en utilisant l'uri pour l'affichage.

Liste de paramètres

uri

L'URI de la ressource pour l'affichage.

Valeurs de retour

Style orienté objet : Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec..

Style procédural : Retourne une ressource xmlwriter pour une utilisation future avec les fonctions xmlwriter en cas de succès, FALSE si une erreur survient.

Voir aussi

XMLWriter::openMemory

Précédent | Sommaire | Suivant
XMLWriter::openMemory | Niveau supérieur | XMLWriter::outputMemory


XMLWriter::outputMemory

(no version information, might be only in CVS)

XMLWriter::outputMemory -- Retourne le buffer courant

Description

Style orienté objet (méthode)

class XMLWriter {

bool outputMemory ( [bool flush] )

}

Style procédural

string xmlwriter_output_memory ( resource xmlwriter [, bool flush] )

Retourne le buffer courant.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

flush

Si l'on doit afficher le buffer ou non. Par défaut, ce paramètre vaut TRUE.

Valeurs de retour

Retourne le buffer courant sous la forme d'une chaîne de caractères.

Voir aussi

XMLWriter::flush

Précédent | Sommaire | Suivant
XMLWriter::openURI | Niveau supérieur | XMLWriter::setIndentString


XMLWriter::setIndent

(no version information, might be only in CVS)

XMLWriter::setIndent -- Active ou non l'indentation

Description

Style orienté objet (méthode)

class XMLWriter {

bool setIndent ( bool indent )

}

Style procédural

bool xmlwriter_set_indent ( resource xmlwriter, bool indent )

Active ou non l'indentation.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

indent

SI l'on doit activer l'indentation ou non. Par défaut, ce paramètre vaut TRUE.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::setIndentString

Précédent | Sommaire | Suivant
XMLWriter::setIndentString | Niveau supérieur | XMLWriter::startAttributeNs


XMLWriter::setIndentString

(no version information, might be only in CVS)

XMLWriter::setIndentString -- Définit la chaîne à utiliser pour l'indentation

Description

Style orienté objet (méthode)

class XMLWriter {

bool setIndentString ( string indentString )

}

Style procédural

bool xmlwriter_set_indent_string ( resource xmlwriter, string indentString )

Définit la chaîne qui sera utilisée pour indenter chaque élément/attribut d'un document XML.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

indentString

La chaîne pour l'indentation.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::setIndent

Précédent | Sommaire | Suivant
XMLWriter::outputMemory | Niveau supérieur | XMLWriter::setIndent


XMLWriter::startAttribute

(no version information, might be only in CVS)

XMLWriter::startAttribute -- Crée un attribut

Description

Style orienté objet (méthode)

class XMLWriter {

bool startAttribute ( string name )

}

Style procédural

bool xmlwriter_start_attribute ( resource xmlwriter, string name )

Commence un attribut.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startAttributeNs
XMLWriter::endAttribute
XMLWriter::writeAttribute
XMLWriter::writeAttributeNs

Précédent | Sommaire | Suivant
XMLWriter::startAttributeNs | Niveau supérieur | XMLWriter::startCData


XMLWriter::startAttributeNs

(no version information, might be only in CVS)

XMLWriter::startAttributeNs -- Crée un attribut pour l'espace de noms

Description

Style orienté objet (méthode)

class XMLWriter {

bool startAttributeNs ( string prefix, string name, string uri )

}

Style procédural

bool xmlwriter_start_attribute_ns ( resource xmlwriter, string prefix, string name, string uri )

Crée un attribut pour l'espace de noms.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe pour l'espace de noms.

name

Le nom de l'attribut.

uri

L'URI de l'espace de noms.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startAttribute
XMLWriter::endAttribute
XMLWriter::writeAttribute
XMLWriter::writeAttributeNs

Précédent | Sommaire | Suivant
XMLWriter::setIndent | Niveau supérieur | XMLWriter::startAttribute


XMLWriter::startCData

(no version information, might be only in CVS)

XMLWriter::startCData -- Crée une balise CDATA

Description

Style orienté objet (méthode)

class XMLWriter {

bool startCData ( void )

}

Style procédural

bool xmlwriter_start_cdata ( resource xmlwriter )

Commence un bloc CDATA.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::endCData
XMLWriter::writeCData

Précédent | Sommaire | Suivant
XMLWriter::startAttribute | Niveau supérieur | XMLWriter::startComment


XMLWriter::startComment

(no version information, might be only in CVS)

XMLWriter::startComment -- Crée un commentaire

Description

Style orienté objet (méthode)

class XMLWriter {

bool startComment ( void )

}

Style procédural

bool xmlwriter_start_comment ( resource xmlwriter )

Commence un commentaire.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::endComment
XMLWriter::writeComment

Précédent | Sommaire | Suivant
XMLWriter::startCData | Niveau supérieur | XMLWriter::startDocument


XMLWriter::startDocument

(no version information, might be only in CVS)

XMLWriter::startDocument -- Crée un document

Description

Style orienté objet (méthode)

class XMLWriter {

bool startDocument ( [string version [, string encoding [, string standalone]]] )

}

Style procédural

bool xmlwriter_start_document ( resource xmlwriter [, string version [, string encoding [, string standalone]]] )

Commence un document.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

version

Le numéro de version du document dans la déclaration XML. Par défaut, ce paramètre vaut 1.0.

encoding

L'encodage du document dans la déclaration XML. NULL par défaut.

standalone

yes ou no. NULL par défaut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::endDocument

Précédent | Sommaire | Suivant
XMLWriter::startComment | Niveau supérieur | XMLWriter::startDTDAttlist


XMLWriter::startDTD

(no version information, might be only in CVS)

XMLWriter::startDTD -- Crée une DTD

Description

Style orienté objet (méthode)

class XMLWriter {

bool startDTD ( string qualifiedName [, string publicId [, string systemId]] )

}

Style procédural

bool xmlwriter_start_dtd ( resource xmlwriter, string qualifiedName [, string publicId [, string systemId]] )

Commence une DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

qualifiedName

Le nom qualifié du type de document à créer.

publicId

L'identifiant publique externe.

systemId

L'identifiant système externe.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::endDTD
XMLWriter::writeDTD

Précédent | Sommaire | Suivant
XMLWriter::startDTDEntity | Niveau supérieur | XMLWriter::startElementNs


XMLWriter::startDTDAttlist

(no version information, might be only in CVS)

XMLWriter::startDTDAttlist -- Crée une liste d'attributs pour la DTD

Description

Style orienté objet (méthode)

class XMLWriter {

bool startDTDAttlist ( string name )

}

Style procédural

bool xmlwriter_start_dtd_attlist ( resource xmlwriter, string name )

Crée une liste d'attributs pour la DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de la liste d'attributs.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::endDTDAttlist
XMLWriter::writeDTDAttlist

Précédent | Sommaire | Suivant
XMLWriter::startDocument | Niveau supérieur | XMLWriter::startDTDElement


XMLWriter::startDTDElement

(no version information, might be only in CVS)

XMLWriter::startDTDElement -- Crée un élément DTD

Description

Style orienté objet (méthode)

class XMLWriter {

bool startDTDElement ( string qualifiedName )

}

Style procédural

bool xmlwriter_start_dtd_element ( resource xmlwriter, string qualifiedName )

Commende un élément DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

qualifiedName

Le nom qualifié du type de document à créer.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::endDTDElement
XMLWriter::writeDTDElement

Précédent | Sommaire | Suivant
XMLWriter::startDTDAttlist | Niveau supérieur | XMLWriter::startDTDEntity


XMLWriter::startDTDEntity

(no version information, might be only in CVS)

XMLWriter::startDTDEntity -- Crée une entité DTD

Description

Style orienté objet (méthode)

class XMLWriter {

bool startDTDEntity ( string name, bool isparam )

}

Style procédural

bool xmlwriter_start_dtd_entity ( resource xmlwriter, string name, bool isparam )

Commence une entité DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'entité.

isparam

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::endDTDEntity
XMLWriter::writeDTDEntity

Précédent | Sommaire | Suivant
XMLWriter::startDTDElement | Niveau supérieur | XMLWriter::startDTD


XMLWriter::startElement

(no version information, might be only in CVS)

XMLWriter::startElement -- Crée un élément

Description

Style orienté objet (méthode)

class XMLWriter {

bool startElement ( string name )

}

Style procédural

bool xmlwriter_start_element ( resource xmlwriter, string name )

Commence un élément.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::endElement
XMLWriter::writeElement

Précédent | Sommaire | Suivant
XMLWriter::startElementNs | Niveau supérieur | XMLWriter::startPI


XMLWriter::startElementNs

(no version information, might be only in CVS)

XMLWriter::startElementNs -- Crée un élément d'un espace de noms

Description

Style orienté objet (méthode)

class XMLWriter {

bool startElementNs ( string prefix, string name, string uri )

}

Style procédural

bool xmlwriter_start_element_ns ( resource xmlwriter, string prefix, string name, string uri )

Crée un élément d'un espace de noms.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe de l'espace de noms.

name

Le nom de l'élément.

uri

L'URI de l'espace de noms.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::endElement
XMLWriter::writeElementNS

Précédent | Sommaire | Suivant
XMLWriter::startDTD | Niveau supérieur | XMLWriter::startElement


XMLWriter::startPI

(no version information, might be only in CVS)

XMLWriter::startPI -- Crée une balise PI

Description

Style orienté objet (méthode)

class XMLWriter {

bool startPI ( string target )

}

Style procédural

bool xmlwriter_start_pi ( resource xmlwriter, string target )

Commence une balise d'instruction.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

target

La cible de l'instruction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::endPI
XMLWriter::writePI

Précédent | Sommaire | Suivant
XMLWriter::startElement | Niveau supérieur | XMLWriter::text


XMLWriter::text

(no version information, might be only in CVS)

XMLWriter::text -- Écrit du texte

Description

Style orienté objet (méthode)

class XMLWriter {

bool text ( string content )

}

Style procédural

bool xmlwriter_text ( resource xmlwriter, string content )

Écrit du texte.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

content

Le contenu du texte.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
XMLWriter::startPI | Niveau supérieur | XMLWriter::writeAttributeNs


XMLWriter::writeAttribute

(no version information, might be only in CVS)

XMLWriter::writeAttribute -- Écrit un attribut

Description

Style orienté objet (méthode)

class XMLWriter {

bool writeAttribute ( string name, string value )

}

Style procédural

bool xmlwriter_write_attribute ( resource xmlwriter, string name, string value )

Écrit un attribut.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'attribut.

value

La valeur de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::writeAttributeNs
XMLWriter::startAttribute
XMLWriter::startAttributeNs
XMLWriter::endAttribute

Précédent | Sommaire | Suivant
XMLWriter::writeAttributeNs | Niveau supérieur | XMLWriter::writeCData


XMLWriter::writeAttributeNs

(no version information, might be only in CVS)

XMLWriter::writeAttributeNs -- Écrit un attribut d'un espace de noms

Description

Style orienté objet (méthode)

class XMLWriter {

bool writeAttributeNs ( string prefix, string name, string uri, string content )

}

Style procédural

bool xmlwriter_write_attribute_ns ( resource xmlwriter, string prefix, string name, string uri, string content )

Écrit un attribut d'un espace de noms.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe de l'espace de noms.

name

Le nom de l'attribut.

uri

L'URI de l'espace de noms.

content

La valeur de l'attribut.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::writeAttribute
XMLWriter::startAttribute
XMLWriter::startAttributeNs
XMLWriter::endAttribute

Précédent | Sommaire | Suivant
XMLWriter::text | Niveau supérieur | XMLWriter::writeAttribute


XMLWriter::writeCData

(no version information, might be only in CVS)

XMLWriter::writeCData -- Écrit un bloc CDATA

Description

Style orienté objet (méthode)

class XMLWriter {

bool writeCData ( string content )

}

Style procédural

bool xmlwriter_write_cdata ( resource xmlwriter, string content )

Écrit un bloc CDATA.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

content

Le contenu du bloc CDATA.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startCData
XMLWriter::endCData

Précédent | Sommaire | Suivant
XMLWriter::writeAttribute | Niveau supérieur | XMLWriter::writeComment


XMLWriter::writeComment

(no version information, might be only in CVS)

XMLWriter::writeComment -- Écrit un commentaire

Description

Style orienté objet (méthode)

class XMLWriter {

bool writeComment ( string content )

}

Style procédural

bool xmlwriter_write_comment ( resource xmlwriter, string content )

Écrit un commentaire.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

content

Le contenu du commentaire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startComment
XMLWriter::endComment

Précédent | Sommaire | Suivant
XMLWriter::writeCData | Niveau supérieur | XMLWriter::writeDTDAttlist


XMLWriter::writeDTD

(no version information, might be only in CVS)

XMLWriter::writeDTD -- Écrit une DTD

Description

Style orienté objet (méthode)

class XMLWriter {

bool writeDTD ( string name [, string publicId [, string systemId [, string subset]]] )

}

Style procédural

bool xmlwriter_write_dtd ( resource xmlwriter, string name [, string publicId [, string systemId [, string subset]]] )

Écrit une DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de la DTD.

publicId

L'identifiant publique externe.

systemId

L'identifiant système externe.

subset

Le contenu de la DTD.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startDTD
XMLWriter::endDTD

Précédent | Sommaire | Suivant
XMLWriter::writeDTDEntity | Niveau supérieur | XMLWriter::writeElementNS


XMLWriter::writeDTDAttlist

(no version information, might be only in CVS)

XMLWriter::writeDTDAttlist -- Écrit une liste d'attributs DTD

Description

Style orienté objet (méthode)

class XMLWriter {

bool writeDTDAttlist ( string name, string content )

}

Style procédural

bool xmlwriter_write_dtd_attlist ( resource xmlwriter, string name, string content )

Écrit une liste d'attribut DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de la liste d'attributs DTD.

content

Le contenu de la liste d'attributs DTD.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startDTDAttlist
XMLWriter::endDTDAttlist

Précédent | Sommaire | Suivant
XMLWriter::writeComment | Niveau supérieur | XMLWriter::writeDTDElement


XMLWriter::writeDTDElement

(no version information, might be only in CVS)

XMLWriter::writeDTDElement -- Écrit un élément DTD

Description

Style orienté objet (méthode)

class XMLWriter {

bool writeDTDElement ( string name, string content )

}

Style procédural

bool xmlwriter_write_dtd_element ( resource xmlwriter, string name, string content )

Écrit un élément DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'élément DTD.

content

Le contenu de l'élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startDTDElement
XMLWriter::endDTDElement

Précédent | Sommaire | Suivant
XMLWriter::writeDTDAttlist | Niveau supérieur | XMLWriter::writeDTDEntity


XMLWriter::writeDTDEntity

(no version information, might be only in CVS)

XMLWriter::writeDTDEntity -- Écrit une entité DTD

Description

Style orienté objet (méthode)

class XMLWriter {

bool writeDTDEntity ( string name, string content )

}

Style procédural

bool xmlwriter_write_dtd_entity ( resource xmlwriter, string name, string content )

Écrit une entité DTD.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'entité.

content

Le contenu de l'entité.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startDTDEntity
XMLWriter::endDTDEntity

Précédent | Sommaire | Suivant
XMLWriter::writeDTDElement | Niveau supérieur | XMLWriter::writeDTD


XMLWriter::writeElement

(no version information, might be only in CVS)

XMLWriter::writeElement -- Écrit un élément

Description

Style orienté objet (méthode)

class XMLWriter {

bool writeElement ( string name, string content )

}

Style procédural

bool xmlwriter_write_element ( resource xmlwriter, string name, string content )

Écrit un élément.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

name

Le nom de l'élément.

content

Le contenu de l'élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startElement
XMLWriter::endElement
XMLWriter::writeElementNS

Précédent | Sommaire | Suivant
XMLWriter::writeElementNS | Niveau supérieur | XMLWriter::writePI


XMLWriter::writeElementNS

(no version information, might be only in CVS)

XMLWriter::writeElementNS -- Écrit un élément d'un espace de noms

Description

Style orienté objet (méthode)

class XMLWriter {

bool writeElementNS ( string prefix, string name, string uri, string content )

}

Style procédural

bool xmlwriter_write_element_ns ( resource xmlwriter, string prefix, string name, string uri, string content )

Écrit un élément d'un espace de noms.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

prefix

Le préfixe de l'espace de noms.

name

Le nom de l'élément.

uri

L'URI de l'espace de noms.

content

Le contenu de l'élément.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startElementNs
XMLWriter::endElement
XMLWriter::writeElement

Précédent | Sommaire | Suivant
XMLWriter::writeDTD | Niveau supérieur | XMLWriter::writeElement


XMLWriter::writePI

(no version information, might be only in CVS)

XMLWriter::writePI -- Écrit la balise PI

Description

Style orienté objet (méthode)

class XMLWriter {

bool writePI ( string target, string content )

}

Style procédural

bool xmlwriter_write_pi ( resource xmlwriter, string target, string content )

Écrit la balise PI.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

target

La cible de l'instruction.

content

Le contenu de l'instruction.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::startPI
XMLWriter::endPI

Précédent | Sommaire | Suivant
XMLWriter::writeElement | Niveau supérieur | XMLWriter::writeRaw


XMLWriter::writeRaw

(no version information, might be only in CVS)

XMLWriter::writeRaw -- Écrit un texte XML brut

Description

Style orienté objet (méthode)

class XMLWriter {

bool writeRaw ( string content )

}

Style procédural

bool xmlwriter_write_raw ( resource xmlwriter, string content )

Écrit un texte XML brut.

Liste de paramètres

xmlwriter

Uniquement pour les appels procéduraux. La ressource XMLWriter qui a été modifiée. Cette ressource provient d'un appel à xmlwriter_open_uri() ou xmlwriter_open_memory().

content

Le texte à écrire.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

XMLWriter::text

Précédent | Sommaire | Suivant
XMLWriter::writePI | Niveau supérieur | XSL


xpath_register_ns

(PHP 4 >= 4.2.0, PECL)

xpath_register_ns -- Sauvegarde l'espace de nom donné dans le contexte XPath passé

Description

bool xpath_register_ns ( XPathContext xpath_context, string prefix, string uri )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

xpath_register_ns_auto()

Précédent | Sommaire | Suivant
xpath_register_ns_auto | Niveau supérieur | xptr_eval


xpath_register_ns_auto

(PECL)

xpath_register_ns_auto -- Sauvegarde l'espace de nom donné dans le contexte XPath passé

Description

bool xpath_register_ns_auto ( XPathContext xpath_context [, object context_node] )

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Voir aussi

xpath_register_ns()

Précédent | Sommaire | Suivant
xpath_new_context | Niveau supérieur | xpath_register_ns


yaz_es

(PECL)

yaz_es -- Prépare pour une Requête de Service Étendu

Description

void yaz_es ( resource id, string type, array args )

Cette fonction prépare pour une Requête de Service Étendu. Les Services Étendus sont de la famille des nombreux Z39.50, comme Record Update, Item Order, Database administration, etc.

Note : Plusieurs serveurs Z39.50 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 queue 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 qui représente 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. Référez-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()

Précédent | Sommaire | Suivant
yaz_es_result | Niveau supérieur | yaz_get_option


ZipArchive::addFile

(no version information, might be only in CVS)

ZipArchive::addFile -- Ajoute un fichier à l'archive ZIP depuis le chemin fourni

Description

bool ZipArchive::addFile ( string filename [, string localname] )

Ajoute un fichier à une archive ZIP depuis le chemin fourni.

Liste de paramètres

filename

Le chemin vers le fichier à ajouter

localname

nom local dans l'archive ZIP

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Cet exemple ouvre une archive ZIP test.zip et ajoute le fichier /path/to/index.txt. en tant que newname.txt.

Exemple 1. Ouverture et extraction

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

Précédent | Sommaire | Suivant
zip_read | Niveau supérieur | ZipArchive::addFromString


ZipArchive::addFromString

(no version information, might be only in CVS)

ZipArchive::addFromString -- Ajoute un fichier à une archive ZIP en utilsant son contenu

Description

bool ZipArchive::addFromString ( string localname, string contents )

Ajoute un fichier à une archive ZIP en utilisant son contenu.

Liste de paramètres

localname

Le nom de l'entrée à créer

contents

Le contenu à utiliser pour créer l'entrée. Ceci est utilisé dans un mode binaire sécurisé.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
ZipArchive::addFile | Niveau supérieur | ZipArchive::close


ZipArchive::close

(no version information, might be only in CVS)

ZipArchive::close -- Ferme l'archive active (ouverte ou nouvellement créée)

Description

bool ZipArchive::close ( void )

Ferme une archive ouverte ou nouvellement créée et sauvegarde les modifications. Cette méthode est appelée automatiquement à la fin du script.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ZipArchive::addFromString | Niveau supérieur | ZipArchive::deleteIndex


ZipArchive::deleteIndex

(no version information, might be only in CVS)

ZipArchive::deleteIndex -- Efface une entrée de l'archive en utilisant son index

Description

bool ZipArchive::deleteIndex ( int index )

Efface une entrée de l'archive en utilisant son index.

Liste de paramètres

index

Index de l'entrée à effacer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
ZipArchive::close | Niveau supérieur | ZipArchive::deleteName


ZipArchive::deleteName

(no version information, might be only in CVS)

ZipArchive::deleteName -- Efface une entrée dans l'archive en utilisant son nom

Description

bool ZipArchive::deleteName ( string name )

Efface une entrée dans l'archive en utilisant son nom.

Liste de paramètres

name

Nom de l'entrée à effacer

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Efface un fichier de l'archive en utilisant son nom

<?php
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE) {
    $zip->deleteName('testfromfile.php');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>

Précédent | Sommaire | Suivant
ZipArchive::deleteIndex | Niveau supérieur | ZipArchive::extractTo


ZipArchive::extractTo

(no version information, might be only in CVS)

ZipArchive::extractTo -- Extrait le contenu de l'archive

Description

mixed ZipArchive::extractTo ( string destination [, mixed entries] )

Extrait l'archive complète ou les fichiers fournis vers un chemin spécifié.

Liste de paramètres

destination

Endroit où l'on doit extraire les fichiers

entries

Les entrées à extraire. Ce peut être soit le nom d'une entrée ou un tableau de noms

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Cet exemple ouvre une archive ZIP, lit chaque fichier et affiche leurs contenus. L'archive test2.zip utilisée dans cet exemple est une des archives de test fournie dans les sources de ZZIPlib.

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 uniquement 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';
}
?>

Précédent | Sommaire | Suivant
ZipArchive::deleteName | Niveau supérieur | ZipArchive::getArchiveComment


ZipArchive::getArchiveComment

(no version information, might be only in CVS)

ZipArchive::getArchiveComment -- Retourne le commentaire de l'archive ZIP

Description

string ZipArchive::getArchiveComment ( void )

Retourne le commentaire de l'archive ZIP.

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

Précédent | Sommaire | Suivant
ZipArchive::extractTo | Niveau supérieur | ZipArchive::getCommentIndex


ZipArchive::getCommentIndex

(no version information, might be only in CVS)

ZipArchive::getCommentIndex -- Retourne le commentaire d'une entrée

Description

string ZipArchive::getCommentIndex ( int index [, int flags] )

Retourne le commentaire d'une entrée en utilisant l'index de l'entrée.

Liste de paramètres

index

Index de l'entrée

flags

Si ce flag est défini à ZIPARCHIVE::FL_UNCHANGED, le commentaire original est retourné.

Valeurs de retour

Retourne le commentaire en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Affiche le commentaire d'une entrée

<?php
$zip = new ZipArchive;
$res = $zip->open('test1.zip')
if ($res === TRUE) {
    var_dump($zip->getCommentIndex(1));
} else {
    echo 'échec, code:' . $res;
}
?>

Précédent | Sommaire | Suivant
ZipArchive::getArchiveComment | Niveau supérieur | ZipArchive::getCommentName


ZipArchive::getCommentName

(no version information, might be only in CVS)

ZipArchive::getCommentName -- Retourne le commentaire d'une entrée en utilisant le nom de l'entrée

Description

string ZipArchive::getCommentName ( string name [, int flags] )

Retourne le commentaire d'une entrée en utilisant le nom de l'entrée.

Liste de paramètres

name

Nom de l'entrée

flags

Si ce flag est défini à ZIPARCHIVE::FL_UNCHANGED, le commentaire original est retourné.

Valeurs de retour

Retourne le commentaire en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Affiche le commentaire d'une entrée

<?php
$zip = new ZipArchive;
$res = $zip->open('test1.zip')
if ($res === TRUE) {
    var_dump($zip->getCommentName('test/entry1.txt'));
} else {
    echo 'échec, code:' . $res;
}
?>

Précédent | Sommaire | Suivant
ZipArchive::getCommentIndex | Niveau supérieur | ZipArchive::getFromIndex


ZipArchive::getFromIndex

(no version information, might be only in CVS)

ZipArchive::getFromIndex -- Retourne le contenu d'une entrée en utilisant son index

Description

mixed ZipArchive::getFromIndex ( int index [, int flags] )

Retourne le contenu d'une entrée en utilisant son index.

Liste de paramètres

index

Index de l'entrée

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

Précédent | Sommaire | Suivant
ZipArchive::getCommentName | Niveau supérieur | ZipArchive::getFromName


ZipArchive::getFromName

(no version information, might be only in CVS)

ZipArchive::getFromName -- Retourne le contenu de l'entrée en utilisant son nom

Description

mixed ZipArchive::getFromName ( string name [, int flags] )

Retourne le contenu de l'entrée en utilisant son nom.

Liste de paramètres

name

Nom de l'entrée

flags

Le flag à utiliser pour ouvrir l'archive.

  • ZIPARCHIVE::FL_NOCASE

  • ZIPARCHIVE::FL_NODIR

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

Précédent | Sommaire | Suivant
ZipArchive::getFromIndex | Niveau supérieur | ZipArchive::getNameIndex


ZipArchive::getNameIndex

(no version information, might be only in CVS)

ZipArchive::getNameIndex -- Retourne le nom d'une entrée en utilisant son index

Description

string ZipArchive::getNameIndex ( int index )

Retourne le nom d'une entrée en utilisant son index.

Liste de paramètres

index

Index de l'entrée

Valeurs de retour

Retourne le nom en cas de succès, ou FALSE si une erreur survient.

Précédent | Sommaire | Suivant
ZipArchive::getFromName | Niveau supérieur | ZipArchive::getStream


ZipArchive::getStream

(no version information, might be only in CVS)

ZipArchive::getStream -- Récupère un gestionnaire de fichier pour l'entrée définie par son nom (lecture seul)

Description

resource ZipArchive::getStream ( string name )

Récupère un gestionnaire de fichier pour l'entrée définie par son nom. Actuellement, cette fonction ne supporte que les opérations de lecture.

Liste de paramètres

name

Le nom de l'entrée à utiliser

Valeurs de retour

Retourne un pointeur de fichier (ressource) en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Récupère le contenu de l'entrée avec la fonction fread et le stocke

<?php
$content = '';
$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. Identique à l'exemple précédent mais avec la fonction fopen et le gestionnaire de flux ZIP

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

Précédent | Sommaire | Suivant
ZipArchive::getNameIndex | Niveau supérieur | ZipArchive::locateName


ZipArchive::locateName

(no version information, might be only in CVS)

ZipArchive::locateName -- Retourne l'index d'une entrée de l'archive

Description

mixed ZipArchive::locateName ( string name [, int flags] )

Localise une entrée en utilisant son nom.

Liste de paramètres

name

Le nom de l'entrée à chercher

flags

La fonction retourne l'index du fichier dans l'archive. Le flag est spécifié par les valeurs suivantes ou par 0 pour aucun d'entre eux.

  • ZIPARCHIVE::FL_NOCASE

  • ZIPARCHIVE::FL_NODIR

Valeurs de retour

Retourne l'index de l'entrée en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple 1. Crée une archive et l'utilise avec locateName

<?php
$file = 'testlocate.zip';

$zip = new ZipArchive;
if ($zip->open($file, ZIPARCHIVE::CREATE) !== TRUE) {
    exit('failed');
}

$zip->addFromString('entry1.txt', 'entry #1');
$zip->addFromString('entry2.txt', 'entry #2');
$zip->addFromString('dir/entry2d.txt', 'entry #2');

if (!$zip->status == ZIPARCHIVE::ER_OK) {
    echo "échec lors de l'écriture ZIP\n";
}
$zip->close();

if ($zip->open($file) === TRUE) {
    exit('échec');
}

echo $zip->locateName('entry1.txt') . "\n";
echo $zip->locateName('eNtry2.txt') . "\n";
echo $zip->locateName('eNtry2.txt', ZIPARCHIVE::FL_NOCASE) . "\n";
echo $zip->locateName('enTRy2d.txt', ZIPARCHIVE::FL_NOCASE|ZIPARCHIVE::FL_NODIR) . "\n";
$zip->close();

?>

Précédent | Sommaire | Suivant
ZipArchive::getStream | Niveau supérieur | ZipArchive::open


ZipArchive::open

(no version information, might be only in CVS)

ZipArchive::open -- Ouvre une archive ZIP

Description

mixed ZipArchive::open ( string filename [, int flags] )

Ouvre une nouvelle archive ZIP pour lecture, écriture et modification.

Liste de paramètres

filename

Le nom du fichier ZIP à ouvrir.

flags

Le mode à utiliser pour ouvrir l'archive.

  • ZIPARCHIVE::OVERWRITE

  • ZIPARCHIVE::CREATE

  • ZIPARCHIVE::EXCL

  • ZIPARCHIVE::CHECKCONS

Valeurs de retour

Error codes

Retourne TRUE en cas de succès ou sinon, le code erreur

  • ZIPARCHIVE::ER_EXISTS

  • ZIPARCHIVE::ER_INCONS

  • ZIPARCHIVE::ER_INVAL

  • ZIPARCHIVE::ER_MEMORY

  • ZIPARCHIVE::ER_NOENT

  • ZIPARCHIVE::ER_NOZIP

  • ZIPARCHIVE::ER_OPEN

  • ZIPARCHIVE::ER_READ

  • ZIPARCHIVE::ER_SEEK

Exemples

Cet exemple ouvre une archive ZIP, lit chaque fichier et affiche leurs contenus. L'archive test2.zip de cet exemple est une des archives contenue dans les sources de ZZIPlib.

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

Précédent | Sommaire | Suivant
ZipArchive::locateName | Niveau supérieur | ZipArchive::renameIndex


ZipArchive::renameIndex

(no version information, might be only in CVS)

ZipArchive::renameIndex -- Renomme une entrée définie par son index

Description

bool ZipArchive::renameIndex ( int index, string newname )

Renomme une entrée définie par son index.

Liste de paramètres

index

Index de l'entrée à renommer

newname

Nouveau nom

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
ZipArchive::open | Niveau supérieur | ZipArchive::renameName


ZipArchive::renameName

(no version information, might be only in CVS)

ZipArchive::renameName -- Renomme une entrée définie par son nom

Description

bool ZipArchive::renameName ( string name, string newname )

Renomme une entrée définie par son nom

Liste de paramètres

name

Nom de l'entrée à renommer

newname

Nouveau nom

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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

Précédent | Sommaire | Suivant
ZipArchive::renameIndex | Niveau supérieur | ZipArchive::setArchiveComment


ZipArchive::setArchiveComment

(no version information, might be only in CVS)

ZipArchive::setArchiveComment -- Définit le commentaire d'une archive ZIP

Description

mixed ZipArchive::setArchiveComment ( string comment )

Définit le commentaire d'une archive ZIP.

Liste de paramètres

comment

Le contenu du commentaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Exemples

Exemple 1. Création d'une archive et définission 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');
    $z->setArchiveComment('commentaire de l\'archive');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>

Précédent | Sommaire | Suivant
ZipArchive::renameName | Niveau supérieur | ZipArchive::setCommentIndex


ZipArchive::setCommentIndex

(no version information, might be only in CVS)

ZipArchive::setCommentIndex -- Définit le commentaire d'une entrée définie par son index

Description

mixed ZipArchive::setCommentIndex ( int index, string comment )

Définit le commentaire d'une entrée définie par son index.

Liste de paramètres

index

Index de l'entrée

comment

Le contenu du commentaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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) {
    $z->setCommentIndex(2, 'commentaire de l\'entrée');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>

Précédent | Sommaire | Suivant
ZipArchive::setArchiveComment | Niveau supérieur | ZipArchive::setCommentName


ZipArchive::setCommentName

(no version information, might be only in CVS)

ZipArchive::setCommentName -- Définit le commentaire d'une entrée spécifiée par son nom

Description

mixed ZipArchive::setCommentIndex ( string name, string comment )

Définit le commentaire pour une entrée définie par son nom.

Liste de paramètres

name

Nom de l'entrée

comment

Le contenu du commentaire

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

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) {
    $z->setCommentName('entry1.txt', 'commentaire de l\'entrée');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>

Précédent | Sommaire | Suivant
ZipArchive::setCommentIndex | Niveau supérieur | ZipArchive::statIndex


ZipArchive::statIndex

(no version information, might be only in CVS)

ZipArchive::statIndex -- Récupère les détails d'une entrée définie par son index

Description

mixed ZipArchive::statIndex ( int index [, int flags] )

Cette fonction obtient des informations d'une entrée définie par son index.

Liste de paramètres

index

Index de l'entrée

flags

ZIPARCHIVE::FL_UNCHANGED permet d'obtenir les informations du fichier original de l'archive, ignorant toutes les modifications effectuées

Valeurs de retour

Retourne un tableau contenant les détails de l'entrée, ou FALSE si une erreur survient.

Exemples

Exemple 1. Récupère les informations d'une entrée

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip')
if ($res === TRUE) {
    print_r($zip->statIndex(3));
    $zip->close();
} else {
    echo 'échec, code:' . $res;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)

Précédent | Sommaire | Suivant
ZipArchive::setCommentName | Niveau supérieur | ZipArchive::statName


ZipArchive::statName

(no version information, might be only in CVS)

ZipArchive::statName -- Récupère les détails de l'entrée définie par son nom

Description

mixed ZipArchive::statName ( name name [, int flags] )

Cette fonction obtient des informations sur l'entrée définie par son nom.

Liste de paramètres

name

Nom de l'entrée

flags

Le flag spécifie comment la recherche sur le nom doit s'effectuer. ZIPARCHIVE::FL_UNCHANGED doit être utilisé pour récupérer les informations sur le fichier original de l'archive, ignorant toutes les modifications effectuées.

  • ZIPARCHIVE::FL_NOCASE

  • ZIPARCHIVE::FL_NODIR

  • ZIPARCHIVE::FL_UNCHANGED

Valeurs de retour

Retourne un tableau contenant les détails de l'entrée, ou FALSE si une erreur survient.

Exemples

Exemple 1. Récupère les informations d'une entrée

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip')
if ($res === TRUE) {
    print_r($zip->statName('foobar/baz'));
    $zip->close();
} else {
    echo 'échec, code:' . $res;
}
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)

Précédent | Sommaire | Suivant
ZipArchive::statIndex | Niveau supérieur | ZipArchive::unchangeAll


ZipArchive::unchangeAll

(no version information, might be only in CVS)

ZipArchive::unchangeAll -- Annule toutes les modifications faites sur l'archive

Description

mixed ZipArchive::unchangeAll ( void )

Annule toutes les modifications faites sur l'archive.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ZipArchive::statName | Niveau supérieur | ZipArchive::unchangeArchive


ZipArchive::unchangeArchive

(no version information, might be only in CVS)

ZipArchive::unchangeArchive -- Annule toutes les modificatons globales faites sur l'archive

Description

mixed ZipArchive::unchangeArchive ( void )

Annule toutes les modifications faites sur l'archive. Actuellement, ceci annule uniquement les modifications effectuées sur les commentaires.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ZipArchive::unchangeAll | Niveau supérieur | ZipArchive::unchangeIndex


ZipArchive::unchangeIndex

(no version information, might be only in CVS)

ZipArchive::unchangeIndex -- Annule toutes les modifications faites sur une entrée, définie par nom index

Description

mixed ZipArchive::unchangeIndex ( int index )

Annule toutes les modifications faites sur une entrée, définie par son index.

Liste de paramètres

index

Index de l'entrée

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ZipArchive::unchangeArchive | Niveau supérieur | ZipArchive::unchangeName


ZipArchive::unchangeName

(no version information, might be only in CVS)

ZipArchive::unchangeName -- Annule toutes les modifications faites sur une entrée, définie par son nom

Description

mixed ZipArchive::unchangeName ( string name )

Annule toutes les modifcations 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, FALSE en cas d'échec.

Précédent | Sommaire | Suivant
ZipArchive::unchangeIndex | Niveau supérieur | Compression Zlib


HaruAnnotation

(no version information, might be only in CVS)

HaruAnnotation -- Haru PDF Annotation Class

Synopsis

class HaruAnnotation

Class Members

Constantes pré-définies

Tableau 1.

Type | Name | Description
int | HaruAnnotation::NO_HIGHLIGHT |
int | HaruAnnotation::INVERT_BOX |
int | HaruAnnotation::INVERT_BORDER |
int | HaruAnnotation::DOWN_APPEARANCE |
int | HaruAnnotation::ICON_COMMENT |
int | HaruAnnotation::ICON_KEY |
int | HaruAnnotation::ICON_NOTE |
int | HaruAnnotation::ICON_HELP |
int | HaruAnnotation::ICON_NEW_PARAGRAPH |
int | HaruAnnotation::ICON_PARAGRAPH |
int | HaruAnnotation::ICON_INSERT |

Méthodes

HaruAnnotation::setBorderStyle()
HaruAnnotation::setHighlightMode()
HaruAnnotation::setIcon()
HaruAnnotation::setOpened()

Précédent | Sommaire | Suivant
HaruOutline | Niveau supérieur | HaruDestination


HaruDestination

(no version information, might be only in CVS)

HaruDestination -- Haru PDF Destination Class

Synopsis

class HaruDestination

Class Members

Méthodes

HaruDestination::setFitBH()
HaruDestination::setFitBV()
HaruDestination::setFitB()
HaruDestination::setFitH()
HaruDestination::setFitR()
HaruDestination::setFitV()
HaruDestination::setFit()
HaruDestination::setXYZ()

Précédent | Sommaire | Suivant
HaruAnnotation | Niveau supérieur | HaruAnnotation::setBorderStyle


HaruDoc

(no version information, might be only in CVS)

HaruDoc -- Haru PDF Document Class

Synopsis

class HaruDoc

Class Members

Constantes pré-définies

Tableau 1.

Type | Name | Description
int | HaruDoc::CS_DEVICE_GRAY |
int | HaruDoc::CS_DEVICE_RGB |
int | HaruDoc::CS_DEVICE_CMYK |
int | HaruDoc::CS_CAL_GRAY |
int | HaruDoc::CS_CAL_RGB |
int | HaruDoc::CS_LAB |
int | HaruDoc::CS_ICC_BASED |
int | HaruDoc::CS_SEPARATION |
int | HaruDoc::CS_DEVICE_N |
int | HaruDoc::CS_INDEXED |
int | HaruDoc::CS_PATTERN |
int | HaruDoc::ENABLE_READ |
int | HaruDoc::ENABLE_PRINT |
int | HaruDoc::ENABLE_EDIT_ALL |
int | HaruDoc::ENABLE_COPY |
int | HaruDoc::ENABLE_EDIT |
int | HaruDoc::ENCRYPT_R2 |
int | HaruDoc::ENCRYPT_R3 |
int | HaruDoc::INFO_AUTHOR |
int | HaruDoc::INFO_CREATOR |
int | HaruDoc::INFO_TITLE |
int | HaruDoc::INFO_SUBJECT |
int | HaruDoc::INFO_KEYWORDS |
int | HaruDoc::INFO_CREATION_DATE |
int | HaruDoc::INFO_MOD_DATE |
int | HaruDoc::COMP_NONE |
int | HaruDoc::COMP_TEXT |
int | HaruDoc::COMP_IMAGE |
int | HaruDoc::COMP_METADATA |
int | HaruDoc::COMP_ALL |
int | HaruDoc::PAGE_LAYOUT_SINGLE |
int | HaruDoc::PAGE_LAYOUT_ONE_COLUMN |
int | HaruDoc::PAGE_LAYOUT_TWO_COLUMN_LEFT |
int | HaruDoc::PAGE_LAYOUT_TWO_COLUMN_RIGHT |
int | HaruDoc::PAGE_MODE_USE_NONE |
int | HaruDoc::PAGE_MODE_USE_OUTLINE |
int | HaruDoc::PAGE_MODE_USE_THUMBS |
int | HaruDoc::PAGE_MODE_FULL_SCREEN |

Méthodes

HaruDoc::__construct()
HaruDoc::addPageLabel()
HaruDoc::addPage()
HaruDoc::createOutline()
HaruDoc::getCurrentEncoder()
HaruDoc::getCurrentPage()
HaruDoc::getEncoder()
HaruDoc::getFont()
HaruDoc::getInfoAttr()
HaruDoc::getPageLayout()
HaruDoc::getPageMode()
HaruDoc::getStreamSize()
HaruDoc::insertPage()
HaruDoc::loadJPEG()
HaruDoc::loadPNG()
HaruDoc::loadRAW()
HaruDoc::loadTTC()
HaruDoc::loadTTC()
HaruDoc::loadType1()
HaruDoc::output()
HaruDoc::readFromStream()
HaruDoc::resetError()
HaruDoc::resetStream()
HaruDoc::save()
HaruDoc::setCompressionMode()
HaruDoc::setCurrentEncoder()
HaruDoc::setEncryptionMode()
HaruDoc::setInfoAttr()
HaruDoc::setInfoDateAttr()
HaruDoc::setOpenAction()
HaruDoc::setPageLayout()
HaruDoc::setPageMode()
HaruDoc::setPagesConfiguration()
HaruDoc::setPassword()
HaruDoc::setPermission()
HaruDoc::useCNSEncodings()
HaruDoc::useCNSFonts()
HaruDoc::useCNTEncodings()
HaruDoc::useCNTFonts()
HaruDoc::useJPEncodings()
HaruDoc::useJPFonts()
HaruDoc::useKREncodings()
HaruDoc::useKRFonts()

Précédent | Sommaire | Suivant
HaruException | Niveau supérieur | HaruPage


HaruEncoder

(no version information, might be only in CVS)

HaruEncoder -- Haru PDF Encoder Class

Synopsis

class HaruEncoder

Class Members

Constantes pré-définies

Tableau 1.

Type | Name | Description
int | HaruEncoder::TYPE_SINGLE_BYTE |
int | HaruEncoder::TYPE_DOUBLE_BYTE |
int | HaruEncoder::TYPE_UNINITIALIZED |
int | HaruEncoder::UNKNOWN |
int | HaruEncoder::WMODE_HORIZONTAL |
int | HaruEncoder::WMODE_VERTICAL |
int | HaruEncoder::BYTE_TYPE_SINGLE |
int | HaruEncoder::BYTE_TYPE_LEAD |
int | HaruEncoder::BYTE_TYPE_TRAIL |
int | HaruEncoder::BYTE_TYPE_UNKNOWN |

Méthodes

HaruEncoder::getByteType()
HaruEncoder:: getType()
HaruEncoder::getUnicode()
HaruEncoder::getWritingMode()

Précédent | Sommaire | Suivant
HaruImage | Niveau supérieur | HaruOutline


HaruException

(no version information, might be only in CVS)

HaruException -- Haru PDF Exception Class

Synopsis

class HaruException

Class Members

Méthodes

Précédent | Sommaire | Suivant
Haru PDF Functions | Niveau supérieur | HaruDoc


HaruFont

(no version information, might be only in CVS)

HaruFont -- Haru PDF Font Class

Synopsis

class HaruFont

Class Members

Méthodes

HaruFont::getAscent()
HaruFont::getCapHeight()
HaruFont::getDescent()
HaruFont::getEncodingName()
HaruFont::getFontName()
HaruFont::getTextWidth()
HaruFont::getUnicodeWidth()
HaruFont::getXHeight()
HaruFont::measureText()

Précédent | Sommaire | Suivant
HaruPage | Niveau supérieur | HaruImage


HaruImage

(no version information, might be only in CVS)

HaruImage -- Haru PDF Image Class

Synopsis

class HaruImage

Class Members

Méthodes

HaruImage::getBitsPerComponent()
HaruImage::getColorSpace()
HaruImage::getHeight()
HaruImage::getSize()
HaruImage::getWidth()
HaruImage::setColorMask()
HaruImage::setMaskImage()

Précédent | Sommaire | Suivant
HaruFont | Niveau supérieur | HaruEncoder


HaruOutline

(no version information, might be only in CVS)

HaruOutline -- Haru PDF Outline Class

Synopsis

class HaruOutline

Class Members

Méthodes

HaruOutline::setDestination()
HaruOutline::setOpened()

Précédent | Sommaire | Suivant
HaruEncoder | Niveau supérieur | HaruAnnotation


HaruPage

(no version information, might be only in CVS)

HaruPage -- Haru PDF Page Class

Synopsis

class HaruPage

Class Members

Constantes pré-définies

Tableau 1.

Type | Name | Description
int | HaruPage::GMODE_PAGE_DESCRIPTION |
int | HaruPage::GMODE_TEXT_OBJECT |
int | HaruPage::GMODE_PATH_OBJECT |
int | HaruPage::GMODE_CLIPPING_PATH |
int | HaruPage::GMODE_SHADING |
int | HaruPage::GMODE_INLINE_IMAGE |
int | HaruPage::GMODE_EXTERNAL_OBJECT |
int | HaruPage::BUTT_END |
int | HaruPage::ROUND_END |
int | HaruPage::PROJECTING_SCUARE_END |
int | HaruPage::MITER_JOIN |
int | HaruPage::ROUND_JOIN |
int | HaruPage::BEVEL_JOIN |
int | HaruPage::FILL |
int | HaruPage::STROKE |
int | HaruPage::FILL_THEN_STROKE |
int | HaruPage::INVISIBLE |
int | HaruPage::FILL_CLIPPING |
int | HaruPage::STROKE_CLIPPING |
int | HaruPage::FILL_STROKE_CLIPPING |
int | HaruPage::CLIPPING |
int | HaruPage::TALIGN_LEFT |
int | HaruPage::TALIGN_RIGHT |
int | HaruPage::TALIGN_CENTER |
int | HaruPage::TALIGN_JUSTIFY |
int | HaruPage::SIZE_LETTER |
int | HaruPage::SIZE_LEGAL |
int | HaruPage::SIZE_A3 |
int | HaruPage::SIZE_A4 |
int | HaruPage::SIZE_A5 |
int | HaruPage::SIZE_B4 |
int | HaruPage::SIZE_B5 |
int | HaruPage::SIZE_EXECUTIVE |
int | HaruPage::SIZE_US4x6 |
int | HaruPage::SIZE_US4x8 |
int | HaruPage::SIZE_US5x7 |
int | HaruPage::SIZE_COMM10 |
int | HaruPage::PORTRAIT |
int | HaruPage::LANDSCAPE |
int | HaruPage::TS_WIPE_LIGHT |
int | HaruPage::TS_WIPE_UP |
int | HaruPage::TS_WIPE_LEFT |
int | HaruPage::TS_WIPE_DOWN |
int | HaruPage::TS_BARN_DOORS_HORIZONTAL_OUT |
int | HaruPage::TS_BARN_DOORS_HORIZONTAL_IN |
int | HaruPage::TS_BARN_DOORS_VERTICAL_OUT |
int | HaruPage::TS_BARN_DOORS_VERTICAL_IN |
int | HaruPage::TS_BOX_OUT |
int | HaruPage::TS_BOX_IN |
int | HaruPage::TS_BLINDS_HORIZONTAL |
int | HaruPage::TS_BLINDS_VERTICAL |
int | HaruPage::TS_DISSOLVE |
int | HaruPage::TS_GLITTER_RIGHT |
int | HaruPage::TS_GLITTER_DOWN |
int | HaruPage::TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT |
int | HaruPage::TS_REPLACE |
int | HaruPage::NUM_STYLE_DECIMAL |
int | HaruPage::NUM_STYLE_UPPER_ROMAN |
int | HaruPage::NUM_STYLE_LOWER_ROMAN |
int | HaruPage::NUM_STYLE_UPPER_LETTERS |
int | HaruPage::NUM_STYLE_LOWER_LETTERS |

Méthodes

HaruPage::arc()
HaruPage::beginText()
HaruPage::circle()
HaruPage::closePath()
HaruPage::concat()
HaruPage::createDestination()
HaruPage::createLinkAnnotation()
HaruPage::createTextAnnotation()
HaruPage::createUrlAnnotation()
HaruPage::curveTo()
HaruPage::curveTo2()
HaruPage::curveTo3()
HaruPage::drawImage()
HaruPage::ellipse()
HaruPage::endPath()
HaruPage::endText()
HaruPage::eofillStroke()
HaruPage::eofill()
HaruPage::fillStroke()
HaruPage::fill()
HaruPage::getCharSpace()
HaruPage::getCMYKFill()
HaruPage::getCMYKStroke()
HaruPage::getCurrentFontSize()
HaruPage::getCurrentFont()
HaruPage::getCurrentPos()
HaruPage::getCurrentTextPos()
HaruPage::getDash()
HaruPage::getFillingColorSpace()
HaruPage::getFlatness()
HaruPage::getGMode()
HaruPage::getGrayFill()
HaruPage::getGrayStroke()
HaruPage::getHeight()
HaruPage::getHorizontalScaling()
HaruPage::getLineCap()
HaruPage::getLineJoin()
HaruPage::getLineWidth()
HaruPage::getMiterLimit()
HaruPage::getRGBFill()
HaruPage::getRGBStroke()
HaruPage::getStrokingColorSpace()
HaruPage::getTextLeading()
HaruPage::getTextMatrix()
HaruPage::getTextRenderingMode()
HaruPage::getTextRise()
HaruPage::getTextWidth()
HaruPage::getTransMatrix()
HaruPage::getWidth()
HaruPage::getWordSpace()
HaruPage::lineTo()
HaruPage::measureText()
HaruPage::moveTextPos()
HaruPage::moveToNextLine()
HaruPage::moveTo()
HaruPage::rectangle()
HaruPage::setCharSpace()
HaruPage::setCMYKFill()
HaruPage::setCMYKStroke()
HaruPage::setDash()
HaruPage::setFlatness()
HaruPage::setFontAndSize()
HaruPage::setGrayFill()
HaruPage::setGrayStroke()
HaruPage::setHeight()
HaruPage::setHorizontalScaling()
HaruPage::setLineCap()
HaruPage::setLineJoin()
HaruPage::setLineWidth()
HaruPage::setMiterLimit()
HaruPage::setRGBFill()
HaruPage::setRGBStroke()
HaruPage::setRotate()
HaruPage::setSize()
HaruPage::setSlideShow()
HaruPage::setTextLeading()
HaruPage::setTextMatrix()
HaruPage::setTextTenderingMode()
HaruPage::setWidth()
HaruPage::setWordSpace()
HaruPage::showTextNextLine()
HaruPage::showText()
HaruPage::stroke()
HaruPage::textOut()
HaruPage::textRect()

Précédent | Sommaire | Suivant
HaruDoc | Niveau supérieur | HaruFont


Configuration

(no version information, might be only in CVS)

Configuration -- Directives de configuration du module http

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration HTTP

Nom | Défaut | Modifiable | Description
http.etag.mode | "MD5" | PHP_INI_ALL |
http.log.cache | "" | PHP_INI_ALL |
http.log.redirect | "" | PHP_INI_ALL |
http.log.not_found | "" | PHP_INI_ALL |
http.log.allowed_methods | "" | PHP_INI_ALL |
http.log.composite | "" | PHP_INI_ALL |
http.request.methods.allowed | "" | PHP_INI_ALL |
http.request.methods.custom | "" | PHP_INI_PERDIR|PHP_INI_SYSTEM |
http.send.inflate.start_auto | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM |
http.send.inflate.start_flags | "0" | PHP_INI_ALL |
http.send.deflate.start_auto | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM |
http.send.deflate.start_flags | "0" | PHP_INI_ALL |
http.send.not_found_404 | "1" | PHP_INI_ALL |
http.only_exceptions | "0" | PHP_INI_ALL |
http.force_exit | "1" | PHP_INI_ALL |

Précédent | Sommaire | Suivant
Installation | Niveau supérieur | Resources


Constantes

(no version information, might be only in CVS)

Constantes -- constantes prédéfinies du module HTTP

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 utilisables avec la fonction http_support()

HTTP_SUPPORT (entier)

HTTP_SUPPORT_REQUESTS (entier)

HTTP_SUPPORT_MAGICMIME (entier)

HTTP_SUPPORT_ENCODINGS (entier)

HTTP_SUPPORT_SSLREQUESTS (entier)

Constantes utilisables avec la fonction http_parse_params()

HTTP_PARAMS_ALLOW_COMMA (entier)

HTTP_PARAMS_ALLOW_FAILURE (entier)

HTTP_PARAMS_RAISE_ERROR (entier)

HTTP_PARAMS_DEFAULT (entier)

Constantes utilisables avec la fonction http_parse_cookie() and its return value

HTTP_COOKIE_PARSE_RAW (entier)

HTTP_COOKIE_SECURE (entier)

HTTP_COOKIE_HTTPONLY (entier)

Constantes utilisables avec les fonctions http_deflate() et HttpDeflateStream

HTTP_DEFLATE_LEVEL_DEF (entier)

HTTP_DEFLATE_LEVEL_MIN (entier)

HTTP_DEFLATE_LEVEL_MAX (entier)

HTTP_DEFLATE_TYPE_ZLIB (entier)

HTTP_DEFLATE_TYPE_GZIP (entier)

HTTP_DEFLATE_TYPE_RAW (entier)

HTTP_DEFLATE_STRATEGY_DEF (entier)

HTTP_DEFLATE_STRATEGY_FILT (entier)

HTTP_DEFLATE_STRATEGY_HUFF (entier)

HTTP_DEFLATE_STRATEGY_RLE (entier)

HTTP_DEFLATE_STRATEGY_FIXED (entier)

Constantes utilisables avec la fonction HttpDeflateStream et HttpInflateStream

HTTP_ENCODING_STREAM_FLUSH_NONE (entier)

HTTP_ENCODING_STREAM_FLUSH_SYNC (entier)

HTTP_ENCODING_STREAM_FLUSH_FULL (entier)

Constantes utilisables pour rapporter les erreurs et les exceptions

HTTP_E_RUNTIME (entier)

HTTP_E_INVALID_PARAM (entier)

HTTP_E_HEADER (entier)

HTTP_E_MALFORMED_HEADERS (entier)

HTTP_E_REQUEST_METHOD (entier)

HTTP_E_MESSAGE_TYPE (entier)

HTTP_E_ENCODING (entier)

HTTP_E_REQUEST (entier)

HTTP_E_REQUEST_POOL (entier)

HTTP_E_SOCKET (entier)

HTTP_E_RESPONSE (entier)

HTTP_E_URL (entier)

HTTP_E_QUERYSTRING (entier)

Constantes utilisables avec la fonction HttpMessage

HTTP_MSG_NONE (entier)

HTTP_MSG_REQUEST (entier)

HTTP_MSG_RESPONSE (entier)

Constantes utilisables avec la fonction HttpQueryString

HTTP_QUERYSTRING_TYPE_BOOL (entier)

HTTP_QUERYSTRING_TYPE_INT (entier)

HTTP_QUERYSTRING_TYPE_FLOAT (entier)

HTTP_QUERYSTRING_TYPE_STRING (entier)

HTTP_QUERYSTRING_TYPE_ARRAY (entier)

HTTP_QUERYSTRING_TYPE_OBJECT (entier)

Constantes utilisables comme option de requête httpauthtype

HTTP_AUTH_BASIC (entier)

HTTP_AUTH_DIGEST (entier)

HTTP_AUTH_NTLM (entier)

HTTP_AUTH_ANY (entier)

Constantes utilisables avec l'option de version du protocole de la requête

HTTP_VERSION_NONE (entier)

HTTP_VERSION_1_0 (entier)

HTTP_VERSION_1_1 (entier)

Constantes utilisables avec l'option proxytype de la requête

HTTP_PROXY_SOCKS4 (entier)

HTTP_PROXY_SOCKS5 (entier)

HTTP_PROXY_HTTP (entier)

Constantes prédéfinies de méthode de requête HTTP

HTTP_METH_GET (entier)

HTTP_METH_HEAD (entier)

HTTP_METH_POST (entier)

HTTP_METH_PUT (entier)

HTTP_METH_DELETE (entier)

HTTP_METH_OPTIONS (entier)

HTTP_METH_TRACE (entier)

HTTP_METH_CONNECT (entier)

HTTP_METH_PROPFIND (entier)

HTTP_METH_PROPPATCH (entier)

HTTP_METH_MKCOL (entier)

HTTP_METH_COPY (entier)

HTTP_METH_MOVE (entier)

HTTP_METH_LOCK (entier)

HTTP_METH_UNLOCK (entier)

HTTP_METH_VERSION_CONTROL (entier)

HTTP_METH_REPORT (entier)

HTTP_METH_CHECKOUT (entier)

HTTP_METH_CHECKIN (entier)

HTTP_METH_UNCHECKOUT (entier)

HTTP_METH_MKWORKSPACE (entier)

HTTP_METH_UPDATE (entier)

HTTP_METH_LABEL (entier)

HTTP_METH_MERGE (entier)

HTTP_METH_BASELINE_CONTROL (entier)

HTTP_METH_MKACTIVITY (entier)

HTTP_METH_ACL (entier)

Constantes utilisables avec la fonction http_redirect()

HTTP_REDIRECT (entier)

HTTP_REDIRECT_PERM (entier)

HTTP_REDIRECT_FOUND (entier)

HTTP_REDIRECT_POST (entier)

HTTP_REDIRECT_PROXY (entier)

HTTP_REDIRECT_TEMP (entier)

Constantes utilisables avec la fonction http_build_url()

HTTP_URL_REPLACE (entier)

HTTP_URL_JOIN_PATH (entier)

HTTP_URL_JOIN_QUERY (entier)

HTTP_URL_STRIP_USER (entier)

HTTP_URL_STRIP_PASS (entier)

HTTP_URL_STRIP_AUTH (entier)

HTTP_URL_STRIP_PORT (entier)

HTTP_URL_STRIP_PATH (entier)

HTTP_URL_STRIP_QUERY (entier)

HTTP_URL_STRIP_FRAGMENT (entier)

HTTP_URL_STRIP_ALL (entier)

Précédent | Sommaire | Suivant
Resources | Niveau supérieur | Request Options


HttpDeflateStream

(no version information, might be only in CVS)

HttpDeflateStream -- Classe de compression du flux HTTP

Synopsis

classe HttpDeflateStream

Membres de la classe

Constantes pré-définies

Tableau 1.

Type | Nom | Description
int | TYPE_GZIP | encodage gzip
int | TYPE_ZLIB | zlib AKA encodage compressé
int | TYPE_RAW | encodage compressé
int | LEVEL_MIN | degré de compression minimum
int | TYPE_DEF | degré de compression par défaut
int | LEVEL_MAX | degré de compression maximum
int | STRATEGY_DEF | stratégie par défaut
int | STRATEGY_FILT | stratégie filtrée
int | STRATEGY_HUFF | stratégie Huffman
int | STRATEGY_RLE | stratégie RLE
int | STRATEGY_FIXED | stratégie fixe
int | FLUSH_NONE | pas de flush forcé
int | FLUSH_SYNC | synchronisation du flush
int | FLUSH_FULL | flush complet

Méthodes

HttpDeflateStream::construct()
HttpDeflateStream::update()
HttpDeflateStream:: flush()
HttpDeflateStream::finish()

Précédent | Sommaire | Suivant
HttpQueryString::xlate | Niveau supérieur | HttpDeflateStream::__construct


HttpInflateStream

(no version information, might be only in CVS)

HttpInflateStream -- Décompression d'un flux HTTP

Synopsis

class HttpInflateStream

Membres de la classe

Constantes

Tableau 1.

Type | Nom | Description
int | FLUSH_NONE | pas de flush forcé
int | FLUSH_SYNC | synchronisation du flush
int | FLUSH_FULL | flush complet

Note : Le flush n'a habituellement aucun effect sur les flux décompressés.

Méthodes

HttpInflateStream::construct()
HttpInflateStream::update()
HttpInflateStream:: flush()
HttpInflateStream::finish()

Précédent | Sommaire | Suivant
HttpDeflateStream::finish | Niveau supérieur | HttpInflateStream::__construct


HttpMessage

(no version information, might be only in CVS)

HttpMessage -- CLasse HTTP Message

Synopsis

classe HttpMessage implémente l'itérateur, Countable, Serializable

Membres de la classe

Propriétés

Tableau 1. Propriété de l'instance

Modificateurs | Type | Nom | Description
protected | entier | type | type du message
protected | chaîne de caractères | body | corps du message
protected | float | httpVersion | version du protocole HTTP
protected | tableau | headers | en-têtes du message
protected | chaîne de caractères | requestMethod | nom de la méthode de la requête
protected | requestUrl | string | URL de la requête
protected | int | responseCode | code réponse
protected | string | responseStatus | statut du message de la réponse
protected | HttpMessage | parentMessage | référence vers le message parent

Note : Aucune de ces propriétés par défaut ne peuvent être accédées par référence, ni par notation clé/index de tableau, ni être utilisées dans des opérations d'incrémentation ou décrémentation.

Constantes pré-définies

Tableau 2.

Type | Nom | Description
int | TYPE_NONE | message ne contient pas de type spécifique
int | TYPE_REQUEST | message est un message HTTP du style message
int | TYPE_RESPONSE | message est un message HTTP du style réponse

Méthodes

HttpMessage::construct()
HttpMessage::factory()
HttpMessage::fromEnv()
HttpMessage::fromString()
HttpMessage::toString()
HttpMessage::toMessageTypeObject()
HttpMessage::guessContentType()
HttpMessage::detach()
HttpMessage::prepend()
HttpMessage::reverse()
HttpMessage::send()
HttpMessage::getParentMessage()
HttpMessage:: getType()
HttpMessage:: setType()
HttpMessage::getHttpVersion()
HttpMessage::setHttpVersion()
HttpMessage::getHeaders()
HttpMessage::getHeader()
HttpMessage::addHeaders()
HttpMessage::setHeaders()
HttpMessage::getBody()
HttpMessage::setBody()
HttpMessage::getRequestMethod()
HttpMessage::setRequestMethod()
HttpMessage::getRequestUrl()
HttpMessage::setRequestUrl()
HttpMessage::getResponseCode()
HttpMessage::setResponseCode()
HttpMessage::getResponseStatus()
HttpMessage::setResponseStatus()

Précédent | Sommaire | Suivant
Request Options | Niveau supérieur | HttpMessage::__construct


HttpQueryString

(no version information, might be only in CVS)

HttpQueryString -- Classe HTTPQueryString

Synopsis

classe HttpQueryString implémente Serializable, ArrayAccess

Membres de la classe

Propriétés

Tableau 1. Propriétés de l'instance

Modificateurs | Type | Nom | Description
private | array | queryArray | paramètres de la requête
private | string | queryString | paramètres linéarisés de la requête

Tableau 2. Propriétés statiques

Modificateurs | Type | Nom | Description
private | array | instance | gestion des singletons

Constantes pré-définies

Tableau 3.

Type | Nom | Description
int | TYPE_BOOL | récupération des paramètres de la requête sous la forme d'un booléen
int | TYPE_INT | récupération des paramètres de la requête sous la forme d'un entier
int | TYPE_FLOAT | récupération des paramètres de la requête sous la forme d'un nombre à virgules flotantes
int | TYPE_STRING | récupération des paramètres de la requête sous la forme d'une chaîne de caractères
int | TYPE_ARRAY | récupération des paramètres de la requête sous la forme d'un tableau
int | TYPE_OBJECT | récupération des paramètres de la requête sous la forme d'un objet

Méthodes

HttpQueryString::construct()
HttpQueryString::singleton()
HttpQueryString::get()
HttpQueryString::mod()
HttpQueryString::set()
HttpQueryString::toArray()
HttpQueryString::toString()
HttpQueryString::xlate()

Précédent | Sommaire | Suivant
HttpMessage::setResponseStatus | Niveau supérieur | HttpQueryString::__construct


HttpRequest

(no version information, might be only in CVS)

HttpRequest -- Classe HTTPRequest

Synopsis

classe HttpRequest

Membres de la classe

Propriétés

Tableau 1. Propriétés de l'instance

Modificateurs | Type | Nom | Description
protected | array | options |
protected | array | postFields |
protected | array | postFiles |
protected | array | responseInfo |
protected | array | responseData |
protected | HttpMessage | responseMessage |
protected | entier | responseCode |
protected | string | responseStatus |
protected | entier | method |
protected | string | url |
protected | string | contentType |
protected | string | rawPostData |
protected | string | queryData |
protected | string | putFile |
protected | string | putData |
protected | HttpMessage | history |
public | boolean | recordHistory |

Constantes pré-définies

Tableau 2.

Type | Nom | Description
entier | METH_GET |
entier | METH_HEAD |
entier | METH_POST |
entier | METH_PUT |
entier | METH_DELETE |
entier | METH_OPTIONS |
entier | METH_TRACE |
entier | METH_CONNECT |
entier | METH_PROPFIND |
entier | METH_PROPPATCH |
entier | METH_MKCOL |
entier | METH_COPY |
entier | METH_MOVE |
entier | METH_LOCK |
entier | METH_UNLOCK |
entier | METH_VERSION_CONTROL |
entier | METH_REPORT |
entier | METH_CHECKOUT |
entier | METH_CHECKIN |
entier | METH_UNCHECKOUT |
entier | METH_MKWORKSPACE |
entier | METH_UPDATE |
entier | METH_LABEL |
entier | METH_MERGE |
entier | METH_BASELINE_CONTROL |
entier | METH_MKACTIVITY |
entier | METH_ACL |
entier | VERSION_1_0 |
entier | VERSION_1_1 |
entier | VERSION_NONE |
entier | AUTH_BASIC |
entier | AUTH_DIGEST |
entier | AUTH_NTLM |
entier | AUTH_ANY |
entier | PROXY_SOCKS4 |
entier | PROXY_SOCKS5 |
entier | PROXY_HTTP |

Méthodes

HttpRequest::construct()
HttpRequest::getOptions()
HttpRequest::setOptions()
HttpRequest::getSslOptions()
HttpRequest::addSslOptions()
HttpRequest::setSslOptions()
HttpRequest::getUrl()
HttpRequest::setUrl()
HttpRequest::getMethod()
HttpRequest::setMethod()
HttpRequest::enableCookies()
HttpRequest::resetCookies()
HttpRequest::getCookies()
HttpRequest::addCookies()
HttpRequest::setCookies()
HttpRequest::getHeaders()
HttpRequest::addHeaders()
HttpRequest::setHeaders()
HttpRequest::getContentType()
HttpRequest::setContentType()
HttpRequest::getQueryData()
HttpRequest::addQueryData()
HttpRequest::setQueryData()
HttpRequest::getPostFields()
HttpRequest::addPostFields()
HttpRequest::setPostFields()
HttpRequest::getPostFiles()
HttpRequest::addPostFile()
HttpRequest::setPostFiles()
HttpRequest::getRawPostData()
HttpRequest::addRawPostData()
HttpRequest::setRawPostData()
HttpRequest::getPutData()
HttpRequest::addPutData()
HttpRequest::setPutData()
HttpRequest::getPutFile()
HttpRequest::setPutFile()
HttpRequest::send()
HttpRequest::getRequestMessage()
HttpRequest::getRawRequestMessage()
HttpRequest::getResponseMessage()
HttpRequest::getRawResponseMessage()
HttpRequest::getResponseCode()
HttpRequest::getResponseStatus()
HttpRequest::getResponseHeader()
HttpRequest::getResponseCookies()
HttpRequest::getResponseBody()
HttpRequest::getResponseData()
HttpRequest::getResponseInfo()
HttpRequest::clearHistory()
HttpRequest::getHistory()

Précédent | Sommaire | Suivant
HttpInflateStream::finish | Niveau supérieur | HttpRequest::addCookies


HttpRequestPool

(no version information, might be only in CVS)

HttpRequestPool -- Classe HTTPRequestPool

Synopsis

classe HttpRequest implémente Iterator, Countable

Class Members

Propriétés

La classe HttpRequestPool n'a aucune propriété.

Constantes pré-définies

La classe HttpRequestPool n'a aucune constante.

Méthodes

HttpRequestPool::construct()
HttpRequestPool::destruct()
HttpRequestPool::attach()
HttpRequestPool::detach()
HttpRequestPool::getAttachedRequests()
HttpRequestPool::getFinishedRequests()
HttpRequestPool:: reset()
HttpRequestPool::send()
HttpRequestPool::socketPerform()
HttpRequestPool::socketSelect()

Précédent | Sommaire | Suivant
HttpRequest::setUrl | Niveau supérieur | HttpRequestPool::attach


HttpResponse

(no version information, might be only in CVS)

HttpResponse -- Classe HTTPResponse

Synopsis

classe statique HttpResponse

Membres de la classe

Propriétés

Tableau 1. Propriétés statiques

Modificateurs | Type | Nom | Description
private | booléen | sent |
private | booléen | catch |
private | entier | mode |
private | ressource | stream |
private | chaîne de caractères | file |
private | chaîne de caractères | data |
protected | booléen | cache |
protected | booléen | gzip |
protected | chaîne de caractères | eTag |
protected | entier | lastModified |
protected | chaîne de caractères | cacheControl |
protected | chaîne de caractères | contentType |
protected | chaîne de caractères | contentDisposition |
protected | entier | bufferSize |
protected | double | throttleDelay |

Constantes pré-définies

Tableau 2.

Type | Nom | Description
entier | REDIRECT |
entier | REDIRECT_PERM |
entier | REDIRECT_FOUND |
entier | REDIRECT_POST |
entier | REDIRECT_PROXY |
entier | REDIRECT_TEMP |

Méthodes

HttpResponse::getBufferSize()
HttpResponse::setBufferSize()
HttpResponse::getCacheControl()
HttpResponse::setCacheControl()
HttpResponse::getCache()
HttpResponse::setCache()
HttpResponse::getContentDisposition()
HttpResponse::setContentDisposition()
HttpResponse::getContentType()
HttpResponse::setContentType()
HttpResponse::getData()
HttpResponse::setData()
HttpResponse::getETag()
HttpResponse::setETag()
HttpResponse::getFile()
HttpResponse::setFile()
HttpResponse::getGzip()
HttpResponse::setGzip()
HttpResponse::getHeader()
HttpResponse::setHeader()
HttpResponse::getLastModified()
HttpResponse::setLastModified()
HttpResponse::getStream()
HttpResponse::setStream()
HttpResponse::getThrottleDelay()
HttpResponse::setThrottleDelay()
HttpResponse::capture()
HttpResponse::send()
HttpResponse::guessContentType()

Précédent | Sommaire | Suivant
HttpRequestPool::socketSelect | Niveau supérieur | HttpResponse::capture


Installation

(no version information, might be only in CVS)

Installation -- Installation et configuration de l'extension HTTP

Installation

Cette extension PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/pecl_http.

La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Requis pour l'installation sous Windows

Afin de pouvoir charger cette extension sous Windows, vous devez charger les extensions PHP suivantes : hash, iconv, SPL.

Requis pour l'installation sous les autres plateformes

L'extension doit être construite avec le support libcurl pour activer les fonctionnalités des requêtes (--with-http-curl-requests). Une bibliothèque de version v7.12.3 ou suivante est nécessaire.

Pour activer le support de l'envoie et de la réception des réponses compressées, l'extension doit être construire avec le support zlib (--with-http-zlib-compression). Une bibliothèque de version v1.2.2 ou suivante est nécessaire.

La découverte du type de contenu peut être activée en construisant cette extension avec le support libmagic support (--with-http-magic-mime).

Précédent | Sommaire | Suivant
HTTP | Niveau supérieur | Configuration


Request Options

(no version information, might be only in CVS)

Request Options -- options usable with the HttpRequest class and request functions

Overview

Options related to time outs

timeout (integer)

seconds the whole request may take to complete

connecttimeout (integer)

seconds the connect, including name resolving, may take

dns_cache_timeout (integer)

seconds after an dns cache entry times out

Options related to urls

url (string)

the request url

port (integer)

use another port as specified in the url

redirect (integer)

whether and how many redirects to follow; defaults to 0

unrestrictedauth (bool)

whether to continue sending credentials on redirects to a different host

referer (string)

the refererring url to send

Options related to cookies

encodecookies (bool)

whether custom cookies should be urlencode()d prior sending

cookies (array)

list of cookies as associative array like array("cookie" => "value")

cookiestore (string)

path to a file where cookies are/will be stored

cookiesession (bool)

don't load session cookies from cookiestore if TRUE

Options related to headers

useragent (string)

the user agent to send; defaults to PECL::HTTP/x.y.z (PHP/x.y.z); omitted if explicitly set to an empty string

lastmodified (int)

timestamp for If-(Un)Modified-Since header

etag (string)

quoted etag for If-(None-)Match header

headers (array)

list of custom headers as associative array like array("header" => "value")

Options related to authentication

httpauth (string)

http credentials in "user:pass" format

httpauthtype (int)

HTTP authentication type constant

(array)

Options related to proxies

proxyhost (string)

proxy host in "host[:port]" format

proxyport (int)

use another proxy port as specified in proxyhost

proxytype (int)

HTTP proxy type constant

proxyauth (string)

proxy credentials in "user:pass" format

proxyauthtype (int)

HTTP authentication type constant

Options related to the transfer

compress (bool)

whether to request and accept a gzip/deflate content encoded response

resume (int)

start the download at the specified byte offset if server support is given (indicated by a 206 response code)

range (array)

array of arrays, each containing two integers, specifying the ranges to download if server support is given (indicated by a 206 response code); only recognized if the resume option is empty

Options imposing limits

maxfilesize (integer)

maximum file size that should be downloaded; has no effect, if the size of the requested entity is unknown (eg. dynamic pages with chunked transfer encoding etc.)

low_speed_limit (int)

the lowest transfer speed a successful request may have

low_speed_time (int)

the time in which low_speed_limit must be transferred for a successful request

max_send_speed (int)

maximum send speed in bytes per second

max_recv_speed (int)

maximum receive speed in bytes per second

Callback options

onprogress (callback)

progress callback

Network options

interface (string)

outgoing network interface (ifname, ip or hostname)

portrange (array)

2 integers specifying outgoing portrange to try

SSL options

ssl (array)

Note : SSL options are set through an array with the single "ssl" request option name.

cert (string)

path to certificate

certtype (string)

type of certificate

certpasswd (string)

password for certificate

key (string)

path to key

keytype (string)

type of key

keypasswd (string)

pasword for key

engine (string)

ssl engine to use

version (int)

ssl version to use

verifypeer (bool)

whether to verify the peer

verifyhost (bool)

whether to verify the host

cipher_list (string)

list of allowed ciphers

cainfo (string)

capath (string)

random_file (string)

egdsocket (string)

Précédent | Sommaire | Suivant
Constantes | Niveau supérieur | HttpMessage


Resources

(no version information, might be only in CVS)

Resources -- Resources created by the HTTP extension

Types de ressources

This extension defines a stream resource returned by http_get_request_body_stream() and (thereafter) HttpResponse::getStream().

Précédent | Sommaire | Suivant
Configuration | Niveau supérieur | Constantes


Directives du php.ini

Manuel PHP
Précédent Suivant

Annexe H. Directives du php.ini

Table des matières
Liste des directives du php.ini
Description des directives internes du php.ini

Liste des directives du php.ini

Cette liste inclut les directives du php.ini que vous pouvez définir pour configurer votre installation de PHP.

Tableau H-1. Options de configuration

Nom | Par défaut | Modifiable | Historique
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.0.0.
allow_url_fopen | "1" | PHP_INI_SYSTEM | PHP_INI_ALL pour PHP <= 4.3.4. Disponible depuis PHP 4.0.4.
allow_url_include | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.2.0.
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3. Disponible depuis PHP 4.1.0.
apc.cache_by_default | "1" | PHP_INI_ALL | PHP_INI_SYSTEM avec APC <= 3.0.12p2
apc.enabled | "1" | PHP_INI_SYSTEM | PHP_INI_ALL avec APC <= 3.0.12p2
apc.enable_cli | "0" | PHP_INI_SYSTEM |
apc.file_update_protection | "2" | PHP_INI_SYSTEM |
apc.filters | NULL | PHP_INI_SYSTEM |
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.max_file_size | "1M" | PHP_INI_SYSTEM |
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.num_files_hint | "1000" | PHP_INI_SYSTEM |
apc.optimization | "0" | PHP_INI_ALL |
apc.shm_segments | "1" | PHP_INI_SYSTEM |
apc.shm_size | "30" | PHP_INI_SYSTEM |
apc.slam_defense | "0" | PHP_INI_SYSTEM |
apc.ttl | "0" | PHP_INI_SYSTEM |
apc.user_entries_hint | "100" | PHP_INI_SYSTEM |
apc.user_ttl | "0" | PHP_INI_SYSTEM |
apd.dumpdir | NULL | PHP_INI_ALL |
apd.statement_tracing | "0" | PHP_INI_ALL |
arg_separator.input | "&" | PHP_INI_PERDIR | Disponible depuis PHP 4.0.5.
arg_separator.output | "&" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
asp_tags | "0" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.0.0.
assert.active | "1" | PHP_INI_ALL |
assert.bail | "0" | PHP_INI_ALL |
assert.callback | NULL | PHP_INI_ALL |
assert.quiet_eval | "0" | PHP_INI_ALL |
assert.warning | "1" | PHP_INI_ALL |
auto_append_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
auto_detect_line_endings | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
auto_globals_jit | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.0.0.
auto_prepend_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
bcmath.scale | "0" | PHP_INI_ALL |
bcompiler.enabled | "1" | PHP_INI_ALL |
birdstep.max_links | "-1" | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
blenc.key_file | "/usr/local/etc/blenckeys" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.2.0.
cgi.discard_path | "0" | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
cgi.fix_pathinfo | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
cgi.force_redirect | "1" | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
cgi.nph | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.5.
cgi.redirect_status_env | NULL | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
cgi.rfc2616_headers | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
child_terminate | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
com.allow_dcom | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.5.
com.autoregister_casesensitive | "1" | PHP_INI_ALL | PHP_INI_SYSTEM pour PHP 4. Disponible depuis PHP 4.1.0.
com.autoregister_typelib | "0" | PHP_INI_ALL | PHP_INI_SYSTEM pour PHP 4. Disponible depuis PHP 4.1.0.
com.autoregister_verbose | "0" | PHP_INI_ALL | PHP_INI_SYSTEM pour PHP 4. Disponible depuis PHP 4.1.0.
com.code_page | "" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
com.typelib_file | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.5.
crack.default_dictionary | NULL | PHP_INI_PERDIR | Disponible depuis PHP 4.0.5.
daffodildb.default_host | "localhost" | PHP_INI_ALL |
daffodildb.default_password | "daffodil" | PHP_INI_ALL |
daffodildb.default_socket | NULL | PHP_INI_ALL |
daffodildb.default_user | "DAFFODIL" | PHP_INI_ALL |
daffodildb.port | "3456" | PHP_INI_ALL |
date.default_latitude | "31.7667" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.default_longitude | "35.2333" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.sunrise_zenith | "90.83" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.sunset_zenith | "90.83" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
date.timezone | "" | PHP_INI_ALL | Disponible depuis PHP 5.1.0.
dba.default_handler | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.3.
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0.
default_charset | "" | PHP_INI_ALL |
default_mimetype | "text/html" | PHP_INI_ALL |
default_socket_timeout | "60" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
define_syslog_variables | "0" | PHP_INI_ALL |
disable_classes | "" | php.ini uniquement | Disponible depuis PHP 4.3.2.
disable_functions | "" | php.ini uniquement | Disponible depuis PHP 4.0.1.
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.3.
docref_ext | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.2.
docref_root | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
doc_root | NULL | PHP_INI_SYSTEM |
enable_dl | "1" | PHP_INI_SYSTEM |
engine | "1" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
error_append_string | NULL | PHP_INI_ALL |
error_log | NULL | PHP_INI_ALL |
error_prepend_string | NULL | PHP_INI_ALL |
error_reporting | NULL | PHP_INI_ALL |
exif.decode_jis_intel | "JIS" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.encode_jis | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
expect.logfile | "" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.timeout | "10" | PHP_INI_ALL |
expose_php | "1" | php.ini uniquement |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM |
fastcgi.impersonate | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
fastcgi.logging | "1" | PHP_INI_ALL | Disponible depuis PHP 4.4.0.
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.2.0.
fbsql.autocommit | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.batchsize | "1000" | PHP_INI_ALL | Disponible depuis PHP 5.1.0.
fbsql.default_database | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_database_password | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_host | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_password | "" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_connections | "128" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_links | "128" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
fbsql.max_results | "128" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.6.
file_uploads | "1" | PHP_INI_SYSTEM | PHP_INI_ALL pour PHP <= 4.2.3. Disponible depuis PHP 4.0.3.
filter.default | "string" | PHP_INI_ALL |
filter.default_flags | NULL | PHP_INI_ALL |
from | "" | PHP_INI_ALL |
highlight.bg | "#FFFFFF" | PHP_INI_ALL |
highlight.comment | "#FF8000" | PHP_INI_ALL |
highlight.default | "#0000BB" | PHP_INI_ALL |
highlight.html | "#000000" | PHP_INI_ALL |
highlight.keyword | "#007700" | PHP_INI_ALL |
highlight.string | "#DD0000" | PHP_INI_ALL |
html_errors | "1" | PHP_INI_ALL | PHP_INI_SYSTEM pour PHP <= 4.2.3. Disponible depuis PHP 4.0.2.
http.allowed_methods | "" | PHP_INI_ALL |
http.allowed_methods_log | "" | PHP_INI_ALL |
http.cache_log | "" | PHP_INI_ALL |
http.composite_log | "" | PHP_INI_ALL |
http.etag_mode | "MD5" | PHP_INI_ALL |
http.force_exit | "1" | PHP_INI_ALL |
http.ob_deflate_auto | "0" | PHP_INI_PERDIR |
http.ob_deflate_flags | "0" | PHP_INI_ALL |
http.ob_inflate_auto | "0" | PHP_INI_PERDIR |
http.ob_inflate_flags | "0" | PHP_INI_ALL |
http.only_exceptions | "0" | PHP_INI_ALL |
http.redirect_log | "" | PHP_INI_ALL |
hyperwave.allow_persistent | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.2.
hyperwave.default_port | "418" | PHP_INI_ALL |
ibase.allow_persistent | "1" | PHP_INI_SYSTEM |
ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL |
ibase.default_charset | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
ibase.default_db | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
ibase.default_password | NULL | PHP_INI_ALL |
ibase.default_user | NULL | PHP_INI_ALL |
ibase.max_links | "-1" | PHP_INI_SYSTEM |
ibase.max_persistent | "-1" | PHP_INI_SYSTEM |
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL |
ibm_db2.binmode | "1" | PHP_INI_ALL |
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM |
iconv.input_encoding | "ISO-8859-1" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
iconv.internal_encoding | "ISO-8859-1" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
iconv.output_encoding | "ISO-8859-1" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
ifx.allow_persistent | "1" | PHP_INI_SYSTEM |
ifx.blobinfile | "1" | PHP_INI_ALL |
ifx.byteasvarchar | "0" | PHP_INI_ALL |
ifx.charasvarchar | "0" | PHP_INI_ALL |
ifx.default_host | NULL | PHP_INI_SYSTEM |
ifx.default_password | NULL | PHP_INI_SYSTEM |
ifx.default_user | NULL | PHP_INI_SYSTEM |
ifx.max_links | "-1" | PHP_INI_SYSTEM |
ifx.max_persistent | "-1" | PHP_INI_SYSTEM |
ifx.nullformat | "0" | PHP_INI_ALL |
ifx.textasvarchar | "0" | PHP_INI_ALL |
ignore_repeated_errors | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
ignore_repeated_source | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
ignore_user_abort | "0" | PHP_INI_ALL |
implicit_flush | "0" | PHP_INI_ALL | PHP_INI_PERDIR pour PHP <= 4.2.3.
include_path | ".;/path/to/php/pear" | PHP_INI_ALL |
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.2.
ingres.blob_segment_length | "4096" | PHP_INI_ALL |
ingres.cursor_mode | "0" | PHP_INI_ALL |
ingres.default_database | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
ingres.default_password | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
ingres.default_user | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
ingres.max_links | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.2.
ingres.max_persistent | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 4.0.2.
ingres.report_db_warnings | "1" | PHP_INI_ALL |
ingres.timeout | "-1" | PHP_INI_ALL |
ingres.trace_connect | "0" | PHP_INI_ALL |
ircg.control_user | "nobody" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
ircg.keep_alive_interval | "60" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
ircg.max_format_message_sets | "12" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
ircg.shared_mem_size | "6000000" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
ircg.work_dir | "/tmp/ircg" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
last_modified | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
ldap.max_links | "-1" | PHP_INI_SYSTEM |
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
magic_quotes_gpc | "1" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
magic_quotes_runtime | "0" | PHP_INI_ALL |
magic_quotes_sybase | "0" | PHP_INI_ALL |
mail.force_extra_parameters | NULL | PHP_INI_PERDIR | Disponible depuis PHP 5.0.0.
mailparse.def_charset | "us-ascii" | PHP_INI_ALL | Disponible depuis PHP 4.1.0.
maxdb.default_db | NULL | PHP_INI_ALL |
maxdb.default_host | NULL | PHP_INI_ALL |
maxdb.default_pw | NULL | PHP_INI_ALL |
maxdb.default_user | NULL | PHP_INI_ALL |
maxdb.long_readlen | "200" | PHP_INI_ALL |
max_execution_time | "30" | PHP_INI_ALL |
max_input_time | "-1" | PHP_INI_PERDIR | Disponible depuis PHP 4.3.0.
mbstring.detect_order | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6.
mbstring.encoding_translation | "0" | PHP_INI_PERDIR | Disponible depuis PHP 4.3.0.
mbstring.func_overload | "0" | PHP_INI_PERDIR | PHP_INI_SYSTEM pour PHP <= 4.2.3. Disponible depuis PHP 4.2.0.
mbstring.http_input | "pass" | PHP_INI_ALL | Disponible depuis PHP 4.0.6.
mbstring.http_output | "pass" | PHP_INI_ALL | Disponible depuis PHP 4.0.6.
mbstring.internal_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6.
mbstring.language | "neutral" | PHP_INI_PERDIR | Disponible depuis PHP 4.3.0.
mbstring.script_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
mbstring.strict_detection | "0" | PHP_INI_ALL | Disponible depuis PHP 5.1.2.
mbstring.substitute_character | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6.
mcrypt.algorithms_dir | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
mcrypt.modes_dir | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
memory_limit | "128M" | PHP_INI_ALL |
mime_magic.debug | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
mime_magic.magicfile | "/path/to/php/magic.mime" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0.
msql.allow_persistent | "1" | PHP_INI_ALL |
msql.max_links | "-1" | PHP_INI_ALL |
msql.max_persistent | "-1" | PHP_INI_ALL |
mssql.allow_persistent | "1" | PHP_INI_SYSTEM |
mssql.batchsize | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.4.
mssql.charset | "" | PHP_INI_ALL | Disponible depuis PHP 5.1.2.
mssql.compatability_mode | "0" | PHP_INI_ALL |
mssql.connect_timeout | "5" | PHP_INI_ALL |
mssql.datetimeconvert | "1" | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
mssql.max_links | "-1" | PHP_INI_SYSTEM |
mssql.max_persistent | "-1" | PHP_INI_SYSTEM |
mssql.max_procs | "-1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
mssql.min_error_severity | "10" | PHP_INI_ALL |
mssql.min_message_severity | "10" | PHP_INI_ALL |
mssql.secure_connection | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.3.0.
mssql.textlimit | "-1" | PHP_INI_ALL |
mssql.textsize | "-1" | PHP_INI_ALL |
mssql.timeout | "60" | PHP_INI_ALL | Disponible depuis PHP 4.1.0.
mysql.allow_persistent | "1" | PHP_INI_SYSTEM |
mysql.connect_timeout | "60" | PHP_INI_ALL | PHP_INI_SYSTEM pour PHP <= 4.3.2. Disponible depuis PHP 4.3.0.
mysql.default_host | NULL | PHP_INI_ALL |
mysql.default_password | NULL | PHP_INI_ALL |
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.1.
mysql.default_user | NULL | PHP_INI_ALL |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.trace_mode | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
mysqli.default_host | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_port | "3306" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_pw | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_socket | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.default_user | NULL | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
mysqli.max_links | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
mysqli.reconnect | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
namazu.debugmode | "0" | PHP_INI_ALL |
namazu.lang | NULL | PHP_INI_ALL |
namazu.loggingmode | "0" | PHP_INI_ALL |
namazu.sortmethod | NULL | PHP_INI_ALL |
namazu.sortorder | NULL | PHP_INI_ALL |
nsapi.read_timeout | "60" | PHP_INI_ALL | Disponible depuis PHP 4.3.3.
oci8.default_prefetch | "10" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.max_persistent | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.old_oci_close_semantics | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.persistent_timeout | "-1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.ping_interval | "60" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.privileged_connect | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
oci8.statement_cache_size | "20" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.2.
odbc.allow_persistent | "1" | PHP_INI_SYSTEM |
odbc.check_persistent | "1" | PHP_INI_SYSTEM |
odbc.defaultbinmode | "1" | PHP_INI_ALL |
odbc.defaultlrl | "4096" | PHP_INI_ALL |
odbc.default_db | NULL | PHP_INI_ALL |
odbc.default_pw | NULL | PHP_INI_ALL |
odbc.default_user | NULL | PHP_INI_ALL |
odbc.max_links | "-1" | PHP_INI_SYSTEM |
odbc.max_persistent | "-1" | PHP_INI_SYSTEM |
opendirectory.max_refs | "-1" | PHP_INI_ALL |
opendirectory.separator | "/" | PHP_INI_ALL |
open_basedir | NULL | PHP_INI_SYSTEM |
oracle.allow_persistent | "-1" | PHP_INI_ALL |
oracle.max_links | "-1" | PHP_INI_ALL |
oracle.max_persistent | "-1" | PHP_INI_ALL |
output_buffering | "0" | PHP_INI_PERDIR |
output_handler | NULL | PHP_INI_PERDIR | Disponible depuis PHP 4.0.4.
pcre.backtrack_limit | "100000" | PHP_INI_ALL | Disponible depuis PHP 5.2.0.
pcre.recursion_limit | "100000" | PHP_INI_ALL | Disponible depuis PHP 5.2.0.
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL | Disponible depuis PHP 5.1.0.
pfpro.defaulthost | "test-payflow.verisign.com" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
pfpro.defaultport | "443" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
pfpro.defaulttimeout | "30" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
pfpro.proxyaddress | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
pfpro.proxylogon | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
pfpro.proxypassword | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
pfpro.proxyport | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.2.0.
pgsql.ignore_notice | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
pgsql.log_notice | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
pgsql.max_links | "-1" | PHP_INI_SYSTEM |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM |
post_max_size | "8M" | PHP_INI_PERDIR | PHP_INI_SYSTEM pour PHP <= 4.2.3. Disponible depuis PHP 4.0.3.
precision | "14" | PHP_INI_ALL |
printer.default_printer | "" | PHP_INI_ALL |
realpath_cache_size | "16K" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.0.
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.0.
register_argc_argv | "1" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
register_globals | "0" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
register_long_arrays | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.0.0.
report_memleaks | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
report_zend_debug | "1" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
runkit.internal_override | "0" | PHP_INI_SYSTEM |
runkit.superglobal | "" | PHP_INI_PERDIR |
safe_mode | "0" | PHP_INI_SYSTEM |
safe_mode_allowed_env_vars | "PHP_" | PHP_INI_SYSTEM |
safe_mode_exec_dir | "" | PHP_INI_SYSTEM |
safe_mode_gid | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.1.0.
safe_mode_include_dir | NULL | PHP_INI_SYSTEM | Disponible depuis PHP 4.1.0.
safe_mode_protected_env_vars | "LD_LIBRARY_PATH" | PHP_INI_SYSTEM |
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | NULL | PHP_INI_SYSTEM |
serialize_precision | "100" | PHP_INI_ALL | Disponible depuis PHP 4.3.2.
session.auto_start | "0" | PHP_INI_ALL |
session.bug_compat_42 | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
session.bug_compat_warn | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
session.cache_expire | "180" | PHP_INI_ALL |
session.cache_limiter | "nocache" | PHP_INI_ALL |
session.cookie_domain | "" | PHP_INI_ALL |
session.cookie_httponly | NULL | PHP_INI_ALL | Disponible depuis PHP 5.2.0.
session.cookie_lifetime | "0" | PHP_INI_ALL |
session.cookie_path | "/" | PHP_INI_ALL |
session.cookie_secure | "" | PHP_INI_ALL | Disponible depuis PHP 4.0.4.
session.entropy_file | "" | PHP_INI_ALL |
session.entropy_length | "0" | PHP_INI_ALL |
session.gc_divisor | "100" | PHP_INI_ALL | Disponible depuis PHP 4.3.2.
session.gc_maxlifetime | "1440" | PHP_INI_ALL |
session.gc_probability | "1" | PHP_INI_ALL |
session.hash_bits_per_character | "4" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
session.hash_function | "0" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
session.name | "PHPSESSID" | PHP_INI_ALL |
session.referer_check | "" | PHP_INI_ALL |
session.save_handler | "files" | PHP_INI_ALL |
session.save_path | "" | PHP_INI_ALL |
session.serialize_handler | "php" | PHP_INI_ALL |
session.use_cookies | "1" | PHP_INI_ALL |
session.use_only_cookies | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
session.use_trans_sid | "0" | PHP_INI_ALL | PHP_INI_ALL pour PHP <= 4.2.3. PHP_INI_PERDIR pour PHP < 5. Disponible depuis PHP 4.0.3.
session_pgsql.create_table | "1" | PHP_INI_SYSTEM |
session_pgsql.db | "host=localhost dbname=php_session user=nobody" | PHP_INI_SYSTEM |
session_pgsql.disable | "0" | PHP_INI_SYSTEM |
session_pgsql.failover_mode | "0" | PHP_INI_SYSTEM |
session_pgsql.gc_interval | "3600" | PHP_INI_SYSTEM |
session_pgsql.keep_expired | "0" | PHP_INI_SYSTEM |
session_pgsql.sem_file_name | "/tmp/php_session_pgsql" | PHP_INI_SYSTEM |
session_pgsql.serializable | "0" | PHP_INI_SYSTEM |
session_pgsql.short_circuit | "0" | PHP_INI_SYSTEM |
session_pgsql.use_app_vars | "0" | PHP_INI_SYSTEM |
session_pgsql.vacuum_interval | "21600" | PHP_INI_SYSTEM |
short_open_tag | "1" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.0.0.
simple_cvs.authMethod | "0" | PHP_INI_ALL |
simple_cvs.compressionLevel | "0" | PHP_INI_ALL |
simple_cvs.cvsRoot | "0" | PHP_INI_ALL |
simple_cvs.host | "0" | PHP_INI_ALL |
simple_cvs.moduleName | "0" | PHP_INI_ALL |
simple_cvs.userName | "0" | PHP_INI_ALL |
simple_cvs.workingDir | "0" | PHP_INI_ALL |
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
soap.wsdl_cache_dir | "/tmp" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
soap.wsdl_cache_enabled | "1" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
soap.wsdl_cache_ttl | "86400" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
sql.safe_mode | "0" | PHP_INI_SYSTEM |
sqlite.assoc_case | "0" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
sybase.allow_persistent | "1" | PHP_INI_ALL | PHP_INI_ALL pour PHP <= 4.0.2. PHP_INI_SYSTEM pour PHP <= 4.0.3.
sybase.compatability_mode | "0" | PHP_INI_ALL |
sybase.interface_file | "" | PHP_INI_ALL |
sybase.max_links | "-1" | PHP_INI_ALL | PHP_INI_ALL pour PHP <= 4.0.2. PHP_INI_SYSTEM pour PHP <= 4.0.3.
sybase.max_persistent | "-1" | PHP_INI_ALL | PHP_INI_ALL pour PHP <= 4.0.2. PHP_INI_SYSTEM pour PHP <= 4.0.3.
sybase.min_error_severity | "10" | PHP_INI_ALL |
sybase.min_message_severity | "10" | PHP_INI_ALL |
sybct.allow_persistent | "1" | PHP_INI_SYSTEM | PHP_INI_ALL pour PHP <= 4.0.2. Disponible depuis PHP 4.0.2.
sybct.deadlock_retry_count | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
sybct.hostname | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
sybct.login_timeout | "-1" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
sybct.max_links | "-1" | PHP_INI_SYSTEM | PHP_INI_ALL pour PHP <= 4.0.2. Disponible depuis PHP 4.0.2.
sybct.max_persistent | "-1" | PHP_INI_SYSTEM | PHP_INI_ALL pour PHP <= 4.0.2. Disponible depuis PHP 4.0.2.
sybct.min_client_severity | "10" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
sybct.min_server_severity | "10" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
sybct.packet_size | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.5.
sybct.timeout | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.2.
sysvshm.init_mem | "10000" | PHP_INI_ALL |
tidy.clean_output | "0" | PHP_INI_PERDIR | Disponible depuis PHP 5.0.0.
tidy.default_config | "" | PHP_INI_SYSTEM | Disponible depuis PHP 5.0.0.
track_errors | "0" | PHP_INI_ALL |
unicode.fallback_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
unicode.from_error_mode | "2" | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
unicode.from_error_subst_char | "3f" | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
unicode.http_input_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
unicode.output_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
unicode.runtime_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
unicode.script_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
unicode_semantics | "off" | PHP_INI_PERDIR | Disponible depuis PHP 6.0.0.
unserialize_callback_func | NULL | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | Disponible depuis PHP 4.0.4.
user_agent | NULL | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
user_dir | NULL | PHP_INI_SYSTEM |
valkyrie.auto_validate | "0" | PHP_INI_ALL |
valkyrie.config_path | NULL | PHP_INI_ALL |
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 5.0.5.
xbithack | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
xmlrpc_errors | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.1.0.
xmlrpc_error_number | "0" | PHP_INI_ALL | Disponible depuis PHP 4.1.0.
xmms.path | "/usr/bin/xmms" | PHP_INI_ALL |
xmms.session | "0" | PHP_INI_ALL |
y2k_compliance | "1" | PHP_INI_ALL |
yaz.keepalive | "120" | PHP_INI_ALL |
yaz.log_file | NULL | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
yaz.max_links | "100" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.
zlib.output_compression | "0" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
zlib.output_compression_level | "-1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
zlib.output_handler | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.

Tableau H-2. Définition des constantes du PHP_INI_*

Constante | Valeur | Signification
PHP_INI_USER | 1 | Les entrées peuvent être définies dans les scripts utilisateurs ou dans le registre de Windows
PHP_INI_PERDIR | 2 | Les entrées peuvent être définies dans le php.ini, un .htaccess ou le httpd.conf
PHP_INI_SYSTEM | 4 | Les entrées peuvent être définies dans le php.ini ou le httpd.conf
PHP_INI_ALL | 7 | Les entrées peuvent être définies n'importe où.

Précédent | Sommaire | Suivant
Options de configuration | Niveau supérieur | Description des directives internes du php.ini


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.

Options Httpd

Tableau H-3. Options de configuration

Nom | Par défaut | Modifiable | Historique
async_send | "0" | PHP_INI_ALL |

Options du langage

Tableau H-4. Options de configuration

Nom | Par défaut | Modifiable | Historique
short_open_tag | On | PHP_INI_SYSTEM|PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.0.0.
asp_tags | "0" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.0.0.
precision | "14" | PHP_INI_ALL |
y2k_compliance | "1" | PHP_INI_ALL |
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.0.0.
expose_php | "1" | php.ini uniquement |
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Disponible depuis PHP 5.0.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

short_open_tag boolean

Définit si les balises courtes d'ouverture de PHP (<? ?>) sont autorisées ou non. Si vous voulez utiliser PHP avec XML, vous devez désactiver cette option de configuration pour pouvoir utiliser <?xml ?>. Sinon, vous pouvez l'écrire à l'aide de PHP, par exemple : <?php echo '<?xml version="1.0"'; ?>. Si cette option est désactivée, vous devez utiliser la version longue d'ouverture de balises PHP (<?php ?>).

Note : Cette directive affecte également l'utilisation de <?=, qui est identique à <? echo. L'utilisation de cette écriture nécessite que l'option short_open_tag soit activée. to be on.

asp_tags boolean

Active l'utilisation des balises ASP (<% %>) tout en conservant les balises PHP (<?php ?>). Cela inclut l'utilisation des balises courtes comme <%= $valeur %>. Pour plus d'informations, lisez la page Sortir du mode HTML.

Note : Le support des balises ASP a été ajouté en PHP 3.0.4.

precision integer

Le nombre de décimales significatif à afficher dans les nombres à virgule flottante.

y2k_compliance boolean

Force la conformité avec l'an 2000 (peut être la cause de problèmes avec les navigateurs non-conformes)

allow_call_time_pass_reference boolean

Active ou non la possibilité de forcer les arguments à être passés par référence lors de l'appel à une fonction. Cette méthode est dépréciée et ne sera très certainement plus supportée dans les futures versions de PHP/Zend. Il est préférable de spécifier directement dans la déclaration de la fonction si les arguments seront passés ou non par référence. Nous vous encourageons à désactiver cette option et de vous assurer que vos scripts fonctionnent correctement avec, afin d'être sûr qu'ils fonctionneront avec les versions futures du langage (vous devriez recevoir une alerte à chaque fois que vous utiliserez cette fonctionnalité).

Passer les arguments par référence à l'appel de la fonction a été abandonné pour rendre le code plus clair. Les fonctions risquaient de modifier les arguments d'une manière aléatoire si l'argument était passé par référence. Pour éviter cet effet, il est préférable de spécifier le passage par référence dans le prototype de la fonction.

Voir aussi l'explication sur les références.

expose_php boolean

Décide ou non si PHP doit être affiché comme étant installé sur le serveur (e.g. en ajoutant sa signature dans les en-têtes du serveur web). Ce n'est en aucun cas une menace de sécurité, mais cela permet de déterminer si vous utilisez PHP ou non sur votre serveur.

zend.ze1_compatibility_mode boolean

Active le mode de compatibilité avec le Zend Engine 1 (PHP 4). Cela affecte le clonage, le casting (les objets sans propriété sont transtipés en FALSE ou 0) et la comparaison des objets. Dans ce mode, les objets sont passés par valeur plutôt que par référence, par défaut.

Limite des ressources

Tableau H-5. Options de configuration

Nom | Par défaut | Modifiable | Historique
memory_limit | "128M" | PHP_INI_ALL | "8M" avant PHP 5.2.0, "16M" depuis PHP 5.2.0

Voici un éclaircissement sur l'utilisation des directives de configuration.

memory_limit integer

Cette option détermine la mémoire limite, en octets, qu'un script est autorisé à allouer. Cela permet de prévenir l'utilisation de toute la mémoire par un script mal codé. Notez que pour n'avoir aucune limite, vous devez définir cette directive à -1.

Avant la version 5.2.1 de PHP, pour pouvoir utiliser cette directive, vous deviez l'activer au moment de la compilation en utilisant l'option --enable-memory-limit dans la ligne de configuration. Cette méthode nécessite également de définir les fonctions memory_get_usage() et memory_get_peak_usage().

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

Tableau H-6. Réglage de Performance

Nom | Par défaut | Modifiable | Historique
realpath_cache_size | "16K" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.0.
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Disponible depuis PHP 5.1.0.

Voici un éclaircissement sur l'utilisation des directives de configuration.

realpath_cache_size entier

Détermine la taille du cache de realpath qui sera utilisée par PHP. Cette valeur devrait être augmentée sur les systèmes où PHP ouvre plusieurs fichiers, pour refléter la quantité d'opérations exécutées sur les fichiers.

realpath_cache_ttl entier

Temps (en seconde) pour lequel persiste l'information du cache de realpath pour un fichier ou un répertoire donné. Pour des systèmes avec des fichiers qui changent peu souvent, pensez à augmenter cette valeur.

Gestion des données

Tableau H-7. Options de configuration

Nom | Par défaut | Modifiable | Historique
track_vars | "On" | PHP_INI_?? |
arg_separator.output | "&" | PHP_INI_ALL | Disponible depuis PHP 4.0.5.
arg_separator.input | "&" | PHP_INI_PERDIR | Disponible depuis PHP 4.0.5.
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 5.0.5.
auto_globals_jit | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.0.0.
register_globals | "0" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
register_argc_argv | "1" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
register_long_arrays | "1" | PHP_INI_PERDIR | Disponible depuis PHP 5.0.0.
post_max_size | "8M" | PHP_INI_PERDIR | PHP_INI_SYSTEM pour PHP <= 4.2.3. Disponible depuis PHP 4.0.3.
gpc_order | "GPC" | PHP_INI_ALL |
auto_prepend_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
auto_append_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.
default_mimetype | "text/html" | PHP_INI_ALL |
default_charset | "" | PHP_INI_ALL |
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3. Disponible depuis PHP 4.1.0.
allow_webdav_methods | "0" | PHP_INI_PERDIR |

Voici un éclaircissement sur l'utilisation des directives de configuration.

track_vars boolean

Si cette option est configurée, alors les variables d'environnement GET, POST, Cookie et Server peuvent être trouvées respectivement dans les tableaux associatifs globaux $_ENV, $_GET, $_POST, $_COOKIE et $_SERVER.

Notez que depuis PHP 4.0.3, track_vars est toujours activée.

arg_separator.output string

Le séparateur utilisé lorsque PHP génère les URLs pour séparer les arguments.

arg_separator.input string

Liste des séparateur(s) utilisé(s) par PHP pour analyser les URLs entrantes et en déduire les valeurs.

Note : Chaque caractère de cette directive est considéré comme étant un séparateur !

variables_order string

Définit l'ordre d'analyse des variables EGPCS (Environment, Get, Post, Cookie, et Server). Par exemple, si variables_order est défini à "SP" alors PHP créera superglobals $_SERVER et $_POST, maisne créera pas $_ENV, $_GET, et $_COOKIE. Le fait de définir cet ordre à "" signifie qu'aucune superglobals ne sera définie.

Si la directive obsolète register_globals est activée (supprimée depuis PHP 6), alors variables_order configurera également l'ordre pour les variables ENV, GET, POST, COOKIE et SERVER qui seront peuplées dans le contexte global. Ainsi, par exemple, si variables_order est défini à "EGPCS", si register_globals est actif, et que $_GET['action'] et $_POST['action'] sont définies, alors $action contiendra la valeur de $_POST['action'] vu que P vient après G dans la valeur de la directive pour cet exemple.

Note : The content and order of $_REQUEST is also affected by this directive.

auto_globals_jit boolean

Quand directive est activée, les variables SERVER et ENV sont créées lorsqu'elles sont utilisées : seulement si nécessaire. Si ces variables ne sont pas utilisées dans un script, le script verra un gain de performances.

Les directives PHP register_globals, register_long_arrays, et register_argc_argv doivent être désactivées pour que cete directive soit utilisable. Depuis PHP 5.1.3, il n'est plus nécessaire de désactiver register_argc_argv.

register_globals boolean

Définit si oui ou non les variables EGPCS (Environment, GET, POST, Cookie, Server) seront enregistrées comme des variables globales.

Depuis PHP 4.2.0, la valeur par défaut de cette directive est off.

Lisez le chapitre sur la sécurité concernant l'utilisation de register_globals pour plus d'informations.

Notez que register_globals ne peut pas être défini durant le traitement (ini_set()). Vous pouvez utiliser .htaccess si votre hôte vous le permet comme décrit ci-dessous. Exemple d'une entrée .htaccess : php_flag register_globals off.

Note : La directive register_globals est affectée par la directive variables_order .

Cette directive a été effacée depuis PHP 6.0.0.

register_argc_argv boolean

Dit à PHP s'il doit déclarer ou non les variables argv et argc (qui contiendront les informations GET).

Voir aussi les lignes de commande. Cette directive a été introduite depuis PHP 4.0.0 et valait toujours "on" avant.

register_long_arrays boolean

Dit à PHP si oui ou non il doit enregistrer les types dépréciés $HTTP_*_VARS comme variables pré-définies. Lorsque cette directive est activée (par défaut), les variables longues PHP comme $HTTP_GET_VARS seront définies. Si vous ne les utilisez pas, il est recommandé de désactiver cette option pour des raisons de performance. À la place, utilisez les variables tableaux super-globales comme $_GET.

Cette directive est disponible depuis PHP 5.0.0 et a été supprimée depuis PHP 6.0.0.

post_max_size integer

Définit la taille maximale des données reçues par la méthode POST. Cette option affecte également les fichiers chargés. Pour charger de gros fichiers, cette valeur doit être plus grande que la valeur de upload_max_filesize.

Si la limitation de mémoire est activée par votre script de configuration, memory_limit affectera également les fichiers chargés. 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.

gpc_order string

Définit l'ordre de parcours des variables GET/POST/COOKIE. Par défaut, cette directive vaut "GPC". Si vous positionnez cette directive à "GP" par exemple, PHP ignorera complètement les cookies et effacera toutes les variables de la méthode GET avec les variables de la méthode POST portant le même nom.

Note : Cette option n'est pas disponible en PHP 4. Utilisez variables_order à la place.

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 include(), 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 include(), 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

default_charset string

Depuis PHP 4.0.0, PHP enverra toujours un jeux de caractères par défaut à l'en-tête HTTP Content-type: header. Pour désactiver l'envoi du jeu de caractères, définissez le tout simplement à une valeur vide.

always_populate_raw_post_data boolean

Remplit toujours la variable $HTTP_RAW_POST_DATA. Sinon, la variable est remplie uniquement des types MIME non reconnus des données. Cependant, la méthode préférée pour l'accès à ce type de données est php://input. $HTTP_RAW_POST_DATA n'est pas disponible avec enctype="multipart/form-data".

allow_webdav_methods boolean

Autorise la gestion des requêtes HTTP WebDav avec des scripts PHP (e.g PROPFIND, PROPPATCH, MOVE, COPY, etc.). Cette directive n'existe plus depuis PHP 4.3.2. Si vous voulez récupérer les données envoyées avec la méthode POST de ce type de requêtes, vous devez également définir always_populate_raw_post_data.

Voir aussi : magic_quotes_gpc, magic_quotes_runtime et magic_quotes_sybase.

Chemins et répertoires

Tableau H-8. Options de configuration

Nom | Par défaut | Modifiable | Historique
include_path | ".;/chemin/vers/php/pear" | PHP_INI_ALL |
doc_root | NULL | PHP_INI_SYSTEM |
user_dir | NULL | PHP_INI_SYSTEM |
extension_dir | "/chemin/vers/php" | PHP_INI_SYSTEM |
extension | NULL | php.ini uniquement |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | Disponible depuis PHP 5.2.0.
cgi.fix_pathinfo | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
cgi.force_redirect | "1" | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
cgi.redirect_status_env | NULL | PHP_INI_ALL | Disponible depuis PHP 4.2.0.
fastcgi.impersonate | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.
cgi.rfc2616_headers | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0.

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.

Exemple H-1. include_path sous Unix

include_path=".:/php/includes"

Exemple H-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.

doc_root string

Le dossier racine de PHP sur le serveur. Uniquement utilisé si non vide. Si PHP est configuré avec le safe mode, aucun fichier n'est servi en dehors de ce répertoire. Si PHP n'a pas été compilé avec FORCE_REDIRECT, vous devez définir le doc_root si vous utilisez PHP en tant que CGI sous n'importe quel serveur web (autre que IIS). Alternativement, vous pouvez utiliser la configuration cgi.force_redirect.

user_dir string

Le nom de base du répertoire utilisé dans un répertoire utilisateur pour les fichiers PHP, par exemple, public_html.

extension_dir string

Spécifie le répertoire dans lequel PHP doit chercher des extensions externes à charger. Voir aussi enable_dl et dl().

extension chaîne de caractères

Quelles extensions doivent être chargées dynamiquement lors du démarrage de PHP.

cgi.check_shebang_line booléen

Contrôle si PHP CGI vérifie la ligne commençant par #! (shebang) en haut du script exécuté. Cette ligne est nécessaire si le script est destiné à être exécuté en mode autonome et via un PHP CGI. PHP en mode CGI ne lit pas cette ligne et ignore son contenu si cette directive est active.

cgi.fix_pathinfo booléen

Fournit un réel PATH_INFO/PATH_TRANSLATED pour CGI. Le comportement précédent de PHP était de définir PATH_TRANSLATED en SCRIPT_FILENAME et de ne pas remplir PATH_INFO. Pour plus d'informations sur PATH_INFO, lisez les spécificités CGI. Si définie à 1, PHP CGI fixera ce chemin suivant les spécifications. Si définie à 0, PHP appliquera l'ancien comportement. Par défaut, cette directive vaut 0. Vous devriez modifier vos scripts pour utiliser SCRIPT_FILENAME à la place de PATH_TRANSLATED.

cgi.force_redirect boolean

cgi.force_redirect est nécessaire pour des raisons de sécurité lors de l'utilisation de PHP en mode CGI sous la plupart des serveurs web. Si vous ne la définissez pas, PHP l'activera automatiquement par défaut. Vous pouvez la désactiver à vos risques et périls.

Note : Utilisateurs de Windows : Vous pouvez désactiver cette option en toute sécurité si vous utilisez le serveur web IIS ; en fait, vous le devez. Pour faire fonctionner les serveurs web OmniHTTPD ou Xitami, vous devez désactiver cette directive.

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.

fastcgi.impersonate string

FastCGI sous IIS (sur les systèmes d'exploitation basés sur WINNT) supporte la possibilité de déterminer la marque de sécurité du client appelant. Cela permet à IIS de définir le contexte de sécurité sur lequel la requête est exécuté. mod_fastcgi sous Apache ne supporte actuellement pas cette fonctionnalité (03/17/2002). Définie à 1 si vous utilisez IIS. Par défaut, vaut 0.

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: 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. Laissez cette valeur à 0 à moins que vous sachiez ce que vous faites.

Chargement de fichiers

Tableau H-9. Options de configuration

Nom | Par défaut | Modifiable | Historique
file_uploads | "1" | PHP_INI_SYSTEM | PHP_INI_ALL pour PHP <= 4.2.3. Disponible depuis PHP 4.0.3.
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP_INI_ALL pour PHP <= 4.2.3.

Voici un éclaircissement sur l'utilisation des directives de configuration.

file_uploads boolean

Autorise ou non le chargement de fichiers par HTTP. Voir aussi les directives upload_max_filesize, upload_tmp_dir et post_max_size.

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

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.

upload_max_filesize integer

La taille maximale en octets d'un fichier à charger.

Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ..

SQL général

Tableau H-10. Options de configuration

Nom | Par défaut | Modifiable | Historique
sql.safe_mode | "0" | PHP_INI_SYSTEM |

Voici un éclaircissement sur l'utilisation des directives de configuration.

sql.safe_mode boolean

Si activé, les fonctions de connexion à la base de données qui spécifient des valeurs par défaut utiliseront ces valeurs au lieu des arguments fournis. Pour les valeurs par défaut, reportez-vous à la documentation des fonctions de connexion pour la base de données concernée.

Directives de configuration de déboguage

Attention

Seulement PHP 3 implémente un débogueur par défaut ; voir Annexe F pour plus d'informations.

debugger.host string

Nom du DNS ou adresse IP de l'hôte utilisé par le débogueur.

debugger.port string

Numéro du port utilisé par le débogueur.

debugger.enabled boolean

Active ou non le débogueur.

Précédent | Sommaire | Suivant
Directives du php.ini | Niveau supérieur | Liste des Fuseaux Horaires Supportés


Installation et configuration

Manuel PHP
Précédent Suivant

II. Installation et configuration

Table des matières
3. Considérations générales sur l'installation
4. Installation sur les systèmes UNIX
5. Installation sur un système Mac OS X
6. Installation sur les système Windows
7. Installation d'extensions PECL
8. Des problèmes ?
9. Configuration

Précédent | Sommaire | Suivant
Et après ? |  | Considérations générales sur l'installation


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

Manuel PHP
Précédent Suivant

Chapitre 3. Considérations générales sur l'installation

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

  • Sites Web et applications Web (script côté serveur)

  • Scripts de ligne de commande

  • Application à interface graphique (GUI)

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

Si vous installez PHP et le serveur par vous-même, vous avez deux choix. Soit sous la forme d'un module du serveur web (via une interface directe appelée SAPI). Les serveurs qui supportent cette solution comptent notamment Apache, Microsoft Internet Information Server, Netscape et iPlanet. D'autres serveurs ont aussi le support ISAPI, l'interface de module Microsoft (OmniHTTPd par exemple). Si PHP ne supporte pas l'interface de module de votre serveur web, vous pouvez toujours l'utiliser comme processeur CGI. Cela signifie que vous devez configurer votre serveur pour qu'il utilise l'exécutable PHP (php.exe sous Windows), 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 passeriez), 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 de certains OS (y compris Windows), sont disponibles à http://www.php.net/downloads.php. Nous recommandons l'utilisation du miroir le plus proche pour accélérer les chargements.

Précédent | Sommaire | Suivant
Installation et configuration | Niveau supérieur | Installation sur les systèmes UNIX


Installation sur un système Mac OS X

Manuel PHP
Précédent Suivant

Chapitre 5. Installation sur un système Mac OS X

Table des matières
Utilisation des paquets
Using the bundled PHP
Compilation pour les serveurs OS X
Compilation pour les clients MacOs

Cette section contient les notes et conseils pour installer PHP sur un système Mac OS X. Il y a deux versions légèrement différentes de Mac OS X, Client et Serveur ; notre manuel vous guidera dans l'installation de PHP sur ces deux versions. Notez que PHP n'est pas disponible pour MacOS 9 et versions précédentes.

Utilisation des paquets

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

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

  • Darwin: http://darwinports.opendarwin.org/

  • Entropy: http://www.entropy.ch/software/macosx/php/

  • Fink: http://fink.sourceforge.net/

Précédent | Sommaire | Suivant
Installation sous Debian GNU/Linux | Niveau supérieur | Using the bundled PHP


Using the bundled PHP

PHP has come standard with Macs since OS X version 10.0.0. Enabling PHP with the default web server requires uncommenting a few lines in the Apache configuration file httpd.conf whereas the CGI and/or CLI are enabled by default (easily accessible via the Terminal program).

Enabling PHP using the instructions below is meant for quickly setting up a local development environment. It's highly recommended to always upgrade PHP to the newest version. Like most live software, newer versions are created to fix bugs and add features and PHP being is no different. See the appropriate MAC OS X installation documentation for further details. The following instructions are geared towards a beginner with details provided for getting a default setup to work. All users are encouraged to compile, or install a new packaged version.

The standard installation type is using mod_php, and enabling the bundled mod_php on Mac OS X for the Apache web server (the default web server, that is accessible via System Preferences) involves the following steps:

  1. Locate and open the Apache configuration file. By default, the location is as follows: /etc/httpd/httpd.conf

    Using Finder or Spotlight to find this file may prove difficult as by default it's private and owned by the root user.

    Note : One way to open this is by using a Unix based text editor in the Terminal, for example nano, and because the file is owned by root we'll use the sudo command to open it (as root) so for example type the following into the Terminal Application (after, it will prompt for a password): sudo nano /etc/httpd/httpd.conf

    Noteworthy nano commands: ^w (search), ^o (save), and ^x (exit) where ^ represents the Ctrl key.

  2. With a text editor, uncomment the lines (by removing the #) that look similar to the following (these two lines are often not together, locate them both in the file):

    # LoadModule php4_module libexec/httpd/libphp4.so

# AddModule mod_php4.c
    Notice the location/path. When building PHP in the future, the above files should be replaced or commented out.

  3. Be sure the desired extensions will parse as PHP (examples: .php .html and .inc)

    Due to the following statement already existing in httpd.conf (as of Mac Panther), once PHP is enabled the .php files will automatically parse as PHP.

    <IfModule mod_php4.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>

  4. Be sure the DirectoryIndex loads the desired default index file

    This is also set in httpd.conf. Typically index.php and index.html are used. By default index.php is enabled because it's also in the PHP check shown above. Adjust accordingly.

  5. Set the php.ini location or use the default

    A typical default location on Mac OS X is /usr/local/php/php.ini and a call to phpinfo() will reveal this information. If a php.ini is not used, PHP will use all default values. See also the related FAQ on finding php.ini.

  6. Locate or set the DocumentRoot

    This is the root directory for all the web files. Files in this directory are served from the web server so the PHP files will parse as PHP before outputting them to the browser. A typical default path is /Library/WebServer/Documents but this can be set to anything in httpd.conf. Alternatively, the default DocumentRoot for individual users is /Users/yourusername/Sites

  7. Create a phpinfo() file

    The phpinfo() function will display information about PHP. Consider creating a file in the DocumentRoot with the following PHP code:

    <?php phpinfo(); ?>

  8. Restart Apache, and load the PHP file created above

    To restart, either execute sudo apachectl graceful in the shell or stop/start the "Personal Web Server" option in the OS X System Preferences. By default, loading local files in the browser will have an URL like so: http://localhost/info.php Or using the DocumentRoot in the user directory is another option and would end up looking like: http://localhost/~yourusername/info.php

The CLI (or CGI in older versions) is appropriately named php and likely exists as /usr/bin/php. Open up the terminal, read the command line section of the PHP manual, and execute php -v to check the PHP version of this PHP binary. A call to phpinfo() will also reveal this information.

Précédent | Sommaire | Suivant
Installation sur un système Mac OS X | Niveau supérieur | Compilation pour les serveurs OS X


Compilation pour les clients MacOs

Les instructions suivantes devraient vous aider dans l'installation du module PHP pour le serveur web Apache inclus dans MacOS X. Cette version inclut le support pour les bases de données MySQL et PostgreSQL. Ces instructions proviennent généreusement de Marc Liyanage.

Avertissement

Note : soyez prudent lorsque vous faites cela, vous risquez de détruire la configuration de votre serveur web Apache !

Faites ceci pour l'installation :

  1. Ouvrez une fenêtre de terminal

  2. Tapez wget http://www.diax.ch/users/liyanage/software/macosx/libphp4.so.gz, et attendez la fin du téléchargement.

  3. Tapez gunzip libphp4.so.gz.

  4. Tapez sudo apxs -i -a -n php4 libphp4.so

  5. Maintenant, tapez sudo open -a TextEdit /etc/httpd/httpd.conf. TextEdit va ouvrir le fichier de configuration de votre serveur web. Recherchez les deux lignes suivantes, à la fin du fichier (utilisez la commande de recherche) :

    #AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
    Supprimez les deux signes dièse (#), puis sauvez le fichier, et quittez TextEdit.

  6. Finalement, tapez sudo apachectl graceful pour redémarrer le serveur Apache.

PHP devrait être fonctionnel. Vous pouvez le tester en créant un fichier dans votre dossier "Sites", appelé "test.php". Dans ce fichier, écrivez la ligne : <?php phpinfo() ?>.

Maintenant, ouvrez votre navigateur à l'adresse suivante : 127.0.0.1/~your_username/test.php. Vous devriez obtenir la page d'information de phpinfo.

Précédent | Sommaire | Suivant
Compilation pour les serveurs OS X | Niveau supérieur | Installation sur les système Windows


Compilation pour les serveurs OS X

Compilation pour les serveurs OS X.

  1. Téléchargez les dernières distributions d'Apache et PHP.

  2. Décompressez-les, et utilisez le script configure sur Apache, comme ceci.

    ./configure --exec-prefix=/usr \
--localstatedir=/var \
--mandir=/usr/share/man \
--libexecdir=/System/Library/Apache/Modules \
--iconsdir=/System/Library/Apache/Icons \
--includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
--enable-shared=max \
--enable-module=most \
--target=apache

  3. Si vous voulez que le compilateur fasse certaines optimisations, ajoutez cette ligne :

    setenv OPTIM=-O2

  4. Puis, allez dans le dossier PHP 4 et configurez PHP.

    ./configure --prefix=/usr \
    --sysconfdir=/etc \
    --localstatedir=/var \
    --mandir=/usr/share/man \
    --with-xml \
    --with-apache=/src/apache_1.3.12
    Si vous avez d'autres extensions à ajouter (MySQL, GD, etc.), assurez-vous de placer les bonnes options ici. Pour la chaîne --with-apache, ajoutez le chemin de votre distribution source apache, par exemple, /src/apache_1.3.12.

  5. Tapez make puis make install. Cela va ajouter un dossier à votre distribution Apache, sous src/modules/php4.

  6. Maintenant, reconfigurez Apache pour compiler PHP 4.

    ./configure --exec-prefix=/usr \
--localstatedir=/var \
--mandir=/usr/share/man \
--libexecdir=/System/Library/Apache/Modules \
--iconsdir=/System/Library/Apache/Icons \
--includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
--enable-shared=max \
--enable-module=most \
--target=apache \
--activate-module=src/modules/php4/libphp4.a
    Vous pouvez recevoir un message qui vous dit que libmodphp4.a est trop ancien. Si c'est le cas, allez dans le dossier src/modules/php4 de votre distribution Apache et utilisez cette commande : ranlib libmodphp4.a. Puis retournez à la racine de la distribution Apache et lancez la commande configure ci-dessus. Cela aura mis la table de liens à jour. Lancez à nouveau make et make install.

  7. Copiez et renommez le fichier php.ini-dist dans votre dossier bin de votre dossier PHP : cp php.ini-dist /usr/local/bin/php.ini ou, si vous n'avez pas de dossier local : cp php.ini-dist /usr/bin/php.ini.

Précédent | Sommaire | Suivant
Using the bundled PHP | Niveau supérieur | Compilation pour les clients MacOs


Installation d'extensions PECL

Manuel PHP
Précédent Suivant

Chapitre 7. Installation d'extensions PECL

Table des matières
Introduction aux installations PECL
Télécharger des extensions PECL
PECL sur Windows
Compilation d'extensions PECL partagées avec la commande pecl
Compilation des extensions partagées avec phpize
Compilation des extensions PECL statiquement dans PHP

Introduction aux installations PECL

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

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

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

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

Précédent | Sommaire | Suivant
Installation des extensions sous Windows | Niveau supérieur | Télécharger des extensions PECL


Télécharger des extensions PECL

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

  • http://pecl.php.net

    Le site web de PECL contient diverses informations sur les différentes extensions offertes par l'équipe de développement de PHP. Vous pourrez consulter les modifications entre les versions, les notes de versions, ce qui est requit 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.

  • CVS

    La plupart des fichiers PECL sont conservés dans le serveur CVS. Une interface Web est disponible à http://cvs.php.net/pecl/. Pour télécharger directement depuis CVS, suivez la séquence d'instructions ci-dessous. Notez que phpfi est le mot de passe de l'utilisateur cvsread :

    $ cvs -d:pserver:cvsread@cvs.php.net:/repository login
$ cvs -d:pserver:cvsread@cvs.php.net:/repository co pecl/extname

  • Téléchargements pour Windows

    Les utilisateurs de Windows peuvent trouver les bibliothèques compilées PECL dans la Collection of PECL modules disponible sur la page téléchargements PHP, ou en récupérant un Snapshot PECL, ou en récupérant la bibliothèque DDL sur PECL4WIN. Pour compiler PHP sous Windows, lisez le chapitre approprié.

Précédent | Sommaire | Suivant
Installation d'extensions PECL | Niveau supérieur | PECL sur Windows


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

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

$ pecl install extname

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

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

$ pecl install extname-beta

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

$ pecl install extname-0.1

Précédent | Sommaire | Suivant
PECL sur Windows | Niveau supérieur | Compilation des extensions partagées avec phpize


Compilation des extensions partagées avec phpize

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

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

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

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

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

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

Précédent | Sommaire | Suivant
Compilation d'extensions PECL partagées avec la commande pecl | Niveau supérieur | Compilation des extensions PECL statiquement dans PHP


Compilation des extensions PECL statiquement dans PHP

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

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

Cela générera le dossier suivant :

/your/phpsrcdir/ext/extname

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

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

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

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

$ ./configure --help | grep extname

Précédent | Sommaire | Suivant
Compilation des extensions partagées avec phpize | Niveau supérieur | Des problèmes ?


PECL sur Windows

Comme pour toute extension PHP DLL, l'installation est aussi simple que de copier la bibliothèque DDL de l'extension PECL dans le dossier extension_dir et de la charger dans le php.ini. Par exemple, ajoutez la ligne suivante dans votre php.ini :

extension=php_extname.dll

Après cela, relancez le serveur Web.

Précédent | Sommaire | Suivant
Télécharger des extensions PECL | Niveau supérieur | Compilation d'extensions PECL partagées avec la commande pecl


Des problèmes ?

Manuel PHP
Précédent Suivant

Chapitre 8. Des problèmes ?

Table des matières
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.

Précédent | Sommaire | Suivant
Compilation des extensions PECL statiquement dans PHP | Niveau supérieur | Autres problèmes


Rapports de Bogue

Si vous pensez avoir trouvé un bogue dans PHP, n'oubliez pas de le signaler. L'équipe de développement PHP ne le connaît peut être pas et, si vous ne le signalez pas, vos chances de voir le bogue corrigé sont nulles. Vous pouvez rapporter des bogues grâce au système de suivi, accessible à http://bugs.php.net/.

Lisez les guides (Les bogues : ce qu'il faut faire, et ce qu'il ne faut pas faire) avant d'envoyer n'importe quel rapport !

Précédent | Sommaire | Suivant
Autres problèmes | Niveau supérieur | Configuration


Autres problèmes

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

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

Précédent | Sommaire | Suivant
Des problèmes ? | Niveau supérieur | Rapports de Bogue


Installation sur les systèmes UNIX

Manuel PHP
Précédent Suivant

Chapitre 4. Installation sur les systèmes UNIX

Table des matières
Apache 1.3.x sur les systèmes Unix
Apache 2.0 sur les systèmes Unix
Caudium
Installation avec les serveurs fhttpd
Installation sous Netscape et iPlanet Enterprise Serveur sur un système Sun Solaris
CGI et configuration en ligne de commande
Installation sous HP-UX
Installation sur les systèmes OpenBSD
Installation sous Solaris
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 lignes 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)

  • flex: Version 2.5.4 (pour compiler)

  • bison: Version 1.28 (préféré), 1.35, or 1.75 (pour compiler)

  • Un serveur web

  • Tous les composants nécessaires aux extensions (bibliothèque GD, PDF, etc.)

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

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

Apache 1.3.x sur les systèmes Unix

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

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

Exemple 4-1. Instructions d'installation de PHP (en module Apache)

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

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

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

11. make
12. make install

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

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

13. Configurez votre fichier php.ini :

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

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

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

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

    Pour PHP 4 :

      LoadModule php4_module libexec/libphp4.so

    Pour PHP 5 :

      LoadModule php5_module libexec/libphp5.so

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

    Pour PHP 4 :

      AddModule mod_php4.c

    Pour PHP 5 :

      AddModule mod_php5.c

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

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

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

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

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

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

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

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

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

10. cd ../apache_1.3.x

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

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

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

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

Note : Remplacez php-5 par php-4 et php5 par php4 en PHP 4.

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

Exemple 4-3. Exemples de commandes pour le redémarrage d'apache

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

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

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

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

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

Différents exemples de compilation PHP pour Apache suivent :

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

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

Exemple 4-4. Compilation de PHP avec le support PostGreSQL

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

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

Exemple 4-5. Compilation en bibliothèques statiques

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

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

Exemple 4-6. Compilation en bibliothèques partagées

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

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

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

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

Exemple 4-7. httpd.conf fournit par Apache

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

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

Précédent | Sommaire | Suivant
Considérations générales sur l'installation | Niveau supérieur | Apache 2.0 sur les systèmes Unix


Apache 2.0 sur les systèmes Unix

Cette section contient les notes et conseils d'installation de PHP avec le serveur Apache 2.0 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 à la place, ou utilisez Apache 1. Pour savoir pourquoi, lisez l'entrée de la FAQ correspondante à l'utilisation d'Apache 2 dans un environnement threadé MPM.

Il est vivement recommandé de lire la documentation Apache pour avoir une meilleure connaissance du serveur web Apache 2.0.

Notes sur la compatibilité de PHP avec Apache 2.0 : Les versions de PHP suivantes sont reconnues pour fonctionner avec la plus récente version d'Apache 2.0.x :

  • PHP 4.3.0 ou plus récent, disponible à http://www.php.net/downloads.php.
  • Les dernières versions stables de développement. Le code source est disponible à http://snaps.php.net/php5-latest.tar.gz, ou les exécutables compilés pour Windows à http://snaps.php.net/win32/php5-win32-latest.zip.
  • Une version non stable, téléchargeable sur http://qa.php.net/.
  • Vous pouvez obtenir PHP sur le serveur CVS anonyme.
Ces versions de PHP sont compatibles avec Apache 2.0.40 et plus récent.

Le support des SAPI d'Apache 2.0 a commencé avec PHP 4.2.0. PHP 4.2.3 est connu pour fonctionner avec Apache 2.0.39. N'essayez pas d'utiliser cette version de PHP avec une autre version d'Apache 2.0. Sinon, nous vous recommandons de configurer PHP 4.3.0 ou supérieures avec la plus récente des versions d'Apache 2.

Toutes les versions de PHP mentionnées ici fonctionnent avec Apache 1.3.x.

Téléchargez la version la plus récente de Apache 2.0 et une version appropriée de PHP, tel que décrit ci-dessus. Ce guide rapide couvre les manipulations de base, nécessaires à l'installation de Apache 2.0 et PHP. Pour plus d'informations, lisez la documentation Apache. Les numéros de version sont omis ici, pour s'assurer que les instructions ne soient pas incorrectes. Il faudra donc remplacer les séquences 'NN' avec les valeurs correctes que vous utilisez.

Exemple 4-8. Instruction d'installation (Module partagé Apache 2)

1.  gzip -d httpd-2_0_NN.tar.gz
2.  tar xvf httpd-2_0_NN.tar
3.  gunzip php-NN.tar.gz
4.  tar -xvf php-NN.tar
5.  cd httpd-2_0_NN
6.  ./configure --enable-so
7.  make
8.  make install

    Maintenant, vous avez un dossier Apache 2.0.NN installé dans /usr/local/apache2,
    configure avec le support des modules dynamiques, et le prefork standard MPM.
    Pour tester l'installation, utilisez votre procédure standard de démarrage d'Apache :
    /usr/local/apache2/bin/apachectl start
    et pour stopper le serveur, utilisez
    /usr/local/apache2/bin/apachectl stop.

9.  cd ../php4-NN

10. Maintenant, configurez votre PHP. C'est l'endroit où vous configurez PHP
    avec diverses options, comme les extensions qui seront activées. Lancez
    ./configure --help pour une liste des options disponibles. Dans notre exemple,
    nous ferons une configuration assez simple avec uniquement le support de Apache 2 et MySQL.
    Votre chemin vers apxs peut être différent ; en fait, le binaire devrait toujours s'appeler
    apsx2 sur votre système.

      ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql

11. make
12. make install

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

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

13. Configurez votre fichier php.ini :

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

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

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

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

    Pour PHP 4 :

        LoadModule php4_module modules/libphp4.so

    Pour PHP 5:

        LoadModule php5_module modules/libphp5.so

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

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

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

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

16. Utilisez votre méthode habituelle pour démarrer le serveur Apache, e.g.:

      /usr/local/apache2/bin/apachectl start

Suivez les étapes ci-dessus, et vous disposerez d'un serveur Apache 2.0 avec le support de PHP module comme module SAPI. Bien sur, il y a bien d'autres options de configuration disponibles pour les deux logiciels, Apache et PHP. Pour plus de détails, utilisez la commande ./configure --help dans le dossier de sources approprié. Si vous souhaitez compiler une version multi-threadé de Apache 2.0 vous devrez remplacer le module standard MPM prefork avec worker ou perchild. Pour ce faire, ajoutez à la ligne de configuration de l'étape 6, l'option --with-mpm=worker ou --with-mpm=perchild. Soyez conscient des conséquences, et comprenez bien ce que vous faites. Pour plus de détails sur ce sujet, lisez la documentation Apache sur le module MPM.

Note : Si vous voulez utiliser la négociation sur le contenu, lisez la section FAQ Apache MultiViews.

Note : Pour compiler une version multi-threadée d'Apache, votre système doit supporter les threads. Cela implique aussi de compiler PHP avec le module expérimental de Zend Thread Safety (ZTS). Par conséquent, toutes les extensions ne seront pas disponibles. La configuration recommandée actuellement est celle avec le module standard MPM prefork.

Précédent | Sommaire | Suivant
Installation sur les systèmes UNIX | Niveau supérieur | Caudium


Caudium

PHP 4 peut être compilé comme module Pike pour le serveur web Caudium. Notez que ce mode n'est pas supporté en PHP 3. Suivez simplement les instructions suivantes pour installer PHP 4 sur un serveur Caudium.

Exemple 4-9. Instructions d'installation Caudium

1.  Assurez-vous que vous avez un serveur Caudium installé avant de tenter
    l'installation PHP 4. Pour que PHP 4 fonctionne correctement, vous devez
    installer Pike 7.0.268 ou plus récent. Pour cet exemple, nous supposerons
    que vous avez installé Caudium dans le dossier /opt/caudium/server/.
2.  Renommez le dossier en php-x.y.z (où x.y.z est le numéro de version).
3.  ./configure --with-caudium=/opt/caudium/server
4.  make
5.  make install
6.  Redémarrez Caudium s'il était en fonctionnement.
7.  Connectez-vous à l'interface de configuration graphique et allez
    dans le serveur virtuel auquel vous voulez ajouter le support PHP 4.
8.  Cliquez sur "Add Module" et recherchez puis ajoutez le module
    "PHP 4 Script Support".
9.  Si la documentation dit que 'PHP 4 interpreter isn't
    available', assurez-vous que vous avez bien redémarré le serveur.
    Si vous l'avez fait, vérifiez le fichier
    /opt/caudium/logs/debug/default.1 : il contient peut-être des
    erreurs liées à PHP4.so. De même, assurez-vous
    que caudium/server/lib/[pike-version]/PHP4.so
    est présent.
10. Configurez le module "PHP Script Support" si nécessaire.

Vous pouvez bien sûr compiler votre module Caudium avec les diverses extensions disponibles. Voyez la page de référence pour la liste des options de configuration.

Note : Lorsque vous ajoutez le support MySQL à PHP 4, vous devez vous assurer que le client MySQL normal est utilisé. Sinon, il peut y avoir des conflits avec Pike, qui dispose déjà du support MySQL. Vous pouvez le faire en spécifiant le dossier d'installation de MySQL grâce à l'option --with-mysql.

Précédent | Sommaire | Suivant
Apache 2.0 sur les systèmes Unix | Niveau supérieur | Installation avec les serveurs fhttpd


CGI et configuration en ligne de commande

Par défaut, PHP est compilé en version CGI. Cela crée un interpréteur de commande qui peut être utilisé soit pour le traitement CGI, soit pour les scripts non relatifs au web. Si PHP peut être incorporé au serveur web que vous utilisez en tant que module, de manière générale c'est cette solution que vous devriez adopter pour des raisons de performances. Cependant, la version CGI permet aux utilisateurs sous Apache de lancer des scripts PHP sous leurs UID respectives.

Avertissement

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

Avec PHP 4.3.0, d'importants ajouts ont été faits à PHP. une nouvelle SAPI, appelée CLI, existe aussi et porte le même nom que la version CGI. Ce qui est installé en tant que {PREFIX}/bin/php dépend de votre ligne de configuration. Tout ceci est décrit en détails dans la partie du manuel intitulée Utiliser PHP en ligne de commande. Veuillez vous y référer pour de plus amples informations.

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.

Performances

Si vous avez compilé PHP 3 comme programme CGI, vous pouvez évaluer ses performances avec la commande make bench. Notez que si le safe mode est activé (par défaut), vous risquez de voir l'évaluation s'arrêter une fois les 30 secondes réglementaires écoulées. En effet, la fonction set_time_limit() ne peut pas être utilisée si le safe mode fonctionne. Utilisez l'option max_execution_time pour contrôler le temps d'exécution de vos scripts. make bench ignore le fichier de configuration file.

Note : make bench n'est disponible qu'en PHP 3.

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.

Précédent | Sommaire | Suivant
Installation sous Netscape et iPlanet Enterprise Serveur sur un système Sun Solaris | Niveau supérieur | Installation sous HP-UX


Installation sous Debian GNU/Linux

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

Utilisation de APT

Au lieu de télécharger les sources de PHP et de les compiler vous-même, l'utilisation du système de paquets de Debian est la méthode la plus simple et la plus propre pour installer PHP. Si vous n'êtes pas familier avec la compilation de logiciels sous Linux, c'est la voie à suivre.

La première décision à prendre est de choisir entre Apache 1.3.x et Apache 2.x. Les paquets PHP correspondants sont nommés respectivement libapache-mod-php* et libapache2-mod-php*. La procédure ci-dessous considérera Apache 1.3.x. À noter que, lors de la rédaction de ce manuel, aucun paquet officiel de PHP 5 n'est encore disponible. Ainsi, la procédure s'occupera de l'installation de PHP 4.

PHP est aussi disponible en version CGI ou CLI, dont les paquets sont nommés respectivement php4-cgi et php4-cli. Si vous en avez besoin, vous aurez juste à reproduire la procédure avec les bons noms de paquet. php4-pear est un autre paquet spécial que vous pourriez être ammené à installer. Il contient une installation minimale de PEAR ainsi que l'utilitaire pear en ligne de commande.

Si vous avez besoin de paquets plus récents que les paquets stables issus de Debian, ou si certains modules ne sont pas présents dans la distribution officielle, vous pouvez jeter un oeil sur http://www.apt-get.org/. Un des résultats de la recherche sera Dotdeb. Ce référentiel non officiel est entretenu par Guillaume Plessis et contient des paquets Debian des versions les plus récentes de PHP 4 et PHP 5. Pour l'utiliser, ajoutez simplement les deux lignes suivantes dans votre fichier /etc/apt/sources.lists et lancez la commande apt-get update :

Exemple 4-11. Les deux lignes relatives à Dotdeb

deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

Enfin, vous devez vous assurer que votre liste de paquets est récente. Si vous ne l'avez pas mise à jour récemment, lancez la commande apt-get update. Ainsi, vous vous assurez d'utiliser les paquets les plus récents de Apache et PHP.

Maintenant que tout est en place, utilisez les commandes suivantes pour installer Apache et PHP :

Exemple 4-12. Exemple d'installation sous Debian avec Apache 1.3

# apt-get install libapache-mod-php4

APT installera automatiquement le module PHP 4 pour Apache 1.3 ainsi que toutes ses dépendances et les activera. S'il ne vous a pas été demandé de redémarrer Apache pendant l'installation, vous devrez le faire manuellement :

Exemple 4-13. Arrêter et démarrer Apache une fois que PHP 4 est installé

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

Meilleur contrôle de la configuration

Dans la partie précédente, PHP a été installé juste avec les modules de base. Ce n'est pas forcément ce que vous voulez et vous pourriez découvrir rapidement que vous avez besoin de davantage de modules, comme MySQL, CURL, GD, etc.

Lorsque vous compilez PHP par vous-même, vous devez activer les modules via la commande configure Avec APT, vous avez juste besoin d'installer des paquets supplémentaires. Ils sont tous nommés 'php4-*' (ou 'php5-*' si vous avez installé PHP 5 d'un référentiel tiers).

Exemple 4-14. Obtenir la liste des paquets supplémentaires

# dpkg -l 'php4-*'

Comme vous pouvez vous en rendre compte avec le résultat de la commande précédente, les modules PHP que vous pouvez installer sont nombreux (mis à part les exceptions php4-cgi, php4-cli and php4-pear décrits précédemment). Choisissez-les avec soin selon vos besoins. Si vous choisissez un module et que les librairies dont il dépend ne sont pas présentes sur votre système, APT les installera pour vous.

Si vous voulez installer les modules MySQL, cURL et GD, la commande à lancer sera la suivante :

Exemple 4-15. Installation des modules PHP de MySQL, cURL et GD

# apt-get install php4-mysql php4-curl php4-gd

APT ajoutera automatiquement les lignes adéquates dans vos différents php.ini (/etc/php4/apache/php.ini, /etc/php4/cgi/php.ini, etc).

Exemple 4-16. Ces lignes ajoutent le support MySQL, cURL et GD au sein de PHP

extension=mysql.so
extension=curl.so
extension=gd.so

Vous aurez juste à stopper/redémarrer Apache de la même façon que précédemment.

Problèmes fréquents

  • Si vous voyez la source de vos scripts PHP plutôt que le résultat attendu du script, c'est qu'APT a dû ne pas inclure /etc/apache/conf.d/php4 dans la configuration de votre Apache 1.3. Assurez-vous donc que la ligne suivante est présente dans votre fichier /etc/apache/httpd.conf puis stoppez/redémarrez Apache :

    Exemple 4-17. Cette ligne active le support de PHP au sein d'Apache

    # Include /etc/apache/conf.d/

  • Si vous avez installé un module PHP supplémentaire et que ses fonctions ne sont pas disponibles dans vos scripts, assurez-vous que la ligne adéquate est présente dans votre php.ini, comme vu précédemment. Il se peut qu'APT l'omette lors de l'installation du module, à cause d'une mauvaise configuration de debconf.

Précédent | Sommaire | Suivant
Installation sous Solaris | Niveau supérieur | Installation sur un système Mac OS X


Installation avec les serveurs fhttpd

Pour compiler PHP comme un module fhttpd, répondre "yes" à la question "Build as an fhttpd module ?" (cela correspond à l'option de configuration --with-fhttpd=DIR et spécifier la racine de la distribution fhttpd. Le répertoire par défaut est : /usr/local/src/fhttpd. Si vous utilisez fhttpd, compiler PHP en module vous permettra d'obtenir des performances supérieures, plus de contrôle et la possibilité d'exécution à distance.

Note : Le support de fhttpd n'est plus disponible depuis PHP 4.3.0.

Précédent | Sommaire | Suivant
Caudium | Niveau supérieur | Installation sous Netscape et iPlanet Enterprise Serveur sur un système Sun Solaris


Installation sous HP-UX

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

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

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

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

Précédent | Sommaire | Suivant
CGI et configuration en ligne de commande | Niveau supérieur | Installation sur les systèmes OpenBSD


Installation sur les systèmes OpenBSD

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

Utilisation des paquets binaires

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

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

Exemple 4-10. Exemple d'installation de PHP sous OpenBSD avec Ports

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

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

Utilisation des ports

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

Problèmes courants

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

  • Le paquet OpenBSD 3.6 pour l'extension gd requiert XFree86. Si vous n'avez pas besoin des fonctionnalités de polices qui demandent X11, installez le paquet php4-gd-4.3.8-no_x11.tgz.

Versions plus anciennes

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

Précédent | Sommaire | Suivant
Installation sous HP-UX | Niveau supérieur | Installation sous Solaris


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. Voici la liste des outils nécessaires :

  • gcc (recommandé, mais d'autres compilateurs C peuvent fonctionner)

  • make

  • flex

  • bison

  • m4

  • autoconf

  • automake

  • perl

  • gzip

  • tar

  • GNU sed

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 packages

Vous pouvez simplifier l'installation Solaris en utilisant pkgadd pour installer la plupart des composants.

Précédent | Sommaire | Suivant
Installation sur les systèmes OpenBSD | Niveau supérieur | Installation sous Debian GNU/Linux


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

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

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

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

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

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

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

  2. Assurez-vous que le path inclut bien les dossiers nécessaires : PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin et rendez-le accessible à vortre système avec export PATH.

  3. gunzip php-x.x.x.tar.gz (si vous avez une distribution .gz, ou bien allez en 4).

  4. tar xvf php-x.x.x.tar

  5. Passez dans votre dossier PHP : cd ../php-x.x.x

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

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

  7. Faites un make puis un make install.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Environnement CGI et modifications recommandées du php.ini

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

Note : Pourquoi est-ce que les variables CGI sont invalides ?

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

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

variables_order = "GPCS"
register_globals = On

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

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

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

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

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

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

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

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

Précédent | Sommaire | Suivant
Installation avec les serveurs fhttpd | Niveau supérieur | CGI et configuration en ligne de commande


Installation sur les système Windows

Manuel PHP
Précédent Suivant

Chapitre 6. Installation sur les système Windows

Table des matières
Installeur Windows (PHP 5.2 et suivant)
L'installeur Windows (PHP version 5.1.0 et inférieures)
Installation manuelle sous Windows
ActiveScript
Installation avec les serveurs IIS/PWS
Installer PHP sous Microsoft Windows avec Apache 1.3.x
Installation des serveurs Apache 2.0.x sur les systèmes Microsoft Windows
Serveurs Sun, iPlanet et Netscape servers sur Microsoft Windows
Installation pour les serveurs OmniHTTPd
Sambar Server on Microsoft Windows
Installation Xitami sur Microsoft Windows
Compilation des sources
Installation des extensions sous Windows

Cette section est applicable à Windows 98/ME et Windows NT/2000/XP/2003. PHP devrait fonctionner sur les plates-formes 16 bits comme Windows 3.1 et parfois, on décrira les plates-formes supportées sous le nom de Win32. Windows 95 n'est plus supporté à partir de la version 4.3.0 de PHP.

Il y a deux méthodes principales pour installer PHP sous Windows : soit manuellement, soit avec l'installeur.

Si vous avez Microsoft Visual Studio, vous pouvez aussi compiler PHP à partir des sources.

Une fois que PHP est installé sur votre Windows, vous pouvez aussi ajouter diverses extensions.

Avertissement

Il y a beaucoup d'installeurs "tout en un" sur Internet, mais aucun n'est approuvé par Php.net car nous pensons que l'installation manuelle reste le meilleur choix pour avoir un système sécurisé et optimisé.

Installeur Windows (PHP 5.2 et suivant)

L'installeur PHP pour Windows pour les versions suivantes de PHP est construit en utilisant la technologie MSI via le kit d'outils Wix (http://wix.sourceforge.net/). Il installe et configure PHP ainsi que toutes les extensions internes et PECL, mais aussi, configure les serveurs web les plus populaires comme IIS, Apache, et Xitami.

Tout d'abord, installez votre serveur HTTP (web) sur votre système et assurez-vous qu'il fonctionne correctement. Puis, utilisez une des façons suivantes pour l'installation de PHP.

Installation normale

Éxécutez l'installeur MSI et suivez les instructions fournies par l'assistant d'installation. Il vous sera demandé de sélectionner le serveur Web que vous voulez configurer en premier, ainsi que tous les détails de configuration nécessaires.

Ensuite, il vous sera demandé de sélectionner quelles fonctionnalités et extensions vous voulez installer et activer. En sélectionnant "Will be installed on local hard drive" dans le menu pour chaque élément, vous pouvez contrôler l'installation ou non de la fonctionnalité. En sélectionnant "Entire feature will be installed on local hard drive", vous pourrez installer toutes les sous-fonctionnalités de la fonctionnalité principale (par exemple, en sélectionnant la fonctionnalité "PDO", vous installerez également tous les drivers PDO).

Avertissement

Il n'est pas recommandé d'inzstaller toutes les extensions par défaut, sachant que la plupart nécessite des dépendances externes à PHP afin de fonctionner correctement. Préférez l'utilisation du mode de réparation qui est accessible via le panneau de contrôle "Ajout/Suppression de programmes" pour activer ou désactiver les extensions ou fonctionnalités, après l'installation.

L'installeur configurera donc PHP pour l'utiliser sous Windows, le fichier php.ini ainsi que certains serveurs Web. L'installeur configure actuellement IIS (mode CGI uniquement), Apache, Xitami et Sambar ; si vous utilisez un serveur web différent de ceux-ci, vous devrez le configurer manuellement.

Installation silencieuse

L'installeur supporte également un mode silencieux, qui est utile pour les administrateurs systèmes pour déployer PHP facilement. Pour utiliser le mode silencieux, entrez la commande suivante :

msiexec.exe /i php-VERSION-win32-install.msi /q

Vous pouvez contrôler le dosser d'installation en le passant comme paramètre à l'installeur. Par exemple, pour installer PHP dans le dossier e:\php :

msiexec.exe /i php-VERSION-win32-install.msi /q INSTALLDIR=e:\php
Vous pouvez également utiliser la même synthaxe pour spécifier le dossier de configuration d'Apache (APACHEDIR), le dossier du serveur Sambar (SAMBARDIR), et le dossier du serveur Xitami (XITAMIDIR).

Vous pouvez également spécifier quelles fonctionnalités devront être installées. Par exemple, pour installer l'extension mysqli et l'éxécutable CGI :

msiexec.exe /i php-VERSION-win32-install.msi /q ADDLOCAL=cgi,ext_php_mysqli

Voici la liste courante des fonctionnalités à installer :

MainExecutable - exécutable php.exe
ScriptExecutable - exécutable php-win.exe
ext_php_* - les diverses extensions ( par exemple : ext_php_mysql for MySQL )
apache13 - module Apache 1.3
apache20 - module Apache 2.0
apache22 - module Apache 2,2
apacheCGI - exécutable Apache CGI
iis4ISAPI - module IIS ISAPI
iis4CGI - exécutable IIS CGI
NSAPI - module serveur Sun/iPlanet/Netscape
Xitami - exécutable Xitami CGI
Sambar - module Sambar Server ISAPI
CGI - exécutable php-cgi.exe
PEAR - installeur PEAR
Manual - manuel PHP au format CHM

Pour plus d'informations sur l'installation via les installeurs MSI depuis la ligne de commande, visitez http://msdn.microsoft.com/library/en-us/msi/setup/command_line_options.asp

Précédent | Sommaire | Suivant
Compilation pour les clients MacOs | Niveau supérieur | L'installeur Windows (PHP version 5.1.0 et inférieures)


ActiveScript

Cette section contient des notes spécifiques à l'installation d'ActiveScript.

ActiveScript est une SAPI uniquement disponible sous Windows qui vous permet d'utiliser des scripts PHP dans l'importe quel hôte respectant ActiveScript comme Windows Scripts Host, ASP/ASP.NET, Windows Script Components ou encore Microsoft Scriptlet control.

Depuis PHP 5.0.1, ActiveScript a été déplacé dans le dépôt PECL. La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

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

Après avoir installé PHP, vous devez télécharger la bibliothèque ActiveScript (php5activescript.dll) et la placer dans le dossier principal de PHP (e.g. C:\php).

Après avoir récupéré tous les fichiers nécessaires, vous devez enregistrer cette bibliothèque DLL sur votre système. Pour réaliser cela, ouvrez un prompt de commande Windows (qui se trouve dans le menu démarrer). Allez dans votre répertoire PHP en tapant quelque chose comme cd C:\php. Pour enregistrer cette bibliothèque DLL, tapez juste : regsvr32 php5activescript.dll.

Pour tester si ActiveScript fonctionne, créez un nouveau fichier, nommé test.wsf (l'extension est vraiment très importante) et tapez :

<job id="test">

 <script language="PHPScript">
  $WScript->Echo("Bonjour le monde !");
 </script>

</job>
Sauvegardez et double-cliquez sur le fichier. Si vous recevez une petite fenêtre disant "Bonjour le monde !", c'est que cela fonctionne.

Note : En PHP 4, le moteur était appelé 'ActivePHP', donc, si vous utilisez PHP 4, vous devez remplacer 'PHPScript' par 'ActivePHP' dans l'exemple ci-dessus.

Note : ActiveScript n'utilise pas le fichier php.ini par défaut. À la place, il regardera uniquement dans le répertoire où se trouve le .exe qui l'a chargé. Vous devez créer un fichier php-activescript.ini et le placer dans ce dossier si vous voulez charger des extensions, etc.

Précédent | Sommaire | Suivant
Installation manuelle sous Windows | Niveau supérieur | Installation avec les serveurs IIS/PWS


Installer PHP sous Microsoft Windows avec Apache 1.3.x

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

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

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

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

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

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

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

Installation de PHP en tant que module Apache

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

Exemple 6-3. PHP comme module Apache 1.3.x

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

Pour PHP 4 :

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

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

Pour PHP 5 :

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

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

Pour les deux :

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

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

Installation comme binaire CGI

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

Exemple 6-4. PHP et Apache 1.3.x en tant que CGI

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

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

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

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

Avertissement

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

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

Précédent | Sommaire | Suivant
Installation avec les serveurs IIS/PWS | Niveau supérieur | Installation des serveurs Apache 2.0.x sur les systèmes Microsoft Windows


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

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

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

Support Apache 2.2.x : Les utilisateurs d'Apache 2.2.x peuvent utiliser la documentation ci-dessous mise à part le fait que la bibliothèque est nommée php5apache2_2.dll et n'existe que depuis PHP 5.2.0. Voir aussi http://snaps.php.net/

Avertissement

Nous ne recommandons pas l'utilisation de PHP dans un environnement threadé MPM, avec Apache 2. Utilisez le mode prefork MPM à la place, ou utilisez Apache 1. Pour savoir pourquoi, lisez l'entrée de la FAQ correspondante à l'utilisation d'Apache 2 dans un environnement threadé MPM.

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

Notes sur la compatibilité de PHP avec Apache 2.0 : Les versions de PHP suivantes sont reconnues pour fonctionner avec la plus récente version d'Apache 2.0.x :

  • PHP 4.3.0 ou plus récent, disponible à http://www.php.net/downloads.php.
  • Les dernières versions stables de développement. Le code source est disponible à http://snaps.php.net/php5-latest.tar.gz, ou les exécutables compilés pour Windows à http://snaps.php.net/win32/php5-win32-latest.zip.
  • Une version non stable, téléchargeable sur http://qa.php.net/.
  • Vous pouvez obtenir PHP sur le serveur CVS anonyme.
Ces versions de PHP sont compatibles avec Apache 2.0.40 et plus récent.

Le support des SAPI d'Apache 2.0 a commencé avec PHP 4.2.0. PHP 4.2.3 est connu pour fonctionner avec Apache 2.0.39. N'essayez pas d'utiliser cette version de PHP avec une autre version d'Apache 2.0. Sinon, nous vous recommandons de configurer PHP 4.3.0 ou supérieures avec la plus récente des versions d'Apache 2.

Toutes les versions de PHP mentionnées ici fonctionnent avec Apache 1.3.x.

Avertissement

Apache 2.0.x est conçu pour fonctionner sur Windows NT 4.0 et Windows 2000. Actuellement, le support des versions Windows 9x est incomplet. Apache 2.0 n'est pas prévu pour fonctionner sur ces plates-formes pour l'instant.

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

Il y a deux méthodes pour que PHP fonctionne avec Apache 2.0.x sous Windows. La première est l'interface CGI, et l'autre est le module DLL Apache. Dans les deux cas, commencez par stopper le serveur Apache, éditez le fichier httpd.conf pour configurer Apache avec le support PHP et redémarrer Apache.

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

Installation de PHP en mode CGI

Vous devez insérer trois lignes à votre fichier de configuration Apache httpd.conf pour configurer le binaire CGI :

Exemple 6-5. PHP et Apache 2.0.x en mode CGI

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

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

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

Avertissement

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

Installation de PHP en tant que module Apache

Vous devez insérer ces deux lignes à votre fichier de configuration Apache httpd.conf pour configurer le module PHP pour Apache 2.0.x :

Exemple 6-6. PHP et Apache 2.0.x en tant que module

# Pour PHP 4, faites quelques choses comme cela :
LoadModule php4_module "c:/php/php4apache2.dll"
# N'oubliez pas de copier le fichier php4apache2.dll depuis le dossier sapi !
AddType application/x-httpd-php .php

# Pour PHP 5, faites quelques choses comme cela :
LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php

# Configure le chemin vers le fichier php.ini
PHPIniDir "C:/php"

Note : Souvenez-vous de remplacer votre chemin actuel vers PHP par c:/php/ dans l'exemple ci-dessus. Faites attention d'utiliser soit le fichier php4apache2.dll ou php5apache2.dll dans votre directive LoadModule et non pas php4apache.dll ou php5apache.dll sachant que les derniers sont conçus pour fonctionner avec Apache 1.3.x.

Note : Si vous voulez utiliser la négociation sur le contenu, lisez cette entrée de la FAQ.

Avertissement

Ne mélangez pas votre installation avec des fichiers DLL issus de versions différentes de PHP. Vous avez le seul choix d'utiliser le DLL et les extensions qui correspondent avec votre version téléchargée de PHP.

Précédent | Sommaire | Suivant
Installer PHP sous Microsoft Windows avec Apache 1.3.x | Niveau supérieur | Serveurs Sun, iPlanet et Netscape servers sur Microsoft Windows


Compilation des sources

Ce chapitre va vous apprendre à compiler PHP depuis les sources sous Windows, en utilisant les utilitaires Microsoft. Pour compiler PHP avec Cygwin, référez-vous à Chapitre 4.

Pré-requis

Pour compiler et construire PHP, vous devez avoir un environnement de développement. Microsoft Visual C++ 6.0 est recommandé, mais les versions Visual C++ .NET fonctionnent également. Depuis PHP 5, les utilitaires libres Microsoft .NET sont également supportés (vous devez installer Windows Platform SDK, Visual C++ Toolkit et .NET Framework SDK).

Pour extraire les fichiers téléchargés, vous avez également besoin d'un utilitaire d'extraction de fichiers ZIP. Windows XP et supérieur inclut en natif cette fonctionnalité.

Avant de commencer, vous devez télécharger :

  • les utilitaires de compilation win32 depuis le site PHP sur http://www.php.net/extra/win32build.zip.

  • le code source pour l'utilitaire de résolution de nom DN utilisé par PHP sur http://www.php.net/extra/bindlib_w32.zip. C'est un remplacement à la bibliothèque resolv.lib incluse dans win32build.zip.

  • Si vous avez prévu de compiler PHP en tant que module Apache, vous devez également avoir les sources d'Apache.

Finalement, vous avez besoin des sources de PHP elles-mêmes. Vous pouvez récupérer la dernière version de développement en utilisant le CVS anonyme, un snapshot ou la version compressée la plus récente des sources.

Compiler tout ensemble

Après avoir téléchargé les paquets requis, vous devez les extraire dans un endroit approprié :

  • Créez un dossier de travail où vous y placerez tous les fichiers décompressés, e.g : C:\work.

  • Créez le dossier win32build dans votre dossier de travail (C:\work) et décompressez le fichier win32build.zip dans ce dossier.

  • Créez un dossier bindlib_w32 dans votre dossier de travail (C:\work) et décompressez le fichier bindlib_w32.zip dans ce dossier.

  • Décompressez les sources PHP téléchargées dans votre dossier de travail (C:\work).

  • Construisez les bibliothèques dont vous avez besoin (ou téléchargez les binaires s'ils sont disponibles) et placez les en-têtes et les bibliothèques respectivement dans les dossiers C:\work\win32build\include et C:\work\win32build\lib.

  • Si vous n'avez pas cygwin d'installé avec bison et flex, vous devez aussi rendre le dossier C:\work\win32build\bin disponible dans le PATH, alors ces outils peuvent être trouvés par le script de configuration.

Si vous avez correctement suivi les étapes précèdentes, vous devez obtenir la structure suivante :
+--C:\work
             |  |
             |  +--bindlib_w32
             |  |  |
             |  |  +--arpa
             |  |  |
             |  |  +--conf
             |  |  |
             |  |  +--...
             |  |
             |  +--php-5.x.x
             |  |  |
             |  |  +--build
             |  |  |
             |  |  +--...
             |  |  |
             |  |  +--win32
             |  |  |
             |  |  +--...
             |  |
             |  +--win32build
             |  |  |
             |  |  +--bin
             |  |  |
             |  |  +--include
             |  |  |
             |  |  +--lib

Si vous utilisez Cygwin, vous devez également créer les dossiers C:\usr\local\lib, puis copier le fichier bison.simple depuis C:\work\win32build\bin dans le dossier C:\usr\local\lib.

Note : Si vous voulez utiliser PEAR ainsi que son installeur en ligne de commande, CLI-SAPI est nécessaire. Pour plus d'informations sur PEAR et son installeur, lisez la documentation sur le site web de PEAR.

Construction de resolv.lib

Vous devez construire la bibliothèque resolv.lib. Décidez si oui ou non vous voulez de disponible les symboles de débogage (bindlib - Win32 Debug) ou pas (bindlib - Win32 Release) ; mais souvenez-vous de ce choix, car la construction du débogage ne se lit avec PHP que lorsqu'il est également construit en mode débogage. Construisez la configuration appropriée :

  • Pour les utilisateurs de GUI, lancez VC++ en double-cliquant sur le fichier C:\work\bindlib_w32\bindlib.dsw. Puis, sélectionnez "Build=>Rebuild All".

  • Pour les utilisateurs de lignes de commande, assurez-vous d'avoir soit les variables d'environnement C++ de disponibles, soit d'avoir exécuté vcvars.bat, puis exécutez une des commandes suivantes :

    • msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"

    • msdev bindlib.dsp /MAKE "bindlib - Win32 Release"

À ce point, vous devez avoir une bibliothèque utilisable de resolv.lib dans le dossier C:\work\bindlib_w32\Debug ou dans le sous-dossier Release. Copiez ce fichier dans votre dossier C:\work\win32build\lib en écrasant le fichier portant le même nom.

Construction de PHP en utilisant le nouveau système de construction [PHP >=5 uniquement]

Ce chapitre explique comment compiler PHP >=5 en utilisant le nouveau système de construction, basé sur CLI et extrèmement similaire au système de construction Unix pour PHP.

Note : Ce système de construction n'est pas disponible pour PHP 4. Référez-vous plutôt à la section intitulée Compilation de PHP en utilisant les fichiers DSW [PHP 4].

Avant de commencer, assurez-vous d'avoir lu la section intitulée Compiler tout ensemble et d'avoir construit toutes les bibliothèques nécessaire, comme Libxml ou ICU (nécessaire pour PHP >= 6).

D'abord, vous devez ouvrir un prompt de commande Visual Studio, qui doit être disponible avec le menu Démarrer. Un prompt de commande classique ne fonctionnera pas, car il n'aura probablement pas les variables d'environnement nécessaires. Puis, tapez quelque chose comme cd C:\work\php-5.x.x pour entrer dans le dossier contenant les sources de PHP. Maintenant, vous êtes prêt à configurer PHP.

La seconde étape consiste à exécuter le fichier buildconf afin de lancer le script de configuration, en scannant le dossier à la recherche des fichiers config.w32. Par défaut, cette commande recherchera également dans les dossiers suivants : pecl; ..\pecl; pecl\rpc; ..\pecl\rpc. Depuis PHP 5.1.0, vous pouvez changer ce comportement en utilisant l'argument --add-modules-dir (e.g. cscript /nologo win32/build/buildconf.js --add-modules-dir=../php-gtk2 --add-modules-dir=../pecl).

La troisième étape consiste en la configuration. Pour voir la liste des options de configuration, tapez la commande cscript /nologo configure.js --help. Après avoir choisi les options à activer ou non, tapez quelque chose comme : cscript /nologo configure.js --disable-foo --enable-fun-ext. En utilisant l'argument --enable-foo=shared, vous tenterez de construire l'extension 'foo' en tant que module partagé, dynamiquement chargeable.

La dernière étape est la compilation. Pour ce faire, entrez simplement la commande nmake. Les fichiers générés (e.g. .exe et .dll) seront placés soit dans le dossier Release_TS, soit dans le dossier Debug_TS (si vous avez compilé avec le Thread safety), ou sinon, dans le dossier Release ou le dossier Debug.

Optionnellement, vous pouvez vouloir exécuter une suite de tests PHP en tapant la commande nmake test. Si vous ne voulez effectuer qu'un test précis, vous devez utiliser la variable 'TESTS' (e.g. nmake /D TESTS=ext/sqlite/tests test - exécutera que les tests sqlite). Pour effacer les fichiers créés pendant la compilation, vous pouvez utiliser la commande nmake clean.

Une option de configuration vraiement utile pour la construction de snapshots est l'option --enable-snapshot-build, qui ajoute un nouveau mode de compilation (nmake build-snap). Celui-ci tente de compiler chaque extension de disponible (en tant que partagée par défaut) en ignorant les erreurs de compilation dans les extensions individuelles ou SAPI.

Compilation de PHP en utilisant les fichiers DSW [PHP 4]

La compilation de PHP en utilisant les fichiers DSW n'est plus supportée depuis PHP 5 car un système plus flexible a été mis à disposition. Malgré tout, vous pouvez continuer à l'utiliser mais gardez à l'esprit que ce système n'est plus maintenu régulièrement, vous pourriez donc rencontrer des problèmes lors de la compilation. Cependant, pour compiler PHP 4 sous Windows, il n'y a que ce système de disponible.

Configuration de MVC ++

La première étape consiste à la configuration de MVC++ pour la préparation à la compilation. Lancez Microsoft Visual C++ et depuis le menu, sélectionnez "Tools => Options". Dans la fenêtre de dialogue, sélectionnez la tabulation des dossiers. Séquentiellement, modifier la liste en "Executables", "Includes", et "Library files". Votre entrée devrait ressembler à ceci :

  • Executable files: C:\work\win32build\bin, Cygwin users: C:\cygwin\bin

  • Include files: C:\work\win32build\include

  • Library files: C:\work\win32build\lib

Compilation

La meilleure façon de commencer est de compiler la version CGI :

  • Pour les utilisateurs d'interface, lancez VC++, sélectionnez "File => Open Workspace" puis, sélectionnez C:\work\php-4.x.x\win32\php4ts.dsw. Alors, sélectionnez "Build=>Set Active Configuration" et sélectionnez la configuration désirée, soit php4ts - Win32 Debug_TS, soit php4ts - Win32 Release_TS. Et pour finir, sélectionnez "Build=>Rebuild All".

  • Pour les utilisateurs de la ligne de commande, assurez-vous d'avoir de disponible les variables d'environnements C++ ou d'avoir exécuté le fichier vcvars.bat, puis, exécutez une des commandes suivantes depuis le répertoire C:\work\php-4.x.x\win32 :

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"

    • À ce stade, vous devez avoir un binaire php.exe fonctionnel dans le dossier C:\work\php-4.x.x\Debug_TS ou dans le sous-dossier Release_TS.

Il est possible de faire quelques personnalisations sur le processus de compilation en éditant le fichier main/config.win32.h. Par exemple, vous pouvez modifier le dossier par défaut contenant le php.ini, les extensions internes et le dossier par défaut de vos extensions.

Puis, vous pourriez vouloir compiler la version CLI qui est destinée à utiliser PHP depuis la ligne de commande. Les étapes sont les mêmes que pour la compilation de la version CGI, mise à part que vous devez sélectionner le fichier de projet php4ts_cli - Win32 Debug_TS ou php4ts_cli - Win32 Release_TS. Après une compilation réussie, vous devriez trouver le fichier php.exe dans le dossier Release_TS\cli\ ou dans le dossier Debug_TS\cli\.

Pour compiler le module SAPI (php4isapi.dll) pour intégrer PHP avec Microsoft IIS, définissez votre configuration active à php4isapi-whatever-config et compilez la bibliothèque dll désirée.

Précédent | Sommaire | Suivant
Installation Xitami sur Microsoft Windows | Niveau supérieur | Installation des extensions sous Windows


Installation des extensions sous Windows

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

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

Beaucoup d'extensions sont incluses dans la version pour Windows de PHP. Cela signifie que les bibliothèques DLL additionnelles et la directive extension ne sont pas utilisées pour charger ces extensions. La table des extensions PHP pour Windows liste les extensions qui requièrent des bibliothèques DLL additionnelles PHP. Voici une liste d'extensions internes :

En PHP 4 (mise à jour : PHP 4.3.11) : BCMath, Caledar, COM, Ctype, FTP, MySQL, ODBC, Overload, PCRE, Session, Tokenizer, WDDX, XML et Zlib

En PHP 5 (mise à jour : PHP 5.0.4), les changements suivants existent. En interne : DOM, LibXML, Iconv, SimpleXML, SPL et SQLite. Les suivants ne sont plus intégrés : MySQL and Overload.

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

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

    extension_dir = c:\php\extensions

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

    Exemple 6-8. Activer l'extension Bzip2 pour PHP-Windows

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

// En :
extension=php_bz2.dll

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

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

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

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

Tableau 6-1. Extensions PHP

Extension | Description | Notes
php_bz2.dll | bzip2 : fonctions de compression | Non
php_calendar.dll | Calendar : fonctions de conversion | Intégrées à PHP depuis la version 4.0.3
php_cpdf.dll | Fonctions ClibPDF | Non
php_crack.dll | Fonctions Crack | None
php_ctype.dll | Famille de fonctions ctype | Intégrées à PHP depuis la version 4.3.0
php_curl.dll | Fonctions de bibliothèque client CURL | Requiert : libeay32.dll, ssleay32.dll (intégré)
php_cybercash.dll | Fonctions de paiement Cybercash | PHP <= 4.2.0
php_db.dll | Fonctions DBM | Deprécié. Utilisez plutôt DBA (php_dba.dll)
php_dba.dll | DBA: DataBase (dbm-style) Fonctions d'abstraction | Non
php_dbase.dll | Fonctions dBase | Non
php_dbx.dll | Fonctions dbx |
php_domxml.dll | Fonctions DOM XML | PHP <= 4.2.0 requiert : libxml2.dll (intégré) PHP >= 4.3.0 requiert : iconv.dll (intégré)
php_dotnet.dll | Fonctions .NET | PHP <= 4.1.1
php_exif.dll | En-tête de lecture EXIF pour JPEG | php_mbstring.dll. Attention, php_exif.dll doit être chargé après php_mbstring.dll dans le php.ini.
php_fbsql.dll | Fonctions FrontBase | PHP <= 4.2.0
php_fdf.dll | FDF : fonctions Forms Data Format. | Requiert : fdftk.dll (intégré)
php_filepro.dll | Fonctions filePro | Accès en lecture seule
php_ftp.dll | Fonctions FTP | Intégrées à PHP depuis la version 4.0.3
php_gd.dll | GD : bibliothèque de fonctions image | Supprimer en PHP 4.3.2. Notez que les fonctions sur les couleurs vraies ne sont pas disponibles en GD1 ; utilisez plutôt php_gd2.dll.
php_gd2.dll | GD : Bibliothèque de fonctions image | GD2
php_gettext.dll | Fonctions Gettext | PHP <= 4.2.0 requiert gnu_gettext.dll (intégré), PHP >= 4.2.3 requiert libintl-1.dll, iconv.dll (intégré).
php_hyperwave.dll | Fonctions HyperWave | Non
php_iconv.dll | ICONV : conversion de jeux de caractères | Requiert : iconv-1.3.dll (intégré), PHP >=4.2.1 iconv.dll
php_ifx.dll | Fonctions Informix | Requiert : bibliothèque Informix
php_iisfunc.dll | Fonctions d'administration IIS | Non
php_imap.dll | IMAP : fonctions POP3 et NNTP | Non
php_ingres.dll | Fonctions Ingres II | Requiert : bibliothèque Ingres II
php_interbase.dll | Fonctions InterBase | Requiert : gds32.dll (intégré)
php_java.dll | Fonctions Java | PHP <= 4.0.6 requit : jvm.dll (intégré)
php_ldap.dll | Fonctions LDAP | PHP <= 4.2.0 requiert libsasl.dll (intégré), PHP >= 4.3.0 requiert libeay32.dll, ssleay32.dll (intégré)
php_mbstring.dll | Fonctions Multi-Byte String | Non
php_mcrypt.dll | Fonctions Mcrypt Encryption | Requiert : libmcrypt.dll
php_mhash.dll | Fonctions Mhash | PHP >= 4.3.0 requiert : libmhash.dll (intégré)
php_mime_magic.dll | Fonctions Mimetype | Requiert : magic.mime (intégré)
php_ming.dll | Fonctions Ming pour Flash | Non
php_msql.dll | Fonctions mSQL | Requiert : msql.dll (intégré)
php_mssql.dll | Fonctions MSSQL | Requiert : ntwdblib.dll (intégré)
php_mysql.dll | MySQL functions | PHP >= 5.0.0, requires libmysql.dll (intégré)
php_mysqli.dll | MySQLi functions | PHP >= 5.0.0, requires libmysql.dll (libmysqli.dll en PHP <=5.0.2) (intégré)
php_oci8.dll | Fonctions Oracle 8 | Requiert : bibliothèque cliente Oracle 8.1+
php_openssl.dll | Fonctions OpenSSL | Requiert : libeay32.dll (intégré)
php_oracle.dll | Fonctions Oracle | Requiert : bibliothèque cliente Oracle 7
php_overload.dll | Fonctions Object overloading | Intégrée à PHP depuis la version 4.3.0
php_pdf.dll | Fonctions PDF | Non
php_pgsql.dll | Fonctions PostgreSQL | Non
php_printer.dll | Fonctions Printer | Non
php_shmop.dll | Fonctions de partage de mémoire | Non
php_snmp.dll | Fonctions SNMP | NT seulement !
php_soap.dll | SOAP functions | PHP >= 5.0.0
php_sockets.dll | Fonctions Socket | Non
php_sybase_ct.dll | Fonctions Sybase | Requiert : bibliothèque cliente Sybase
php_tidy.dll | Tidy functions | PHP >= 5.0.0
php_tokenizer.dll | Fonctions Tokenizer | Intégrées à PHP depuis la version 4.3.0
php_w32api.dll | Fonctions W32api | Non
php_xmlrpc.dll | Fonctions XML-RPC | PHP >= 4.2.1 requiert : iconv.dll (intégré)
php_xslt.dll | Fonctions XSLT | PHP <= 4.2.0 requiert sablot.dll, expat.dll (intégré). PHP >= 4.2.1 requiert sablot.dll, expat.dll et iconv.dll (intégré).
php_yaz.dll | Fonctions YAZ | Requiert : yaz.dll (intégré)
php_zip.dll | Fonctions Zip File | Accès en lecture seule
php_zlib.dll | Fonctions de compression ZLib | Intégrées à PHP depuis la version 4.3.0

Précédent | Sommaire | Suivant
Compilation des sources | Niveau supérieur | Installation d'extensions PECL


Installation avec les serveurs IIS/PWS

Cette section contient des notes sur l'installation de PHP avec IIS ( Microsoft Internet Information Server).

Avertissement

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

Considérations générales pour toutes les installations de PHP avec IIS ou PWS

  • Tout d'abord, lisez les instructions d'installation du manuel. Ne négligez pas cette étape, elle fournit des informations essentielles sur l'installation de PHP sur Windows.

  • Les utilisateurs de CGI doivent définir la directive PHP cgi.force_redirect à 0 dans le php.ini. Lisez la faq sur cgi.force_redirect qui vous apprendra des détails importants. De même, les utilisateurs de CGI peuvent vouloir définir la directive cgi.redirect_status_env. Lorsque vous utilisez les directives, assurez-vous qu'elles ne soient pas commentées dans le php.ini.

  • Le CGI de PHP 4 est nommé php.exe tandis qu'en PHP 5, il est nommé php-cgi.exe. En PHP 5, php.exe est le CLI et non le CGI.

  • Modifiez la variable d'environnement PATH de Windows afin d'inclure le dossier de PHP. De cette façon, les fichiers DLLs de PHP, et les exécutables de PHP peuvent tous résider dans le dossier de PHP sans être dans le dossier système de Windows. Pour plus de détails, lisez la FAQ sur la façon de définir le PATH.

  • L'utilisateur IIS (habituellement IUSR_MACHINENAME) a besoin de permission pour lire les différents fichiers et dossiers, comme le php.ini, docroot ainsi que le dossier temporaire hébergeant les sessions.

  • Assurez-vous que les directives PHP extension_dir et doc_root soient correctement définies dans le php.ini. Ces directives dépendent du système sur lequel PHP est installé. En PHP 4, extension_dir vaut extensions tandis qu'en PHP 5, il vaut ext. Donc, un exemple de valeur pour extensions_dir en PHP 5 est "c:\php\ext" et un exemple de valeur pour doc_root pour IIS est "c:\Inetpub\wwwroot".

  • Les fichiers d'extensions DLL de PHP, comme php_mysql.dll et php_curl.dll, peuvent être trouvés dans le paquet compressé de PHP (et non dans l'installeur de PHP). En PHP 5, beaucoup d'extensions font parties de PECL et peuvent être téléchargées dans le paquet "Collection de modules PECL". Les fichiers comme php_zip.dll et php_ssh2.dll. Téléchargez les fichiers PHP ici.

  • Lors de la définition de l'exécutable, la case "Vérifier que ce fichier existe" doit également être cochée. Pour un faible coût au niveau performance, IIS (ou PWS) vérifiera que le fichier de script existe et proposera l'identification avant d'appeler PHP. Cela signifie que le serveur web fourniera des messages d'erreur sensiblement identiques à des erreurs 404 au lieu des erreurs CGI stipulant que PHP n'a pu afficher aucune donnée.

Windows NT/200x/XP et IIS 4 ou plus récent

PHP peut être installé en tant que binaire CGI ou en tant que module SAPI. Dans tous les cas, vous devez démarrer la console d'administration Microsoft (qui doit apparaître comme 'Internet Services Manager', soit depuis le menu des options Pack de votre Windows NT 4.0 ou le menu 'Control Panel=>Administrative Tools' sous Windows 2000/XP). Faites alors un clic droit sur le noeud du serveur web (ceci doit apparaître comme 'Default Web Server'), et sélectionnez 'Properties'.

Si vous voulez utiliser le binaire CGI, suivez ce qui suit :

  • Sous 'Home Directory', 'Virtual Directory', ou 'Directory', faites ce qui suit :

  • Modifier les permissions d'exécution en 'Scripts only'

  • Cliquez sur le boutton 'Configuration', et choisissez l'onglet 'Application Mappings'. Cliquez sur 'Add' et définissez le chemin vers l'exécutable vers le fichier CGI approprié. Un exemple de valeur pour PHP 5 : C:\php\php-cgi.exe. Ajoutez .php en tant qu'extension. Laissez 'Method exclusions' vide, et cochez la case 'Script engine' checkbox. Maintenant, cliquez sur Ok plusieurs fois.

  • Définissez la sécurité appropriée. (Ceci est fait dans 'Internet Service Manager'), et, si votre serveur NT utilise le système de fichiers NTFS, ajoutez le droit à l'exécution pour I_USR_ pour le dossier qui contient php.exe / php-cgi.exe.

Pour utiliser le module SAPI, faites ce qui suit :

  • Si vous ne souhaitez pas faire d'identification HTTP en utilisant PHP, vous pouvez (et vous devez) ignorer cette étape. Dans les filtres ISAPI, ajoutez un nouveau filtre ISAPI. Utilisez PHP en tant que nom de filtre, et ajoutez un chemin vers les fichiers php4isapi.dll / php5isapi.dll.

  • Sous 'Home Directory', 'Virtual Directory', ou 'Directory', faites ce qui suit :

  • Modifiez les permissions d'exécution en 'Scripts only'

  • Cliquez sur le bouton "Configuration" et ajoutez une nouvelle entrée dans "Application Mappings". Cliquez sur 'Add' et définissez le chemin d'exécution vers la bibliothèque DLL ISAPI appropriée. Un exemple de valeur pour PHP 5 est : C:\php\php5isapi.dll. Ajoutez .php en tant qu'extension. Laissez 'Method exclusions' vide, et cochez la case 'Script engine'. Maintenant, cliquez que Ok plusieurs fois.

  • Arrêtez totalement IIS (NET STOP iisadmin)

  • Démarrez IIS (NET START w3svc)

Avec IIS 6 (2003 serveur), ouvrez le gestionnaire IIS, allez aux extensions de services web, choisissez "Add a new Web service extension", entrez-y un nom comme PHP, cliquez sur le boutton 'Add' et pour la valeur, choisissez soit le fichier ISAPI (php4isapi.dll ou php5isapi.dll), soit le fichier CGI (php.exe ou php-cgi.exe), puis cochez "Set extension status to Allowed" et validez en cliquant sur OK.

Afin d'utiliser index.php en tant que page par défaut, faites ce qui suit : depuis l'onglet 'Documents', choisissez 'Add'. Entrez-y index.php et validez en cliquant sur OK. Ajustez l'ordre en choisissant 'Move Up' ou 'Move Down'. Ceci est similaire à la définission de 'DirectoryIndex' sous Apache.

L'étape ci-dessus doit être répétée pour chaque extension qui doit être associée aux scripts PHP. .php est le plus courant, cependant .php3 peut être requis pour certaines applications.

Si vous atteignez 100 % d'utilisation du CPU après quelques minutes, désactivez l'option de configuration Cache ISAPI Application de IIS.

Windows et PWS 4

PWS 4 ne supporte pas ISAPI, uniquement PHP CGI doit être utilisé.

  • Éditez le fichier pws-php4cgi.reg / pws-php5cgi.reg (regardez dans le dossier SAPI pour PHP4 ou dans le dossier principal pour PHP 5) pour indiquer la localisation de votre fichier php.exe / php-cgi.exe. Les slash doivent être échappés. Par exemple : [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="C:\\php\\php.exe" (modifiez en C:\\php\\php-cgi.exe si vous utilisez PHP 5). Maintenant, intégrez ce fichier de registre dans votre système ; vous devriez juste avoir à double-cliquer dessus.

  • Dans le gestionnaire PWS Manager, faites un clic droit sur les dossiers qui supporteront PHP, et sélectionnez "Properties". Cochez l'option "Execute" et confirmez.

Windows et PWS/IIS 3

La méthode recommandée pour configurer ces serveurs est d'utiliser le fichier INF inclus dans la distribution (pws-php4cgi.reg dans le dossier SAPI pour PHP 4 ou pws-php5cgi.reg dans le dossier principal pour PHP 5). Vous pouvez éditer ce fichier, pour vous assurer que les extensions et les dossiers d'installation de PHP sont bien ceux de votre configuration. Ou alors, vous pouvez suivre les instructions suivantes pour le faire manuellement.

Avertissement

Ces instructions requièrent la manipulation du fichier de registre de Windows. Une erreur peut laisser votre système dans un état instable. Nous vous recommandons vivement de sauvegarder ce fichier en lieu sûr. L'équipe de développement et les traducteurs de cette documentation ne pourront pas être tenus responsable d'un quelconque dommage qui pourrait survenir dans votre registre.

  • Lancez Regedit.

  • Naviguez jusqu'à : HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap.

  • Dans le menu "edit", sélectionnez : New->String Value.

  • Entrez l'extension que vous voulez utiliser pour les scripts PHP. Par exemple : .php

  • Double-cliquez sur la chaîne, et entrez le chemin jusqu'à php.exe dans le champ "value data". Exemple : C:\php\php.exe "%s" %s pour PHP 4 ou C:\php\php-cgi.exe "%s" %s pour PHP 5.

  • Répétez ces étapes pour chaque extension que vous désirez associer à vos scripts PHP.

Les étapes suivantes n'affectent pas la configuration du serveur web, et ne s'appliquent que si vous voulez que vos scripts PHP soient exécutés lorsqu'il sont exécutés en ligne de commande (par exemple, run C:\messcripts\test.php) ou en double-cliquant sur l'icône. Vous pouvez ignorer ces étapes si vous préférez que vos scripts PHP s'ouvrent dans un éditeur de texte, plutôt que de les voir s'exécuter lorsque vous double-cliquez dessus.

  • Naviguez jusqu'à : HKEY_CLASSES_ROOT

  • Dans le menu edit, sélectionnez : New->Key.

  • Donnez le nom de votre extension à la clé. Par exemple : .php

  • Sélectionnez le nom de la nouvelle clé dans le panneau de droite, et double-cliquez dans "default value", puis entrez phpfile.

  • Répétez ces instructions pour toutes les extensions que vous avez associé aux scripts PHP.

  • Créez une autre New->Key sous HKEY_CLASSES_ROOT et nommez-la phpfile.

  • Sélectionnez la nouvelle clé phpfile et, dans le panneau de droite, double-cliquez dans "default value" et entrez PHP Script.

  • Faites un clic droit dans phpfile et sélectionnez New->Key, appelez-la Shell.

  • Faites un clic droit dans Shell et sélectionnez New->Key, appelez-la open.

  • Faites un clic droit dans open et sélectionnez New->Key, appelez-la command.

  • Sélectionnez la nouvelle clé command et dans le panneau de droite, faites un double-clic dans "default value", puis entrez le chemin jusqu'à php.exe. Par exemple : c:\php\php.exe -q %1 (n'oubliez pas le %1).

  • Quittez Regedit.

  • Si vous utilisez PWS sous Windows, redémarrez pour prendre en compte le nouveau registre.

Les utilisateurs de PWS et IIS 3 sont prêts à utiliser leur serveur. Avec IIS 3, vous pouvez utiliser un outil bien pratique de Steven Genusa pour configurer votre carte des scripts.

Précédent | Sommaire | Suivant
ActiveScript | Niveau supérieur | Installer PHP sous Microsoft Windows avec Apache 1.3.x


L'installeur Windows (PHP version 5.1.0 et inférieures)

L'installeur Windows de PHP disponible depuis les pages de http://www.php.net/downloads.php, installe la version CGI de PHP, et configure les serveurs web IIS, PWS, et Xitami. L'installeur n'inclut aucune extension externe supplémentaire de PHP (php_*.dll), vous les trouverez uniquement dans le paquet zippé Windows et dans les téléchargements PECL.

Note : Notez bien que bien que l'installeur soit une méthode simple pour installer PHP, il est limité dans plusieurs aspects : par exemple, la configuration automatique des extensions n'est pas prise en compte. Utiliser l'installateur n'est pas la méthode préférée pour installer PHP.

Tout d'abord, installez votre serveur HTTP favori sur votre système et assurez-vous qu'il fonctionne.

Exécutez l'installeur et suivez les instructions fournies par l'assistant. Deux types d'installation sont fournis : standard, qui utilise toutes les configurations par défaut les plus pratiques, et avancée, qui pose un maximum de questions pour paramétrer le plus finement.

L'assistant d'installation rassemble suffisamment d'informations pour configurer php.ini ainsi que certains serveurs web pour utiliser PHP. Un des serveurs web pour lequel l'installeur PHP n'effectue pas de configuration automatique est Apache, vous devez donc le configurer manuellement.

Une fois l'installation terminée, l'installeur vous informera que vous devez redémarrer. Suivez ce conseil, ou commencez à utiliser PHP immédiatement.

Avertissement

Gardez bien à l'esprit que cette installation de PHP n'est pas sécurisée. Si vous voulez avoir une installation sécurisée de PHP, vous devriez commencer par lire la documentation, et choisir toutes vos options avec soin. Cet installeur automatique vous permet de réaliser l'installation en un tour de main, mais n'est pas destiné à l'utilisation sur des serveurs de production.

Précédent | Sommaire | Suivant
Installation sur les système Windows | Niveau supérieur | Installation manuelle sous Windows


Installation manuelle sous Windows

Ce guide d'installation vous aide à installer manuellement et configurer PHP avec un serveur web sous Microsoft Windows. Pour commencer, vous devrez télécharger la distribution binaire Zip sur la page http://www.php.net/downloads.php.

Bien qu'il existe beaucoup d'installeurs et que nous fournissons également un installeur pour Microsoft Windows, nous vous recommandons de prendre le temps de lire ceci et d'installer PHP vous-même, ce qui est la meilleur façon d'apprendre le système, et vous permettra d'installer des extensions PHP facilement lorsque vous en aurez besoin.

Mise à jour d'une ancienne version de PHP : Les précédentes éditions de ce manuel vous suggéraient de déplacer les fichiers ini et les DLLs dans votre répertoire système (i.e dans le dossier C:\WINDOWS) et, de ce fait, vous aviez des fichiers relatifs à PHP dans de multiples dossiers sur votre disque dur. Nous vous conseillons d'effacer tous ces fichiers (comme php.iniet les bibliothèques DLLs relatives à PHP du dossier système de Windows), avant de commencer l'installation d'une nouvelle version de PHP. Assurez-vous d'avoir effectué des sauvegardes de ces bibliothèques DLLs, sinon, vous risquez de corrompte la totalité de votre système. L'ancien fichier php.ini peut également vous aider à configurer votre nouvelle installation de PHP. Et, comme vous l'apprendrez bientôt, la méthode préférée pour installer PHP est de garder tous les fichiers relatifs à PHP dans un seul dossier et d'avoir le dossier de disponible dans votre variable système PATH.

Pré-requis MDAC : Si vous utilisez Microsoft Windows 9x/NT4, téléchargez la dernière version de Microsoft Data Access Components (MDAC) pour votre plate-forme. MDAC est disponible à http://msdn.microsoft.com/data/. Cette condition existe car ODBC est compilé dans les binaires distribués pour Windows.

Les étapes suivantes doivent être terminées sur toutes les installations avant d'exécuter une quelconque instruction spécifique au serveur.

Décompressez la distribution dans un dossier de votre choix. Si vous installez PHP 4, extrayez le fichier zippé dans C:\ car il va créer un dossier comme php-4.3.7-Win32. Si vous installez PHP 5, extrayez le fichier zippé dans C:\php car il ne va pas créer de dossier principal, comme en PHP 4. Vous pouvez choisir un autre dossier, mais soyez prudent d'éviter les espaces dans le nom du chemin au dossier (comme C:\Program Files\PHP), sinon, certains serveurs web crasheront.

La structure du dossier que vous avez extrait depuis le fichier zippé est différente pour les versions 4 et 5 de PHP et ressemble à ceci :

Exemple 6-1. Structure de la distribution Windows de PHP 4

c:\php
   |
   +--cli
   |  |
   |  |-php.exe           -- Executable CLI - UNIQUEMENT pour la ligne de commande
   |
   +--dlls                -- DLL de support des extensions  --> dossier systeme Windows
   |  |
   |  |-expat.dll
   |  |
   |  |-fdftk.dll
   |  |
   |  |-...
   |
   +--extensions          -- extensions DLL pour PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-..
   |
   +--mibs                -- fichiers de support de SNMP
   |
   +--openssl             -- fichiers de support de Openssl
   |
   +--pdf-related         -- fichiers de support de PDF
   |
   +--sapi                -- DLL SAPI
   |  |
   |  |-php4apache.dll
   |  |
   |  |-php4apache2.dll
   |  |
   |  |-..
   |
   +--PEAR                -- copie initiale de PEAR
   |
   |
   |-go-pear.bat          -- script de configuration de PEAR
   |
   |-..
   |
   |-php.exe              -- exécutable CGI
   |
   |-..
   |
   |-php.ini-dist         -- paramètres par défaut du php.ini
   |
   |-php.ini-recommended  -- paramètres recommandés du php.ini
   |
   |-php4ts.dll           -- DLL principale
   |
   |-...

Ou :

Exemple 6-2. Structure du paquet PHP 5

c:\php
   |
   +--dev
   |  |
   |  |-php5ts.lib
   |
   +--ext                 -- extensions DLL pour PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-..
   |
   +--extras
   |  |
   |  +--mibs             -- fichiers de support de SNMP
   |  |
   |  +--openssl          -- fichiers de support de Openssl
   |  |
   |  +--pdf-related      -- fichiers de support de PDF
   |  |
   |  |-mime.magic
   |
   +--pear                -- copie initiale de PEAR
   |
   |
   |-go-pear.bat          -- script de configuration de PEAR
   |
   |-fdftk.dll
   |
   |-..
   |
   |-php-cgi.exe          -- exécutable CGI
   |
   |-php-win.exe          -- permet d'exécuter des scripts sans ouvrir un fenêtre de prompt
   |
   |-php.exe              -- exécutable CLI - UNIQUEMENT pour du script en ligne de commande
   |
   |-..
   |
   |-php.ini-dist         -- paramètres par défaut du php.ini
   |
   |-php.ini-recommended  -- paramètres recommandés du php.ini
   |
   |-php5activescript.dll
   |
   |-php5apache.dll
   |
   |-php5apache2.dll
   |
   |-..
   |
   |-php5ts.dll           -- DLL principale
   |
   |-...

Notez les différences et les similitudes. PHP 4 et PHP 5 ont tous les deux un exécutable CGI, un exéctuable CLI et des modules serveurs, mais ils sont situés dans des dossiers différents et/ou ont des noms différents. En PHP 4, les modules serveurs se trouvent dans le dossier sapi, tandis qu'ils se trouvent dans le dossier principal en PHP 5. Le support des DLLs pour les extensions de PHP sont également dans le dossier principal en PHP 5. Observez l'arborescence pour connaître l'emplacement des exécutables CGI et CLI.

Note : En PHP 4, vous devez déplacer tous les fichiers se trouvant dans les dossiers dll et sapi dans le dossier principal (e.g. C:\php).

Voici une liste de modules serveur avec la correspondance entre PHP 4 et PHP 5.

  • sapi/php4activescript.dll (php5activescript.dll) - moteur ActiveScript vous permet d'intégrer PHP dans vos applications Windows.

  • sapi/php4apache.dll (php5apache.dll) - module Apache 1.3.x.

  • sapi/php4apache2.dll (php5apache2.dll) - module Apache 2.0.x.

  • sapi/php5apache2_2.dll - module Apache 2.2.x.

  • sapi/php4isapi.dll (php5isapi.dll) - module ISAPI pour les serveurs ISAPI compliant comme IIS 4.0/PWS 4.0 ou autres.

  • sapi/php4nsapi.dll (php5nsapi.dll) - module serveur Sun/iPlanet/Netscape.

  • sapi/php4pi3web.dll (pas d'équivalent en PHP 5) - module serveur Pi3Web.

Les modules serveurs permettent des gains de performances et quelques fonctionnalités supplémentaires par rapport à la version CGI. La version CLI est destinée à être utilisée pour les scripts en ligne de commande. Plus d'informations sur la version CLI est disponible dans le chapitre à propos "utilisez PHP en ligne de commande".

Avertissement

Les modules SAPI ont été significativement améliorés dans la version 4.1, mais vous pourrez rencontrer des erreurs avec le serveur ou d'autres modules (tels ASP), dans les systèmes plus anciens.

Les binaires CGI et CLI et les modules des serveurs web requierent tous la bibliothèque php4ts.dll (php5ts.dll). Vous devez vous assurer que ce fichier peut être trouvé par votre installation de PHP. Le dossier où ce fichier sera recherché suit ces règles :

  • Le même dossier depuis lequel le fichier php.exe est appelé ou, dans le cas où vous utilisez le module SAPI, le dossier du serveur web (e.g. C:\Program Files\Apache Group\Apache2\bin).

  • N'importe quel dossier de votre variable d'environnement PATH.

Pour rendre le fichier php4ts.dll / php5ts.dll disponible, vous avez trois options : copiez le fichier dans le dossier système de Windwos, copiez le fichier dans le dossier du serveur web ou ajoutez le dossier PHP, C:\php à votre variable d'environnement PATH. Pour une meilleur maintenance, nous vous conseillons de suivre la dernière option et d'ajoutez le dossier C:\php à votre variable d'environnement PATH, cela rendera plus facile la mise à jour de PHP dans le futur. Lisez l'entrée correspondante de la FAQ pour avoir plus d'informations sur la façon d'ajouter votre dossier PHP à la variable d'environnement PATH (et donc, n'oubliez pas de redémarrer votre ordinateur, une simple fermeture de session ne suffisant pas).

L'étape suivante est de définir une configuration valide pour PHP, php.ini. Il y a deux fichiers ini distribués avec le paquet zip, php.ini-dist et php.ini-recommended. Nous vous recommandons vivement d'utiliser le fichier php.ini-recommended, car nous avons optimisé les options par défaut dans ce fichier pour rendre PHP plus performant, plus sécurisé. Lisez ce document très attentivement car il contient des modifications depuis php.ini-dist qui affectent sérieusement votre configuration. Par exemple, display_errors est à off et magic_quotes_gpc est aussi à off. En complément de cette lecture, étudiez la configuration du fichier ini et définissez chacun des éléments manuellement. Si vous voulez avoir la meilleure sécurité, alors, c'est la seule façon pour vous, bien que PHP fonctionne très bien avec le fichier ini par défaut. Copiez le fichier ini de votre choix dans un dossier où PHP sera capable de le trouver et renommez-le en php.ini. PHP recherche un fichier php.ini dans les endroits décrits dans la section la section intitulée Le fichier de configuration dans Chapitre 9.

Si vous utilisez Apache 2, l'option la plus simple est d'utiliser la directive PHPIniDir (lisez la page traitant de l'installation de PHP avec Apache 2) sinon, la meilleure option est de définir la variable d'environnement PHPRC. Ce processus est expliqué dans cette entrée de la FAQ.

Note : Si vous utilisez NTFS sous Windows NT, 2000, XP ou 2003, assurez-vous que l'utilisateur faisant fonctionner le serveur web a les permissions en lecture sur votre fichier php.ini (e.g. rendez-le lisible pour tout le monde).

Les étapes suivantes sont optionnelles :

  • Éditez votre nouveau fichier php.ini. Si vous avez prévu d'utiliser OmniHTTPd, ne suivez pas l'étape suivante. Définissez le paramètre doc_root de façon à ce qu'il pointe vers le document_root de votre serveur web. Par exemple :

    doc_root = c:\inetpub\wwwroot // pour IIS/PWS

doc_root = c:\apache\htdocs // pour Apache

  • Choisissez les extensions que vous voulez charger au démarrage de PHP. Lisez la section sur les extensions Windows, sur la manière de les configurer et celles qui sont déjà intégrées à PHP. Notez que sur les nouvelles installations, il est préférable de faire fonctionner PHP et de le tester avec aucune extension avant d'en activer dans votre fichier php.ini.

  • Sous PWS et IIS, vous pouvez définir le paramètre de configuration browscap pour pointer vers c:\windows\system\inetsrv\browscap.ini sous Windows 9x/Me, c:\winnt\system32\inetsrv\browscap.ini sous NT/2000 et c:\windows\system32\inetsrv\browscap.ini sous XP. Pour un fichier browscap.ini à jour, lisez cette entrée de la FAQ.

PHP est maintenant installé sur votre système. L'étape suivante consiste à choisir un serveur web et le configurer pour y faire fonctionner PHP. Choisissez en un parmi ceux supportés.

Précédent | Sommaire | Suivant
L'installeur Windows (PHP version 5.1.0 et inférieures) | Niveau supérieur | ActiveScript


Installation pour les serveurs OmniHTTPd

Cette section contient les notes et conseils pour installer PHP sur un serveur OmniHTTPd sous Windows.

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

Avertissement

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

Vous devez réaliser les étapes suivantes pour configurer PHP sur votre serveur OmniHTTPd. C'est une configuration en exécutable CGI. SAPI est supporté par OmniHTTPd, mais des tests ont prouvé que ce n'est pas une solution stable.

Important pour les utilisateurs CGI : Lisez la FAQ sur cgi.force_redirect pour plus de détails. Cette directive doit prendre la valeur de 0.

  1. Installation du serveur OmniHTTPd.

  2. Faites un clic droit sur l'icone bleue d'OmniHTTPd sur le système, et sélectionnez Properties

  3. Cliquez sur Web Server Global Settings

  4. Dans l'onglet 'External', entrez : virtual = .php | actual = c:\php\php.exe (utilisez php-cgi.exe si vous installez PHP 5), et utilisez le bouton "Add" (ajout).

  5. Dans l'onglet Mime, entrez : virtual = wwwserver/stdcgi | actual = .php, et utilisez le bouton "Add" (ajout).

  6. Cliquez sur OK

Répetez les étapes de 2 à 6 pour chaque extension que vous voulez associer à PHP.

Note : Certains packages OmniHTTPd sont fournis avec le support de PHP. Vous pouvez le choisir au moment de l'installation, et décocher le composant PHP. Nous recommandons d'utiliser les dernières versions de PHP. Certains serveurs OmniHTTPd sont livrés avec des versions béta de PHP, et il vaut donc mieux éviter de les installer, et choisir une autre version, stable. Si le serveur est déjà sur votre machine, utilisez le bouton "Replace" (remplacer) dans les étapes 4 et 5 pour configurer un nouveau PHP.

Précédent | Sommaire | Suivant
Serveurs Sun, iPlanet et Netscape servers sur Microsoft Windows | Niveau supérieur | Sambar Server on Microsoft Windows


Sambar Server on Microsoft Windows

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

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

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

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

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

    Exemple 6-7. Configuration ISAPI de Sambar

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

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

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

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

Précédent | Sommaire | Suivant
Installation pour les serveurs OmniHTTPd | Niveau supérieur | Installation Xitami sur Microsoft Windows


Serveurs Sun, iPlanet et Netscape servers sur Microsoft Windows

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

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

Configuration en CGI sur les serveurs Sun, iPlanet et Netscape

Pour installer PHP en CGI, suivez ce qui suit :

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

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

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

  • Dans le serveur Netscape Enterprise Administration Server, créez un dossier shellcgi et supprimez-le aussitôt (cette opération crée 5 lignes importantes dans le fichier obj.conf et permet au serveur de gérer les scripts CGI).

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

  • Recommencez pour chaque instance de serveur web qui devra exécuter PHP.

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

Configuration NSAPI sur les serveurs Sun, iPlanet et Netscape

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

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

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

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

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

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

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

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

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

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

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

  • Redémarrez votre serveur web pour que les modifications prennent effet.

  • Faites cela pour chaque instance du serveur web où vous voulez exécuter PHP.

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

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

Environnement CGI et modifications recommandées du php.ini

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

Note : Pourquoi est-ce que les variables CGI sont invalides ?

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

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

variables_order = "GPCS"
register_globals = On

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

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

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

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

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

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

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

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

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

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

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

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

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

Précédent | Sommaire | Suivant
Installation des serveurs Apache 2.0.x sur les systèmes Microsoft Windows | Niveau supérieur | Installation pour les serveurs OmniHTTPd


Installation Xitami sur Microsoft Windows

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

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

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

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

Avertissement

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

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

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

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

  • Cliquez sur le bouton Save.

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

Précédent | Sommaire | Suivant
Sambar Server on Microsoft Windows | Niveau supérieur | Compilation des sources


PHP et le moteur interne Zend

Manuel PHP
Précédent Suivant

VII. PHP et le moteur interne Zend

If you are about to begin developing PHP or Zend extensions, you need to prepare yourself for the programming environment provided by the various APIs. This part of the documentation tries to introduce the APIs provided by the different PHP and Zend Engine versions available. Since most of the information available here is somewhat outdated, you'll want to read various files found in the PHP source, files such as README.SELF-CONTAINED-EXTENSIONS and README.EXT_SKEL in addition to the manual.

Table des matières
44. Streams API for PHP Extension Authors
45. PDO Driver How-To
46. API Zend : Modification du coeur de PHP
47. TSRM API
48. Extending PHP 3

Précédent | Sommaire | Suivant
zlib_get_coding_type |  | Streams API for PHP Extension Authors


PDO Driver How-To

Manuel PHP
Précédent Suivant

Chapitre 45. PDO Driver How-To

Table des matières
A brief note about this How-To
Prerequisites
Preparation and Housekeeping
Fleshing out your skeleton
Building
Testing
Packaging and distribution
pdo_dbh_t definition
pdo_stmt_t definition
Constants
Error handling

A brief note about this How-To

The original version of this PDO driver specification was written by Bill Abt and Rick McGuire of IBM and contributed to the PHP community to assist in the development of drivers for more databases and to encourage the emerging standard for database access in PHP.

Précédent | Sommaire | Suivant
Stream open options | Niveau supérieur | Prerequisites


Building

The build process is designed to work with PEAR (see http://pear.php.net/ for more information about PEAR). There are two files that are used to assist in configuring your package for building. The first is config.m4 which is the autoconf configuration file for all platforms except Win32. The second is config.w32 which a build configuration file for use on Win32. Skeleton files for these are built for you when you first set up your project. You then need to customize them to fit the needs of your project. Once you've customized your config files, you can build your driver using the following sequence of commands:

Before first build:

$ sudo pecl install PDO

For each build:

$ cd pdo_SKEL
$ phpize
$ ./configure
$ make
$ sudo make install

The process can then be repeated as necessary during the development process.

Précédent | Sommaire | Suivant
Fleshing out your skeleton | Niveau supérieur | Testing


Constants

Tableau 45-1. Database and Statement Attributes Table

Attribute

Valid value(s)

PDO_ATTR_AUTOCOMMIT

BOOL

TRUE if autocommit is set, FALSE otherwise.

dbh->auto_commit contains value. Processed by PDO directly.

PDO_ATTR_PREFETCH

LONG

Value of the prefetch size in drivers that support it.

PDO_ATTR_TIMEOUT

LONG

How long to wait for a db operation before timing out.

PDO_ATTR_ERRMODE

LONG

Processed and handled by PDO

PDO_ATTR_SERVER_VERSION

STRING

The << human-readable >> string representing the Server/Version this driver is currently connected to.

PDO_ATTR_CLIENT_VERSION

STRING

The << human-readable >> string representing the Client/Version this driver supports.

PDO_ATTR_SERVER_INFO

STRING

The << human-readable >> description of the Server.

PDO_ATTR_CONNECTION_STATUS

LONG

Values not yet defined

PDO_ATTR_CASE

LONG

Processed and handled by PDO.

PDO_ATTR_CURSOR_NAME

STRING

String representing the name for a database cursor for use in << where current in <name> >> SQL statements.

PDO_ATTR_CURSOR

LONG

PDO_CURSOR_FWDONLY

Forward only cursor

PDO_CURSOR_SCROLL

Scrollable cursor

The values for the attributes above are all defined in terms of the Zend API. The Zend API contains macros that can be used to convert a *zval to a value. These macros are defined in the Zend header file, zend_API.h in the Zend directory of your PHP build directory. Some of these attributes can be used with the statement attribute handlers such as the PDO_ATTR_CURSOR and PDO_ATTR_CURSOR_NAME. See the statement attribute handling functions for more information.

Précédent | Sommaire | Suivant
pdo_stmt_t definition | Niveau supérieur | Error handling


Error handling

Error handling is implemented using a hand-shaking protocol between PDO and the database driver code. The database driver code signals PDO than an error has occurred via a failure (0) return from any of the interface functions. If a zero is returned, the field error_code in the control block appropriate to the context (either the pdo_dbh_t or pdo_stmt_t block). In practice, it is probably a good idea to set the field in both blocks to the same value to ensure the correct one is getting used.

The error_mode field is a six-byte field containing a 5 character ASCIIZ SQLSTATE identifier code. This code drives the error message process. The SQLSTATE code is used to look up an error message in the internal PDO error message table (see pdo_sqlstate.c for a list of error codes and their messages). If the code is not known to PDO, a default << Unknown Message >> value will be used.

In addition to the SQLSTATE code and error message, PDO will call the driver-specific fetch_err() routine to obtain supplemental data for the particular error condition. This routine is passed an array into which the driver may place additional information. This array has slot positions assigned to particular types of supplemental info:

  1. A native error code. This will frequently be an error code obtained from the database API.

  2. A descriptive string. This string can contain anything additional information related to the failure. Database drivers typically include information such as an error message, code location of the failure, and any additional descriptive information the driver developer feels worthy of inclusion. It is generally a good idea to include all diagnostic information obtainable from the database interface at the time of the failure. For driver-detected errors (such as memory allocation problems), the driver developer can define whatever error information that seems appropriate.

Précédent | Sommaire | Suivant
Constants | Niveau supérieur | API Zend : Modification du coeur de PHP


Fleshing out your skeleton

Major Structures and Attributes

The major structures, pdo_dbh_t and pdo_stmt_t are defined and explained in Appendix A and B respectively. Database and Statement attributes are defined in Appendix C. Error handling is explained in Appendix D.

pdo_SKEL.c: PHP extension glue

function entries

static function_entry pdo_SKEL_functions[] = {
  { NULL, NULL, NULL }
};

This structure is used to register functions into the global php function namespace. PDO drivers should try to avoid doing this, so it is recommended that you leave this structure initialized to NULL, as shown in the synopsis above.

Module entry

/* {{{ pdo_SKEL_module_entry */
#if ZEND_EXTENSION_API_NO >= 220050617
static zend_module_dep pdo_SKEL_deps[] = {
    ZEND_MOD_REQUIRED("pdo")
    {NULL, NULL, NULL}
};
#endif
/* }}} */

zend_module_entry pdo_SKEL_module_entry = {
#if ZEND_EXTENSION_API_NO >= 220050617
    STANDARD_MODULE_HEADER_EX, NULL,
    pdo_SKEL_deps,
#else
    STANDARD_MODULE_HEADER,
#endif
    "pdo_SKEL",
    pdo_SKEL_functions,
    PHP_MINIT(pdo_SKEL),
    PHP_MSHUTDOWN(pdo_SKEL),
    NULL,
    NULL,
    PHP_MINFO(pdo_SKEL),
    PHP_PDO_<DB>_MODULE_VERSION,
    STANDARD_MODULE_PROPERTIES
};
/* }}} */

#ifdef COMPILE_DL_PDO_<DB>
ZEND_GET_MODULE(pdo_db)
#endif

A structure of type zend_module_entry called pdo_SKEL_module_entry must be declared and should include reference to the pdo_SKEL_functions table defined previously.

Standard PHP Module Extension Functions

PHP_MINIT_FUNCTION

/* {{{ PHP_MINIT_FUNCTION */
PHP_MINIT_FUNCTION(pdo_SKEL)
{
    return php_pdo_register_driver(&pdo_SKEL_driver);
}
/* }}} */

This standard PHP extension function should be used to register your driver with the PDO layer. This is done by calling the php_pdo_register_driver() function passing a pointer to a structure of type pdo_driver_t typically named pdo_SKEL_driver. A pdo_driver_t contains a header that is generated using the PDO_DRIVER_HEADER(SKEL) macro and pdo_SKEL_handle_factory() function pointer. The actual function is described during the discussion of the SKEL_dbh.c unit.

PHP_MSHUTDOWN_FUNCTION

/* {{{ PHP_MSHUTDOWN_FUNCTION */
PHP_MSHUTDOWN_FUNCTION(pdo_SKEL)
{
    php_pdo_unregister_driver(&pdo_SKEL_driver);
    return SUCCESS;
}
/* }}} */

This standard PHP extension function is used to unregister your driver from the PDO layer. This is done by calling the php_pdo_unregister_driver() function, passing the same pdo_SKEL_driver structure that was passed in the init function above.

PHP_MINFO_FUNCTION

This is again a standard PHP extension function. Its purpose is to display information regarding the module when the phpinfo() is called from a script. The convention is to display the version of the module and also what version of the db you are dependent on, along with any other configuration style information that might be relevant.

SKEL_driver.c: Driver implementation

This unit implements all of the database handling methods that support the PDO database handle object. It also contains the error fetching routines. All of these functions will typically need to access the global variable pool. Therefore, it is necessary to use the Zend macro TSRMLS_DC macro at the end of each of these statements. Consult the Zend programmer documentation for more information on this macro.

pdo_SKEL_error

static int pdo_SKEL_error(pdo_dbh_t *dbh,
  pdo_stmt_t *stmt, const char *file, int line TSRMLS_DC)

The purpose of this function is to be used as a generic error handling function within the driver. It is called by the driver when an error occurs within the driver. If an error occurs that is not related to SQLSTATE, the driver should set either dbh->error_code or stmt->error_code to an SQLSTATE that most closely matches the error or the generic SQLSTATE error << HY000 >>. The file pdo_sqlstate.c in the PDO source contains a table of commonly used SQLSTATE codes that the PDO code explicitly recognizes. This setting of the error code should be done prior to calling this function.; This function should set the global pdo_err variable to the error found in either the dbh or the stmt (if the variable stmt is not NULL).

dbh

Pointer to the database handle initialized by the handle factory

stmt

Pointer to the current statement or NULL. If NULL, the error is derived by error code found in the dbh.

file

The source file where the error occurred or NULL if not available.

line

The line number within the source file if available.

If the dbh member methods is NULL (which implies that the error is being raised from within the PDO constructor), this function should call the zend_throw_exception_ex() function otherwise it should return the error code. This function is usually called using a helper macro that customizes the calling sequence for either database handling errors or statement handling errors.

Exemple 45-1. Example macros for invoking pdo_SKEL_error

#define pdo_SKEL_drv_error(what) \
    pdo_SKEL_error(dbh, NULL, what, __FILE__, __LINE__ TSRMLS_CC)
#define pdo_SKEL_drv_error(what) \
    pdo_SKEL_error(dbh, NULL, what, __FILE__, __LINE__ TSRMLS_CC)

For more info on error handling, see la section intitulée Error handling.

Note : Despite being documented here, the PDO driver interface does not specify that his function be present; it is merely a convenient way to handle errors, and it just happens to be equally convenient for the majority of database client library APIs to structure your driver implementation in this way.

pdo_SKEL_fetch_error_func

static int pdo_SKEL_fetch_error_func(pdo_dbh_t *dbh, pdo_stmt_t *stmt,
    zval *info TSRMLS_DC)

The purpose of this function is to obtain additional information about the last error that was triggered. This includes the driver specific error code and a human readable string. It may also include additional information if appropriate. This function is called as a result of the PHP script calling the PDO::errorInfo() method.

dbh

Pointer to the database handle initialized by the handle factory

stmt

Pointer to the most current statement or NULL. If NULL, the error translated is derived by error code found in the dbh.

info

A hash table containing error codes and messages.

The error_func should return two pieces of information as successive array elements. The first item is expected to be a numeric error code, the second item is a descriptive string. The best way to set this item is by using add_next_index. Note that the type of the first argument need not be long; use whichever type most closely matches the error code returned by the underlying database API.

/* now add the error information. */
/* These need to be added in a specific order */
add_next_index_long(info, error_code);   /* driver specific error code */
add_next_index_string(info, message, 0); /* readable error message */

This function should return 1 if information is available, 0 if the driver does not have additional info.

SKEL_handle_closer

static int SKEL_handle_closer(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to close an open database.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to close the open database. PDO ignores the return value from this function.

SKEL_handle_preparer

static int SKEL_handle_preparer(pdo_dbh_t *dbh, const char *sql,
long sql_len, pdo_stmt_t *stmt, zval *driver_options TSRMLS_DC)

This function will be called by PDO in response to PDO::query() and PDO::prepare() calls from the PHP script. The purpose of the function is to prepare raw SQL for execution, storing whatever state is appropriate into the stmt that is passed in.

dbh

Pointer to the database handle initialized by the handle factory

sql

Pointer to a character string containing the SQL statement to be prepared.

sql_len

The length of the SQL statement.

Stmt

Pointer to the returned statement or NULL if an error occurs.

driver_options

Any driver specific/defined options.

This function is essentially the constructor for a stmt object. This function is responsible for processing statement options, and setting driver-specific option fields in the pdo_stmt_t structure.

PDO does not process any statement options on the driver's behalf before calling the preparer function. It is your responsibility to process them before you return, raising an error for any unknown options that are passed.

One very important responsibility of this function is the processing of SQL statement parameters. At the time of this call, PDO does not if your driver supports binding parameters into prepared statements, nor does it know if it supports named or positional parameter naming conventions.

Your driver is responsible for setting stmt->supports_placeholders as appropriate for the underlying database. This may involved some run-time determination on the part of your driver, if this setting depends on the version of the database server to which it is connected. If your driver doesn't directly support both named and positional parameter conventions, you should use the pdo_parse_params() API to have PDO rewrite the query to take advantage of the support provided by your database.

Exemple 45-2. Using pdo_parse_params

int ret;
    char *nsql = NULL;
    int nsql_len = 0;

    /* before we prepare, we need to peek at the query; if it uses named parameters,
     * we want PDO to rewrite them for us */
    stmt->supports_placeholders = PDO_PLACEHOLDER_POSITIONAL;
    ret = pdo_parse_params(stmt, (char*)sql, sql_len, &nsql, &nsql_len TSRMLS_CC);

    if (ret == 1) {
        /* query was re-written */
        sql = nsql;
    } else if (ret == -1) {
        /* couldn't grok it */
        strcpy(dbh->error_code, stmt->error_code);
        return 0;
    }

    /* now proceed to prepare the query in "sql" */

Possible values for supports_placeholders are: PDO_PLACEHOLDER_NAMED, PDO_PLACEHOLDER_POSITIONAL and PDO_PLACEHOLDER_NONE. If the driver doesn't support prepare statements at all, then this function should simply allocate any state that it might need, and then return:

Exemple 45-3. implementing preparer for drivers that don't support native prepared statements

static int SKEL_handle_preparer(pdo_dbh_t *dbh, const char *sql,
    long sql_len, pdo_stmt_t *stmt, zval *driver_options TSRMLS_DC)
{
    pdo_SKEL_db_handle *H = (pdo_SKEL_db_handle *)dbh->driver_data;
    pdo_SKEL_stmt *S = ecalloc(1, sizeof(pdo_SKEL_stmt));

    S->H = H;
    stmt->driver_data = S;
    stmt->methods = &SKEL_stmt_methods;
    stmt->supports_placeholders = PDO_PLACEHOLDER_NONE;

    return 1;
}

This function returns 1 on success or 0 on failure.

SKEL_handle_doer

static long SKEL_handle_doer(pdo_dbh_t *dbh, const char *sql, long sql_len TSRMLS_DC)

This function will be called by PDO to execute a raw SQL statement. No pdo_stmt_t is created.

dbh

Pointer to the database handle initialized by the handle factory

sql

Pointer to a character string containing the SQL statement to be prepared.

sql_len

The length of the SQL statement.

This function returns 1 on success or 0 on failure.

SKEL_handle_quoter

static int SKEL_handle_quoter(pdo_dbh_t *dbh, const char *unquoted,
  int unquoted_len, char **quoted, int quoted_len, enum pdo_param_type param_type TSRMLS_DC)

This function will be called by PDO to turn an unquoted string into a quoted string for use in a query.

dbh

Pointer to the database handle initialized by the handle factory

unquoted

Pointer to a character string containing the string to be quoted.

unquoted_len

The length of the string to be quoted.

quoted

Pointer to the address where a pointer to the newly quoted string will be returned.

quoted_len

The length of the new string.

param_type

A driver specific hint for driver that have alternate quoting styles

This function is called in response to a call to PDO::quote() or when the driver has set supports_placeholder to PDO_PLACEHOLDER_NONE. The purpose is to quote a parameter when building SQL statements.

If your driver does not support native prepared statements, implementation of this function is required.

This function returns 1 if the quoting process reformatted the string, and 0 if it was not necessary to change the string. The original string will be used unchanged with a 0 return.

SKEL_handle_begin

static int SKEL_handle_begin(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to begin a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to begin a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_commit

static int SKEL_handle_commit(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to end a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to commit a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_rollback

static int SKEL_handle_rollback( pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to rollback a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to rollback a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_get_attribute

static int SKEL_handle_get_attribute(pdo_dbh_t *dbh, long attr, zval *return_value TSRMLS_DC)

This function will be called by PDO to retrieve a database attribute.

dbh

Pointer to the database handle initialized by the handle factory

attr

long value of one of the PDO_ATTR_xxxx types. See Tableau 45-1 for valid attributes.

return_value

The returned value for the attribute.

It is up to the driver to decide which attributes will be supported for a particular implementation. It is not necessary for a driver to supply this function. PDO driver handles the PDO_ATTR_PERSISTENT, PDO_ATTR_CASE, PDO_ATTR_ORACLE_NULLS, and PDO_ATTR_ERRMODE attributes directly.

This function returns 1 on success or 0 on failure.

SKEL_handle_set_attribute

static int SKEL_handle_set_attribute(pdo_dbh_t *dbh, long attr, zval *val TSRMLS_DC)

This function will be called by PDO to set a database attribute, usually in response to a script calling PDO::setAttribute().

dbh

Pointer to the database handle initialized by the handle factory

attr

long value of one of the PDO_ATTR_xxxx types. See Tableau 45-1 for valid attributes.

val

The new value for the attribute.

It is up to the driver to decide which attributes will be supported for a particular implementation. It is not necessary for a driver to provide this function if it does not need to support additional attributes. The PDO driver handles the PDO_ATTR_CASE, PDO_ATTR_ORACLE_NULLS, and PDO_ATTR_ERRMODE attributes directly.

This function returns 1 on success or 0 on failure.

SKEL_handle_last_id

static char * SKEL_handle_last_id(pdo_dbh_t *dbh, const char *name, unsigned int len TSRMLS_DC)

This function will be called by PDO to retrieve the ID of the last inserted row.

dbh

Pointer to the database handle initialized by the handle factory

name

string representing a table or sequence name.

len

the length of the name parameter.

This function returns a character string containing the id of the last inserted row on success or NULL on failure. This is an optional function.

SKEL_check_liveness

static int SKEL_check_liveness(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to test whether or not a persistent connection to a database is alive and ready for use.

dbh

Pointer to the database handle initialized by the handle factory

This function returns 1 if the database connection is alive and ready for use, otherwise it should return 0 to indicate failure or lack of support.

Note : This is an optional function.

SKEL_get_driver_methods

static function_entry *SKEL_get_driver_methods(pdo_dbh_t *dbh, int kind TSRMLS_DC)

This function will be called by PDO in response to a call to any method that is not a part of either the PDO or PDOStatement classes. It's purpose is to allow the driver to provide additional driver specific methods to those classes.

dbh

Pointer to the database handle initialized by the handle factory

kind

One of the following:

PDO_DBH_DRIVER_METHOD_KIND_DBH

Set when the method call was attempted on an instance of the PDO class. The driver should return a pointer a function_entry table for any methods it wants to add to that class, or NULL if there are none.

PDO_DBH_DRIVER_METHOD_KIND_STMT

Set when the method call was attempted on an instance of the PDOStatement class. The driver should return a pointer to a function_entry table for any methods it wants to add to that class, or NULL if there are none.

This function returns a pointer to the function_entry table requested, or NULL there are no driver specific methods.

SKEL_handle_factory

static int SKEL_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_DC)

This function will be called by PDO to create a database handle. For most databases this involves establishing a connection to the database. In some cases, a persistent connection may be requested, in other cases connection pooling may be requested. All of these are database/driver dependent.

dbh

Pointer to the database handle initialized by the handle factory

driver_options

An array of driver options, keyed by integer option number. See Tableau 45-1 for a list of possible attributes.

This function should fill in the passed database handle structure with its driver specific information on success and return 1, otherwise it should return 0 to indicate failure.

PDO processes the AUTOCOMMIT and PERSISTENT driver options before calling the handle_factory. It is the handle factory's responsibility to process other options.

Driver method table

A static structure of type pdo_dbh_methods named SKEL_methods must be declared and initialized to the function pointers for each defined function. If a function is not supported or not implemented the value for that function pointer should be set to NULL.

pdo_SKEL_driver

A structure of type pdo_driver_t named pdo_SKEL_driver should be declared. The PDO_DRIVER_HEADER(SKEL) macro should be used to declare the header and the function pointer to the handle factory function should set.

SKEL_statement.c: Statement implementation

This unit implements all of the database statement handling methods that support the PDO statement object.

SKEL_stmt_dtor

static int SKEL_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC)

This function will be called by PDO to destroy a previously constructed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

This should do whatever is necessary to free up any driver specific storage allocated for the statement. The return value from this function is ignored.

SKEL_stmt_execute

static int SKEL_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC)

This function will be called by PDO to execute the prepared SQL statement in the passed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_fetch

static int SKEL_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori,
   long offset TSRMLS_DC)

This function will be called by PDO to fetch a row from a previously executed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

ori

One of PDO_FETCH_ORI_xxx which will determine which row will be fetched.

offset

If ori is set to PDO_FETCH_ORI_ABS or PDO_FETCH_ORI_REL, offset represents the row desired or the row relative to the current position, respectively. Otherwise, this value is ignored.

The results of this fetch are driver dependent and the data is usually stored in the driver_data member of pdo_stmt_t object. The ori and offset parameters are only meaningful if the statement represents a scrollable cursor. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_param_hook

static int SKEL_stmt_param_hook(pdo_stmt_t *stmt,
  struct pdo_bound_param_data *param, enum pdo_param_event event_type TSRMLS_DC)

This function will be called by PDO for handling of both bound parameters and bound columns.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

param

The structure describing either a statement parameter or a bound column.

event_type

The type of event to occur for this parameter, one of the following:

PDO_PARAM_EVT_ALLOC

Called when PDO allocates the binding. Occurs as part of PDOStatement::bindParam(), PDOStatement::bindValue() or as part of an implicit bind when calling PDOStatement::execute(). This is your opportunity to take some action at this point; drivers that implement native prepared statements will typically want to query the parameter information, reconcile the type with that requested by the script, allocate an appropriately sized buffer and then bind the parameter to that buffer. You should not rely on the type or value of the zval at param->parameter at this point in time.

PDO_PARAM_EVT_FREE

Called once per parameter as part of cleanup. You should release any resources associated with that parameter now.

PDO_PARAM_EXEC_PRE

Called once for each parameter immediately before calling SKEL_stmt_execute; take this opportunity to make any final adjustments ready for execution. In particular, you should note that variables bound via PDOStatement::bindParam() are only legal to touch now, and not any sooner.

PDO_PARAM_EXEC_POST

Called once for each parameter immediately after calling SKEL_stmt_execute; take this opportunity to make any post-execution actions that might be required by your driver.

PDO_PARAM_FETCH_PRE

Called once for each parameter immediately prior to calling SKEL_stmt_fetch.

PDO_PARAM_FETCH_POST

Called once for each parameter immediately after calling SKEL_stmt_fetch.

This hook will be called for each bound parameter and bound column in the statement. For ALLOC and FREE events, a single call will be made for each parameter or column. The param structure contains a driver_data field that the driver can use to store implementation specific information about each of the parameters.

For all other events, PDO may call you multiple times as the script issues PDOStatement::execute() and PDOStatement::fetch() calls.

If this is a bound parameter, the is_param flag in the param structure, otherwise, the param structure refers to a bound column.

This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_describe_col

static int SKEL_stmt_describe_col(pdo_stmt_t *stmt, int colno TSRMLS_DC)

This function will be called by PDO to query information about a particular column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number to be queried.

The driver should populate the pdo_stmt_t member columns(colno) with the appropriate information. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_get_col_data

static int SKEL_stmt_get_col_data(pdo_stmt_t *stmt, int colno,
  char **ptr, unsigned long *len, int *caller_frees TSRMLS_DC)

This function will be called by PDO to retrieve data from the specified column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number to be queried.

ptr

Pointer to the retrieved data.

len

The length of the data pointed to by ptr.

caller_frees

If set, ptr should point to emalloc'd memory and the main PDO driver will free it as soon as it is done with it. Otherwise, it will be the responsibility of the driver to free any allocated memory as a result of this call.

The driver should return the resultant data and length of that data in the ptr and len variables respectively. It should be noted that the main PDO driver expects the driver to manage the lifetime of the data. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_set_attr

static int SKEL_stmt_set_attr(pdo_stmt_t *stmt, long attr, zval *val TSRMLS_DC)

This function will be called by PDO to allow the setting of driver specific attributes for a statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

attr

long value of one of the PDO_ATTR_xxxx types. See Tableau 45-1 for valid attributes.

val

The new value for the attribute.

This function is driver dependent and allows the driver the capability to set database specific attributes for a statement. This function returns 1 for success or 0 in the event of failure. This is an optional function. If the driver does not support additional settable attributes, it can be NULLed in the method table. The PDO driver does not handle any settable attributes on the database driver's behalf.

SKEL_stmt_get_attr

static int SKEL_stmt_get_attr(pdo_stmt_t *stmt, long attr, zval
   *return_value TSRMLS_DC)

This function will be called by PDO to allow the retrieval of driver specific attributes for a statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

attr

long value of one of the PDO_ATTR_xxxx types. See Tableau 45-1 for valid attributes.

return_value

The returned value for the attribute.

This function is driver dependent and allows the driver the capability to retrieve a previously set database specific attribute for a statement. This function returns 1 for success or 0 in the event of failure. This is an optional function. If the driver does not support additional gettable attributes, it can be NULLed in the method table. The PDO driver does not handle any settable attributes on the database driver's behalf.

SKEL_stmt_get_col_meta

static int SKEL_stmt_get_col_meta(pdo_stmt_t *stmt, int colno,
   zval *return_value TSRMLS_DC)

Avertissement

This function is not well defined and is subject to change.

This function will be called by PDO to retrieve meta-data from the specified column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number for which data is to be retrieved.

return_value

Holds the returned meta data.

The driver author should consult the documentation for this function that can be found in the php_pdo_driver.h header as this will be the most current. This function returns 1 for success or 0 in the event of failure. The database driver does not need to provide this function.

Statement handling method table

A static structure of type pdo_stmt_methods named SKEL_stmt_methods should be declared and initialized to the function pointers for each defined function. If a function is not supported or not implemented the value for that function pointer should be set to NULL.

Précédent | Sommaire | Suivant
Preparation and Housekeeping | Niveau supérieur | Building


Packaging and distribution

Creating a package

PDO drivers are released via PECL; all the usual rules for PECL extensions apply. Packaging is accomplished by creating a valid package.xml file and then running:

$ pecl package

This will create a tarball named PDO_SKEL-X.Y.Z.tgz.

Before releasing the package, you should test that it builds correctly; if you've made a mistake in your config.m4 or package.xml files, the package may not function correctly. You can test the build, without installing anything, using the following invocation:

$ pecl build package.xml

Once this is proven to work, you can test installation:

$ pecl package
$ sudo pecl install PDO_SKEL-X.Y.X.tgz

Full details about package.xml can be found in the PEAR Programmer's documentation (http://pear.php.net/manual/).

Releasing the package

A PDO driver is released via the PHP Extension Community Library (PECL). Information about PECL can be found at http://pecl.php.net/index.php.

Précédent | Sommaire | Suivant
Testing | Niveau supérieur | pdo_dbh_t definition


pdo_dbh_t definition

All fields should be treated as read-only by the driver, unless explicitly stated otherwise.

Figure 45-1. pdo_dbh_t

/* represents a connection to a database */
struct _pdo_dbh_t {
    /* driver specific methods */
    struct pdo_dbh_methods *methods;      (1)
    /* driver specific data */
    void *driver_data;                    (2)

    /* credentials */
    char *username, *password;            (3)

    /* if true, then data stored and pointed at by this handle must all be
     * persistently allocated */
    unsigned is_persistent:1;             (4)

    /* if true, driver should act as though a COMMIT were executed between
     * each executed statement; otherwise, COMMIT must be carried out manually
     * */
    unsigned auto_commit:1;               (5)

    /* if true, the driver requires that memory be allocated explicitly for
     * the columns that are returned */
    unsigned alloc_own_columns:1;         (6)

    /* if true, commit or rollBack is allowed to be called */
    unsigned in_txn:1;

    /* max length a single character can become after correct quoting */
    unsigned max_escaped_char_length:3;     (7)

    /* data source string used to open this handle */
    const char *data_source;              (8)
    unsigned long data_source_len;

    /* the global error code. */
    pdo_error_type error_code;            (9)

    enum pdo_case_conversion native_case  (10) , desired_case;
};
The driver must set this during SKEL_handle_factory().
This item is for use by the driver; the intended usage is to store a pointer (during SKEL_handle_factory()) to whatever instance data is required to maintain a connection to the database.
The username and password that were passed into the PDO constructor. The driver should use these values when it initiates a connection to the database.
If this is set to 1, then any data that is referenced by the dbh, including whatever structure your driver allocates, MUST be allocated persistently. This is easy to achieve; rather than using the usual emalloc() simply use pemalloc() and pass the value of this flag as the last parameter. Failure to use the appropriate kind of memory can lead to serious memory faults, resulting (in the best case) a hard crash, and in the worst case, an exploitable memory problem.

If, for whatever reason, your driver is not suitable to run persistently, you MUST check this flag in your SKEL_handle_factory() and raise an appropriate error.

You should check this value in your SKEL_handle_doer() and SKEL_stmt_execute() functions; if it evaluates to true, you must attempt to commit the query now. Most database implementations offer an auto-commit mode that handles this automatically.
If your database client library API operates by fetching data into a caller-supplied buffer, you should set this flag to 1 during your SKEL_handle_factory(). When set, PDO will call your SKEL_stmt_describer() earlier that it would otherwise. This early call allows you to determine those buffer sizes and issue appropriate calls to the database client library.

If your database client library API simply returns pointers to its own internal buffers for you to copy after each fetch call, you should leave this value set to 0.

If your driver doesn't support native prepared statements (supports_placeholders is set to PDO_PLACEHOLDER_NONE), you must set this value to the maximum length that can be taken up by a single character when it is quoted by your SKEL_handle_quoter() function. This value is used to calculate the amount of buffer space required when PDO it executes the statement.
This holds the value of the DSN that was passed into the PDO constructor. If your driver implementation needed to modify the DSN for whatever reason, it should update this member during SKEL_handle_factory(). Modifying this member should be avoided. If you do change it, you must ensure that data_source_len is also correct.
Whenever an error occurs during a call to one of your driver methods, you should set this member to the SQLSTATE code that best describes the error and return an error. In this HOW-TO, the suggested practice is to call SKEL_handle_error() when an error is detected, and have it set the error code.
Your driver should set this during SKEL_handle_factory(); the value should reflect how the database returns the names of the columns in result sets. If the name matches the case that was used in the query, set it to PDO_CASE_NATURAL (this is actually the default). If the column names are always returned in upper case, set it to PDO_CASE_UPPER. If the column names are always return in lower case, set it to PDO_CASE_LOWER. The value you set it used to determine if PDO should perform case folding when the user sets the PDO_ATTR_CASE attribute.

Précédent | Sommaire | Suivant
Packaging and distribution | Niveau supérieur | pdo_stmt_t definition


pdo_stmt_t definition

All fields should be treated as read-only unless explicitly stated otherwise.

Figure 45-2. pdo_stmt_t

/* represents a prepared statement */
struct _pdo_stmt_t {
    /* driver specifics */
    struct pdo_stmt_methods *methods;     (1)
    void *driver_data;                    (2)

    /* if true, we've already successfully executed this statement at least
     * once */
    unsigned executed:1;                  (3)
    /* if true, the statement supports placeholders and can implement
     * bindParam() for its prepared statements, if false, PDO should
     * emulate prepare and bind on its behalf */
    unsigned supports_placeholders:2;     (4)

    /* the number of columns in the result set; not valid until after
     * the statement has been executed at least once.  In some cases, might
     * not be valid until fetch (at the driver level) has been called at least once.
     * */
    int column_count;                     (5)
    struct pdo_column_data *columns;      (6)

    /* points at the dbh that this statement was prepared on */
    pdo_dbh_t *dbh;

    /* keep track of bound input parameters.  Some drivers support
     * input/output parameters, but you can't rely on that working */
    HashTable *bound_params;
    /* When rewriting from named to positional, this maps positions to names */
    HashTable *bound_param_map;
    /* keep track of PHP variables bound to named (or positional) columns
     * in the result set */
    HashTable *bound_columns;

    /* not always meaningful */
    long row_count;

    /* used to hold the statement's current query */
    char *query_string;
    int query_stringlen;

    /* the copy of the query with expanded binds ONLY for emulated-prepare drivers */
    char *active_query_string;
    int active_query_stringlen;

    /* the cursor specific error code. */
    pdo_error_type error_code;

    /* used by the query parser for driver specific
     * parameter naming (see pgsql driver for example) */
    const char *named_rewrite_template;
};
The driver must set this during SKEL_handle_preparer().
This item is for use by the driver; the intended usage is to store a pointer (during SKEL_handle_factory()) to whatever instance data is required to maintain a connection to the database.
This is set by PDO after the statement has been executed for the first time. Your driver can inspect this value to determine if it can skip one-time actions as an optimization.
Discussed in more detail in la section intitulée SKEL_handle_preparer
Your driver is responsible for setting this field to the number of columns available in a result set. This is usually set during SKEL_stmt_execute() but with some database implementations, the column count may not be available until SKEL_stmt_fetch() has been called at least once. Drivers that SKEL_stmt_next_rowset() should update the column count when a new rowset is available.
PDO will allocate this field based on the value that you set for the column count. You are responsible for populating each column during SKEL_stmt_describe(). You must set the precision, maxlen, name, namelen and param_type members for each column. The name is expected to be allocated using emalloc(); PDO will efree() at the appropriate time.

Précédent | Sommaire | Suivant
pdo_dbh_t definition | Niveau supérieur | Constants


Preparation and Housekeeping

Source directory layout

The source directory for a typical PDO driver is laid out as follows, where SKEL represents a shortened form of the name of the database that the driver is going to connect to. Even though SKEL is presented here in uppercase (for clarity), the convention is to use lowercase characters.

pdo_SKEL/
  config.m4                    (1)
  config.w32                   (2)
  CREDITS
  package.xml                  (3)
  pdo_SKEL.c             (4)
  php_pdo_SKEL.h
  php_pdo_SKEL_int.h     (5)
  SKEL_dbh.c             (6)
  SKEL_stmt.c            (7)
unix build script
win32 build script
meta information about the package
standard PHP extension glue
driver private header
contains the implementation of the PDO driver interface
contains the implementation of the PDO statement interface

The contents of these files are defined later in this document.

Creating a skeleton

The easiest way to get started is to use the ext_skel shell script found in the PHP build tree in the ext directory. This will build a skeleton directory containing a lot of the files listed above. It can be build by executing the following command from within the ext directory:

./ext_skel --extname=pdo_SKEL

This will generate a directory called pdo_SKEL containing the skeleton files that you can then modify. This directory should then be moved out of the php extension directory . PDO is a PECL extension and should not be included in the standard extension directory. As long as you have PHP and PDO installed, you should be able to build from any directory.

Standard Includes

Build Specific Headers

The header file config.h is generated by the configure process for the platform for the which the driver is being built. If this header is present, the HAVE_CONFIG_H compiler variable is set. This variable should be tested for and if set, the file config.h should be included in the compilation unit.

PHP Headers

The following standard public php headers should be included in each source module:

  1. php.h

  2. php_ini.h

  3. ext/standard/info.h

PDO Interface Headers

The following standard public PDO header files are also included in each source module:

pdo/php_pdo.h

This header file contains definitions of the initialization and shutdown functions in the main driver as well as definitions of global PDO variables.

pdo/php_pdo_driver.h

This header contains the types and API contracts that are used to write a PDO driver. It also contains method signature for calling back into the PDO layer and registering/unregistering your driver with PDO. Most importantly, this header file contains the type definitions for PDO database handles and statements. The two main structures a driver has to deal with, pdo_dbh_t and pdo_stmt_t, are described in more detail in Appendix A and B.

Driver Specific Headers

The typical PDO driver has two header files that are specific to the database implementation. This does not preclude the use of more depending on the implementation. The following two headers are, by convention, standard:

php_pdo_SKEL.h

This header file is virtually an exact duplicate in functionality and content of the previously defined pdo/php_pdo.h that has been specifically tailored for your database. If your driver requires the use of global variables they should be defined using the ZEND_BEGIN_MODULE_GLOBALS and ZEND_END_MODULE_GLOBALS macros. Macros are then used to access these variables. This macro is usually named PDO_SKEL_G(v) where v is global variable to be accessed. Consult the Zend programmer documentation for more information.

php_pdo_SKEL_int.h

This header file typically contains type definitions and function declarations specific to the driver implementation. It also should contain the db specific definitions of a pdo_SKEL_handle and pdo_SKEL_stmt structures. These are the names of the private data structures that are then referenced by the driver_data members of the handle and statement structures.

Optional Headers

Depending on the implementation details for a particular driver it may be necessary to include the following header:

#include <zend_exceptions.h>

Précédent | Sommaire | Suivant
Prerequisites | Niveau supérieur | Fleshing out your skeleton


Prerequisites

The following is list of prerequisites and assumptions needed for writing a PDO database driver:

  1. A working target database, examples, demos, etc. working as per vendor specifications;

  2. A working development environment:

    1. Other Unix: standard development tools supplied by vendor plus the GNU development tool set;

    2. Win32: Visual Studio compiler suite;

    3. Linux: standard development tools, gcc, ld, make, autoconf, automake, etc., versions dependent on distribution;

  3. A working PHP environment version 5.0.3 or higher with a working PEAR extension version 1.3.5 or higher;

  4. A working PDO environment (can be installed using 'sudo pecl install PDO'), including the headers which will be needed to access the PDO type definitions and function declarations;

  5. A good working knowledge of the 'C' programming language;

  6. A good working knowledge of the way to write a PHP extension; George Schlossnagle's Advanced PHP Programming (published by Developer's Library, chapters 21 and 22) is recommended;

  7. Finally, a familiarity with the Zend API that forms the heart of PHP, in particular paying attention to the memory management aspects.

Précédent | Sommaire | Suivant
PDO Driver How-To | Niveau supérieur | Preparation and Housekeeping


Testing

PDO has a set of "core" tests that all drivers should pass before being released. They're designed to run from the PHP source distribution, so running the tests for your driver requires moving things around a bit. The suggested procedure is to obtain the latest PHP 5.1 snapshot and perform the following step:

$ cp -r pdo_SKEL /path/to/php-5.1/ext

This will allow the test harness to run your tests. The next thing you need to do is create a test that will redirect into the PDO common core tests. The convention is to name this file common.phpt; it should be placed in the tests subdirectory that was created by ext_skel when you created your extension skeleton. The content of this file should look something like the following:

--TEST--
SKEL
--SKIPIF--
<?php # vim:ft=php
if (!extension_loaded('pdo_SKEL')) print 'skip'; ?>
--REDIRECTTEST--
if (false !== getenv('PDO_SKEL_TEST_DSN')) {
# user set them from their shell
   $config['ENV']['PDOTEST_DSN'] = getenv('PDO_SKEL_TEST_DSN');
   $config['ENV']['PDOTEST_USER'] = getenv('PDO_SKEL_TEST_USER');
   $config['ENV']['PDOTEST_PASS'] = getenv('PDO_SKEL_TEST_PASS');
   if (false !== getenv('PDO_SKEL_TEST_ATTR')) {
      $config['ENV']['PDOTEST_ATTR'] = getenv('PDO_SKEL_TEST_ATTR');
   }
   return $config;
}
return array(
   'ENV' => array(
           'PDOTEST_DSN' => 'SKEL:dsn',
           'PDOTEST_USER' => 'username',
           'PDOTEST_PASS' => 'password'
       ),
   'TESTS' => 'ext/pdo/tests'
   );

This will cause the common core tests to be run, passing the values of PDOTEST_DSN, PDOTEST_USER and PDOTEST_PASS to the PDO constructor as the dsn, username and password parameters. It will first check the environment, so that appropriate values can be passed in when the test harness is run, rather than hard-coding the database credentials into the test file.

The test harness can be invoked as follows:

$ cd /path/to/php-5.1
$ make TESTS=ext/pdo_SKEL/tests PDO_SKEL_TEST_DSN="skel:dsn" \
 PDO_SKEL_TEST_USER=user PDO_SKEL_TEST_PASS=pass test

Précédent | Sommaire | Suivant
Building | Niveau supérieur | Packaging and distribution


Migrating from PHP 5.1.x to PHP 5.2.x

Manuel PHP
Précédent Suivant

Annexe B. Migrating from PHP 5.1.x to PHP 5.2.x

Table des matières
What has changed in PHP 5.2.x
Backward Incompatible Changes
New Error Messages
Changes in PHP datetime support
New Parameters
New Functions
New Methods
Removed Extensions
New Extensions
New Classes
New Global Constants
New Class Constants
New INI Configuration Directives
Error Reporting
Other Enhancements

What has changed in PHP 5.2.x

Most improvements in PHP 5.2.x have no impact on existing code. There are a few incompatibilities and new error messages that should be considered, and code should be tested before switching PHP versions in production environments.

If the system is being upgraded from PHP 5.0.x, the text titled Upgrade Notes for PHP 5.1.x should also be read.

Similarly, if the system is being upgraded from PHP 4, the manual section titled Migrating from PHP 4 to PHP 5 should be read as well.

Précédent | Sommaire | Suivant
Publications sur PHP | Niveau supérieur | Backward Incompatible Changes


New Class Constants

pdo:

  • PDO::ATTR_DEFAULT_FETCH_MODE

  • PDO::FETCH_PROPS_LATE

spl:

  • CachingIterator::FULL_CACHE

  • CachingIterator::TOSTRING_USE_INNER

  • SplFileObject::READ_AHEAD

  • SplFileObject::READ_CSV

  • SplFileObject::SKIP_EMPTY

Précédent | Sommaire | Suivant
New Global Constants | Niveau supérieur | New INI Configuration Directives


New Classes

The following classes were introduced in PHP 5.2.0:

  • DateTime

  • DateTimeZone

  • RegexIterator - extends FilterIterator; implements Iterator, Traversable, OuterIterator

    Constants:

    • RegexIterator::ALL_MATCHES

    • RegexIterator::GET_MATCH

    • RegexIterator::MATCH

    • RegexIterator::REPLACE

    • RegexIterator::SPLIT

    • RegexIterator::USE_KEY

    Properties:

    • public replacement

    Methods:

    • RegexIterator::__construct(Iterator it, string regex [, int mode [, int flags [, int preg_flags]]]) - Create an RegexIterator from another iterator and a regular expression

    • bool RegexIterator::accept() - Match (string)current() against regular expression

    • bool RegexIterator::getFlags() - Returns current operation flags

    • bool RegexIterator::getMode() - Returns current operation mode

    • bool RegexIterator::getPregFlags() - Returns current PREG flags (if in use or NULL)

    • bool RegexIterator::setFlags(int new_flags) - Set operation flags

    • bool RegexIterator::setMode(int new_mode) - Set new operation mode

    • bool RegexIterator::setPregFlags(int new_flags) - Set PREG flags

  • RecursiveRegexIterator

    Constants:

    • RecursiveRegexIterator::ALL_MATCHES

    • RecursiveRegexIterator::GET_MATCH

    • RecursiveRegexIterator::MATCH

    • RecursiveRegexIterator::REPLACE

    • RecursiveRegexIterator::SPLIT

    • RecursiveRegexIterator::USE_KEY

    Methods:

    • RecursiveRegexIterator::__construct(RecursiveIterator it, string regex [, int mode [, int flags [, int preg_flags]]]) - Create an RecursiveRegexIterator from another recursive iterator and a regular expression

    • RecursiveRegexIterator RecursiveRegexIterator::getChildren() - Return the inner iterator's children contained in a RecursiveRegexIterator

    • bool RecursiveRegexIterator::hasChildren() - Check whether the inner iterator's current element has children

Précédent | Sommaire | Suivant
New Extensions | Niveau supérieur | New Global Constants


Changes in PHP datetime support

Since PHP 5.1.0, there has been an extension named date in the PHP core. This is the new implementation of PHP's datetime support. Although it will attempt to guess your system's timezone setting, you should set the timezone manually. You can do this in any of three ways:

  • in your php.ini using the date.timezone INI directive

  • on your system using the TZ environmental variable

  • from your script using the convenience function date_default_timezone_set()

All supported timezones are listed in the PHP Manual.

With the advent of PHP 5.2.x, there are object representations of the date and timezone, named DateTime and DateTimeZone respectively. The methods map to existing procedural date functions.

Précédent | Sommaire | Suivant
New Error Messages | Niveau supérieur | New Parameters


New Error Messages

Below are the new error messages that have not been discussed elsewhere in this document.

Exemple B-1. In PHP Core

<?php
echo " ";
session_regenerate_id();
/*  Warning:  session_regenerate_id(): Cannot regenerate
    session id - headers already sent in filename on line n */

str_word_count("string", 4);
/* Warning:  str_word_count(): Invalid format value 4
   in filename on line n */

strripos("foo", "f", 4);
/* Notice:  strripos(): Offset is greater than the
   length of haystack string in filename on line n */

strrpos("foo", "f", 4);
/* Notice:  strrpos(): Offset is greater than the
   length of haystack string in filename on line n */

/* As of PHP 5.2.1, when allow_url_include is OFF (default) */
include "php://input";
/* Warning:  include(): URL file-access is disabled
   in the server configuration in filename on line n */
?>

Exemple B-2. Object Oriented Code in PHP Core

<?php
interface foo {
}
class bar implements foo, foo {
}
/* Fatal error: Class bar cannot implement previously
   implemented interface foo in filename on line n */

class foo {
    public $bar;
    function __get($var)
    {
        return $this->bar;
    }
}

$foo = new foo;
$bar =& $foo->prop;
/* Notice: Indirect modification of overloaded property
   foo::$prop has no effect in filename on line n */

class foo implements iterator {
    public function current() {
    }
    public function next() {
    }
    public function key() {
    }
    public function valid() {
    }
    public function rewind() {
    }
}

$foo = new foo();
foreach($foo as &$ref) {}
/* Fatal error: An iterator cannot be used with foreach
   by reference in filename on line n */

class foo {
    private function __construct() {
    }
}
class bar extends foo {
    public function __construct() {
        parent::__construct();
        /* Fatal error:  Cannot call private
           foo::__construct() in filename on line n */
    }
}
new bar;

stream_filter_register("", "class");
/* Warning:  stream_filter_register(): Filter name
   cannot be empty in filename on line n */

stream_filter_register("filter", "");
/* Warning:  stream_filter_register(): Class name
   cannot be empty in filename on line n */

Exemple B-3. In the bzip2 Extension

<?php
bzopen("", "w");
/* Warning:  bzopen(): filename cannot be empty
   in filename on line n */

bzopen("foo", "a");
/* Warning:  bzopen(): 'a' is not a valid mode for
   bzopen(). Only 'w' and 'r' are supported in
   filename on line n */

$fp = fopen("foo", "w");
bzopen($fp, "r");
/* Warning:  bzopen(): cannot read from a stream
   opened in write only mode in filename on line n */
?>

Exemple B-4. In the datetime Extension

<?php
strtotime("today", "now");
/* Warning:  strtotime() expects parameter 2 to be
   long, string given in filename on line n */

/* As of PHP 5.2.1 */
new DateTime(new stdclass);
/* Fatal error: Uncaught exception 'Exception' with
   message 'DateTime::__construct() expects parameter
   1 to be string, object given' in filename:n */
?>

Exemple B-5. In the dBase Extension

<?php
dbase_open("foo", -1);
/* Warning: Invalid access mode -1 in filename on line n */

/* As of PHP 5.2.1 */
dbase_open("foo", null);
/* Warning: The filename cannot be empty in filename on line n */
?>

Exemple B-6. In the mcrypt Extension

<?php
$key = "this is a secret key";
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td),
                        MCRYPT_RAND);
mcrypt_generic_init($td, $key, $iv);
$encrypted_data = mcrypt_generic($td, "");
/* Warning: mcrypt_generic(): An empty string was
   passed in filename on line n */
?>

Exemple B-7. In the oci8 Extension

<?php
oci_connect("user", "pass", "db", "bogus_charset");
/* Warning: Invalid character set name:
   bogus_charset in filename on line n */

$oci = oci_connect("user", "pass", "db");
oci_password_change($oci, "", "old", "new");
/* Warning: username cannot be empty in filename
   on line n */

oci_password_change($oci, "user", "", "new");
/* Warning: old password cannot be empty in filename
   on line n */

oci_password_change($oci, "user", "old", "");
/* Warning: new password cannot be empty in filename
   on line n */
?>

Exemple B-8. In the SPL Extension

<?php
$obj = new SplFileObject(__FILE__);
$obj->fgetcsv("foo");
/* Warning:  SplFileObject::fgetcsv(): delimiter must
   be a character in filename on line n */

$obj->fgetcsv(",", "foo");
/* Warning:  SplFileObject::fgetcsv(): enclosure must
   be a character in filename on line n */
?>

Exemple B-9. In the Semaphore (sysvmsg) extension

<?php
/* Warning:  maximum size of the message has to be
   greater then zero in filename on line n */
?>

Exemple B-10. A 5.2.1+ Zip Example

<?php
$obj = new ZipArchive();
$obj->open('archive.zip');
$obj->setCommentName('', 'comment');
/* Notice:  ZipArchive::setCommentName(): Empty string
   as entry name in filename on line n */

/* As of PHP 5.2.1 */
$obj->getCommentName('');
/* Notice:  ZipArchive::getCommentName(): Empty string
   as entry name in filename on line n */
?>

Précédent | Sommaire | Suivant
Backward Incompatible Changes | Niveau supérieur | Changes in PHP datetime support


Error Reporting

Some of the existing E_ERROR conditions have been converted to something that you can catch with a user-defined error handler. If an E_RECOVERABLE_ERROR is not handled, it will behave in the same way as E_ERROR behaves in all versions of PHP. Errors of this type are logged as Catchable fatal error.

This change means that the value of the E_ALL error_reporting constant is now 6143, where the previous value was 2047. Because PHP constants have no meaning outside of PHP, in some cases the integer value is used instead so these will need to be adjusted. So for example if you are setting the error_reporting mode from either the httpd.conf or the .htaccess files, you will need to adjust the value accordingly. The same applies if you use the numeric value rather than the constant in your PHP scripts.

As a side-effect of a change made to prevent duplicate error messages when track_errors is On, it is now necessary to return FALSE from your error handler in order to populate $php_errormsg. This provides you fine-grain control over the levels of messages stored.

Précédent | Sommaire | Suivant
New INI Configuration Directives | Niveau supérieur | Other Enhancements


New Functions

PHP 5.2.x introduced some new functions:

PHP Core:

  • array_fill_keys() - Create an array using the elements of the first parameter as keys, each initialized to val

  • error_get_last() - Get the last occurred error as associative array. Returns NULL if there hasn't been an error yet

  • image_type_to_extension() - Get file extension for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

  • memory_get_peak_usage() - Returns the peak allocated by PHP memory

  • timezone_abbreviations_list() - Returns associative array containing DST, offset and the timezone name

  • timezone_identifiers_list() - Returns numerically indexed array with all timezone identifiers

  • timezone_name_from_abbr() - Returns the timezone name from abbreviation

  • stream_socket_shutdown() - Causes all or part of a full-duplex connection on the socket associated with stream to be shut down. As of PHP 5.2.1.

mbstring:

  • mb_list_encodings_alias_names() - Returns an array of all supported entity encodings

  • mb_list_mime_names() - Returns an array or string of all supported mime names

  • mb_stripos() - Finds position of first occurrence of a string within another, case insensitive

  • mb_stristr() - Finds first occurrence of a string within another, case insensitive

  • mb_strrchr() - Finds the last occurrence of a character in a string within another

  • mb_strrichr() - Finds the last occurrence of a character in a string within another, case insensitive

  • mb_strripos() - Finds position of last occurrence of a string within another, case insensitive

  • mb_strstr() - Finds first occurrence of a string within another

ming (As of PHP 5.2.1):

  • void ming_setSWFCompression(int num) - Sets output compression

  • void swfmovie::namedanchor(string name) - Creates anchor

  • void swfmovie::protect([string pasword]) - Protects

openssl:

  • openssl_csr_get_public_key() - Extracts public key from a CERT and prepares it for use

  • openssl_csr_get_subject() - Returns the subject of a CERT

  • openssl_pkey_get_details() - Returns an array with the key details (bits, pkey, type)

spl:

  • spl_object_hash() - Return hash id for given object

  • int iterator_apply(Traversable it, mixed function [, mixed params]) - Calls a function for every element in an iterator

pcre:

  • preg_last_error() - Returns the error code of the last regex execution

pgsql:

  • pg_field_table() - Returns the name of the table field belongs to, or table's oid if oid_only is true

posix:

  • bool posix_initgroups(string name, int base_group_id) - Calculate the group access list for the user specified in name

gmp:

  • gmp_nextprime() - Finds next prime of a

xmlwriter:

  • xmlwriter_full_end_element() - End current element - returns FALSE on error

  • xmlwriter_write_raw() - Write text - returns FALSE on error

  • xmlwriter_start_dtd_entity() - Create start DTD Entity - returns FALSE on error

  • xmlwriter_end_dtd_entity() - End current DTD Entity - returns FALSE on error

  • xmlwriter_write_dtd_entity() - Write full DTD Entity tag - returns FALSE on error

Précédent | Sommaire | Suivant
New Parameters | Niveau supérieur | New Methods


New Global Constants

PHP Core:

  • M_EULER

  • M_LNPI

  • M_SQRT3

  • M_SQRTPI

  • PATHINFO_FILENAME

  • PREG_BACKTRACK_LIMIT_ERROR

  • PREG_BAD_UTF8_ERROR

  • PREG_INTERNAL_ERROR

  • PREG_NO_ERROR

  • PREG_RECURSION_LIMIT_ERROR

  • UPLOAD_ERR_EXTENSION

  • STREAM_SHUT_RD

  • STREAM_SHUT_WR

  • STREAM_SHUT_RDWR

curl:

  • CURLE_FILESIZE_EXCEEDED

  • CURLE_FTP_SSL_FAILED

  • CURLE_LDAP_INVALID_URL

  • CURLFTPAUTH_DEFAULT

  • CURLFTPAUTH_SSL

  • CURLFTPAUTH_TLS

  • CURLFTPSSL_ALL

  • CURLFTPSSL_CONTROL

  • CURLFTPSSL_NONE

  • CURLFTPSSL_TRY

  • CURLOPT_FTP_SSL

  • CURLOPT_FTPSSLAUTH

ming:

  • SWFTEXTFIELD_USEFONT

  • SWFTEXTFIELD_AUTOSIZE

  • SWF_SOUND_NOT_COMPRESSED

  • SWF_SOUND_ADPCM_COMPRESSED

  • SWF_SOUND_MP3_COMPRESSED

  • SWF_SOUND_NOT_COMPRESSED_LE

  • SWF_SOUND_NELLY_COMPRESSED

  • SWF_SOUND_5KHZ

  • SWF_SOUND_11KHZ

  • SWF_SOUND_22KHZ

  • SWF_SOUND_44KHZ

  • SWF_SOUND_8BITS

  • SWF_SOUND_16BITS

  • SWF_SOUND_MONO

  • SWF_SOUND_STEREO

openssl:

  • OPENSSL_VERSION_NUMBER

  • OPENSSL_VERSION_TEXT

snmp:

  • SNMP_OID_OUTPUT_FULL

  • SNMP_OID_OUTPUT_NUMERIC

Semaphore:

  • MSG_EAGAIN

  • MSG_ENOMSG

Précédent | Sommaire | Suivant
New Classes | Niveau supérieur | New Class Constants


Backward Incompatible Changes

Although most existing PHP 5 code should work without changes, you should pay attention to the following backward incompatible changes:

  • getrusage() returns NULL when passed incompatible arguments as of PHP 5.2.1.

  • ZipArchive::setCommentName() returns TRUE on success as of PHP 5.2.1.

  • ZipArchive::setCommentIndex() returns TRUE on success as of PHP 5.2.1.

  • SplFileObject::getFilename() returns the filename, not relative/path/to/file, as of PHP 5.2.1.

  • Changed priority of PHPRC environment variable on Win32

    The PHPRC environment variable now takes priority over the path stored in the Windows registry.

  • CLI SAPI no longer checks cwd for php.ini or the php-cli.ini file

    In PHP 5.1.x an undocumented feature was added that made the CLI binary check the current working directory for a PHP configuration file, potentially leading to unpredictable behavior if an unexpected configuration file were read. This functionality was removed in 5.2.0, and PHP will no longer search CWD for the presence of php.ini or php-cli.ini files. See also the command line section of the manual.

  • Added a warning when performing modulus 0 operations

    In earlier versions of PHP, performing integer % 0 did not emit any warning messages, instead returning an unexpected return value of FALSE. As of PHP 5.2.0, this operation will emit an E_WARNING, as is the case in all other instances where division by zero is performed.

    <?php
    print 10 % 0;
    /* Warning:  Division by zero in filename on line n */
    ?>

  • Changed __toString() to be called wherever applicable.

    The magic method __toString() will now be called in a string context, that is, anywhere an object is used as a string.

    The fallback of returning a string that contains the object identifier was dropped in PHP 5.2.0. It became problematic because an object identifier cannot be considered unique. This change will mean that your application is flawed if you have relied on the object identifier as a return value. An attempt to use that value as a string will now result in a catchable fatal error.

    <?php
    class foo {}
    $foo = new foo;
    print     $foo;
    /* Catchable fatal error:  Object of class foo could
       not be converted to string in filename on line n */
    ?>

    Even with __toString(), objects cannot be used as array indices or keys. We may add built-in hash support for this at a later date, but as of PHP 5.2.x you will need to either provide your own hashing or use the new SPL function spl_object_hash().

    Exceptions can not be thrown from __toString() methods.

    <?php
    class foo {
        public function     __toString() {
            throw new     Exception;
        }
    }

    try {
        print new     foo;
            /* Fatal error:  Method foo::__toString() must
           not throw an exception in filename on line n */
    } catch(Exception $e) {}
    ?>

  • Dropped abstract static class functions.

    Due to an oversight, PHP 5.0.x and 5.1.x allowed abstract static functions in classes. As of PHP 5.2.x, only interfaces can have them.

    <?php
    abstract class foo {
        abstract static function     bar();
            /* Strict Standards:  Static function foo::bar()
           should not be abstract in filename on line n */
    }
    ?>

  • Added RFC2397 (data: stream) support.

    The introduction of the 'data' URL scheme has the potential to lead to a change of behavior under Windows. If you are working with a NTFS file system and making use of meta streams in your application, and if you just happen to be using a file with the name 'data:' that is accessed without any path information - it won't work any more. The fix is to use the 'file:' protocol when accessing it.

    See also RFC 2397

    <?php
    /* when allow_url_include is OFF (default) */
    include "data:;base64,PD9waHAgcGhwaW5mbygpOz8+";
    /* Warning:  include(): URL file-access is disabled
       in the server configuration in filename on line n */
    ?>

Précédent | Sommaire | Suivant
Migrating from PHP 5.1.x to PHP 5.2.x | Niveau supérieur | New Error Messages


New Methods

New methods were introduced in 5.2.0:

dom:

  • DOMDocument::registerNodeClass() - Register extended class used to create base node type

  • DOMElement::setIDAttribute() - Declares the attribute specified by name to be of type ID

  • DOMElement::setIDAttributeNode() - Declares the attribute specified by node to be of type ID

  • DOMElement::setIDAttributeNS() - Declares the attribute specified by local name and namespace URI to be of type ID

  • DOMNode::C14N([bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]]) - Canonicalize nodes to a string

  • DOMNode::C14NFile(string uri [, bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]]) - Canonicalize nodes to a file

  • DOMNode::getNodePath() - Gets an xpath for a node

soap:

  • SoapServer::setObject(object obj) - Sets object which will handle SOAP requests

spl:

  • int ArrayObject::asort(void) - Sort the entries by values

  • int ArrayObject::ksort(void) - Sort the entries by key

  • int ArrayObject::natcasesort(void) - Sort the entries by key using case insensitive "natural order" algorithm.

  • int ArrayObject::natsort(void) - Sort the entries by values using "natural order" algorithm.

  • int ArrayObject::uasort(callback cmp_function) - Sort the entries by values user defined function

  • int ArrayObject::uksort(callback cmp_function) - Sort the entries by key using user defined function.

  • ArrayIterator AppendIterator::getArrayIterator() - Get access to inner ArrayIterator

  • int AppendIterator::getIteratorIndex() - Get index of iterator

  • bool CachingIterator::getCache() - Return the cache

  • int CachingIterator::getFlags() - Return the internal flags

  • bool CachingIterator::offsetExists(mixed index) - Return whether the requested index exists

  • string CachingIterator::offsetGet(mixed index) - Return the internal cache if used

  • void CachingIterator::offsetSet(mixed index, mixed newval) - Set given index in cache

  • void CachingIterator::offsetUnset(mixed index) - Unset given index in cache

  • void CachingIterator::setFlags() - Set the internal flags

  • array("delimiter" =>, "enclosure" =>) SplFileObject::getCsvControl(void) - Get the delimiter and enclosure character used in fgetcsv

  • void SplFileObject::setCsvControl([string delimiter = ',' [, string enclosure = '"']]) - Set the delimiter and enclosure character used in fgetcsv

  • boolean XMLReader::setSchema(string filename) - Use W3C XSD schema to validate the document as it is processed. Activation is only possible before the first Read()

zip:

  • bool ZipArchive::addEmptyDir(string dirname) - Creates an empty directory in the archive

Précédent | Sommaire | Suivant
New Functions | Niveau supérieur | Removed Extensions


New Extensions

The following are new extensions added (by default) as of PHP 5.2.0:

  • Filter - validates and filters data, and is designed for use with insecure data such as user input. This extension is enabled by default; the default mode RAW does not impact input data in any way.

  • JSON - implements the JavaScript Object Notation (JSON) data interchange format. This extension is enabled by default.

  • Zip - enables you to transparently read or write ZIP compressed archives and the files inside them.

Précédent | Sommaire | Suivant
Removed Extensions | Niveau supérieur | New Classes


New INI Configuration Directives

New php.ini directives introduced in PHP 5.2.0:

  • allow_url_include

    This useful option makes it possible to differentiate between standard file operations on remote files, and the inclusion of remote files. While the former is usually desirable, the latter can be a security risk if used naively. Starting with PHP 5.2.0, you can allow remote file operations while disallowing the inclusion of remote files in local scripts. In fact, this is the default configuration.

  • pcre.backtrack_limit

  • pcre.recursion_limit

  • session.cookie_httponly

Précédent | Sommaire | Suivant
New Class Constants | Niveau supérieur | Error Reporting


Other Enhancements

  • Improved memory manager and increased default memory limit.

    The new memory manager allocates less memory and works faster than the previous incarnation. It allocates memory from the system in large blocks, and then manages the heap by itself. The memory_limit value in php.ini is checked, not for each emalloc() call (as before), but for actual blocks requested from the system. This means that memory_limit is far more accurate than it used to be, since the old memory manager didn't calculate all the memory overhead used by the malloc library.

    Thanks to this new-found accuracy memory usage may appear to have increased, although actually it has not. To accommodate this apparent increase, the default memory_limit setting was also increased - from 8 to 16 megabytes.

  • Added support for constructors in interfaces to force constructor signature checks in implementations.

    Starting with PHP 5.2.0, interfaces can have constructors. However, if you choose to declare a constructor in an interface, each class implementing that interface MUST include a constructor with a signature matching that of the base interface constructor. By 'signature' we mean the parameter and return type definitions, including any type hints and including whether the data is passed by reference or by value.

Précédent | Sommaire | Suivant
Error Reporting | Niveau supérieur | Migration de PHP 4 à PHP 5


New Parameters

Some functions were given new parameters in PHP 5.2.x:

PHP Core:

  • base64_decode() - added strict

  • setcookie() - added httponly

  • setrawcookie() - added httponly

  • session_set_cookie_params() - added httponly

  • memory_get_usage() - added real_usage

curl:

  • curl_multi_info_read() - added msgs_in_queue

imap:

  • imap_open() - added n_retries

  • imap_reopen() - added n_retries

mbstring:

  • mb_strrpos() - added offset

    Avertissement

    The offset parameter was put in the position the encoding parameter used to be. Backward compatibility has been provided by allowing encoding to be specified as the third parameter. Using this backward compatibility mode is not recommended because it will be removed in a future release of PHP.

ming:

  • swfmovie::streamMP3() - added skip in PHP 5.2.1

openssl:

  • openssl_verify() - added signature_algo

pgsql:

  • pg_escape_bytea() - added connection

  • pg_escape_string() - added connection

simplexml:

  • SimpleXMLElement::__construct() - added is_prefix

  • SimpleXMLElement::attributes() - added is_prefix

  • SimpleXMLElement::children() - added is_prefix

  • simplexml_load_file() - added is_prefix

  • simplexml_load_string() - added is_prefix

spl:

  • array iterator_to_array(Traversable it [, bool use_keys = true]) - added use_keys in PHP 5.2.1

xmlreader:

  • XMLReader::open() - added encoding and options

  • XMLReader::XML() - added encoding and options

Précédent | Sommaire | Suivant
Changes in PHP datetime support | Niveau supérieur | New Functions


Removed Extensions

These extensions have been moved to PECL and are no longer part of the PHP distribution. The PECL package version of these extensions will be created according to user demand.

  • filePro

  • Hyperwave API

Précédent | Sommaire | Suivant
New Methods | Niveau supérieur | New Extensions


SWFAction

(PHP 4 >= 4.0.5)

SWFAction -- SWFAction Class

Description

The script syntax is based on the C language, but with a lot taken out- the SWF bytecode machine is just too simpleminded to do a lot of things we might like. For instance, we can't implement function calls without a tremendous amount of hackery because the jump bytecode has a hardcoded offset value. No pushing your calling address to the stack and returning- every function would have to know exactly where to return to.

So what's left? The compiler recognises the following tokens:

  • break

  • for

  • continue

  • if

  • else

  • do

  • while

There is no typed data; all values in the SWF action machine are stored as strings. The following functions can be used in expressions:

time()

Returns the number of milliseconds (?) elapsed since the movie started.

random(seed)

Returns a pseudo-random number in the range 0-seed.

length(expr)

Returns the length of the given expression.

int(number)

Returns the given number rounded down to the nearest integer.

concat(expr, expr)

Returns the concatenation of the given expressions.

ord(expr)

Returns the ASCII code for the given character

chr(num)

Returns the character for the given ASCII code

substr(string, location, length)

Returns the substring of length length at location location of the given string string.

Additionally, the following commands may be used:

duplicateClip(clip, name, depth)

Duplicate the named movie clip (aka sprite). The new movie clip has name name and is at depth depth.

removeClip(expr)

Removes the named movie clip.

trace(expr)

Write the given expression to the trace log. Doubtful that the browser plugin does anything with this.

startDrag(target, lock, [left, top, right, bottom])

Start dragging the movie clip target. The lock argument indicates whether to lock the mouse (?)- use 0 (FALSE) or 1 (TRUE). Optional parameters define a bounding area for the dragging.

stopDrag()

Stop dragging my heart around. And this movie clip, too.

callFrame(expr)

Call the named frame as a function.

getURL(url, target, [method])

Load the given URL into the named target. The target argument corresponds to HTML document targets (such as "_top" or "_blank"). The optional method argument can be POST or GET if you want to submit variables back to the server.

loadMovie(url, target)

Load the given URL into the named target. The target argument can be a frame name (I think), or one of the magical values "_level0" (replaces current movie) or "_level1" (loads new movie on top of current movie).

nextFrame()

Go to the next frame.

prevFrame()

Go to the last (or, rather, previous) frame.

play()

Start playing the movie.

stop()

Stop playing the movie.

toggleQuality()

Toggle between high and low quality.

stopSounds()

Stop playing all sounds.

gotoFrame(num)

Go to frame number num. Frame numbers start at 0.

gotoFrame(name)

Go to the frame named name. Which does a lot of good, since I haven't added frame labels yet.

setTarget(expr)

Sets the context for action. Or so they say- I really have no idea what this does.

And there's one weird extra thing. The expression frameLoaded(num) can be used in if statements and while loops to check if the given frame number has been loaded yet. Well, it's supposed to, anyway, but I've never tested it and I seriously doubt it actually works. You can just use /:framesLoaded instead.

Movie clips (all together now- aka sprites) have properties. You can read all of them (or can you?), you can set some of them, and here they are:

  • x

  • y

  • xScale

  • yScale

  • currentFrame - (read-only)

  • totalFrames - (read-only)

  • alpha - transparency level

  • visible - 1=on, 0=off (?)

  • width - (read-only)

  • height - (read-only)

  • rotation

  • target - (read-only) (???)

  • framesLoaded - (read-only)

  • name

  • dropTarget - (read-only) (???)

  • url - (read-only) (???)

  • highQuality - 1=high, 0=low (?)

  • focusRect - (???)

  • soundBufTime - (???)

So, setting a sprite's x position is as simple as /box.x = 100;. Why the slash in front of the box, though? That's how flash keeps track of the sprites in the movie, just like a Unix filesystem- here it shows that box is at the top level. If the sprite named box had another sprite named biff inside of it, you'd set its x position with /box/biff.x = 100;. At least, I think so; correct me if I'm wrong here.

Class Members

Méthodes

SWFAction->__construct()

Exemples

This simple example will move the red square across the window.

Exemple 1. swfaction() example

<?php
  $s = new SWFShape();
  $f = $s->addFill(0xff, 0, 0);
  $s->setRightFill($f);

  $s->movePenTo(-500, -500);
  $s->drawLineTo(500, -500);
  $s->drawLineTo(500, 500);
  $s->drawLineTo(-500, 500);
  $s->drawLineTo(-500, -500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $i->setDepth(1);
  $p->nextFrame();

  for ($n=0; $n<5; ++$n) {
    $i->rotate(-15);
    $p->nextFrame();
  }

  $m = new SWFMovie();
  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(6000, 4000);

  $i = $m->add($p);
  $i->setDepth(1);
  $i->moveTo(-500,2000);
  $i->setName("box");

  $m->add(new SWFAction("/box.x += 3;"));
  $m->nextFrame();
  $m->add(new SWFAction("gotoFrame(0); play();"));
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

This simple example tracks down your mouse on the screen.

Exemple 2. swfaction() example

<?php

  $m = new SWFMovie();
  $m->setRate(36.0);
  $m->setDimension(1200, 800);
  $m->setBackground(0, 0, 0);

  /* mouse tracking sprite - empty, but follows mouse so we can
     get its x and y coordinates */

  $i = $m->add(new SWFSprite());
  $i->setName('mouse');

  $m->add(new SWFAction("
    startDrag('/mouse', 1); /* '1' means lock sprite to the mouse */
  "));

  /* might as well turn off antialiasing, since these are just squares. */

  $m->add(new SWFAction("
    this.quality = 0;
  "));

  /* morphing box */
  $r = new SWFMorph();
  $s = $r->getShape1();

  /* Note this is backwards from normal shapes.  No idea why. */
  $s->setLeftFill($s->addFill(0xff, 0xff, 0xff));
  $s->movePenTo(-40, -40);
  $s->drawLine(80, 0);
  $s->drawLine(0, 80);
  $s->drawLine(-80, 0);
  $s->drawLine(0, -80);

  $s = $r->getShape2();

  $s->setLeftFill($s->addFill(0x00, 0x00, 0x00));
  $s->movePenTo(-1, -1);
  $s->drawLine(2, 0);
  $s->drawLine(0, 2);
  $s->drawLine(-2, 0);
  $s->drawLine(0, -2);

  /* sprite container for morphing box -
     this is just a timeline w/ the box morphing */

  $box = new SWFSprite();
  $box->add(new SWFAction("
    stop();
  "));
  $i = $box->add($r);

  for ($n=0; $n<=20; ++$n) {
    $i->setRatio($n/20);
    $box->nextFrame();
  }

  /* this container sprite allows us to use the same action code many times */

  $cell = new SWFSprite();
  $i = $cell->add($box);
  $i->setName('box');

  $cell->add(new SWFAction("

    setTarget('box');

    /* ...x means the x coordinate of the parent, i.e. (..).x */
    dx = (/mouse.x + random(6)-3 - ...x)/5;
    dy = (/mouse.y + random(6)-3 - ...y)/5;
    gotoFrame(int(dx*dx + dy*dy));

  "));

  $cell->nextFrame();
  $cell->add(new SWFAction("

    gotoFrame(0);
    play();

  "));

  $cell->nextFrame();

  /* finally, add a bunch of the cells to the movie */

  for ($x=0; $x<12; ++$x) {
    for ($y=0; $y<8; ++$y) {
      $i = $m->add($cell);
      $i->moveTo(100*$x+50, 100*$y+50);
    }
  }

  $m->nextFrame();

  $m->add(new SWFAction("

    gotoFrame(1);
    play();

  "));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Same as above, but with nice colored balls...

Exemple 3. swfaction() example

<?php

  $m = new SWFMovie();
  $m->setDimension(11000, 8000);
  $m->setBackground(0x00, 0x00, 0x00);

  $m->add(new SWFAction("

this.quality = 0;
/frames.visible = 0;
startDrag('/mouse', 1);

  "));

  // mouse tracking sprite
  $t = new SWFSprite();
  $i = $m->add($t);
  $i->setName('mouse');

  $g = new SWFGradient();
  $g->addEntry(0, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.1, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.5, 0xff, 0xff, 0xff, 0x5f);
  $g->addEntry(1.0, 0xff, 0xff, 0xff, 0);

  // gradient shape thing
  $s = new SWFShape();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.03);
  $s->setRightFill($f);
  $s->movePenTo(-600, -600);
  $s->drawLine(1200, 0);
  $s->drawLine(0, 1200);
  $s->drawLine(-1200, 0);
  $s->drawLine(0, -1200);

  // need to make this a sprite so we can multColor it
  $p = new SWFSprite();
  $p->add($s);
  $p->nextFrame();

  // put the shape in here, each frame a different color
  $q = new SWFSprite();
  $q->add(new SWFAction("gotoFrame(random(7)+1); stop();"));
  $i = $q->add($p);

  $i->multColor(1.0, 1.0, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 0.75, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 0.5, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 1.0);
  $q->nextFrame();

  // finally, this one contains the action code
  $p = new SWFSprite();
  $i = $p->add($q);
  $i->setName('frames');
  $p->add(new SWFAction("

dx = (/:mousex-/:lastx)/3 + random(10)-5;
dy = (/:mousey-/:lasty)/3;
x = /:mousex;
y = /:mousey;
alpha = 100;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("

this.x = x;
this.y = y;
this.alpha = alpha;
x += dx;
y += dy;
dy += 3;
alpha -= 8;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("prevFrame(); play();"));
  $p->nextFrame();

  $i = $m->add($p);
  $i->setName('frames');
  $m->nextFrame();

  $m->add(new SWFAction("

lastx = mousex;
lasty = mousey;
mousex = /mouse.x;
mousey = /mouse.y;

++num;

if (num == 11)
  num = 1;

removeClip('char' & num);
duplicateClip(/frames, 'char' & num, num);

  "));

  $m->nextFrame();
  $m->add(new SWFAction("prevFrame(); play();"));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Précédent | Sommaire | Suivant
Ming pour Flash | Niveau supérieur | SWFAction->__construct()


SWFBitmap

(PHP 4 >= 4.0.5)

SWFBitmap -- SWFBitmap Class

Description

Class Members

Méthodes

SWFBitmap->__construct()
SWFBitmap->getHeight()
SWFBitmap->getWidth()

Précédent | Sommaire | Suivant
SWFAction->__construct() | Niveau supérieur | SWFBitmap->__construct()


SWFButton

(PHP 4 >= 4.0.5)

SWFButton -- SWFButton Class

Description

Class Members

Méthodes

SWFButton->__construct()
SWFButton->addAction()
SWFButton->addASound()
SWFButton->addShape()
SWFButton->setAction()
SWFButton->setDown()
SWFButton->setHit()
SWFButton->setMenu()
SWFButton->setOver()
SWFButton->setUp()

Précédent | Sommaire | Suivant
SWFBitmap->getWidth() | Niveau supérieur | SWFButton->__construct()


SWFDisplayItem

(no version information, might be only in CVS)

SWFDisplayItem -- SWFDisplayItem Class

Description

Class Members

Méthodes

SWFDisplayItem->addAction()
SWFDisplayItem->addColor()
SWFDisplayItem->endMask()
SWFDisplayItem->getRot()
SWFDisplayItem->getX()
SWFDisplayItem->getXScale()
SWFDisplayItem->getXSkew()
SWFDisplayItem->getY()
SWFDisplayItem->getYScale()
SWFDisplayItem->getYSkew()
SWFDisplayItem->move()
SWFDisplayItem->moveTo()
SWFDisplayItem->multColor()
SWFDisplayItem->remove()
SWFDisplayItem->rotate()
SWFDisplayItem->rotateTo()
SWFDisplayItem->scale()
SWFDisplayItem->scaleTo()
SWFDisplayItem->setDepth()
SWFDisplayItem->setMaskLevel()
SWFDisplayItem->setMatrix()
SWFDisplayItem->setName()
SWFDisplayItem->setRatio()
SWFDisplayItem->skewX()
SWFDisplayItem->skewXTo()
SWFDisplayItem->skewY()
SWFDisplayItem->skewYTo()

Précédent | Sommaire | Suivant
SWFButton->setUp() | Niveau supérieur | SWFDisplayItem->addAction()


SWFFill

(PHP 4 >= 4.0.5)

SWFFill -- SWFFill Class

Description

The SWFFill object allows you to transform (scale, skew, rotate) bitmap and gradient fills.

swffill objects are created by the SWFShape->addFill() method.

Class Members

Méthodes

SWFFill->moveTo()
SWFFill->rotateTo()
SWFFill->scaleTo()
SWFFill->skewXTo()
SWFFill->skewYTo()

Précédent | Sommaire | Suivant
SWFDisplayItem->skewYTo() | Niveau supérieur | SWFFill->moveTo()


SWFFont

(PHP 4 >= 4.0.5)

SWFFont -- SWFFont Class

Description

The SWFFont object represent a reference to the font definition, for us with SWFText->setFont() and SWFTextField->setFont().

Class Members

Méthodes

SWFFont->__construct()
SWFFont->getAscent()
SWFFont->getDescent()
SWFFont->getLeading()
SWFFont->getShape()
SWFFont->getUTF8Width()
SWFFont->getWidth()

Précédent | Sommaire | Suivant
SWFFill->skewYTo() | Niveau supérieur | SWFFont->__construct()


SWFFontChar

(no version information, might be only in CVS)

SWFFontChar -- SWFFontChar Class

Description

Class Members

Méthodes

SWFFontChar->addChars()
SWFFontChar->addUTF8Chars()

Précédent | Sommaire | Suivant
SWFFont->getWidth() | Niveau supérieur | SWFFontChar->addChars()


SWFGradient

(PHP 4 >= 4.0.5)

SWFGradient -- SWFGradient Class

Description

Class Members

Méthodes

SWFGradient->__construct()
SWFGradient->addEntry()

Précédent | Sommaire | Suivant
SWFFontChar->addUTF8Chars() | Niveau supérieur | SWFGradient->__construct()


SWFMorph

(PHP 4 >= 4.0.5)

SWFMorph -- SWFMorph Class

Description

The methods here are sort of weird. It would make more sense to just have newSWFMorph(shape1, shape2);, but as things are now, shape2 needs to know that it's the second part of a morph. (This, because it starts writing its output as soon as it gets drawing commands- if it kept its own description of its shapes and wrote on completion this and some other things would be much easier.)

Class Members

Méthodes

SWFMorph->__construct()
SWFMorph->getShape1()
SWFMorph->getShape2()

Précédent | Sommaire | Suivant
SWFGradient->addEntry() | Niveau supérieur | SWFMorph->__construct()


SWFMovie

(PHP 4 >= 4.0.5)

SWFMovie -- SWFMovie Class

Description

SWFMovie is a movie object representing an SWF movie.

Class Members

Méthodes

SWFMovie->__construct()
SWFMovie->add()
SWFMovie->addExport()
SWFMovie->addFont()
SWFMovie->importChar()
SWFMovie->importFont()
SWFMovie->labelFrame()
SWFMovie->nextFrame()
SWFMovie->output()
SWFMovie->remove()
SWFMovie->save()
SWFMovie->saveToFile()
SWFMovie->setbackground()
SWFMovie->setDimension()
SWFMovie->setFrames()
SWFMovie->setRate()
SWFMovie->startSound()
SWFMovie->stopSound()
SWFMovie->streamMP3()
SWFMovie->writeExports()

Précédent | Sommaire | Suivant
SWFMorph->getShape2() | Niveau supérieur | SWFMovie->__construct()


SWFPrebuiltClip

(no version information, might be only in CVS)

SWFPrebuiltClip -- SWFPrebuiltClip Class

Description

Class Members

Méthodes

SWFPrebuiltClip->__construct()

Précédent | Sommaire | Suivant
SWFMovie->writeExports() | Niveau supérieur | SWFPrebuiltClip->__construct()


SWFShape

(PHP 4 >= 4.0.5)

SWFShape -- SWFShape Class

Description

Class Members

Méthodes

SWFShape->__construct()
SWFShape->addFill()
SWFShape->drawArc()
SWFShape->drawCircle()
SWFShape->drawCubic()
SWFShape->drawCubicTo()
SWFShape->drawCurve()
SWFShape->drawCurveTo()
SWFShape->drawGlyph()
SWFShape->drawLine()
SWFShape->drawLineTo()
SWFShape->movePen()
SWFShape->movePenTo()
SWFShape->setLeftFill()
SWFShape->setLine()
SWFShape->setRightFill()

Précédent | Sommaire | Suivant
SWFPrebuiltClip->__construct() | Niveau supérieur | SWFShape->__construct()


SWFSound

(no version information, might be only in CVS)

SWFSound -- SWFSound Class

Description

Class Members

Méthodes

SWFSound

Précédent | Sommaire | Suivant
SWFShape->setRightFill() | Niveau supérieur | SWFSound


SWFSoundInstance

(no version information, might be only in CVS)

SWFSoundInstance -- SWFSoundInstance Class

Description

SWFSoundInstance objects are returned by the SWFSprite->startSound() and SWFMovie->startSound() methods.

Class Members

Méthodes

SWFSoundInstance->loopCount()
SWFSoundInstance->loopInPoint()
SWFSoundInstance->loopOutPoint()
SWFSoundInstance->noMultiple()

Précédent | Sommaire | Suivant
SWFSound | Niveau supérieur | SWFSoundInstance->loopCount()


SWFSprite

(PHP 4 >= 4.0.5)

SWFSprite -- SWFSprite Class

Description

An SWFSprite is also known as a "movie clip", this allows one to create objects which are animated in their own timelines. Hence, the sprite has most of the same methods as the movie.

Class Members

Méthodes

SWFSprite->__construct()
SWFSprite->add()
SWFSprite->labelFrame()
SWFSprite->nextFrame()
SWFSprite->remove()
SWFSprite->setFrames()
SWFSprite->startSound()
SWFSprite->stopSound()

Exemples

This simple example will spin gracefully a big red square.

Exemple 1. swfsprite() example

<?php
$s = new SWFShape();
$s->setRightFill($s->addFill(0xff, 0, 0));
$s->movePenTo(-500, -500);
$s->drawLineTo(500, -500);
$s->drawLineTo(500, 500);
$s->drawLineTo(-500, 500);
$s->drawLineTo(-500, -500);

$p = new SWFSprite();
$i = $p->add($s);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();

$m = new SWFMovie();
$i = $m->add($p);
$i->moveTo(1500, 1000);
$i->setName("blah");

$m->setBackground(0xff, 0xff, 0xff);
$m->setDimension(3000, 2000);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Précédent | Sommaire | Suivant
SWFSoundInstance->noMultiple() | Niveau supérieur | SWFSprite->__construct()


SWFText

(PHP 4 >= 4.0.5)

SWFText -- SWFText Class

Description

Class Members

Méthodes

SWFText->__construct()
SWFText->addString()
SWFText->addUTF8String()
SWFText->getAscent()
SWFText->getDescent()
SWFText->getLeading()
SWFText->getUTF8Width()
SWFText->getWidth()
SWFText->moveTo()
SWFText->setColor()
SWFText->setFont()
SWFText->setHeight()
SWFText->setSpacing()

Précédent | Sommaire | Suivant
SWFSprite->stopSound() | Niveau supérieur | SWFText->__construct()


SWFTextField

(PHP 4 >= 4.0.5)

SWFTextField -- SWFTextField Class

Description

Class Members

Méthodes

SWFTextField->__construct()
SWFTextField->addChars()
SWFTextField->addString()
SWFTextField->align()
SWFTextField->setBounds()
SWFTextField->setColor()
SWFTextField->setFont()
SWFTextField->setHeight()
SWFTextField->setIndentation()
SWFTextField->setLeftMargin()
SWFTextField->setLineSpacing()
SWFTextField->setMargins()
SWFTextField->setName()
SWFTextField->setPadding()
SWFTextField->setRightMargin()

Précédent | Sommaire | Suivant
SWFText->setSpacing() | Niveau supérieur | SWFTextField->__construct()


SWFVideoStream

(no version information, might be only in CVS)

SWFVideoStream -- SWFVideoStream Class

Description

Class Members

Méthodes

SWFVideoStream->__construct()
SWFVideoStream->getNumFrames()
SWFVideoStream->setDimension()

Précédent | Sommaire | Suivant
SWFTextField->setRightMargin() | Niveau supérieur | SWFVideoStream->__construct()


Utilisation

(no version information, might be only in CVS)

Utilisation -- Exemples d'utilisation du gestionnaire ogg://.

Exemples

Exemple 1. Lecture d'un fichier OGG/Vorbis

<?php
dl("oggvorbis.so");

/* Par défaut, ogg:// décodera en 16-bit signé, en mode Little Endian */
$fp = fopen('ogg://monaudio.ogg', 'r');

/* Collecte quelques informations sur le fichier. */
$metadata = stream_get_meta_data($fp);

/* Inspection de la première chanson (habituellement la seule chanson
   mais les fichiers OGG/Vorbis peuvent être chaînés) */
$songdata = $metadata['wrapper_data'][0];

echo "Fichier OGG/Vorbis encodé par : {$songdata['vendor']}\n.";
echo "  {$songdata['channels']} canaux de {$songdata['rate']}Hz encodé à {$songdata['bitrate_nominal']}bps.\n";
foreach($songdata['comments'] as $comment) {
    echo "  $comment\n";
}

while ($audio_data = fread($fp, 8192)) {
  /* Faire quelque chose avec l'audio PCM extrait depuis le OGG.
     Copier vers /dev/dsp est une bonne chose sur les systèmes linux,
     souvenez-vous juste de définir le périphérique pour votre mode d'échantillonage d'abord. */
}

fclose($fp);

?>

Exemple 2. Encoder un fichier audio en OGG/Vorbis

<?php
dl('oggvorbis.so');

$context = stream_context_create(array('ogg'=>array(
             'pcm_mode' => OGGVORBIS_PCM_S8,  /* audio 8bit signé */
             'rate' => 44100,                 /* Qualité CD 44kHz */
             'bitrate' => 0.5,                /* Qualité moyenne VBR */
             'channels' => 1,                 /* Mono */
             'serialno' => 12345)));          /* Unique dans notre flux */

/* Ouverture d'un fichier pour un ajout. Ceci permet de "chaîner" un deuxième flux OGG à la fin du premier. */
$ogg = fopen('ogg://machanson.ogg', 'a', false, $context);

$pcm = fopen('mysample.pcm', 'r');

/* Compression de l'audio brute PCM depuis mysample.pcm vers machanson.ogg */
stream_copy_to_stream($pcm, $ogg);

fclose($pcm);
fclose($ogg);
?>

Précédent | Sommaire | Suivant
oggvorbis | Niveau supérieur | Gestion Audio OpenAL


Alternative PHP Cache

Manuel PHP
Précédent Suivant

III. Alternative PHP Cache

Introduction

Le cache PHP alternatif (APC) est un cache opcode libre et ouvert pour PHP. Il a été conçu pour fournir un gestionnaire libre, ouvert et robuste pour mettre en cache et optimiser le code intermédiaire de PHP.

Installation

Cette extension PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/apc.

La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Note : Sous Windows, APC a besoin d'un chemin temporaire pour exister et qui soit accessible en écriture par le serveur web. Il vérifie les variables d'environnement TMP, TEMP et USERPROFILE dans cet ordre et finalement tente le dossier Windows si aucune de celles-là n'est définie.

Note : Pour plus d'informations techniques, lisez le fichier contenant les notes techniques du développeur .

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Bien que la configuration par défaut d'APC soit suffisante pour la plupart des installations, les utilisateurs avancés devraient affiner les paramètres suivants.

Il y a deux décisions importantes que vous devez faire. D'abord, la quantité de mémoire partagée que vous voulez allouer à APC et ensuite, si vous voulez qu'APC vérifie si un fichier a été vérifié à chaque demande. Les deux options de configuration concernées sont apc.shm_size et apc.stat. Lisez avec attention la section suivante sur ces deux options de configuration.

Une fois que vous avez un serveur qui fonctionne, vous devez copier le script apc.php fourni avec l'extension dans un endroit accessible par le serveur web, puis, appelez-le depuis votre navigateur. Il vous fournit tous les détails de votre cache. Si GD est actif sur votre configuration PHP, il y aura aussi de jolis graphiques. La première chose à vérifier est s'il y a actuellement des fichiers en cache. En supposant que cela fonctionne, vous devez donc faire attention au nombre Cache full count sur la gauche. Il indique le temps depuis lequel le cache a été créé et qui doit effacer les entrées non utilisées depuis apc.ttl secondes. Vous devriez configurer votre cache pour minimiser ce nombre. Si vous remplissez constamment votre cache, la génération du cache résultant va prendre beaucoup de ressources. Vous devriez soit allouer plus de mémoire pour APC, soit utiliser apc.filters pour mettre en cache moins de scripts.

Tableau 1. Options de configuration APC

Nom | Défaut | Modifiable | Changelog
apc.enabled | "1" | PHP_INI_SYSTEM | PHP_INI_ALL avec APC <= 3.0.12p2
apc.shm_segments | "1" | PHP_INI_SYSTEM |
apc.shm_size | "30" | PHP_INI_SYSTEM |
apc.optimization | "0" | PHP_INI_ALL |
apc.num_files_hint | "1000" | PHP_INI_SYSTEM |
apc.ttl | "0" | PHP_INI_SYSTEM |
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.cache_by_default | "1" | PHP_INI_ALL | PHP_INI_SYSTEM avec APC <= 3.0.12p2
apc.filters | NULL | PHP_INI_SYSTEM |
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.slam_defense | "0" | PHP_INI_SYSTEM |
apc.file_update_protection | "2" | PHP_INI_SYSTEM |
apc.enable_cli | "0" | PHP_INI_SYSTEM | > APC 3.0.6
apc.max_file_size | "1M" | PHP_INI_SYSTEM | > APC 3.0.6
apc.stat | "1" | PHP_INI_SYSTEM | > APC 3.0.9
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

apc.enabled boolean

apc.enabled peut être défini à 0 pour désactiver APC. Ceci est utile lorsque APC est compilé statiquement dans PHP, et qu'il n'y a donc aucun autre moyen de le désactiver (lorsque compilé en tant que DSO, la ligne extension dans le php.ini peut juste être commentée).

apc.shm_segments integer

Le nombre de segments mémoire à allouer pour le cache compilé. Si APC fonctionne en dehors de la mémoire partagée mais que vous avez déjà défini apc.shm_size aussi élevé que votre système le permet, vous pouvez tenter de relever cette valeur.

apc.shm_size integer

La taille de chaque segment de mémoire partagé en MB. Par défaut, quelques systèmes (incluant la plupart des BSD) ont une limite basse de la taille d'un segment mémoire partagé.

apc.optimization integer

Le degré d'optimisation. Zéro désactive l'optimisateur, et de hautes valeurs utilisent des optimisations agressives. Attendez-vous à des améliorations très modestes de vitesse. Ceci est expérimental.

apc.num_files_hint integer

Un "conseil" au sujet du nombre de fichiers sources distincts qui seront inclus ou demandés sur votre serveur web. Placez à zéro ou omettez-le si vous n'êtes pas sûr ; cet arrangement est principalement utile pour les sites qui ont des milliers de fichiers sources.

apc.ttl integer

Le nombre de secondes qu'une entrée de cache est autorisée à stagner dans un slot dans le cas où ce slot d'entrée de cache est nécessaire pour une autre entrée. Laisser à zéro signifie que votre cache pourrait potentiellement remplir d'autres entrées tant que d'autres entrées ne seront pas mises en cache.

apc.gc_ttl integer

Le nombre de secondes qu'une entrée de cache peut rester dans la liste de la collection. Cette valeur fournit une sécurité dans le cas où le processus du serveur meurt lors de l'exécution d'un fichier source mis en cache ; si cette source est modifiée, la mémoire allouée pour l'ancienne version ne sera pas demandée tant que ce TTL ne sera pas atteint. Définissez-le à zéro pour désactiver cette fonctionnalité.

apc.cache_by_default boolean

Actif par défaut, mais peut être désactivé et utilisé en conjonction avec un apc.filters positif donc ces fichiers seront uniquement mis en cache s'ils correspondent à un filtre positif.

apc.filters string

Une liste séparée par des virgules d'expressions rationnelles POSIX. Si un seul masque correspond à un nom de fichier source, le fichier ne sera pas mis en cache. Notez que le nom du fichier utilisé pour le masque est celui passé aux instructions include/require, et non un chemin absolu. Si le premier caractère de l'expression est un + alors l'expression sera additive dans le sens que chaque fichier correspondant à l'expression sera mis en cache, et si le premier caractère est un - alors tout ce qui correspond ne sera pas mis en cache. Le cas du - est celui par défaut, donc, il peut être omis.

apc.mmap_file_mask string

Si compilé avec le support MMAP en utilisant --enable-mmap, ce sera le style mktemp de masque de fichier à passer au module MMAP pour déterminer si votre région de mémoire MMAP va être mise dans un fichier ou en mémoire partagée. Dans le cas de la mise en cache dans un fichier MMAP, définissez ce paramètre comme /tmp/apc.XXXXXX (exactement 6 X). Pour utiliser le style POSIX shm_open/mmap, placez un .shm quelque part dans votre masque, e.g. /apc.shm.XXXXXX. Vous pouvez également définir ce paramètre à /dev/zero pour utiliser votre interface kernel /dev/zero pour la mémoire anonyme MMAP. Le laisser indéfini forcera un MMAP anonyme.

apc.slam_defense integer

Sur les serveurs très surchargés lorsque vous démarrez le serveur ou modifiez des fichiers, vous pouvez créer une race contenant plusieurs processus pour mettre en cache le même fichier en même temps. Cette option définit le pourcentage de processus qui évitera de tenter de mettre en cache un fichier non mise en cache. Ou pensez à lui comme probabilité d'un processus simple pour éviter la mise en cache. Par exemple, définir apc.slam_defense à 75 signifie qu'il y a 75 % de chances que le processus ne mettra pas en cache un fichier qui ne s'y trouvera pas déjà. Définir à 0 pour désactiver cette fonctionnalité.

apc.file_update_protection integer

Lorsque vous modifiez un fichier sur un serveur web, vous devriez le faire d'une façon atomique. Écrivez-le dans un fichier temporaire et renommez-le (mv) vers sa position permanente lorsqu'il est prêt. La plupart des éditeurs de texte, cp, tar et les autres programmes de ce genre ne font pas cela. Cela signifie qu'il y a une chance pour que le fichier soit accédé (et donc, mis en cache) alors qu'il est encore en cours d'écriture. Ce paramètre apc.file_update_protection fait intervenir un délai pour la mise en cache des nouveaux fichiers. Par défaut, il vaut 2 secondes, ce qui signifie que si le timestamp de modification (mtime) d'un fichier montre qu'il vaut moins de 2 secondes, ce fichier ne sera pas mis en cache. La personne malheureuse qui a accédé à ce dossier moitié-écrit immobile verra une ébauche, mais au moins lui ne persistera pas. Si vous êtes certain de mettre toujours et automatiquement à jour vos fichiers en utilisant quelque chose comme rsync qui fait cela correctement, vous pouvez désactiver cette protection en le définissant à 0. Si vous avez un système qui flood avec io causant des procédures de mise à jour mettant plus de temps que 2 secondes, vous pourriez vouloir augmenter cette valeur.

apc.enable_cli integer

Pour tester et déboguer. Définir ceci active APC pour la version CLI de PHP. Normalement, vous ne devriez pas vouloir créer, peupler et démonter le cache APC à chaque requête CLI, mais pour divers scénarios de test, elle est maniable afin de pouvoir activer facilement APC pour la version CLI d'APC.

apc.max_file_size integer

Permet d'éviter la mise en cache des fichiers dont la taille est supérieure à cette valeur. Par défaut, 1M.

apc.stat integer

Faites très attention si vous modifiez cette valeur. Par défaut, APC vérifie le script à chaque demande pour voir s'il a été modifié ou non. S'il a été modifié, il sera recompilé et la nouvelle version sera mise en cache. En désactivant cette option, aucune vérification n'aura lieu. Cela signifie que si vous voulez activer les modifications, vous devez redémarrer le serveur web. Sur un serveur de production où vous modifiez rarement le code, le fait de désactiver cette option permet de gagner en performances de manière significative.

Pour les fichiers inclus/requis, cette option est également appliquée, mais notez que si vous utilisez des chemins relatifs (n'importe quel chemin qui ne commence pas par un / sous Unix), APC doit identifier de manière unique le fichier à vérifier. Si vous utilisez des chemins absolus pour vos inclusions, APC peut éviter ces vérifications et utiliser ce chemin absolu en tant qu'identifiant unique du fichier.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
apc_add -- Cache a variable in the data store (only if it's not stored)
apc_cache_info -- Récupère les informations de cache (et les méta-données) pour des données stockées APC
apc_clear_cache -- Efface le cache APC
apc_define_constants -- Définit des constantes pour les récupérer, et la définition de masse
apc_delete -- Efface une variable stockée depuis le cache
apc_fetch -- Récupère une variable stockée depuis le cache
apc_load_constants -- Charge un jeu de constantes depuis le cache
apc_sma_info -- Récupère les informations d'allocation mémoire partagée APC
apc_store -- Met en cache une variable dans les données stockées

Précédent | Sommaire | Suivant
virtual | Niveau supérieur | apc_add


Fonctions Crédit Mutuel CyberMUT

Manuel PHP
Précédent Suivant

XX. Fonctions Crédit Mutuel CyberMUT

Introduction

Cette extension vous permet de faire des transactions avec des cartes de crédits en utilisant le système Crédit Mutuel CyberMUT.

CyberMUT est un service de payement web en France, fournie par la banque le Crédit Mutuel. Si vous n'êtes pas en france, ces fonctions ne seront pas utiles pour vous.

L'utilisation de ces fonctions est identiques aux fonctions d'origine, excepté pour les paramètres de retour de CreerFormulaireCM et CreerReponseCM, qui sont directement retournés par les fonctions PHP, lorsqu'ils sont passés par référence dans les fonctions originales.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Note : Cette extension a été déplacée dans le module PECL et ne sera plus intégrée dans PHP à partir de PHP 4.3.0

Pré-requis

Vous devez avoir le SDK approprié pour votre plate-forme, qui doit vous être envoyé après votre inscription CyberMUT (contactez-les par le web ou allez dans un Crédit Mutuel le plus proche).

Note : Ces fonctions fournissent uniquement un lien vers le SDK CyberMUT. Assurez-vous de lire le guide du développeur CyberMUT pour plus de détails sur les paramètres requis.

Table des matières
cybermut_creerformulairecm -- Génère le formulaire HTML de demande pour le payement
cybermut_creerreponsecm -- Génère le remerciement lors de la confirmation du payement
cybermut_testmac -- Assurez-vous qu'il n'y avait aucune falsification de données dans le message de confirmation reçu

Précédent | Sommaire | Suivant
cybercash_encr | Niveau supérieur | cybermut_creerformulairecm


Fonctions enchant

Manuel PHP
Précédent Suivant

XXXII. Fonctions enchant

Introduction

Enchant est l'association PHP pour la librairie Enchant. Enchant fournit une couche d'abstraction uniforme et conforme pour toutes les bibliothèques de vérifications d'orthographe et implémente certaines fonctionnalités qui peuvent manquer dans certaines bibliothèques. Tout devrait tout simplement fonctionner pour toutes les bibliothèques.

Enchat supporte les différentes interfaces :

  • Aspell/Pspell (prévu comme remplaçant de Ispell)

  • Ispell (le plus ancien, peut être vu comme un standard defacto)

  • MySpell/Hunspell (un projet OOo, également utilisé par Mozilla)

  • Uspell (à l'origine pour les langues Yiddish, Hébreu, et l'europe de l'est - hébergé dans le CVS d'AbiWord's sous le module "uspell")

  • Hspell (Hébreu)

  • AppleSpell (Mac OSX)

Pré-requis

Cette version fournit les fonctions de la librairie Enchant de Dom Lachowicz. Vous avez besoin d'Enchant 1.2.4 ou suivant.

Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/enchant.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Il y a deux types de ressources pour cette extension. La première est un sponsor (manageur d'interfaces) et la seconde est un dictionnaire.

Exemples

Exemple 1. Exemple d'utilisation d'Enchant

<?php
$tag = 'en_US';
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo "Le sponsor courant fournit les interfaces suivantes :\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 "le dictionnaire $tag fournit :\n";
    $spellerrors = enchant_dict_check($d, "soong");
    print_r($dprovides);
    echo "$spellerrors erreurs d'orthographe ont été trouvées\n";
    if ($spellerrors) {
        $suggs = enchant_dict_suggest($d, "soong");
        echo "Suggestions pour 'soong' : ";
        print_r($suggs);
    }
    enchant_broker_free_dict($d);
} else {
}
enchant_broker_free($r);
?>
Table des matières
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_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. Un fichier PWL est un fichier de mots personnels contenant un mot par ligne
enchant_broker_set_ordering -- Déclare une préférence pour un dictionnaire d'une langue
enchant_dict_add_to_personal -- Ajoute un mot à la liste des mots personnelle
enchant_dict_add_to_session -- Ajoute un mot à la session courante
enchant_dict_check -- Vérifie si un mot est correctement orthographié
enchant_dict_describe -- Décrit un dictionnaire
enchant_dict_get_error -- Retourne la dernière erreur de la session courante
enchant_dict_is_in_session -- Vérifie si un mot existe dans une session de vérification
enchant_dict_quick_check -- Vérifie si le mot est correctement orthographié et fournit des suggestions
enchant_dict_store_replacement -- Ajoute une orthographe pour un mot
enchant_dict_suggest -- Retourne une liste de valeurs si aucunes des conditions ne sont réunies

Précédent | Sommaire | Suivant
xptr_new_context | Niveau supérieur | enchant_broker_describe


Fonctions Expect

Manuel PHP
Précédent Suivant

XXXV. Fonctions Expect

Introduction

Cette extension autorise l'interaction avec des processus à travers PTY. Vous pouvez utiliser l'enveloppe expect:// avec les fonctions de système de fichiers ce qui fourni une interface simple et plus intuitive.

Pré-requis

Ce module utilise les fonctions de la bibliothèque expect. Vous avez besoin de la libexpect version >= 5.43.0.

Installation

Cette extension PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/expect.

En PHP 4, les sources de cette extension PECL peuvent être trouvées dans le dossier ext/ avec les sources de PHP ou sur le lien PECL ci-dessous. 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. En PHP 4, cette bibliothèque DLL se trouve dans le dossier extensions/ avec les binaires PHP pour Windows téléchargées. La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

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.

Tableau 1. Options de configuration Expect

Nom | Par défaut | Modifiable | Historique
expect.timeout | "10" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.logfile | "" | PHP_INI_ALL |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

expect.timeout entier

La période de dépassement du temps pour attendre pour les données, lors de l'utilisation de la fonction expect_expectl().

Une valeur de "-1" désactive le dépassement de temps.

Note : Une valeur de "0" fait retourner immédiatement la fonction expect_expectl().

expect.loguser booléen

Si expect devrait envoyer toutes les données de sortie à partir du démarrage du processus à stdout. Puisque les programmes interactifs affiche typiquement leur entrée, ceci suffit habituellement pour montrer les deux côtés de la conversation.

expect.logfile string

Nom du fichier, où la sortie à partir du démarrage du processus devrait être écrite. Si ce fichier n'existe pas, il sera créé.

Note : Si cette configuration n'est pas vide, la sortie est écrite peu importe la valeur de expect.loguser.

Types de ressources

expect_popen() retourne un flux ouvert PTY utilisé par la fonction expect_expectl().

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

EXP_GLOB (entier)

Indique que le motif est un motif de style de chaîne de caractères glob.

EXP_EXACT (entier)

Indique que le motif est une chaîne exacte.

EXP_REGEXP (entier)

Indique que le motif est un motif de style de chaîne de caractères regexp.

EXP_EOF (entier)

Valeur, retournée par expect_expectl(), lorsque EOF est atteint.

EXP_TIMEOUT (entier)

Valeur, retournée par expect_expectl() sur le dépassement du temps en secondes, spécifiée par la valeur expect.timeout

EXP_FULLBUFFER (entier)

Valeur, retournée par expect_expectl() si aucun motif n'a été trouvé.

Exemples

Cet exemple se connecte à un hôte distant via SSH et affiche le temps d'utilisation distant.

Exemple 1. Exemple d'Utilisation avec Expect

<?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);
?>
Table des matières
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

Précédent | Sommaire | Suivant
read_exif_data | Niveau supérieur | expect_expectl


Fonctions Fileinfo

Manuel PHP
Précédent Suivant

XXXVIII. Fonctions Fileinfo

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'agit pas d'une approche infaillible, la méthode heuristique effectue un très bon travail.

Pré-requis

La bibliothèque magic_open est requise pour bâtir 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 : http://pecl.php.netfileinfo

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Il y a une ressource utilisée avec l'extension Fileinfo : un descripteur magique de base de données retourné par finfo_open().

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

FILEINFO_NONE (entier)

Aucun traitement spécial.

FILEINFO_SYMLINK (entier)

Suit les symlinks.

FILEINFO_MIME (entier)

Retourne une chaîne de caractères mime, au lieu d'une description textuelle.

FILEINFO_COMPRESS (entier)

Décompresse les fichiers compressés.

FILEINFO_DEVICES (entier)

Regarde les contenus des blocs ou les dispositifs spéciaux de caractères.

FILEINFO_CONTINUE (entier)

Retourne toutes les données trouvées, pas seulement la première.

FILEINFO_PRESERVE_ATIME (entier)

Si possible, conserve le temps d'accès au fichier original.

FILEINFO_RAW (entier)

Ne traduit pas les caractères non imprimables en représentation octale \ooo.

Table des matières
finfo_buffer -- Retourne des informations à propos une chaîne de caractères tampon
finfo_close -- Ferme une ressource fileinfo
finfo_file -- Retourne des informations à propos d'un fichier
finfo_open -- Crée une nouvelle ressource fileinfo
finfo_set_flags -- Fixe des options de configuration libmagic

Précédent | Sommaire | Suivant
fdf_set_version | Niveau supérieur | finfo_buffer


Fonctions Filter

Manuel PHP
Précédent Suivant

XLI. Fonctions Filter

Introduction

Cette extension permet de valider et de filtrer les données venant habituellement de sources non sécurisées comme les entrées utilisateurs.

Les filtres suivants existent actuellement, mais vous devriez lire la section sur les constantes de filtres pour plus d'informations sur le comportement de chaque constante :

Tableau 1. Filtres existants

ID | Nom | Options | Flags | Description
FILTER_VALIDATE_INT | "int" | min_range, max_range | FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX | Valide une valeur en tant qu'entier, optionnellement avec un intervalle spécifique.
FILTER_VALIDATE_BOOLEAN | "boolean" |  |  | Retourne TRUE pour "1", "true", "on" et "yes", FALSE pour "0", "false", "off", "no", et "", NULL sinon.
FILTER_VALIDATE_FLOAT | "float" |  |  | Valide une valeur en tant que nombre flottant.
FILTER_VALIDATE_REGEXP | "validate_regexp" | regexp |  | Valide une valeur en tant qu'une regexp, une expression régulière compatible PERL.
FILTER_VALIDATE_URL | "validate_url" |  | FILTER_FLAG_SCHEME_REQUIRED, FILTER_FLAG_HOST_REQUIRED, FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED | Valide une valeur en tant qu'URL, optionnellement avec un composant requis.
FILTER_VALIDATE_EMAIL | "validate_email" |  |  | Valide une valeur en tant qu'e-mail.
FILTER_VALIDATE_IP | "validate_ip" |  | FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE | Valide une valeur en tant qu'une adresse IP, optionnellement, uniquement IPv4 ou IPv6 ou pas, depuis un intervalle privé ou réservé.
FILTER_SANITIZE_STRING | "string" |  | FILTER_FLAG_NO_ENCODE_QUOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Efface les balises, optionnellement, efface ou encode les caractères spéciaux.
FILTER_SANITIZE_STRIPPED | "stripped" |  |  | Alias du filtre "string".
FILTER_SANITIZE_ENCODED | "encoded" |  | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH | Chaîne encodée pour les URL, optionnellement, efface ou encode les caractères spéciaux.
FILTER_SANITIZE_SPECIAL_CHARS | "special_chars" |  | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_HIGH | Échappement HTML des caractères '"<>& et des caractères dont la valeur ASCII est inférieure à 32, optionnellement, efface ou encode les autres caractères spéciaux.
FILTER_UNSAFE_RAW | "unsafe_raw" |  | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Ne fait rien, optionnellement, efface ou encode les caractères spéciaux.
FILTER_SANITIZE_EMAIL | "email" |  |  | Efface tous les caractères exceptés les lettres, les nombres ainsi que !#$%&'*+-/=?^_`{|}~@.[].
FILTER_SANITIZE_URL | "url" |  |  | Efface tous les caractères exceptés les lettres, les nombres ainsi que $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
FILTER_SANITIZE_NUMBER_INT | "number_int" |  |  | Efface tous les caractères exceptés les nombres ainsi que +-.
FILTER_SANITIZE_NUMBER_FLOAT | "number_float" |  | FILTER_FLAG_ALLOW_FRACTION, FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC | Efface tous les caractères exceptés les nombres, +- et, optionnellement, .,eE.
FILTER_SANITIZE_MAGIC_QUOTES | "magic_quotes" |  |  | Applique la fonction addslashes().
FILTER_CALLBACK | "callback" |  | callback function or method | Appel une fonction utilisateur pour filtrer les données.

Pré-requis

Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.

Installation

Une note d'installation courte : Exécutez simplement la commande suivant :

$ pecl install filter
dans votre console.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 2. Options de cnfiguration pour Filter

Nom | Défaut | Modifiable | Changelog
filter.default | unsafe_raw | PHP_INI_PERDIR |
filter.default_flags |  | PHP_INI_PERDIR |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

filter.default string

Filtre toutes les données transmises via $_GET, $_POST, $_COOKIE and $_REQUEST avec ce filtre. Les données originales peut être accédées via la fonction input_get().

Accepte le nom du filtre que vous voulez utiliser par défaut. Voir la liste des filtres existante pour en connaître les noms.

filter.default_flags integer

Drapeau par défaut.

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.

INPUT_POST (entier)

variables POST.

INPUT_GET (entier)

variables GET.

INPUT_COOKIE (entier)

variables COOKIE.

INPUT_ENV (entier)

variables ENV.

INPUT_SERVER (entier)

variables SERVER.

INPUT_SESSION (entier)

variables SESSION. (pas encore implémenté)

INPUT_REQUEST (entier)

variables REQUEST. (pas encore implémenté)

FILTER_FLAG_NONE (entier)

Aucun drappeau.

FILTER_REQUIRE_SCALAR (entier)

Drappeau utilisé pour requérir un scalaire en entrée.

FILTER_REQUIRE_ARRAY (entier)

Requière un tableau en entrée.

FILTER_FORCE_ARRAY (entier)

Retourne toujours un tableau.

FILTER_NULL_ON_FAILURE (entier)

Utilsation de NULL au lieu de FALSE si une erreur survient.

FILTER_VALIDATE_INT (entier)

ID du filtre "int".

FILTER_VALIDATE_BOOLEAN (entier)

ID du filtre "boolean".

FILTER_VALIDATE_FLOAT (entier)

ID du filtre "float".

FILTER_VALIDATE_REGEXP (entier)

ID du filtre "validate_regexp".

FILTER_VALIDATE_URL (entier)

ID du filtre "validate_url".

FILTER_VALIDATE_EMAIL (entier)

ID du filtre "validate_email".

FILTER_VALIDATE_IP (entier)

ID du filtre "validate_ip".

FILTER_DEFAULT (entier)

ID du filtre par défaut ("string").

FILTER_UNSAFE_RAW (entier)

ID du filtre "unsafe_raw".

FILTER_SANITIZE_STRING (entier)

ID du filtre "string".

FILTER_SANITIZE_STRIPPED (entier)

ID du filtre "stripped".

FILTER_SANITIZE_ENCODED (entier)

ID du filtre "encoded".

FILTER_SANITIZE_SPECIAL_CHARS (entier)

ID du filtre "special_chars".

FILTER_SANITIZE_EMAIL (entier)

ID du filtre "email".

FILTER_SANITIZE_URL (entier)

ID du filtre "url".

FILTER_SANITIZE_NUMBER_INT (entier)

ID du filtre "number_int".

FILTER_SANITIZE_NUMBER_FLOAT (entier)

ID du filtre "number_float".

FILTER_SANITIZE_MAGIC_QUOTES (entier)

ID du filtre "magic_quotes".

FILTER_CALLBACK (entier)

ID du filtre "callback".

FILTER_FLAG_ALLOW_OCTAL (entier)

Alloue une notation octale (0[0-7]+) dans le filtre "int".

FILTER_FLAG_ALLOW_HEX (entier)

Aloue une notation hexadécimale (0x[0-9a-fA-F]+) dans le filtre "int".

FILTER_FLAG_STRIP_LOW (entier)

Supprime les caractères dont les valeurs ASCII sont inférieures à 32.

FILTER_FLAG_STRIP_HIGH (entier)

Supprime les caractères dont les valeurs ASCII sont supérieures à 127.

FILTER_FLAG_ENCODE_LOW (entier)

Encode les caractères dont les valeurs ASCII sont inférieures à 32.

FILTER_FLAG_ENCODE_HIGH (entier)

Encode les caractères dont les valeurs ASCII sont supérieures à 127.

FILTER_FLAG_ENCODE_AMP (entier)

Encode &.

FILTER_FLAG_NO_ENCODE_QUOTES (entier)

N'encode pas ', ni ".

FILTER_FLAG_EMPTY_STRING_NULL (entier)

(Non utilisé actuellement.)

FILTER_FLAG_ALLOW_FRACTION (entier)

Alloue une partie fractionnelle dans le filtre "number_float".

FILTER_FLAG_ALLOW_THOUSAND (entier)

Alloue le séparateur des milliers (,) dans le filtre "number_float".

FILTER_FLAG_ALLOW_SCIENTIFIC (entier)

Alloue une notation scientifique (e, E) dans le filtre "number_float".

FILTER_FLAG_SCHEME_REQUIRED (entier)

Schéma requis dans le filtre "validate_url".

FILTER_FLAG_HOST_REQUIRED (entier)

Hôte requis dans le filtre "validate_url".

FILTER_FLAG_PATH_REQUIRED (entier)

Chemin requis dans le filtre "validate_url".

FILTER_FLAG_QUERY_REQUIRED (entier)

Requête requise dans le filtre "validate_url".

FILTER_FLAG_IPV4 (entier)

N'autorise que les adresses IPv4 dans le filtre "validate_ip".

FILTER_FLAG_IPV6 (entier)

N'autorise que les adresses IPv6 dans le filtre "validate_ip".

FILTER_FLAG_NO_RES_RANGE (entier)

N'autorise pas les adresses réservées dans le filtre "validate_ip".

FILTER_FLAG_NO_PRIV_RANGE (entier)

N'autorise pas les adresses privées dans le filtre "validate_ip".

Table des matières
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 à PHP et, les filtrent
filter_input -- Récupère une variable externe à PHP et la filtre
filter_list -- Retourne une liste de tous les filtres supportés
filter_var_array -- Récupère plusieurs variables et les filtrent
filter_var -- Filtre une variable avec un filtre spécifique

Précédent | Sommaire | Suivant
unlink | Niveau supérieur | filter_has_var


Fonctions GeoIP

Manuel PHP
Précédent Suivant

XLVIII. Fonctions GeoIP

Introduction

L'extension GeoIP permet de localiser une adresse IP. La ville, l'état, le pays, la longitude, la latitude et d'autres informations comme l'ISP et le type de connexion peuvent être obtenus grâce à GeoIP.

Pré-requis

Cette extension nécessite la bibliothèque GeoIP version 1.4.0 ou suivant. Vous pouvez récupérer la dernière version sur http://www.maxmind.com/app/c et la compiler vous-même.

Par défaut, vous ne pouvez qu'accéder à la base de données Free GeoIP Country ou GeoLite City . Bien que ce module peut fonctionner avec d'autres types de bases de données, vous devez acheter une license commerciale sur Maxmind.

Installation

Cette extension PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/geoip.

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.

GEOIP_COUNTRY_EDITION (entier)

GEOIP_REGION_EDITION_REV0 (entier)

GEOIP_CITY_EDITION_REV0 (entier)

GEOIP_ORG_EDITION (entier)

GEOIP_ISP_EDITION (entier)

GEOIP_CITY_EDITION_REV1 (entier)

GEOIP_REGION_EDITION_REV1 (entier)

GEOIP_PROXY_EDITION (entier)

GEOIP_ASNUM_EDITION (entier)

GEOIP_NETSPEED_EDITION (entier)

GEOIP_DOMAIN_EDITION (entier)

Les constantes suivantes sont utilisées pour la rapidité réseau :

GEOIP_UNKNOWN_SPEED (entier)

GEOIP_DIALUP_SPEED (entier)

GEOIP_CABLEDSL_SPEED (entier)

GEOIP_CORPORATE_SPEED (entier)

Table des matières
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_id_by_name -- Récupère le débit 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 détaillées sur un pays, trouvées dans la base de données GeoIP
geoip_region_by_name -- Récupère le code pays et la région

Précédent | Sommaire | Suivant
unregister_tick_function | Niveau supérieur | geoip_country_code_by_name


gnupg Fonctions

Manuel PHP
Précédent Suivant

LI. gnupg Fonctions

Introduction

Ce module vous permet d'interagir avec gnupg.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Pré-requis

L'extension gnupg requiert PHP 4.3. Pour utiliser cette extension dans le style orienté objet, PHP 5 est requis.

Cette extension requière la bibliothèque gpgme

Installation

L'extension gnupg n'est pas intégrée avec PHP. Il s'agit d'une extension PECL et elle peut être trouvée ici : http://pecl.php.net/package/gnupg.

Constantes pré-définies

GNUPG_SIG_MODE_NORMAL (entier)

GNUPG_SIG_MODE_DETACH (entier)

GNUPG_SIG_MODE_CLEAR (entier)

GNUPG_VALIDITY_UNKNOWN (entier)

GNUPG_VALIDITY_UNDEFINED (entier)

GNUPG_VALIDITY_NEVER (entier)

GNUPG_VALIDITY_MARGINAL (entier)

GNUPG_VALIDITY_FULL (entier)

GNUPG_VALIDITY_ULTIMATE (entier)

GNUPG_PROTOCOL_OpenPGP (entier)

GNUPG_PROTOCOL_CMS (entier)

GNUPG_SIGSUM_VALID (entier)

GNUPG_SIGSUM_GREEN (entier)

GNUPG_SIGSUM_RED (entier)

GNUPG_SIGSUM_KEY_REVOKED (entier)

GNUPG_SIGSUM_KEY_EXPIRED (entier)

GNUPG_SIGSUM_KEY_MISSING (entier)

GNUPG_SIGSUM_SIG_EXPIRED (entier)

GNUPG_SIGSUM_CRL_MISSING (entier)

GNUPG_SIGSUM_CRL_TOO_OLD (entier)

GNUPG_SIGSUM_BAD_POLICY (entier)

GNUPG_SIGSUM_SYS_ERROR (entier)

GNUPG_ERROR_WARNING (entier)

GNUPG_ERROR_EXCEPTION (entier)

GNUPG_ERROR_SILENT (entier)

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.

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("exemple");
foreach($iterator as $fingerprint => $userid){
    echo $fingerprint." -> ".$userid."\n";
}
?>

Exemples

Cet exemple signera en clair un texte donné.

Exemple 1. Exemple avec gnupg clearsign (Style procédural)

<?php
// initialise gnupg
$res = gnupg_init();
// pas vraiment besoin. 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");
// signer
$signed = gnupg_sign("juste un test");
echo $signed;
?>

Exemple 2. Exemple avec gnupg clearsign (Style orienté objet)

<?php
// nouvelle classe
$gnupg = new gnupg();
// pas vraiment besoin. Clearsign est par défaut
$gnupg->setsignmode(gnupg::SIG_MODE_CLEAR);
// ajoute une clé avec une passphrase 'test' pour signer
$gnupg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
// signer
$signed = $gnupg->sign("juste un test");
echo $signed;
?>
Table des matières
gnupg_adddecryptkey -- Ajoute une clé pour déchiffrement
gnupg_addencryptkey -- Ajoute une clé pour chiffrement
gnupg_addsignkey -- Ajoute une clé pour signer
gnupg_cleardecryptkeys -- Supprime toutes les clés qui étaient fixées pour déchiffrement auparavant
gnupg_clearencryptkeys -- Supprime toutes les clés qui étaient fixées pour chiffrement auparavant
gnupg_clearsignkeys -- Supprime toutes les clés qui étaient fixées pour signature auparavant
gnupg_decrypt -- Déchiffre un texte donné
gnupg_decryptverify -- Déchiffre et vérifie un texte donné
gnupg_encrypt -- Chiffre un texte donné
gnupg_encryptsign -- Chiffre et signe un texte donné
gnupg_export -- Exporte une clé
gnupg_geterror -- Retourne le texte d'erreur, si une fonction échoue
gnupg_getprotocol -- Retourne le protocole actif courant pour toutes les opérations
gnupg_import -- Importe une clé
gnupg_keyinfo -- Retourne un tableau avec les informations à propos de toutes les clés qui correspondent au motif donné
gnupg_setarmor -- Change la sortie blindée
gnupg_seterrormode -- Fixe le mode pour error_reporting
gnupg_setsignmode -- Fixe le mode pour signer
gnupg_sign -- Signe un texte donné
gnupg_verify -- Vérifie un texte signé

Précédent | Sommaire | Suivant
gmp_xor | Niveau supérieur | gnupg_adddecryptkey


Haru PDF Functions

Manuel PHP
Précédent Suivant

LIII. Haru PDF Functions

Introduction

The PECL/haru extension provides bindings for Haru Free PDF Library - free, cross platform, opensource software library for generating PDF files.

You can find the library here: http://libharu.sourceforge.net.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Pré-requis

You need to install libharu first to be able to use PECL/haru. PECL/haru is tested with libharu 2.0.8, older versions might or might not work for you. PECL/haru also requires PHP 5.1.3 or newer.

Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/haru.

The latest PECL/haru Win32 DLL can be downloaded here: php_haru.dll.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Exemples

Exemple 1. Basic PECL/haru example

<?php

$doc = new HaruDoc;

$doc->setPageMode(HaruDoc::PAGE_MODE_USE_THUMBS); /* show thumbnails */

$page = $doc->addPage(); /* add page to the document */
$page->setSize(HaruPage::SIZE_A4, HaruPage::LANDSCAPE); /* set the page to use A4 landscape format */

$courier = $doc->getFont("Courier-Bold"); /* we'll use the bundled font a few lines below */

$page->setRGBStroke(0, 0, 0); /* set colors */
$page->setRGBFill(0.7, 0.8, 0.9);
$page->rectangle(150, 150, 550, 250); /* draw a rectangle */

$page->fillStroke(); /* fill and stroke it */

$page->setDash(array(3, 3), 0); /* set dash style for lines at this page */
$page->setFontAndSize($courier, 60); /* set font and size */

$page->setRGBStroke(0.5, 0.5, 0.1); /* set line color */
$page->setRGBFill(1, 1, 1); /* set filling color */

$page->setTextRenderingMode(HaruPage::FILL_THEN_STROKE); /* fill and stroke text */

/* print the text */
$page->beginText();
$page->textOut(210, 270, "Hello World!");
$page->endText();

$doc->save("/tmp/test.pdf"); /* save the document into a file */

?>

Open the result document in your favourite PDF viewer and you should see a light-blue rectangle and white "Hello World!" on it.

Classes pré-définies

HaruException
HaruDoc
HaruPage
HaruFont
HaruImage
HaruEncoder
HaruOutline
HaruAnnotation
HaruDestination

Builtin Fonts And Encodings

Builtin Fonts

These Base14 fonts are built-in into PDF and all viewers can display them. Using these fonts may decrease the size of the result file and make the processing faster, avoiding loading external fonts. However the fonts support only latin1 character set and you have to load external fonts if you need to use an other character set.

The Base14 fonts:

  • Courier

  • Courier-Bold

  • Courier-Oblique

  • Courier-BoldOblique

  • Helvetica

  • Helvetica-Bold

  • Helvetica-Oblique

  • Helvetica-BoldOblique

  • Times-Roman

  • Times-Bold

  • Times-Italic

  • Times-BoldItalic

  • Symbol

  • ZapfDingbats

Builtin Encodings

Tableau 1. Single-byte character set encodings

Name | Description
StandardEncoding | The default encoding of PDF.
MacRomanEncoding | The standard encoding of Mac OS.
WinAnsiEncoding | The standard encoding of Windows.
FontSpecific | The font built-in encoding.
ISO8859-2 | Latin2 (East European)
ISO8859-3 | Latin3 (South European)
ISO8859-4 | Latin4 (North European)
ISO8859-5 | Cyrillic
ISO8859-6 | Arabic
ISO8859-7 | Greek
ISO8859-8 | Hebrew
ISO8859-9 | Latin5 (Turkish)
ISO8859-10 | Latin6 (Nordic)
ISO8859-11 | Thai
ISO8859-13 | Latin7 (Baltic Rim)
ISO8859-14 | Latin8 (Celtic)
ISO8859-15 | Latin9
ISO8859-16 | Latin10
CP1250 | MS Windows Codepage 1250.
CP1251 | MS Windows Codepage 1251.
CP1252 | MS Windows Codepage 1252.
CP1253 | MS Windows Codepage 1253.
CP1254 | MS Windows Codepage 1254.
CP1255 | MS Windows Codepage 1255.
CP1256 | MS Windows Codepage 1256.
CP1257 | MS Windows Codepage 1257.
CP1258 | MS Windows Codepage 1258.
KOI8-R | Cyrillic character set.

Tableau 2. Multi-byte character set encodings

Name | Description
GB-EUC-H | EUC-CN encoding.
GB-EUC-V | Vertical writing version of GB-EUC-H.
GBK-EUC-H | Microsoft Code Page 936 (lfCharSet 0x86) GBK encoding.
GBK-EUC-V | Vertical writing version of GBK-EUC-H.
ETen-B5-H | Microsoft Code Page 950 (lfCharSet 0x88) Big Five character set with ETen extensions.
ETen-B5-V | Vertical writing version of ETen-B5-H.
90ms-RKSJ-H | Microsoft Code Page 932, JIS X 0208 character.
90ms-RKSJ-V | Vertical writing version of 90ms-RKSJ-V.
90msp-RKSJ-H | Microsoft Code Page 932, JIS X 0208 character (proportional).
EUC-H | JIS X 0208 character set, EUC-JP encoding.
EUC-V | Vertical writing version of EUC-H.
KSC-EUC-H | KS X 1001:1992 character set, EUC-KR encoding.
KSC-EUC-V | Vertical writing version of KSC-EUC-V.
KSCms-UHC-H | Microsoft Code Page 949 (lfCharSet 0x81), KS X 1001:1992 character set plus 8822 additional hangul, Unified Hangul Code (UHC) encoding (proportional).
KSCms-UHC-HW-H | Microsoft Code Page 949 (lfCharSet 0x81), KS X 1001:1992 character set plus 8822 additional hangul, Unified Hangul Code (UHC) encoding (fixed width).
KSCms-UHC-HW-V | Vertical writing version of KSCms-UHC-HW-H.
Table des matières
HaruException -- Haru PDF Exception Class
HaruDoc -- Haru PDF Document Class
HaruPage -- Haru PDF Page Class
HaruFont -- Haru PDF Font Class
HaruImage -- Haru PDF Image Class
HaruEncoder -- Haru PDF Encoder Class
HaruOutline -- Haru PDF Outline Class
HaruAnnotation -- Haru PDF Annotation Class
HaruDestination -- Haru PDF Destination Class
HaruAnnotation::setBorderStyle -- Set the border style of the annotation
HaruAnnotation::setHighlightMode -- Set the highlighting mode of the annotation
HaruAnnotation::setIcon -- Set the icon style of the annotation
HaruAnnotation::setOpened -- Set the initial state of the annotation
HaruDestination::setFit -- Set the appearance of the page to fit the window
HaruDestination::setFitB -- Set the appearance of the page to fit the bounding box of the page within the window
HaruDestination::setFitBH -- Set the appearance of the page to fit the width of the bounding box
HaruDestination::setFitBV -- Set the appearance of the page to fit the height of the boudning box
HaruDestination::setFitH -- Set the appearance of the page to fit the window width
HaruDestination::setFitR -- Set the appearance of the page to fit the specified rectangle
HaruDestination::setFitV -- Set the appearance of the page to fit the window height
HaruDestination::setXYZ -- Set the appearance of the page
HaruDoc::addPage -- Add new page to the document
HaruDoc::addPageLabel -- Set the numbering style for the specified range of pages
HaruDoc::__construct -- Construct new HaruDoc instance
HaruDoc::createOutline -- Create a HaruOutline instance
HaruDoc::getCurrentEncoder -- Get HaruEncoder currently used in the document
HaruDoc::getCurrentPage -- Return current page of the document
HaruDoc::getEncoder -- Get HaruEncoder instance for the specified encoding
HaruDoc::getFont -- Get HaruFont instance
HaruDoc::getInfoAttr -- Get current value of the specified document attribute
HaruDoc::getPageLayout -- Get current page layout
HaruDoc::getPageMode -- Get current page mode
HaruDoc::getStreamSize -- Get the size of the temporary stream
HaruDoc::insertPage -- Insert new page just before the specified page
HaruDoc::loadJPEG -- Load JPEG image and return new HaruImage instance
HaruDoc::loadPNG -- Load PNG image and return HaruImage instance
HaruDoc::loadRaw -- Load RAW image and return HaruImage instance
HaruDoc::loadTTC -- Load the font with the specified index from TTC file
HaruDoc::loadTTF -- Load TTF font file
HaruDoc::loadType1 -- Load Type1 font
HaruDoc::output -- Write the document data to the output buffer
HaruDoc::readFromStream -- Read data from the temporary stream
HaruDoc::resetError -- Reset error state of the document handle
HaruDoc::resetStream -- Rewind the temporary stream
HaruDoc::save -- Save the document into the specified file
HaruDoc::saveToStream -- Save the document into a temporary stream
HaruDoc::setCompressionMode -- Set compression mode for the document
HaruDoc::setCurrentEncoder -- Set the current encoder for the document
HaruDoc::setEncryptionMode -- Set encryption mode for the document
HaruDoc::setInfoAttr -- Set the info attribute of the document
HaruDoc::setInfoDateAttr -- Set the datetime info attributes of the document
HaruDoc::setOpenAction -- Define which page is shown when the document is opened
HaruDoc::setPageLayout -- Set how pages should be displayed
HaruDoc::setPageMode -- Set how the document should be displayed
HaruDoc::setPagesConfiguration -- Set the number of pages per set of pages
HaruDoc::setPassword -- Set owner and user passwords for the document
HaruDoc::setPermission -- Set permissions for the document
HaruDoc::useCNSEncodings -- Enable Chinese simplified encodings
HaruDoc::useCNSFonts -- Enable builtin Chinese simplified fonts
HaruDoc::useCNTEncodings -- Enable Chinese traditional encodings
HaruDoc::useCNTFonts -- Enable builtin Chinese traditional fonts
HaruDoc::useJPEncodings -- Enable Japanese encodings
HaruDoc::useJPFonts -- Enable builtin Japanese fonts
HaruDoc::useKREncodings -- Enable Korean encodings
HaruDoc::useKRFonts -- Enable builtin Korean fonts
HaruEncoder::getByteType -- Get the type of the byte in the text
HaruEncoder::getType -- Get the type of the encoder
HaruEncoder::getUnicode -- Convert the specified character to unicode
HaruEncoder::getWritingMode -- Get the writing mode of the encoder
HaruFont::getAscent -- Get the vertical ascent of the font
HaruFont::getCapHeight -- Get the distance from the baseline of uppercase letters
HaruFont::getDescent -- Get the vertical descent of the font
HaruFont::getEncodingName -- Get the name of the encoding
HaruFont::getFontName -- Get the name of the font
HaruFont::getTextWidth -- Get the total width of the text, number of characters, number of words and number of spaces
HaruFont::getUnicodeWidth -- Get the width of the character in the font
HaruFont::getXHeight -- Get the distance from the baseline of lowercase letters
HaruFont::measureText -- Calculate the number of characters which can be included within the specified width
HaruImage::getBitsPerComponent -- Get the number of bits used to describe each color component of the image
HaruImage::getColorSpace -- Get the name of the color space
HaruImage::getHeight -- Get the height of the image
HaruImage::getSize -- Get size of the image
HaruImage::getWidth -- Get the width of the image
HaruImage::setColorMask -- Set the color mask of the image
HaruImage::setMaskImage -- Set the image mask
HaruOutline::setDestination -- Set the destination for the outline
HaruOutline::setOpened -- Set the initial state of the outline
HaruPage::arc -- Append an arc to the current path
HaruPage::beginText -- Begin a text object and set the current text position to (0,0)
HaruPage::circle -- Append a circle to the current path
HaruPage::closePath -- Append a straight line from the current point to the start point of the path
HaruPage::concat -- Concatenate current transformation matrix of the page and the specified matrix
HaruPage::createDestination -- Create new HaruDestination instance
HaruPage::createLinkAnnotation -- Create new HaruAnnotation instance
HaruPage::createTextAnnotation -- Create new HaruAnnotation instance
HaruPage::createURLAnnotation -- Create and return new HaruAnnotation instance
HaruPage::curveTo2 -- Append a Bezier curve to the current path
HaruPage::curveTo3 -- Append a Bezier curve to the current path
HaruPage::curveTo -- Append a Bezier curve to the current path
HaruPage::drawImage -- Show image at the page
HaruPage::ellipse -- Append an ellipse to the current path
HaruPage::endPath -- End current path object without filling and painting operations
HaruPage::endText -- End current text object
HaruPage::eofill -- Fill current path using even-odd rule
HaruPage::eoFillStroke -- Fill current path using even-odd rule, then paint the path
HaruPage::fill -- Fill current path using nonzero winding number rule
HaruPage::fillStroke -- Fill current path using nonzero winding number rule, then paint the path
HaruPage::getCharSpace -- Get the current value of character spacing
HaruPage::getCMYKFill -- Get the current filling color
HaruPage::getCMYKStroke -- Get the current stroking color
HaruPage::getCurrentFont -- Get the currently used font
HaruPage::getCurrentFontSize -- Get the current font size
HaruPage::getCurrentPos -- Get the current position for path painting
HaruPage::getCurrentTextPos -- Get the current position for text printing
HaruPage::getDash -- Get the current dash pattern
HaruPage::getFillingColorSpace -- Get the current filling color space
HaruPage::getFlatness -- Get the flatness of the page
HaruPage::getGMode -- Get the current graphics mode
HaruPage::getGrayFill -- Get the current filling color
HaruPage::getGrayStroke -- Get the current stroking color
HaruPage::getHeight -- Get the height of the page
HaruPage::getHorizontalScaling -- Get the current value of horizontal scaling
HaruPage::getLineCap -- Get the current line cap style
HaruPage::getLineJoin -- Get the current line join style
HaruPage::getLineWidth -- Get the current line width
HaruPage::getMiterLimit -- Get the value of miter limit
HaruPage::getRGBFill -- Get the current filling color
HaruPage::getRGBStroke -- Get the current stroking color
HaruPage::getStrokingColorSpace -- Get the current stroking color space
HaruPage::getTextLeading -- Get the current value of line spacing
HaruPage::getTextMatrix -- Get the current text transformation matrix of the page
HaruPage::getTextRenderingMode -- Get the current text rendering mode
HaruPage::getTextRise -- Get the current value of text rising
HaruPage::getTextWidth -- Get the width of the text using current fontsize, character spacing and word spacing
HaruPage::getTransMatrix -- Get the current transformation matrix of the page
HaruPage::getWidth -- Get the width of the page
HaruPage::getWordSpace -- Get the current value of word spacing
HaruPage::lineTo -- Draw a line from the current point to the specified point
HaruPage::measureText -- Calculate the number of characters which can be included within the specified width
HaruPage::moveTextPos -- Move text position to the specified offset
HaruPage::moveTo -- Set starting point for new drawing path
HaruPage::moveToNextLine -- Move text position to the start of the next line
HaruPage::rectangle -- Append a rectangle to the current path
HaruPage::setCharSpace -- Set character spacing for the page
HaruPage::setCMYKFill -- Set filling color for the page
HaruPage::setCMYKStroke -- Set stroking color for the page
HaruPage::setDash -- Set the dash pattern for the page
HaruPage::setFlatness -- Set flatness for the page
HaruPage::setFontAndSize -- Set font and fontsize for the page
HaruPage::setGrayFill -- Set filling color for the page
HaruPage::setGrayStroke -- Sets stroking color for the page
HaruPage::setHeight -- Set height of the page
HaruPage::setHorizontalScaling -- Set horizontal scaling for the page
HaruPage::setLineCap -- Set the shape to be used at the ends of lines
HaruPage::setLineJoin -- Set line join style for the page
HaruPage::setLineWidth -- Set line width for the page
HaruPage::setMiterLimit -- Set the current value of the miter limit of the page
HaruPage::setRGBFill -- Set filling color for the page
HaruPage::setRGBStroke -- Set stroking color for the page
HaruPage::setRotate -- Set rotation angle of the page
HaruPage::setSize -- Set size and direction of the page
HaruPage::setSlideShow -- Set transition style for the page
HaruPage::setTextLeading -- Set text leading (line spacing) for the page
HaruPage::setTextMatrix -- Set the current text transformation matrix of the page
HaruPage::setTextRenderingMode -- Set text rendering mode for the page
HaruPage::setTextRise -- Set the current value of text rising
HaruPage::setWidth -- Set width of the page
HaruPage::setWordSpace -- Set word spacing for the page
HaruPage::showText -- Print text at the current position of the page
HaruPage::showTextNextLine -- Move the current position to the start of the next line and print the text
HaruPage::stroke -- Paint current path
HaruPage::textOut -- Print the text on the specified position
HaruPage::textRect -- Print the text inside the specified region

Précédent | Sommaire | Suivant
gopher_parsedir | Niveau supérieur | HaruException


Fonctions hash

Manuel PHP
Précédent Suivant

LIV. Fonctions hash

Introduction

Moteur d'empreinte numérique. Permet le traitement direct ou incrémentiel de messages de grandeur arbitraire en utilisant une variété d'algorithmes de hachage.

Pré-requis

L'extension Hash ne requière aucune librairie externe et est activée par défaut dans PHP 5.1.2. Elle peut être explicitement désactivée en utilisant l'option --disable-hash dans la ligne de configure. Les versions précédentes de PHP peuvent inclure l'extension Hash en installant le module PECL.

Types de ressources

Cette extension définit une ressource Hashing Context retournée par la fonction hash_init().

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

HASH_HMAC (entier)

Drapeau optionnel pour hash_init(). Indique que l'algorithme de clé HMAC doit être appliqué au contexte courant de hachage.

Table des matières
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_final -- Finalise un hachage incrémentiel et retourne le résultat de l'empreinte numérique
hash_hmac_file -- Génère une valeur de clé de hachage en utilisant la méthode HMAC et le contenu d'un fichier donné
hash_hmac -- Génère une valeur de clé de hachage en utilisant la méthode HMAC
hash_init -- Initialise un contexte de hachage incrémentiel
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)

Précédent | Sommaire | Suivant
HaruPage::textRect | Niveau supérieur | hash_algos


i18n Fonctions

Manuel PHP
Précédent Suivant

LVIII. i18n Fonctions

Introduction

i18n support.

Avertissement

This extension is still in development and it isn't available to public yet.

Pré-requis

The Unicode Extension.

Table des matières
locale_get_default -- Get the default Locale
locale_set_default -- Set the default Locale

Précédent | Sommaire | Suivant
hw_api->userlist | Niveau supérieur | locale_get_default


Fonctions IBM DB2, Cloudscape et Apache Derby

Manuel PHP
Précédent Suivant

LX. Fonctions IBM DB2, Cloudscape et Apache Derby

Introduction

Ces fonctions vous permettent un accès aux IBM DB2 Universal Database, IBM Cloudscape et Apache Derby qui utilisent DB2 Call Level Interface (DB2 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.

Requirements on Linux or Unix

L'utilisateur appelant l'exécutable PHP ou module SAPI doit spécifier l'instance DB2 avant d'accéder à ces fonctions. Vous pouvez spécifier le nom de l'instance DB2 dans php.ini en utilisant l'option de configuration ibm_db2.instance_name ou vous pouvez approvisionner le profile de l'instance DB2 avant d'appeler l'exécutable PHP.

Si vous avez créée une instance DB2 nommée db2inst1 dans /home/db2inst1, par exemple, vous pouvez ajouter la ligne suivante à votre php.ini :

ibm_db2.instance_name=db2inst1
Si vous ne spécifiez pas cette option dans php.ini, vous devez exécuter la commande suivante pour modifier vos variables d'environnement pour autoriser l'accès à DB2 :
bash$ source /home/db2inst1/sqllib/db2profile
Pour permettre votre PHP sur votre serveur web d'accéder à ces fonctions, vous devez ajouter la même commande à votre script de démarrage de votre serveur Web (typiquement /etc/init.d/httpd or /etc/init.d/apache).

Installation

Pour compiler l'extension ibm_db2, les fichiers d'en-tête et de bibliothèques de l'application de développement de DB2 doivent être présents sur votre système. DB2 ne les installe pas par défaut, vous devrez donc retourner à l'installation de DB2 et ajouter cette option. Les en-têtes des fichiers sont inclus avec le client de développement d'application DB2, disponible librement au téléchargement depuis le support du site de la base de données universelle.

Si vous ajoutez les fichiers d'en-têtes et de bibliothèques de l'application de développement de DB2 sur un système Linux ou Unix où DB2 est déjà installé, vous devez lancer la commande db2iupdt -e pour mettre à jour les liens symboliques dans les fichiers d'en-têtes et de bibliothèques de vos exemples DB2.

ibm_db2 est une extension PECL, alors suivez les instructions présentes dans Chapitre 7 pour installer l'extension ibm_db2 pour PHP. Tapez la commande configure pour pointer vers l'emplacement de vos fichiers d'en-têtes et de bibliothèques de DB2 comme suit :

bash$ ./configure --with-IBM_DB2=/chemin/vers/DB2
La commande configure prend la valeur par défaut de /opt/IBM/db2/V8.1.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration ibm_db2

Nom | Par défaut | Modifiable | Historique
ibm_db2.binmode | "1" | PHP_INI_ALL |
ibm_db2.i5_allow_commit | "0" | PHP_INI_SYSTEM |
ibm_db2.i5_dbcs_alloc | "0" | PHP_INI_SYSTEM |
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM |

Voici un éclaircissement sur l'utilisation des directives de configuration.

ibm_db2.binmode (entier)

Cette option contrôle le mode utilisé pour convertir à partir ou vers les données binaires dans l'application PHP.

  • 1 (DB2_BINARY)

  • 2 (DB2_CONVERT)

  • 3 (DB2_PASSTHRU)

ibm_db2.i5_allow_commit integer

Cette option contrôle le mode d'envoi utilisé pour les schémas de collections i5 dans l'application PHP.

  • 0 aucun envoi (voir i5_commit pour dérivé)

  • 1 autorise l'envoi (voir i5_commit pour dérivé)

ibm_db2.i5_dbcs_alloc (entier)

Cette option contrôle l'allocation de canevas internes de ibm_db2 pour des tampons de colonne large DBCS.

  • 0 aucune allocation étendue (voir i5_dbcs_alloc pour dérivé)

  • 1 utilise les allocations étendues (voir i5_dbcs_alloc pour dérivé)

ibm_db2.instance_name (chaîne de caractères)

Sur les systèmes d'exploitation Linux et UNIX, cette option définit le nom de l'instance à utiliser pour les connexions aux bases de données cataloguées. Si cette option est utilisée, sa valeur prévaut sur la variable d'environnement DB2INSTANCE.

Cette option est ignorée sur les systèmes d'exploitation Windows.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

DB2_BINARY (entier)

Spécifie que les données binaires seront retournées comme elles sont. Ceci est le mode par défaut.

DB2_CONVERT (entier)

Spécifie que les données binaires seront converties en hexadécimal et retournées comme une chaîne ASCII.

DB2_PASSTHRU (entier)

Spécifie que les données binaires seront converties en valeur NULL.

DB2_SCROLLABLE (entier)

Spécifie le curseur flottant pour une déclaration de ressource. Ce mode permet un accès aléatoire aux lignes du jeu de résultats, mais présentement, il est supporté seulement par IBM DB2 Universal Database.

DB2_FORWARD_ONLY (entier)

Spécifie un curseur d'avancement seul pour une déclaration de ressource. Il s'agit de la valeur par défaut de ce type de curseur, et il est supporté par tous les serveurs de base de données.

DB2_PARAM_IN (entier)

Spécifie que la variable PHP doit être lié comme étant un paramètre ENTRANT pour une procédure d'enregistrement.

DB2_PARAM_OUT (entier)

Spécifie que la variable PHP doit être lié comme étant un paramètre SORTANT pour une procédure d'enregistrement.

DB2_PARAM_INOUT (entier)

Spécifie que la variable PHP doit être lié comme étant un paramètre ENTRANT/SORTANT pour une procédure d'enregistrement.

DB2_PARAM_FILE (entier)

Spécifie que la colonne doit être lié directement à un fichier pour entrée.

DB2_AUTOCOMMIT_ON (entier)

Spécifie que autocommit doit être activé.

DB2_AUTOCOMMIT_OFF (entier)

Spécifie que autocommit doit être désactivé.

DB2_DOUBLE (entier)

Spécifie que la variable doit être lié à un type DOUBLE, FLOAT ou REAL.

DB2_LONG (entier)

Spécifie que la variable doit être lié à un type SMALLINT, INTEGER ou BIGINT.

DB2_CHAR (entier)

Spécifie que la variable doit être lié à un type CHAR ou VARCHAR

DB2_CASE_NATURAL (entier)

Spécifie que les noms de colonnes doivent être retournés dans leurs casses naturelles.

DB2_CASE_LOWER (entier)

Spécifie que les noms de colonnes doivent être retournés en minuscule.

DB2_CASE_UPPER (entier)

Spécifie que les noms de colonnes doivent être retournés en majuscule.

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.

Table des matières
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_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_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_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 un jeu de résultats listant les tables et leurs métadatas qui leur sont associées d'une base de données

Précédent | Sommaire | Suivant
PDO_IBM DSN | Niveau supérieur | db2_autocommit


Image magick Functions

Manuel PHP
Précédent Suivant

LXVI. Image magick Functions

Introduction

Image magick extension lets you create and manipulate images. Its function is similar to Image extension but provides more powerful and faster functions.

Pré-requis

To use this extension, either "ImageMagick" or "GraphicsMagick" library is required.

Installation

Windows binaries may be found at http://snaps.php.net/. To install, download php_imagick.dll to the folder specified by your php.ini file's extension_dir directive. Enable it by adding extension=php_imagick.dll to your php.ini and restarting your web server.

extension_dir=c:/php5/exts/
extension=php_imagick.dll

Linux, BSD, and other *nix variants can be compiled using the following steps:

  • Either:

    • Run the pear installer for PECL/imagick: pecl install imagick

    • Copy imagick.so from the directory indicated by the build process to the location specified in your php.ini file under extension_dir.

    • Add extension=imagick.so to your php.ini

    Or:

    • Set the path to your php.ini via:

      pecl config-set php_ini /path/to/php.ini

    • Run the pear installer for PECL/imagick: pecl install imagick

  • Restart your web server to reload your php.ini settings.

Development Versions : There are currently no stable versions of PECL/imagick, to force installation of the beta version of PECL/imagick execute: pecl install imagick-beta

Compiling PECL/imagick without using the PEAR command : Rather than using pecl install imagick to automatically download and install PECL/imagick, you may download the tarball from PECL. From the root of the unpacked tarball, run: phpize && ./configure --enable-imagick && make to generate imagick.so. Once built, continue the installation from step 4 above.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/imagick.

Types de ressources

This extension uses the "imagemagick handle" resource.

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.

IMAGICK_FILTER_UNDEFINED (integer)

IMAGICK_FILTER_POINT (integer)

IMAGICK_FILTER_BOX (integer)

IMAGICK_FILTER_TRIANGLE (integer)

IMAGICK_FILTER_HERMITE (integer)

IMAGICK_FILTER_HANNING (integer)

IMAGICK_FILTER_HAMMING (integer)

IMAGICK_FILTER_BLACKMAN (integer)

IMAGICK_FILTER_GAUSSIAN (integer)

IMAGICK_FILTER_QUADRATIC (integer)

IMAGICK_FILTER_CUBIC (integer)

IMAGICK_FILTER_CATROM (integer)

IMAGICK_FILTER_MITCHELL (integer)

IMAGICK_FILTER_LANCZOS (integer)

IMAGICK_FILTER_BESSEL (integer)

IMAGICK_FILTER_SINC (integer)

IMAGICK_FILTER_UNKNOWN (integer)

IMAGICK_FONTSTYLE_NORMAL (integer)

IMAGICK_FONTSTYLE_ITALIC (integer)

IMAGICK_FONTSTYLE_OBLIQUE (integer)

IMAGICK_FONTSTYLE_ANY (integer)

IMAGICK_RAISE (integer)

IMAGICK_LOWER (integer)

IMAGICK_COMPOSITE_OP_UNDEFINED (integer)

IMAGICK_COMPOSITE_OP_OVER (integer)

IMAGICK_COMPOSITE_OP_IN (integer)

IMAGICK_COMPOSITE_OP_OUT (integer)

IMAGICK_COMPOSITE_OP_ATOP (integer)

IMAGICK_COMPOSITE_OP_XOR (integer)

IMAGICK_COMPOSITE_OP_PLUS (integer)

IMAGICK_COMPOSITE_OP_MINUS (integer)

IMAGICK_COMPOSITE_OP_ADD (integer)

IMAGICK_COMPOSITE_OP_SUBTRACT (integer)

IMAGICK_COMPOSITE_OP_DIFFERENCE (integer)

IMAGICK_COMPOSITE_OP_MULTIPLY (integer)

IMAGICK_COMPOSITE_OP_BUMPMAP (integer)

IMAGICK_COMPOSITE_OP_COPY (integer)

IMAGICK_COMPOSITE_OP_COPYRED (integer)

IMAGICK_COMPOSITE_OP_COPYGREEN (integer)

IMAGICK_COMPOSITE_OP_COPYBLUE (integer)

IMAGICK_COMPOSITE_OP_COPYOPACITY (integer)

IMAGICK_COMPOSITE_OP_CLEAR (integer)

IMAGICK_COMPOSITE_OP_DISSOLVE (integer)

IMAGICK_COMPOSITE_OP_DISPLACE (integer)

IMAGICK_COMPOSITE_OP_MODULATE (integer)

IMAGICK_COMPOSITE_OP_THRESHOLD (integer)

IMAGICK_COMPOSITE_OP_NONE (integer)

IMAGICK_COMPOSITE_OP_DARKEN (integer)

IMAGICK_COMPOSITE_OP_LIGHTEN (integer)

IMAGICK_COMPOSITE_OP_HUE (integer)

IMAGICK_COMPOSITE_OP_SATURATE (integer)

IMAGICK_COMPOSITE_OP_COLORIZE (integer)

IMAGICK_COMPOSITE_OP_LUMINIZE (integer)

IMAGICK_COMPOSITE_OP_SCREEN (integer)

IMAGICK_COMPOSITE_OP_OVERLAY (integer)

IMAGICK_PROFILE_OWN (integer)

IMAGICK_PROFILE_COPY (integer)

IMAGICK_TYPE_UNDEFINED (integer)

IMAGICK_TYPE_BILEVEL (integer)

IMAGICK_TYPE_GRAYSCALE (integer)

IMAGICK_TYPE_GRAYSCALEMATTE (integer)

IMAGICK_TYPE_PALETTE (integer)

IMAGICK_TYPE_PALETTEMATTE (integer)

IMAGICK_TYPE_TRUECOLOR (integer)

IMAGICK_TYPE_TRUECOLORMATTE (integer)

IMAGICK_TYPE_COLORSEPARATION (integer)

IMAGICK_TYPE_COLORSEPARATIONMATTE (integer)

IMAGICK_TYPE_OPTIMIZE (integer)

IMAGICK_COLORSPACE_UNDEFINED (integer)

IMAGICK_COLORSPACE_RGB (integer)

IMAGICK_COLORSPACE_GRAY (integer)

IMAGICK_COLORSPACE_TRANSPARENT (integer)

IMAGICK_COLORSPACE_OHTA (integer)

IMAGICK_COLORSPACE_XYZ (integer)

IMAGICK_COLORSPACE_YCBCR (integer)

IMAGICK_COLORSPACE_YCC (integer)

IMAGICK_COLORSPACE_YIQ (integer)

IMAGICK_COLORSPACE_YPBPR (integer)

IMAGICK_COLORSPACE_YUV (integer)

IMAGICK_COLORSPACE_CMYK (integer)

IMAGICK_COLORSPACE_SRGB (integer)

IMAGICK_COMPRESSION_UNDEFINED (integer)

IMAGICK_COMPRESSION_NONE (integer)

IMAGICK_COMPRESSION_BZIP (integer)

IMAGICK_COMPRESSION_FAX (integer)

IMAGICK_COMPRESSION_GROUP4 (integer)

IMAGICK_COMPRESSION_JPEG (integer)

IMAGICK_COMPRESSION_LOSSLESSJPEG (integer)

IMAGICK_COMPRESSION_LZW (integer)

IMAGICK_COMPRESSION_RLE (integer)

IMAGICK_COMPRESSION_ZIP (integer)

Table des matières
imagick_begindraw -- Begin draw
imagick_blob2image -- Read image from BLOB
imagick_blur -- Blur image
imagick_border -- Surrounds the image with a border
imagick_charcoal -- Highlight edges
imagick_chop -- Remove a region of an image and collapse the image to occupy the removed portion
imagick_clonehandle -- Clone image
imagick_composite -- Composite the second image onto the first at the specified offsets
imagick_contrast -- Enhance the intensity differences between the lighter and darker elements of the image
imagick_convert -- Convert image
imagick_crop -- Extract a region of the image
imagick_despeckle -- Reduce the speckle noise
imagick_destroyhandle -- Free image from memory
imagick_drawannotation -- Write text
imagick_drawarc -- Draw arc
imagick_drawcircle -- Draw circle
imagick_drawellipse -- Draw ellipse
imagick_drawline -- Draw line
imagick_drawpoint -- Draw point
imagick_drawrectangle -- Draw rectangle
imagick_edge -- Find edges
imagick_emboss -- Return a grayscale image with a three-dimensional effect
imagick_enhance -- Apply a digital filter that improves the quality of a noisy image
imagick_equalize -- Apply a histogram equalization to the image
imagick_error -- Check whether there is an error
imagick_faileddescription -- Get description of failure
imagick_failedreason -- Get reason of failure
imagick_first -- Set the internal pointer of an image list to its first element
imagick_flatten -- Merge a sequence of images
imagick_flip -- Create a vertical mirror image by reflecting the pixels around the central x-axis
imagick_flop -- Create a horizontal mirror image by reflecting the pixels around the central y-axis
imagick_frame -- Add a simulated three-dimensional border around the image
imagick_free -- Alias de imagick_destroyhandle()
imagick_gamma -- Gamma-correct a particular image channel
imagick_gaussianblur -- Blur image
imagick_getcanvas -- Get canvas
imagick_getcolorspace -- Get color space
imagick_getdpix -- Get DPI in X axis
imagick_getdpiy -- Get DPI in Y axis
imagick_getheight -- Get height
imagick_getimagedepth -- Get color depth
imagick_getimagefromlist -- Return copy of an image from the list
imagick_getimagetype -- Get image type
imagick_getlistindex -- Get position in the list of the specified image
imagick_getlistsize -- Get list size
imagick_getmagick -- Get Magick string
imagick_getmimetype -- Get MIME type
imagick_getnumbercolors -- Get number of colors
imagick_getwidth -- Get width
imagick_goto -- Go to specified image in a list
imagick_image2blob -- Return image as BLOB
imagick_implode -- Implode image pixels
imagick_iserror -- Check whether there is an error with image
imagick_isgrayimage -- Check whether image is gray
imagick_isimagesequal -- Compare two images
imagick_ismonochromeimage -- Check whether image is monochrome
imagick_isopaqueimage -- Check whether image is opaque
imagick_ispaletteimage -- Check whether image is palette
imagick_level -- Adjust levels of a particular image channel by scaling the colors falling between specified white and black points to the full available quantum range
imagick_magnify -- Double-size the image using bilinear interpolation
imagick_medianfilter -- Replace each pixel by the median in a set of neighboring pixels
imagick_minify -- Half-size the image using the weighted average of a 4x4 cell
imagick_modulate -- Control brightness, saturation and hue
imagick_mosaic -- Inlay a number of images to form a single coherent picture
imagick_motionblur -- Simulate motion blur
imagick_negate -- Negate the colors
imagick_newimagelist -- Create new image list
imagick_next -- Advance the internal pointer of an image list
imagick_normalize -- Enhance the contrast of a color image by mapping the darkest 2 percent of all pixel to black and the brightest 1 percent to white
imagick_oilpaint -- Simulate oil painting
imagick_ordereddither -- Use the ordered dithering technique of reducing color images to monochrome
imagick_poplist -- Remove the last image in the list
imagick_prev -- Rewind the internal pointer of an image list
imagick_profile -- Add or remove a ICC, IPTC, or generic profile from an image
imagick_pushlist -- Add an image to the end of the list
imagick_raise -- Create a simulated three-dimensional button-like effect
imagick_read -- Alias de imagick_readimage()
imagick_readimage -- Read image
imagick_reducenoise -- Smooth the contours of an image while still preserving edge information
imagick_resize -- Resize image
imagick_roll -- Offset an image as defined by x and y
imagick_rotate -- Rotate image
imagick_sample -- Scale image using pixel sampling
imagick_scale -- Scale image using pnmscale() of PBMPLUS
imagick_set_image_comment -- Set "comment" attribute of image
imagick_set_image_quality -- Set image quality
imagick_setcompressionquality -- Set compression quality
imagick_setcompressiontype -- Set compression type
imagick_setdpi -- Set DPI
imagick_setfillcolor -- Set fill color
imagick_setfillopacity -- Set fill opacity
imagick_setfontface -- Set font face
imagick_setfontsize -- Set font size
imagick_setfontstyle -- Set font style
imagick_shade -- Shine a distant light on an image to create a three-dimensional effect
imagick_sharpen -- Sharpen image
imagick_shear -- Slide one edge of an image along the X or Y axis, creating a parallelogram
imagick_solarize -- Solarize image
imagick_spread -- Randomly displace each pixel in a block
imagick_swirl -- Swirl pixels around the center of image
imagick_threshold -- Change the value of individual pixels based on the intensity of each pixel compared to threshold
imagick_transformrgb -- Convert the image from RGB to an alternate colorspace
imagick_transparent -- Make image transparent
imagick_unsharpmask -- Sharpen image
imagick_wave -- Creates a ripple effect in the image by shifting the pixels vertically along a sine wave
imagick_writeimage -- Write image
imagick_writeimages -- Write images
imagick_zoom -- Zoom image using selected filter

Précédent | Sommaire | Suivant
png2wbmp | Niveau supérieur | imagick_begindraw


Fonctions JSON

Manuel PHP
Précédent Suivant

LXXIII. Fonctions JSON

Introduction

Cette extension implémente le format d'échange de données JavaScript Object Notation (JSON). Le décodage est géré par un moteur d'analyse basé sur le JSON_checker écrit par Douglas Crockford.

Pré-requis

Depuis PHP 5.2.0, l'extension JSON est fournit et compilé dans PHP par défaut.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/json

Table des matières
json_decode -- DÃ©code une chaÃ®ne JSON
json_encode -- Retourne le représentation JSON d'une valeur

Précédent | Sommaire | Suivant
java_last_exception_get | Niveau supérieur | json_decode


KADM5

Manuel PHP
Précédent Suivant

LXXIV. KADM5

Introduction

Ce paquet vous permet d'accéder à l'administration des serveurs Kerberos V. Vous pourrez créer, modifier et effacer les directives et les éléments principaux Kerberos V.

Plus d'informations à propos de Kerberos peuvent être trouvées sur http://web.mit.edu/kerberos/www/.

La documentation sur Kerberos et KADM5 peut être trouvée sur http://web.mit.edu/kerberos/www/krb5-1.2/krb5-1.2.8/doc/admin_toc.html.

Types de ressources

Cette extension définit un gestionnaire KADM5 retourné par la fonction kadm5_init_with_password().

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 pour les attributs des balises

Les fonctions kadm5_create_principal(),
kadm5_modify_principal() et
kadm5_modify_principal() vous permettent
de spécifier des attributs spéciaux utilisant un champ de bits.
Les symboles sont définis ci-dessous :

Tableau 1. Attributs à utiliser par KDC

constante
KRB5_KDB_DISALLOW_POSTDATED
KRB5_KDB_DISALLOW_FORWARDABLE
KRB5_KDB_DISALLOW_TGT_BASED
KRB5_KDB_DISALLOW_RENEWABLE
KRB5_KDB_DISALLOW_PROXIABLE
KRB5_KDB_DISALLOW_DUP_SKEY
KRB5_KDB_DISALLOW_ALL_TIX
KRB5_KDB_REQUIRES_PRE_AUTH
KRB5_KDB_REQUIRES_HW_AUTH
KRB5_KDB_REQUIRES_PWCHANGE
KRB5_KDB_DISALLOW_SVR
KRB5_KDB_PWCHANGE_SERVER
KRB5_KDB_SUPPORT_DESMD5
KRB5_KDB_NEW_PRINC

Constantes pour les options

Les fonctions kadm5_create_principal(), kadm5_modify_principal() et kadm5_get_principal() permettent de spécifier ou retourner les options des éléments principaux en tant que tableaux associatifs. Les clés pour le tableau associatif sont définies en tant que constantes ci-dessous :

Tableau 2. Options pour créer/modifier/récupérer des éléments principaux

constante | funcdef | description
KADM5_PRINCIPAL | long | Le délai d'expiration des éléments principaux en tant que timestamp Kerberos.
KADM5_PRINC_EXPIRE_TIME | long | Le délai d'expiration des éléments principaux en tant que timestamp Kerberos.
KADM5_LAST_PW_CHANGE | long | Le délai pendant lequel le mot de passe du principal a été changé pour la dernière fois.
KADM5_PW_EXPIRATION | long | Le délai d'expiration du mot de passe du principal courant, en tant que timestamp Kerberos.
KADM5_MAX_LIFE | long | La durée de vie maximale de tous les tickets Kerberos issus de ce principal.
KADM5_MAX_RLIFE | long | La durée maximale renouvelable de tous les tickets Kerberos issus de ce principal.
KADM5_MOD_NAME | string | Le nom du principal Kerberos qui a modifié ce principal le plus récemment.
KADM5_MOD_TIME | long | L'heure à laquelle ce principal a été modifié pour la dernière fois, en tant que timestamp Kerberos.
KADM5_KVNO | long | La version de la clé courante du principal.
KADM5_POLICY | string | Le nom de la directive contrôlant ce principal.
KADM5_CLEARPOLICY | long | La procédure standard servant à assigner la directive par défaut pour créer des éléments principaux. KADM5_CLEARPOLICY supprime ce comportement.
KADM5_LAST_SUCCESS | long | L'heure KDC de la dernière AS_REQ qui a réussi.
KADM5_LAST_FAILED | long | L'heure KDC de la dernière AS_REQ qui a échoué.
KADM5_FAIL_AUTH_COUNT | long | Le nombre d'échec récursif AS_REQs.
KADM5_RANDKEY | long | Génère un mot de passe aléatoire pour le principal. Le paramètre password sera ignoré.
KADM5_ATTRIBUTES | long | Un champ de bites d'attributs à utiliser par KDC.

Exemples

Cet exemple simple montre comment se connecter, interroger, imprimer les éléments principaux et se déconecter depuis une base de données KADM5.

Exemple 1. Exemple général de l'extension KADM5

<?php

  $handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

  print "<h1>get_principals</h1>\n";
  $principals = kadm5_get_principals($handle);
  for( $i=0; $i<count($principals); $i++)
      print "$principals[$i]<br>\n";

  print "<h1>get_policies</h1>\n";
  $policies = kadm5_get_policies($handle);
  for( $i=0; $i<count($policies); $i++)
      print "$policies[$i]<br>\n";

  print "<h1>get_principal burbach@GONICUS.LOCAL</h1>\n";

  $options = kadm5_get_principal($handle, "burbach@GONICUS.LOCAL" );
  $keys = array_keys($options);
  for( $i=0; $i<count($keys); $i++) {
    $value = $options[$keys[$i]];
    print "$keys[$i]: $value<br>\n";
  }

  $options = array(KADM5_PRINC_EXPIRE_TIME => 0);
  kadm5_modify_principal($handle, "burbach@GONICUS.LOCAL", $options);

  kadm5_destroy($handle);
?>

Contacts

Si vous avez des commentaires, des corrections de bogues, des enrichissements ou si vous voulez aider dans le développement, vous pouvez envoyer un email à holger.burbach@gonicus.de. La page du projet peut être trouvé sur http://oss.gonicus.de/project/?group_id=7.

Table des matières
kadm5_chpass_principal -- Modifie le mot de passe du principal
kadm5_create_principal -- Crée un principal kerberos avec les paramètres donnés
kadm5_delete_principal -- Efface un principal kerberos
kadm5_destroy -- Ferme la connexion avec le serveur d'administration et libère toutes les ressources associées
kadm5_flush -- Valide toutes les modifications de la base de données Kerberos, et quitte la connexion ouverte du serveur d'administration Kerberos
kadm5_get_policies -- Récupère toutes les directives depuis la base de données Kerberos
kadm5_get_principal -- Récupère les entrées des éléments principaux depuis la base de données Kerberos
kadm5_get_principals -- Récupère tous les éléments principaux depuis la base de données Kerberos
kadm5_init_with_password -- Ouvre une connexion à la bibliothèque KADM5 et initialise toutes les informations nécessaires
kadm5_modify_principal -- Modifie un principal Kerberos avec les paramètres donnés

Précédent | Sommaire | Suivant
json_encode | Niveau supérieur | kadm5_chpass_principal


Net_Gopher

Manuel PHP
Précédent Suivant

LII. Net_Gopher

Introduction

Le protocole gopher, comme définie par la RFC 1436, est généralement considéré comme l'ancêtre du protocole moderne HTTP. Cependant, gopher a été également conçu pour fournir des références à des ressources non-gopher comme telnet, wais, nntp et, toujours, http. Cette extension ajoute le support gopher aux gestionnaires d'URL, et fournit une fonction utile gopher_parsedir() pour lister les dossiers formattés gopher.

Pré-requis

Installation

Pré-requis : PHP 4.3.0 ou supérieure.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.netnet_gopher

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

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.

Tableau 1. Constantes Net_Gopher

Constante | Valeur | Description
GOPHER_DOCUMENT | 0 | Document standart text/plain.
GOPHER_DIRECTORY | 1 | Une ressource contenant une liste de dossiers formatée gopher.
GOPHER_BINHEX | 4 | Un fichier binaire encodé BinHex.
GOPHER_DOSBINARY | 5 | Une archive binaire formaté DOS.
GOPHER_UUENCODED | 6 | Un fichier UUEncoded.
GOPHER_BINARY | 9 | Un fichier binaire générique.
GOPHER_INFO | 255 | Une entrée informative.
GOPHER_HTTP | 254 | Une référence vers une ressource HTTP.
GOPHER_UNKNOWN | -1 | Une entrée non reconnue.

Exemples

<?php

readfile("gopher://gopher.example.com/quelques_documents");
?>

Table des matières
gopher_parsedir -- Transpose une entrÃ©e d'un dossier formatÃ© gopher dans un tableau associatif

Précédent | Sommaire | Suivant
gnupg_verify | Niveau supérieur | gopher_parsedir


Fonctions Newt

Manuel PHP
Précédent Suivant

CIII. Fonctions Newt

Introduction

Il s'agit d'une extension du langage PHP pour la bibliothèque RedHat Newt, une fenêtre basé sur un terminal et sur une bibliothèque de widget pour écrire des applications avec des interfaces conviviaux. Une fois que cette extension est activé dans PHP, vous aurez la possibilité d'utiliser des widgets, comme des fenêtres, des boutons, des boîtes à cocher, des boîtes radio, des labels, des boîtes texte, des barres de défilement, de grandes boîtes texte, des règles, etc. L'utilisation de cette extension est vraiment similaire à l'API original Newt du langage de programmation C.

Pré-requis

Ce module utilise les fonctions de la bibliothèque RedHat Newt. Vous aurez besoin de la version libnewt >= 0.51.0.

Installation

Cette extension PECL n'est pas intégrée à PHP. Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/newt.

En PHP 4, les sources de cette extension PECL peuvent être trouvées dans le dossier ext/ avec les sources de PHP ou sur le lien PECL ci-dessous. Afin d'utiliser ces fonctions, vous devez compiler le support newt en CGI ou en CLI PHP en utilisant l'option de configure --with-newt[=DIR].

Note : Cette extension n'est pas disponible pour la plate-forme Windows.

Vous aurez aussi besoin des bibliothèques curses et slang afin de compiler cette extension. Pour spécifier des emplacements de ces bibliothèques, utilisez les options de configuration suivante : --with-curses-dir=/path/to/libcurses --with-slang-dir=/path/to/libslang

Types de ressources

Cette extension utilise deux types de ressources : "composant newt" et "grille newt". Le type de ressource "composant newt" est retourné par les fonctions, qui créent les widgets communs newt (par exemple : newt_button()) Le type de ressource "grille newt" est un lien spécial pour les identifiants des composants, retourné par la classe d'objet de grille de newt (par exemple : newt_create_grid())

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Raisons de sortie de Newt

Tableau 1. Raisons de sortie de Newt

Constante | Signification
NEWT_EXIT_HOTKEY | touche rapide définie par newt_form_add_hot_key() a été appuyée
NEWT_EXIT_COMPONENT | certains composants ont demandé la sortie de la forme
NEWT_EXIT_FDREADY | le descripteur de fichier spécifié dans newt_form_watch_fd() est prêt à être lu ou écrit
NEWT_EXIT_TIMER | le temps spécifié dans newt_form_set_timer() s'est écoulé

Newt colorsets

Tableau 2. Newt colorsets

Constante | Signification
NEWT_COLORSET_ROOT |
NEWT_COLORSET_BORDER |
NEWT_COLORSET_WINDOW |
NEWT_COLORSET_SHADOW |
NEWT_COLORSET_TITLE |
NEWT_COLORSET_BUTTON |
NEWT_COLORSET_ACTBUTTON |
NEWT_COLORSET_CHECKBOX |
NEWT_COLORSET_ACTCHECKBOX |
NEWT_COLORSET_ENTRY |
NEWT_COLORSET_LABEL |
NEWT_COLORSET_LISTBOX |
NEWT_COLORSET_ACTLISTBOX |
NEWT_COLORSET_TEXTBOX |
NEWT_COLORSET_ACTTEXTBOX |
NEWT_COLORSET_HELPLINE |
NEWT_COLORSET_ROOTTEXT |
NEWT_COLORSET_ROOTTEXT |
NEWT_COLORSET_EMPTYSCALE |
NEWT_COLORSET_FULLSCALE |
NEWT_COLORSET_DISENTRY |
NEWT_COLORSET_COMPACTBUTTON |
NEWT_COLORSET_ACTSELLISTBOX |
NEWT_COLORSET_SELLISTBOX |

Drapeaux d'argument Newt

Tableau 3. Drapeaux d'arguement Newt

Constante | Signification
NEWT_ARG_LAST |
NEWT_ARG_APPEND |

Sens des Drapeaux Newt

Tableau 4. Sens des Drapeaux Newt

Constante | Signification
NEWT_FLAGS_SET |
NEWT_FLAGS_RESET |
NEWT_FLAGS_TOGGLE |

Drapeaux des Composants Newt

Tableau 5. Drapeaux des Composants Newt

Constante | Signification
NEWT_FLAG_RETURNEXIT | Sort de la forme, lorsque le composant est activé
NEWT_FLAG_HIDDEN | Le composant est caché
NEWT_FLAG_SCROLL | Le composant est flottant
NEWT_FLAG_DISABLED | Le composant est désactivé
NEWT_FLAG_BORDER |
NEWT_FLAG_WRAP | Enveloppe le texte
NEWT_FLAG_NOF12 | Ne sort pas de la forme en appuyant sur F12
NEWT_FLAG_MULTIPLE |
NEWT_FLAG_SELECTED | Le composant est sélectionné
NEWT_FLAG_CHECKBOX | Le composant est une case à cocher
NEWT_FLAG_PASSWORD | Le composant est une boîte de mot de passe
NEWT_FLAG_SHOWCURSOR | Montre le curseur

Drapeaux de Descripteur de Fichier

Tableau 6. Drapeaux de Descripteur de Fichier

Constante | Signification
NEWT_FD_READ |
NEWT_FD_WRITE |
NEWT_FD_EXCEPT |

Drapeaux d'Arbre de Cases à Cocher

Tableau 7. Dreapeaux d'Arbre de Cases à Cocher

Constante | Signification
NEWT_CHECKBOXTREE_UNSELECTABLE |
NEWT_CHECKBOXTREE_HIDE_BOX |
NEWT_CHECKBOXTREE_COLLAPSED |
NEWT_CHECKBOXTREE_EXPANDED |
NEWT_CHECKBOXTREE_UNSELECTED |
NEWT_CHECKBOXTREE_SELECTED |

Dreapeux d'Entrée

Tableau 8. Dreapeaux d'Entrée

Constante | Signification
NEWT_ENTRY_SCROLL |
NEWT_ENTRY_HIDDEN |
NEWT_ENTRY_RETURNEXIT |
NEWT_ENTRY_DISABLED |

Drapeaux de Liste

Tableau 9. Drapeaux de Liste

Constante | Signification
NEWT_LISTBOX_RETURNEXIT |

Drapeaux de Boîte Texte

Tableau 10. Drapeaux de Boîte Texte

Constante | Signification
NEWT_TEXTBOX_WRAP | Enveloppe le texte dans la boîte texte
NEWT_TEXTBOX_SCROLL | Défile le texte dans la boîte texte

Drapeaux de Formulaire

Tableau 11. Drapeaux de Formulaire

Constante | Signification
NEWT_FORM_NOF12 | Ne sort pas de la forme en appuyant sur F12

Clés Newt

Tableau 12. Clés Newt

Constante | Signification
NEWT_KEY_TAB |
NEWT_KEY_ENTER |
NEWT_KEY_SUSPEND |
NEWT_KEY_ESCAPE |
NEWT_KEY_RETURN |
NEWT_KEY_EXTRA_BASE |
NEWT_KEY_UP |
NEWT_KEY_DOWN |
NEWT_KEY_LEFT |
NEWT_KEY_RIGHT |
NEWT_KEY_BKSPC |
NEWT_KEY_DELETE |
NEWT_KEY_HOME |
NEWT_KEY_END |
NEWT_KEY_UNTAB |
NEWT_KEY_PGUP |
NEWT_KEY_PGDN |
NEWT_KEY_INSERT |
NEWT_KEY_F1 |
NEWT_KEY_F2 |
NEWT_KEY_F3 |
NEWT_KEY_F4 |
NEWT_KEY_F5 |
NEWT_KEY_F6 |
NEWT_KEY_F7 |
NEWT_KEY_F8 |
NEWT_KEY_F9 |
NEWT_KEY_F10 |
NEWT_KEY_F11 |
NEWT_KEY_F12 |
NEWT_KEY_RESIZE |

Ancres Newt

Tableau 13. Ancres Newt

Constante | Signification
NEWT_ANCHOR_LEFT |
NEWT_ANCHOR_RIGHT |
NEWT_ANCHOR_TOP |
NEWT_ANCHOR_BOTTOM |

Drapeaux de Grille

Tableau 14. Drapeaux de Grille

Constante | Signification
NEWT_GRID_FLAG_GROWX |
NEWT_GRID_FLAG_GROWY |
NEWT_GRID_EMPTY |
NEWT_GRID_COMPONENT |
NEWT_GRID_SUBGRID |

Exemples

Cet exemple est une utilisation du dialogue 'setup' de RedHat écrit en PHP, exécuté en mode texte.

Exemple 1. Exemple d'Utilisation Newt

<?php
    newt_init ();
    newt_cls ();

    newt_draw_root_text (0, 0, "Test Mode Setup Utility 1.12");
    newt_push_help_line (null);
    newt_draw_root_text (-30, 0, "(c) 1999-2002 RedHat, Inc");

    newt_get_screen_size (&$rows, &$cols);

    newt_open_window ($rows/2-17, $cols/2-10, 34, 17, "Choose a Tool");

    $form = newt_form ();

    $list = newt_listbox (3, 2, 10);

    foreach (array (
        "Authentication configuration",
        "Firewall configuration",
        "Mouse configuration",
        "Network configuration",
        "Printer configuration",
        "System services") as $l_item)
    {
        newt_listbox_add_entry ($list, $l_item, $l_item);
    }

    $b1 = newt_button (5, 12, "Run Tool");
    $b2 = newt_button (21, 12, "Quit");

    newt_form_add_component ($form, $list);
    newt_form_add_components ($form, array($b1, $b2));

    newt_refresh ();
    newt_run_form ($form);

    newt_pop_window ();
    newt_pop_help_line ();
    newt_finished ();
    newt_form_destroy ($form);
?>
Table des matières
newt_bell -- Envoie un beep au terminal
newt_button_bar --
newt_button -- Crée un nouveau bouton
newt_centered_window -- Ouvre une fenêtre centrée de la taille spécifiée
newt_checkbox_get_value --
newt_checkbox_set_flags --
newt_checkbox_set_value --
newt_checkbox_tree_add_item -- *
newt_checkbox_tree_find_item --
newt_checkbox_tree_get_current --
newt_checkbox_tree_get_entry_value --
newt_checkbox_tree_get_multi_selection --
newt_checkbox_tree_get_selection --
newt_checkbox_tree_multi --
newt_checkbox_tree_set_current --
newt_checkbox_tree_set_entry_value --
newt_checkbox_tree_set_entry --
newt_checkbox_tree_set_width --
newt_checkbox_tree --
newt_checkbox --
newt_clear_key_buffer -- Jette le contenu de l'entrée du tampon du terminal sans attendre d'autre entrée additionnelle
newt_cls --
newt_compact_button --
newt_component_add_callback --
newt_component_takes_focus --
newt_create_grid --
newt_cursor_off --
newt_cursor_on --
newt_delay --
newt_draw_form --
newt_draw_root_text -- Affiche la chaîne de caractères à la position indiquée
newt_entry_get_value --
newt_entry_set_filter --
newt_entry_set_flags --
newt_entry_set --
newt_entry --
newt_finished -- Arrête l'interface newt
newt_form_add_component -- Ajoute un seul composant à la forme
newt_form_add_components -- Ajoute plusieurs composants à la forme
newt_form_add_hot_key --
newt_form_destroy -- Détruit une forme
newt_form_get_current --
newt_form_run -- Exécute une forme
newt_form_set_background --
newt_form_set_height --
newt_form_set_size --
newt_form_set_timer --
newt_form_set_width --
newt_form_watch_fd --
newt_form -- Crée une forme
newt_get_screen_size -- Remplit les références passées avec la taille courante du terminal
newt_grid_add_components_to_form --
newt_grid_basic_window --
newt_grid_free --
newt_grid_get_size --
newt_grid_h_close_stacked --
newt_grid_h_stacked --
newt_grid_place --
newt_grid_set_field --
newt_grid_simple_window --
newt_grid_v_close_stacked --
newt_grid_v_stacked --
newt_grid_wrapped_window_at --
newt_grid_wrapped_window --
newt_init -- Initialise newt
newt_label_set_text --
newt_label --
newt_listbox_append_entry --
newt_listbox_clear_selection --
newt_listbox_clear --
newt_listbox_delete_entry --
newt_listbox_get_current --
newt_listbox_get_selection --
newt_listbox_insert_entry --
newt_listbox_item_count --
newt_listbox_select_item --
newt_listbox_set_current_by_key --
newt_listbox_set_current --
newt_listbox_set_data --
newt_listbox_set_entry --
newt_listbox_set_width --
newt_listbox --
newt_listitem_get_data --
newt_listitem_set --
newt_listitem --
newt_open_window -- Ouvre une fenêtre de la taille et la position spécifiée
newt_pop_help_line -- Replace la ligne d'aide courante avec une provenant de la pile
newt_pop_window -- Supprime la fenêtre de premier plan de l'affichage
newt_push_help_line -- Sauvegarde la ligne d'aide courante sur la pile et affiche la nouvelle ligne
newt_radio_get_current --
newt_radiobutton --
newt_redraw_help_line --
newt_reflow_text --
newt_refresh -- Met à jour les portions modifiées de l'écran
newt_resize_screen --
newt_resume -- Récupère l'interface de newt après l'appel de newt_suspend()
newt_run_form -- Exécute une forme
newt_scale_set --
newt_scale --
newt_scrollbar_set --
newt_set_help_callback --
newt_set_suspend_callback -- Fixe une fonction de rappel qui sera appelée lorsque l'utilisateur appuiera sur la touche de suspension
newt_suspend -- Indique à newt de retourner à l'état initial du terminal
newt_textbox_get_num_lines --
newt_textbox_reflowed --
newt_textbox_set_height --
newt_textbox_set_text --
newt_textbox --
newt_vertical_scrollbar --
newt_wait_for_key -- Ne continue pas tant qu'une touche n'est pas appuyée
newt_win_choice --
newt_win_entries --
newt_win_menu --
newt_win_message --
newt_win_messagev --
newt_win_ternary --

Précédent | Sommaire | Suivant
syslog | Niveau supérieur | newt_bell


oggvorbis

Manuel PHP
Précédent Suivant

CX. oggvorbis

Introduction

Le format de fichier OGG/Vorbis, comme définit par http://www.vorbis.com/, est un schéma pour la compression de flux audio par de multiples facteurs avec un minimum de perte de qualité. Cette extension ajoute le support Ogg Vorbis aux gestionnaires d'URL de PHP. Lorsqu'utilisé en mode lecture, les données compressées OGG/Vorbis sont déployées en audio PCM brute en un des six formats d'encodage PCM listés ci-dessous.

Pré-requis

Cette extension nécessite PHP >= 4.3.0, libogg >= 1.0, et libvorbis >= 1.0.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.netoggvorbis

Options de contexte

Tableau 1. Options personnalisées OGG/Vorbis

Option | Définition | Pertinence | Défaut
pcm_mode | Encodage PCM utilisé. Voir les constantes ci-dessous. | Lecture / Écriture | OGGVORBIS_PCM_S16_LE
rate | Taux d'échantillonage PCM. Mesuré en Hz. | Écriture uniquement | 44100
bitrate | Débit d'encodage moyen Vorbis / Débit d'encodage variable. Mesuré en bps (ABR) ou en niveau de qualité (VBR : 0.0 à 1.0). 128000 ABR équivaut à 0.4 VBR. | Écriture uniquement | 128000
channels | Nombre de canaux PCM. 1 == Mono, 2 == Stéréo. | Écriture uniquement | 2
serialno | Nombre de séries de flux dans un fichier. Doit être unique dans un fichier. Parcequ'il est potentiellement possible de sélectionner plusieurs nombres de séries dans un fichier chaîné, faites l'effort d'assigner manuellement des nombres uniques lors de l'encodage. | Écriture uniquement | Random
comments | Tableau associatif de commentaires de fichier. Peut être traduit par strtoupper($name) . "=$value". Note : Cette option de contexte n'est pas disponible en oggvorbis-0.1 | Écriture uniquement | array('ENCODER' => 'PHP/OggVorbis, http://pear.php.net/oggvorbis')

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.

Tableau 2. OGG/Vorbis supporte l'encodage PCM dans les formats suivants :

Constante | Définition
OGGVORBIS_PCM_U8 | PCM 8-bit non-signé.
OGGVORBIS_PCM_S8 | PCM 8-bit signé.
OGGVORBIS_PCM_U16_LE | PCM 16-bit non-signé. Arrangements normaux Little Endian.
OGGVORBIS_PCM_U16_BE | PCM 16-bit non-signé. Arrangements normaux Big Endian.
OGGVORBIS_PCM_S16_LE | PCM 16-bit signé. Arrangements normaux Little Endian.
OGGVORBIS_PCM_S16_BE | PCM 16-bit signé. Arrangements normaux Big Endian.
Table des matières
Utilisation -- Exemples d'utilisation du gestionnaire ogg://.

Précédent | Sommaire | Suivant
PDO_ODBC DSN | Niveau supérieur | Utilisation


Accès aux fichiers Paradox

Manuel PHP
Précédent Suivant

CXVII. Accès aux fichiers Paradox

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Ce module vous permet de lire des bases de données Paradox ainsi que des fichiers d'index primaires et des fichiers Blob. Il peut également créer des bases de données Paradox mais dû au manque de documentation surle format des fichiers Paradox, il se peut que les bases créées ne soient pas lisibles avec toutes les autres applications. Les bases de données cryptées peuvent être lues sans pour autant spécifier de mot de passe si pxlib >= 0.5.0 est utilisé.

Note : Ce module est toujours en cours de développement et peut changer, même si l'API ne sera surement pas modifié en profondeur.

Pré-requis

Vous devez avoir au minimum PHP 5.0.0 et libpx >= 0.4.4 pour la plupart des fonctions. Quelques nouvelles fonctions ne sont disponibles que si pxlib >= 0.6.0 est utilisé. L'écriture et la lecture des bases de données cryptées nécessitent pxlib >= 0.5.0. La bibliothèque Paradox (libpx) est disponible sur http://pxlib.sourceforge.net.

Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.netparadox

Assurez-vous d'avoir installé pxlib avant. Si vous avez installé pxlib via rpm ou via un paquet Débian, n'oubliez pas d'installer également le paquet de développement.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

API orientée objet

L'extension Paradox fournit également une API orientée objet. Elle consiste en une seule classe nommée paradox_db. Ses méthodes diffèrent uniquement des fonctions en leurs noms et, bien sûr, le premier paramètre manquant. La table suivante liste toutes les méthodes avec les fonctions équivalentes.

Tableau 1. Méthodes pour class paradox_db

Nom de la méthode | Fonction équivalente
Constructor | px_new()
Destructor | px_delete()
open_fp() | px_open_fp()
create_fp() | px_create_fp()
close() | px_close()
numrecords() | px_numrecords()
numfields() | px_numfields()
get_record() | px_get_record()
put_record() | px_put_record()
retrieve_record() | px_retrieve_record()
delete_record() | px_delete_record()
insert_record() | px_insert_record()
update_record() | px_update_record()
get_field() | px_get_field()
get_schema() | px_get_schema()
get_info() | px_get_info()
set_parameter() | px_set_parameter()
get_parameter() | px_get_parameter()
set_value() | px_set_value()
get_value() | px_get_value()
get_info() | px_get_info()
set_targetencoding() | px_set_targetencoding()
set_tablename() | px_set_tablename()
set_blob_file() | px_set_blob_file()
date2string() | px_date2string()
timestamp2string() | px_timestamp2string()

Types de ressources

px_new() crée un nouvel objet Paradox, nécessaire à toutes les fonctions Paradox.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Les deux tables suivantes listent toutes les constantes définies par l'extension Paradox.

Tableau 2. Contantes pour les types de champs

Nom | Signification
PX_FIELD_ALPHA | Données sous forme de caractères avec une longueur fixe
PX_FIELD_DATE | Date, nombre de jours depuis le 1.1.0000
PX_FIELD_SHORT | Entier court (2 octets)
PX_FIELD_LONG | Entier long (4 octets)
PX_FIELD_CURRENCY | Identique à PX_FIELD_NUMBER
PX_FIELD_NUMBER | Double
PX_FIELD_LOGICAL | Booléen
PX_FIELD_MEMOBLOB | Objet binaire large
PX_FIELD_BLOB | Objet binaire large (non supporté)
PX_FIELD_FMTMEMOBLOB | Objet binaire large
PX_FIELD_OLE | Objet OLE (basiquement un blob, non supporté)
PX_FIELD_GRAPHIC | Graphique (basiquement un blob, non supporté)
PX_FIELD_TIME | heure, nombre de millisecondes depuis le 1.1.0000
PX_FIELD_TIMESTAMP | timestamp, nombre de millisecondes depuis le 1.1.0000
PX_FIELD_AUTOINC | Entier auto-incrémenté (comme PX_FIELD_LONG)
PX_FIELD_BCD | Nombre décimal stocké en format bcd (non supporté)
PX_FIELD_BYTES | Tableau d'octets d'une longueur maximale de 255 octets (non supporté)
PX_KEYTOLOWER | Convertit tous les noms de champs en minuscule
PX_KEYTOUPPER | Convertit tous les noms de champs en majuscule

Tableau 3. Contantes pour les types de fichiers

Nom | Signification
PX_FILE_INDEX_DB | Base de données indexée
PX_FILE_PRIM_INDEX | Index primaire
PX_FILE_NON_INDEX_DB | Base de données non indexée
PX_FILE_NON_INC_SEC_INDEX | Non-indexé incrémentalement secondaire
PX_FILE_SEC_INDEX | Index secondaire
PX_FILE_INC_SEC_INDEX | Index secondaire incrémental
PX_FILE_NON_INC_SEC_INDEX_G | Index secondaire non-incrémental
PX_FILE_SEC_INDEX_G | Index secondaire
PX_FILE_INC_SEC_INDEX_G | Index secondaire non-incrémental

Table des matières
px_close -- Ferme une base de données Paradox
px_create_fp -- Crée une nouvelle base de données Paradox
px_date2string -- Convertit une date en une chaîne de caractères
px_delete_record -- Efface une enregistrement depuis une base de données Paradox
px_delete -- Efface la ressource d'une base de données Paradox
px_get_field -- Retourne les spécifications d'un champ
px_get_info -- Retourne des informations sur un fichier Paradox
px_get_parameter -- Récupère un paramètre
px_get_record -- Retourne un enregistrement d'une base de données Paradox
px_get_schema -- Retourne le schéma de la base de données
px_get_value -- Récupère une valeur
px_insert_record -- Insère un enregistrement dans une base de données Paradox
px_new -- Crée un nouvel objet Paradox
px_numfields -- Retourne le nombre de champs d'une base de données Paradox
px_numrecords -- Retourne le nombre d'enregistrements d'une base de données Paradox
px_open_fp -- Ouvre une base de données Paradox
px_put_record -- Stock un enregistrement dans une base de données Paradox
px_retrieve_record -- Retourne un enregistrement depuis une base de données Paradox
px_set_blob_file -- Définit le fichier depuis lequel les blobs seront lus
px_set_parameter -- Définit un paramètre
px_set_tablename -- Définit le nom de la table (déprécié)
px_set_targetencoding -- Définit l'encodage pour les caractères des champs (déprécié)
px_set_value -- Définit une valeur
px_timestamp2string -- Convertit un timestamp en une chaîne de caractères
px_update_record -- Met à jour les enregistrements dans une base de données Paradox

Précédent | Sommaire | Suivant
ovrimos_rollback | Niveau supérieur | px_close


Microsoft SQL Server et Fonctions Sybase (PDO_DBLIB)

Manuel PHP
Précédent Suivant

XCIII. Microsoft SQL Server et Fonctions Sybase (PDO_DBLIB)

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

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

Sur Windows, vous devriez utiliser le pilote PDO_ODBC pour se connecter sur le Microsoft SQL Server et les bases de données Sybase, puisque le DB-LIB natif de Windows est vieux, les threads sont dangereux et n'est plus supporté par Microsoft.

Table des matières
PDO_DBLIB DSN -- Connexion au Serveur Microsft SQL et bases de données Sybase

Précédent | Sommaire | Suivant
mssql_select_db | Niveau supérieur | PDO_DBLIB DSN


PDO_DBLIB DSN

(no version information, might be only in CVS)

PDO_DBLIB DSN -- Connexion au Serveur Microsft 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 FreeTDS, mssql: si PDO_DBLIB était lié avec les bibliothèques de Microsoft SQL Server, ou dblib: si il était lié avec n'importe quelle autre sorte de DB-lib.

host

L'hôte sur lequel le serveur de base de données se situe.

dbname

Le nom de la base de données.

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

Précédent | Sommaire | Suivant
Microsoft SQL Server et Fonctions Sybase (PDO_DBLIB) | Niveau supérieur | Sessions Mohawk


Fonctions Firebird/Interbase (PDO_FIREBIRD)

Manuel PHP
Précédent Suivant

XLIII. Fonctions Firebird/Interbase (PDO_FIREBIRD)

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

PDO_FIREBIRD 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 Firebird et Interbase.

Table des matières
PDO_FIREBIRD DSN -- Connexion aux bases de données Firebird et Interbase

Précédent | Sommaire | Suivant
ibase_wait_event | Niveau supérieur | PDO_FIREBIRD DSN


PDO_FIREBIRD DSN

(no version information, might be only in CVS)

PDO_FIREBIRD DSN -- Connexion aux bases de données Firebird et Interbase

Description

Le Data Source Name (DSN) de PDO_FIREBIRD est composé des éléments suivants :

Préfixe DSN

Le préfixe DNS est firebird:.

DataSource

L'hôte sur lequel le serveur de base de données se situe.

Port

Le numéro du port du serveur sur lequel la base de données fonctionne.

Database

Le nom de la base de données.

User

Le nom de l'utilisateur qui se connectera sur la base de données.

Password

Le mot de passe de l'utilisateur.

Exemples

Exemple 1. Exemples avec PDO_FIREBIRD DSN

L'exemple suivant montre PDO_FIREBIRD DSN pour se connecter aux bases de données Firebird et Interbase :

firebird:User=john;Password=mypass;Database=DATABASE.GDE;DataSource=localhost;Port=3050

Précédent | Sommaire | Suivant
Fonctions Firebird/Interbase (PDO_FIREBIRD) | Niveau supérieur | Fonctions FriBiDi


Fonctions IBM (PDO_IBM)

Manuel PHP
Précédent Suivant

LIX. 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 construire 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 : 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 Chapitre 7 pour installer l'extension PDO_IBM. Exécutez la commande configure afn qu'elle pointe vers le dossier contenant les fichiers d'en-têtes et les bibliothèques de votre client DB2 comme ceci :

bash$ ./configure --with-pdo-ibm=/path/to/sqllib[,shared]
La commande configure utilise par défaut la valeur de la variable d'environnement DB2DIR.

Table des matières
PDO_IBM DSN -- COnnexion aux bases de données IBM

Précédent | Sommaire | Suivant
locale_set_default | Niveau supérieur | PDO_IBM DSN


PDO_IBM DSN

(no version information, might be only in CVS)

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 parmis 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 catalog

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

Précédent | Sommaire | Suivant
Fonctions IBM (PDO_IBM) | Niveau supérieur | Fonctions IBM DB2, Cloudscape et Apache Derby


Fonctions Informix (PDO_INFORMIX)

Manuel PHP
Précédent Suivant

LXIX. 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 Chapitre 7 pour installer l'extension PDO_INFORMIX. Écrivez la commande configure pour pointer au chemin de vos fichiers d'en-têtes SDK Client Informix ainsi que les bibliothèques comme suit :

bash$ ./configure --with-pdo-informix=/path/to/SDK[,shared]
La commande configure utilise par défaut la variable d'environnement INFORMIXDIR.

Curseurs flottants

PDO_INFORMIX supporte les curseurs flottants; cependant, ils ne sont pas activés par défaut. Pour activer le support des curseurs flottants, vous devez soit fixer ENABLESCROLLABLECURSORS=1 dans les configurations de la connexion ODBC correspondante dans odbc.ini ou passer la clause EnableScrollableCursors=1 dans la chaîne de caractères de connexion DSN.

Table des matières
PDO_INFORMIX DSN -- Connexion aux bases de données Informix

Précédent | Sommaire | Suivant
ifxus_write_slob | Niveau supérieur | PDO_INFORMIX DSN


PDO_INFORMIX DSN

(no version information, might be only in CVS)

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

Précédent | Sommaire | Suivant
Fonctions Informix (PDO_INFORMIX) | Niveau supérieur | Ingres II


Fonctions MySQL (PDO_MYSQL)

Manuel PHP
Précédent Suivant

XCIX. Fonctions MySQL (PDO_MYSQL)

Introduction

PDO_MYSQL est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données de MySQL 3.x, 4.x. et 5.x.

PDO_MYSQL prendra avantage des requêtes natives préparées présentes dans MySQL 4.1 et supérieur. Si vous utilisez une version plus ancienne des bibliothèques clientes mysql, PDO les émulera pour vous.

Avertissement

Prenez garde : certains types de tables MySQL (moteur d'enregistrement) ne supportent pas les transactions. Lorsque vous écrivez du code de base de données transactionnel en utilisant un type de table qui ne supporte pas les transactions, MySQL prétendra qu'une transaction était initiée correctement. De plus, toutes requêtes DLL publiées enverra implicitement toutes les transactions en attente.

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 à mysql avec le pilote de postgre 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 (integer)

Si un attribut est fixé à TRUE sur une classe PDOStatement, le pilote MySQL utilisera les versions bufférisées de l'API MySQL. Si vous écrivez du code portable, vous devriez utiliser à la place PDOStatement::fetchAll().

Exemple 1. Forçage des requêtes pour être bufférisées dans mysql

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
    $stmt = $db->prepare('select * from foo',
         array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
} else {
    die("mon application fonctionne seulement avec mysql; Je devrais utiliser \$stmt->fetchAll() à la place");
}
?>

PDO::MYSQL_ATTR_LOCAL_INFILE (entier)

Active LOAD LOCAL INFILE.

PDO::MYSQL_ATTR_INIT_COMMAND (entier)

Commande à exécuter lors de la connexion au serveur MySQL. Sera automatiquement ré-exécuté lors d'une reconnexion.

PDO::MYSQL_ATTR_READ_DEFAULT_FILE (entier)

Lit les options depuis le fichier nommé optionnel, plutôt que depuis my.cnf.

PDO::MYSQL_ATTR_READ_DEFAULT_GROUP (entier)

Lit les options depuis le groupe nommé du fichier my.cnf ou depuis le fichier spécifié par MYSQL_READ_DEFAULT_FILE.

PDO::MYSQL_ATTR_MAX_BUFFER_SIZE (entier)

Taille maximale du tampon. Par défaut, vaut 1 MiB.

PDO::MYSQL_ATTR_DIRECT_QUERY (entier)

Effectue des requêtes directes, sans utiliser de requêtes préparées.

Table des matières
PDO_MYSQL DSN -- Connexion aux bases de données MySQL

Précédent | Sommaire | Suivant
mysql_unbuffered_query | Niveau supérieur | PDO_MYSQL DSN


PDO_MYSQL DSN

(no version information, might be only in CVS)

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

Exemples

Exemple 1. Exemples avec PDO_MYSQL DSN

L'exemple suivant montre PDO_MYSQL DSN 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

Précédent | Sommaire | Suivant
Fonctions MySQL (PDO_MYSQL) | Niveau supérieur | Extension MySQL améliorée


Fonctions Oracle (PDO_OCI)

Manuel PHP
Précédent Suivant

CXIV. Fonctions Oracle (PDO_OCI)

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

PDO_OCI 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 Oracle à l'aide de la bibliothèque OCI.

Table des matières
PDO_OCI DSN -- Connexion aux bases de données Oracle

Précédent | Sommaire | Suivant
ora_rollback | Niveau supérieur | PDO_OCI DSN


PDO_OCI DSN

(no version information, might be only in CVS)

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 :

oci:mydb
oci:dbname=//localhost:1521/mydb

Précédent | Sommaire | Suivant
Fonctions Oracle (PDO_OCI) | Niveau supérieur | Bufferisation de sortie


Fonctions ODBC et DB2 (PDO_ODBC)

Manuel PHP
Précédent Suivant

CIX. 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 servers à l'aide du client gratuit DB2.

unixODBC

Supporte l'accès aux serveurs de base de données à l'aide du pilote de gestion unixODBC et les bases de données possédées par les pilotes ODBC.

generic

Offre une option de compilation pour les pilotes de gestion ODBC qui ne sont pas explicitement supportés par PDO_ODBC.

Sur Windows, PDO_ODBC est construit dans le noyau de PHP par défaut. Il est lié avec le Windows ODBC Driver Manager, c'est pourquoi PHP peut se connecter à n'importe quelle base de données cataloguée comme étant un System DSN. De plus, PDO_ODBC est le pilote recommandé pour se connecter aux bases de données Microsoft SQL Server.

Installation

PDO_ODBC sur les systèmes UNIX

  1. À partir de PHP 5.1, PDO_ODBC est inclus dans les sources de PHP. Vous pouvez compiler l'extension PDO_ODBC soit en statique ou en module partagé en utilisant les commandes configure suivantes.

    ibm_db2

    ./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
    Pour construire PDO_ODBC avec la saveur ibm-db2, vous devez avoir précédemment installé les en-têtes de développement de l'application de DB2 sur la même machine sur laquelle vous compilez PDO_ODBC. Les en-têtes de développement de l'application DB2 sont une option d'installation dans les serveurs DB2 et sont aussi disponibles en tant que DB2 Application Development Client gratuitement disponibles pour téléchargement à partir du site. IBM DB2 Universal Database.

    Si vous ne spécifiez pas d'emplacement pour les bibliothèques et les en-têtes de DB2 à la commande configure, PDO_ODBC prendra par défaut /home/db2inst1/sqllib.

    unixODBC

    ./configure --with-pdo-odbc=unixODBC,/usr/local
    Si vous ne spécifiez pas d'emplacement pour les bibliothèques et les en-têtes de unixODBC à la commande configure, PDO_ODBC prendra par défaut /usr/local.

    generic
    ./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de Configuration PDO_ODBC

Nom | Par défaut | Modifiable | Historique
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL | Disponible depuis PHP 5.1.0.
pdo_odbc.db2instance_name | NULL | PHP_INI_SYSTEM |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

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

Table des matières
PDO_ODBC DSN -- Connexion aux bases de données ODBC ou DB2

Précédent | Sommaire | Suivant
odbc_tables | Niveau supérieur | PDO_ODBC DSN


PDO_ODBC DSN

(no version information, might be only in CVS)

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

Précédent | Sommaire | Suivant
Fonctions ODBC et DB2 (PDO_ODBC) | Niveau supérieur | oggvorbis


Fonctions PostgreSQL (PDO_PGSQL)

Manuel PHP
Précédent Suivant

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

Table des matières
PDO_PGSQL DSN -- Connexion aux bases de données PostgreSQL
PDO::pgsqlLOBCreate -- Crée un nouvel objet large
PDO::pgsqlLOBOpen -- Ouvre un flux existant de large objet
PDO::pgsqlLOBUnlink -- Supprime un objet large

Précédent | Sommaire | Suivant
pg_version | Niveau supérieur | PDO_PGSQL DSN


PDO_PGSQL DSN

(no version information, might be only in CVS)

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 :

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.

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

Précédent | Sommaire | Suivant
Fonctions PostgreSQL (PDO_PGSQL) | Niveau supérieur | PDO::pgsqlLOBCreate


Fonctions SQLite (PDO_SQLITE)

Manuel PHP
Précédent Suivant

CLVII. Fonctions SQLite (PDO_SQLITE)

Introduction

PDO_ODBC est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour autoriser l'accès de PHP aux bases de données SQLite 3.

Dans PHP 5.1, l'extension SQLite fournit aussi le pilote pour les bases de données SQLite 2; bien que ce n'est pas techniquement une partie du pilote de PDO_SQLITE, il se comporte similairement, donc il est documenté a côté de ce pilote. Le pilote SQLite 2 pour PDO est fourni principalement pour rendre plus facile l'importation de l'ancien format sqlite 2 des fichiers de base de données dans une application qui utilisent le pilote sqlite 3 qui est plus rapide et plus efficace. En conséquence, le pilote SQLite 2 n'est pas aussi riche en fonctionnalité que le pilote SQLite 3.

Table des matières
PDO_SQLITE DSN -- Connexion aux bases de données SQLite
PDO::sqliteCreateAggregate -- Référence une fonction définie par l'utilisateur agrégative pour utilisation dans les requêtes SQL
PDO::sqliteCreateFunction -- Référence une fonction définie par l'utilisateur pour utilisation dans les requêtes SQL

Précédent | Sommaire | Suivant
sqlite_valid | Niveau supérieur | PDO_SQLITE DSN


PDO_SQLITE DSN

(no version information, might be only in CVS)

PDO_SQLITE DSN -- Connexion aux bases de données SQLite

Description

Le Data Source Name (DSN) de PDO_SQLITE est composé des éléments suivants :

Préfixe DSN (SQLite 3)

Le préfixe DSN est sqlite:.

  • Pour accéder à une base de données sur le disque, ajoutez le chemin absolu au préfixe DSN.

  • Pour créer une base de données en mémoire, ajouter memory: au préfixe DSN.

Préfixe DSN (SQLite 2)

L'extension SQLite dans PHP 5.1 fournit un pilote PDO qui supporte l'accès et la création de bases de données pour SQLite 2. Ceci vous permet d'accéder aux bases de données que vous avez créées avec l'extension SQLite dans une version antérieure de PHP.

Note : Le pilote sqlite2 n'est disponible que dans PHP 5.1 si vous avez activé PDO et ext/sqlite. Il n'est actuellement pas disponible à partir de PECL.

Le préfixe DSN pour se connecter aux bases de données SQLite 2 est sqlite2:.

  • Pour accéder à une base de données sur le disque, ajoutez le chemin absolu au préfixe DSN.

  • Pour créer une base de données en mémoire, ajouter memory: au préfixe DSN.

Exemples

Exemple 1. Exemples avec PDO_SQLITE DSN

Les exemples suivant montrent PDO_SQLITE DSN pour se connecter aux bases de données SQLite :

sqlite:/opt/databases/mydb.sq3
sqlite::memory:
sqlite2:/opt/databases/mydb.sq2
sqlite2::memory:

Précédent | Sommaire | Suivant
Fonctions SQLite (PDO_SQLITE) | Niveau supérieur | PDO::sqliteCreateAggregate


Phar archive stream and classes

Manuel PHP
Précédent Suivant

CXXIII. Phar archive stream and classes

Introduction

The phar extension provides the phar stream wrapper and the Phar class for manipulating self-contained PHP Archive (phar) files. The Phar class can be used to create and to extract contents of phar files as well as iterating over their contents.

PHP Archive files (Phars) are special collections of files that can be transparently run right out of the file, similar to Java's jar archive files. Using a phar archive, it is possible to distribute a complete PHP application in a single file that will run out of the file without modification or extraction. Phar archives can also be used to store files for extraction similar to tar or zip archive files. Phars support compression using gzip if the zlib extension is present, and using bzip2 if the bz2 extension is present. In addition, iteration and other features are available if the SPL extension is available. Phar signature verification using md5 or sha1 is natively supported to ensure archive integrity.

The original implementation for Phar archives was in the PEAR package PHP_Archive, and the implementation details are very similar, although the Phar extension is more full-featured. PHP_Archive has more flexibility in Phar creation, and helpful debugging tools like the PHP_Archive_Manager class, and the Phar extension supports iteration, array access, and directly manipulating Phar contents through a simple interface. PHP_Archive supports creation of Phar archives that can be processed using the Phar extension or PHP_Archive seamlessly, whereas the Phar extension is designed to create extensions that function with the Phar extension. In addition, the Phar extension will continue to work even if the allow_url_include or allow_url_fopen INI variables are disabled, while PHP_Archive-based Phar archives (without the Phar extension) will not function.

Pré-requis

Phar requires PHP 5.2.0 or newer. Additional features require the SPL extension in order to take advantage of iteration and array access to a Phar's file contents. The phar stream does not require any additional extensions to function.

You may optionally wish to enable the zlib and bzip2 extensions to take advantage of compressed phar support.

Installation

Windows binaries may be found at http://snaps.php.net/. To install, download php_phar.dll to the folder specified by your php.ini file's extension_dir directive. Enable it by adding extension=php_phar.dll to your php.ini and restarting your web server.

extension_dir=c:/php5/exts/
extension=php_phar.dll

Linux, BSD, and other *nix variants can be compiled using the following steps:

  • Either:

    • Run the pear installer for PECL/phar: pecl install phar

    • Copy phar.so from the directory indicated by the build process to the location specified in your php.ini file under extension_dir.

    • Add extension=phar.so to your php.ini

    Or:

    • Set the path to your php.ini via:

      pecl config-set php_ini /path/to/php.ini

    • Run the pear installer for PECL/phar: pecl install phar

  • Restart your web server to reload your php.ini settings.

Development Versions : There are currently no stable versions of PECL/phar, to force installation of the alpha version of PECL/phar execute: pecl install phar-alpha

Compiling PECL/phar without using the PEAR command : Rather than using pecl install phar to automatically download and install PECL/phar, you may download the tarball from PECL. From the root of the unpacked tarball, run: phpize && ./configure --enable-phar && make to generate phar.so. Once built, continue the installation from step 4 above.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/phar.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Filesystem and Streams Configuration Options

Name | Default | Changeable | Changelog
phar.readonly | "1" | PHP_INI_SYSTEM disable/enable, PHP_INI_ALL enable | Available Since version 1.0.0
phar.require_hash | "0" | PHP_INI_SYSTEM disable/enable, PHP_INI_ALL enable | Available Since version 1.0.0

Voici un éclaircissement sur l'utilisation des directives de configuration.

phar.readonly boolean

This option disables creation or modification of Phar archives using the phar stream or Phar object's write support. This setting should always be enabled on production machines, as the phar extension's convenient write support could allow straightforward creation of a php-based virus when coupled with other common security vulnerabilities.

Note : This setting can only be unset in php.ini due to security reasons. If phar.readonly is disabled in php.ini, the user may enable phar.readonly in a script or disable it later. If phar.readonly is enabled in php.ini, a script may harmlessly "re-enable" the INI variable, but may not disable it.

phar.require_hash boolean

This option will force all opened Phar archives to contain some kind of signature (currently MD5 and SHA1 are supported), and will refuse to process any Phar archive that does not contain a signature.

Note : This setting can only be unset in php.ini due to security reasons. If phar.require_hash is disabled in php.ini, the user may enable phar.require_hash in a script or disable it later. If phar.require_hash is enabled in php.ini, a script may harmlessly "re-enable" the INI variable, but may not disable it.

Types de ressources

The Phar extension provides the phar stream, which allows accessing files contained within a phar transparently. The file format of a Phar is described here

Classes pré-définies

Phar
PharFileInfo
PharException

Using Phar Archives: Introduction

Phar archives are similar in concept to Java JAR archives, but are tailored to the needs and to the flexibility of PHP applications. A Phar archive is used to distribute a complete PHP application or library in a single file. Unlike Java's implementation of JAR archives, no external tool is required to process or run a PHP Phar archive. A Phar archive application is processed exactly like any other PHP application:

php coolapplication.phar

Using a Phar archive library is identical to using any other PHP library:

<?php
include 'coollibrary.phar';
?>

What makes Phar archives incredibly useful is the phar stream wrapper, which is explained in depth here. Using this stream wrapper, it is possible to access individual files within a phar as if the phar were its own filesystem. The phar stream wrapper supports all read/write operations on files, and opendir() on directories.

<?php
include 'phar://coollibrary.phar/internal/file.php';
header('Content-type: image/jpeg');
// phars can be accessed by full path or by alias
echo file_get_contents('phar:///fullpath/to/coollibrary.phar/images/wow.jpg');
?>

Also provided with the Phar extension is the Phar class, which allows accessing the files of the Phar archive as if it were an associative array, and other functionality. The Phar class is explained here.

<?php
try {
    // open an existing phar
    $p = new Phar('coollibrary.phar');
    foreach ($p as $file) {
        // $file is a PharFileInfo class, and inherits from SplFileInfo
        echo $file->getFileName() . "\n";
        echo $file . "\n"; // display contents;
    }
    if (isset($p['internal/file.php'])) {
        var_dump($p['internal/file.php']->getMetaData());
    }

    // create a new phar - phar.readonly must be 0 in php.ini
    // phar.readonly is enabled by default for security reasons.
    // On production servers, Phars need never be created,
    // only executed.
    if (Phar::canWrite()) {
        $p = new Phar(dirname(__FILE__) . '/newphar.phar', 0, 'newphar.phar');
        // create transaction - nothing is written to newphar.phar
        // until commit() is called, although temporary storage is needed
        $p->begin();
        // add a new file, set its contents
        $p['file1.txt'] = 'Information';
        $fp = fopen('hugefile.dat', 'rb');
        // copy from the stream
        $p['data/hugefile.dat'] = $fp;
        if (Phar::canCompress()) {
            $p['data/hugefile.dat']->setCompressedGZ();
        }
        $p['images/wow.jpg'] = file_get_contents('images/wow.jpg');
        // any value can be saved as file-specific meta-data
        $p['images/wow.jpg']->setMetaData(array('mime-type' => 'image/jpeg'));
        $p['index.php'] = file_get_contents('index.php');
        $p->setMetaData(array('bootstrap' => 'index.php'));
        // set the loader stub
        $p->setStub('<?php
$p = new Phar(__FILE__);
$m = $p->getMetaData();
require "phar://" . __FILE__ . "/" . $m["bootstrap"];
__HALT_COMPILER();');
        // save the phar archive to disk
        $p->commit();
    }
} catch (Exception $e) {
    echo 'Could not open Phar: ', $e;
}
?>

Using Phar Archives: the phar stream wrapper

The Phar stream wrapper fully supports fopen() for read, write or append, unlink(), stat(), fstat(), fseek(), rename() and directory stream operation opendir(). The Phar stream wrapper does not support creating or erasing a directory, as files are stored only as files, and the concept of an abstract directory does not exist.

Individual file compression and per-file metadata can also be manipulated in a Phar archive using stream contexts:

<?php
$context = stream_context_create(array('phar' =>
                                    array('compression' => Phar::GZ)),
                                    array('metadata' => array('user' => 'cellog')));
file_put_contents('phar://my.phar/somefile.php', 0, $context);
?>

The phar stream wrapper does not operate on remote files, and cannot operate on remote files, and so is allowed even when the allow_url_fopen and allow_url_include INI options are disabled.

Although it is possible to create phar archives from scratch just using stream operations, it is best to use the functionality built into the Phar class. The stream wrapper is best used for read operations.

Using Phar Archives: the Phar class

The Phar class supports reading and manipulation of Phar archives, as well as iteration through inherited functionality of the RecursiveDirectoryIterator class. With support for the ArrayAccess interface, files inside a Phar archive can be accessed as if they were part of an associative array.

It is important to note that when creating a Phar archive, the full path should be passed to the Phar object constructor. Relative paths will fail to initialize.

Assuming that $p is a Phar object initialized as follows:

<?php
$p = new Phar('/path/to/myphar.phar', 0, 'myphar.phar');
?>

An empty Phar archive will be created at /path/to/myphar.phar, or if /path/to/myphar.phar already exists, it will be opened again. The literal myphar.phar deomnstrates the concept of an alias that can be used to reference /path/to/myphar.phar in URLs as in:

<?php
// these two calls to file_get_contents() are equivalent if
// /path/to/myphar.phar has an explicit alias of "myphar.phar"
// in its manifest, or if the phar was initialized with the
// previous example's Phar object setup
$f = file_get_contents('phar:///path/to/myphar.phar/whatever.txt');
$f = file_get_contents('phar://myphar.phar/whatever.txt');
?>

With the newly created $p Phar object, the following is possible:

  • $a = $p['file.php'] creates a PharFileInfo class that refers to the contents of phar://myphar.phar/file.php

  • $p['file.php'] = $v creates a new file (phar://myphar.phar/file.php), or overwrites an existing file within myphar.phar. $v can be either a string or an open file pointer, in which case the entire contents of the file will be used to create the new file.

  • isset($p['file.php']) can be used to determine whether phar://myphar.phar/file.php exists within myphar.phar.

  • unset($p['file.php']) erases phar://myphar.phar/file.php from myphar.phar.

In addition, the Phar object is the only way to access Phar-specific metadata, through Phar->getMetaData(), and the only way to set or retrieve a Phar archive's PHP loader stub through Phar->getStub() and Phar->setStub(). Additionally, compression for the entire Phar archive at once can only be manipulated using the Phar class.

The full list of Phar object functionality is documented below.

The PharFileInfo class extends the SplFileInfo class, and adds several methods for manipulating Phar-specific details of a file contained within a Phar, such as manipulating compression and metadata.

Phar file format

All Phar files contain three to four sections:

  1. a stub

  2. a manifest describing the contents

  3. the file contents

  4. [optional] a signature for verifying Phar integrity

Phar file stub

A Phar's stub is a simple PHP file. The smallest possible stub follows:

<?php __HALT_COMPILER();

A stub must contain as a minimum, the __HALT_COMPILER(); token at its conclusion. Typically, a stub will contain loader functionality like so:

<?php
Phar::mapPhar();
include 'phar://myphar.phar/index.php';
__HALT_COMPILER();

There are no restrictions on the contents of a Phar stub, except for the requirement that it conclude with __HALT_COMPILER();. The closing PHP tag ?> may be included or omitted, but there can be no more than 1 space between the ; and the close tag ?> or the phar extension will be unable to process the Phar archive's manifest.

Phar Manifest Format

The Phar manifest is a highly optimized format that allows per-file specification of file compression, file permissions, and even user-defined meta-data such as file user or group. All values greater than 1 byte are stored in little-endian byte order, with the exception of the API version, which for historical reasons is stored as 3 nibbles in big-endian order.

All unused flags are reserved for future use, and must not be used to store custom information. Use the per-file meta-data facility to store customized information about particular files.

The basic file format of a Phar archive manifest is as follows:

Tableau 2. Global Phar manifest format

Size in bytes | Description
4 bytes | Length of manifest in bytes (1 MB limit)
4 bytes | Number of files in the Phar
2 bytes | API version of the Phar manifest (currently 1.0.0)
4 bytes | Global Phar bitmapped flags
4 bytes | Length of Phar alias
?? | Phar alias (length based on previous)
4 bytes | Length of Phar metadata (0 for none)
?? | Serialized Phar Meta-data, stored in serialize() format
at least 24 * number of entries bytes | entries for each file

Global Phar bitmapped flags

Here are the bitmapped flags currently recognized by the Phar extension for the global Phar flat bitmap:

Tableau 3. Bitmap values recognized

Value | Description
0x00010000 | If set, this Phar contains a verification signature
0x00001000 | If set, this Phar contains at least 1 file that is compressed with zlib compression
0x00002000 | If set, this Phar contains at least 1 file that is compressed with bzip compression

Phar manifest file entry definition

Each file in the manifest contains the following information:

Tableau 4. Phar Manifest file entry

Size in bytes | Description
4 bytes | Filename length in bytes
?? | Filename (length specified in previous)
4 bytes | Un-compressed file size in bytes
4 bytes | Unix timestamp of file
4 bytes | Compressed file size in bytes
4 bytes | CRC32 checksum of un-compressed file contents
4 bytes | Bit-mapped File-specific flags
4 bytes | Serialized File Meta-data length (0 for none)
?? | Serialized File Meta-data, stored in serialize() format

The File-specific bitmap values recognized are:

Tableau 5. Bitmap values recognized

Value | Description
0x000001FF | These bits are reserved for defining specific file permissions of a file. Permissions are used for fstat() and can be used to recreate desired permissions upon extraction.
0x00001000 | If set, this file is compressed with zlib compression
0x00002000 | If set, this file is compressed with bzip compression

Phar Signature format

Phars containing a signature always have the signature appended to the end of the Phar archive after the loader, manifest, and file contents. The two signature formats supported at this time are MD5 and SHA1.

Tableau 6. Signature format

Length in bytes | Description
16 or 20 bytes | The actual signature, 20 bytes for an SHA1 signature, 16 bytes for an MD5 signature.
4 bytes | Signature flags. 0x0001 is used to define an MD5 signature, and 0x0002 is used to define an SHA1 signature.
4 bytes | Magic GBMB used to define the presence of a signature.

Table des matières
Phar::apiVersion -- Returns the api version
Phar::canCompress -- Returns whether phar extension supports compression using either zlib or bzip2
Phar::canWrite -- Returns whether phar extension supports writing and creating phars
Phar->compressAllFilesBZIP2 -- Compresses all files in the current Phar archive using Bzip2 compression
Phar->compressAllFilesGZ -- Compresses all files in the current Phar archive using Gzip compression
Phar::__construct -- Construct a Phar archive object
Phar->count -- Returns the number of entries (files) in the Phar archive
Phar->getMetaData -- Returns phar archive meta-data
Phar->getModified -- Return whether phar was modified
Phar->getSignature -- Return MD5/SHA1 signature of a Phar archive
Phar->getStub -- Return the PHP loader or bootstrap stub of a Phar archive
Phar->getVersion -- Return version info of Phar archive
Phar->isBuffering -- Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
Phar::loadPhar -- Loads any phar archive with an alias
Phar::mapPhar -- Reads the currently executed file (a phar) and registers its manifest
Phar::offsetExists -- determines whether a file exists in the phar
Phar::offsetGet -- get a PharFileInfo object for a specific file
Phar::offsetSet -- set the contents of an internal file to those of an external file
Phar::offsetUnset -- remove a file from a phar
Phar->setMetaData -- Sets phar archive meta-data
Phar->setStub -- Used to set the PHP loader or bootstrap stub of a Phar archive
Phar->startBuffering -- Start buffering Phar write operations, do not modify the Phar object on disk
Phar->stopBuffering -- Stop buffering write requests to the Phar archive, and save changes to disk
Phar->uncompressAllFiles -- Uncompresses all files in the current Phar archive
PharFileInfo->chmod -- Sets file-specific meta-data saved with a file
PharFileInfo::__construct -- Construct a Phar entry object
PharFileInfo->getCompressedSize -- Returns the actual size of the file (with compression) inside the Phar archive
PharFileInfo->getCRC32 -- Returns CRC32 code or throws an exception if not CRC checked
PharFileInfo->getMetaData -- Returns file-specific meta-data saved with a file
PharFileInfo->getPharFlags -- Returns the Phar file entry flags
PharFileInfo->isCompressed -- Returns whether the entry is compressed
PharFileInfo->isCompressedBZIP2 -- Returns whether the entry is compressed using bzip2
PharFileInfo->isCompressedGZ -- Returns whether the entry is compressed using gz
PharFileInfo->isCRCChecked -- Returns whether file entry has had its CRC verified
PharFileInfo->setCompressedBZIP2 -- Compresses the current Phar entry within the phar using Bzip2 compression
PharFileInfo->setCompressedGZ -- Compresses the current Phar entry within the phar using gz compression
PharFileInfo->setMetaData -- Sets file-specific meta-data saved with a file
PharFileInfo->setUncompressed -- Uncompresses the current Phar entry within the phar, if it is compressed

Précédent | Sommaire | Suivant
PDOStatement->setFetchMode() | Niveau supérieur | Phar::apiVersion


Création de document PostScript

Manuel PHP
Précédent Suivant

CXXXI. Création de document PostScript

Introduction

Ce module permet de créer des documents PostScript. Il a beaucoup de similarités avec l'extension pdf. Actuellement, cet API est pratiquement identique et dans la plupart des cas, seuls les préfixes de chaque fonction sont remplacés de pdf_ par ps_. Cela fonctionne aussi pour les fonctions qui n'ont pas de signification dans le document PostScript (par exemple, l'ajout d'hyperliens) mais aura un effet si le document est converti en PDF.

Les documents créés par cette extension sont parfois même supérieurs aux documents créés avec l'extension pdf, parce que les fonctions de rendement de texte de pslib peuvent gérer le crénage, la coupure de mot et les ligatures qui résultent à un bien meilleur affichage de boîte texte.

Pré-requis

Vous devez au moins PHP 4.3.0 et pslib >= 0.1.12. La bibliothèque ps (pslib) est disponible à http://pslib.sourceforge.net/.

Installation

Une courte note pour l'installation : tapez seulement

$ pecl install ps
dans votre console.

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.

Les deux tables suivantes listent toutes les constantes définies par l'extension ps.

Tableau 1. Constantes pour line caps

Nom | Description
ps_LINECAP_BUTT |
ps_LINECAP_ROUND |
ps_LINECAP_SQUARED |

Tableau 2. Constantes pour line joins

Nom | Description
ps_LINEJOIN_MITER |
ps_LINEJOIN_ROUND |
ps_LINEJOIN_BEVEL |

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.

Table des matières
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 -- Reads an external file with raw PostScript code
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 iamge à partir d'un fichier
ps_open_image -- Lit une image pour placement futur
ps_open_memory_image -- Takes an GD image and returns an image for placement in a PS document
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 -- Fixe 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 -- Sets overprint mode
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 -- Output text at position
ps_show_xy -- Écrit du texte à la position donnée
ps_show2 -- Output a text at current position
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

Précédent | Sommaire | Suivant
system | Niveau supérieur | ps_add_bookmark


Radius

Manuel PHP
Précédent Suivant

CXXXIV. Radius

Introduction

Ce paquetage est basé sur la libradius de FreeBSD. Ce PECL ajoute un support complet pour l'identification Radius (RFC 2865) et les comptes Radius (RFC 2866). Ce paquetage est disponible pour Unix (testé sous FreeBSD et Linux) et pour Windows.

Note : Une description exacte de la libradius peut être trouvée ici. Une description détaillée du fichier de configuration peut être trouvée ici.

Installation

Comment installer le paquetage ?

  • Décompresser le paquetage (habituellement dans php4/ext)

  • Renommer radius-x.x en radius

  • Exécuter ./buildconf dans php4

  • Exécuter ./configure --enable-radius

  • make; make install

ou, si vous voulez l'avoir en .so :

  • Décompresser le paquetage

  • Exécuter phpize dans le dossier radius-x.x

  • Exécuter ./configure dans le dossier radius-x.x

  • make; make install

Pour Windows, je vous recommande d'utiliser la bibliothèque php_radius.dll depuis http://snaps.php.net/. Les extensions PECL non fournies par défaut peuvent être téléchargées depuis : http://pecl4win.php.net/

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.

RADIUS_ACCESS_REQUEST ()

Demande d'identification

RADIUS_ACCESS_ACCEPT ()

Accès accepté

RADIUS_ACCESS_REJECT ()

Accès rejeté

RADIUS_ACCOUNTING_REQUEST ()

Demande de compte

RADIUS_ACCOUNTING_RESPONSE ()

Réponse du compte

RADIUS_ACCESS_CHALLENGE ()

Défi d'accès

RADIUS_USER_NAME (string)

Nom d'utilisateur

RADIUS_USER_PASSWORD (string)

Mot de passe

RADIUS_CHAP_PASSWORD (string)

Chap Password: chappass = md5(ident + plaintextpass + challenge)

RADIUS_NAS_IP_ADDRESS (string)

Adresse IP NAS

RADIUS_NAS_PORT (int)

Port NAS

RADIUS_SERVICE_TYPE (int)

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

RADIUS_FRAMED_PROTOCOL (int)

Protocole encadré :

RADIUS_PPP
RADIUS_SLIP
RADIUS_ARAP
RADIUS_GANDALF
RADIUS_XYLOGICS

RADIUS_FRAMED_IP_ADDRESS (string)

Adresse IP

RADIUS_FRAMED_IP_NETMASK (string)

Netmasque

RADIUS_FRAMED_ROUTING (int)

Routing

RADIUS_FILTER_ID (string)

Filter ID

RADIUS_FRAMED_MTU (int)

MTU

RADIUS_FRAMED_COMPRESSION (int)

Compression :

RADIUS_COMP_NONE
RADIUS_COMP_VJ
RADIUS_COMP_IPXHDR

RADIUS_LOGIN_IP_HOST (string)

Login IP Host

RADIUS_LOGIN_SERVICE (int)

Login Service

RADIUS_LOGIN_TCP_PORT (int)

Login TCP Port

RADIUS_REPLY_MESSAGE (string)

Message de réponse

RADIUS_CALLBACK_NUMBER (string)

Numéro de Callback

RADIUS_CALLBACK_ID (string)

ID de Callback

RADIUS_FRAMED_ROUTE (string)

Framed Route

RADIUS_FRAMED_IPX_NETWORK (string)

Framed IPX Network

RADIUS_STATE (string)

Statut

RADIUS_CLASS (int)

Classe

RADIUS_VENDOR_SPECIFIC (int)

Attribut spécifique au vendeur

RADIUS_SESSION_TIMEOUT (int)

Timeout de la session

RADIUS_IDLE_TIMEOUT (int)

Idle timeout

RADIUS_TERMINATION_ACTION (int)

Termination action

RADIUS_CALLED_STATION_ID (int)

Called Station Id

RADIUS_CALLING_STATION_ID (string)

Calling Station Id

RADIUS_NAS_IDENTIFIER (int)

NAS ID

RADIUS_PROXY_STATE (int)

Proxy State

RADIUS_LOGIN_LAT_SERVICE (int)

Login LAT Service

RADIUS_LOGIN_LAT_NODE (int)

Login LAT Node

RADIUS_LOGIN_LAT_GROUP (int)

Login LAT Group

RADIUS_FRAMED_APPLETALK_LINK (int)

Framed Appletalk Link

RADIUS_FRAMED_APPLETALK_NETWORK (int)

Framed Appletalk Network

RADIUS_FRAMED_APPLETALK_ZONE (int)

Framed Appletalk Zone

RADIUS_CHAP_CHALLENGE (string)

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)

Port Limit

RADIUS_LOGIN_LAT_PORT (int)

Login LAT Port

RADIUS_CONNECT_INFO (string)

Connect info

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)

Accounting delay time

RADIUS_ACCT_INPUT_OCTETS (int)

Accounting input bytes

RADIUS_ACCT_OUTPUT_OCTETS (int)

Accounting output bytes

RADIUS_ACCT_SESSION_ID (int)

Accounting session ID

RADIUS_ACCT_AUTHENTIC (int)

Accounting authentic, one of:

RADIUS_AUTH_RADIUS
RADIUS_AUTH_LOCAL
RADIUS_AUTH_REMOTE

RADIUS_ACCT_SESSION_TIME (int)

Accounting session time

RADIUS_ACCT_INPUT_PACKETS (int)

Accounting input packets

RADIUS_ACCT_OUTPUT_PACKETS (int)

Accounting output packets

RADIUS_ACCT_TERMINATE_CAUSE (int)

Accounting terminate cause, one of:

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

Accounting multi session ID

RADIUS_ACCT_LINK_COUNT (int)

Accounting link count

RADIUS_VENDOR_MICROSOFT (int)

Microsoft specific vendor attributes (RFC 2548), one of:

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

Démarrage rapide

Comment commencer ?

  • Récupérer une ressource Radius

  • Configurer la bibliothèque

  • Créer une demande

  • Ajouter des attributs

  • Envoyer la demande

  • Recever les attributs

  • Fermer la ressource Radius (optionnel)

Regardez également les exemples fournis avec ce paquetage.

Ce paquetage contient un script PHP d'exemple. Ce script montre comment s'identifier avec Radius en utilisant PAP ou CHAP (md5). Si vous voulez vous identifier avec un serveur Microsoft Radius, alors il n'est pas possible d'utiliser CHAP (md5). Si vous voulez vous identifier avec un serveur Microsoft Radius, vous devez utiliser MS-CHAPv1 ou MS-CHAPv2 mais c'est plus compliqué, parce que vous avez besoin de md4, sha1 et DES pour générer de bonnes données. L'exemple fourni montre toutes les méthodes d'identification, incluant MS-CHAPv1 et MS-CHAPv2. Pour faire fonctionner MS-CHAP, vous aurez besoin des extensions mcrypt et mhash, et depuis la version 1.2 de ce paquetage, l'extension mcrypt n'est plus nécessaire.

Contact

Si vous avez des commentaires, des corrections de bogues, des améliorations ou si vous voulez aider dans le développement, vous pouvez envoyer un email à mbretter@php.net. Les binaires Windows peuvent être téléchargés ici.

Table des matières
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 ressurces
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_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 un attribut IP-Address 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'identificateur demandé
radius_send_request -- Envoie la demande et attente une réponse
radius_server_secret -- Retourne le secret partagé
radius_strerror -- Retourne un message d'erreur

Précédent | Sommaire | Suivant
qdom_tree | Niveau supérieur | radius_acct_open


Fonctions Lecture d'En-tête RPM

Manuel PHP
Précédent Suivant

CXXXVIII. Fonctions Lecture d'En-tête RPM

Introduction

Ce module vous permet de lire les méta informations enregistrées dans les en-têtes d'un fichier RedHat Package Manager (RPM).

Pré-requis

L'extension RPMReader requiert PHP 5.

Installation

Cette extension PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/rpmreader.

Types de ressources

Il y a un type de ressource utilisé par le module RPMReader. La ressource est le pointeur de fichier qui identifie le fichier RPM avec lequel il travaille.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

La liste suivante des constantes est utilisée pour obtenir des informations en utilisant la fonction rpm_get_tag(). Ces constantes représentent le numéro de tag qui doit être récupéré d'une section d'en-tête d'un fichier RPM. Les descriptions sont données pour définir ce que les tags représentent.

RPMREADER_MINIMUM (entier)

La valeur minimale valide pour n'importe quel numéro de tag RPM.

RPMREADER_NAME (entier)

Le nom du paquetage RPM.

RPMREADER_VERSION (entier)

La version du paquetage RPM.

RPMREADER_RELEASE (entier)

La mise à jour du paquetage RPM.

RPMREADER_EPOCH (entier)

RPMREADER_SERIAL (entier)

RPMREADER_SUMMARY (entier)

Le récapitulatif du paquetage RPM.

RPMREADER_DESCRIPTION (entier)

La description complète du paquetage RPM.

RPMREADER_BUILDTIME (entier)

La date et l'heure à laquelle le paquetage RPM a été construit.

RPMREADER_BUILDHOST (entier)

Le nom de l'hôte sur lequel le paquetage a été construit.

RPMREADER_INSTALLTIME (entier)

RPMREADER_SIZE (entier)

La taille du paquetage RPM.

RPMREADER_DISTRIBUTION (entier)

RPMREADER_VENDOR (entier)

RPMREADER_GIF (entier)

RPMREADER_XPM (entier)

RPMREADER_LICENSE (entier)

RPMREADER_COPYRIGHT (entier)

RPMREADER_PACKAGER (entier)

RPMREADER_GROUP (entier)

RPMREADER_SOURCE (entier)

RPMREADER_PATCH (entier)

RPMREADER_URL (entier)

RPMREADER_OS (entier)

RPMREADER_ARCH (entier)

RPMREADER_PREIN (entier)

RPMREADER_POSTIN (entier)

RPMREADER_PREUN (entier)

RPMREADER_POSTUN (entier)

RPMREADER_OLDFILENAMES (entier)

Une liste de fichiers dans un paquetage RPM (format déprécié). La manière correcte est maintenant d'utiliser une combinaison de 3 tags (RPMREADER_BASENAMES, RPMREADER_DIRINDEXES, RPMREADER_DIRNAMES) dans ce que RPM appelle maintenant "CompressedFileNames". Ce tag est toujours utilisé dans les anciens fichiers RPM qui n'utilisent pas la méthode "CompressedFileNames" et il est présent pour maintenir une compatibilité.

RPMREADER_FILESIZES (entier)

RPMREADER_FILESTATES (entier)

RPMREADER_FILEMODES (entier)

RPMREADER_FILERDEVS (entier)

RPMREADER_FILEMTIMES (entier)

RPMREADER_FILEMD5S (entier)

RPMREADER_FILELINKTOS (entier)

RPMREADER_FILEFLAGS (entier)

RPMREADER_FILEUSERNAME (entier)

RPMREADER_FILEGROUPNAME (entier)

RPMREADER_ICON (entier)

RPMREADER_SOURCERPM (entier)

RPMREADER_FILEVERIFYFLAGS (entier)

RPMREADER_ARCHIVESIZE (entier)

RPMREADER_PROVIDENAME (entier)

RPMREADER_PROVIDES (entier)

RPMREADER_REQUIREFLAGS (entier)

RPMREADER_REQUIRENAME (entier)

RPMREADER_REQUIREVERSION (entier)

RPMREADER_CONFLICTFLAGS (entier)

RPMREADER_CONFLICTNAME (entier)

RPMREADER_CONFLICTVERSION (entier)

RPMREADER_EXCLUDEARCH (entier)

RPMREADER_EXCLUDEOS (entier)

RPMREADER_EXCLUSIVEARCH (entier)

RPMREADER_EXCLUSIVEOS (entier)

RPMREADER_RPMVERSION (entier)

RPMREADER_TRIGGERSCRIPTS (entier)

RPMREADER_TRIGGERNAME (entier)

RPMREADER_TRIGGERVERSION (entier)

RPMREADER_TRIGGERFLAGS (entier)

RPMREADER_TRIGGERINDEX (entier)

RPMREADER_VERIFYSCRIPT (entier)

RPMREADER_CHANGELOGTIME (entier)

Une liste des dates des entrées du changelog.

RPMREADER_CHANGELOGNAME (entier)

La liste des noms des entrées du changelog.

RPMREADER_CHANGELOGTEXT (entier)

La liste du texte des entrées du changelog.

RPMREADER_PREINPROG (entier)

RPMREADER_POSTINPROG (entier)

RPMREADER_PREUNPROG (entier)

RPMREADER_POSTUNPROG (entier)

RPMREADER_BUILDARCHS (entier)

RPMREADER_OBSOLETENAME (entier)

RPMREADER_OBSOLETES (entier)

RPMREADER_VERIFYSCRIPTPROG (entier)

RPMREADER_TRIGGERSCRIPTPROG (entier)

RPMREADER_COOKIE (entier)

RPMREADER_FILEDEVICES (entier)

RPMREADER_FILEINODES (entier)

RPMREADER_FILELANGS (entier)

RPMREADER_PREFIXES (entier)

RPMREADER_INSTPREFIXES (entier)

RPMREADER_PROVIDEFLAGS (entier)

RPMREADER_PROVIDEVERSION (entier)

RPMREADER_OBSOLETEFLAGS (entier)

RPMREADER_OBSOLETEVERSION (entier)

RPMREADER_DIRINDEXES (entier)

La liste des indices qui rapporte les noms des répertoires et des fichiers dans le paquetage RPM. Ce tag est utilisé en conjonction avec RPMREADER_BASENAMES et RPMREADER_DIRNAMES pour reconstruire les noms des fichiers dans le paquetage RPM enregistré avec la nouvelle méthode "CompressedFileNames" dans RPM.

RPMREADER_BASENAMES (entier)

Une liste des noms des fichiers dans le paquetage RPM sans l'information sur les chemins. Ce tag est utilisé en conjonction avec RPMREADER_BASENAMES et RPMREADER_DIRNAMES pour reconstruire les noms des fichiers dans le paquetage RPM enregistré avec la nouvelle méthode "CompressedFileNames" dans RPM.

RPMREADER_DIRNAMES (entier)

Une liste des noms des répertoires utilisés par les fichiers dans le paquetage RPM. Ce tag est utilisé en conjonction avec RPMREADER_BASENAMES et RPMREADER_DIRNAMES pour reconstruire les noms des fichiers dans le paquetage RPM enregistré avec la nouvelle méthode "CompressedFileNames" dans RPM.

RPMREADER_OPTFLAGS (entier)

RPMREADER_DISTURL (entier)

RPMREADER_PAYLOADFORMAT (entier)

RPMREADER_PAYLOADCOMPRESSOR (entier)

RPMREADER_PAYLOADFLAGS (entier)

RPMREADER_INSTALLCOLOR (entier)

RPMREADER_INSTALLTID (entier)

RPMREADER_REMOVETID (entier)

RPMREADER_RHNPLATFORM (entier)

RPMREADER_PLATFORM (entier)

RPMREADER_PATCHESNAME (entier)

RPMREADER_PATCHESFLAGS (entier)

RPMREADER_PATCHESVERSION (entier)

RPMREADER_CACHECTIME (entier)

RPMREADER_CACHEPKGPATH (entier)

RPMREADER_CACHEPKGSIZE (entier)

RPMREADER_CACHEPKGMTIME (entier)

RPMREADER_FILECOLORS (entier)

RPMREADER_FILECLASS (entier)

RPMREADER_CLASSDICT (entier)

RPMREADER_FILEDEPENDSX (entier)

RPMREADER_FILEDEPENDSN (entier)

RPMREADER_DEPENDSDICT (entier)

RPMREADER_SOURCEPKGID (entier)

RPMREADER_FILECONTEXTS (entier)

RPMREADER_FSCONTEXTS (entier)

RPMREADER_RECONTEXTS (entier)

RPMREADER_POLICIES (entier)

RPMREADER_MAXIMUM (entier)

La valeur maximale valide pour n'importe quel numéro de tag RPM.

Exemples

Cet exemple ouvrira un fichier RPM et lira le nom, la version et la date de mise à jour du fichier RPM, affichera les résultats et fermera le fichier RPM.

Exemple 1. Exemple Basic de RPMReader

<?php

$filename = "/chemin/vers/fichier.rpm";

// ouverture du fichier
$rpmr = rpm_open($filename);

// récupération du tag "Name"
$name = rpm_get_tag($rpmr, RPMREADER_NAME);

// récupération du tag "Version"
$ver = rpm_get_tag($rpmr, RPMREADER_VERSION);

// récupération du tag "Release"
$rel = rpm_get_tag($rpmr, RPMREADER_RELEASE);

echo "$name-$ver-$rel<br />\n";

// fermeture du fichier
rpm_close($rpmr);

?>
Table des matières
rpm_close -- Ferme un fichier RPM
rpm_get_tag -- Récupération d'un tag de l'en-tête d'un fichier RPM
rpm_is_valid -- Teste la validité du nom du fichier d'un fichier RPM
rpm_open -- Ouvre un fichier RPM
rpm_version -- Retourne une chaîne de caractères représentant la version courante de l'extension rpmreader

Précédent | Sommaire | Suivant
recode | Niveau supérieur | rpm_close


Fonctions runkit

Manuel PHP
Précédent Suivant

CXXXIX. Fonctions runkit

Introduction

L'extension runkit fournit les moyens de modifier les constantes, les fonctions et les classes définies par l'utilisateur. Elle fournit aussi ces moyens pour les variables superglobales et les sous-interpréteurs par sandboxing.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/runkit.

Ce paquetage est signifié en tant que remplacement de fonctionnalités pour le paquetage classkit. Lorsque compilé avec l'option --enable-runkit=classkit à ./configure, les définitions des fonctions et des constantes de classkit seront exportées.

Installation

Cette extension PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/runkit.

La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Pré-requis

Modification de Constantes, Fonctions, Classes et Méthodes fonctionne avec toutes les versions de PHP 4 et PHP 5. Aucune condition spéciale n'est nécessaire.

Les Superglobales Personnalisées sont seulement disponibles dans les versions PHP 4.2.0 et supérieures.

Sandboxing nécessite PHP 5.1.0 ou supérieur ou PHP 5.0.0 avec le patch spécial TSRM appliqué. Sans se soucier de quelle version de PHP est utilisé, sandboxing doit être compilé avec l'option --enable-maintainer-zts. Voyez le fichier README dans le paquetage de runkit pour plus d'informations.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de Configuration de Runkit

Nom | Par défaut | Modifiable | Historique
runkit.superglobal | "" | PHP_INI_PERDIR |
runkit.internal_override | "0" | PHP_INI_SYSTEM |
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

runkit.superglobal string

Liste de noms de variable séparés par des virgules à être traités comme variables superglobales. Cette valeur devrait être fixée dans le fichier du système php.ini, mais devrait fonctionner dans les contextes de configuration par dossier dépendamment de votre SAPI.

Exemple 1. Superglobales particulières avec runkit.superglobal=_FOO,_BAR dans php.ini

<?php
function montre_valeurs() {
  echo "Foo est $_FOO\n";
  echo "Bar est $_BAR\n";
  echo "Baz est $_BAZ\n";
}

$_FOO = 'foo';
$_BAR = 'bar';
$_BAZ = 'baz';

/* Montre foo et bar mais pas baz */
montre_valeurs();
?>

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

RUNKIT_IMPORT_FUNCTIONS (entier)

runkit_import() marque indiquant que les fonctions normales doivent être importées à partir du fichier spécifié.

RUNKIT_IMPORT_CLASS_METHODS (entier)

runkit_import() marque indiquant que les méthodes de classes doivent être importées à partir du fichier spécifié.

RUNKIT_IMPORT_CLASS_CONSTS (entier)

runkit_import() marque indiquant que les constantes de classes doivent être importées à partir du fichier spécifié. Notez que cette marque est seulement signifiante dans les versions PHP 5.1.0 et supérieures.

RUNKIT_IMPORT_CLASS_PROPS (entier)

runkit_import() marque indiquant que les propriétés standards de classes doivent être importée à partir du fichier spécifié.

RUNKIT_IMPORT_CLASSES (entier)

runkit_import() marque indiquant une opération de bits OU (OR) des constantes RUNKIT_IMPORT_CLASS_*.

RUNKIT_IMPORT_OVERRIDE (entier)

runkit_import() marque indiquant que si n'importe quelles fonctions, méthodes, constantes ou propriétés importées existent, elles doivent être remplacées par leurs nouvelles définitions. Si ce drapeau n'est pas activé, alors toutes définitions importées qui existent déjà seront supprimées.

RUNKIT_ACC_PUBLIC (entier)

Drapeau spécifique à PHP 5 pour runkit_method_add()

RUNKIT_ACC_PROTECTED (entier)

Drapeau spécifique à PHP 5 pour runkit_method_add()

RUNKIT_ACC_PRIVATE (entier)

Drapeau spécifique à PHP 5 pour runkit_method_add()

CLASSKIT_ACC_PUBLIC (entier)

Drapeau spécifique à PHP 5 pour runkit_method_add() Seulement définie lorsque les compatibilités classkit sont activées.

CLASSKIT_ACC_PROTECTED (entier)

Drapeau spécifique à PHP5 pour runkit_method_add() Seulement définie lorsque les compatibilités classkit sont activées.

CLASSKIT_ACC_PRIVATE (entier)

Drapeau spécifique à PHP 5 pour runkit_method_add() Seulement définie lorsque les compatibilités classkit sont activées.

CLASSKIT_AGGREGATE_OVERRIDE (entier)

Drapeau spécifique à PHP 5 pour classkit_import() Seulement définie lorsque les compatibilités classkit sont activées.

RUNKIT_VERSION (chaîne de caractères)

Définie la version courante du paquetage runkit.

CLASSKIT_VERSION (chaîne de caractères)

Définie la version courante du paquetage runkit. Seulement définie lorsque les compatibilités classkit sont activées.

Table des matières
Runkit_Sandbox -- Classe Runkit Sandbox -- Machine Virtuelle PHP
Runkit_Sandbox_Parent -- Classe Anti-Sandbox Runkit
runkit_class_adopt -- Convertit une classe de base à une classe héritée, ajoute une méthode ancestrale lorsque approprié
runkit_class_emancipate -- Convertit une classe héritée à une classe de base, supprime toute méthode pour qui la portée est ancestrale
runkit_constant_add -- Similaire à define(), mais permet aussi la définition dans définitions de classe
runkit_constant_redefine -- Redéfinit une constante déjà définie
runkit_constant_remove -- Enlève/Supprime une constante déjà définie
runkit_function_add -- Ajoute une nouvelle fonction, similaire à create_function()
runkit_function_copy -- Copie une fonction vers un nom de fonction nouveau
runkit_function_redefine -- Remplace une définition de fonction avec une nouvelle implémentation
runkit_function_remove -- Enlève une définition de fonction
runkit_function_rename -- Change le nom d'une fonction
runkit_import -- Traite un fichier PHP important fonctions et définitions de classes, écrasement où applicable
runkit_lint_file -- Vérifie la syntaxe PHP d'un fichier spécifié
runkit_lint -- Vérifie la syntaxe PHP de code PHP spécifié
runkit_method_add -- Ajoute dynamiquement une nouvelle méthode à une classe donnée
runkit_method_copy -- Copie une méthode d'une classe à une autre
runkit_method_redefine -- Change dynamiquement le code de la méthode donnée
runkit_method_remove -- Supprime dynamiquement la méthode donnée
runkit_method_rename -- Change dynamiquement le nom de la méthode donnée
runkit_return_value_used -- Détermine si la valeur de retour des fonctions courantes sera utilisée
runkit_sandbox_output_handler -- Spécifie une fonction à capturer et/ou traiter la sortie à partir d'un runkit sandbox
runkit_superglobals -- Retourne un tableau indexé numériquement des variables superglobales enregistrées

Précédent | Sommaire | Suivant
rpm_version | Niveau supérieur | Runkit_Sandbox


SAM - Messagerie asynchrone

Manuel PHP
Précédent Suivant

CXL. SAM - Messagerie asynchrone

Introduction

Cette extension fournit un accès aux fonctionnalités des systèmes de messageries et de mise en file d'attente, comme les produits de la famille IBM WebSphere MQSeries, depuis des scripts PHP. L'interface a été conçue pour rendre simple les tâches les plus communes comme délivrer des messages simples à la file d'attente, mais permet aussi aux utilisateurs plus expérimentés d'effectuer des opérations plus complexes. Pour la plupart des utilisateurs, les configurations des options complexes peuvent être tout simplement ignorées.

Installation

Prérequis

L'extension SAM interface la messagerie IBM ainsi que les produits de mise en file d'attente en utilisant un jeu de bibliothèques et du code côté client. Ce paquet est disponible en téléchargement gratuit dans le guide du support IBM pack IA94. Il y a une description de ce paquet ainsi que des liens de téléchargements dans l'article "Introduction à XMS - L'API IBM Message Service".

Si vous voulez utiliser SAM pour accéder à l'infrastructure de messagerie et de mise en file d'attente dans un WebSphere MQ, alors vous devriez également installer un gestionnaire local de mise en file d'attente MQ ou installer la paquet client WebSphere MQ. Le paquet client est disponible librement en tant qu'un pack support (MQC6).

Si vous voulez juste tester l'envoi de message depuis et vers une application WebSphere en utilisant le protocole WebSphere Platform Messaging (WPM), alors, vous n'avez pas besoin d'installer le paquet MQC6.

Après avoir installés ces paquets, vous devez vous assurer que le binaire XMS, si vous l'utilisez, et que le client MQ sont accessibles via la variable d'environnement PATH afin qu'Apache et PHP puissent trouver les bibliothèques nécessaires.

Étapes d'installation sous Linux

L'extension SAM est fournie en tant que module PECL. Vous devriez donc pouvoir la télécharger et l'installer en une seule étape, comme ceci :

pear install sam
(Suivant votre environnement PHP, vous devrez probablement être "root" pour faire ceci.)

Assurez-vous que le module a été chargé par PHP, en ajoutant la ligne suivante à votre php.ini :

extension=sam.so

Si vous ne pouvez pas utiliser l'installeur PEAR, vous pouvez télécharger l'extension et la construire manuellement :

pear download sam          #téléchargement de sam-<version>.tgz
tar -xzf sam-<version>.tgz
cd sam-<version>
phpize
./configure
make
make install               #vous devriez devoir être root pour cette étape

Pour avoir la toute dernière source, vous devriez extraire les sources depuis cvs et la construire en utilisant les instructions qui se trouvent dans ce manuel.

Étapes d'installation sous Windows

Actuellement, vous devez construire l'extension SAM pour Windows car il n'existe pas de binaire pré-construit. L'extension peut être construite en utilisant les procédures standards de construction des extensions Windows.

Vous devez avoir les sources de PHP pour lesquelles l'extension SAM doit être utilisée. Les sources doivent être décompressées dans le répertoire de votre choix.

Vous devez également avoir les bibliothèques et en-têtes utilisés par les extensions PHP, disponibles sur http://www.php.net/extra/win32build.zip et doivent être décompressés dans le même dossier de travail.

Vous devriez obtenir quelque chose comme :

c:\php-build\-
|
|---php-5.0.5--|---build
|              |---ext
|              |--- ...
|
|---win32build--|---bin
|---include
|---lib

Vous devez avoir également un compilateur, par exemple, la version gratuite de Visual Studio C++ Express que vous trouverez sur le site web de Microsoft. Vous devez aussi avoir le SDK Microsoft Windows Platform qui est également disponible sur le site web de Microsoft.

Téléchargez les sources de l'extension SAM (pear download sam) ou en utilisant CVS et copiez les fichiers dans un nouveau dossier "sam" du dossier "ext" des sources PHP.

Pour construire l'extension, ouvrez un environnement de construction Windows via mnu->Tous les programmes->microsoft platform SDK for windows-> open build environment window->windows 200 build environment-> set windows 2000 build environment (retail)

Ceci devrait ouvrir une fenêtre de commande avec toutes les variables d'environnements définies afin d'accéder à la plateforme SDK, etc. Vous devez ensuite définir les variables d'environnements pour Visual Studio en lançant la commande "vcvars32.bat" dans la fenêtre.

Déplacez-vous dans votre dossier de travail, e.g. cd c:\php-build. Ensuite, assurez-vous que les utilitaires win32build soient accessibles en ajoutant la variable d'environnement suivante :

set PATH=..\win32build\bin;%PATH%

Exécutez la commande buildconf.bat. Ceci devrait reconstruire le fichier configure.js.

Exécutez la commande cscript :

cscript /nologo configure.js --with-sam="c:\program files\ibm\xms"

Le paramètre additionnel passé à SAM est le chemin d'installation vers les bibliothèques XMS et d'exécution qui ont été installées comme décrit en début de ce manuel.

Vous pouvez spécifier d'autres paramètres cscript dont vous avez besoin pour inclure et excluse des éléments de votre construction de PHP ou des options sélectionnées.

En supposant que tout est Ok jusqu'ici pour vous, vous pouvez maintenant lancer la construction !

nmake php_sam.dll

Étapes additionnelles pour Visual Studio 2005

Si vous contruisez l'extension SAM avec le compilateur et les outils Microsoft Visual Studio 2005, vous devez effectuer une étape supplémentaire dans le processus de compilation afin de vous assurer que la bibliothèque php_sam.dll soit capable de se lier aux bibliothèques C durant l'exécution. Cette étape ajoute la dépendance directement dans la DLL. Déplacez-vous dans le répertoire où la bibliothèque php_sam.dll a été générée (habituellement le dossier Release_TS ou Debug_TS du dossier des sources PHP) et exécutez l'incantation magique suivante :

mt.exe -manifest php_sam.dll.manifest -outputresource:php_sam.dll;2

Si vous construisez l'extension SAM en utilisant le compilateur et les bibliothèques Microsoft Visual Studio 2005, vous devriez aussi vous assurer que les composants d'exécution sont présents sur le système sur lequel vous voulez utiliser SAM. Ceci peut être fait en installation Visual Studio 2005 ou en utilisant le paquet d'exécution librement distribuable.

Utilisation de l'API

Connexions

Afin d'exécuter des fonctions de messageries et de mise en file d'attente, une connexion doit être éablie avec un serveur de messagerie en créant un objet SAMConnection et en appelant sa méthode "connect", avec quelques propriétés de connexion, afin de connecter le script PHP au serveur de messagerie. Pendant le temps où l'objet SAMConnection n'est pas détruit, la connexion sera maintenue et disponible. Tous les objets SAMConnection seront détruis lorsque le script PHP se terminera.

Quelques propriétés par défaut peuvent être utilisées pour la connexion au serveur de messagerie mais le script PHP doit spécifier au minimum le protocole à utiliser.

Exemple 1. Création d'une connexion et connexion à un serveur de messagerie distant WebSphere MQSeries

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => monhote.macompanie.com,
    SAM_PORT => 1506,
    SAM_BROKER => mybroker));
?>

Exemple 2. Création d'une connexion et connexion à un serveur distant WebSphere Application

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
    SAM_BUS => 'Bus1',
    SAM_TARGETCHAIN => 'InboundBasicMessaging'));
?>

Messages

Les messages envoyés et reçus depuis les files d'attente sont représentés par l'objet SAMMessage. L'objet SAMMessage contient le corps du message (s'il existe) ainsi que les propriétés des en-têtes associés au message. L'objet SAMMessage est soit fourni en tant que paramètre d'une opération sur un message, ou retourné comme résultat.

Exemple 3. Création d'un message avec un coprs texte simple

<?php
$msg = new SAMMessage('This is a simple text message');
?>

Les messages doivent avoir des propriétés d'en-têtes associés, qui permettent le contrôle du transport du message ou fournissent des informations futures sur l'application réceptrice. Par défaut, les propriétés des messages sont délivrées au système de messagerie sous la forme de chaînes de caractères et dans ce cas, peuvent être définies comme ceci :

Exemple 4. Définission d'une propriété de formatage de texte en utilisant la synthaxe par défaut

<?php
$msg->header->myPropertyName = 'textData';
?>

Si vous voulez passer des informations sur le type, une syntahxe alternative peut être utilisée où la valeur et le type sont passés dans un tableau associatif :

Exemple 5. Définission d'une propriété en spécifiant le type

<?php
$msg->header->myPropertyName = array(3.14159, SAM_FLOAT);
?>

Les propriétés peuvent également être extraites depuis l'en-tête d'un message.

Exemple 6. Récupération d'une propriété depuis l'en-tête d'un message

<?php
$myProperty = $msg->header->myPropertyName;
?>

Opérations de messagerie

Toutes les opérations de messagerie sont exécutées via des appels aux méthodes sur l'objet de connexion. Pour ajouter un message à la file d'attente, la méthode "send" est utilisée, tandis que pour obtenir un message depuis la file d'attente, la méthode "receive" est utilisée. D'autres méthodes offrent d'autres fonctionnalités comme la publication, la souscription ou encore le contrôle sur les transactions.

Exemple 7. Ajout d'un message à la file d'attente et réception de la réponse

<?php
$msg = new SAMMessage('Ceci est un message texte simple');
$msg->header->SAM_REPLY_TO = 'queue://receive/test';
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
// L'envoi a échoué !
echo "Échec de l'envoi : ($conn->errno) $conn->error";
} else {
$resp = $conn->receive('queue://receive/test', array(SAM_CORRELID => $correlid));
}
?>

Publication/Souscription à un sujet

SAM permet d'envoyer des messages soit à la file d'attente, ou, pour WebSphere MQ et WPM, de publier/souscrire à des sujets. L'envoi à un sujet est spécifié à SAM de la façon habituelle, i.e. sous la forme 'topic://fred', plutôt que sous la forme 'queue://AQUEUE', utilisée pour une opération de point à point. Pour publier/souscrire, il est tout simplement nécessaire de spécifier le correct du courtier lors de l'appel à la méthode "connect" de l'objet SAMConnect et le sujet désiré dans l'argument de destination des appels aux méthodes "send" et "receive" de l'objet SAMConnect. L'interface PHP est cependant identique au model point à point.

Par défaut, SAM crée des souscriptions non durables lors de l'utilisation des fonctionnalités de publication/souscription. Cela signifie que si l'application cliente est inactive lorsque les messages sont publiés sur un sujet, alors il ne les recevra pas lorsqu'il redemarrera. SAM permet également des souscriptions durables à un sujet lors de l'utilisation de WPM ou WebSphere. Le but de ces souscriptions est de permettre aux données d'être reçues par une application cliente même si le client n'est plus actif au moment où les données sont publiées.

Les souscriptions durables sont spécifiées en utilisant l'appel à la méthode "suscribe" de l'objet SAMConnect. Cette méthode prend le sujet destinataire en tant qu'argument d'entrée et retourne l'identifiant de souscription qui pourra être utilisé lors des prochains appels à la méthode "receive". Lorsque la souscription n'est plus nécessaire, la méthode "unsubscribe" de l'objet SAMConnection dot être utilisée pour effacer la souscription.

Exemple 8. Création d'une souscription durable à un sujet

<?php

$subName = $conn->subscribe('topic://A');

if (!$subName) {
    echo "Échec de la souscription";
} else {
    # Souscription Ok
    ...
}
?>

Exemple 9. Souscription à un sujet en utilisant un serveur WebSphere Platform Messaging (WPM)

<?php
$conn = new SAMConnection();
// Note: Pour une publication/souscription sur un WPM, lors de la connexion, le nom du moteur de messagerie
// qui gère la souscription durable (SAM_WPM_DUR_SUB_HOME) doit être spécifié.
$conn->connect(SAM_WMQ, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
SAM_BUS => 'Bus1',
SAM_TARGETCHAIN => 'InboundBasicMessaging'
SAM_WPM_DUR_SUB_HOME => 'MyMachineNode01.server1-Bus1'));

$subName = $conn->subscribe('topic://A');

if (!$subName) {
    echo "Échec de la souscription";
} else {
    # Souscription Ok
    ...
}
?>

Exemple 10. Réception des données publiées en utilisant une souscription durable

<?php

$msg = $conn->receive($subName);
if ($msg) {
    echo "Réception d'un message Ok";
} else {
    echo "Échec de la réception";
}

?>

Exemple 11. Effacement d'une souscription durable à un sujet

<?php

if (!$conn->unsubscribe($subName)) {
    echo "Échec lors de l'effacement de la souscription";
}

?>

Gestion des erreurs

Toutes les méthodes SAMConnection qui fournissent un accès aux opérations de messagerie retourne FALSE si une erreur survient durant le processus. En plus de cela, l'objet SAMConnection a deux propriétés, "errno" et "error", qui fournissent respectivement le numéro et la description de la dernière erreur survenue sur la connexion.

Exemple 12. Gestion d'une erreur depuis une méthode qui ne retourne aucun résultat

<?php
if (!$conn->commit()) {
    // Le commit a échoué !
    echo "Le commit a échoué : ($conn->errno) $conn->error";
}
?>

Exemple 13. Gestion d'une erreur depuis une méthode qui retourne un résultat

<?php
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
    // L'envoi a échoué !
    echo "L'envoi a échoué : ($conn->errno) $conn->error";
} else {
    ...
}
?>

Classes pré-définies

SAMConnection

Objet représentant une connexion à un serveur de messagerie

Constructeur

  • new SAMConnection - construit un nouvel objet de connexion permettant une connexion à une infrastructure de messagerie.

Méthodes

  • commit - une méthode qui valide un travail.

  • connect - une méthode qui connecte un script PHP à un serveur de messagerie.

  • disconnect - une méthode qui déconnecte un script PHP d'un serveur de messagerie.

  • isConnected - une méthode qui vérifie si un script PHP est connecté à un serveur de messagerie.

  • peek - une méthode qui reçoit un message depuis la file d'attente sans pour autant l'effacer de la file d'attente.

  • peekAll - une méthode qui reçoit un ou plusieurs messages depuis la file d'attente sans pour autant les effacer de la file d'attente.

  • receive - une méthode qui reçoit un message depuis la file d'attente ou depuis une souscription.

  • remove - une méthode qui efface un message depuis la file d'attente.

  • rollback - une méthode qui annule un travail.

  • send - une méthode qui envoie un message à une file d'attente ou sur un sujet.

  • subscribe - une méthode qui crée une souscription à un ou plusieurs sujets.

  • unsubscribe - une méthode qui détruit une suscription à un ou plusieurs sujets.

Propriétés

  • errno - le numéro de la dernière erreur survenue sur la connexion. Cette propriété est définie à 0 si la dernière opération a réussi.

  • error - la description de la dernière erreur survenue sur la connexion.

SAMMessage

Objet représentant un message à envoyer ou à recevoir.

Constructeur

  • new SAMMessage - construit un nouveau message.

Propriétés

  • body - le corps du message.

  • header - les propriétés d'en-tête du message.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SAM_AUTO (chaîne de caractères)

Comportement automatique

SAM_BOOLEAN (chaîne de caractères)

Type à utiliser lors de la configuration des propriétés des objets SAM_Message.

SAM_BUS (chaîne de caractères)

Attribut de connexion à utiliser pour définir le nom du service bus entreprise à s'y connecter.

SAM_BYTE (chaîne de caractères)

Type à utiliser lors de la configuration des propriétés des objets SAM_Message.

SAM_BYTES (chaîne de caractères)

Descripteur du type du corps du message.

SAM_CORRELID (chaîne de caractères)

Attribut utilisé lors de la réception, de l'envoi et de l'effacement pour identifier les messages.

SAM_DELIVERYMODE (chaîne de caractères)

Propriété de l'en-tête du message.

SAM_DOUBLE (chaîne de caractères)

Type à utiliser lors de la configuration des propriétés des objets SAM_Message.

SAM_ENDPOINTS (chaîne de caractères)

Attribut de connexion à utiliser pour définir les "endpoints" possibles à s'y connecter.

SAM_FLOAT (chaîne de caractères)

Type à utiliser lors de la configuration des propriétés des objets SAM_Message.

SAM_HOST (chaîne de caractères)

Attribut de connexion à utiliser pour définir le nom de l'hôte du serveur de messagerie requis.

SAM_INT (chaîne de caractères)

Type à utiliser lors de la configuration des propriétés des objets SAM_Message.

SAM_LONG (chaîne de caractères)

Type à utiliser lors de la configuration des propriétés des objets SAM_Message.

SAM_MANUAL (chaîne de caractères)

Comportement manuel (contrôlé par le script)

SAM_MESSAGEID (chaîne de caractères)

Attribut utilisé lors de la réception et de l'effacement pour identifier les messages.

SAM_MQTT (chaîne de caractères)

Définition du protocole de connexion pour sélectionner le protocole MQTT (MQ Telemetry Transport).

SAM_MQTT_CLEANSTART (bool)

Option de connexion optionnel indiquant à un serveur MQTT que toutes les connexions précédentes de ce client doivent être effacées et que ces souscriptions doivent également être effacées lorsque le client se déconnecte explicitement ou de façon inattendu.

SAM_NON_PERSISTENT (chaîne de caractères)

Attribut de connexion utilisé pour rendre la connexion non persistante sur le serveur de messagerie.

SAM_PASSWORD (chaîne de caractères)

Attribut de connexion utilisé pour définir le mot de passe pour l'utilisateur utilisé pour la connexion au serveur de messagerie.

SAM_PERSISTENT (chaîne de caractères)

Attribut de connexion utilisé pour rendre la connexion persistante sur le serveur de messagerie.

SAM_PORT (chaîne de caractères)

Attribut de connexion utilisé pour spécifier le numéro du port sur lequel le serveur de messagerie écoute.

SAM_PRIORITY (chaîne de caractères)

Option utilisée pour spécifier la priorité de délivrance des demandes.

SAM_REPLY_TO (chaîne de caractères)

Propriété du message utilisée pour spécifier l'adresse de la réponse.

SAM_RTT (chaîne de caractères)

Définition du protocole de connexion sélectionnant le protocole IBM Realtime Transport utilisé pour la communication avec le serveur de messagerie.

SAM_STRING (chaîne de caractères)

Type à utiliser lors de la configuration des propriétés des objets SAM_Message.

SAM_TARGETCHAIN (chaîne de caractères)

Attribut de connexion utilisé pour définit la chaîne identifiant la cible.

SAM_TEXT (chaîne de caractères)

Descripteur du type de corps du message.

SAM_TIMETOLIVE (chaîne de caractères)

Option du message envoyé utilisé pour spécifier la durée de vie d'un message.

SAM_TRANSACTIONS (chaîne de caractères)

Attribut de connexion utilisé pour définir le comportement transactionnel. Peut être définit à SAM_AUTO (par défaut) ou SAM_MANUAL.

SAM_USERID (chaîne de caractères)

Attribut de connexion utilisé pour définir le compte à utiliser pour se connecter au serveur de messagerie.

SAM_WAIT (chaîne de caractères)

Propriété reçue à utiliser pour spécifier le délai d'attente maximal à utiliser lors de la réception d'un message.

SAM_WMQ (chaîne de caractères)

Définition du protocole de connexion pour sélectionner le protocole IBM WebSphere MQSeries pour la communication avec un serveur de messagerie.

SAM_WMQ_BINDINGS (chaîne de caractères)

Définition du protocole de connexion pour sélectionner le protocole IBM WebSphere MQSeries pour la communication avec un serveur de messagerie local.

SAM_WMQ_CLIENT (chaîne de caractères)

Définition du protocole de connexion pour sélectionner le protocole IBM WebSphere MQSeries pour la communication avec un serveur de messagerie distant.

SAM_WMQ_TARGET_CLIENT (chaîne de caractères)

Option utilisé sur les demandes envoyées pour spécifier le mode du client cible. Elle peut valoir, par défaut, 'jms' ou 'mq'. La valeur par défaut est 'jms', ce qui signifie qu'un en-tête RFH2 est envoyé avec le message, tandis qu'avec 'mq', aucun en-tête RFH2 n'est envoyé.

SAM_WPM (chaîne de caractères)

Définition du protocole de connexion pour sélectionner le protocole IBM WebSphere Platform Messaging pour la communication avec un serveur de messagerie WebSphere Application Server.

Table des matières
SAMConnection->commit() -- Valide le travail courant
SAMConnection->connect() -- Établie une connexion à un serveur de messagerie
SAMConnection->__construct() -- Crée une nouvelle connexion à un serveur de messagerie
SAMConnection->disconnect() -- Déconnection d'un serveur de messagerie
SAMConnection->errno -- Récupère le numéro de la dernière erreur issue d'une opération SAM
SAMConnection->error -- Récupère la description de la dernière erreur d'une opération SAM
SAMConnection->isConnected() -- Vérifie si une connexion est établie avec un serveur de messagerie
SAMConnection->peek() -- Lit un message depuis la file d'attente sans l'effacer
SAMConnection->peekAll() -- Lit un ou plusieurs messages depuis la file d'attente sans les effacer
SAMConnection->receive() -- Reçoit un message depuis une file d'attente ou d'une souscription
SAMConnection->remove() -- Efface un message depuis la file d'attente
SAMConnection->rollback() -- Annulation d'un travail
SAMConnection->send() -- Envoie un message à une file d'attente ou le publie sur un sujet
SAMConnection::setDebug() -- Turn on or off additional debugging output.
SAMConnection->subscribe() -- Crée une souscription à un sujet spécifique
SAMConnection->unsubscribe() -- Annule une souscription à un sujet spécifique
SAMMessage->body -- Définit le corps d'un message
SAMMessage->__construct() -- Crée un nouvel objet de message
SAMMessage->header -- Les propriétés d'en-tête d'un message

Précédent | Sommaire | Suivant
runkit_superglobals | Niveau supérieur | SAMConnection->commit()


Extension client Satellite CORBA (Obsolète)

Manuel PHP
Précédent Suivant

CXLI. Extension client Satellite CORBA (Obsolète)

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Satellite est obsolète. Il est suggéré que vous utilisiez Universe (http://universe-phpext.sourceforge.net/) et non Satellite.

L'extension Satellite est utilisée pour accéder à des objets CORBA. Vous devrez fixer l'entrée idl_directory= dans le php.ini au chemin où vous enregistrez tous vos fichiers IDL que vous utilisez.

Voyez le fichier README de Satellite pour plus de détails à propos de l'installation de Satellite.

Table des matières
OrbitEnum -- Utilise les enums de Corba
OrbitObject -- Accéder à des objets CORBA
OrbitStruct -- Utilise des structures CORBA
satellite_caught_exception -- Vérifie si une exception a été attrapée de la fonction précédente
satellite_exception_id -- Récupère l'id du dossier pour la dernière exception
satellite_exception_value -- Récupère la structure de l'exception pour la dernière exception
satellite_get_repository_id -- NON MIS EN APPLICATION
satellite_load_idl -- Instruit le gestionnaire de type pour charger un fichier IDL
satellite_object_to_string -- Convertit un objet vers sa représentation de chaîne de caractères

Précédent | Sommaire | Suivant
SAMMessage->header | Niveau supérieur | OrbitEnum


SCA Functions

Manuel PHP
Précédent Suivant

CXLII. SCA Functions

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

SCA for PHP makes it possible for a PHP programmer to write reusable components, which can be called in a variety of ways, with an identical interface and with a minimum of fuss. At present components can call each other either locally or via Web services, but in the future it is expected that other ways will be possible. It provides the programmer with a way of doing this which will look as natural as possible in PHP.

SCA components use phpDocumentor-style (see http://www.phpdoc.org/) annotations to declare dependencies on other SCA components or Web services. The SCA for PHP runtime resolves these dependencies at runtime on behalf of the components, and thus allows the PHP programmer to focus on the business logic rather than on locating and obtaining references to dependencies.

The SCA for PHP programming model can be extended to support a number of service types, such as REST and Atompub. However, Web services (more accurately, WSDL defined, SOAP/HTTP services), are the only type currently specified.

Components also use annotations to define the interface which they expose as a service. The SCA for PHP runtime will automatically generate WSDL from these annotations, so that an SCA component is easily exposed as a web service. These annotations are a natural extension to those provided by phpDocumentor. Deploying a Web service can be as simple as placing a PHP component under the document root of a web server.

Components also use annotations to specify data structures (expressed using XML schema complex types) which are then handled using Service Data Objects (SDOs).

A PHP script which is not an SCA component and which contains no annotations can use the services of an SCA component. A PHP script or component can make calls to a web service that is not an SCA component, but using the same system of calls or annotations to obtain a reference.

First we show a single SCA component, ConvertedStockQuote which illustrates many of the features of SCA for PHP. It has one method, getQuote(), which given a stock "ticker" obtains a price quote for that stock, converted to a given currency. We shall be using this example as a basis for explaining the SCA for PHP throughout the rest of this document.

Exemple 1. A sample SCA component

<?php

include "SCA/SCA.php";

/**
 * Calculate a stock price for a given ticker symbol in a given currency.
 *
 * @service
 * @binding.ws
 */
class ConvertedStockQuote {

    /**
     * The currency exchange rate service to use.
     *
     * @reference
     * @binding.php ../ExchangeRate/ExchangeRate.php
     */
    public $exchange_rate;

    /**
     * The stock quote service to use.
     *
     * @reference
     * @binding.wsdl ../StockQuote/StockQuote.wsdl
     */
    public $stock_quote;

    /**
     * Get a stock quote for a given ticker symbol in a given currency.
     *
     * @param string $ticker The ticker symbol.
     * @param string $currency What currency to convert the value to.
     * @return float The stock value is the target currency.
     */
    function getQuote($ticker, $currency)
    {
        $quote  = $this->stock_quote->getQuote($ticker);
        $rate   = $this->exchange_rate->getRate($currency);
        return  $rate * $quote;
    }
}
?>

In this example, we see that an SCA component is implemented by a script containing a PHP class and includes SCA.php. The class contains a mixture of business logic and references to other components or services. In the illustrated getQuote() method there is only business logic, but it relies on the instance variables $stock_quote and $exchange_rate having been initialized. These refer to two other components and will be initialized by the SCA runtime with proxies for these two services, whenever this component executes. The annotations for these two services show one to be a local component, which will be called within the same PHP runtime, and one to be a remote component which will be called via a SOAP request. This component also exposes the getQuote() method both locally and as a web service, so it in turn can be called either locally or remotely.

Pré-requis

If you want to use SCA to consume or produce Web services then you need PHP 5.2.0 or later, built with the soap extension enabled. If you just want to use local components, and do not wish to use the Web service bindings, then this version of SCA for PHP will also run with PHP 5.1.6.

Installation

SCA is packaged along with SDO in one combined package on PECL. See http://www.php.net/sdo#sdo.installation for installing the SCA_SDO package from PECL. The SCA code must be on the include path of your PHP installation, for example if it is installed as /usr/local/lib/php/SCA, the include_path directive must include /usr/local/lib/php

Exemples

The examples in the subsequent sections illustrate the following aspects of PHP for SCA:

  • How PHP annotations are used to define PHP classes as SCA components, and how annotations are used to define the services.

  • How an SCA component can be exposed as a Web service

  • How an SCA component can consume a Web service, whether provided by another SCA component or by some other service which knows nothing of SCA

  • How an SCA component can call another SCA component locally (within the same process and on the same call stack)

  • How a client script which is not an SCA component can use the getService call to obtain a proxy for an SCA component.

  • How data structures such as Addresses, or Puchase Orders, are represented as Service Data Objects, and handled.

  • How SCA components are deployed, and in particular how and when WSDL is generated for a service.

  • How parameters are always passed by value (and not by reference) between components, even when the calls are local. This ensures that the semantics of a call do not change depending on the location of a component.

  • How positional parameters to a service are supported, even when the underlying WSDL is document literal wrapped, and naturally supports only named parameters.

  • How business and runtime exceptions are handled.

The structure of a Service Component

A service component is implemented by a class. To identify it as a service component, it contains an @service annotation. The SCA runtime will use the file name of the script to determine the component name, by convention. The class and script file must therefore share the same name.

PHP SCA components always expose a service, and there is no way for a component to be invoked other than to be called as a result of a Web service request, or called directly from another component or from a script. For this reason a valid PHP SCA component will always contain an @service annotation and at least one public method.

Each SCA Component requires that the SCA.php script is included. As well as containing the definition of the SCA class, this script contains executable PHP code that will run whenever the script is called, and which will be responsible for making the component behave as needed.

Attention

It is very important that if your file contains other includes, they come before the include for SCA.php. If there are includes after the include for SCA.php, they will not have been processed when the SCA runtime runs your class.

The example below illustrates this overall structure

Exemple 2. The structure of an SCA for PHP component

<?php

// any includes

include "SCA/SCA.php

/**
 * @service
 */

class ConvertedStockQuote {

       // instance variables, business logic, including at least one public method

}
?>

Obtaining a proxy for another Service Component

One SCA component can call the service provided by another SCA component. The service a component provides is made up of all of its public methods. SCA for PHP currently provides two ways for one component to call another: either locally (i.e. within the same PHP run-time, and on the same call stack) or remotely if the called component exposes a Web service binding.

In order for one component to call another, the calling component needs a proxy for the called component. This proxy is usually provided as an instance variable in the calling component, though proxies can also be obtained with the SCA::getService() call, as we shall see later. When a component is constructed, proxies are constructed for any instance variable which refer to another component, and these proxies are "injected" into the instance variables. Proxies are always used, whether the component is local or remote, in order to provide identical calling behavior between remote and local calls (for example, local calls are made to always pass data by-value). The proxies know how to locate the required component and to pass the calls made on to them.

Instance variables which are intended to hold proxies for services are indicated by the two PHPDocumentor-style annotations, @reference and @binding. Both annotations are placed in the documentation section for a class instance variable, as shown by the code below.

The @reference annotation before an instance variable indicates that that instance variable is to be initialized with a proxy to a component.

The @binding annotation has two forms @binding.php and @@binding.ws, and indicates that the proxy is either for a local component or for a Web service respectively. For both @binding.php and @binding.ws, the annotation gives a target URI.

At the moment, with the annotation-based method of specifying dependencies, the only way to alter the intended target of a reference is to alter the annotation within the component.

In our ConvertedStockQuote example, the $exchange_rate instance variable will be initialized with a proxy to the local ExchangeRate component whenever an instance of the ConvertedStockQuote is constructed.

Exemple 3. Obtaining a proxy for a local PHP class

<?php
   /**
     * The currency exchange rate service to use.
     *
     * @reference
     * @binding.php ../ExchangeRate/ExchangeRate.php
     */
    public $exchange_rate;
?>

For @binding.php, the URI identifies the location of the script containing the implementation of the component. The component will be called locally. The service provided is the set of public methods of the component. The URI must be a simple pathname, either absolute or relative. The component will be loaded with the PHP include directive, after testing to see if it is already loaded with class_exists(). If the URI is a relative path, it is resolved relative to the component containing the annotation. Note that this is different from the normal PHP behaviour where scripts would be looked for along the PHP include_path, This is intended to provide some location-independence for cross-component references.

If this ExchangeRate service were remote and to be called as a Web service, only the @binding line changes. Instead of giving the location of a PHP class, it gives the location of the WSDL describing the web service. In our example component, this is illustrated by the second reference:

Exemple 4. Obtaining a proxy for a web service

<?php
/**
     * The stock quote service to use.
     *
     * @reference
     * @binding.wsdl ../StockQuote/StockQuote.wsdl
     */
    public $stock_quote;
?>

The StockQuote component will be called via a Web service request. In this case the URI for the WSDL can be a simple pathname, or may contain a PHP wrapper and begin, for example, with file:// or http://. In the event that it is a simple pathname, it can be absolute or relative, and if relative will be resolved relative to the component containing the annotation. Note that this is like the behaviour for @binding.php, and different from the normal PHP behaviour where the file would be looked for relative to the PHP current working directory, which would usually be the location of the first script to be called. This behaviour is intended to give consistency across the different bindings and to provide some location-independence for references between components.

Calling another Service Component

The ConvertedStockQuote example also calls the proxies for the two components to which it refers.

Exemple 5. Calling services

<?php
$quote  = $this->stock_quote->getQuote($ticker);
$rate   = $this->exchange_rate->getRate($currency);
?>

The call to the StockQuote service is a call to a local service; the call to the ExchangeRate service is a call to a remote service. Note that the way the call is made looks the same regardless of whether the call is to a local service or a remote one.

The proxies which have been injected ensure that the way calls to components look and behave are the same way regardless of whether they are to a local or remote service, so that components are not sensitive to whether a call is to a local or a remote service. For example, the proxy for a local service takes copies of the arguments and passes only those copies, to ensure that calls are made to be pass-by-value, as they would be for a remote call. Also, the proxy for a remote service takes the arguments from a positional parameter list and ensures they are packaged properly in a SOAP request and converted back to a positional parameter list at the far end.

In the example above, the $ticker and $currency are clearly PHP scalar types. Components can pass the PHP scalar types string, integer, float and boolean, but data structures on service calls are always passed as Service Data Objects (SDOs). A later section describes how a component can create an SDO to pass on a local or Web service call, or how a component can create an SDO to return. The PHP SDO project documentation describes how to work with the SDO APIs (see the SDO pages.

Locating and calling services from a script which is not an SCA Component

SCA components obtain proxies for other components or services as instance variables annotated with @reference, but this is not possible for a script that is not itself also a component. A client script which is not a component must use the SCA::getService() static method to obtain a proxy for a service, whether local or remote. The getService() method takes a URI as the argument. Typically this is the location of a local PHP script containing a component, or of a wsdl file, and is used in exactly the same way as the targets of the @binding annotations described in the previous section: that is, relative URIs are resolved against the location of the client script and not against the PHP include_path or current working directory.

For example, a script that needed to obtain proxies for the ExchangeRate and StockQuote services but was not a component would use the getService() method as follows:

Exemple 6. Obtaining a proxy using getService

<?php
$exchange_rate = SCA::getService('../ExchangeRate/ExchangeRate.php');
$stock_quote   = SCA::getService('../StockQuote/StockQuote.wsdl');
?>

Methods on services can then be called on the returned proxy, just as they can in a component.

Exemple 7. Making calls on the proxy

<?php
$quote  = $stock_quote->getQuote($ticker);
$rate   = $exchange_rate->getRate($currency);
?>

Exposing a Service Component as a Web service

SCA for PHP can generate WSDL from the annotations within a service component, so that it can be easily deployed and exposed as a Web service. To provide SCA with the information it needs to generate the WSDL, it is necessary to add the annotation @binding.ws under the @service annotation and to specify the parameters and return values of the methods using the @param and @return annotations. These annotations will be read when WSDL is generated, and the order and types of the parameters determine the contents of the <schema> section of the WSDL.

SCA for PHP always generates document/literal wrapped WSDL for components that are exposing a Web service. Note that this does not stop components from consuming Web services which are not SCA components and which are documented with WSDL written in a different style.

The scalar types which can be used in the @param annotation are the four common PHP scalar types: boolean, integer, float and string. These are simply mapped to the XML schema types of the same name in the WSDL. The example below, which is a trivial implementation of the StockQuote service that the ConvertedStockQuote component calls, illustrates string and float types.

Exemple 8. StockQuote Service

<?php

include "SCA/SCA.php";

/**
 * Scaffold implementation for a remote StockQuote Web service.
 *
 * @service
 * @binding.ws
 *
 */
class StockQuote {

    /**
     * Get a stock quote for a given ticker symbol.
     *
     * @param string $ticker The ticker symbol.
     * @return float The stock quote.
     */
    function getQuote($ticker) {
        return 80.9;
  }
}
?>

WSDL much like the following (though with a service location other than 'localhost', probably) would be generated from this service:

Exemple 9. Generated WSDL

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xsi:type="tDefinitions"
    xmlns:tns2="http://StockQuote" xmlns:tns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns3="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://StockQuote">
  <types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
      targetNamespace="http://StockQuote">
      <xs:element name="getQuote">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ticker" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getQuoteResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="getQuoteReturn" type="xs:float"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  </types>

  <message name="getQuoteRequest">
    <part name="getQuoteRequest" element="tns2:getQuote"/>
  </message>
  <message name="getQuoteResponse">
    <part name="return" element="tns2:getQuoteResponse"/>
  </message>
  <portType name="StockQuotePortType">
    <operation name="getQuote">
      <input message="tns2:getQuoteRequest"/>
      <output message="tns2:getQuoteResponse"/>
    </operation>
  </portType>
  <binding name="StockQuoteBinding" type="tns2:StockQuotePortType">
    <operation name="getQuote">
      <input>
        <tns3:body xsi:type="tBody" use="literal"/>
      </input>
      <output>
        <tns3:body xsi:type="tBody" use="literal"/>
      </output>
      <tns3:operation xsi:type="tOperation" soapAction=""/>
    </operation>
    <tns3:binding xsi:type="tBinding" transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
  </binding>
  <service name="StockQuoteService">
    <port name="StockQuotePort" binding="tns2:StockQuoteBinding">
      <tns3:address xsi:type="tAddress" location="http://localhost/StockQuote/StockQuote.php"/>
    </port>
  </service>
</definitions>

<!-- this line identifies this file as WSDL generated by SCA for PHP. Do not remove -->

Deploying an SCA component

There are no special steps needed to deploy a PHP SCA component. It is sufficient to place the component PHP script in its proper place under the web server document root, just like any other PHP script. It is the SCA::initComponent() executable line within each component that will be executed whenever the script is called, and which will be responsible for making the component respond appropriately to Web service calls, local calls, or requests for WSDL.

Obtaining the WSDL for an SCA component offering a Service as a Web service

SCA components that expose a Web service interface (i.e. have an @binding.ws annotation) will return their WSDL definition in response to an HTTP request with a get parameter of "wsdl". The usual way to obtain this is with "?wsdl" on the end of a URL. The example below uses file_get_contents() to obtain WSDL from a service and writes it to a temporary file before then obtaining a proxy for the service in the usual way. You could of course also obtain the WSDL in a browser, or by some other means, and save the file yourself.

Exemple 10. Generated WSDL

<?php
$wsdl 	= file_get_contents('http://www.example.com/Services/Example.php?wsdl');
file_put_contents("service.wsdl",$wsdl); //write the wsdl to a file
$service = SCA::getService('service.wsdl');
?>

NOTE: If the wsdl requires imported xsds, these will need to be fetched separately.

Understanding how the WSDL is generated

SCA for PHP generates WSDL for components which contain an @binding.ws annotation after the @service annotation. To generate WSDL, the SCA runtime reflects on the component and examines the @param and @return annotations for each public method, as well as any @types annotations within the component. The information from the @param and @return annotations is used to build the <types> section of the WSDL. Any @types annotations which specify a separate schema file will result in an <import> element for that schema within the WSDL.

Location attribute of the <service> element

At the bottom of the WSDL is the <service> element which uses the location attribute to identify the URL of the service. For example this might look as follows:

Exemple 11. location attribute

<service name="ConvertedStockQuote"
...
location="http://localhost/ConvertedStockQuote/ConvertedStockQuote.php"/>

Note that this location is relative to the document root of the web server, and cannot be worked out in advance. It can only be worked out once the component is in its proper place under a running web server, when the hostname and port can be known and placed in the WSDL. Detail from the URL that requests the WSDL is used, so for example if the WSDL is generated in response to a request to http://www.example.com:1111/ConvertedStockQuote/ConvertedStockQuote.php?wsdl, a location of http://www.example.com:1111/ConvertedStockQuote/ConvertedStockQuote.php is what will be inserted into the location attribute in the WSDL.

Document/literal wrapped WSDL and positional parameters

SCA for PHP generates WSDL in the document/literal wrapped style. This style encloses the parameters and return types of a method in 'wrappers' which are named after the corresponding method. The <types> element at the top of the WSDL defines each of these wrappers. If we consider the getQuote() method of the ConvertedStockQuote example:

Exemple 12. method with two arguments

<?php
   /**
     * Get a stock quote for a given ticker symbol in a given currency.
     *
     * @param string $ticker The ticker symbol.
     * @param string $currency What currency to convert the value to.
     * @return float The stock value is the target currency.
     */
    function getQuote($ticker, $currency)
    {
        $quote  = $this->stock_quote->getQuote($ticker);
        $rate   = $this->exchange_rate->getRate($currency);
        return  $rate * $quote;
    }
?>

The WSDL generated to define this method will name both the method and the parameters, and give an XML schema type for the parameters. The types section of the WSDL looks like this:

Exemple 13. types section illustrating named parameters

<types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
      targetNamespace="http://ConvertedStockQuote">
      <xs:element name="getQuote">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ticker" type="xs:string"/>
            <xs:element name="currency" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getQuoteResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="getQuoteReturn" type="xs:float"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  </types>

The SCA run-time has special processing to handle how positional parameter lists in the interface are converted to XML containing named parameters in the soap request, and then back to positional parameter lists again. To see why this matters, consider how a PHP script which used a different interface to make a SOAP call would need to construct the parameter list. A PHP script using the PHP SoapClient, for example, would need to pass the SoapClient a single parameter giving the values for "ticker" and "currency", perhaps as an associative array. To insist that SCA components construct parameter lists to make Web service calls in this way would be to make local and remote calls look different, so a different approach is needed.

When SCA generates WSDL for an SCA component it includes a comment in the WSDL which marks that WSDL as being the interface for an SCA component. In this case, when one SCA component calls another through a Web service, the SCA runtime on the calling end takes the positional parameter list from the call and assigns the values one by one to the named elements in the soap message. For example a call to the getQuote() method defined above that passes the values 'IBM' and 'USD' and looks like this:

$quote = $remote_service->getQuote('IBM','USD');

will result in a soap message containing the following:

<getQuote>
  <ticker>IBM</ticker>
  <currency>USD</currency>
</getQuote>

On the service-providing end, the SCA run-time takes the parameters one by one from the soap message and forms a positional parameter list from them, re-forming the argument list ('IBM','USD').

Attention

At both ends the SCA runtime relies on the order in which the parameters appear in the soap message being the same as that in the target method's parameter list. This is ultimately determined by the order of the @param annotations: this determines the order in which the parameters appear in the WSDL and thereby the order in which they appear in the soap message. Therefore it is essential that the order of the @param annotations matches that of the parameters in the method's parameter list.

Working with Data Structures

SCA components can pass and return the four PHP scalar types boolean, integer, real and string, but to pass or return data structures, SCA components use Service Data Objects (SDOs). SDOs are described in much more detail in the SDO pages of this manual. Readers familiar with SDOs will know that they are suitable for representing the sort of structured and semi-structured data that is frequently modeled in XML, and that they serialize very naturally for passing between remote components, or in Web services. SDOs are presently the only supported way to pass and return data structures. It is not possible to pass or return PHP objects, or PHP arrays.

The SCA runtime always assures data is passed by-value, even for local calls. To do this, the SCA runtime copies any SDOs in the parameter list before passing them on, just as it does for scalar types.

How data structures are defined to SCA components

Currently the only mechanism for specifying the location of a data structure definition is by specifying the types in an XML schema file. However, in the future it may be possible to define types in other ways, such as based on PHP classes or interfaces, or based on definitions expressed as associative arrays.

To illustrate the use of SDOs we introduce a new component. The PortfolioMangement service below returns an SDO representing a stock portfolio for a given customer.

Exemple 14. A Component that uses Data Structures

<?php

include 'SCA/SCA.php';

/**
 * Manage the portfolio for a customer.
 *
 * @service
 * @binding.ws
 *
 * @types http://www.example.org/Portfolio PortfolioTypes.xsd
 *
 */
class PortfolioManagement {

    /**
     * Get the stock portfolio for a given customer.
     *
     * @param integer $customer_id The id for the customer
     * @return Portfolio http://www.example.org/Portfolio The stock portfolio (symbols and quantities)
     */
    function getPortfolio($customer_id) {
        // Pretend we just got this from a database
        $portfolio = SCA::createDataObject('http://www.example.org/Portfolio', 'Portfolio');
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'AAPL';
        $holding->number = 100.5;
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'INTL';
        $holding->number = 100.5;
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'IBM';
        $holding->number = 100.5;
        return $portfolio;
    }

}
?>

The @types annotation:

<?php
@types http://www.example.org/Portfolio PortfolioTypes.xsd
?>

indicates that types in the namespace http://www.example.org/Portfolio will be found in the schema file located by the URI PortfolioTypes.xsd. The generated WSDL would reproduce this information with an import statement as follows:

<xs:import schemaLocation="PortfolioTypes.xsd"
                      namespace="http://www.example.org/Portfolio"/>

so the URI, absolute or relative, must be one that can be resolved when included in the schemaLocation attribute.

Creating SDOs

Readers familiar with SDOs will know that they are always created according to a description of the permitted structure (sometimes referred to as the 'schema' or 'model') and that, rather than creating them directly using 'new', some form of data factory is needed. Often, an existing data object can be used as the data factory, but sometimes, and especially in order to get the first data object, something else must act as the data factory.

In SCA, either the SCA runtime class or the proxies for services, whether local or remote, can act as the data factories for SDOs. The choice of which to use, and when, is described in the next two sections.

We switch to a new example in order to illustrate the creation of SDOs, both to pass to a service, and to be returned from a service.

Creating an SDO to pass to a service

A caller of a service which requires a data structure to be passed in to it uses the proxy to the service as the data factory for the corresponding SDOs. For example, suppose a component makes use of a proxy for a service provided by a local AddressBook component.

<?php
/**
 * @reference
 * @binding.local AddressBook.php
 */
$address_book;
?>

The AddressBook component that it wishes to call is defined as follows:

<?php
/**
* @service
* @binding.ws
* @types http://addressbook ../AddressBook/AddressBook.xsd
*/
class AddressBook {

    /**
     * @param personType $person http://addressbook (a person object)
     * @return addressType http://addressbook (the address object for the person object)
     */
    function lookupAddress($person)  {
              ...
    }
}
?>

The AddressBook component provides a service method called lookupAddress() which uses types from the http://addressbook namespace. The lookupAddress method takes a personType data structure and returns an addressType. Both types are defined in the schema file addressbook.xsd.

Once the component that wishes to use the AddressBook component has been constructed, so that the $address_book instance variable contains a proxy for the service, the calling component can use the proxy in $address_book to create the person SDO, as shown below:

<?php
$william_shakespeare        = $address_book->createDataObject('http://addressbook','personType');
$william_shakespeare ->name = "William Shakespeare";
$address                    = $address_book->lookupAddress($william_shakespeare);
?>

Note, the use of the proxy as the means to create the SDO is not limited to SCA components. If a service is being called from a general PHP script, and the proxy was obtained with getService() then the same approach is used.

<?php
$address_book = SCA::getService('AddressBook.php');
$william_shakespeare = $address_book->createDataObject('http://addressbook','personType');
?>

Creating an SDO to return from a component

A component that needs to create a data object for return to a caller will not have a proxy to use as a data object, In this case it uses the createDataObject() static method on SCA.php. Hence if the AddressBook component described above needed to create an object of type addressType within the namespace http://addressbook, it might do so as follows:

<?php
$address = SCA::createDataObject('http://addressbook','addressType');
?>

Error handling

This section describes how errors are handled. There are two types of errors:

  • SCA runtime exceptions are those that signal problems in the management of the execution of components, and in the interaction with remote services. These might occur due to network or configuration problems.

  • Business exceptions are those that are defined by the programmer. They extend the PHP Exception class, and are thrown and caught deliberately as part of the business logic.

Handling of Runtime exceptions

There are two types of SCA runtime exception:

  • SCA_RuntimeException - signals a problem found by or perhaps occurring within the SCA runtime. This can be thrown for a variety of reasons, many of which can occur regardless of whether a connection is being made to a local or a remote service: an error in one of the annotations within a component, a missing WSDL or php file, and so on. In the case of Web services, an SCA_RuntimeException can also be thrown if a SoapFault is received from a remote Web service and the fault code in the SoapFault indicates that a retry is unlikely to be successful.

  • SCA_ServiceUnavailableException - this is a subclass of SCA_RuntimeException and signals a problem in connecting to or using a remote service, but one which might succeed if retried. In the case of Web services, this exception is thrown if a SoapFault is received with a fault code that indicates that a retry might be successful.

Handling of Business exceptions

Business exceptions may be defined and thrown by a component in the normal way, regardless of whether the component has been called locally or remotely. The SCA runtime does not catch business exceptions that have been thrown by a component called locally, so they will be returned to a caller in the normal way. If a component has been called via a Web service, on the other hand, the SCA runtime on the service providing end does catch business exceptions, and will ensure these are passed back to the calling end and re-thrown. Assuming that the calling end has a definition of the exception (that is, is able to include a file containing the PHP class defining the exception) the re-thrown exception will contain the same details as the original, so that the getLine() and getFile() methods for example will contain the location where the exception was thrown within the business logic. The exception will be passed in the detail field of a soap fault with a fault code of "Client".

Classes pré-définies

Most of the interface to SCA is through the annotations within SCA components so there are few public classes and methods. The only SCA classes that scripts or components can call are the SCA class itself, and the proxy classes SCA_LocalProxy and SCA_SoapProxy.

SCA

Much of the work of the SCA class is performed when the file SCA.php is included within an SCA component. However, a PHP script may include SCA.php and call the getService() method on the SCA class in order to obtain a proxy for a service. A component will not need to do this as proxies are obtained instead by defining an instance variable with the @reference annotation.

Components that need to create an SDO to return to a caller will need a data factory to call. For this purpose the SCA class supports the createDataObject() method, which will create an SDO according to the model defined by the component's @types annotations. The arguments to createDataObject() are the same as those to SDO's XML Data Access Service.

Méthodes

  • getService - obtain a proxy for a service

  • createDataObject - create an SDO

SCA_LocalProxy

When getService() is called with the target of a local PHP component, a local proxy is returned. A local proxy is also injected into the instance variables of a component that are defined with an @reference and an @binding.php anotation. When the script or component makes calls on the local proxy, they are passed on to the target component itself.

Components that need to create an SDO to pass to a component will need a data factory to call. For this purpose the SCA_LocalProxy class supports the createDataObject method, which will create an SDO according to the model defined by the components' @types annotations. The arguments to the createDataObject are the same as those to SDO's XML Data Access Service.

Méthodes

  • createDataObject - create an SDO

SCA_SoapProxy

When getService() is called with the target of a WSDL file, a SOAP proxy is returned. A SOAP proxy is also injected into the instance variables of a component that are defined with an @reference and an @binding.ws anotations. When the script or component makes calls on the SOAP proxy, they are formed into Web service SOAP requests and passed on to the target component, with the help of the PHP Soap extension.

Components that need to create an SDO to pass to a component will need a data factory to call. For this purpose the SCA_SoapProxy class supports the createDataObject method, which will create an SDO according to the model defined within the target WSDL. The arguments to the createDataObject are the same as those to SDO's XML Data Access Service.

Méthodes

  • createDataObject - create an SDO

Table des matières
SCA_LocalProxy::createDataObject -- create an SDO
SCA_SoapProxy::createDataObject -- create an SDO
SCA::createDataObject -- create an SDO
SCA::getService -- Obtain a proxy for a service

Précédent | Sommaire | Suivant
satellite_object_to_string | Niveau supérieur | SCA_LocalProxy::createDataObject


Fonctions SDO

Manuel PHP
Précédent Suivant

CXLIII. Fonctions SDO

Introduction

Les Objets de Service de Données (Service Data Objects (SDOs)) permet les applications PHP de travailler avec des données provenant de différentes sources (comme une requête de base de données, un fichier XML et une feuille de tableau) en utilisant une simple interface.

Chaque différente sorte de source de données requiert un Service d'Accès de Données (Data Access Service (DAS)) pour fournir un accès aux données dans la source de données. Dans votre application PHP, vous utilisez un DAS pour créer une instance SDO qui représente des données dans la source de données. Vous pouvez alors fixer et récupérer des valeurs dans l'instance SDO en utilisant l'interface SDO standard. Finalement, vous pouvez utiliser un DAS pour écrire les données modifiées à une source de données (normalement la même).

Voyez la liste des Services d'Accès de Données pour des détails sur ceux actuellement disponibles. En plus des DASs fournis, SDO fournit aussi des interfaces pour permettre les autres à être implémentés (voyez la section sur Interface SDO Service d'Accès de Données pour plus de détails).

Cette extension est dérivée des concepts pris des Spécification d'Objets de Service de Données. Elle inclut une version de Apache Tuscany SDO pour le projet C++.

La Structure d'un Objet de Service de Données

Une instance d'Objet de Service de Données est fait d'un arbre d'objets de données. L'arbre est défini par des relations contenues entre les objets de données. Par exemple, une objet de données Compagnie peut consister en un nombre d'objets de données Département et donc la Compagnie devrait avoir une relation contenue avec les Départements.

Un SDO peut aussi avoir des références non contenues entre les objets de données dans l'arbre. Par exemple, un objet de données Employé peut faire référence à un autre Employé pour identifier son mentor.

Les données peuvent se référencer entre eux, mais peuvent aussi avoir des propriétés primitives. Par exemple, l'objet de données Compagnie pourrait avoir une propriété appelée "nom" de type chaîne de caractères pour contenir le nom de la compagnie (par exemple, "Acme").

Chacune de ces propriétés de l'objet de données - références contenues, références non-contenues ou propriétés primitives - peut avoir plusieurs valeurs ou une seule. Dans l'exemple ci-dessous, "Departements" a plusieurs valeurs alors que le nom de la compagnie n'en a qu'une.

En PHP, chaque objet de données SDO est représenté en tant qu'objet PHP. Les propriétés de l'objet de données peuvent être accédées en utilisant soit la synthaxe orientée objet, soit la synthaxe de tableaux associatifs. Nous verrons quelques exemples de cela plus tard dans la documentation.

Pré-requis

L'extension SDO requiert PHP 5.1.0 ou supérieur. Elle nécessite également la bibliothèque libxml2. Normalement, libxml2 devrait être déjà installée mais si ce n'est pas le cas, vous pouvez la télécharger depuis http://www.xmlsoft.org/.

Installation

Note : Les versions précédentes de l'extension SDO nécessite une bibliothèque partagée séparée XML DAS. Ceci est désormais obsolète et toutes les références au fichier php_sdo_das_xml.dll ou au fichier sdo_das_xml.so doivent être supprimées de votre php.ini.

Systèmes Unix

  1. Vous pouvez télécharger et installer la dernière version stable des trois composants SDO - le core SDO, le XML DAS et le relationnel DAS - avec la commande :

    pecl install sdo

    Cette commande va construire la bibliothèque partagée SDO mais va aussi installer les fichiers PHP permettant le relationnel DAS.

    Si vous voulez installer la dernière version béta, exécutez plutôt la commande :

    pecl install sdo-beta

  2. La commande pecl installe automatiquement le module SDO dans votre dossier d'extensions PHP. Pour activer les extensions SDO, vous devez ajouter les lignes suivantes à votre php.ini :

    extension=sdo.so

    Pour plus d'informations sur la constructions de paquets PECL, consultez la section de la documentation sur l'installation PECL.

Windows

  1. La dernière bibliothèque DLL pour le code SDO peut être téléchargée depuis php_sdo.dll.

    Notez qu'actuellement, le site pecl4win ne fournit pas ces binaires pour le niveau de version courante ; vous ne pouvez télécharger que le dernier niveau.

  2. La commande pecl installe automatiquement le module SDO dans votre dossier d'extensions PHP. Pour activer l'extension SDO, vous devez ajouter les lignes suivantes à votre php.ini :

    extension=php_sdo.dll

  3. Le relationnel DAS peut être téléchargé et installé avec la commande :

    pecl install -B sdo

    Le relationnel DAS est écrit en PHP. Vous devez mettre à jour votre include_path dans votre php.ini pour pointer vers le dossier contenant sdo/DAS/Relational.

Construire SDO sur Linux

Cette section décrit comment construire le noyau SDO et le XML DAS sur Linux. Vous devriez avoir besoin seulement de savoir comment faire cela seulement si vous souhaitez construire une version récente que vous auriez téléchargée de CVS.

  1. Changez le dossier principal d'extension : cd < où se trouve le code sdo >

  2. Exécutez phpize, qui fixera l'environnement pour compiler le SDO.

  3. Ensuite, exécutez ./configure; make; make install. Veuillez noter, vous devriez avoir besoin de vous identifier en tant que root pour installer cette extension.

  4. Vérifiez que ces modules sont chargés par PHP, en ajoutant extension=sdo.so dans votre fichier php.ini.

Services d'Accès de Données

La table ci-dessous liste les Services d'Accès de Données SDO actuellement fournis :

Nom DAS | Description
SDO_DAS_XML | Un Service d'Accès de Données XML supportant la lecture/écriture SDOs comme documents XML.
SDO_DAS_Relational | Un Service d'Accès de Données basé sur PDO supportant la lecture/écriture SDO aux bases de données relationnelles. Implémente une politique optimiste de mises à jour concourante.

Limitations

Limitations d'Implémentation

La liste suivante contient les limitations dans l'implémentation courante de SDO :

  1. Il n'y a pas de support pour le jeu de caractère multi-byte. Ceci doit être considéré, dépendemment de la nécessité de la communauté, dans la version de PHP où le support de l'Unicode est activé. Voir les fonctions Unicode.

Limitations SDO

Les concepts suivants de SDO 2.0 ne sont pas supportés dans l'implémentation courante de PHP. Ce n'est pas nécessairement le cas que ceux-ci seront ajoutés avec le temps. Leur inclusion dépendra des besoins de la communauté.

  1. Relations bidirectionnelles.

  2. Type et propriété alias noms.

  3. Propriétés en lecture seule.

  4. Les classes d'aide définies dans SDO 2.0 ne sont pas directement implémentées. Cependant, une fonction équivalente est fournie dans un style plus naturel pour PHP. Par exemple, la fonction CopyHelper::copy() est fournie en utilisant le mot clé clone de PHP pour un objet de données.

Exemples

Les exemples ci-dessous assument qu'un SDO est créé avec le schéma et l'information de l'instance montrée ci-dessous, en utilisant le Service d'Accès de Données.

L'instance du document ci-dessous décrit un compagnie simple, nommée 'MegaCorp', qui contient un seul département, nommé 'Advanced Technologies'. Ce département contient trois employés. La compagnie 'employeeOfTheMonth' référence le second employé, 'Jane Doe'.

<?xml version="1.0" encoding="UTF-8" ?>
<company xmlns="companyNS" name="MegaCorp"
         employeeOfTheMonth="E0003">
 <departments name="Advanced Technologies" location="NY" number="123">
  <employees name="John Jones" SN="E0001"/>
  <employees name="Jane Doe" SN="E0003"/>
  <employees name="Al Smith" SN="E0004" manager="true"/>
 </departments>
</company>

L'élément racine de ce schéma est une compagnie. La compagnie contient des départements, et chaque département contient des employés. Chaque élément a un nombre d'attributs pour y stocker des valeurs comme le nom, un numéro de série et ainsi de suite. Finalement, la compagnie a également un attribut IDREF qui identifie un des employés comme 'employeeOfTheMonth'.

<xsd:schema
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:sdo="commonj.sdo"
  xmlns:sdoxml="commonj.sdo/xml"
  xmlns:compagnie="compagnieNS"
  targetNamespace="compagnieNS">
  <xsd:element name="compagnie" type="compagnie:CompagnieType"/>
  <xsd:complexType name="CompagnieType">
    <xsd:sequence>
      <xsd:element name="departements" type="compagnie:DepartementType"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="nom" type="xsd:string"/>
    <xsd:attribute name="employe_du_mois" type="xsd:IDREF"
      sdoxml:propertyType="compagnie:EmployeType"/>
   </xsd:complexType>
  <xsd:complexType name="DepartementType">
    <xsd:sequence>
      <xsd:element name="employes" type="compagnie:EmployeType"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="nom" type="xsd:string"/>
    <xsd:attribute name="endroit" type="xsd:string"/>
    <xsd:attribute name="numero" type="xsd:int"/>
  </xsd:complexType>
  <xsd:complexType name="EmployeType">
    <xsd:attribute name="nombre" type="xsd:string"/>
    <xsd:attribute name="NS" type="xsd:ID"/>
    <xsd:attribute name="directeur" type="xsd:boolean"/>
  </xsd:complexType>
</xsd:schema>

Un Service d'Accès de Données XML voit ce schéma comme un SDO. Les attributs comme "name" deviennent des propriétés primaires, les séquences d'employés deviennent une relation de contenu à multiples valeurs, et ainsi de suite. Notez que les relations de contenu sont représentées comme un type complexe contenu dans un autre, où les références non-contenues sont représentées en terme d'ID et d'IDREF, avec un attribut sdoxml:propertyType spécial spécifiant le type de la référence non-contenue.

Fixe et Récupère les Valeurs des Propriétés

Les exemples suivants présument que $compagnie est la racine d'un arbre d'objets de données créés depuis le schéma et le document montré ci-dessus.

Exemple 1. Accès via les noms de Propriété

Les propriétés des objets de données peuvent être accéder en utilisant la syntaxe d'accès de propriété d'objet. L'exemple fixe le nom de compagnie à 'Acme'.

<?php
  $compagnie->nom = 'Acme';
?>

Exemple 2. Accès via le nom de la propriété en tant que tableau indexé

Nous pouvons également accéder aux propriétés en utilisant lun tableau associatif. La forme la plus simple est d'utiliser le nom de la propriété dans le tableau indexé. Par exemple, ce qui suit définit le nom de la compagnie et récupère l'"employeeOfTheMonth".

<?php
$company['name'] = 'UltraCorp';
$eotm = $company['employeeOfTheMonth'];
?>

Exemple 3. Itération d'objet de données

Vous pouvons itérer les propriétés d'un objet de données en utilisant l'instruction foreach.

<?php
     $eotm = $company->employeeOfTheMonth;
foreach ($eotm as $name => $value) {
echo "$name: $value\n";
}
?>

Affichera :

name: Jane Doe
SN: E0003

The 'manager' property is not output, because it has not been set.

Exemple 4. Accès à une propriété à valeurs multiples par le nom

Les propriétés à valeurs multiples d'un objet de données peuvent être accédées en utilisant la synthaxe des noms de propriétés de l'objet. Ce qui suit récupère la liste des départements.

<?php
$departments = $company->departments;
?>

Exemple 5. Accès aux éléments à valeurs multiples

Nous pouvons accéder aux éléments individuels des propriétés à valeurs multiples en utilisant la synthaxe des tableaux. Ce qui suit permet d'accéder au premier département de la compagnie.

<?php
$ad_tech_dept = $company->departments[0];
?>

Exemple 6. Itération d'une propriété à valeurs multiples

Les propriétés à valeurs multiples peuvent être itérées en utilisant l'instruction foreach.

<?php
     foreach ($company->departments as $department) {
// ...
}
?>

Each iteration will assign the next department in the list to the variable $department.

Exemple 7. Accès aux propriétés chaînées

Nous pouvons chaîner les références des propriétés sur une seule ligne. Ce qui suit définit et récupère le nom du premier département.

<?php
$company->departments[0]->name = 'Emerging Technologies';
$dept_name = $company->departments[0]->name;
?>

En utilisant la synthaxe des tableaux associatifs, c'est l'équivalent de

<?php
$company['departments'][0]['name'] = 'Emerging Technologies';
$dept_name = $company['departments'][0]['name'];
?>

Dans tous les cas, la variable dept_name est définie à 'Emerging Technologies'.

Exemple 8. Navigation XPath

Le tableau associatif indexé peut être une expression façon XPath. Les expressions valides sont définies par une sous définission d'XPath.

Deux façons d'indexations de propriétés à valeurs multiples sont supportées. La remière est la synthaxe de tableau XPath standard dont l'index commence à 0, la seconde est une extension SDO à XPath avec un index qui commence à 0. La synthaxe standard est :

<?php
$jane_doe = $company["departments[1]/employees[2]"];
  ?>

et la syntahxe de l'extension SDO XPath est :

<?php
$jane_doe = $company["departments.0/employees.1"];
?>

Both these examples get the second employee from the first department.

Exemple 9. Requête XPath

Nous pouvons utiliser XPath pour effectuer une requête et ainsi identifier des parties d'un objet de données basé sur des données instanciées. Ce qui suit récupère le manager depuis le département 'Advanced Technologies'.

<?php
$ad_tech_mgr =
$company["departments[name='Advanced Technologies']/employees[manager=true]"];
?>

Exemple 10. Création d'objets de données fils

Un objet de données peut être une fraction pour ces objets de données fils. Un objet de données fils est automatiquement une partie des données. Ce qui suit ajoute un nouvel employé au département 'Advanced Technologies'.

<?php
$ad_tech_dept = $company["departments[name='Advanced Technologies']"];
$new_hire = $ad_tech_dept->createDataObject('employees');
$new_hire->name = 'John Johnson';
$new_hire->SN = 'E0005';
$new_hire->manager = false;
?>

Exemple 11. Effacement d'une propriété primitive

Nous pouvons utiliser la fonction isset() et unset() pour tester et effacer des éléments de l'objet de données.

Ce qui suit efface le nom du premier département.

<?php
unset($company->departments[0]->name);
?>

Exemple 12. Effacement d'un objet de données

La fonction unset() peut également être utilisée pour effacer un objet de données de l'arbre. L'exemple suivant montre comment John Jones à quitter la compagnie...

<?php
unset($company->departments[0]->employees[0]);
?>

Exemple 13. Effacement d'un objet de données référencé

Ce qui suit efface 'employeeOfTheMonth' de la compagnie. Si c'est une relation contenue, alors l'employé sera effacé de la compagnie. (probablement pas une bonne idée que d'effacer chaque mois votre meilleur employé !) mais si c'est une relation non-contenue, l'employé référencé restera dans le département de la compagnie, mais ne sera plus accessible via la propriété 'employeeOfTheMonth'.

<?php
if (isset($company->employeeOfTheMonth)) {
unset($company->employeeOfTheMonth);
}
?>

Exemple 14. Accès via l'index de la propriété

Les propriétés de l'objet de données peuvent être accédées via leurs index en utilisant la synthaxe de tableaux. L'index de la propriété est la position dont la propriété apparait dans le modèle (dans ce cas, le schéma XML). Nous pouvons voir dans le schéma listé ci-dessus que l'attribut du nom de la compagnie est la seconde propriété de la compagnie (l'interface SDO ne fait pas de distinction entre les attributs XML et les éléments). Ce qui suit va définir le nom de la compagnie en 'Acme', avec le même résultat que lors de l'accès via le nom de la propriété.

<?php
$company[1] = 'Acme';
?>

L'utilisation directe de l'index dans ce cas est fragile. Normalement, la synthaxe reposant sur le nom de la propriété est préférable, mais l'index des propriétés peut être nécessaire dans des cas très spéciaux.

Travailler avec des Objets de Données en Séquence

Des objets de données en Séquence sont des SDOs peuvent tracer l'ordre des propriétés à travers les propriétés des objets de données. Ils peuvent aussi contenir des éléments de texte non structuré (element de texte qui n'appartient à aucune des propriétés SDO). Des objets de données en Séquence sont utiles pour travailler avec des documents XML qui permettent du texte non structuré (c'est-à-dire mixed=true) ou si les éléments peuvent être intercalée (<A/><B/><A/>). Ceci peut se produire par exemple lorsque le schéma définit maxOccurs>1 sur un élément qui est un complexType avec un choix de l'ordre.

Les exemples ci-dessous assument qu'un SDO est créé avec le schéma et l'information de l'instance montrée ci-dessous, en utilisant le Service d'Accès de Données.

Le schéma ci-dessous décrit le format d'une lettre. La lettre peut optionnellement contenir trois propriétés; date, prenom et nomFamille. Le schéma indique mixed="true" qui signifie que le texte non structuré peut être entremêlé entre les trois propriétés.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:lettre="http://lettreSchema"
  targetNamespace="http://lettreSchema">
  <xsd:element name="lettres" type="lettre:FormLettre"/>
  <xsd:complexType name="FormLettre" mixed="true">
    <xsd:sequence>
      <xsd:element name="date" minOccurs="0" type="xsd:string"/>
      <xsd:element name="prenom" minOccurs="0" type="xsd:string"/>
      <xsd:element name="nomFamille" minOccurs="0" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

L'exemple suivant est une instance du document lettre. Il contient les trois propriétés de la lettre; date, prenom et nomFamille, et a des éléments de texte non structuré pour l'adresse et le corps de la lettre.

<lettre:lettres xmlns:lettre="http://lettreSchema">
  <date>1er Mars 2005</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Chère
  <prenom>Casy</prenom>
  <nomFamille>Crocodile</nomFamille>
  S'il vous plaît, achetez plus de requin imperméable.
  Votre prime est passée date.
</lettre:lettres>

Lorsque chargé, l'objet de données de lettre aura la séquence et les indices montrés dans la table ci-dessous :

Index de Séquence | Index:Nom | Valeur
0 | 0:date | 1er Mars 2005
1 | - | Mutual of Omaha
2 | - | Wild Kingdom, USA
3 | - | Chère
4 | 1:prenom | Casy
5 | 2:nomFamille | Crocodile
6 | - | S'il vous plaît, achetez plus de requin imperméable.
7 | - | Votre prime est passée date.

Pour s'assurer que la séquence des indices soit maintenue, les objets de données en séquence devraient être manipulés à travers de l'interface SDO_Sequence. Ceci permet à l'instance de l'objet de données à être manipulée en tant qu'index de séquence plutôt qu'avec un index de propriété (montré dans la table ci-dessus). Les exemples suivants assument que l'instance de la lettre a été chargée dans l'objet de données référencé par la variable $lettre.

Exemple 15. Récupération de l'interface SDO_Sequence

Nous obtenons la séquence de l'objet de données en utilisant la méthode getSequence(). La suite récupère la séquence pour l'objet de données de la lettre.

<?php
  $lettre_seq = $lettre->getSequence();
?>

Tous les exemples suivants assument que la variable $lettre_seq a été assigné de la séquence pour l'objet de données de la lettre.

Exemple 16. Récupère/Fixe des valeurs de séquence

Nous pouvons récupérer et fixer des valeurs individuelles (en incluant le texte non structuré) en utilisant les index de séquence. L'exemple suivant fixe le prenom à 'Snappy' et récupère la dernière valeur de séquence (le texte non structuré, 'Votre prime est passée date.').

<?php
  $lettre_seq[4] = 'Snappy';
  $texte = $lettre_seq[count($lettre_seq) - 1];
?>

Exemple 17. Itération de Séquence

Nous pouvons itérer à travers des valeurs de séquence individuellement en utilisant foreach. L'exemple suivant passe au travers des valeurs individuelles dans l'ordre séquentiel.

<?php
  foreach ($lettre->getSequence() as $valeur) {
    // ...
  }
?>

Exemple 18. Séquence versus Objet de Données

Fixer des valeurs à travers l'interface d'objet de données peut amener à ce que les valeurs ne fassent pas partie de la séquence. Une valeur fixée avec un objet de données sera seulement accessible avec la séquence si la propriété était déjà une partie de la séquence. L'exemple suivant fixe le nomFamille à travers de l'objet de données et le récupère par la séquence. Ceci est correct puisque nomFamille existe déjà dans la séquence. S'il n'avait pas été fixé, alors nomFamille devrait être fixé à 'Smith', mais ne devrait pas faire partie de la séquence.

<?php
  $lettre[2] = 'Smith';
  $nom_famille = $lettre_seq[5];
?>

Exemple 19. Ajout à une séquence

Nous pouvons ajouter de nouvelles valeurs à une séquence en utilisant la méthode SDO_Sequence::insert(). Les exemples suivants assument que les propriétés 'prenom' et 'nomFamille' sont non fixées.

<?php
  // Ajoute une valeur prenom à la séquence
  // valeur : 'Smith'
  // index séquence : NULL (ajout)
  // identifiant de propriété : 1 (index propriété prenom)
  $lettre_seq->insert('Smith', NULL, 1);

  // Ajoute une valeur nomFamille à la séquence
  // valeur : 'Jones'
  // index séquence : NULL (ajout)
  // identifiant de propriété : 'nomFamille' (nom propriété nomFamille)
  $lettre_seq->insert('Jones', NULL, 'nomFamille');

  // Ajoute du texte non structuré
  // valeur : 'Annule Inscription.'
  // index séquence : absent (ajout)
  // identifiant de propriété : absent (texte non structuré)
  $lettre_seq->insert('Annule Inscription.');

  // Ajoute du nouveau texte non structuré. Les séquence valeurs suivantes
  // d'ordre sont décalées vers le haut
  // valeur : 'À l'attention de :'
  // index séquence : 1 (insert comme second élément)
  // identifiant de propriété : absent (texte non structuré)
  $lettre_seq->insert('À l'attention de :', 1);
?>

Exemple 20. Suppression d'une séquence

Nous pouvons utiliser les fonctions isset() et unset() pour tester et supprimer des items de la séquence (Note : unset() laisse actuellement les valeurs dans l'objet de données, mais ce comportement est devrait changer et supprimer les données de l'objet de données). Une séquence se comporte comme une liste contiguë; donc, la suppression d'un item au milieu de la liste décalera les entrées d'un indice plus haut vers le bas. L'exemple suivant teste pour vérifier si la première séquence d'élément est fixé et la détruit si elle l'est.

<?php
  if (isset($lettre_seq[0])) {
    unset($lettre_seq[0]);
  }
?>

Réflexion sur des Objets de Service de Données

Les SDOs ont une connaissance de la structure qu'ils ont créée pour la représentation (le modèle). Par exemple, une Compagnie SDO créée utilisant le schéma de Compagnie XML ci-dessus devrait seulement être permis de contenir des objets de données DepartementType qui à leur tour devrait contenir seulement des objets de données EmployeType.

Parfois, il est utile d'être capable d'accéder ces informations de modèle à l'exécution. Par exemple, cela pourrait être utilisé pour générer automatiquement une interface d'usager pour remplir un objet de données. Les informations de modèle sont accédées en utilisant la réflexion.

Exemple 21. Réflexion sur les Objets de Données

L'exemple suivant montre comment nous pouvons utiliser la réflexion sur un objet de données vide Employe.

<?php
  // Crée l'objet de données employe (par exemple, à partir de Service d'Accès
  // de données XML)
  $employe = ...;
  $reflexion = new SDO_Model_ReflectionDataObject($employe);
  print($reflexion);
?>

L'exemple ci-dessus va afficher :

object(SDO_Model_ReflectionDataObject)#4 { - ROOT OBJECT - Type {
compagnieNS:EmployeType[3] { commonj.sdo:String $nom;
commonj.sdo:String $NS; commonj.sdo:Boolean $directeur; } }

L'utilisation de print sur SDO_Model_ReflectionDataObject écrit à l'écran les données du modèle de l'objet. Nous pouvons voir à la sortie que le type compagnieNS:EmployeType a trois propriétés et nous pouvons voir le noms de ces propriétés avec leur type. Notez, les types primitifs sont listés en tant que types SDO (par exemple, commonj.sdo namespace, String type). Cela vaut la peine de noter que c'est le modèle SDO et lorsqu'ils sont utilisés dans l'application, ils peuvent être traités comme des types équivalent PHP (par exemple, chaîne de caractères et booléen).

Exemple 22. Accès d'informations de type

Nous pouvons effectuer une requête de type d'informations sur un objet de données en utilisant la réflexion. L'exemple suivant vérifie que le type corresponde à l'objet de données plutôt qu'à une primitive et alors itère à travers des propriétés de type, en affichant le nom de chaque propriété ($type et $property sont respectivement des objets SDO_Model_Type et SDO_Model_Property).

<?php
    // Crée l'objet de données employe (par exemple, à partir de Service d'Accès
    // de données XML)
    $employe = ...;
    $reflexion = new SDO_Model_ReflectionDataObject($employe);
    $type = $reflexion->getType();
    if (! $type->isDataType()) {
        foreach ($type->getProperties() as $property) {
            print $property->getName() . "\n";
        }
    }
?>

L'exemple ci-dessus va afficher :

nom
NS
directeur

Classes pré-définies

SDO consiste en trois blocs d'interface. Le premier bloc couvre les interfaces pour utiliser avec les applications typiques SDO. Celles-ci sont identifiées par le préfixe de package 'SDO_'. Le deuxième bloc est celui qui utilise les interfaces qui sont utilisées pour la réflexion, et travaille avec le modèle d'objet de données. Ces interfaces sont identifiées par le préfixe de package 'SDO_Model_'. Finalement, le troisième bloc est celui qui utilise les interfaces qui sont utilisées par les implémentations de Service d'Accès de Données et sont identifiées par le préfixe de package 'SDO_DAS_'. La majorité des utilisateurs SDO n'auront pas besoin d'utiliser ou de comprendre les interfaces 'SDO_Model_' et 'SDO_DAS_'.

Interface Application pour programmer SDO

SDO_DataObject

L'interface principale dans laquelle les objets de données sont manipulés. En plus des méthode ci-dessous, SDO_DataObjet étend les interfaces ArrayAccess, SDO_PropertyAccess (définit les méthodes __get() / __set() pour surcharger l'accès aux propriétés), Iterator et Countable.

Méthodes

  • getSequence - récupère la séquence pour l'objet de données

  • createDataObject - crée un objet de données enfant

  • clear - détruit les propriétés d'un objet de données

  • getContainer - récupère le conteneur (aussi connu en tant que 'parent') de l'objet de données

  • getTypeName - récupère le nom du type de cet objet de données

  • getTypeNamespaceURI - récupère l'URI de l'espace de noms du type de cet objet de données

SDO_Sequence

L'interface dans lequel les objets de données en séquence peuvent être accédés pour préserver l'ordre parmi les propriétés de l'objet de données et pour permettre le texte non structuré. SDO_Sequence préserve les indices contigus et donc l'insertion ou la suppression d'éléments peut entraîner un décalage des autres éléments vers le haut ou vers le bas. En plus des méthodes ci-dessous, SDO_Sequence étend les interfaces ArrayAccess, Interator et Countable.

Méthodes

  • getProperty - récupère la propriété pour un index de séquence donné

  • move - déplace un élément d'un index vers un autre

  • insert - insère une nouvelle valeur dans la séquence

SDO_List

L'interface dans lequel les propriétés de plusieurs valeurs sont manipulées. En plus des méthodes définies ci-dessous, SDO_List étend ArrayAcces, Iterator et Countable. SDO_List préserve les indices contigus et donc l'insertion ou la suppression des éléments peut décaler les autres éléments vers le haut ou vers le bas.

Méthodes

  • insert - insertion d'une nouvelle valeur dans la liste

SDO_DataFactory

L'interface dans lequel les objets de données peuvent être créés. Un Service d'Accès de Données est responsable de remplir le modèle (c'est-à-dire, la configuration des classe de données avec le type et les informations de structure pour les objets de données qu'elle peut créer.) pour les classes et peut alors optionnellement retourner une instance ou une implémentation de l'interface de SDO_DataFactory.

Méthodes

  • create - crée un nouvel objet de données

SDO_Exception

Une exception SDO_Exception est lancée lorsque la demande de l'appelant ne peut être honorée. Les sous classes de SDO_Exception sont :

  • SDO_PropertyNotSetException - la propriété spécifiée existe mais n'a pas été définie ou n'a pas de valeur par défaut

  • SDO_PropertyNotFoundException - la propriété spécifiée ne fait pas partie du type de l'objet de données

  • SDO_TypeNotFoundException - l'URI d'espace de noms spécifiée ou le nom du type est inconnu

  • SDO_InvalidConversionException - la conversion entre les types d'assignement n'est pas possible

  • SDO_IndexOutOfBoundsException - l'index numérique d'un objet de données, d'une séquence ou d'une liste n'est pas dans un intervalle valide

  • SDO_UnsupportedOperationException - la demande n'a pû être honorée car elle n'est pas autorisée, par exemple, une tentative de définition d'une propriété en lecture seule

Méthodes

Une méthode est ajoutée à celles héritées depuis la classe interne Exception :

  • getCause - récupère la cause de cette exception SDO_Exception

Interfaces de réflexion d'application pour programmer SDO

SDO_Model_ReflectionDataObject

L'interface principale est utilisée pour la réflexion d'une instance d'objet de données pour obtenir son type de modèle et les informations de propriété. Elle est désignée pour suivre le motif de réflexion introduit dans PHP 5.

Constructeur

  • __construct - construit un nouvel SDO_Model_ReflectionDataObject.

Méthodes

  • export - récupère une chaîne décrivant l'objet de données.

  • getType - récupère le SDO_Model_Type pour l'objet de données.

  • getInstanceProperties - récupère les propriétés de l'instance de l'objet de données.

  • getContainmentProperty - récupère la propriété qui définit la relation contenue de l'objet de données.

SDO_Model_Type

L'interface dans lequel les informations de type de l'objet de données peuvent être récupérées. Cette interface peut être utilisée pour trouver le nom de type et l'espace de nom URI du type, si le type autorise l'ouverture du contenu, et ainsi de suite.

Méthodes

  • getName - récupère le nom du type.

  • getNamespaceURI - récupère l'espace de nom URI du type.

  • isInstance - vérifie pour un objet de données s'il est une instance du type.

  • getProperties - récupère les propriétés du type.

  • getProperty - récupère une propriété de type.

  • isDataType - vérifie pour voir si le type est une primitive de type scalaire.

  • isSequencedType - vérifie pour voir s'il s'agit d'un type de séquence.

  • isOpenType - vérifie pour voir s'il s'agit d'un type ouvert.

  • isAbstractType - vérifie pour voir s'il s'agit d'un type d'abstraction.

  • getBaseType - récupère le type de base de ce type (si un existe).

SDO_Model_Property

L'interface dans lequel les informations de propriété d'objet peuvent être récupérées. Cette interface peut être utilisée pour trouver le type d'une propriété, si une propriété a une valeur par défaut, si une propriété est contenue ou référencée par son parent, sa cardinalité, et ainsi de suite.

Méthodes

  • getName - récupère le nom de la propriété.

  • getType - récupère le type de la propriété.

  • isMany - vérifie pour voir si la propriété est de valeurs multiples.

  • isContainment - vérifie pour voir si la propriété décrit une relation contenue.

  • getContainingType - récupère le type qui contient cette propriété.

  • getDefault - récupère la valeur par défaut pour une propriété.

Interfaces de développeur Service d'Accès de Données SDO

SDO_DAS_DataObject

L'interface dans lequel un Service d'Accès de Données peut accéder à SDO_DAS_ChangeSummary de l'objet de données. Le résumé de changement est utilisé par le Service d'Accès de Données pour vérifier les conflits lors des applications des changements à une source de données.

Méthodes

  • getChangeSummary - récupère le résumé de changement pour un objet de données

SDO_DAS_ChangeSummary

L'interface dans lequel l'historique de changement d'un objet de données est accédé. Le résumé de changement contient des informations pour n'importe quelles modifications sur un objet de données qui s'est produites lorsque la journalisation a débuté. Dans le cas de suppression ou de modification, les dernières valeurs sont aussi gardées dans le résumé de changement.

Si la journalisation n'est plus active, alors le résumé de changement contient seulement les changements faits jusqu'au point où la journalisation fut désactivée. La réactivation de la journalisation supprime le résumé de changement. Cela peut être utile lorsqu'un certain nombre de changements ont été écris par un DAS et un objet de données qui est réutilisé.

Méthodes

  • beginLogging - démarre la journalisation des changements faits à l'objet de données

  • endLogging - termine la journalisation des changements faits à l'objet de données

  • isLogging - vérifie pour voir si la journalisation des changements est activée

  • getChangedDataObjects - récupère une liste de d'objets de données qui ont été changés

  • getChangeType - récupère le type de changement qui a été fait à l'objet de données

  • getOldValues - récupère une liste des anciennes valeurs pour un objet de données

  • getOldContainer - récupère un ancien conteneur d'objet de données pour un objet de données supprimé

SDO_DAS_Setting

L'interface dans lequel l'ancienne valeur pour une propriété est accédée. Une liste des configurations est retournée par le résumé de changement dont la méthode est getOldValues().

Méthodes

  • getPropertyIndex - récupère l'index pour la propriété changée

  • getPropertyName - récupère le nom pour la propriété changée

  • getValue - récupère l'ancienne valeur pour la propriété changée

  • getListIndex - récupère la liste des index pour l'ancienne valeur si elle faisait partie d'une propriété à valeurs multiples

  • isSet - vérifie pour voir si la propriété était fixée avant d'être modifiée

SDO_DAS_DataFactory

L'interface pour construire le modèle pour un SDO_DataObjet. Le SDO_DAS_DataFactory est une classe abstraite fournissant une méthode statique qui retourne une classe d'implémentation de données concrète. L'implémentation est utilisée par les Services d'Accès de Données pour créer un modèle SDO à partir de leur modèle. Par exemple, un Service d'Accès de Données Relationnel peut créer et remplir un modèle SDO_DAS_DataFactory basé sur un schéma pour une base de données relationnelle.

Méthodes

  • getDataFactory - méthodes statiques pour obtenir une instance de classe concrète de données

  • addType - ajoute un nouveau type au modèle SDO

  • addPropertyToType - ajoute une nouvelle propriété à une définition de type dans le modèle SDO

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

SDO_DAS_ChangeSummary::NONE=0 (entier)

Représente un changement de type 'none' (aucun).

SDO_DAS_ChangeSummary::MODIFICATION=1 (entier)

Représente un changement de type 'modification'.

SDO_DAS_ChangeSummary::ADDITION=2 (entier)

Représente un changement de type 'addition'.

SDO_DAS_ChangeSummary::DELETION=3 (entier)

Représente un changement de type 'deletion' (suppression).

Table des matières
SDO_DAS_ChangeSummary::beginLogging -- Commence la journalisation
SDO_DAS_ChangeSummary::endLogging -- Termine la journalisation
SDO_DAS_ChangeSummary::getChangeType -- Récupère le type de changement qui a été fait à l'objet de données
SDO_DAS_ChangeSummary::getChangedDataObjects -- Récupère une liste de d'objets de données qui ont été changés
SDO_DAS_ChangeSummary::getOldContainer -- Récupère un ancien conteneur d'objet de données pour un objet de données supprimé
SDO_DAS_ChangeSummary::getOldValues -- Récupère une liste des anciennes valeurs pour un objet de données
SDO_DAS_ChangeSummary::isLogging -- Vérifie pour voir si la journalisation des changements est activée
SDO_DAS_DataFactory::addPropertyToType -- Ajoute une nouvelle propriété à une définition de type
SDO_DAS_DataFactory::addType -- Ajoute un nouveau type à un modèle
SDO_DAS_DataFactory::getDataFactory -- Récupère l'instance de classe de données
SDO_DAS_DataObject::getChangeSummary -- Récupère le résumé de changement pour un objet de données
SDO_DAS_Setting::getListIndex -- Récupère la liste des index pour une propriété de valeurs multiples changée
SDO_DAS_Setting::getPropertyIndex -- Récupère l'index de propriété pour la propriété changée
SDO_DAS_Setting::getPropertyName -- Récupère le nom de la propriété pour la propriété changée
SDO_DAS_Setting::getValue -- Récupère l'ancienne valeur pour la propriété changée
SDO_DAS_Setting::isSet -- Vérifie pour voir si la propriété était fixée avant d'être modifiée
SDO_DataFactory::create -- Crée un SDO_DataObject
SDO_DataObject::clear -- Détruit les propriétés d'un SDO_DataObject
SDO_DataObject::createDataObject -- Crée un enfant SDO_DataObject
SDO_DataObject::getContainer -- Récupère un conteneur de l'objet de données
SDO_DataObject::getSequence -- Récupère la séquence pour un objet de données
SDO_DataObject::getTypeName -- Retourne le nom du type d'un objet de données
SDO_DataObject::getTypeNamespaceURI -- Retourne l'espace de nom URI du type d'un objet de données
SDO_Exception::getCause -- Récupère la cause d'une exception
SDO_List::insert -- Insère dans une liste
SDO_Model_Property::getContainingType -- Récupère le SDO_Model_Type qui contient cette propriété
SDO_Model_Property::getDefault -- Récupère la valeur par défaut pour la propriété
SDO_Model_Property::getName -- Récupère le nom de SDO_Model_Property
SDO_Model_Property::getType -- Récupère le SDO_Model_Type de la propriété
SDO_Model_Property::isContainment -- Vérifie pour voir si la propriété définit une relation contenue
SDO_Model_Property::isMany -- Vérifie pour voir si la propriété est de valeurs multiples
SDO_Model_ReflectionDataObject::__construct -- Construit un SDO_Model_ReflectionDataObject
SDO_Model_ReflectionDataObject::export -- Récupère une chaîne de caractères décrivant le SDO_DataObject.
SDO_Model_ReflectionDataObject::getContainmentProperty -- Récupère la propriété qui définit la relation contenue de l'objet de données
SDO_Model_ReflectionDataObject::getInstanceProperties -- Récupère les propriétés de l'instance de SDO_DataObject
SDO_Model_ReflectionDataObject::getType -- Récupère le SDO_Model_Type pour SDO_DataObject
SDO_Model_Type::getBaseType -- Récupère le type de base pour le type
SDO_Model_Type::getName -- Récupère le nom du type
SDO_Model_Type::getNamespaceURI -- Récupère l'espace de nom URI pour le type
SDO_Model_Type::getProperties -- Récupère les objets SDO_Model_Property définis pour le type
SDO_Model_Type::getProperty -- Récupère un SDO_Model_Property du type
SDO_Model_Type::isAbstractType -- Vérifie pour voir si ce SDO_Model_Type est un objet de type abstrait
SDO_Model_Type::isDataType -- Vérifie pour voir si le SDO_Model_Type est un type de données primitive
SDO_Model_Type::isInstance -- Vérifie si un SDO_DataObject est une instance de ce SDO_Model_Type
SDO_Model_Type::isOpenType -- Vérifie pour voir si le type est un type ouvert
SDO_Model_Type::isSequencedType -- Vérifie pour voir si le type est une séquence
SDO_Sequence::getProperty -- Retourne la propriété pour l'index de séquence spécifié
SDO_Sequence::insert -- Ajoute dans une séquence
SDO_Sequence::move -- Déplace un item à une autre position de la séquence

Précédent | Sommaire | Suivant
SCA::getService | Niveau supérieur | SDO_DAS_ChangeSummary::beginLogging


Fonctions de Service d'Accès de Données SDO XML

Manuel PHP
Précédent Suivant

CXLIV. Fonctions de Service d'Accès de Données SDO XML

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Afin d'utiliser le Service d'Accès de Données XML pour les Objets de Service de Données, vous aurez besoin de comprendre certains concepts derrière le SDO : les graphiques de données, les objets de données, XPath et ses expressions, et ainsi de suite. Si vous n'êtes pas familier avec ces idées, vous devriez jeter un oeil sur la section sur SDO.

Le travail de XML DAS est de déplacer les données entre l'application et un fichier source XML, qui peut être soit un fichier ou une adresse URL. SDO est créé et maintenu en accord avec un modèle qui définit les types des noms et quels noms de propriétés chaque type doit avoir. Pour les données qui proviennent d'un fichier XML, le modèle SDO est construit depuis un fichier de schéma écrit dans un langage XML (un fichier xsd). Ce schéma est habituellement passé à la méthode créée lorsque l'objet XMLDAS est initialisé. La spécification SDO 2.0 définit le lien entre les types XML et les types SDO. Il y a quelques limitations dans le support PHP - tout ce qui se trouve dans la spécification ne peut pas être fait - et ces limitations sont énumérées dans une section suivante.

Pré-requis

Le Service d'Accès de Données requiert PHP 5.1.0 ou supérieur. Il est fonctionnel avec l'extension SDO et requiert que SDO soit installée. Voyez les instructions d'installation SDO pour plus de détails sur comment faire cela.

Installation

Le Service d'Accès de Données et empaqueté et installé avec l'extension SDO. Référez-vous à instructions d'installation SDO.

Exemples

La plupart des exemples suivants sont basés sur l'exemple de la lettre décrite dans la documentation SDO. Les exemples assument que le Schéma XML pour la lettre est contenu dans un fichier lettre.xsd et que l'instance de la lettre est dans le fichier lettre.xml. Ces deux fichiers sont reproduits ici :

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:lettre="http://lettreSchema"
  targetNamespace="http://lettreSchema">
  <xsd:element name="lettres" type="lettre:FormLettre"/>
  <xsd:complexType name="FormLettre" mixed="true">
    <xsd:sequence>
      <xsd:element name="date" minOccurs="0" type="xsd:string"/>
      <xsd:element name="prenom" minOccurs="0" type="xsd:string"/>
      <xsd:element name="nomFamille" minOccurs="0" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

<lettre:lettres xmlns:lettre="http://lettreSchema">
  <date>1er Mars 2005</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Chère
  <prenom>Casy</prenom>
  <nomFamille>Crocodile</nomFamille>
  S'il vous plaît, achetez plus de requin imperméable.
  Votre prime est passée date.
</lettre:lettres>

Exemple 1. Chargement, modification et sauvegarde d'un document XML

L'exemple suivant montre comment un document XML peut être chargé provenant d'un fichier, altéré et récrit.

<?php
/**
* Charge, met à jour et sauvegarde un document XML
 */
try {
   $xmldas = SDO_DAS_XML::create("letter.xsd");
   $document = $xmldas->loadFile("letter.xml");
   $root_data_object = $document->getRootDataObject();
   $root_data_object->date = "September 03, 2004";
   $root_data_object->firstName = "Anantoju";
   $root_data_object->lastName = "Madhu";
   $xmldas->saveFile($document, "letter-out.xml");
   echo "Nouveau fichier écrit :\n";
   print file_get_contents("letter-out.xml");
} catch (SDO_Exception $e) {
   print($e->getMessage());
}
?>

Une instance du XML DAS est la première obtenue de la méthode SDO_DAS_XML::create() qui est une méthode statique de la classe SDO_DAS_XML. L'emplacement du xsd est passé en paramètre. Une fois que nous avons une instance de XML DAS initialisée avec un schéma donné, nous pouvons l'utiliser pour charger l'instance du document en utilisant la méthode loadFile(). Il y a aussi la méthode loadString() si vous voulez charger une instance de document XML provenant d'une chaîne de caractères. Si l'instance du document se charge correctement, un objet de type SDO_DAS_XML_Document sera retourné sur lequel vous pourrez appeler la méthode getRootDataObject() pour obtenir l'objet de données SDO qui est la racine de votre graphique de données SDO. Vous pouvez alors utiliser les opérations SDO pour changer le graphique SDO. Dans cet exemple, nous modifions les propriétés date, prenom et nomFamille. Ensuite, nous utilisons la méthode saveFile() pour écrire les changements dans un fichier système. La méthode saveFile a un argument optionnel qui, s'il est spécifié, fera que le XML DAS formatera le XML en utilisant cet argument pour indenter chaque changement dans le niveau du document.

This will write the following to letter-out.xml.

<?xml version="1.0" encoding="UTF-8"?>
<FormLetter xmlns="http://letterSchema" xsi:type="FormLetter" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <date>September 03, 2004</date>
 Mutual of Omaha
 Wild Kingdom, USA
 Dear
 <firstName>Anantoju</firstName>
 <lastName>Madhu</lastName>
 Please buy more shark repellent.
 Your premium is past due.
</FormLetter>

Exemple 2. Création d'un nouveau document XML

L'exemple précédent charge le document depuis un fichier. Cet exemple montre comment créer un graphique de données SDO en mémoire. Dans cet exemple, il est sauvegardé dans une chaîne XML. En outre, vu que la lettre contient à la fois du contenu structuré et non-structuré, on utilise l'API séquence pour assigner les propriétés pour construire le graphique des données.

<?php
/**
* Création d'un document XML
*/
try {
   $xmldas = SDO_DAS_XML::create("letter.xsd");
   try {
      $doc = $xmldas->createDocument();
      $rdo = $doc->getRootDataObject();
      $seq = $rdo->getSequence();
      $seq->insert("April 09, 2005", NULL, 'date');
      $seq->insert("Acme Inc. ", NULL, NULL);
      $seq->insert("United Kingdom. ");
      $seq->insert("Dear", NULL, NULL);
      $seq->insert("Tarun", NULL, "firstName");
      $seq->insert("Nayaraaa", NULL, "lastName");
      $rdo->lastName = "Nayar";
      $seq->insert("Please note that your order number ");
      $seq->insert(12345);
      $seq->insert(" has been dispatched today. Thanks for your business with us.");
      print($xmldas->saveString($doc));
   } catch (SDO_Exception $e) {
   print($e);
   }
} catch (SDO_Exception $e) {
   print("Problème lors de la création du document XML : " . $e->getMessage());
}
?>

La méthode createDocument() du XLM DAS retourne un objet document avec une donnée racine simple correspondant à un élément du document vide. Le nom de l'élément du document est connu du fichier de schéma. S'il y a le moindre doute quant à la valeur de l'élément du document, par exemple lorsque plus d'un schéma a été chargé dans le même XML DAS, le nom de l'élément et l'URI de l'espace de noms peuvent être passés à la méthode createDocument().

Ceci affichera (les retours à la ligne ont été insérés pour une meilleure lisibilité) :

<?xml version="1.0" encoding="UTF-8"?>
<FormLetter xmlns="http://letterSchema" xsi:type="FormLetter"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <date>April 09, 2005</date>
 Acme Inc. United Kingdom.
 Dear
 <firstName>Tarun</firstName>
 <lastName>Nayar</lastName>
 Please note that your order number 12345 has been
 dispatched today. Thanks for your business with us.
</FormLetter>

Exemple 3. Définission des propriétés du document XML

Ce troisième exemple montre comment définir la version XML ainsi que l'encodage de l'objet document. Ceci sera utilisé lors de l'écriture du document XML. Si aucune déclaration XML n'est désirée (peut-être voulez-vous générer du XML sous la forme d'une chaîne à incorporer quelque part), alors, vous pouvez utiliser la méthode setXMLDeclaration() pour supprimer la déclaration.

<?php
/**
* Illustration des appels qui contrôlent la déclaration XML
*/
$xmldas = SDO_DAS_XML::create("letter.xsd");
$document = $xmldas->loadFile("letter.xml");
$document->setXMLVersion("1.1");
$document->setEncoding("ISO-8859-1");
print($xmldas->saveString($document));
?>

La version et l'encodage du XML sont définis dans la déclaration XML en haut du document XML.

<?xml version="1.1" encoding="ISO-8859-1"?>
.../...

Exemple 4. Utilisation d'un type ouvert

Ce quatrième exemple illustre l'utilisation d'un type ouvert SDO ainsi que l'utilisation de la méthode createDataObject(). Pour cet exemple, nous utilisons les deux schémas suivants :

<schema
         xmlns="http://www.w3.org/2001/XMLSchema">
 <element name="jungle">
  <complexType>
   <sequence>
    <any minOccurs="0" maxOccurs="unbounded"/>
   </sequence>
  </complexType>
 </element>
</schema>

Notez la présence de l'élément any dans la définission. Ce premier schéma définit le type complexe jungle qui contient une séquence de n'importe quel autre type. Les autres types que cet exemple utilise, sont définis dans un second fichier de schéma :

<schema xmlns= "http://www.w3.org/2001/XMLSchema">

 <complexType name="snakeType">
  <sequence>
   <element name= "name" type="string"/>
   <element name= "length" type="positiveInteger" />
  </sequence>
 </complexType>

 <complexType name="bearType">
  <sequence>
   <element name= "name" type="string"/>
   <element name= "weight" type="positiveInteger" />
  </sequence>
 </complexType>

 <complexType name="pantherType">
  <sequence>
   <element name= "name" type="string"/>
   <element name= "colour" type="string" />
  </sequence>
 </complexType>

</schema>

Voici l'exemple de code PHP qui utilise ces deux fichiers de schéma :

<?php

/**
* Illustration de types ouverts et de l'utilisaton de la méthode addTypes()
*/

$xmldas = SDO_DAS_XML::create();
$xmldas->addTypes("jungle.xsd"); // ceci est un type ouvert, i.e. la xsd spécifiée peut contenir le type "any"
$xmldas->addTypes('animalTypes.xsd');

$baloo  = $xmldas->createDataObject('','bearType');
$baloo->name = "Baloo";
$baloo->weight = 800;

$bagheera = $xmldas->createDataObject('','pantherType');
$bagheera->name = "Bagheera";
$bagheera->colour = 'inky black';

$kaa = $xmldas->createDataObject('','snakeType');
$kaa->name = "Kaa";
$kaa->length = 25;

$document = $xmldas->createDocument();
$do = $document->getRootDataObject();
$do->bear = $baloo;
$do->panther = $bagheera;
$do->snake = $kaa;

print($xmldas->saveString($document,2));

?>

Ces deux fichiers de schéma sont chargés dans le XML DAS avec les méthodes create() et addTypes(). La méthode createDataObject() est utilisée pour créer les trois objets de données. Dans chaque cas, l'URI de l'espace de noms et le nom du type sont passés à la méthode createDataObject() : dans cet exemple, l'URI de l'espace de nom est vide car aucun espace de noms n'est utilisé dans ce schéma. Une fois que les trois objets - représentant un ours, une penthère et un serpent - ont été créés, un objet document est créé avec la méthode createDocument(). Dans ce cas, il n'y a aucune ambiguité sur l'élément document - vu que le second fichier de schéma définit uniquement des types complexes, l'élément document ne peut être que l'élément global jungle défini dans le premier schéma. Ce document aura un objet racine simple correspondant à un élément document jungle vide. Vu que c'est un type ouvert, les propriétés peuvent y être ajoutées. Lorsque le premier assignement est effectué sur $do->bear, une propriété bear est ajoutée à l'objet racine : de la même façon que pour les deux assignements suivants. Lorsque le document est écrit via la méthode saveString(), le document résultant sera :

<?xml version="1.0" encoding="UTF-8"?>
  <jungle xsi:type="jungle" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <bear xsi:type="bearType">
  <name>Baloo</name>
  <weight>800</weight>
 </bear>
 <panther xsi:type="pantherType">
  <name>Bagheera</name>
  <colour>inky black</colour>
 </panther>
 <snake xsi:type="snakeType">
  <name>Kaa</name>
  <length>25</length>
 </snake>
</jungle>

Exemple 5. Trouver ce que vous voulez dans un document

Cet exemple illustre comment trouver un nom d'élément et l'espace de noms d'un élément du document depuis un objet XML Document, le type SDO et l'espace de noms depuis l'élément racine de données XML. Ceci peut être difficle à comprendre car il y a 4 méthodes à appeler : deux peuvent être exécutées sur l'objet Document, et deux sur n'importe quelle donnée y compris l'objet racine. Parceque les règles qui définissent la façon dont le modèle SDO est dérivé du modèle XML, lorsque l'objet de données concerné est l'objet racine qui représente l'objet document pour le document, seulement trois valeurs possibles peuvent revenir de l'appels des quatres méthodes.

Les deux appels de méthodes qui peuvent être exécutés sur le document sont getRootElementName() et getRootEelementURI(). Elles retournent respectivement le nom de l'élément et l'espace de noms de l'élément document.

Les deux appels de méthodes qui peuvent être exécutés sur tous les objets de données sont getTypeName() et getTypeNamespaceURI(). Elles retournent respectivement le nom du type SDO et l'espace de noms du type de l'objet de données.

Dans tous les cas, l'appel à la méthode getRootElementURI() sur l'objet document retournera la même valeur que l'appel à la méthode getNamespaceURI() sur l'objet racine. Les informations sont toutes dérivées depuis les premières lignes du fichier schéma, où il y a trois sortes distinctes d'informations. Pour illustrer ceci, voici les premières lignes du fichier letter.xsd qui nous avons utilisé plus haut.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:letter="http://letterSchema"
targetNamespace="http://letterSchema">

<xsd:element name="letters" type="letter:FormLetter"/>

<xsd:complexType name="FormLetter" mixed="true">
.../...

Les trois valeurs importantes sont :

  • letters, le nom de l'élément document

  • FormLetter, le nom du type complexe de l'élément document. C'est également le nom du type SDO de l'objet racine.

  • http://letterSchema, l'espace de noms auquel l'élément document appartient. C'est également l'URI de l'espace de noms du type SDO de l'objet racine.

C'est une partie des règles XML-SDO qui, lorsque le modèle SDO est construit depuis le fichier schéma, sont utilisé pour récupérer le nom du type et l'URI de l'espace de noms des types SDO pour l'élément racine pour les types complexes de l'élément document, lorsqu'ils existent. Dans cet exemple, le nom du type de l'objet racine est FormLetter. Dans le cas où il n'y a pas de définission de type complexe séparé pour l'élément document, lorsque le type est défini en ligne et qu'il est anonyme, le nom du type SDO sera le même que le nom de l'élément.

Le programme suivant charge le document lettre et vérifie les valeurs retournées de chaque des quatres appels.

<?php
$xmldas = SDO_DAS_XML::create("letter.xsd");
$document = $xmldas->loadFile("letter.xml");
$root_do = $document->getRootDataObject();

/**
* Le "root element name" est le nom de l'élément de l'élément document
* dans ce cas 'letters'
* Ceci correspond à l'attribut 'name' de l'élément document dans le fichier xsd et correspond
* au nom de l'élément depuis le XML
*/
echo "Le nom de l'élément document est " . $document->getRootElementName() . "\n";
assert($document->getRootElementName() == 'letters'); // une propriété du document

/**
* Le "root element URI" est l'espace de noms du nom de l'élément de l'élément document
* dans ce cas 'http://letterSchema' vu que 'letters' est dans l'espace de noms.
* Il est récupéré depuis le xsd et correspond à l'espace de noms récupéré du XML
*/
echo "L'élément document est dans l'espace de noms " . $document->getRootElementURI() . "\n";
assert($document->getRootElementURI() == 'http://letterSchema'); // une propriété du document

/**
* Le nom du type est récupéré depuis le modèle SDO
* Les règles XML-SDO utilisées pour cela sont :
*   Le nom du type complexe s'il existe (ici, c'est le cas)
*   Le nom de l'élément document s'il n'y a pas de type complexe
* Il est récupéré depuis le xsd
*/
echo "Le nom du type de l'objet racine est " . $root_do->getTypeName() . "\n";
assert($root_do->getTypeName() == 'FormLetter');

/**
* Le type de l'espace de noms est récupéré depuis le modèle SDO
* Les règles XML-SDO assurent que ce sera toujours le même que l'URI de
* l'espace de noms de l'élément document
*/
echo "L'URI de l'espace de noms de l'objet racine est " . $root_do->getTypeNamespaceURI() . "\n";
assert($root_do->getTypeNamespaceURI() == 'http://letterSchema');

?>

Ce programme affichera :

Le nom de l'élément document est letters
L'élément document est dans l'espace de noms http://letterSchema
Le nom du type de l'objet racine est FormLetter
L'URI de l'espace de noms de l'objet racine est http://letterSchema

Exemple 6. Affichage du modèle SDO

Le XML DAS fournit une signification simple pour voir quels types et propriétés ont été chargés. L'instruction PHP "print" ou "echo" affichera les types et les propriétés.

<?php
/**
* Affichage du modèle
*/

$xmldas = SDO_DAS_XML::create("letter.xsd");
print $xmldas;

?>

L'affichage de ce programme sera :

object(SDO_XML_DAS)#1 {
18 types have been defined. The types and their properties are::
1. commonj.sdo:BigDecimal
2. commonj.sdo:BigInteger
3. commonj.sdo:Boolean
4. commonj.sdo:Byte
5. commonj.sdo:Bytes
6. commonj.sdo:ChangeSummary
7. commonj.sdo:Character
8. commonj.sdo:DataObject
9. commonj.sdo:Date
10. commonj.sdo:Double
11. commonj.sdo:Float
12. commonj.sdo:Integer
13. commonj.sdo:Long
14. commonj.sdo:Short
15. commonj.sdo:String
16. commonj.sdo:URI
17. http://letterSchema:FormLetter
- date (commonj.sdo:String)
- firstName (commonj.sdo:String)
- lastName (commonj.sdo:String)
18. http://letterSchema:RootType
- letters (http://letterSchema:FormLetter)

Classes pré-définies

Le XML DAS fournit deux classes principales. La première est SDO_DAS_XML qui est la classe principale utilisée pour récupérer les données depuis le source XML et utilisée pour écrire les données. La seconde est la classe SDO_DAS_XML_Document qui représente les données du document XML.

Il y a également quelques classes d'exceptions qui peuvent être lançées si des erreurs sont trouvées lors d'une recherche ou de l'analyse du fichier xsd ou du fichier XML.

SDO_DAS_XML

C'est la classe principale de XML DAS, qui est utilisée pour récupérer les données depuis le source XML mais également pour écrire les données.

Méthodes

  • create C'est une méthode statique disponible dans la classe SDO_DAS_XML. Utilisée pour construire l'objet SDO_DAS_XML.

  • addTypes Fonctionne de la même manière que la méthode create() mais utilisée pour ajouter de contenu d'un second fichier schéma dans un XML DAS qui a déjà été créé.

  • createDataObject Peut être utilisée pour construire l'objet de données SDO d'un type donnée.

  • createDocument Peut être utilisée pour construire l'objet Document XML.

  • loadFile Charge une instance XML depuis un ficiher. Ce fichier peut être en local ou sur un hôte distant.

  • loadString la même chose que la méthode ci-dessus. Charge l'instance XML qui est disponible sous la forme d'une chaîne de caractères.

  • saveFile sauvegarde l'objet SDO_DAS_XML_Document en tant qu'un fichier XML.

  • saveString sauvegarde l'objet SDO_DAS_XML_Document en tant qu'une chaîne de caractères.

SDO_DAS_XML_Document

Cette classe peut être utilisée pour récupérer le nom et l'espace de noms de l'élément document et pour récupérer l'objet racine du document. De plus, elle peut également être utilisée pour définir la version XML et l'encodage du document de sortie.

Méthodes

  • getRootDataObject récupère l'objet racine DataObject.

  • getRootElementName récupère le nom de l'objet racine DataObject.

  • getRootElementURI récupère l'URI de l'objet racine DataObject.

  • setEncoding définit l'encodage en fonction de la valeur fournie.

  • setXMLDeclaraion pour définir/supprimer la déclaration XML.

  • setXMLVersion définit la version XML en fonction de la valeur fournie.

SDO_DAS_XML_ParserException

Est une sous classe de SDO_Exception. Lançée pour toutes les erreurs d'analyse lors du chargement des fichiers xsd/xml.

SDO_DAS_XML_FileException

Est une sous classe de SDO_Exception. Lançée par toutes les méthodes qui chargent des données depuis un fichier, lorsque le fichier ne peut être trouvé.

Limitations avec la spécification SDO 2.0

Les spécifications SDO 2.0 définissent la concordance entre les types XML et les types SDO. Avec Java SDO, la concordance est implémentée par le XMLHelper. Avec SDO pour PHP, cette concordance est implémentée par les Services d'Accès de Données XML. Le XML DAS implémente la concordance décrite dans les spécifications SDO 2.0 avec les restrictions suivantes :

Types Simples XML

  1. Type Simple avec sdoJava:instanceClass - aucun support PHP fourni

  2. Type simple avec sdoJava:extendedInstanceClass - aucun support PHP fourni

  3. Type Simple avec une liste de itemType.

  4. Type Simple avec union.

Types Complex XML

  1. Type complexe avec sdo:aliasName - aucun support PHP pour ces types d'alias SDO.

Attribut XSD

  1. Attribut avec sdo:aliasName - aucun support PHP pour les alias des propriétés SDO.

  2. Attribut avec une valeur par défaut - aucun support PHP pour les propriétés par défaut SDO.

  3. Attribut avec une valeur fixe - aucun support PHP pour les propriétés SDO en lecture-seules ou les valeurs par défaut.

  4. Attribut référençant un DataObject avec sdo:propertyType - aucun support pour sdo:propertyType="...".

  5. Attribut avec des propriétés bi-directionnelles d'un DataObject avec sdo:oppositeProperty et sdo:propertyType - aucun support PHP pour l'opposition SDO.

Éléments XSD

  1. Élément avec sdo:aliasName - aucun support PHP pour les alias de propriétés SDO.

  2. Élément avec un groupe de substitution.

Éléments XSD avec un type simple

  1. Élément de SimpleType avec une valeur par défaut - aucun support PHP pour les valeurs par défaut SDO

  2. Élément de SimpleType avec une valeur fixe - aucun support PHP pour les propriétés en lecture-seules SDO ou les valeurs par défaut.

  3. Élément de SimpleType avec sdo:string - aucun support pour sdo:string="true".

  4. Élément référençant un objet DataObject avec sdo:propertyType - aucun support pour sdo:propertyType="..."

  5. Élément avec une référence bi-directionnelle pour un object DataObject avec sdo:oppositeProperty et sdo:propertyType - aucun support PHP pour l'opposition SDO.

Table des matières
SDO_DAS_XML_Document::getRootDataObject -- Retourne la racine de SDO_DataObject
SDO_DAS_XML_Document::getRootElementName -- Retourne le nom de l'élément racine
SDO_DAS_XML_Document::getRootElementURI -- Retourne la chaîne de caractères URI de l'élément racine
SDO_DAS_XML_Document::setEncoding -- Fixe l'encodage à l'aide d'une chaîne de caractères
SDO_DAS_XML_Document::setXMLDeclaration -- Fixe la déclaration xml
SDO_DAS_XML_Document::setXMLVersion -- Fixe la version xml à l'aide d'une chaîne de caractères
SDO_DAS_XML::addTypes -- Pour charger un second ou subséquent fichier shcéma à un objet SDO_DAS_XML
SDO_DAS_XML::create -- Pour créer un objet SDO_DAS_XML pour un fichier de schéma donné
SDO_DAS_XML::createDataObject -- Crée un SDO_DataObject pour un espace de nom URI et un nom de type donnés
SDO_DAS_XML::createDocument -- Crée un objet de document XML à partir de zéro, sans avoir besoin de charger un document à partir d'un fichier ou d'une chaîne de caractère
SDO_DAS_XML::loadFile -- Retourne un objet SDO_DAS_XML_Document pour un chemin donné d'une instance de document xml
SDO_DAS_XML::loadString -- Retourne un SDO_DAS_XML_Document pour une chaîne de caractères d'instance xml donnée
SDO_DAS_XML::saveFile -- Sauvegarde l'objet SDO_DAS_XML_Document vers un fichier
SDO_DAS_XML::saveString -- Sauvegarde l'objet SDO_DAS_XML_Document vers une chaîne de caractères

Précédent | Sommaire | Suivant
SDO_Sequence::move | Niveau supérieur | SDO_DAS_XML_Document::getRootDataObject


Fonctions SDO Relationnel Service d'Accès de Données

Manuel PHP
Précédent Suivant

CXLV. Fonctions SDO Relationnel Service d'Accès de Données

Introduction

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Afin d'utiliser le Service d'Accès de Données Relationnel pour les Objets de Service de Données, vous devrez comprendre certains concepts derrière le SDO : le graphique de données, l'objet de données, le moyen de déconnexion pour travailler, le changement du sommaire, les expressions XPath et les propriétés, et ainsi de suite. Si vous n'êtes pas familier avec ses idées, vous devriez regarder en premier à la section sur le SDO. De plus, le DAS Relationnel utilise l'extension SDO pour s'isoler des communications spécifiques aux bases de données. Afin d'utiliser le DAS Relationnel, vous devrez être capable de créer et passer une connexion de base de données PDO; pour cette raison, vous devrez aussi regarder la section sur le PDO.

Le travail de DAS Relationnel est de déplacer les données entre les applications et une base de données relationnelle. Afin de faire cela, vous devez dire quelle sorte de données vont être transférées entre les entités de base de données - tables, colonnes, clés primaires et clés étrangères - et les éléments de modèle SDO - types, propriétés, relations de retenue et ainsi de suite. Vous spécifiez ces informations comme des méta-données lorsque vous construisez le DAS Relationnel.

Vue d'ensemble des Opérations

  1. La première étape est d'appeler le constructeur de DAS Relationnel, en lui passant les méta-données qui définissent les relations entre la base de données et le modèle SDO. Il y a des exemples plus bas.

  2. L'étape suivante devrait être l'appel des méthodes executeQuery() ou executePreparedQuery() sur le DAS Relationnel, en leur passant soit une requête SQL littérale pour le DAS pour préparer et exécuter ou une requête préparée avec des paramètres fictifs et une liste des valeurs à être insérées. Vous pouvez aussi avoir besoin de spécifier un peu de méta-données à propos de la requête, ainsi le DAS Relationnel saura exactement quelles colonnes seront retournées de la base de données et dans quel ordre. Vous devez aussi passer une connexion de base de données PDO.

    La valeur de retour de executeQuery() ou executePreparedQuery() est un graphique de données normalisé contenant toutes les données du jeu de résultats. Pour une requête qui retourne les données obtenues à partir de plusieurs tables, ce graphique contiendra plusieurs objets de données, liés avec les relations SDO contenues. Il pourrait aussi y avoir des données de références qui ne sont pas de contenues à l'intérieur des données.

    Une fois que la requête a été exécutée et le graphique de données construit, il n'est pas nécessaire pour l'instance de DAS Relationnel ou pour la connexion de base de données. Il n'y a pas de verrou gardé sur la base de données. Le DAS Relationnel et la connexion de base de données PDO peuvent être tous deux passés au ramasse miettes.

  3. Il est probable que les données dans le graphique de données passent par plusieurs modifications. Le graphique de données peut être sérialisé dans une session PHP et ainsi peut avoir une vie au-delà d'une interaction client-serveur. Les objets de données peuvent être créés et ajoutés au graphique, les objets de données déjà dans le graphique peuvent être supprimés et les objets de données dans le graphique peuvent être modifiés.

  4. Enfin, les changements effectués sur le graphique de données peuvent être appliqués à la base de donnés en utilisant la méthode applyChanges() de DAS Relationnel. Pour cela, une autre instance de DAS Relationnel doit être construite, en utilisant les mêmes méta-données, et une autre connexion à la base de données obtenue. La connexion et le graphique de données sont passés à applyChanges(). À ce point, le DAS Relationnel examine les changements et génère les requêtes SQL INSERT, UPDATE et DELETE nécessaires pour appliquer les changements. Toutes les requêtes UPDATE et DELETE sont qualifiées avec les valeurs originales des données, donc il se peut que les données aillent changées dans la base de données en attendant que les données soient détectées. En assumant qu'aucune collision de ce type ne s'est produite, les changements seront envoyés à la base de données. L'application peut alors continuer à travailler avec le graphique de données, effectuer d'autres changements et les appliquer, ou peut le jeter.

Il y a d'autres moyens de travailler avec les données dans la base de données : il est possible de créer simplement les objets de données et les écrire à la base de données sans effectuer d'appel préliminaire à executeQuery(), par exemple. Ce scénario et les autres sont explorés dans les exemples de la section plus bas.

Installation

Les instructions d'installation pour tous les composants SDO sont dans la section d'installation de la documentation SDO.

Dans tous les cas, les faits essentiels sont que le DAS Relationnel est écrit en PHP et devrait être placé quelque part dans le include_path de PHP.

Votre application devra bien sur inclure le DAS Relationnel avec une ligne comme cela :

<?php
require_once 'SDO/DAS/Relational.php';
?>

Pré-requis

Le DAS Relationnel requière que l'extension SDO soit installée. L'extension SDO requière une version de PHP 5.1 et le DAS Relationnel requière une version récente qui contient une mise à jour importante de PDO. Les informations les plus à jours à propos des niveaux requis de PHP devrait être trouvées dans le changelog pour ce paquetage sur PECL. Au moment que nous écrivons cette documentation, le DAS Relationnel requière le plus récent niveau de bêta de PHP 5.1, qui est PHP 5.1.0.

Le DAS Relationnel utilise le PDO pour accéder à une base de données relationnelle et devrait fonctionner avec une variété différente de bases de données. Au moment que nous écrivons cette documentation, cela a été testé avec les configurations suivantes

  • MySQL 4.1.14, sur Windows. Le DAS Relationnel opère correctement avec le pilote php_pdo_mysql qui vient avec les programmes pré-configurés binaires de PHP 5.1.0.

  • MySQL 4.1.13, sur Linux. Il est nécessaire d'avoir le plus récent pilote de PDO pour MySQL, qui vient avec un PHP. 5.1.0. Il se peut qu'il soit nécessaire de désinstaller les pilotes utilisés qui seraient venus de PECL en utilisant pear uninstall pdo_mysql . Vous devrez configurer votre PHP avec l'option --with-pdo-mysql.

  • DB2 8.2 Édition Personnelle, sur Windows. Le DAS Relationnel opère correctement avec le pilote php_pdo_odbc qui vient avec les programmes pré-configurés binaires de PHP 5.1.0.

  • DB2 8.2 Édition Personnelle de Développeur, sur Linux. L'édition e Développeur est requise puisqu'elle contient les fichiers d'inclusion requis lorsque PHP est configuré et bâti. Vous devrez configurer PHP avec l'option --with-pdo-odbc=ibm-db2.

Le DAS Relationnel applique les changements à la base de données à l'intérieur de transactions délimitées par l'utilisateur : cela appel la méthode PDO::beginTransaction() avant de commencer à appliquer les changements et PDO::commit() ou PDO::rollback() lorsque c'est complété. Peu importe la base de données qui est choisie, la base de données et le pilote PDO pour cette base de données doivent supporter ces appels.

Limitations

Il y a les limitations suivantes dans la version courante de DAS Relationnel :

  • Aucun support pour les données NULL. Il n'y a pas de support pour les types de SQL NULL. Cela n'est pas légal d'assigner une donnée PHP NULL à une propriété d'objet de données et le DAS Relationnel n'écriera pas en tant que NULL à la base de données. Si des données NULL sont trouvées dans la base de données dans une requête, la propriété restera non fixée.

  • Seulement deux types de relation SDO. Les méta-données décrient plus bas permettent le DAS Relationnel de modéliser seulement deux types de relation SDO : relations contenues de valeurs multiples et les références contenues de valeurs simples. Dans SDO, si une propriété décrit une relation simple ou de valeurs multiples, et si c'est contenu ou non contenu, elle est indépendante. La plage complète des possibilités que SDO autorise ne peut être défini au complet. Il peut y avoir des relations qui peuvent être utiles pour modéliser mais que l'implémentation courante ne peut gérer. Un exemple est de relation de simples valeurs contenues.

  • Aucun support pour la plage complète des types de données SDO. Le DAS Relationnel définit des propriétés primitives dans le modèle SDO en tant qu'un type de chaîne de caractères. SDO définit un ensemble de types plus riche contenant des types entier, valeur à virgule flottante, booléen et des données et de temps. Une chaîne de caractères est adéquate pour les buts de DAS Relationnel puisque la combinaison de PHP, PDO et les bases de données assurera que les valeurs passées en tant que chaînes de caractères seront converties au bon type avant d'être envoyées à la base de données. Cela affecte certains scénarios dans lesquels DAS Relationnel doit travailler avec un graphique de données qui est venu ou ira à un différent DAS.

  • Seulement une clé étrangère par table. Les méta-données fournissent seulement le moyen de spécifier une clé étrangère par table. Cette clé étrangère peut établir une correspondance à un ou deux types de relations SDO supportés. Évidemment, il y a des scénarios qui ne peuvent être décrits sous cette limitation - il n'est pas possible d'avoir deux références non contenues d'une table à une autre par exemple.

Exemples

Cette section illustre comment le DAS Relationnel peut être utilisé pour créer, récupérer, mettre â jour et supprimer des données dans une base de données relationnelle. Plusieurs de ces exemples sont illustrés avec trois tables dans une base de données qui contient "compagnies", "departements" à l'intérieur de ces compagnies et "employes" qui travaillent dans ces départements. Cet exemple est utilisé dans plusieurs places dans la littérature SDO. Voyez la section des exemples de spécification d'Objets de Service de Données ou la section d'exemples de la documentation de l'extension SDO.

Le DAS Relationnel est construit avec les méta-données qui définissent la base de données relationnelle et comment il devrait être en relation avec le SDO. La longue section qui suit décrit ces méta-données et comment construire le DAS Relationnel. Ces exemples qui suivent assument tous que ces méta-données sont incluses dans un fichier PHP.

Les exemples ci-dessous et les autres peuvent être trouvés dans le dossier Scenarios dans le paquetage DAS Relationnel.

Le DAS Relationnel émet des exceptions dans le cas qu'il trouve des erreurs dans les méta-données ou des erreurs lors de l'exécution des requêtes SQL à la base de données. Pour rendre les exemples plus concis, ils n'incluent pas les blocs try/catch autour des appels de DAS Relationnel.

Ces exemples diffèrent tous de l'utilisation prévue de SDO dans deux égards importants.

Premièrement, ils montrent toutes les interactions avec la base de données complétés dans un script. Ces scénarios ne sont pas réalistes mais sont choisis dans le but d'illustrer simplement l'utilisation de DAS Relationnel. Il est prévu que les interactions avec la base de données soient séparés dans le temps et le graphique de données sérialisés et désérialisé dans une session PHP une ou plusieurs fois tant que l'application interagit avec l'utilisateur final.

Deuxièmement, toutes les requêtes exécutées sur la base de données sont figées dans le code sans aucune substitution de variable. Dans ce cas, il est plus sage d'utiliser le simple appel de executeQuery() et c'est ce que montrent les exemples. En pratique, il est peu probable que la requête SQL soit connue entièrement avant son exécution. Afin d'autoriser la substitution sans danger des variables dans les requêtes SQL, sans prendre le risque d'effectuer des injections SQL avec des effets inconnus, il est plus sécuritaire d'utiliser executePreparedQuery() qui prend une requête SQL préparée contenant des paramètres fictifs et une liste des valeurs à être substituées.

Spécification des méta-données

La première longue section décrit en détail comment les méta-données décrivant la base de données et le modèle SDO requis est fourni à DAS Relationnel.

Lorsque le constructeur de DAS Relationnel est appelé, il doit recevoir plusieurs informations. La majeure partie des informations, passée en tant qu'un tableau associatif dans le premier argument du constructeur, dit à DAS Relationnel ce qu'il doit savoir à propos de la base de données relationnelle. Il décrit les noms des tables, des colonnes, des clés primaires et des clés secondaires. On devrait comprendre assez facilement ce qui est requis et une fois écrit, il peut être placé dans un fichier PHP et inclut lorsque nécessaire. Le reste des informations, passé dans un deuxième et troisième arguments du constructeur, dit au DAS Relationnel ce qu'il doit savoir à propos des relations entre les objets et la forme du graphique de données; il détermine finalement comment les données de la base de données seront normalisées dans le graphique.

Méta-données de base de données

Le premier argument du constructeur décrit la base de données relationnelle cible.

Chaque table est décrite par un tableau associatif avec jusqu'à quatre clés.

Clé | Valeur
name | Le nom de la table.
columns | Un tableau listant les noms des colonnes, dans n'importe quel ordre.
PK | Le nom de la colonne contenant la clé primaire.
FK | Un tableau avec deux entrées, 'from' et 'to' (provenance et destination), qui définissent une colonne contenant la clé étrangère et une table dans lequel la clé étrangère pointe. S'il n'y a pas de clé étrangère dans la table, alors l'entrée 'FK' est optionnelle. Seulement une clé étrangère peut être spécifiée. Seulement une clé étrangère pointant à une clé primaire d'une table peut être spécifiée.

<?php
/*****************************************************************
* MÉTA-DONNÉES DÉFINISSANT LA BASE DE DONNÉES
******************************************************************/
$compagnie_table = array (
    'name' => 'compagnie',
    'columns' => array('id', 'nom',  'employe_du_mois'),
    'PK' => 'id',
    'FK' => array (
        'from' => 'employe_du_mois',
        'to' => 'employe',
        ),
    );
$department_table = array (
    'name' => 'department',
    'columns' => array('id', 'nom', 'emplacement', 'nombre', 'co_id'),
    'PK' => 'id',
    'FK' => array (
        'from' => 'co_id',
        'to' => 'compagnie',
        )
    );
$employe_table = array (
    'name' => 'employe',
    'columns' => array('id', 'nom', 'SN', 'gestionnaire', 'dept_id'),
    'PK' => 'id',
    'FK' => array (
        'from' => 'dept_id',
        'to' => 'department',
        )
    );
$database_metadata = array($compagnie_table, $department_table, $employe_table);
?>

Les méta-données correspondent à une base de données relationnelle qui peut avoir été définie comme étant MySQL :

create table compagnie (
   id integer auto_increment,
   nom char(20),
   employe_du_mois integer,
   primary key(id)
 );
 create table department (
   id integer auto_increment,
   nom char(20),
   emplacement char(10),
   nombre integer(3),
   co_id integer,
   primary key(id)
 );
 create table employe (
   id integer auto_increment,
   nom char(20),
   SN char(4),
   gestionnaire tinyint(1),
   dept_id integer,
   primary key(id)
 );

ou comme DB2 :

create table compagnie ( \
    id integer not null generated by default as identity,  \
    nom varchar(20), \
    employe_du_mois integer, \
    primary key(id) )
create table department ( \
    id integer not null generated by default as identity, \
    nom varchar(20), \
    emplacement varchar(10), \
    nombre integer, \
    co_id integer, \
    primary key(id) )
create table employe ( \
    id integer not null generated by default as identity, \
    nom varchar(20), \
    SN char(4), \
    gestionnaire smallint, \
    dept_id integer, \
    primary key(id) )

Notez que bien que dans cet exemple n'a pas de clé étrangère de spécifiée à la base de données et que la base de données n'est pas prévue à forcer l'intégrité référentielle, l'intention derrière la colonne co_id de la table departement et la colonne dept_id de la table employe est qu'elles pourraient contenir la clé primaire de leur compagnie les contenant ou l'enregistrement du département, respectivement. Alors ces deux colonnes actent comme des clés étrangères.

Il y a une troisième clé étrangère dans cet exemple, elle est de la colonne employe_du_mois de la table compagnie qui est compris dans une ligne de la table employe. Notez la différence dans l'intention entre cette clé étrangère et les deux autres. La colonne employe_du_mois représente une relation de valeurs simples : il peut y avoir seulement un employé du moi pour une compagnie donnée. Les colonnes co_id dept_id représentent des relations de valeurs multiples : une compagnie peut contenir plusieurs département et un département peut contenir beaucoup d'employés. Cette distinction deviendra évidente lorsque le reste des méta-données sélectionne les relations entre la compagnie-département et le département-employé comme étant une relation contenue.

Il y a un peu de règles simples qui doivent être suivies lorsque l'on construit les méta-données de base de données :

  • Toutes les tables doivent avoir des clés primaires et les clés primaires doivent être spécifiées dans les méta-données. Sans clés primaires, il n'est pas possible de garder une trace des identités des objets. Comme vous pouvez le voir avec les requête SQL qui créent les tables, les clés primaires peuvent être générées automatiquement, ce qui signifie, qu'elles sont générées et assignées par la base de données lorsque l'enregistrement est inséré. Dans ce cas, la clé primaire générée automatiquement est obtenue de la base de données et insérées dans l'objet de données immédiatement après que la ligne soit insérée dans la base de données.

  • Il n'est pas nécessaire de spécifier les méta-données de toutes les colonnes qui existent dans la base de données, seulement celles qui seront utilisées. Par exemple, si la table compagnie avait un autre colonne que l'application ne souhaite pas accéder avec SDO, il n'est pas nécessaire de la spécifiée dans les méta-données. En contrepartie, cela ne devrait pas causer de problème de la spécifier : si elle est spécifiée dans les méta-données mais jamais récupérée ou assignée par l'application, alors la colonne inutilisée ne devrait rien affecter.

  • Dans les méta-données de base de données, notez que les définitions des clés étrangères n'identifient pas la colonne de destination dans la table qui est pointée, mais le nom de la table elle-même. Strictement, le modèle relationnel permet la destination d'une clé étrangère à être une clé non primaire. Seules les clés étrangères qui pointent à une clé primaire sont utiles pour la construction du modèle SDO, puisque les méta-données spécifient le nom de la table. Il est entendu que la clé étrangère pointe vers la clé primaire d'une table donnée.

Ayant donné ces règles et les requêtes SQL qui définissent les bases de données, les méta-données de base de données devrait être faciles à construire.

Que fait DAS Relationnel avec ces méta-données

Le DAS Relationnel utilise les méta-données de base de données pour former la plupart des modèles SDO. Pour chaque table dans les méta-données de base de données, un type SDO est défini. Chaque colonne qui peut représenter une valeur primitive (les colonnes qui ne sont pas définies comme étant des clés étrangères) est ajoutée comme propriété au type SDO.

Toutes les propriétés primitives sont données par un type de chaîne de caractères dans le modèle SDO, sans se soucier de leur type SQL. Lors de la ré-écriture des données dans la base de données, le DAS Relationnel créera une requête SQL qui traitera les valeurs comme étant des chaînes de caractères et la base de données les convertira dans le type approprié.

Les clés étrangères sont interprétées de une des deux manières, dépendamment des méta-données contenues dans le troisième argument du constructeur qui définissent les relations de SDO contenues. Une discussion de cela est donc reportée dans la section relations SDO contenues ci-dessous.

Spécification du type de racine de l'application

Le second argument du constructeur est l'application du type de racine. La vraie racine de chaque graphique de données est un objet d'un type de racine spécial et tous les objets de données des applications viennent quelque part sous cela. De la plupart des types d'application dans le modèle SDO, une doit être le type d'application immédiatement sous la racine du graphique de données. S'il y a seulement une table dans les méta-données de base de données, le type de racine de l'application peut être impliqué et cet argument peut être omis.

Spécification des relations SDO contenues

Le troisième argument du constructeur définit comment les types dans le modèle seront liés ensemble pour former un graphique. Cela identifie les relations parent-enfant entre les types qui collectivement forment un graphique. Les relations doivent être supportées par les clés étrangères pour être trouvées dans les données, d'une manière rapide d'être décrit.

Les méta-données sont un tableau contenant un ou plusieurs tableaux associatifs, chacun d'eux identifie un parent et un enfant. L'exemple ci-dessous montre une relation parent-enfant de compagnie au département et un autre du département aux employés. Chacune d'elles deviendra un propriété définissant une relation de valeur multiples contenue dans un modèle SDO.

<?php
$department_containment = array( 'parent' => 'compagnie', 'child' => 'department');
$employee_containment = array( 'parent' => 'department', 'child' => 'employe');

$SDO_containment_metadata = array($department_containment, $employee_containment);
?>

Les clés étrangères dans les méta-données de base de données sont interprétées comme des propriétés avec soit des relations de valeurs multiples contenues ou des références de simples valeurs non contenues, dépendamment si elles ont une relation SDO contenue correspondante spécifiée dans les méta-données. Dans cet exemple ici, les clés étrangères du département à la compagnie (la colonne co_id dans la table de departement) et de l'employé au département (la colonne dept_id dans la table employe) sont interprétées comme supportant les relations SDO contenues. Chaque référence contenue mentionnée dans les méta-données de relations contenue de SDO doit avoir une clé correspondante présente dans la base de données et définie dans les méta-données de base de données. Les valeurs des colonnes de la clé étrangère pour les relations contenues n'apparaissent pas dans les objets de données; à la place, chacune d'entre elles est représentée par une relation contenue du parent à l'enfant. Alors la colonne co_id dans la ligne de département de la base de données, par exemple, n'apparaît pas en tant que propriété du type de département, mais apparaît à la place comme une relation contenue appelée departname sur le type de compagnie. Notez que la clé étrangère et la relation parent-enfant semble avoir un sens opposé : la clé étrangère pointe du département à la compagnie, mais la relation parent-enfant pointe de la compagnie au département.

La troisième clé dans cet exemple, le employe_du_mois , est gérée différemment. Elle n'est pas mentionnée dans les méta-données de relations SDO contenues. Ceci a pour conséquence d'être interprété de la seconde manière : elle devient une référence de valeur simple non contenue sur l'objet compagnie, sur lequel vous pouvez assigner des références au type d'employé d'objets de données SDO. Elle apparaît comme une propriété du type de compagnie. Le moyen pour lui assigner une valeur dans le graphique de données est d'avoir un graphique qui contient un objet employé avec les relations contenues et d'assigner l'objet à celui-ci. Ceci est montré dans les exemples plus loin.

Exemples avec une table

Les exemples suivants utilisent tous le DAS Relationnel pour travailler avec un graphique de données contenant juste un objet de données d'application, une seule compagnie et les données qui seront dans la table compagnie. Ces exemples ne montre pas le pouvoir de SDO ou de DAS Relationnel et bien sûr les mêmes résultats peuvent être atteints plus économiquement à l'aide de requêtes SQL directes mais ces exemples sont pour vous montrer comment fonctionne le DAS Relationnel.

Pour ce simple scénario, il serait possible de simplifier les méta-données de base de données pour inclure juste la table de compagnie - si cela était fait, le deuxième et troisième argument du constructeur et le spécificateur de colonne utilisé dans l'exemple de requête deviendrait optionnel.

Exemple 1. Création d'un objet de données

Le plus simple exemple est de créer un objet de données simple et de l'écrire à la base de données. Dans cet exemple, un objet simple de compagnie est créé, son nom est fixé à 'Acme' et le DAS Relationnel est appelé pour écrire les changements à la base de données. Le nom de la compagnie est fixé ici en utilisant la méthode de propriété de nom. Voyez la section d'exemples sur l'extension SDO pour d'autres moyens d'accéder au propriétés d'un objet.

Les objets de données peuvent seulement être créés lorsque vous avez un objet de données au démarrage. C'est pour cette raison que le premier appel à DAS Relationnel ici est pour obtenir l'objet racine. C'est en effet comment demander pour un graphique de données vide - l'objet de racine spécial est la vrai racine de l'arbre. L'objet de données compagnie est alors créé avec l'appel à createDataObject() sur l'objet racine. Ceci crée l'objet de données compagnie et l'insère dans le graphique en insérant une propriété de valeurs multiples contenue dans l'objet racine appelé 'compagnie'.

Lorsque DAS Relationnel est appelé pour effectuer les changements, une simple requête d'insertion 'INSERT INTO compagnie (nom} VALUES ("Acme");' sera construite et exécutée. La clé primaire générée automatiquement sera fixée dans l'objet de données et le changement sera effacé, alors il serait possible de continuer de travailler avec le même objet de données, le modifier, et applique les nouveaux changements une deuxième fois.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les méta-données
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

/**************************************************************
 * Obtient l'objet racine et crée un objet compagnie dessous.
 * Effectue un petit changement à l'objet de données.
 ***************************************************************/
$root = $das  -> createRootDataObject();
$acme = $root -> createDataObject('compagnie');

$acme->name = "Acme";

/**************************************************************
 * Récupère la connexion à la base de données et écrit l'objet à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das -> applyChanges($dbh, $root);
?>

Exemple 2. Récupération d'un objet de données

Dans cet exemple, un simple objet de données est récupéré de la base de données - ou possiblement plus d'un s'il y avait plus d'une compagnie qui était appelée 'Acme'. Pour chaque compagnie retournée, les propriétés nom et id sont affichées.

Dans cet exemple, le troisième argument de executeQuery(), le spécificateur de colonne est requis puisqu'il y a d'autres tables dans les méta-données avec le nom de colonne nom et id. S'il n'y avait pas d'ambiguïté possible, il aurait pu être omis.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les méta-données
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

/**************************************************************
 * Récupère la connexion à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Effectue une requête pour obtenir un objet compagnie - possiblement
 * plusieurs s'ils existent
 ***************************************************************/
$root = $das->executeQuery($dbh,
           'select nom, id from compagnie where nom="Acme"',
            array('compagnie.nom', 'compagnie.id') );

/**************************************************************
 * Affiche le nom et le id
 ***************************************************************/
foreach ($root['compagnie'] as $compagnie) {
    echo "La compagnie obtenue de la base de données a le nom = " .
    $compagnie['nom'] . " et un id " . $compagnie['id'] . "\n";
}
?>

Exemple 3. Mise à jour d'objet de données

Cet exemple combine les deux précédent, dans le sens que pour être mis à jour, l'objet doit être premièrement récupéré. L'application renverse le nom de compagnie (alors 'Acme' devient 'emcA') et alors les changements sont écrits à la base de données de la même manière qu'ils étaient lorsque l'objet avait été créé. Puisque la requête cherche pour le nom, on peut chercher des deux manières le nom à plusieurs reprises pour trouver la compagnie et renverser son nom chaque fois.

Dans cet exemple, la même instance de DAS Relationnel est réutilisée pour applyChanges(), avec le descripteur de base de données PDO. Ceci est tout à fait correcte; il est aussi possible d'autoriser les instances précédentes d'être ramassées par le ramasse-miettes et d'obtenir de nouvelles instances. Aucune données d'état concernant le graphique n'est tenue par le DAS Relationnel une fois qu'il a retourné un graphique de données à l'application. Toutes les données nécessaires sont soit dans le graphique ou peuvent être reconstruites à partir des méta-données.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les méta-données
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

/**************************************************************
 * Récupère la connexion à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Effectue une requête pour obtenir un objet compagnie - possiblement
 * plusieurs s'ils existent
 ***************************************************************/
$root = $das->executeQuery($dbh,
    'select nom, id from compagnie where nom="Acme" or nom="emcA"',
    array('compagnie.nom', 'compagnie.id') );

/**************************************************************
 * Modifie le nom de la première compagnie seulement
 ***************************************************************/
$compagnie = $root['compagnie'][0];
echo "Compagnie obtenue avec le nom " . $compagnie->nom . "\n";
$compagnie->nom = strrev($compagnie->nom);

/**************************************************************
 * Écriture du changement
 ***************************************************************/
$das->applyChanges($dbh,$root);
?>

Exemple 4. Suppression d'un objet de données

Toutes compagnies appelées 'Acme' ou son inverse 'emcA' sont récupérées. Elles sont ensuite toutes supprimées du graphique avec unset.

Dans l'exemple, elles sont toutes supprimées en un seul coup en supprimant la propriété contenue (la propriété définissant la relation contenue). Il est aussi possible de les supprimer individuellement.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construit le DAS avec les méta-données
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

/**************************************************************
 * Récupère la connexion à la base de données
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Effectue une requête pour obtenir un objet compagnie - possiblement
 * plusieurs s'ils existent
 ***************************************************************/
$root = $das->executeQuery($dbh,
    'select nom, id from compagnie where nom="Acme" or nom="emcA"',
    array('company.name', 'company.id') );

/**************************************************************
 * Supprime les compagnies trouvées du graphique de données
 ***************************************************************/
unset($root['compagnie']);

/**************************************************************
 * Écrit le(s) changement(s)
 ***************************************************************/
$das->applyChanges($dbh,$root);
?>

Exemples avec deux tables

Les exemples suivants utilisent tous deux tables de la base de données compagnie : les tables compagnie et departement. Ces exemples montrent plus le fonctionnement de DAS Relationnel.

Dans cette série d'exemples, une compagnie et un département son créé, récupéré, mis à jour et finalement supprimé. Ceci montre le cycle de vie pour un graphique de données contenant plus d'un objet. Notez que cet exemple vide les tables compagnie et departement au démarrage, ainsi les résultats exacts des requêtes peuvent être connus.

Vous pouvez trouvez ces exemples combinés dans un script appelé 1cd-CRUD dans le répertoire Scenarios du paquetage DAS Relationnel.

Exemple 5. Une compagnie, un département - Création

Comme dans l'exemple précédent où l'on créait juste un objet de données de compagnie, la première action après la construction du DAS Relationnel est d'appeler createRootDataObject() pour obtenir l'objet racine spécial du graphique de données vide. L'objet compagnie est alors créé en tant que fils de cet objet racine, et l'objet departement en tant que fils de l'objet compagnie.

Lorsqu'il est venu le temps d'appliquer les changements, le DAS Relationnel doit effectuer des traitements spéciaux pour maintenir la clé étrangère qui supporte les relations contenues, en particulier si une clé primaire générée automatiquement est en jeu. Dans cet exemple, les relations entre la clé primaire générée automatiquement id dans la table compagnie et la colonne co_id dans la table departement doivent être maintenues. Lors de l'insertion de la compagnie et du département pour la première fois, le DAS Relationnel doit premièrement insérer une ligne de compagnie, ensuite appeler la méthode de PDO getLastInsertId() pour obtenir la clé primaire générée automatiquement, et ensuite ajouter la valeur à la colonne co_id lors de l'insertion de la ligne departement.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
* Vidage des deux tables
*************************************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$pdo_stmt = $dbh->prepare('DELETE FROM COMPAGNIE;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM DEPARTEMENT;');
$rows_affected = $pdo_stmt->execute();

/**************************************************************
* Crée une compagnie avec le nom Acme et un département, département de Chaussure
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

$root = $das -> createRootDataObject();

$acme = $root -> createDataObject('compagnie');
$acme -> nom = "Acme";

$chaussure = $acme->createDataObject('departement');
$chaussure->nom = 'Chaussure';

$das -> applyChanges($dbh, $root);

?>

Exemple 6. Une compagnie, un département - Récupération et Mise à jour

Dans ce cas, la requête SQL passé à executeQuery() exécute un inner join pour joindre les données des tables compagnie et departement. Les clés primaires pour les tables compagnie et departement doivent être incluses dans la requête. Le jeu de résultats est normalisé de nouveau pour former un graphique de données normalisé. Notez que le spécificateur de colonne est passé en troisième argument de l'appel executeQuery() qui autorise DAS Relationnel de savoir quelle colonne est laquelle dans le jeu de résultats.

Notez que la colonne co_id bien qu'utilisée dans la requête n'est pas requis dans le jeu de résultats. Afin de comprendre que fait DAS Relationnel lorsqu'il construit le graphique de données, il peut être utile de visualiser à quoi ressemble les jeu de résultats. Bien que les données dans la base de données sont normalisée, alors plusieurs lignes de département peuvent pointer vers la clé étrangère d'une ligne de compagnie, les données dans le jeu de résultats sont non-normalisée : c'est, s'il y a une compagnie et de multiples département, les valeurs pour la compagnie qui sont répétées à chaque ligne. Le DAS Relationnel doit renverser ce processus et retourner le jeu de résultats dans un graphique normalisé, avec seulement un objet compagnie.

Dans cet exemple, le DAS Relationnel examine le jeu de résultats et le spécificateur de colonne, trouve les données pour les tables compagnie et departement, trouve les clés primaires pour les deux et interprète chaque ligne comme contenant des données d'un département et comme parent compagnie. S'il n'a pas vue de données de la compagnie auparavant (il utilise la clé primaire pour vérifier), il crée un objet compagnie et ensuite l'objet compagnie sous lui. S'il a vu des données pour la compagnie avant et a déjà créé l'objet compagnie, il crée simplement l'objet departement sous lui.

De cette manière, le DAS Relationnel peut récupérer et normaliser de nouveau les données pour de multiples compagnies et de multiples départements sous ceux-ci.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Récupération de la compagnie et du département de Chaussure, ensuite
 * supprime Chaussure et ajoute IT
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

$root = $das->executeQuery($dbh,
'select c.id, c.nom, d.id, d.nom from compagnie «c, departement d where d.co_id = c.id',
array('compagnie.id','compagnie.nom','departement.id','departement.nom'));

$acme      = $root['compagnie'][0];            // récupère la première compagnie - sera 'Acme'
$chaussure = $acme['departement'][0];          // récupère le premier département en dessous - sera 'Chaussure'

unset($acme['departement'][0]);

$it = $acme->createDataObject('departement');
$it->name = 'IT';

$das -> applyChanges($dbh, $root);
?>

Exemple 7. Une compagnie, deux départements - Récupération et Suppression

Dans cet exemple, la compagnie et le département sont récupérés et ensuite supprimés. Il n'est pas nécessaire de les supprimer individuellement (bien que cela est possible) - la suppression de l'objet compagnie du graphique de données supprime aussi tous les départements sous lui.

Notez le moyen de l'objet compagnie est actuellement supprimé en utilisant l'appel unset de PHP. La suppression doit être effectuée sur la propriété qui est dans ce cas la propriété de compagnie sur l'objet racine spécial. Vous devez utiliser :

<?php
unset($root['compagnie'][0]);
?>
et non pas :
<?php
unset($acme); // FAUX
?>
La suppression de $acme détruira simplement la variable mais laissera les données dans le graphique intacte.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Récupération de la compagnie et du département IT, ensuite supprime la
 * compagnie entière
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);

$root = $das->executeQuery($dbh,
'select c.id, c.nom, d.id, d.nom from compagnie c, departement d where d.co_id = c.id',
array('compagnie.id','compagnie.nom','departement.id','departement.nom'));

$acme = $root['compagnie'][0];
$it = $acme['departement'][0];

unset($root['compagnie'][0]);

$das -> applyChanges($dbh, $root);

?>

Exemple avec trois tables

Les exemples suivant utilisent tous trois tables de la base de données compagnie : les tables compagnie, departement et employe. Elles introduisent le dernier morceau du fonctionnement non expliqué dans les exemples ci haut : la référence non contenue employe_du_mois.

Comme les exemples ci haut pour la compagnie et le département, la série d'exemples illustre le cycle de vie complet d'un graphique de données.

Exemple 8. Une compagnie, un département, un employé - Création

Dans cet exemple, une compagnie est créée contenant un département et seulement un employé. Notez que dans cet exemple, les trois tables sont vidées à leur démarrage ainsi les résultats exacts des requêtes peuvent être connus.

Notez comment une fois que la compagnie, le département et l'employé est créé que la propriété employe_du_mois de la compagnie peut être faite pour pointer au nouvel employé. Puisque c'est une référence qui n'est pas contenue, ceci ne peut être effectué tant que l'objet employé ait été créé dans le graphique. Les références non contenues doivent être gérées prudemment. Par exemple, si un employé est maintenant supprimé de son département, il ne serait pas correcte d'essayer de sauver le graphique sans premièrement effacer ou réassigner la propriété employe_du_mois . Cette règle des graphiques de données SDO requière que tous les objets pointé par une référence qui n'est pas contenue doit être aussi accessible par des relations contenues.

Lorsque vient le moment d'insérer le graphique dans la base de données, la procédure est similaire à l'exemple d'insertion d'une compagnie et d'un département, cependant, la propriété employe_du_mois introduit une plus grande complexité. Le DAS Relationnel doit insérer les objets en descendant l'arbre formée des relations contenues, donc la compagnie, ensuite le département et ensuite l'employée. Ceci est nécessaire puisqu'il y a toujours une clé primaire générée automatiquement du parent pour l'inclure dans une ligne du fils. Mais lorsque la compagnie est insérée, l'employée qui est l'employé du mois n'est pas encore inséré et la clé primaire est inconnue. La procédure est qu'après l'insertion de l'employé et que sa clé primaire soit connue, une dernière étape est effectuée qui permet de modifier la compagnie avec la clé primaire de l'employé.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
* Vidage des deux tables
*************************************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$pdo_stmt = $dbh->prepare('DELETE FROM COMPAGNIE;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM DEPARTEMENT;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM EMPLOYE;');
$rows_affected = $pdo_stmt->execute();

/*************************************************************************************
* Crée une compagnie minuscule mais complète.
* Le nom de la compagnie est Acme.
* Il y a un département, Chaussure.
* Il y a une employé, Bob.
* L'employé du mois est Bob.
*************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root                      = $das  -> createRootDataObject();
$acme                      = $root -> createDataObject('compagnie');
$acme -> nom         = "Acme";
$chaussure                 = $acme -> createDataObject('departement');
$chaussure -> nom    = 'Chaussure';
$chaussure -> emplacement = 'Bloc-A';
$bob                       = $chaussure -> createDataObject('employe');
$bob -> nom          = 'Bob';
$acme -> employe_du_mois = $bob;

$das -> applyChanges($dbh, $root);

echo "Écriture de Acme avec un département et un employé\n";
?>

Exemple 9. Une compagnie, un département, un employé - Récupération et Mise à Jour

La requête SQL passée à DAS Relationnel est cette fois un inner join qui récupère les données des trois tables. Autrement, cet exemple n'introduit rien de nouveau de l'exemple précédent

Le graphique est mis à jour avec l'addition d'un nouveau département et d'un nouvel employé et quelques modifications au propriétés de nom des objets existant dans le graphique. Les changements combinés sont écrits. Le DAS Relationnel traitera et appliquera un mélange arbitraire des additions, des modifications et des suppressions provenant et allant vers le graphique.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
 * Trouve la compagnie encore et change certains aspects.
 * Change le nom de la compagnie, le département et l'employé.
 * Ajoute un second département et un nouvel employé.
 * Change l'employé du mois
 *************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root = $das->executeQuery($dbh,
    "select c.id, c.nom, c.employe_du_mois, d.id, d.nom, e.id, e.nom " .
    "from compagnie c, departement d, employe e " .
    "where e.dept_id = d.id and d.co_id = c.id and c.nom='Acme'",
     array('compagnie.id','compagnie.nom','compagnie.employe_du_mois',
     'departement.id','departement.nom','employe.id','employe.nom'));
$acme     = $root['compagnie'][0];

$chaussure    = $acme->departement[0];
$bob          = $chaussure -> employe[0];

$it     = $acme->createDataObject('departement');
$it->nom = 'IT';
$it->location = 'Bloc-G';
$billy     = $it->createDataObject('employe');
$billy->nom = 'Billy';

$acme->nom = 'MegaCorp';
$chaussure->nom = 'Footwear';
$sue->nom = 'Suzan';

$acme->employe_du_mois = $billy;
$das -> applyChanges($dbh, $root);
echo "Écriture de la compagnie avec un département en plus et un employé et
tous les noms ont changés Megacorp/Footwear/Suzan)\n";

?>

Exemple 10. Une compagnie, deux départements, deux employés - Récupération et Suppression

La compagnie est récupéré en tant qu'un graphique de données complet contenant cinq objets de données - la compagnie, deux départements et deux employés. Ils sont tous supprimés en supprimant l'objet compagnie. La suppression d'un objet du graphique supprime tous les objets sous celui-ci dans le graphique. Cinq requêtes DELETE SQL sera générées et exécutée. Comme d'habitude, elles seront qualifiées avec une clause WHERE qui contient tous les champs qui ont été récupérés, alors toutes les mises à jour des données dans la base de données pendant ce temps par un autre processus seront détectées.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
 * Maintenant lit une ou plusieurs fois et supprime.
 * Vous pouvez supprimer par partie, appliquer les changements, et ensuite
 * continuer à travailler avec le même graphique de données mais la précaution
 * est requise pour garder véracité - vous ne pouvez pas supprimer l'employé
 * qui est l'employé du mois sans le réassigner. Pour plus de précaution ici,
 * nous supprimons la compagnie en entier d'un seul coup.
 *************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'compagnie',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root = $das->executeQuery($dbh,
    "select c.id, c.nom, c.employe_du_mois, d.id, d.nom, e.id, e.nom " .
    "from compagnie c, departement d, employe e " .
    "where e.dept_id = d.id and d.co_id = c.id and c.nom='MegaCorp';",
     array('compagnie.id','compagnie.nom','compagnie.employe_du_mois',
     'departement.id','departement.nom','employe.id','employe.nom'));
$megacorp = $root['compagnie'][0];

unset($root['compagnie']);
$das -> applyChanges($dbh, $root);

echo "Suppression de la compagnie, des départements et des employés d'un seul coup.\n";

?>

Suivi

Vous pouvez être intéressé de voir les requêtes SQL qui sont générées afin d'appliquer les changements à la base de données. Dans le haut du fichier SDO/DAS/Relational.php, vous trouvez un certain nombre de constantes qui contrôle si le processus de construction et d'exécution des requêtes SQL doivent être suivies. Essayez la configuration DEBUG_EXECUTE_PLAN à TRUE pour voir les requêtes SQL générées.

Classes pré-définies

Le DAS Relationnel fournit deux classes : le DAS Relationnel lui-même et aussi la sous-classe Exception qui peut être jetée. Le DAS Relationnel a quatre appels publics utiles : le constructeur, la méthode createRootDataObject() pour obtenir l'objet racine d'un graphique de données vide, la méthode executeQuery() pour obtenir le graphique de données contenant les données d'une base de données relationnelle et la méthode applyChanges() pour écrire les changements effectués au graphique de données vers la base de données relationnelle.

SDO_DAS_Relational

Le seul autre objet que SDO_DAS_Relational_Exception que l'application pourrait interagir.

Méthodes

  • __construct - construit le DAS Relationnel avec le modèle dérivé des méta-données passées

  • createRootDataObject - obtient le graphique de données vide contenant seulement l'objet racine spécial

  • executeQuery - exécute une requête SQL passée en tant que chaîne de caractères littérale et retourne les résultats dans un graphique de données normalisé

  • executePreparedQuery - exécute une requête SQL passée en tant que requête préparée, avec une liste de valeur à substituer pour les paramètres fictifs et retourne le résultats d'un graphique de données normalisé

  • applyChanges - examine les changements dans le graphique de données et applique ces changements à la base de données, sujet d'une acceptation de simultanéité optimiste

SDO_DAS_Relational_Exception

Est une sous-classe de la classe PHP Exception. Elle n'ajoute aucun comportement à Exception. Jetée, avec une explication utile, pour signaler les erreurs dans les méta-données ou des échecs non prévus pour exécuter des opérations SQL.

Table des matières
SDO_DAS_Relational::applyChanges -- Applique les changements effectués au graphique de données à la base de données.
SDO_DAS_Relational::__construct -- Construit une instance de DAS Relationnel
SDO_DAS_Relational::createRootDataObject -- Retourne un objet racine spécial d'un graphique de données vide. Utilisé lors de la création d'un graphique de données à partir de zéro.
SDO_DAS_Relational::executePreparedQuery -- Exécute une requête SQL passée comme requête préparée, avec une liste de valeurs à substituer pour les paramètres fictifs, et retourne les résultats comme un graphique de données normalisé.
SDO_DAS_Relational::executeQuery -- Exécute une requête SQL donnée à une base de données relationnelle et retourne les résultats comme graphique de données normalisé.

Précédent | Sommaire | Suivant
SDO_DAS_XML::saveString | Niveau supérieur | SDO_DAS_Relational::applyChanges


Sauvegarde d'Identifiant de session PostgreSQL

Manuel PHP
Précédent Suivant

CXLVIII. Sauvegarde d'Identifiant de session PostgreSQL

Introduction

Note : Cette extension n'est pas disponible sur les plates-formes Windows.

Ce module vous fournit un moyen additionnel pour sauvegarder vos identifiants de session pour les modules de session utilisant PostgreSQL session en tant que sauvegarde du système. La sauvegarde d'identifiant de session user-level peut être aussi utilisée, mais ce module est écrit en C. Par conséquent, ce module est largement 2 fois plus rapide que la sauvegarde d'identifiant écrit en PHP.

Session PgSQL est conçu pour fonctionner avec n'importe quel sorte de sites web et offre certaines fonctionnalités avancées :

tables de session sont créées automatiquement
vidage de table de session automatique
meilleure récupération de place
support de multiples serveurs PostgreSQL
basculement de serveur de base de données automatique (changement)
chargement balancé de serveur de base de données automatique s'il y a multiples serveurs PostgreSQL.
court-circuit de UPDATE

Pré-requis

Vous devez posséder au moins PHP >= 4.3.0, PostgreSQL >= 7.2.0 comme serveur de base de données. libpq qui vient avec PostgreSQL 7.2.0 ou supérieur (et les fichiers d'en-tête pour construction) et libmm (et les fichiers d'en-tête).

Installation

Courte note d'installation :

  • Décompressez l'archive tar.gz dans php4/ext (Les dernières mises à jour officielles peuvent être trouvées sur SourceForge PHP Form Extension Project)

  • Si le nouveau répertoire est maintenant appelé quelque chose comme session_pgsql. Vous devriez l'appeler session_pgsql (sauf si vous voulez voulez le bâtir en tant que module php seul).

  • Exécutez ./buildconf dans php4

  • Exécutez configure --with-session-pgsql (et vos autres options)

  • make; make install

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

La sauvegarde d'identifiant de session de PostgreSQL est toujours en développement. Réferrez-vous au fichier README dans la distribution de source pour les détails de la configuration.

Définitions de Table

Définition de table de session

CREATE TABLE php_session (
  sess_id            text,
  sess_name          text,
  sess_data          text,
  sess_created       integer,
  sess_modified      integer,
  sess_expire        integer,
  sess_addr_created  text,
  sess_addr_modified text,
  sess_counter       integer,
  sess_error         integer,
  sess_warning       integer,
  sess_notice        integer,
  sess_err_message   text,
  sess_custom        text
);

CREATE INDEX php_session_idx ON php_session USING BTREE (sess_id);

Avertissement

Si vous utilisez HASH pour INDEX, vous aurez des problèmes d'interblocage lorsque le chargement du serveur est très élevé. Même s'il est peu probable d'avoir un interblocage sous des opérations normales, cela peut se produire. N'utilisez pas HASH pour INDEX.

Vous pouvez changer la table de session tant que tous les champs sont définis.

Définition de table de variables d'application

CREATE TABLE php_app_vars (
  app_modified       integer,
  app_name           text,
  app_vars           text
);

Information Contact

Pour le moment, je n'ai pas vraiment le temps pour développer plus loin cette extension. Je créerai de plus en plus d'options dans un futur proche.

Si vous avez des commentaires, des bogues, des améliorations ou vous voulez aider le développement, vous pouvez me laisser un mail à yohgaki@php.net. Toute aide est la bienvenue.

Table des matières
session_pgsql_add_error -- Incrémente le nombre d'erreurs et fixe le dernier message d'erreur
session_pgsql_get_error -- Retourne le nombre d'erreurs et le dernier message d'erreur
session_pgsql_get_field -- Récupère la valeur de champ spécial
session_pgsql_reset -- Remet la connexion à la session des serveurs de base de données
session_pgsql_set_field -- Fixe la valeur d'un champ spécial
session_pgsql_status -- Récupère le statut de l'identifiant de sauvegarde courant

Précédent | Sommaire | Suivant
sesam_settransaction | Niveau supérieur | session_pgsql_add_error


Fonctions statistics

Manuel PHP
Précédent Suivant

CLIX. Fonctions statistics

Introduction

Ceci est l'extension statistics. Elle contient quelques douzaines de fonctions utiles pour des calculs statistiques. Il s'agit d'une enveloppe autour de 2 bibliothèques scientifique, nommée DCDFLIB (Bibliothèque de routines en C pour les Fonctions de Distributions Cumulative, Inverses et Autres paramètres) par B. Brown & J. Lavato et RANDLIB par Barry Brown, James Lavato & Kathy Russel. Inclut les fonctions CD et PD.

Installation

Cette extension PECL n'est pas intégrée à PHP.

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/stats.

La bibliothèque DLL pour cette extension PECL peut être téléchargé depuis soit la page de téléchargement PHP, soit depuis http://pecl4win.php.net/

Pré-requis

Aucune bibliothèque externe n'est nécessaire. L'extension vient intégrée avec les bibliothèques utilisées.

Table des matières
stats_absolute_deviation -- Retourne l'écart absolu d'un tableau de valeurs
stats_cdf_beta -- Fonction CDF pour Distribution BETA. Calcule n'importe quel paramètre de distribution beta des valeurs données pour les autres.
stats_cdf_binomial -- Calcule n'importe quel paramètre de distribution binomiale des valeurs données pour les autres.
stats_cdf_cauchy -- Non documenté
stats_cdf_chisquare -- Calcule n'importe quel paramètre de distribution Khi-carré des valeurs données pour les autres.
stats_cdf_exponential -- Non documenté
stats_cdf_f -- Calcule n'importe quel paramètre de distribution F des valeurs données pour les autres.
stats_cdf_gamma -- Calcule n'importe quel paramètre de distribution gamma des valeurs données pour les autres.
stats_cdf_laplace -- Non documenté
stats_cdf_logistic -- Non documenté
stats_cdf_negative_binomial -- Calcule n'importe quel paramètre de distribution binomiale négative des valeurs données pour les autres.
stats_cdf_noncentral_chisquare -- Calcule n'importe quel paramètre de distribution non centrale Khi-carré des valeurs données pour les autres.
stats_cdf_noncentral_f -- Calcule n'importe quel paramètre de distribution non centrale F des valeurs données pour les autres.
stats_cdf_poisson -- Calcule n'importe quel paramètre de distribution de Poission des valeurs données pour les autres.
stats_cdf_t -- Calcule n'importe quel paramètre de distribution T des valeurs données pour les autres.
stats_cdf_uniform -- Non documenté
stats_cdf_weibull -- Non documenté
stats_covariance -- Calcule la covariance de deux séries de données
stats_den_uniform -- Non documenté
stats_dens_beta -- Non documenté
stats_dens_cauchy -- Non documenté
stats_dens_chisquare -- Non documenté
stats_dens_exponential -- Non documenté
stats_dens_f --
stats_dens_gamma -- Non documenté
stats_dens_laplace -- Non documenté
stats_dens_logistic -- Non documenté
stats_dens_negative_binomial -- Non documenté
stats_dens_normal -- Non documenté
stats_dens_pmf_binomial -- Non documenté
stats_dens_pmf_hypergeometric --
stats_dens_pmf_poisson -- Non documenté
stats_dens_t -- Non documenté
stats_dens_weibull -- Non documenté
stats_harmonic_mean -- Retourne la moyenne harmonique d'un tableau de valeurs
stats_kurtosis -- Calcule le coefficient d'aplatissement des données dans un tableau
stats_rand_gen_beta -- Génère l'écart beta aléatoire
stats_rand_gen_chisquare -- Génère l'écart aléatoire de la distribution Khi-carré avec "df" de degré de liberté de variables aléatoire.
stats_rand_gen_exponential -- Génère un écart aléatoire simple à partir d'une distribution exponentielle avec moyenne "av"
stats_rand_gen_f -- Génère un écart aléatoire à partir de la distribution F (ratio de variance) avec "dfn" degrés de liberté dans le numérateur et "dfd" degré de liberté dans le dénominateur. Méthode : génère directement le radio des variétés de Khi-carré
stats_rand_gen_funiform -- Génère une valeur décimale uniforme entre les basse (exclusif) et autre (exclusif)
stats_rand_gen_gamma -- Génère un écart aléatoire d'une distribution gamma
stats_rand_gen_ibinomial_negative -- Génère un écart aléatoire simple de la distribution négative binomiale. Arguments : n - le nombre d'essai dans la distribution négative binomiale dans lequel l'écart aléatoire sera généré (n > 0), p - la probabilité d'un évènement (0 < p < 1)).
stats_rand_gen_ibinomial -- Génère un écart aléatoire simple d'une distribution binomiale à qui le nombre d'essaie est "n" (n >= 0) et à qui la probabilité d'un évènement de chaque essai est "pp" ([0;1]). Méthode : algorithme BTPE
stats_rand_gen_int -- Génère un entier aléatoire entre 1 et 2147483562
stats_rand_gen_ipoisson -- Génère un écart aléatoire simple à partir de la distribution de Poisson avec la moyenne "mu" (mu >= 0.0).
stats_rand_gen_iuniform -- Génère un entier uniformément distribué entre LOW (inclusif) et HIGH (inclusif)
stats_rand_gen_noncenral_chisquare -- Génère un écart aléatoire à partir de la distribution non centrale de Khi-carré de "df" degrés de liberté et de paramètre non central "nonc". d doit être >= 1.0, xnonc doit être *gt;= 0.0
stats_rand_gen_noncentral_f -- Génère l'écart aléatoire à partir de la distribution non centrale de F (ratio variance) avec "dfn" degré de liberté dans le numérateur et "dfd" degré de liberté dans le dénominateur et le paramètre non central "xnonc". Méthode : génère directement le ratio d'une variation Khi-carré non cenrale de nmérateur à la variation Khi-carré centrale de dénominateur.
stats_rand_gen_noncentral_t -- Génère l'écart aléatoire simple à partir d'une distribution T non centrale
stats_rand_gen_normal -- Génère un écart aléatoire simple à partir d'une distribution normale avec la moyenne, av, et écart type sd (sd >= 0). Méthode : Renomme SNORM de TOMS légèrement modifié par BWB pour utiliser RANF au lieu de SUNIF.
stats_rand_gen_t -- Génère un écart aléatoire simple à partir de la distribution T
stats_rand_get_seeds -- Non documenté
stats_rand_phrase_to_seeds -- Génère deux graines pour le générateur de nombre aléatoire RGN
stats_rand_ranf -- Retourne un nombre à valeur décimale aléatoire à partir d'une distribution uniforme de 0 - 1 (les points finaux de cet interval ne sont pas retourné) en utilisant le générateur courant
stats_rand_setall -- Non documenté
stats_skew -- Calcul l'asymétrie des données dans un tableau
stats_standard_deviation -- Retourne l'écart type
stats_stat_binomial_coef -- Non documenté
stats_stat_correlation -- Non documenté
stats_stat_gennch -- Non documenté
stats_stat_independent_t -- Non documenté
stats_stat_innerproduct --
stats_stat_noncentral_t -- Calcule n'importe quel paramètre de distribution non centrale t des valeurs données pour les autres valeurs.
stats_stat_paired_t -- Non documenté
stats_stat_percentile -- Non documenté
stats_stat_powersum -- Non documenté
stats_variance -- Retourne la variance d'une population

Précédent | Sommaire | Suivant
ssh2_tunnel | Niveau supérieur | stats_absolute_deviation


Swish Functions

Manuel PHP
Précédent Suivant

CLXIII. Swish Functions

Introduction

The swish extension provides the bindings for Swish-e API. Swish-e stands for "Simple Web Indexing System for Humans - Enhanced" and is an open source system for indexing and search. Swish-e itself is licensed under GPL license, but uses a clause that allows applications to link against the library if every copy of the combined work is accompanied by the URL to Swish-e source code. Here it is: http://swish-e.org.

Avertissement

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Pré-requis

PECL/swish requires PHP 5.1.3 or newer.

Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : http://pecl.php.net/package/swish.

The latest PECL/swish Win32 DLL can be downloaded here: php_swish.dll.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Exemples

Exemple 1. Basic search query

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("test OR text");

    echo "Found ", $results->hits, " results\n";
    while ($result = $results->nextResult()) {
        var_dump($result);
        break; //break after the first result
    }

} catch (SwishException $e) {
    echo "Error: ", $e->getMessage(), "\n";
}

?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

Found 9 results
object(SwishResult)#3 (8) {
  ["swishreccount"]=>
  int(1)
  ["swishrank"]=>
  int(1000)
  ["swishfilenum"]=>
  int(10)
  ["swishdbfile"]=>
  string(13) "index.swish-e"
  ["swishdocpath"]=>
  string(23) "README.SUBMITTING_PATCH"
  ["swishtitle"]=>
  NULL
  ["swishdocsize"]=>
  int(4557)
  ["swishlastmodified"]=>
  int(1072136752)
}

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Swish::META_TYPE_UNDEF (integer)

Swish::META_TYPE_STRING (integer)

Swish::META_TYPE_ULONG (integer)

Swish::META_TYPE_DATE (integer)

Swish::IN_FILE_BIT (integer)

Swish::IN_TITLE_BIT (integer)

Swish::IN_HEAD_BIT (integer)

Swish::IN_BODY_BIT (integer)

Swish::IN_COMMENTS_BIT (integer)

Swish::IN_HEADER_BIT (integer)

Swish::IN_EMPHASIZED_BIT (integer)

Swish::IN_META_BIT (integer)

Swish::IN_FILE (integer)

Swish::IN_TITLE (integer)

Swish::IN_HEAD (integer)

Swish::IN_BODY (integer)

Swish::IN_COMMENTS (integer)

Swish::IN_HEADER (integer)

Swish::IN_EMPHASIZED (integer)

Swish::IN_META (integer)

Swish::IN_ALL (integer)

Classes pré-définies

Classes pré-définies

Swish

Propriétés

  • indexes - the array of indexes used and their properties. Certain list of properties depends on Swish-e version.

Méthodes

  • Swish::__construct - constructs new Swish object. Throws SwishException on error.

  • Swish->prepare - prepares and returns SwishSearch object. Throws SwishException on error.

  • Swish->query - executes the query and returns SwishResults object. Throws SwishException on error.

  • Swish->getMetaList - returns an array of meta entries for the given index file.

  • Swish->getPropertyList - returns an array of properties for the given index file.

SwishSearch

Méthodes

  • SwishSearch->setStructure - sets the structure flag in the search object. This flag is used to limit search to certain parts of HTML documents.

  • SwishSearch->setPhraseDelimiter - sets the phrase delimiter character. The default delimiter is double-quotes.

  • SwishSearch->setSort - sets the sort order of the results.

  • SwishSearch->setLimit - sets the limits for the search. Throws SwishException on error.

  • SwishSearch->resetLimit - resets the limits.

  • SwishSearch->execute - executes the query and returns SwishResults object. Throws SwishException on error.

SwishResults

Propriétés

  • hits - the number of results in this SwishResults object.

  • indexes - the array of indexes used in the search.

Méthodes

  • SwishResults->nextResult - returns next SwishResult object or FALSE if no more results are available.

  • SwishResults->seekResult - sets the current seek position in the SwishResults object. Throws SwishException on error.

  • SwishResults->getParsedWords - returns an array of words in the query with stopwords removed.

  • SwishResults->getRemovedStopwords - returns an array of removed stopwords.

SwishResult

Propriétés

  • Properties list depends on Swish-e version, see examples.

Méthodes

  • SwishResult->getMetaList - returns an array of meta entries for the index used in this result.

  • SwishResult->stem - stems the word and returns result as an array of strings. Throws SwishException on error.

SwishException

SwishException extends the built in Exception class and possesses the same set of properties and methods. See la section intitulée Exceptions étendues dans Chapitre 20 for more details.

Table des matières
Swish::__construct -- Construct a Swish object
Swish->getMetaList -- Get the list of meta entries for the index
Swish->getPropertyList -- Get the list of properties for the index
Swish->prepare -- Prepare a search query
Swish->query -- Execute a query and return results object
SwishResult->getMetaList -- Get a list of meta entries
SwishResult->stem -- Stems the given word
SwishResults->getParsedWords -- Get an array of parsed words
SwishResults->getRemovedStopwords -- Get an array of stopwords removed from the query
SwishResults->nextResult -- Get the next search result
SwishResults->seekResult -- Set current seek pointer to the given position
SwishSearch->execute -- Execute the search and get the results
SwishSearch->resetLimit -- Reset the search limits
SwishSearch->setLimit -- Set the search limits
SwishSearch->setPhraseDelimiter -- Set the phrase delimiter
SwishSearch->setSort -- Set the sort order
SwishSearch->setStructure -- Set the structure flag in the search object

Précédent | Sommaire | Suivant
swf_viewport | Niveau supérieur | Swish::__construct


Unicode Functions

Manuel PHP
Précédent Suivant

CLXVIII. Unicode Functions

Introduction

Support Unicode.

Avertissement

Cette extension est toujours en développement et n'est toujours pas disponible pour le public.

Pré-requis

ICU 3.4 ou supérieur est requis.

Installation

Premièrement, vous devez télécharger et installer ICU :

Exemple 1. Installer ICU sur Unix

./configure --disable-threads --enable-extras --enable-icuio --enable-layout
make && make install

Ensuite, extractez la dernière version de PHP et configurez la avec l'option --with-icu-dir=<dir>, où <dir> était le répertoire où vous avez installé ICU. Vous n'avez pas besoin de spécifiez explicitement cette option si vous installez ICU à un endroit standard.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration Unicode

Nom | Par défaut | Modifiable | Historique
unicode.fallback_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
unicode.from_error_mode | "2" | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
unicode.from_error_subst_char | "3f" | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
unicode.http_input_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
unicode.output_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
unicode.runtime_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
unicode.script_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 6.0.0.
unicode.semantics | off | PHP_INI_PERDIR | Disponible depuis PHP 6.0.0.
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe H.

Voici un éclaircissement sur l'utilisation des directives de configuration.

unicode.output_encoding string

Encodage par défaut pour l'affichage.

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.

Tableau 2.

constante | valeur | description
U_INVALID_STOP | 0 | arrête au premier caractère invalide
U_INVALID_SKIP | 1 | ignore les caractères invalides
U_INVALID_SUBSTITUTE | 2 | remplace les caractères invalides
U_INVALID_ESCAPE | 3 | échappe les caractères invalides

Table des matières
unicode_encode -- Prend une chaîne de caractères unicode et la convertit en une chaîne de caractères dans l'encodage spécifié
unicode_semantics -- Vérifie si la sémantique unicode est active

Précédent | Sommaire | Suivant
token_name | Niveau supérieur | unicode_encode


Fonctions win32ps

Manuel PHP
Précédent Suivant

CLXXV. Fonctions win32ps

Introduction

L'extension win32ps est une extension spécifique pour Windows qui permet à PHP d'obtenir des statistiques à propos des processus et de l'utilisation de la mémoire.

Pré-requis

Windows NT, Windows 2000, Windows XP ou Windows Server 2003. N'importe quelle version dévirée de Windows NT devrait être compatible.

Installation

Installation à partir de PECL

  1. Vous pouvez télécharger php_win32ps.dll à partir de pecl4win.php.net.

  2. Copiez le fichier php_win32ps.dll dans votre répertoire extension_dir.

  3. Chargez l'extension à partir de votre php.ini

    extension=php_win32ps.dll

Exemples

Exemple 1. Statistiques à propos du processus courant de PHP

<?php
print_r(win32_ps_stat_proc());
/*
    Array
    (
        [pid] => 936
        [exe] => D:\Daten\Source\php-5.1\Debug_TS\php.exe
        [mem] => Array
            (
                [page_fault_count] => 2062
                [peak_working_set_size] => 8396800
                [working_set_size] => 8396800
                [quota_peak_paged_pool_usage] => 32080
                [quota_paged_pool_usage] => 31876
                [quota_peak_non_paged_pool_usage] => 4240
                [quota_non_paged_pool_usage] => 3888
                [pagefile_usage] => 5865472
                [peak_pagefile_usage] => 5865472
            )

        [tms] => Array
            (
                [created] => 0.093
                [kernel] => 0.015
                [user] => 0.062
            )

    )
*/
?>

Exemple 2. Statistiques à propos de l'utilisation globale de la mémoire

<?php
print_r(win32_ps_stat_mem());
/*
    Array
    (
        [load] => 37
        [unit] => 1024
        [total_phys] => 1048096
        [avail_phys] => 649960
        [total_pagefile] => 2521368
        [avail_pagefile] => 2237940
        [total_virtual] => 2097024
        [avail_virtual] => 2057848
    )
*/
?>

Table des matières
win32_ps_list_procs -- Liste des processus qui fonctionnent
win32_ps_stat_mem -- Statistiques de l'utilisation de la mémoire
win32_ps_stat_proc -- Statistique de processus

Précédent | Sommaire | Suivant
wddx_unserialize | Niveau supérieur | win32_ps_list_procs


Fonctions win32service

Manuel PHP
Précédent Suivant

CLXXVI. Fonctions win32service

Introduction

L'extension win32service est une extension spécifique à Windows qui autorise PHP à communiquer avec la Gestion de Contrôle de Service pour démarrer, arrêter, enregistrer ou effacer des services, et autorise aussi vos scripts PHP à s'exécuter en tant que service.

Pré-requis

Windows NT, Windows 2000, Windows XP ou Windows Server 2003. N'importe quelle version de windows dérivé de Windows NT devrait être compatible

Installation

Installation à partir de PECL

  1. Vous pouvez télécharger php_win32service.dll à partir de http://snaps.php.net/win32/. Choisissez le dossier PECL_X_X qui concorde avec votre version de PHP.

  2. Copiez le fichier php_win32service.dll dans votre extension_dir.

  3. Charge l'extension à partir de votre php.ini

    extension=php_win32service.dll

Exemples

Exemple 1. Enregistre un script PHP pour exécuter en tant que service

<?php
win32_create_service(array(
    'service' => 'dummyphp',                 # le nom de votre service
    'display' => 'sample dummy PHP service', # description
    'params' => 'c:\path\to\script.php run', # chemin au 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
  }
}
?>

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.

WIN32_SERVICE_CONTROL_CONTINUE (entier)

WIN32_SERVICE_CONTROL_INTERROGATE (entier)

WIN32_SERVICE_CONTROL_PAUSE (entier)

WIN32_SERVICE_CONTROL_STOP (entier)

WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE (entier)

WIN32_SERVICE_CONTROL_POWEREVENT (entier)

WIN32_SERVICE_CONTROL_SESSIONCHANGE (entier)

WIN32_ERROR_CALL_NOT_IMPLEMENTED (entier)

WIN32_NO_ERROR (entier)

WIN32_SERVICE_RUNNING (entier)

WIN32_SERVICE_STOPPED (entier)

WIN32_SERVICE_STOP_PENDING (entier)

WIN32_SERVICE_WIN32_OWN_PROCESS (entier)

WIN32_SERVICE_INTERACTIVE_PROCESS (entier)

WIN32_SERVICE_STOPPED (entier)

WIN32_SERVICE_START_PENDING (entier)

WIN32_SERVICE_STOP_PENDING (entier)

WIN32_SERVICE_RUNNING (entier)

WIN32_SERVICE_CONTINUE_PENDING (entier)

WIN32_SERVICE_PAUSE_PENDING (entier)

WIN32_SERVICE_PAUSED (entier)

WIN32_SERVICE_ACCEPT_NETBINDCHANGE (entier)

WIN32_SERVICE_ACCEPT_PARAMCHANGE (entier)

WIN32_SERVICE_ACCEPT_PAUSE_CONTINUE (entier)

WIN32_SERVICE_ACCEPT_SHUTDOWN (entier)

WIN32_SERVICE_ACCEPT_STOP (entier)

WIN32_SERVICE_ACCEPT_HARDWAREPROFILECHANGE (entier)

WIN32_SERVICE_ACCEPT_POWEREVENT (entier)

WIN32_SERVICE_ACCEPT_SESSIONCHANGE (entier)

WIN32_SERVICE_FILE_SYSTEM_DRIVER (entier)

WIN32_SERVICE_KERNEL_DRIVER (entier)

WIN32;E_WIN32_SHARE_PROCESS (entier)

WIN32;E_RUNS_IN_SYSTEM_PROCESS (entier)

Table des matières
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_query_service_status -- Questionne le statut d'un service
win32_set_service_status -- Met à jour le statut d'un service
win32_start_service_ctrl_dispatcher -- Enregistre un script avec SCM, alors il peut être interprété en tant que service avec le nom donné
win32_start_service -- Démarre un service
win32_stop_service -- Arrête un service

Précédent | Sommaire | Suivant
win32_ps_stat_proc | Niveau supérieur | win32_create_service


XMLReader functions

Manuel PHP
Précédent Suivant

CLXXXI. XMLReader functions

Introduction

L'extension XMLReader un analyseur XML Pull. Le lecteur fonctionne comme un curseur qui avance sur le flux du document et s'arrête à chaque noeud sur le chemin.

Installation

L'extension XMLReader est disponible dans PECL pour PHP 5.0.0 et est inclus et activée par défaut dans PHP 5.1.0. Elle peut être activée en ajoutant l'argument --enable-xmlreader (ou --with-xmlreader avant 5.1.0) à votre ligne de configuration. L'extension libxml est requise.

Classes pré-définies

XMLReader

Méthodes

  • XMLReader::close - Ferme l'entrée XMLReader

  • XMLReader::expand - Exporte le noeud courant comme un noeud DOM

  • XMLReader::getAttribute - Récupère une valeur d'attribut par nom

  • XMLReader::getAttributeNo - Récupère une valeur d'attribut par position

  • XMLReader::getAttributeNs - Récupère une valeur d'attribut par nom et URI

  • XMLReader::getParserProperty - Indique si la propriété de l'analyseur est fixée ou non

  • XMLReader::isValid - Indique si le document est valide

  • XMLReader::lookupNamespace - Récupère l'URI du préfixe dans la portée du noeud

  • XMLReader::moveToAttribute - Positionne le lecteur sur l'attribut par nom

  • XMLReader::moveToAttributeNo - Positionne le lecteur sur l'attribut par index

  • XMLReader::moveToAttributeNs - Positionne le lecteur sur l'attribut par nom et URI

  • XMLReader::moveToElement - Déplace l'élément parent du noeud de l'attribut courant

  • XMLReader::moveToFirstAttribute - Déplace au premier attribut du noeud

  • XMLReader::moveToNextAttribute - Déplace au prochain attribut du noeud

  • XMLReader::next - Déplace à l'élément suivant en sautant les enfants

  • XMLReader::open - Fixe l'URI à être analysé

  • XMLReader::read - Déplace au prochain noeud dans le flux

  • XMLReader::setParserProperty - Fixe une propriété de l'analyseur

  • XMLReader::setRelaxNGSchema - Fixe l'URI du schéma RelaxNG pour validation

  • XMLReader::setRelaxNGSchemaSource - Fixe la chaîne de caractères contenant le schéma RelaxNG pour validation

  • XMLReader::XML - Fixe la chaîne de caractères de données pour être analysée

Propriétés

Tableau 1.

Nom | Type | Lecture seule | Description
attributeCount | int | oui | Le nombre d'attributs dans le noeud
baseURI | string | oui | La base URI du noeud
depth | int | oui | Profondeur du noeud dans l'arbre démarrant à 0
hasAttributes | bool | oui | Indique si le noeud a des attributs
hasValue | bool | oui | Indique si le noeud a une valeur de texte
isDefault | bool | oui | Indique si l'attribut est par défaut à partir du DTD
isEmptyElement | bool | oui | Indique si le noeud est un élément vide
localName | string | oui | Le nom local du noeud
name | string | oui | Le noeud qualifié du noeud
namespaceURI | string | oui | L'URI de l'espace de nom associé avec le noeud
nodeType | int | oui | Le type de noeud pour le noeud
prefix | string | oui | Le préfixe de l'espace de nom associé avec le noeud
value | string | oui | La valeur du texte du noeud
xmlLang | string | oui | La portée xml:lang dans lequel le noeud réside

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

Avertissement

XMLReader utilise des constantes de classe depuis PHP 5.1. Les mises à jour précédentes utilisent les constantes globales sous la forme de XMLREADER_ELEMENT.

Tableau 2. Types de Noeud XMLReader

Constante | Valeur | Description
XMLReader::NONE (entier) | 0 | Non un type de noeud
XMLReader::ELEMENT (entier) | 1 | Début d'élément
XMLReader::ATTRIBUTE (entier) | 2 | Noeud attribut
XMLReader::TEXT (entier) | 3 | Noeud texte
XMLReader::CDATA (entier) | 4 | Noeud CDATA
XMLReader::ENTITY_REF (entier) | 5 | Noeud Référence Entité
XMLReader::ENTITY (entier) | 6 | Noeud Déclaration Entité
XMLReader::PI (entier) | 7 | Noeud Traitement d'Instruction
XMLReader::COMMENT (entier) | 8 | Noeud commentaire
XMLReader::DOC (entier) | 9 | Noeud document
XMLReader::DOC_TYPE (entier) | 10 | Noeud Type document
XMLReader::DOC_FRAGMENT (entier) | 11 | Noeud Fragment Document
XMLReader::NOTATION (entier) | 12 | Noeud notation
XMLReader::WHITESPACE (entier) | 13 | Noeud blanc (espace)
XMLReader::SIGNIFICANT_WHITESPACE (entier) | 14 | Noeud blanc (espace) important
XMLReader::END_ELEMENT (entier) | 15 | Fin d'élément
XMLReader::END_ENTITY (entier) | 16 | Fin d'entité
XMLReader::XML_DECLARATION (entier) | 17 | Noeud Déclaration XML

Tableau 3. Options Analyseur XMLReader

Constante | Valeur | Description
XMLReader::LOADDTD (entier) | 1 | Charge DTD mais ne valide pas
XMLReader::DEFAULTATTRS (entier) | 2 | Charge DTD et attributs par défaut mais ne valide pas
XMLReader::VALIDATE (entier) | 3 | Charge DTD et valide pendant l'analyse
XMLReader::SUBST_ENTITIES (entier) | 4 | Substitue les entités et agrandit les références
Table des matières
XMLReader::close -- Ferme l'entrée XMLReader
XMLReader::expand -- Retourne une copie du noeud courant comme un noeud d'objet DOM
XMLReader::getAttribute -- Récupère la valeur d'un attribut par nom
XMLReader::getAttributeNo -- Récupère la valeur d'un attribut par index
XMLReader::getAttributeNs -- Récupère la valeur d'un attribut par nom local et URI
XMLReader::getParserProperty -- Indique si la propriété spécifiée a été fixée
XMLReader::isValid -- Indique si le document analysé est valide
XMLReader::lookupNamespace -- Consulte l'espace de nom pour un préfixe
XMLReader::moveToAttribute -- Déplace un curseur à un attribut nommé
XMLReader::moveToAttributeNo -- Déplace le curseur à un attribut par index
XMLReader::moveToAttributeNs -- Déplace le curseur à un attribut d'espace de nom
XMLReader::moveToElement -- Positionne le curseur sur l'élément parent de l'attribut courant
XMLReader::moveToFirstAttribute -- Positionne le curseur sur le premier attribut
XMLReader::moveToNextAttribute -- Positionne le curseur sur le prochain attribut
XMLReader::next -- Déplace le curseur au prochain noeud en sautant tous les sous arbres
XMLReader::open -- Fixe le URI contenant le XML à analyser
XMLReader::read -- Déplace au prochain noeud dans le document
XMLReader::setParserProperty -- Fixe ou supprime des options pour l'analyseur
XMLReader::setRelaxNGSchema -- Fixe le nom du fichier ou l'URI pour le Schéma RelaxNG
XMLReader::setRelaxNGSchemaSource -- Fixe les donneés contenant le Scéhma RelaxNG
XMLReader::XML -- Fixe les données contenant le XML à analyser

Précédent | Sommaire | Suivant
xmlrpc_set_type | Niveau supérieur | XMLReader::close


Fonctions XMLWriter

Manuel PHP
Précédent Suivant

CLXXXII. Fonctions XMLWriter

Introduction

Ceci est l'extension XMLWriter. Elle est basé sur l'API de la bibliothèque libxml xmlWriter.

Cette extension représente une écriture qui fournit la génération de flux ou de fichiers contenant des données 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 alternatif.

Classes pré-définies

XMLWriter

Méthodes

  • XMLWriter::endAttribute - Attribut de fin

  • XMLWriter::endCData - Termine une section CDATA

  • XMLWriter::endComment - Crée la fin d'un commentaire

  • XMLWriter::endDocument - Termine le document courant

  • XMLWriter::endDTDAttlist -Termine une AttList de la DTD courante

  • XMLWriter::endDTDElement - Termine l'élément courant de la DTD

  • XMLWriter::endDTDEntity - Termine l'entité courante de la DTD

  • XMLWriter::endDTD - Termine la DTD courante

  • XMLWriter::endElement - Termine l'élément courant

  • XMLWriter::endPI - Termine le PI courant

  • XMLWriter::flush - Affiche le buffer courant

  • XMLWriter::fullEndElement - Termine l'élément courant

  • XMLWriter::openMemory - Crée un nouveau xmlwriter en utilisant la mémoire pour l'affichage des chaînes

  • XMLWriter::openURI - Crée un nouveau xmlwriter en utilisant l'URI source pour l'affichage

  • XMLWriter::outputMemory - Retourne le buffer courant

  • XMLWriter::setIndentString - Définit une chaîne qui sera utilisée pour l'indentation

  • XMLWriter::setIndent - Active ou désactive l'indentation

  • XMLWriter::startAttributeNs - Crée un attribut d'espace de noms

  • XMLWriter::startAttribute - Crée un attribut de départ

  • XMLWriter::startCData - Commence une section CDATA

  • XMLWriter::startComment - Comment un commentaire

  • XMLWriter::startDocument - Commence un document

  • XMLWriter::startDTDAttlist - Commence une AttList d'une DTD

  • XMLWriter::startDTDElement - Commence un élément de DTD

  • XMLWriter::startDTDEntity - Commence une entité d'une DTD

  • XMLWriter::startDTD - Commence une DTD

  • XMLWriter::startElementNs - Commence un élément d'espace de noms

  • XMLWriter::startElement - Commence un élément

  • XMLWriter::startPI - Commence un PI

  • XMLWriter::text - Écrit du texte

  • XMLWriter::writeAttributeNs - Écrit un attribut d'un espace de noms

  • XMLWriter::writeAttribute - Écrit un attribut

  • XMLWriter::writeCData - Écrit une balise CDATA

  • XMLWriter::writeComment - Écrit une balise de commentaire

  • XMLWriter::writeDTDAttlist - Écrit une balise AttList d'une DTD

  • XMLWriter::writeDTDElement - Écrit un élément d'une DTD

  • XMLWriter::writeDTDEntity - Écrit une entité d'une DTD

  • XMLWriter::writeDTD - Écrit une balise DTD

  • XMLWriter::writeElementNS - Écrit un élément d'un espace de noms

  • XMLWriter::writeElement - Écrit un élément

  • XMLWriter::writePI - Écrit un PI

  • XMLWriter::writeRaw - Écrit un texte raw XML

Types de ressources

Il y a une seule ressource utilisée par la version procédurale de l'extension XMLWriter, retournée par la fonction xmlwriter_open_memory() ou xmlwriter_open_uri().

Constantes pré-définies

Cette extension ne définit aucune constante.

Table des matières
XMLWriter::endAttribute -- Termine un attribut
XMLWriter::endCData -- Termine un bloc CDATA
XMLWriter::endComment -- Termine un commentaire
XMLWriter::endDocument -- Termine un document
XMLWriter::endDTDAttlist -- Termine la liste des attributs de la DTD courante
XMLWriter::endDTDElement -- Termine l'élément de la DTD courante
XMLWriter::endDTDEntity -- Termine l'entité de la DTD courante
XMLWriter::endDTD -- Termine la DTD courante
XMLWriter::endElement -- Termine l'élément courant
XMLWriter::endPI -- Termine le PI courant
XMLWriter::flush -- Affiche le buffer courant
XMLWriter::fullEndElement -- Termine l'élément courant
XMLWriter::openMemory -- Crée un nouveau xmlwriter en utilisant la mémoire pour l'affichage des chaînes
XMLWriter::openURI -- Crée un nouveau xmlwriter, en utilisant l'URI source pour l'affichage
XMLWriter::outputMemory -- Retourne le buffer courant
XMLWriter::setIndentString -- Définit la chaîne à utiliser pour l'indentation
XMLWriter::setIndent -- Active ou non l'indentation
XMLWriter::startAttributeNs -- Crée un attribut pour l'espace de noms
XMLWriter::startAttribute -- Crée un attribut
XMLWriter::startCData -- Crée une balise CDATA
XMLWriter::startComment -- Crée un commentaire
XMLWriter::startDocument -- Crée un document
XMLWriter::startDTDAttlist -- Crée une liste d'attributs pour la DTD
XMLWriter::startDTDElement -- Crée un élément DTD
XMLWriter::startDTDEntity -- Crée une entité DTD
XMLWriter::startDTD -- Crée une DTD
XMLWriter::startElementNs -- Crée un élément d'un espace de noms
XMLWriter::startElement -- Crée un élément
XMLWriter::startPI -- Crée une balise PI
XMLWriter::text -- Écrit du texte
XMLWriter::writeAttributeNs -- Écrit un attribut d'un espace de noms
XMLWriter::writeAttribute -- Écrit un attribut
XMLWriter::writeCData -- Écrit un bloc CDATA
XMLWriter::writeComment -- Écrit un commentaire
XMLWriter::writeDTDAttlist -- Écrit une liste d'attributs DTD
XMLWriter::writeDTDElement -- Écrit un élément DTD
XMLWriter::writeDTDEntity -- Écrit une entité DTD
XMLWriter::writeDTD -- Écrit une DTD
XMLWriter::writeElementNS -- Écrit un élément d'un espace de noms
XMLWriter::writeElement -- Écrit un élément
XMLWriter::writePI -- Écrit la balise PI
XMLWriter::writeRaw -- Écrit un texte XML brut

Précédent | Sommaire | Suivant
XMLReader::XML | Niveau supérieur | XMLWriter::endAttribute


Runkit_Sandbox

(no version information, might be only in CVS)

Runkit_Sandbox -- Classe Runkit Sandbox -- Machine Virtuelle PHP

Description

L'instanciation de la classe Runkit_Sandbox crée un nouveau thread avec sa propre portée et sa pile de programme. En utilisant les options passées au constructeur, cet environnement peut être restreint à un sous-ensemble pour lequel l'interpréteur primaire peut exécuter et fournir un environnement plus sûr pour l'exécution de code utilisateur.

Note : Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Constructeur

void Runkit_Sandbox::__construct ( [array options] )

options est un tableau associatif contenant n'importe quelle combinaison des options ini listées ci-dessous.

safe_mode

Si un script extérieur qui est instancié avec la classe Runkit_Sandbox est configuré avec safe_mode = off, alors safe_mod devrait être activé pour l'environnement sandbox. Cette configuration ne peut être utilisée pour désactiver safe_mode lorsque safe_mode est déjà activé dans le script extérieur.

safe_mode_gid

Si le script extérieur qui est instancié avec la classe Runkit_Sandbox est configuré avec safe_mode_gid = on, alors safe_mod_gid devrait être désactivé pour l'environnement sandbox. Cette configuration ne peut être utilisée pour activer safe_mode_gid lorsque c'est déjà désactivé dans le script extérieur.

safe_mode_include_dir

Si le script extérieur qui est instancié avec la classe Runkit_Sandbox est configuré avec safe_mode_include_dir, alors un nouveau safe_mode_include_dir devrait être fixé pour les environnements de sandbox sous la valeur actuellement définie. safe_mode_include_dir peut aussi être supprimé pour indiquer que l'évitement de cette fonctionnalité est désactivé. Si safe_mode_include_dir était vide dans le script extérieur, mais safe_mod n'était pas activé, alors n'importe quel safe_mode_include_dir arbitraire peut être fixé en activant le safe_mode.

open_basedir

open_basedir peut être fixé à n'importe quel chemin sous la configuration courante de open_basedir. Si open_basedir n'est pas fixé dans la portée globale, alors il est assumé qu'il est dans le répertoire root et peut être fixé à n'importe quelle autre emplacement.

allow_url_fopen

Comme safe_mode, cette configuration peut seulement être faite plus restrictive, dans ce cas, en mettant FALSE lorsque la valeur était précédemment TRUE.

disable_functions

Liste de fonctions séparées par des virgules à désactiver dans le sous-interpréteur sandbox. Cette liste ne nécessite pas de contenir le nom des fonctions déjà désactivées, elles resteront désactivées même si elles ne sont pas listées.

disable_classes

Liste de classes séparées par des virgules à désactiver dans le sous-interpréteur sandbox. Cette liste ne nécessite pas de contenir le nom des classes déjà désactivées, elles resteront désactivées même si elles ne sont pas listées.

runkit.superglobal

Liste des variables qui seront traitées en tant que superglobales dans le sous-interpréteur sandbox. Ces variables seront utilisées en plus de celles définies à l'interne ou à l'aide de la configuration runkit.superglobal.

runkit.internal_override

L'option ini runkit.internal_override devrait être désactivée (mais non réactivée) à l'intérieur des sandbox.

Exemple 1. Instanciation d'un sandbox restreint

<?php
$options = array(
  'safe_mode'=>true,
  'open_basedir'=>'/var/www/users/jdoe/',
  'allow_url_fopen'=>'false',
  'disable_functions'=>'exec,shell_exec,passthru,system',
  'disable_classes'=>'myAppClass');
$sandbox = new Runkit_Sandbox($options);
/* Configurations ini non protégées sont fixées normalement */
$sandbox->ini_set('html_errors',true);
?>

Appel de Fonctions PHP

Toutes les variables dans la portée globale de l'environnement sandbox sont accessibles comme étant des propriétés de l'objet sandbox. La première chose à noter, c'est puisque la manière de gestion de la mémoire entre les deux threads est faite que les objets et les variables de ressources ne peuvent pas, jusqu'à présent, être échangées entre les interpréteurs. De plus, tous les tableaux sont copiés au complet et toutes références seront perdues. Cela veut aussi dire que les références entre les interpréteurs ne sont pas possibles.

Exemple 2. Utilisation des variables dans sandbox

<?php
$sandbox = new Runkit_Sandbox();

$sandbox->foo = 'bar';
$sandbox->eval('echo "$foo\n"; $bar = $foo . "baz";');
echo "{$sandbox->bar}\n";
if (isset($sandbox->foo)) unset($sandbox->foo);
$sandbox->eval('var_dump(isset($foo));');
?>

L'exemple ci-dessus va afficher :

bar
barbaz
bool(false)

Appel de Fonctions PHP

Toute fonction définie dans le sandbox peut être appelée en tant que
méthode sur l'objet sandbox. Ceci inclut aussi quelques constructions de
pseudo-fonctions : eval()
include(), include_once(),
require(), require_once(),
echo(), print(),
die() et exit().

Exemple 3. Appel de fonctions sandbox

<?php
$sandbox = new Runkit_Sandbox();

echo $sandbox->str_replace('a','f','abc');
?>

L'exemple ci-dessus va afficher :

fbc

Lors du passage d'arguments à une fonction sandbox, les arguments sont pris à partir de l'extérieur de l'instance de PHP. Si vous voulez passer les arguments à la portée de sandbox, soyez assuré de les accéder comme étant des propriétés de l'objet sandbox comme montré plus haut.

Exemple 4. Passage d'arguments aux fonctions sandbox

<?php
$sandbox = new Runkit_Sandbox();

$foo = 'bar';
$sandbox->foo = 'baz';
echo $sandbox->str_replace('a',$foo,'a');
echo $sandbox->str_replace('a',$sandbox->foo,'a');
?>

L'exemple ci-dessus va afficher :

bar
baz

Modification des Configurations de Sandbox

Depuis la version de runkit 0.5, certaines configurations de Sandbox peuvent être modifiées à la volée en utilisant la syntaxe ArrayAccess. Certaines configurations, comme active sont en lecture seule et permettent de fournir des informations de statut. Les autres configurations, comme output_handler peuvent être fixées et lues comme un tableau normal. Les configurations futures devraient être en écriture seule, cependant aucune configuration n'existe présentement.

Tableau 1. Configurations Sandbox / Indicateurs de Statut

Configuration | Type | But | Défaut
active | booléen (Lecture Seule) | TRUE si le Sandbox est toujours dans un état utilisable, FALSE si la requête est en arrêt dû à un appel à die(), exit() ou à cause d'une condition d'erreur fatale. | TRUE (Initial)
output_handler | Callback | Lorsque fixée à une valeur de retour valide, toutes sorties générées par l'instance Sandbox seront traitées à travers la fonction nommée. Les sorties de Sandbox suivent les mêmes conventions d'appel pour les gestionnaires de sortie du système entier. | Aucun
parent_access | booléen | Autorise sandbox à utiliser des instances de la classe Runkit_Sandbox_Parent. Doit être activée pour que les autres configurations reliées à Runkit_Sandbox_Parent fonctionnent. | FALSE
parent_read | booléen | Autorise sandbox à lire des variables dans son contexte parent. | FALSE
parent_write | booléen | Autorise sandbox à modifier des variables dans son contexte parent. | FALSE
parent_eval | booléen | Autorise sandbox à évaluer du code arbitraire dans son contexte parent. (DANGEREUX) | FALSE
parent_include | booléen | Autorise sandbox à inclure des fichiers de code php dans son contexte parent. DANGEREUX | FALSE
parent_echo | booléen | Autorise sandbox à afficher des données dans son contexte parent en court-circuitant efficacement son propre output_handler. | FALSE
parent_call | booléen | Autorise sandbox à appeler des fonctions dans son contexte parent. | FALSE
parent_die | booléen | Autorise sandbox à tuer son propre parent. (Et donc soi-même) | FALSE
parent_scope | entier | Quelle portée la propriété de l'accès parental vérifiera ? 0 == Portée Globale, 1 == Portée Appelante, 2 == Portée précédant la portée appelante, 3 == La porté avant celle-ci, etc., etc. | 0 (Global)
parent_scope | chaîne de caractères | Lorsque parent_scope est fixée à une valeur d'une chaîne de caractères, elle se réfère à une variable tableau nommée dans la portée globale. Si la variable nommée n'existe pas au moment de son accès, elle sera créée comme un tableau vide. Si la variable existe mais n'est pas un tableau, un faux tableau sera créé contenant une référence à la variable globale nommée. |

Précédent | Sommaire | Suivant
Fonctions runkit | Niveau supérieur | Runkit_Sandbox_Parent


Runkit_Sandbox_Parent

(no version information, might be only in CVS)

Runkit_Sandbox_Parent -- Classe Anti-Sandbox Runkit

Description

void Runkit_Sandbox_Parent::__construct ( void )

L'instanciation de la classe Runkit_Sandbox_Parent à l'intérieure d'un environnement sandbox créé à partir de la classe Runkit_Sandbox fournit certains moyens (controllés) pour un sandbox fils pour accéder à son parent.

Note : Support Sandbox (requis pour runkit_lint(), runkit_lint_file() et la classe Runkit_Sandbox) n'est seulement disponible qu'avec PHP 5.1 ou les versions de PHP 5.0 spécialement patché et nécessite que la protection de thread soit activée. Voyez le fichier README inclus dans le paquetage runkit pour plus d'informations.

Afin de faire fonctionner une des fonctionnalités de Runkit_Sandbox_Parent, le support doit être activé sur une base de chaque sandbox en activant le drapeau parent_access à partir du contexte parent.

Exemple 1. Travailler avec des variables dans un sandbox

<?php
$sandbox = new Runkit_Sandbox();
$sandbox['parent_access'] = true;
?>

Accéder les Variables du Parent

Comme les accès des variables de sandbox, les variables de parent sandbox devraient être lues et écrites à partir des propriétés de la classe Runkit_Sandbox_Parent. L'accès en lecture aux variables parentes devraient être activé avec la configuration parent_read (en plus de la base de configuration parent_access). L'accès en écriture est activé avec la configuration parent_write.

La portée des variables est différente de l'accès aux variables enfants de sandbox; elle n'est pas limitée au variables globales seulement. En configurant la configuration parent_scope pour un entier approprié, les autres portées dans la pile active pourraient être inspectée. Une valeur de 0 (Défaut) autorisera l'accès direct aux variables dans la portée globale. 1 pointera l'accès des variables à n'importe quelles variables dont la portée était active au moment ou le bloc courant du code sandbox était exécuté. Des valeurs plus élevées font reculer à travers les fonctions qui ont appelées d'autres fonctions qui menent au code sandbox en train d'être exécuté et qui essaie d'accéder à ses propres variables parentes.

Exemple 2. Accès aux variables parentes

<?php
$php = new Runkit_Sandbox();
$php['parent_access'] = true;
$php['parent_read'] = true;

$test = "Global";

$php->eval('$PARENT = new Runkit_Sandbox_Parent;');

$php['parent_scope'] = 0;
one();

$php['parent_scope'] = 1;
one();

$php['parent_scope'] = 2;
one();

$php['parent_scope'] = 3;
one();

$php['parent_scope'] = 4;
one();

$php['parent_scope'] = 5;
one();

function un() {
    $test = "un()";
    two();
}

function deux() {
    $test = "deux()";
    three();
}

function trois() {
    $test = "trois()";
    $GLOBALS['php']->eval('var_dump($PARENT->test);');
}
?>

L'exemple ci-dessus va afficher :

string(6) "Global"
string(7) "trois()"
string(5) "deux()"
string(5) "un()"
string(6) "Global"
string(6) "Global"

Appel de Fonctions Parentes

Comme l'accès avec sandbox, un sandbox peut accéder ses fonctions parentes si les configurations adéquates ont été activées. L'activation de parent_call autorisera le sandbox d'appeler toutes les fonctions disponibles à la portée parente. Les constructions de langage sont chacune contrôlées par ses propres configurations : print() et echo() sont activées avec parent_echo. die() et exit() sont activées avec parent_die. eval() est activées avec parent_eval tandis que include(), include_once(), require() et require_once() sont activées avec parent_include.

Précédent | Sommaire | Suivant
Runkit_Sandbox | Niveau supérieur | runkit_class_adopt


Streams Common API Reference

Table des matières
php_stream_stat_path -- Gets the status for a file or URL
php_stream_stat -- Gets the status for the underlying storage associated with a stream
php_stream_open_wrapper -- Opens a stream on a file or URL
php_stream_read -- Read a number of bytes from a stream into a buffer
php_stream_write -- Write a number of bytes from a buffer to a stream
php_stream_eof -- Check for an end-of-file condition on a stream
php_stream_getc -- Read a single byte from a stream
php_stream_gets -- Read a line of data from a stream into a buffer
php_stream_close -- Close a stream
php_stream_flush -- Flush stream buffers to storage
php_stream_seek -- Reposition a stream
php_stream_tell -- Determine the position of a stream
php_stream_copy_to_stream -- Copy data from one stream to another
php_stream_copy_to_mem -- Copy data from stream and into an allocated buffer
php_stream_make_seekable -- Convert a stream into a stream is seekable
php_stream_cast -- Convert a stream into another form, such as a FILE* or socket
php_stream_can_cast -- Determines if a stream can be converted into another form, such as a FILE* or socket
php_stream_is_persistent -- Determines if a stream is a persistent stream
php_stream_is -- Determines if a stream is of a particular type
php_stream_passthru -- Outputs all remaining data from a stream
php_register_url_stream_wrapper -- Registers a wrapper with the Streams API
php_unregister_url_stream_wrapper -- Unregisters a wrapper from the Streams API
php_stream_open_wrapper_ex -- Opens a stream on a file or URL, specifying context
php_stream_open_wrapper_as_file -- Opens a stream on a file or URL, and converts to a FILE*
php_stream_filter_register_factory -- Registers a filter factory with the Streams API
php_stream_filter_unregister_factory -- Deregisters a filter factory with the Streams API

Précédent | Sommaire | Suivant
Streams as Resources | Niveau supérieur | php_stream_stat_path


Stream open options

Stream open options -- Affects the operation of stream factory functions

Description

One or more of these values can be combined using the OR operator.

IGNORE_PATH

This is the default option for streams; it requests that the include_path is not to be searched for the requested file.

USE_PATH

Requests that the include_path is to be searched for the requested file.

IGNORE_URL

Requests that registered URL wrappers are to be ignored when opening the stream. Other non-URL wrappers will be taken into consideration when decoding the path. There is no opposite form for this flag; the streams API will use all registered wrappers by default.

IGNORE_URL_WIN

On Windows systems, this is equivalent to IGNORE_URL. On all other systems, this flag has no effect.

ENFORCE_SAFE_MODE

Requests that the underlying stream implementation perform safe_mode checks on the file before opening the file. Omitting this flag will skip safe_mode checks and allow opening of any file that the PHP process has rights to access.

REPORT_ERRORS

If this flag is set, and there was an error during the opening of the file or URL, the streams API will call the php_error function for you. This is useful because the path may contain username/password information that should not be displayed in the browser output (it would be a security risk to do so). When the streams API raises the error, it first strips username/password information from the path, making the error message safe to display in the browser.

STREAM_MUST_SEEK

This flag is useful when your extension really must be able to randomly seek around in a stream. Some streams may not be seekable in their native form, so this flag asks the streams API to check to see if the stream does support seeking. If it does not, it will copy the stream into temporary storage (which may be a temporary file or a memory stream) which does support seeking. Please note that this flag is not useful when you want to seek the stream and write to it, because the stream you are accessing might not be bound to the actual resource you requested.

Note : If the requested resource is network based, this flag will cause the opener to block until the whole contents have been downloaded.

STREAM_WILL_CAST

If your extension is using a third-party library that expects a FILE* or file descriptor, you can use this flag to request the streams API to open the resource but avoid buffering. You can then use php_stream_cast() to retrieve the FILE* or file descriptor that the library requires.

The is particularly useful when accessing HTTP URLs where the start of the actual stream data is found after an indeterminate offset into the stream.

Since this option disables buffering at the streams API level, you may experience lower performance when using streams functions on the stream; this is deemed acceptable because you have told streams that you will be using the functions to match the underlying stream implementation. Only use this option when you are sure you need it.

Précédent | Sommaire | Suivant
Streams Constants | Niveau supérieur | PDO Driver How-To


php_register_url_stream_wrapper

php_register_url_stream_wrapper -- Registers a wrapper with the Streams API

Description

int php_register_url_stream_wrapper ( char * protocol, php_stream_wrapper * wrapper, TSRMLS_DC )

php_register_url_stream_wrapper() registers wrapper as the handler for the protocol specified by protocol.

Note : If you call this function from a loadable module, you *MUST* call php_unregister_url_stream_wrapper() in your module shutdown function, otherwise PHP will crash.

Précédent | Sommaire | Suivant
php_stream_passthru | Niveau supérieur | php_unregister_url_stream_wrapper


php_stream_can_cast

php_stream_can_cast -- Determines if a stream can be converted into another form, such as a FILE* or socket

Description

int php_stream_can_cast ( php_stream * stream, int castas )

This function is equivalent to calling php_stream_cast() with ret set to NULL and flags set to 0. It returns SUCCESS if the stream can be converted into the form requested, or FAILURE if the conversion cannot be performed.

Note : Although this function will not perform the conversion, some internal stream state *might* be changed by this call.

Note : You must explicitly compare the return value of this function with one of the constants, as described in php_stream_cast().

See also php_stream_cast() and php_stream_is().

Précédent | Sommaire | Suivant
php_stream_cast | Niveau supérieur | php_stream_is_persistent


php_stream_cast

php_stream_cast -- Convert a stream into another form, such as a FILE* or socket

Description

int php_stream_cast ( php_stream * stream, int castas, void ** ret, int flags )

php_stream_cast() attempts to convert stream into a resource indicated by castas. If ret is NULL, the stream is queried to find out if such a conversion is possible, without actually performing the conversion (however, some internal stream state *might* be changed in this case). If flags is set to REPORT_ERRORS, an error message will be displayed is there is an error during conversion.

Note : This function returns SUCCESS for success or FAILURE for failure. Be warned that you must explicitly compare the return value with SUCCESS or FAILURE because of the underlying values of those constants. A simple boolean expression will not be interpreted as you intended.

Tableau 44-1. Resource types for castas

Value | Meaning
PHP_STREAM_AS_STDIO | Requests an ANSI FILE* that represents the stream
PHP_STREAM_AS_FD | Requests a POSIX file descriptor that represents the stream
PHP_STREAM_AS_SOCKETD | Requests a network socket descriptor that represents the stream

In addition to the basic resource types above, the conversion process can be altered by using the following flags by using the OR operator to combine the resource type with one or more of the following values:

Tableau 44-2. Resource types for castas

Value | Meaning
PHP_STREAM_CAST_TRY_HARD | Tries as hard as possible, at the expense of additional resources, to ensure that the conversion succeeds
PHP_STREAM_CAST_RELEASE | Informs the streams API that some other code (possibly a third party library) will be responsible for closing the underlying handle/resource. This causes the stream to be closed in such a way the underlying handle is preserved and returned in ret. If this function succeeds, stream should be considered closed and should no longer be used.

Note : If your system supports fopencookie() (systems using glibc 2 or later), the streams API will always be able to synthesize an ANSI FILE* pointer over any stream. While this is tremendously useful for passing any PHP stream to any third-party libraries, such behaviour is not portable. You are requested to consider the portability implications before distributing you extension. If the fopencookie synthesis is not desirable, you should query the stream to see if it naturally supports FILE* by using php_stream_is()

Note : If you ask a socket based stream for a FILE*, the streams API will use fdopen() to create it for you. Be warned that doing so may cause data that was buffered in the streams layer to be lost if you intermix streams API calls with ANSI stdio calls.

See also php_stream_is() and php_stream_can_cast().

Précédent | Sommaire | Suivant
php_stream_make_seekable | Niveau supérieur | php_stream_can_cast


php_stream_close

php_stream_close -- Close a stream

Description

int php_stream_close ( php_stream * stream )

php_stream_close() safely closes stream and releases the resources associated with it. After stream has been closed, it's value is undefined and should not be used.

php_stream_close() returns 0 if the stream was closed or EOF to indicate an error. Regardless of the success of the call, stream is undefined and should not be used after a call to this function.

Précédent | Sommaire | Suivant
php_stream_gets | Niveau supérieur | php_stream_flush


php_stream_closedir

php_stream_closedir -- Close a directory stream and release resources

Description

int php_stream_closedir ( php_stream * dirstream )

php_stream_closedir() closes a directory stream and releases resources associated with it. Returns 0 on success, but -1 on failure.

Précédent | Sommaire | Suivant
php_stream_rewinddir | Niveau supérieur | Streams File API Reference


php_stream_copy_to_mem

php_stream_copy_to_mem -- Copy data from stream and into an allocated buffer

Description

size_t php_stream_copy_to_mem ( php_stream * src, char ** buf, size_t maxlen, int persistent )

php_stream_copy_to_mem() allocates a buffer maxlen+1 bytes in length using pemalloc() (passing persistent). It then reads maxlen bytes from src and stores them in the allocated buffer.

The allocated buffer is returned in buf, and the number of bytes successfully read. You, the caller, are responsible for freeing the buffer by passing it and persistent to pefree().

If you want to copy all remaining data from the src stream, pass the constant PHP_STREAM_COPY_ALL as the value of maxlen.

Note : This function will attempt to copy the data in the most efficient manner, using memory mapped files when possible.

Précédent | Sommaire | Suivant
php_stream_copy_to_stream | Niveau supérieur | php_stream_make_seekable


php_stream_copy_to_stream

php_stream_copy_to_stream -- Copy data from one stream to another

Description

size_t php_stream_copy_to_stream ( php_stream * src, php_stream * dest, size_t maxlen )

php_stream_copy_to_stream() attempts to read up to maxlen bytes of data from src and write them to dest, and returns the number of bytes that were successfully copied.

If you want to copy all remaining data from the src stream, pass the constant PHP_STREAM_COPY_ALL as the value of maxlen.

Note : This function will attempt to copy the data in the most efficient manner, using memory mapped files when possible.

Précédent | Sommaire | Suivant
php_stream_tell | Niveau supérieur | php_stream_copy_to_mem


php_stream_eof

php_stream_eof -- Check for an end-of-file condition on a stream

Description

int php_stream_eof ( php_stream * stream )

php_stream_eof() checks for an end-of-file condition on stream.

php_stream_eof() returns the 1 to indicate EOF, 0 if there is no EOF and -1 to indicate an error.

Précédent | Sommaire | Suivant
php_stream_write | Niveau supérieur | php_stream_getc


php_stream_filter_register_factory

php_stream_filter_register_factory -- Registers a filter factory with the Streams API

Description

int php_stream_filter_register_factory ( const char * filterpattern, php_stream_filter_factory * factory )

Use this function to register a filter factory with the name given by filterpattern. filterpattern can be either a normal string name (i.e. myfilter) or a global pattern (i.e. myfilterclass.*) to allow a single filter to perform different operations depending on the exact name of the filter invoked (i.e. myfilterclass.foo, myfilterclass.bar, etc...)

Note : Filters registered by a loadable extension must be certain to call php_stream_filter_unregister_factory() during MSHUTDOWN.

Précédent | Sommaire | Suivant
php_stream_open_wrapper_as_file | Niveau supérieur | php_stream_filter_unregister_factory


php_stream_filter_unregister_factory

php_stream_filter_unregister_factory -- Deregisters a filter factory with the Streams API

Description

int php_stream_filter_unregister_factory ( const char * filterpattern )

Deregisters the filterfactory specified by the filterpattern making it no longer available for use.

Note : Filters registered by a loadable extension must be certain to call php_stream_filter_unregister_factory() during MSHUTDOWN.

Précédent | Sommaire | Suivant
php_stream_filter_register_factory | Niveau supérieur | Streams Dir API Reference


php_stream_flush

php_stream_flush -- Flush stream buffers to storage

Description

int php_stream_flush ( php_stream * stream )

php_stream_flush() causes any data held in write buffers in stream to be committed to the underlying storage.

php_stream_flush() returns 0 if the buffers were flushed, or if the buffers did not need to be flushed, but returns EOF to indicate an error.

Précédent | Sommaire | Suivant
php_stream_close | Niveau supérieur | php_stream_seek


php_stream_fopen_from_file

php_stream_fopen_from_file -- Convert an ANSI FILE* into a stream

Description

php_stream * php_stream_fopen_from_file ( FILE * file, char * mode )

php_stream_fopen_from_file() returns a stream based on the file. mode must be the same as the mode used to open file, otherwise strange errors may occur when trying to write when the mode of the stream is different from the mode on the file.

Précédent | Sommaire | Suivant
Streams File API Reference | Niveau supérieur | php_stream_fopen_tmpfile


php_stream_fopen_temporary_file

php_stream_fopen_temporary_file -- Generate a temporary file name and open a stream on it

Description

php_stream * php_stream_fopen_temporary_file ( const char * dir, const char * pfx, char ** opened )

php_stream_fopen_temporary_file() generates a temporary file name in the directory specified by dir and with a prefix of pfx. The generated file name is returns in the opened parameter, which you are responsible for cleaning up using efree(). A stream is opened on that generated filename in "w+b" mode. The file is NOT automatically deleted; you are responsible for unlinking or moving the file when you have finished with it.

Précédent | Sommaire | Suivant
php_stream_fopen_tmpfile | Niveau supérieur | Streams Socket API Reference


php_stream_fopen_tmpfile

php_stream_fopen_tmpfile -- Open a FILE* with tmpfile() and convert into a stream

Description

php_stream * php_stream_fopen_tmpfile ( void )

php_stream_fopen_tmpfile() returns a stream based on a temporary file opened with a mode of "w+b". The temporary file will be deleted automatically when the stream is closed or the process terminates.

Précédent | Sommaire | Suivant
php_stream_fopen_from_file | Niveau supérieur | php_stream_fopen_temporary_file


php_stream_getc

php_stream_getc -- Read a single byte from a stream

Description

int php_stream_getc ( php_stream * stream )

php_stream_getc() reads a single character from stream and returns it as an unsigned char cast as an int, or EOF if the end-of-file is reached, or an error occurred.

php_stream_getc() may block in the same way as php_stream_read() blocks.

The internal position of the stream is advanced by 1 if successful.

Précédent | Sommaire | Suivant
php_stream_eof | Niveau supérieur | php_stream_gets


php_stream_gets

php_stream_gets -- Read a line of data from a stream into a buffer

Description

char * php_stream_gets ( php_stream * stream, char * buf, size_t maxlen )

php_stream_gets() reads up to count-1 bytes of data from stream and copies them into the buffer buf. Reading stops after an EOF or a newline. If a newline is read, it is stored in buf as part of the returned data. A NUL terminating character is stored as the last character in the buffer.

php_stream_read() returns buf when successful or NULL otherwise.

The internal position of the stream is advanced by the number of bytes that were read, so that subsequent reads will continue reading from that point.

This function may block in the same way as php_stream_read().

Précédent | Sommaire | Suivant
php_stream_getc | Niveau supérieur | php_stream_close


php_stream_is

php_stream_is -- Determines if a stream is of a particular type

Description

int php_stream_is ( php_stream * stream, int istype )

php_stream_is() returns 1 if stream is of the type specified by istype, or 0 otherwise.

Tableau 44-1. Values for istype

Value | Meaning
PHP_STREAM_IS_STDIO | The stream is implemented using the stdio implementation
PHP_STREAM_IS_SOCKET | The stream is implemented using the network socket implementation
PHP_STREAM_IS_USERSPACE | The stream is implemented using the userspace object implementation
PHP_STREAM_IS_MEMORY | The stream is implemented using the grow-on-demand memory stream implementation

Note : The PHP_STREAM_IS_XXX "constants" are actually defined as pointers to the underlying stream operations structure. If your extension (or some other extension) defines additional streams, it should also declare a PHP_STREAM_IS_XXX constant in it's header file that you can use as the basis of this comparison.

Note : This function is implemented as a simple (and fast) pointer comparison, and does not change the stream state in any way.

See also php_stream_cast() and php_stream_can_cast().

Précédent | Sommaire | Suivant
php_stream_is_persistent | Niveau supérieur | php_stream_passthru


php_stream_is_persistent

php_stream_is_persistent -- Determines if a stream is a persistent stream

Description

int php_stream_is_persistent ( php_stream * stream )

php_stream_is_persistent() returns 1 if the stream is a persistent stream, 0 otherwise.

Précédent | Sommaire | Suivant
php_stream_can_cast | Niveau supérieur | php_stream_is


php_stream_make_seekable

php_stream_make_seekable -- Convert a stream into a stream is seekable

Description

int php_stream_make_seekable ( php_stream * origstream, php_stream ** newstream, int flags )

php_stream_make_seekable() checks if origstream is seekable. If it is not, it will copy the data into a new temporary stream. If successful, newstream is always set to the stream that is valid to use, even if the original stream was seekable.

flags allows you to specify your preference for the seekable stream that is returned: use PHP_STREAM_NO_PREFERENCE to use the default seekable stream (which uses a dynamically expanding memory buffer, but switches to temporary file backed storage when the stream size becomes large), or use PHP_STREAM_PREFER_STDIO to use "regular" temporary file backed storage.

Tableau 44-1. php_stream_make_seekable() return values

Value | Meaning
PHP_STREAM_UNCHANGED | Original stream was seekable anyway. newstream is set to the value of origstream.
PHP_STREAM_RELEASED | Original stream was not seekable and has been released. newstream is set to the new seekable stream. You should not access origstream anymore.
PHP_STREAM_FAILED | An error occurred while attempting conversion. newstream is set to NULL; origstream is still valid.
PHP_STREAM_CRITICAL | An error occurred while attempting conversion that has left origstream in an indeterminate state. newstream is set to NULL and it is highly recommended that you close origstream.

Note : If you need to seek and write to the stream, it does not make sense to use this function, because the stream it returns is not guaranteed to be bound to the same resource as the original stream.

Note : If you only need to seek forwards, there is no need to call this function, as the streams API will emulate forward seeks when the whence parameter is SEEK_CUR.

Note : If origstream is network based, this function will block until the whole contents have been downloaded.

Note : NEVER call this function with an origstream that is reference by a file pointer in a PHP script! This function may cause the underlying stream to be closed which could cause a crash when the script next accesses the file pointer!

Note : In many cases, this function can only succeed when origstream is a newly opened stream with no data buffered in the stream layer. For that reason, and because this function is complicated to use correctly, it is recommended that you use php_stream_open_wrapper() and pass in PHP_STREAM_MUST_SEEK in your options instead of calling this function directly.

Précédent | Sommaire | Suivant
php_stream_copy_to_mem | Niveau supérieur | php_stream_cast


php_stream_open_wrapper

php_stream_open_wrapper -- Opens a stream on a file or URL

Description

php_stream * php_stream_open_wrapper ( char * path, char * mode, int options, char ** opened )

php_stream_open_wrapper() opens a stream on the file, URL or other wrapped resource specified by path. Depending on the value of mode, the stream may be opened for reading, writing, appending or combinations of those. See the table below for the different modes that can be used; in addition to the characters listed below, you may include the character 'b' either as the second or last character in the mode string. The presence of the 'b' character informs the relevant stream implementation to open the stream in a binary safe mode.

The 'b' character is ignored on all POSIX conforming systems which treat binary and text files in the same way. It is a good idea to specify the 'b' character whenever your stream is accessing data where the full 8 bits are important, so that your code will work when compiled on a system where the 'b' flag is important.

Any local files created by the streams API will have their initial permissions set according to the operating system defaults - under Unix based systems this means that the umask of the process will be used. Under Windows, the file will be owned by the creating process. Any remote files will be created according to the URL wrapper that was used to open the file, and the credentials supplied to the remote server.

r

Open text file for reading. The stream is positioned at the beginning of the file.

r+

Open text file for reading and writing. The stream is positioned at the beginning of the file.

w

Truncate the file to zero length or create text file for writing. The stream is positioned at the beginning of the file.

w+

Open text file for reading and writing. The file is created if it does not exist, otherwise it is truncated. The stream is positioned at the beginning of the file.

a

Open for writing. The file is created if it does not exist. The stream is positioned at the end of the file.

a+

Open text file for reading and writing. The file is created if it does not exist. The stream is positioned at the end of the file.

options affects how the path/URL of the stream is interpreted, safe mode checks and actions taken if there is an error during opening of the stream. See Stream open options for more information about options.

If opened is not NULL, it will be set to a string containing the name of the actual file/resource that was opened. This is important when the options include USE_PATH, which causes the include_path to be searched for the file. You, the caller, are responsible for calling efree() on the filename returned in this parameter.

Note : If you specified STREAM_MUST_SEEK in options, the path returned in opened may not be the name of the actual stream that was returned to you. It will, however, be the name of the original resource from which the seekable stream was manufactured.

Précédent | Sommaire | Suivant
php_stream_stat | Niveau supérieur | php_stream_read


php_stream_open_wrapper_as_file

php_stream_open_wrapper_as_file -- Opens a stream on a file or URL, and converts to a FILE*

Description

FILE * php_stream_open_wrapper_as_file ( char * path, char * mode, int options, char ** opened )

php_stream_open_wrapper_as_file() is exactly like php_stream_open_wrapper(), but converts the stream into an ANSI stdio FILE* and returns that instead of the stream. This is a convenient shortcut for extensions that pass FILE* to third-party libraries.

Précédent | Sommaire | Suivant
php_stream_open_wrapper_ex | Niveau supérieur | php_stream_filter_register_factory


php_stream_open_wrapper_ex

php_stream_open_wrapper_ex -- Opens a stream on a file or URL, specifying context

Description

php_stream * php_stream_open_wrapper_ex ( char * path, char * mode, int options, char ** opened, php_stream_context * context )

php_stream_open_wrapper_ex() is exactly like php_stream_open_wrapper(), but allows you to specify a php_stream_context object using context. To find out more about stream contexts, see Stream Contexts.

Précédent | Sommaire | Suivant
php_unregister_url_stream_wrapper | Niveau supérieur | php_stream_open_wrapper_as_file


php_stream_opendir

php_stream_opendir -- Open a directory for file enumeration

Description

php_stream * php_stream_opendir ( char * path, php_stream_context * context )

php_stream_opendir() returns a stream that can be used to list the files that are contained in the directory specified by path. This function is functionally equivalent to POSIX opendir(). Although this function returns a php_stream object, it is not recommended to try to use the functions from the common API on these streams.

Précédent | Sommaire | Suivant
Streams Dir API Reference | Niveau supérieur | php_stream_readdir


php_stream_passthru

php_stream_passthru -- Outputs all remaining data from a stream

Description

size_t php_stream_passthru ( php_stream * stream )

php_stream_passthru() outputs all remaining data from stream to the active output buffer and returns the number of bytes output. If buffering is disabled, the data is written straight to the output, which is the browser making the request in the case of PHP on a web server, or stdout for CLI based PHP. This function will use memory mapped files if possible to help improve performance.

Précédent | Sommaire | Suivant
php_stream_is | Niveau supérieur | php_register_url_stream_wrapper


php_stream_read

php_stream_read -- Read a number of bytes from a stream into a buffer

Description

size_t php_stream_read ( php_stream * stream, char * buf, size_t count )

php_stream_read() reads up to count bytes of data from stream and copies them into the buffer buf.

php_stream_read() returns the number of bytes that were read successfully. There is no distinction between a failed read or an end-of-file condition - use php_stream_eof() to test for an EOF.

The internal position of the stream is advanced by the number of bytes that were read, so that subsequent reads will continue reading from that point.

If less than count bytes are available to be read, this call will block (or wait) until the required number are available, depending on the blocking status of the stream. By default, a stream is opened in blocking mode. When reading from regular files, the blocking mode will not usually make any difference: when the stream reaches the EOF php_stream_read() will return a value less than count, and 0 on subsequent reads.

Précédent | Sommaire | Suivant
php_stream_open_wrapper | Niveau supérieur | php_stream_write


php_stream_readdir

php_stream_readdir -- Fetch the next directory entry from an opened dir

Description

php_stream_dirent * php_stream_readdir ( php_stream * dirstream, php_stream_dirent * ent )

php_stream_readdir() reads the next directory entry from dirstream and stores it into ent. If the function succeeds, the return value is ent. If the function fails, the return value is NULL. See php_stream_dirent for more details about the information returned for each directory entry.

Précédent | Sommaire | Suivant
php_stream_opendir | Niveau supérieur | php_stream_rewinddir


php_stream_rewinddir

php_stream_rewinddir -- Rewind a directory stream to the first entry

Description

int php_stream_rewinddir ( php_stream * dirstream )

php_stream_rewinddir() rewinds a directory stream to the first entry. Returns 0 on success, but -1 on failure.

Précédent | Sommaire | Suivant
php_stream_readdir | Niveau supérieur | php_stream_closedir


php_stream_seek

php_stream_seek -- Reposition a stream

Description

int php_stream_seek ( php_stream * stream, off_t offset, int whence )

php_stream_seek() repositions the internal position of stream. The new position is determined by adding the offset to the position indicated by whence. If whence is set to SEEK_SET, SEEK_CUR or SEEK_END the offset is relative to the start of the stream, the current position or the end of the stream, respectively.

php_stream_seek() returns 0 on success, but -1 if there was an error.

Note : Not all streams support seeking, although the streams API will emulate a seek if whence is set to SEEK_CUR and offset is positive, by calling php_stream_read() to read (and discard) offset bytes.

The emulation is only applied when the underlying stream implementation does not support seeking. If the stream is (for example) a file based stream that is wrapping a non-seekable pipe, the streams api will not apply emulation because the file based stream implements a seek operation; the seek will fail and an error result will be returned to the caller.

Précédent | Sommaire | Suivant
php_stream_flush | Niveau supérieur | php_stream_tell


php_stream_sock_open_from_socket

php_stream_sock_open_from_socket -- Convert a socket descriptor into a stream

Description

php_stream * php_stream_sock_open_from_socket ( int socket, int persistent )

php_stream_sock_open_from_socket() returns a stream based on the socket. persistent is a flag that controls whether the stream is opened as a persistent stream. Generally speaking, this parameter will usually be 0.

Précédent | Sommaire | Suivant
Streams Socket API Reference | Niveau supérieur | php_stream_sock_open_host


php_stream_sock_open_host

php_stream_sock_open_host -- Open a connection to a host and return a stream

Description

php_stream * php_stream_sock_open_host ( const char * host, unsigned short port, int socktype, struct timeval * timeout, int persistent )

php_stream_sock_open_host() establishes a connect to the specified host and port. socktype specifies the connection semantics that should apply to the connection. Values for socktype are system dependent, but will usually include (at a minimum) SOCK_STREAM for sequenced, reliable, two-way connection based streams (TCP), or SOCK_DGRAM for connectionless, unreliable messages of a fixed maximum length (UDP).

persistent is a flag the controls whether the stream is opened as a persistent stream. Generally speaking, this parameter will usually be 0.

If not NULL, timeout specifies a maximum time to allow for the connection to be made. If the connection attempt takes longer than the timeout value, the connection attempt is aborted and NULL is returned to indicate that the stream could not be opened.

Note : The timeout value does not include the time taken to perform a DNS lookup. The reason for this is because there is no portable way to implement a non-blocking DNS lookup.

The timeout only applies to the connection phase; if you need to set timeouts for subsequent read or write operations, you should use php_stream_sock_set_timeout() to configure the timeout duration for your stream once it has been opened.

The streams API places no restrictions on the values you use for socktype, but encourages you to consider the portability of values you choose before you release your extension.

Précédent | Sommaire | Suivant
php_stream_sock_open_from_socket | Niveau supérieur | php_stream_sock_open_unix


php_stream_sock_open_unix

php_stream_sock_open_unix -- Open a Unix domain socket and convert into a stream

Description

php_stream * php_stream_sock_open_unix ( const char * path, int pathlen, int persistent, struct timeval * timeout )

php_stream_sock_open_unix() attempts to open the Unix domain socket specified by path. pathlen specifies the length of path. If timeout is not NULL, it specifies a timeout period for the connection attempt. persistent indicates if the stream should be opened as a persistent stream. Generally speaking, this parameter will usually be 0.

Note : This function will not work under Windows, which does not implement Unix domain sockets. A possible exception to this rule is if your PHP binary was built using cygwin. You are encouraged to consider this aspect of the portability of your extension before it's release.

Note : This function treats path in a binary safe manner, suitable for use on systems with an abstract namespace (such as Linux), where the first character of path is a NUL character.

Précédent | Sommaire | Suivant
php_stream_sock_open_host | Niveau supérieur | Streams Structures


php_stream_stat

php_stream_stat -- Gets the status for the underlying storage associated with a stream

Description

int php_stream_stat ( php_stream * stream, php_stream_statbuf * ssb )

php_stream_stat() examines the storage to which stream is bound, and returns information such as file size, access and creation times and so on. The return value is 0 on success, -1 on error. For more information about the information returned, see php_stream_statbuf.

Précédent | Sommaire | Suivant
php_stream_stat_path | Niveau supérieur | php_stream_open_wrapper


php_stream_stat_path

php_stream_stat_path -- Gets the status for a file or URL

Description

int php_stream_stat_path ( char * path, php_stream_statbuf * ssb )

php_stream_stat_path() examines the file or URL specified by path and returns information such as file size, access and creation times and so on. The return value is 0 on success, -1 on error. For more information about the information returned, see php_stream_statbuf.

Précédent | Sommaire | Suivant
Streams Common API Reference | Niveau supérieur | php_stream_stat


php_stream_tell

php_stream_tell -- Determine the position of a stream

Description

off_t php_stream_tell ( php_stream * stream )

php_stream_tell() returns the internal position of stream, relative to the start of the stream. If there is an error, -1 is returned.

Précédent | Sommaire | Suivant
php_stream_seek | Niveau supérieur | php_stream_copy_to_stream


php_stream_write

php_stream_write -- Write a number of bytes from a buffer to a stream

Description

size_t php_stream_write ( php_stream * stream, const char * buf, size_t count )

php_stream_write() writes count bytes of data from buf into stream.

php_stream_write() returns the number of bytes that were written successfully. If there was an error, the number of bytes written will be less than count.

The internal position of the stream is advanced by the number of bytes that were written, so that subsequent writes will continue writing from that point.

Précédent | Sommaire | Suivant
php_stream_read | Niveau supérieur | php_stream_eof


php_unregister_url_stream_wrapper

php_unregister_url_stream_wrapper -- Unregisters a wrapper from the Streams API

Description

int php_unregister_url_stream_wrapper ( char * protocol, TSRMLS_DC )

php_unregister_url_stream_wrapper() unregisters the wrapper associated with protocol.

Précédent | Sommaire | Suivant
php_register_url_stream_wrapper | Niveau supérieur | php_stream_open_wrapper_ex


struct php_stream_dirent

struct php_stream_dirent -- Holds information about a single file during dir scanning

Description

php_stream_dirent
     char d_name[MAXPATHLEN]

d_name holds the name of the file, relative to the directory being scanned.

Précédent | Sommaire | Suivant
struct php_stream_statbuf | Niveau supérieur | struct php_stream_ops


struct php_stream_filter

struct php_stream_filter -- Holds filter properties and pointer to operations

Description

struct _php_stream_filter {
            php_stream_filter_ops *fops;
            void *abstract; /* for use by filter implementation */
            php_stream_filter *next;
            php_stream_filter *prev;
            int is_persistent;

            /* link into stream and chain */
            php_stream_filter_chain *chain;

            /* buffered buckets */
            php_stream_bucket_brigade buffer;
        } php_stream_filter;

Précédent | Sommaire | Suivant
struct php_stream_wrapper_ops | Niveau supérieur | struct php_stream_filter_ops


struct php_stream_filter_ops

struct php_stream_filter_ops -- Holds member functions for a stream filter implementation

Description

typedef struct _php_stream_filter_ops {
            php_stream_filter_status_t (*filter)(
                    php_stream *stream,
                    php_stream_filter *thisfilter,
                    php_stream_bucket_brigade *buckets_in,
                    php_stream_bucket_brigade *buckets_out,
                    size_t *bytes_consumed,
                    int flags
                    TSRMLS_DC);

            void (*dtor)(php_stream_filter *thisfilter TSRMLS_DC);

            const char *label;
} php_stream_filter_ops;

Précédent | Sommaire | Suivant
struct php_stream_filter | Niveau supérieur | Streams Constants


struct php_stream_ops

struct php_stream_ops -- Holds member functions for a stream implementation

Description

typedef struct _php_stream_ops {
             /* all streams MUST implement these operations */
             size_t (*write)(php_stream *stream, const char *buf, size_t count TSRMLS_DC);
             size_t (*read)(php_stream *stream, char *buf, size_t count TSRMLS_DC);
             int (*close)(php_stream *stream, int close_handle TSRMLS_DC);
             int (*flush)(php_stream *stream TSRMLS_DC);

             const char *label; /* name describing this class of stream */

             /* these operations are optional, and may be set to NULL if the stream does not
              * support a particular operation */
            int (*seek)(php_stream *stream, off_t offset, int whence TSRMLS_DC);
            char *(*gets)(php_stream *stream, char *buf, size_t size TSRMLS_DC);
            int (*cast)(php_stream *stream, int castas, void **ret TSRMLS_DC);
            int (*stat)(php_stream *stream, php_stream_statbuf *ssb TSRMLS_DC);
        } php_stream_ops;

Précédent | Sommaire | Suivant
struct php_stream_dirent | Niveau supérieur | struct php_stream_wrapper


struct php_stream_statbuf

struct php_stream_statbuf -- Holds information about a file or URL

Description

php_stream_statbuf
     struct stat sb

sb is a regular, system defined, struct stat.

Précédent | Sommaire | Suivant
Streams Structures | Niveau supérieur | struct php_stream_dirent


struct php_stream_wrapper

struct php_stream_wrapper -- Holds wrapper properties and pointer to operations

Description

struct _php_stream_wrapper  {
            php_stream_wrapper_ops *wops;   /* operations the wrapper can perform */
            void *abstract;                 /* context for the wrapper */
            int is_url;                     /* so that PG(allow_url_fopen) can be respected */

            /* support for wrappers to return (multiple) error messages to the stream opener */
            int err_count;
            char **err_stack;
        } php_stream_wrapper;

Précédent | Sommaire | Suivant
struct php_stream_ops | Niveau supérieur | struct php_stream_wrapper_ops


struct php_stream_wrapper_ops

struct php_stream_wrapper_ops -- Holds member functions for a stream wrapper implementation

Description

typedef struct _php_stream_wrapper_ops {
            /* open/create a wrapped stream */
            php_stream *(*stream_opener)(php_stream_wrapper *wrapper, char *filename, char *mode,
                    int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC);
            /* close/destroy a wrapped stream */
            int (*stream_closer)(php_stream_wrapper *wrapper, php_stream *stream TSRMLS_DC);
            /* stat a wrapped stream */
            int (*stream_stat)(php_stream_wrapper *wrapper, php_stream *stream, php_stream_statbuf *ssb TSR$
            /* stat a URL */
            int (*url_stat)(php_stream_wrapper *wrapper, char *url, php_stream_statbuf *ssb TSRMLS_DC);
            /* open a "directory" stream */
            php_stream *(*dir_opener)(php_stream_wrapper *wrapper, char *filename, char *mode,
                    int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC);

            const char *label;

            /* Delete/Unlink a file */
            int (*unlink)(php_stream_wrapper *wrapper, char *url, int options, php_stream_context *context TSRMLS_DC);
        } php_stream_wrapper_ops;

Précédent | Sommaire | Suivant
struct php_stream_wrapper | Niveau supérieur | struct php_stream_filter


Liste des Fuseaux Horaires Supportés

Manuel PHP
Précédent Suivant

Annexe I. Liste des Fuseaux Horaires Supportés

Table des matières
Liste des fuseaux horaires dans le groupe Africa (Afrique)
Liste des fuseaux horaires dans le groupe America (Amérique)
List of timezones in the group Antarctica
List of timezones in the group Arctic
Liste des fuseaux horaires dans le groupe Asia (Asie)
Liste des fuseaux horaires dans le groupe Atlantic (Atlantique)
List of timezones in the group Australia
Liste des fuseaux horaires dans le groupe Europe
Liste des fuseaux horaires dans le groupe Inde
Liste des fuseaux horaires dans le groupe Pacific (Pacifique)
Liste des fuseaux horaires dans le groupe 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().

Note : La dernière version de la base de données des fuseaux horaires peut être installée via la commande PECL timezonedb. Pour les utilisateurs de WIndows, une bibliothèque pré-compilée DLL peut être téléchargée depuis le site PECL4Win : php_timezonedb.dll.

Liste des fuseaux horaires dans le groupe Africa (Afrique)

Tableau I-1. Africa

Africa/Abidjan | Africa/Accra | Africa/Addis_Ababa | Africa/Algiers | Africa/Asmera
Africa/Bamako | Africa/Bangui | Africa/Banjul | Africa/Bissau | Africa/Blantyre
Africa/Brazzaville | Africa/Bujumbura | Africa/Cairo | Africa/Casablanca | Africa/Ceuta
Africa/Conakry | Africa/Dakar | Africa/Dar_es_Salaam | Africa/Djibouti | Africa/Douala
Africa/El_Aaiun | Africa/Freetown | Africa/Gaborone | Africa/Harare | Africa/Johannesburg
Africa/Kampala | Africa/Khartoum | Africa/Kigali | Africa/Kinshasa | Africa/Lagos
Africa/Libreville | Africa/Lome | Africa/Luanda | Africa/Lubumbashi | Africa/Lusaka
Africa/Malabo | Africa/Maputo | Africa/Maseru | Africa/Mbabane | Africa/Mogadishu
Africa/Monrovia | Africa/Nairobi | Africa/Ndjamena | Africa/Niamey | Africa/Nouakchott
Africa/Ouagadougou | Africa/Porto-Novo | Africa/Sao_Tome | Africa/Timbuktu | Africa/Tripoli
Africa/Tunis | Africa/Windhoek |  |  |

Précédent | Sommaire | Suivant
Description des directives internes du php.ini | Niveau supérieur | Liste des fuseaux horaires dans le groupe America (Amérique)


Liste des fuseaux horaires dans le groupe America (Amérique)

Tableau I-2. America

America/Adak | America/Anchorage | America/Anguilla | America/Antigua | America/Araguaina
America/Argentina/Buenos_Aires | America/Argentina/Catamarca | America/Argentina/ComodRivadavia | America/Argentina/Cordoba | America/Argentina/Jujuy
America/Argentina/La_Rioja | America/Argentina/Mendoza | America/Argentina/Rio_Gallegos | America/Argentina/San_Juan | America/Argentina/Tucuman
America/Argentina/Ushuaia | America/Aruba | America/Asuncion | America/Atikokan | America/Atka
America/Bahia | America/Barbados | America/Belem | America/Belize | America/Blanc-Sablon
America/Boa_Vista | America/Bogota | America/Boise | America/Buenos_Aires | America/Cambridge_Bay
America/Campo_Grande | America/Cancun | America/Caracas | America/Catamarca | America/Cayenne
America/Cayman | America/Chicago | America/Chihuahua | America/Coral_Harbour | America/Cordoba
America/Costa_Rica | America/Cuiaba | America/Curacao | America/Danmarkshavn | America/Dawson
America/Dawson_Creek | America/Denver | America/Detroit | America/Dominica | America/Edmonton
America/Eirunepe | America/El_Salvador | America/Ensenada | America/Fort_Wayne | America/Fortaleza
America/Glace_Bay | America/Godthab | America/Goose_Bay | America/Grand_Turk | America/Grenada
America/Guadeloupe | America/Guatemala | America/Guayaquil | America/Guyana | America/Halifax
America/Havana | America/Hermosillo | America/Indiana/Indianapolis | America/Indiana/Knox | America/Indiana/Marengo
America/Indiana/Petersburg | America/Indiana/Vevay | America/Indiana/Vincennes | America/Indianapolis | America/Inuvik
America/Iqaluit | America/Jamaica | America/Jujuy | America/Juneau | America/Kentucky/Louisville
America/Kentucky/Monticello | America/Knox_IN | America/La_Paz | America/Lima | America/Los_Angeles
America/Louisville | America/Maceio | America/Managua | America/Manaus | America/Martinique
America/Mazatlan | America/Mendoza | America/Menominee | America/Merida | America/Mexico_City
America/Miquelon | America/Moncton | America/Monterrey | America/Montevideo | America/Montreal
America/Montserrat | America/Nassau | America/New_York | America/Nipigon | America/Nome
America/Noronha | America/North_Dakota/Center | America/North_Dakota/New_Salem | America/Panama | America/Pangnirtung
America/Paramaribo | America/Phoenix | America/Port-au-Prince | America/Port_of_Spain | America/Porto_Acre
America/Porto_Velho | America/Puerto_Rico | America/Rainy_River | America/Rankin_Inlet | America/Recife
America/Regina | America/Rio_Branco | America/Rosario | America/Santiago | America/Santo_Domingo
America/Sao_Paulo | America/Scoresbysund | America/Shiprock | America/St_Johns | America/St_Kitts
America/St_Lucia | America/St_Thomas | America/St_Vincent | America/Swift_Current | America/Tegucigalpa
America/Thule | America/Thunder_Bay | America/Tijuana | America/Toronto | America/Tortola
America/Vancouver | America/Virgin | America/Whitehorse | America/Winnipeg | America/Yakutat
America/Yellowknife |  |  |  |

Précédent | Sommaire | Suivant
Liste des Fuseaux Horaires Supportés | Niveau supérieur | List of timezones in the group Antarctica


List of timezones in the group Antarctica

Tableau I-3. Antarctica

Antarctica/Casey | Antarctica/Davis | Antarctica/DumontDUrville | Antarctica/Mawson | Antarctica/McMurdo
Antarctica/Palmer | Antarctica/Rothera | Antarctica/South_Pole | Antarctica/Syowa | Antarctica/Vostok

Précédent | Sommaire | Suivant
Liste des fuseaux horaires dans le groupe America (Amérique) | Niveau supérieur | List of timezones in the group Arctic


List of timezones in the group Arctic

Tableau I-4. Arctic

Arctic/Longyearbyen

Précédent | Sommaire | Suivant
List of timezones in the group Antarctica | Niveau supérieur | Liste des fuseaux horaires dans le groupe Asia (Asie)


Liste des fuseaux horaires dans le groupe Asia (Asie)

Tableau I-5. Asia

Asia/Aden | Asia/Almaty | Asia/Amman | Asia/Anadyr | Asia/Aqtau
Asia/Aqtobe | Asia/Ashgabat | Asia/Ashkhabad | Asia/Baghdad | Asia/Bahrain
Asia/Baku | Asia/Bangkok | Asia/Beirut | Asia/Bishkek | Asia/Brunei
Asia/Calcutta | Asia/Choibalsan | Asia/Chongqing | Asia/Chungking | Asia/Colombo
Asia/Dacca | Asia/Damascus | Asia/Dhaka | Asia/Dili | Asia/Dubai
Asia/Dushanbe | Asia/Gaza | Asia/Harbin | Asia/Hong_Kong | Asia/Hovd
Asia/Irkutsk | Asia/Istanbul | Asia/Jakarta | Asia/Jayapura | Asia/Jerusalem
Asia/Kabul | Asia/Kamchatka | Asia/Karachi | Asia/Kashgar | Asia/Katmandu
Asia/Krasnoyarsk | Asia/Kuala_Lumpur | Asia/Kuching | Asia/Kuwait | Asia/Macao
Asia/Macau | Asia/Magadan | Asia/Makassar | Asia/Manila | Asia/Muscat
Asia/Nicosia | Asia/Novosibirsk | Asia/Omsk | Asia/Oral | Asia/Phnom_Penh
Asia/Pontianak | Asia/Pyongyang | Asia/Qatar | Asia/Qyzylorda | Asia/Rangoon
Asia/Riyadh | Asia/Saigon | Asia/Sakhalin | Asia/Samarkand | Asia/Seoul
Asia/Shanghai | Asia/Singapore | Asia/Taipei | Asia/Tashkent | Asia/Tbilisi
Asia/Tehran | Asia/Tel_Aviv | Asia/Thimbu | Asia/Thimphu | Asia/Tokyo
Asia/Ujung_Pandang | Asia/Ulaanbaatar | Asia/Ulan_Bator | Asia/Urumqi | Asia/Vientiane
Asia/Vladivostok | Asia/Yakutsk | Asia/Yekaterinburg | Asia/Yerevan |

Précédent | Sommaire | Suivant
List of timezones in the group Arctic | Niveau supérieur | Liste des fuseaux horaires dans le groupe Atlantic (Atlantique)


Liste des fuseaux horaires dans le groupe Atlantic (Atlantique)

Tableau I-6. Atlantic

Atlantic/Azores | Atlantic/Bermuda | Atlantic/Canary | Atlantic/Cape_Verde | Atlantic/Faeroe
Atlantic/Jan_Mayen | Atlantic/Madeira | Atlantic/Reykjavik | Atlantic/South_Georgia | Atlantic/St_Helena
Atlantic/Stanley |  |  |  |

Précédent | Sommaire | Suivant
Liste des fuseaux horaires dans le groupe Asia (Asie) | Niveau supérieur | List of timezones in the group Australia


List of timezones in the group Australia

Tableau I-7. Australia

Australia/ACT | Australia/Adelaide | Australia/Brisbane | Australia/Broken_Hill | Australia/Canberra
Australia/Currie | Australia/Darwin | Australia/Hobart | Australia/LHI | Australia/Lindeman
Australia/Lord_Howe | Australia/Melbourne | Australia/North | Australia/NSW | Australia/Perth
Australia/Queensland | Australia/South | Australia/Sydney | Australia/Tasmania | Australia/Victoria
Australia/West | Australia/Yancowinna |  |  |

Précédent | Sommaire | Suivant
Liste des fuseaux horaires dans le groupe Atlantic (Atlantique) | Niveau supérieur | Liste des fuseaux horaires dans le groupe Europe


Liste des fuseaux horaires dans le groupe Europe

Tableau I-8. Europe

Europe/Amsterdam | Europe/Andorra | Europe/Athens | Europe/Belfast | Europe/Belgrade
Europe/Berlin | Europe/Bratislava | Europe/Brussels | Europe/Bucharest | Europe/Budapest
Europe/Chisinau | Europe/Copenhagen | Europe/Dublin | Europe/Gibraltar | Europe/Guernsey
Europe/Helsinki | Europe/Isle_of_Man | Europe/Istanbul | Europe/Jersey | Europe/Kaliningrad
Europe/Kiev | Europe/Lisbon | Europe/Ljubljana | Europe/London | Europe/Luxembourg
Europe/Madrid | Europe/Malta | Europe/Mariehamn | Europe/Minsk | Europe/Monaco
Europe/Moscow | Europe/Nicosia | Europe/Oslo | Europe/Paris | Europe/Prague
Europe/Riga | Europe/Rome | Europe/Samara | Europe/San_Marino | Europe/Sarajevo
Europe/Simferopol | Europe/Skopje | Europe/Sofia | Europe/Stockholm | Europe/Tallinn
Europe/Tirane | Europe/Tiraspol | Europe/Uzhgorod | Europe/Vaduz | Europe/Vatican
Europe/Vienna | Europe/Vilnius | Europe/Volgograd | Europe/Warsaw | Europe/Zagreb
Europe/Zaporozhye | Europe/Zurich |  |  |

Précédent | Sommaire | Suivant
List of timezones in the group Australia | Niveau supérieur | Liste des fuseaux horaires dans le groupe Inde


Liste des fuseaux horaires dans le groupe Inde

Tableau I-9. Inde

Indian/Antananarivo | Indian/Chagos | Indian/Christmas | Indian/Cocos | Indian/Comoro
Indian/Kerguelen | Indian/Mahe | Indian/Maldives | Indian/Mauritius | Indian/Mayotte
Indian/Reunion |  |  |  |

Précédent | Sommaire | Suivant
Liste des fuseaux horaires dans le groupe Europe | Niveau supérieur | Liste des fuseaux horaires dans le groupe Pacific (Pacifique)


Liste des fuseaux horaires dans le groupe Autres

Tableau I-11. Autres

Brazil/Acre | Brazil/DeNoronha | Brazil/East | Brazil/West | Canada/Atlantic
Canada/Central | Canada/East-Saskatchewan | Canada/Eastern | Canada/Mountain | Canada/Newfoundland
Canada/Pacific | Canada/Saskatchewan | Canada/Yukon | CET | Chile/Continental
Chile/EasterIsland | CST6CDT | Cuba | EET | Egypt
Eire | EST | EST5EDT | Etc/GMT | Etc/GMT+0
Etc/GMT+1 | Etc/GMT+10 | Etc/GMT+11 | Etc/GMT+12 | Etc/GMT+2
Etc/GMT+3 | Etc/GMT+4 | Etc/GMT+5 | Etc/GMT+6 | Etc/GMT+7
Etc/GMT+8 | Etc/GMT+9 | Etc/GMT-0 | Etc/GMT-1 | Etc/GMT-10
Etc/GMT-11 | Etc/GMT-12 | Etc/GMT-13 | Etc/GMT-14 | Etc/GMT-2
Etc/GMT-3 | Etc/GMT-4 | Etc/GMT-5 | Etc/GMT-6 | Etc/GMT-7
Etc/GMT-8 | Etc/GMT-9 | Etc/GMT0 | Etc/Greenwich | Etc/UCT
Etc/Universal | Etc/UTC | Etc/Zulu | Factory | GB
GB-Eire | GMT | GMT+0 | GMT-0 | GMT0
Greenwich | Hongkong | HST | Iceland | Iran
Israel | Jamaica | Japan | Kwajalein | Libya
MET | Mexico/BajaNorte | Mexico/BajaSur | Mexico/General | MST
MST7MDT | Navajo | NZ | NZ-CHAT | Poland
Portugal | PRC | PST8PDT | ROC | ROK
Singapore | Turkey | UCT | Universal | US/Alaska
US/Aleutian | US/Arizona | US/Central | US/East-Indiana | US/Eastern
US/Hawaii | US/Indiana-Starke | US/Michigan | US/Mountain | US/Pacific
US/Pacific-New | US/Samoa | UTC | W-SU | WET
Zulu |  |  |  |

Note : N'utilisez aucun des fuseaux horaires listés ici, ils n'existent que pour des raisons de compatibilité ascendante.

Précédent | Sommaire | Suivant
Liste des fuseaux horaires dans le groupe Pacific (Pacifique) | Niveau supérieur | Catégorie des extensions


Liste des fuseaux horaires dans le groupe Pacific (Pacifique)

Tableau I-10. Pacific

Pacific/Apia | Pacific/Auckland | Pacific/Chatham | Pacific/Easter | Pacific/Efate
Pacific/Enderbury | Pacific/Fakaofo | Pacific/Fiji | Pacific/Funafuti | Pacific/Galapagos
Pacific/Gambier | Pacific/Guadalcanal | Pacific/Guam | Pacific/Honolulu | Pacific/Johnston
Pacific/Kiritimati | Pacific/Kosrae | Pacific/Kwajalein | Pacific/Majuro | Pacific/Marquesas
Pacific/Midway | Pacific/Nauru | Pacific/Niue | Pacific/Norfolk | Pacific/Noumea
Pacific/Pago_Pago | Pacific/Palau | Pacific/Pitcairn | Pacific/Ponape | Pacific/Port_Moresby
Pacific/Rarotonga | Pacific/Saipan | Pacific/Samoa | Pacific/Tahiti | Pacific/Tarawa
Pacific/Tongatapu | Pacific/Truk | Pacific/Wake | Pacific/Wallis | Pacific/Yap

Précédent | Sommaire | Suivant
Liste des fuseaux horaires dans le groupe Inde | Niveau supérieur | Liste des fuseaux horaires dans le groupe Autres


TSRM API

Manuel PHP
Précédent Suivant

Chapitre 47. TSRM API

Table des matières
API Function and Macro reference (work in progress)

API Function and Macro reference (work in progress)

Table des matières
ts_allocate_id -- ...
ts_free_id -- ...
ts_free_thread -- ...
ts_resource_ex -- ...
ts_resource -- ...
tsrm_error_set -- ...
tsrm_error -- ...
tsrm_free_interpreter_context -- ...
tsrm_mutex_alloc -- ...
tsrm_mutex_free -- ...
tsrm_mutex_lock -- ...
tsrm_mutex_unlock -- ...
tsrm_new_interpreter_context -- ...
tsrm_set_interpreter_context -- ...
tsrm_set_new_thread_begin_handler -- ...
tsrm_set_new_thread_end_handler -- ...
tsrm_shutdown -- ...
tsrm_startup -- ...
tsrm_thread_id -- ...
virtual_access -- Check users permissions for a file
virtual_chdir_file -- ...
virtual_chdir -- ...
virtual_chmod -- ...
virtual_chown -- ...
virtual_creat -- ...
virtual_cwd_shutdown -- ...
virtual_cwd_startup -- ...
virtual_file_ex -- ...
virtual_filepath_ex -- ...
virtual_filepath -- ...
virtual_fopen -- ...
virtual_getcwd_ex -- ...
virtual_getcwd -- ...
virtual_lstat -- ...
virtual_mkdir -- ...
virtual_open -- ...
virtual_opendir -- ...
virtual_popen -- ...
virtual_realpath -- ...
virtual_rename -- ...
virtual_rmdir -- ...
virtual_stat -- ...
virtual_unlink -- ...
virtual_utime -- ...
VCWD_ACCESS -- Check users permissions for a file
VCWD_CHDIR_FILE -- ...
VCWD_CHDIR -- ...
VCWD_CHMOD -- ...
VCWD_CHOWN -- ...
VCWD_CREAT -- ...
VCWD_FOPEN -- ...
VCWD_GETCWD -- ...
VCWD_GETWD -- ...
VCWD_LCHOWN -- ...
VCWD_LSTAT -- ...
VCWD_MKDIR -- ...
VCWD_OPEN_MODE -- ...
VCWD_OPEN -- ...
VCWD_OPENDIR -- ...
VCWD_POPEN -- ...
VCWD_REALPATH -- ...
VCWD_RENAME -- ...
VCWD_RMDIR -- ...
VCWD_STAT -- ...
VCWD_UNLINK -- ...
VCWD_UTIME -- ...

Précédent | Sommaire | Suivant
ZEND_WRONG_PARAM_COUNT | Niveau supérieur | ts_allocate_id


Guide de nommage de l'espace utilisateur

Manuel PHP
Précédent Suivant

Annexe S. Guide de nommage de l'espace utilisateur

Table des matières
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 vude 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

Précédent | Sommaire | Suivant
Liste des tokens de l'analyseur | Niveau supérieur | Règles


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 une règle de nommage spécifique (il y a quelques exceptions pour les anciennes classes et fonctions).

  • 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 préfixé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()

Précédent | Sommaire | Suivant
Guide de nommage de l'espace utilisateur | Niveau supérieur | Astuces


Astuces

Si vous voulez écrire du code portable, il est recommandé de préfixer (ou suffixer) tout ce qui va dans l'espace de noms global avec un préfixe non commun de 3-4 lettres (ou suffixe) séparé par un underscore. Il est recommandé, afin d'éviter des problèmes d'espace de noms avec d'autres codes de l'espace utilisateur, de faire en sorte que les projets recherchent les préfixes (ou les suffixes) utilisés dans les autres projets et de choisir vos préfixes (ou suffixe) en fonction. Exemples :

  • MyPx_someFunc()

  • Foo_Date

  • $asdf_dbh

Précédent | Sommaire | Suivant
Règles | Niveau supérieur | À propos du manuel


Données (RFC 2397)

Le gestionnaire de flux data: (RFC 2397) est disponible depuis PHP 5.2.0.

Exemple N-8. Affichage du contenu de data://

<?php
// Affiche "I love PHP"
echo file_get_contents('data://text/plain;base64,SSBsb3ZlIFBIUAo=');
?>

Exemple N-9. 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'];
?>

Tableau N-8. Résumé du gestionnaire

Attribut | Supporté
Restreint par allow_url_fopen | Non
Restreint par allow_url_include | Oui
Autorisé en lecture | Oui
Autorisé en écriture | Non
Autorisé en ajout | Non
Autorisé en lecture et en écriture simutané | Non
Supporte stat() | Non
Supporte unlink() | Non
Supporte rename() | Non
Supporte mkdir() | Non
Supporte rmdir() | Non

Précédent | Sommaire | Suivant
Flux compressés | Niveau supérieur | Shell sécurisé 2


Gestionnaire de flux

expect:// PHP 4.3.0 et supérieur (PECL)

  • expect://command

Ce gestionnaire est disponible par défaut : Pour pouvoir utiliser le gestionnaire expect://, vous devez installer l'extension Expect disponible depuis PECL.

Les flux ouverts avec le gestionnaire expect:// permettent d'accéder à stdio, stdout et stderr via PTY.

Tableau N-13. Résumé du gestionnaire

Attribut | Supporté
Restreint par allow_url_fopen | Non
Permet la lecture | Oui
Permet l'écriture | Oui
Permet l'ajout | Oui
Permet l'écriture et la lecture 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

Précédent | Sommaire | Suivant
Flux Audio | Niveau supérieur | Liste des filtres standards


Socket

Cette section contient les options de contexte supportées par les gestionnaires qui travaillent via les sockets, comme tcp, http ou ftp.

Depuis PHP 5.1.0, une seule option est supportée, bindto, qui peut être utilisée 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 (vous pouvez définir l'IP ou le numéro du port à 0 si vous voulez laisser le choix au système).

Note : Sachant que FTP crée deux sockets pendant une opération normale, vous ne pouvez pas spécifier le numéro du port dans l'option bindto. Donc, la seule syntaxe supportée est ip:0 pour le gestionnaire FTP.

Exemple N-1. Quelques exemples sur l'utilisation de l'option 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 le port '7000'
$opts = array('socket' =>
array('bindto' => '0:7000'));

// Création du contexte...
$context = stream_context_create($opts);

// ...et on l'utilise pour récupérer les données
echo file_get_contents('http://www.example.com', false, $context);

?>

Précédent | Sommaire | Suivant
Liste des protocoles supportés | Niveau supérieur | HTTP et HTTPS


ZEND_WRONG_PARAM_COUNT_WITH_RETVAL

ZEND_WRONG_PARAM_COUNT_WITH_RETVAL -- Generate standard error message and return custom value

Description

#include <zend_API.h>

#include <zend_API.h>

void ZEND_WRONG_PARAM_COUNT_WITH_RETVAL ( mixed return_value )

Note : This macro is part of the API but not used in any bundled or PECL extension

ZEND_WRONG_PARAM_COUNT_WITH_RETVAL() produces a standard warning message for functions or class methods that have been called with a wrong number of parameters and returns its parameter to the calling function. The macro automaticly puts the right function name and class name (if needed) into the error message.

The return_value parameter is returned to the calling function of the current one.

ZEND_WRONG_PARAM_COUNT_WITH_RETVAL() is actually a convenience wrapper for zend_wrong_param_count().

Précédent | Sommaire | Suivant
ZEND_WRITE | Niveau supérieur | ZEND_WRONG_PARAM_COUNT


add_assoc_bool

add_assoc_bool -- Add a bool value to an assoc array

Description

#include <zend_API.h>

int add_assoc_bool ( zval* arg, char* key, int b )

...

Liste de paramètres

arg

...

key

...

b

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_bool_ex | Niveau supérieur | add_assoc_double_ex


add_assoc_bool_ex

add_assoc_bool_ex -- Add a bool value to an assoc array with binary safe key

Description

#include <zend_API.h>

int add_assoc_bool_ex ( zval* arg, char* key, uint key_len, int b )

...

Liste de paramètres

arg

...

key

...

key_len

...

b

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
API Function and Macro reference (work in progress) | Niveau supérieur | add_assoc_bool


add_assoc_double

add_assoc_double -- Add a double value to an assoc array

Description

#include <zend_API.h>

int add_assoc_double ( zval* arg, char* key, double d )

...

Liste de paramètres

arg

...

key

...

d

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_double_ex | Niveau supérieur | add_assoc_function


add_assoc_double_ex

add_assoc_double_ex -- Add a double value to an assoc array with binary safe key

Description

#include <zend_API.h>

int add_assoc_double_ex ( zval* arg, char* key, uint key_len, double d )

...

Liste de paramètres

arg

...

key

...

key_len

...

d

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_bool | Niveau supérieur | add_assoc_double


add_assoc_function

add_assoc_function -- Add a function pointer to an assoc array

Description

#include <zend_API.h>

int add_assoc_function ( zval* arg, char* key, void (*function_ptr)(INTERNAL_FUNCTION_PARAMETERS) )

...

Liste de paramètres

arg

...

key

...

(*function_ptr)(INTERNAL_FUNCTION_PARAMETERS)

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_double | Niveau supérieur | add_assoc_long_ex


add_assoc_long

add_assoc_long -- Add a long value to an assoc array

Description

#include <zend_API.h>

int add_assoc_long ( zval* arg, char* key, long n )

...

Liste de paramètres

arg

...

key

...

n

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_long_ex | Niveau supérieur | add_assoc_null_ex


add_assoc_long_ex

add_assoc_long_ex -- Add a long value to an assoc array with binary safe key

Description

#include <zend_API.h>

int add_assoc_long_ex ( zval* arg, char* key, uint key_len, long n )

...

Liste de paramètres

arg

...

key

...

key_len

...

n

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_function | Niveau supérieur | add_assoc_long


add_assoc_null

add_assoc_null -- Add a null value to an assoc array

Description

#include <zend_API.h>

int add_assoc_null ( zval* arg, char* key )

...

Liste de paramètres

arg

...

key

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_null_ex | Niveau supérieur | add_assoc_resource_ex


add_assoc_null_ex

add_assoc_null_ex -- Add a null value to an assoc array with binary safe key

Description

#include <zend_API.h>

int add_assoc_null_ex ( zval* arg, char* key, uint key_len )

...

Liste de paramètres

arg

...

key

...

key_len

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_long | Niveau supérieur | add_assoc_null


add_assoc_resource

add_assoc_resource -- Add a resource value to an assoc array

Description

#include <zend_API.h>

int add_assoc_resource ( zval* arg, char* key, int r )

...

Liste de paramètres

arg

...

key

...

r

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_resource_ex | Niveau supérieur | add_assoc_string_ex


add_assoc_resource_ex

add_assoc_resource_ex -- Add a resource value to an assoc array with binary safe key

Description

#include <zend_API.h>

int add_assoc_resource_ex ( zval* arg, char* key, uint key_len, int r )

...

Liste de paramètres

arg

...

key

...

key_len

...

r

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_null | Niveau supérieur | add_assoc_resource


add_assoc_string

add_assoc_string -- Add a string value to an assoc array

Description

#include <zend_API.h>

int add_assoc_string ( zval* arg, char* key, char* str, int duplicate )

...

Liste de paramètres

arg

...

key

...

str

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_string_ex | Niveau supérieur | add_assoc_stringl_ex


add_assoc_string_ex

add_assoc_string_ex -- Add a string value to an assoc array with binary safe key

Description

#include <zend_API.h>

int add_assoc_string_ex ( zval* arg, char* key, uint key_len, char* str, int duplicate )

...

Liste de paramètres

arg

...

key

...

key_len

...

str

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_resource | Niveau supérieur | add_assoc_string


add_assoc_stringl

add_assoc_stringl -- Add a binary safe string value to an assoc array

Description

#include <zend_API.h>

int add_assoc_stringl ( zval* arg, char* key, char* str, uint length, int duplicate )

...

Liste de paramètres

arg

...

key

...

str

...

length

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_stringl_ex | Niveau supérieur | add_assoc_unicode_ex


add_assoc_stringl_ex

add_assoc_stringl_ex -- Add a binary safe string value to an assoc array with binary safe key

Description

#include <zend_API.h>

int add_assoc_stringl_ex ( zval* arg, char* key, uint key_len, char* str, uint length, int duplicate )

...

Liste de paramètres

arg

...

key

...

key_len

...

str

...

length

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_string | Niveau supérieur | add_assoc_stringl


add_assoc_unicode

add_assoc_unicode -- Add a binary safe unicode_string value to an assoc array with binary safe key

Description

#include <zend_API.h>

int add_assoc_unicode ( zval* arg, char* key, void* str, int duplicate )

...

Liste de paramètres

arg

...

key

...

str

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_unicode_ex | Niveau supérieur | add_assoc_unicodel_ex


add_assoc_unicode_ex

add_assoc_unicode_ex -- Add a unicode_string value to an assoc array with binary safe key

Description

#include <zend_API.h>

int add_assoc_unicode_ex ( zval* arg, char* key, uint key_len, void* str, int duplicate )

...

Liste de paramètres

arg

...

key

...

key_len

...

str

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_stringl | Niveau supérieur | add_assoc_unicode


add_assoc_unicodel

add_assoc_unicodel -- Add a binary safe unicode_string value to an assoc array

Description

#include <zend_API.h>

int add_assoc_unicodel ( zval* arg, char* key, void* str, uint length, int duplicate )

...

Liste de paramètres

arg

...

key

...

str

...

length

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_unicodel_ex | Niveau supérieur | add_assoc_unset


add_assoc_unicodel_ex

add_assoc_unicodel_ex -- Add a binary safe unicode_string value to an assoc array with binary safe key

Description

#include <zend_API.h>

int add_assoc_unicodel_ex ( zval* arg, char* key, uint key_len, void* str, uint length, int duplicate )

...

Liste de paramètres

arg

...

key

...

key_len

...

str

...

length

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_unicode | Niveau supérieur | add_assoc_unicodel


add_assoc_unset

add_assoc_unset -- ...

Description

#include <zend_API.h>

int add_assoc_unset ( zval* arg, char* key )

...

Liste de paramètres

arg

...

key

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_unicodel | Niveau supérieur | add_assoc_zval_ex


add_assoc_zval

add_assoc_zval -- Add a zval value to an assoc array

Description

#include <zend_API.h>

int add_assoc_zval ( zval* arg, char* key, zval* value )

...

Liste de paramètres

arg

...

key

...

value

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_zval_ex | Niveau supérieur | add_get_assoc_string_ex


add_assoc_zval_ex

add_assoc_zval_ex -- Add a zval value to an assoc array with binary safe key

Description

#include <zend_API.h>

int add_assoc_zval_ex ( zval* arg, char* key, uint key_len, zval* value )

...

Liste de paramètres

arg

...

key

...

key_len

...

value

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_unset | Niveau supérieur | add_assoc_zval


add_get_assoc_string

add_get_assoc_string -- ...

Description

#include <zend_API.h>

int add_get_assoc_string ( zval* arg, char* key, char* str, void** dest, int duplicate )

...

Liste de paramètres

arg

...

key

...

str

...

dest

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_get_assoc_string_ex | Niveau supérieur | add_get_assoc_stringl_ex


add_get_assoc_string_ex

add_get_assoc_string_ex -- ...

Description

#include <zend_API.h>

int add_get_assoc_string_ex ( zval* arg, char* key, uint key_len, char* str, void** dest, int duplicate )

...

Liste de paramètres

arg

...

key

...

key_len

...

str

...

dest

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_assoc_zval | Niveau supérieur | add_get_assoc_string


add_get_assoc_stringl

add_get_assoc_stringl -- ...

Description

#include <zend_API.h>

int add_get_assoc_stringl ( zval* arg, char* key, char* str, uint length, void** dest, int duplicate )

...

Liste de paramètres

arg

...

key

...

str

...

length

...

dest

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_get_assoc_stringl_ex | Niveau supérieur | add_get_index_binary


add_get_assoc_stringl_ex

add_get_assoc_stringl_ex -- ...

Description

#include <zend_API.h>

int add_get_assoc_stringl_ex ( zval* arg, char* key, uint key_len, char* str, uint length, void** dest, int duplicate )

...

Liste de paramètres

arg

...

key

...

key_len

...

str

...

length

...

dest

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_get_assoc_string | Niveau supérieur | add_get_assoc_stringl


add_get_index_binary

add_get_index_binary -- ...

Description

#include <zend_API.h>

int add_get_index_binary ( zval* arg, ulong idx, char* str, void** dest, int duplicate )

...

Liste de paramètres

arg

...

idx

...

str

...

dest

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_get_assoc_stringl | Niveau supérieur | add_get_index_binaryl


add_get_index_binaryl

add_get_index_binaryl -- ...

Description

#include <zend_API.h>

int add_get_index_binaryl ( zval* arg, ulong idx, char* str, uint length, void** dest, int duplicate )

...

Liste de paramètres

arg

...

idx

...

str

...

length

...

dest

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_get_index_binary | Niveau supérieur | add_get_index_double


add_get_index_double

add_get_index_double -- ...

Description

#include <zend_API.h>

int add_get_index_double ( zval* arg, ulong idx, double d, void** dest )

...

Liste de paramètres

arg

...

idx

...

d

...

dest

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_get_index_binaryl | Niveau supérieur | add_get_index_long


add_get_index_long

add_get_index_long -- ...

Description

#include <zend_API.h>

int add_get_index_long ( zval* arg, ulong idx, long l, void** dest )

...

Liste de paramètres

arg

...

idx

...

l

...

dest

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_get_index_double | Niveau supérieur | add_get_index_string


add_get_index_string

add_get_index_string -- ...

Description

#include <zend_API.h>

int add_get_index_string ( zval* arg, ulong idx, char* str, void** dest, int duplicate )

...

Liste de paramètres

arg

...

idx

...

str

...

dest

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_get_index_long | Niveau supérieur | add_get_index_stringl


add_get_index_stringl

add_get_index_stringl -- ...

Description

#include <zend_API.h>

int add_get_index_stringl ( zval* arg, ulong idx, char* str, uint length, void** dest, int duplicate )

...

Liste de paramètres

arg

...

idx

...

str

...

length

...

dest

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_get_index_string | Niveau supérieur | add_get_index_unicode


add_get_index_unicode

add_get_index_unicode -- ...

Description

#include <zend_API.h>

int add_get_index_unicode ( zval* arg, ulong idx, UChar* str, void** dest, int duplicate )

...

Liste de paramètres

arg

...

idx

...

str

...

dest

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_get_index_stringl | Niveau supérieur | add_get_index_unicodel


add_get_index_unicodel

add_get_index_unicodel -- ...

Description

#include <zend_API.h>

int add_get_index_unicodel ( zval* arg, ulong idx, UChar* str, uint length, void** dest, int duplicate )

...

Liste de paramètres

arg

...

idx

...

str

...

length

...

dest

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_get_index_unicode | Niveau supérieur | add_index_binary


add_index_binary

add_index_binary -- Add binary_string value to assoc array using numeric index

Description

#include <zend_API.h>

int add_index_binary ( zval* arg, ulong idx, char* str, int duplicate, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

idx

...

str

...

duplicate

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_get_index_unicodel | Niveau supérieur | add_index_binaryl


add_index_binaryl

add_index_binaryl -- Add binary safe binary_string value to assoc array using numeric index

Description

#include <zend_API.h>

int add_index_binaryl ( zval* arg, ulong idx, char* str, uint length, int duplicate, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

idx

...

str

...

length

...

duplicate

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_index_binary | Niveau supérieur | add_index_bool


add_index_bool

add_index_bool -- Add bool value to assoc array using numeric index

Description

#include <zend_API.h>

int add_index_bool ( zval* arg, ulong idx, int b )

...

Liste de paramètres

arg

...

idx

...

b

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_index_binaryl | Niveau supérieur | add_index_double


add_index_double

add_index_double -- Add double value to assoc array using numeric index

Description

#include <zend_API.h>

int add_index_double ( zval* arg, ulong idx, double d )

...

Liste de paramètres

arg

...

idx

...

d

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_index_bool | Niveau supérieur | add_index_long


add_index_long

add_index_long -- Add long value to assoc array using numeric index

Description

#include <zend_API.h>

int add_index_long ( zval* arg, ulong idx, long n )

...

Liste de paramètres

arg

...

idx

...

n

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_index_double | Niveau supérieur | add_index_null


add_index_null

add_index_null -- Add null value to assoc array using numeric index

Description

#include <zend_API.h>

int add_index_null ( zval* arg, ulong idx )

...

Liste de paramètres

arg

...

idx

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_index_long | Niveau supérieur | add_index_resource


add_index_resource

add_index_resource -- Add resource value to assoc array using numeric index

Description

#include <zend_API.h>

int add_index_resource ( zval* arg, ulong idx, int r )

...

Liste de paramètres

arg

...

idx

...

r

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_index_null | Niveau supérieur | add_index_string


add_index_string

add_index_string -- Add string value to assoc array using numeric index

Description

#include <zend_API.h>

int add_index_string ( zval* arg, ulong idx, char* str, int duplicate )

...

Liste de paramètres

arg

...

idx

...

str

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_index_resource | Niveau supérieur | add_index_stringl


add_index_stringl

add_index_stringl -- Add binary safe string value to assoc array using numeric index

Description

#include <zend_API.h>

int add_index_stringl ( zval* arg, ulong idx, char* str, uint length, int duplicate )

...

Liste de paramètres

arg

...

idx

...

str

...

length

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_index_string | Niveau supérieur | add_index_unicode


add_index_unicode

add_index_unicode -- Add unicode value to assoc array using numeric index

Description

#include <zend_API.h>

int add_index_unicode ( zval* arg, ulong idx, UChar* str, int duplicate )

...

Liste de paramètres

arg

...

idx

...

str

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_index_stringl | Niveau supérieur | add_index_unicodel


add_index_unicodel

add_index_unicodel -- Add binary safe unicode value to assoc array using numeric index

Description

#include <zend_API.h>

int add_index_unicodel ( zval* arg, ulong idx, UChar* str, uint length, int duplicate )

...

Liste de paramètres

arg

...

idx

...

str

...

length

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_index_unicode | Niveau supérieur | add_index_unset


add_index_unset

add_index_unset -- Add unset value to assoc array using numeric index

Description

#include <zend_API.h>

int add_index_unset ( zval* arg, ... key )

...

Liste de paramètres

arg

...

key

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_index_unicodel | Niveau supérieur | add_index_zval


add_index_zval

add_index_zval -- Add zval value to assoc array using numeric index

Description

#include <zend_API.h>

int add_index_zval ( zval* arg, ulong index, zval* value )

...

Liste de paramètres

arg

...

index

...

value

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_index_unset | Niveau supérieur | add_method


add_method

add_method -- ...

Description

#include <zend_API.h>

int add_method ( zval* arg, char* key, ... method )

...

Liste de paramètres

arg

...

key

...

method

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_index_zval | Niveau supérieur | add_next_index_binary


add_next_index_binary

add_next_index_binary -- Add binary_string value to assoc array using next free numeric index

Description

#include <zend_API.h>

int add_next_index_binary ( zval* arg, char* str, int duplicate )

...

Liste de paramètres

arg

...

str

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_method | Niveau supérieur | add_next_index_binaryl


add_next_index_binaryl

add_next_index_binaryl -- Add binary safe binary_string value to assoc array using next free numeric index

Description

#include <zend_API.h>

int add_next_index_binaryl ( zval* arg, char* str, uint length, int duplicate )

...

Liste de paramètres

arg

...

str

...

length

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_next_index_binary | Niveau supérieur | add_next_index_bool


add_next_index_bool

add_next_index_bool -- Add bool value to assoc array using next free numeric index

Description

#include <zend_API.h>

int add_next_index_bool ( zval* arg, int b )

...

Liste de paramètres

arg

...

b

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_next_index_binaryl | Niveau supérieur | add_next_index_double


add_next_index_double

add_next_index_double -- Add double value to assoc array using next free numeric index

Description

#include <zend_API.h>

int add_next_index_double ( zval* arg, double d )

...

Liste de paramètres

arg

...

d

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_next_index_bool | Niveau supérieur | add_next_index_long


add_next_index_long

add_next_index_long -- Add long value to assoc array using next free numeric index

Description

#include <zend_API.h>

int add_next_index_long ( zval* arg, long n )

...

Liste de paramètres

arg

...

n

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_next_index_double | Niveau supérieur | add_next_index_null


add_next_index_null

add_next_index_null -- Add null value to assoc array using next free numeric index

Description

#include <zend_API.h>

int add_next_index_null ( zval* arg )

...

Liste de paramètres

arg

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_next_index_long | Niveau supérieur | add_next_index_resource


add_next_index_resource

add_next_index_resource -- Add resource value to assoc array using next free numeric index

Description

#include <zend_API.h>

int add_next_index_resource ( zval* arg, int r )

...

Liste de paramètres

arg

...

r

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_next_index_null | Niveau supérieur | add_next_index_string


add_next_index_string

add_next_index_string -- Add string value to assoc array using next free numeric index

Description

#include <zend_API.h>

int add_next_index_string ( zval* arg, char* str, int duplicate )

...

Liste de paramètres

arg

...

str

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_next_index_resource | Niveau supérieur | add_next_index_stringl


add_next_index_stringl

add_next_index_stringl -- Add binary safe string value to assoc array using next free numeric index

Description

#include <zend_API.h>

int add_next_index_stringl ( zval* arg, char* str, uint length, int duplicate )

...

Liste de paramètres

arg

...

str

...

length

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_next_index_string | Niveau supérieur | add_next_index_unicode


add_next_index_unicode

add_next_index_unicode -- Add unicode value to assoc array using next free numeric index

Description

#include <zend_API.h>

int add_next_index_unicode ( zval* arg, UChar* str, int duplicate )

...

Liste de paramètres

arg

...

str

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_next_index_stringl | Niveau supérieur | add_next_index_unicodel


add_next_index_unicodel

add_next_index_unicodel -- Add binary safe unicode value to assoc array using next free numeric index

Description

#include <zend_API.h>

int add_next_index_unicodel ( zval* arg, UChar* str, uint length, int duplicate )

...

Liste de paramètres

arg

...

str

...

length

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_next_index_unicode | Niveau supérieur | add_next_index_unset


add_next_index_unset

add_next_index_unset -- Add unset value to assoc array using next free numeric index

Description

#include <zend_API.h>

int add_next_index_unset ( zval* arg )

...

Liste de paramètres

arg

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_next_index_unicodel | Niveau supérieur | add_next_index_zval


add_next_index_zval

add_next_index_zval -- Add zval value to assoc array using next free numeric index

Description

#include <zend_API.h>

int add_next_index_zval ( zval* arg, zval* value )

...

Liste de paramètres

arg

...

value

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_next_index_unset | Niveau supérieur | add_property_ascii_string_ex


add_property_ascii_string

add_property_ascii_string -- ...

Description

#include <zend_API.h>

int add_property_ascii_string ( zval* arg, char* key, char* str, int duplicate )

...

Liste de paramètres

arg

...

key

...

str

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_ascii_string_ex | Niveau supérieur | add_property_ascii_stringl_ex


add_property_ascii_string_ex

add_property_ascii_string_ex -- ...

Description

#include <zend_API.h>

int add_property_ascii_string_ex ( zval* arg, char* key, uint key_len, char* str, int duplicate, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

key

...

key_len

...

str

...

duplicate

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_next_index_zval | Niveau supérieur | add_property_ascii_string


add_property_ascii_stringl

add_property_ascii_stringl -- ...

Description

#include <zend_API.h>

int add_property_ascii_stringl ( zval* arg, char* key, char* str, uint length, int duplicate )

...

Liste de paramètres

arg

...

key

...

str

...

length

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_ascii_stringl_ex | Niveau supérieur | add_property_bool_ex


add_property_ascii_stringl_ex

add_property_ascii_stringl_ex -- ...

Description

#include <zend_API.h>

int add_property_ascii_stringl_ex ( zval* arg, char* key, uint key_len, char* str, uint length, int duplicate, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

key

...

key_len

...

str

...

length

...

duplicate

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_ascii_string | Niveau supérieur | add_property_ascii_stringl


add_property_bool

add_property_bool -- ...

Description

#include <zend_API.h>

int add_property_bool ( zval* arg, char* key, int b )

...

Liste de paramètres

arg

...

key

...

b

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_bool_ex | Niveau supérieur | add_property_double_ex


add_property_bool_ex

add_property_bool_ex -- ...

Description

#include <zend_API.h>

int add_property_bool_ex ( zval* arg, char* key, uint key_len, int b, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

key

...

key_len

...

b

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_ascii_stringl | Niveau supérieur | add_property_bool


add_property_double

add_property_double -- ...

Description

#include <zend_API.h>

int add_property_double ( zval* arg, char* key, double d )

...

Liste de paramètres

arg

...

key

...

d

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_double_ex | Niveau supérieur | add_property_long_ex


add_property_double_ex

add_property_double_ex -- ...

Description

#include <zend_API.h>

int add_property_double_ex ( zval* arg, char* key, uint key_len, double d, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

key

...

key_len

...

d

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_bool | Niveau supérieur | add_property_double


add_property_long

add_property_long -- ...

Description

#include <zend_API.h>

int add_property_long ( zval* arg, char* key, ... n )

...

Liste de paramètres

arg

...

key

...

n

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_long_ex | Niveau supérieur | add_property_null_ex


add_property_long_ex

add_property_long_ex -- ...

Description

#include <zend_API.h>

int add_property_long_ex ( zval* arg, char* key, uint key_len, long l, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

key

...

key_len

...

l

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_double | Niveau supérieur | add_property_long


add_property_null

add_property_null -- ...

Description

#include <zend_API.h>

int add_property_null ( zval* arg, char* key )

...

Liste de paramètres

arg

...

key

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_null_ex | Niveau supérieur | add_property_resource_ex


add_property_null_ex

add_property_null_ex -- ...

Description

#include <zend_API.h>

int add_property_null_ex ( zval* arg, char* key, uint key_len, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

key

...

key_len

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_long | Niveau supérieur | add_property_null


add_property_resource

add_property_resource -- ...

Description

#include <zend_API.h>

int add_property_resource ( zval* arg, char* key, long r )

...

Liste de paramètres

arg

...

key

...

r

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_resource_ex | Niveau supérieur | add_property_rt_string_ex


add_property_resource_ex

add_property_resource_ex -- ...

Description

#include <zend_API.h>

int add_property_resource_ex ( zval* arg, char* key, uint key_len, long r, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

key

...

key_len

...

r

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_null | Niveau supérieur | add_property_resource


add_property_rt_string

add_property_rt_string -- ...

Description

#include <zend_API.h>

int add_property_rt_string ( zval* arg, char* key, char* str, int duplicate )

...

Liste de paramètres

arg

...

key

...

str

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_rt_string_ex | Niveau supérieur | add_property_rt_stringl_ex


add_property_rt_string_ex

add_property_rt_string_ex -- ...

Description

#include <zend_API.h>

int add_property_rt_string_ex ( zval* arg, char* key, uint key_len, char* str, int duplicate, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

key

...

key_len

...

str

...

duplicate

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_resource | Niveau supérieur | add_property_rt_string


add_property_rt_stringl

add_property_rt_stringl -- ...

Description

#include <zend_API.h>

int add_property_rt_stringl ( zval* arg, char* key, char* str, uint length, int duplicate )

...

Liste de paramètres

arg

...

key

...

str

...

length

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_rt_stringl_ex | Niveau supérieur | add_property_string_ex


add_property_rt_stringl_ex

add_property_rt_stringl_ex -- ...

Description

#include <zend_API.h>

int add_property_rt_stringl_ex ( zval* arg, char* key, uint key_len, char* str, uint length, int duplicate, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

key

...

key_len

...

str

...

length

...

duplicate

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_rt_string | Niveau supérieur | add_property_rt_stringl


add_property_string

add_property_string -- ...

Description

#include <zend_API.h>

int add_property_string ( zval* arg, char* key, char* str, int duplicate )

...

Liste de paramètres

arg

...

key

...

str

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_string_ex | Niveau supérieur | add_property_stringl_ex


add_property_string_ex

add_property_string_ex -- ...

Description

#include <zend_API.h>

int add_property_string_ex ( zval* arg, char* key, uint key_len, char* str, int duplicate, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

key

...

key_len

...

str

...

duplicate

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_rt_stringl | Niveau supérieur | add_property_string


add_property_stringl

add_property_stringl -- ...

Description

#include <zend_API.h>

int add_property_stringl ( zval* arg, char* key, char* str, uint length, int duplicate )

...

Liste de paramètres

arg

...

key

...

str

...

length

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_stringl_ex | Niveau supérieur | add_property_unicode_ex


add_property_stringl_ex

add_property_stringl_ex -- ...

Description

#include <zend_API.h>

int add_property_stringl_ex ( zval* arg, char* key, uint key_len, char* str, uint length, int duplicate, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

key

...

key_len

...

str

...

length

...

duplicate

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_string | Niveau supérieur | add_property_stringl


add_property_unicode

add_property_unicode -- ...

Description

#include <zend_API.h>

int add_property_unicode ( zval* arg, char* key, UChar* str, int duplicate )

...

Liste de paramètres

arg

...

key

...

str

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_unicode_ex | Niveau supérieur | add_property_unicodel_ex


add_property_unicode_ex

add_property_unicode_ex -- ...

Description

#include <zend_API.h>

int add_property_unicode_ex ( zval* arg, char* key, uint key_len, UChar* str, int duplicate, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

key

...

key_len

...

str

...

duplicate

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_stringl | Niveau supérieur | add_property_unicode


add_property_unicodel

add_property_unicodel -- ...

Description

#include <zend_API.h>

int add_property_unicodel ( zval* arg, char* key, UChar* str, uint length, int duplicate )

...

Liste de paramètres

arg

...

key

...

str

...

length

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_unicodel_ex | Niveau supérieur | add_property_unset


add_property_unicodel_ex

add_property_unicodel_ex -- ...

Description

#include <zend_API.h>

int add_property_unicodel_ex ( zval* arg, char* key, uint key_len, UChar* str, uint length, int duplicate, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

key

...

key_len

...

str

...

length

...

duplicate

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_unicode | Niveau supérieur | add_property_unicodel


add_property_unset

add_property_unset -- ...

Description

#include <zend_API.h>

int add_property_unset ( zval* arg, char* key )

...

Liste de paramètres

arg

...

key

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_unicodel | Niveau supérieur | add_property_zval_ex


add_property_zval

add_property_zval -- ...

Description

#include <zend_API.h>

int add_property_zval ( zval* arg, char* key, zval* value )

...

Liste de paramètres

arg

...

key

...

value

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_zval_ex | Niveau supérieur | add_u_assoc_zval_ex


add_property_zval_ex

add_property_zval_ex -- ...

Description

#include <zend_API.h>

int add_property_zval_ex ( zval* arg, char* key, uint key_len, zval* value, magic TSRMLS_DC )

...

Liste de paramètres

arg

...

key

...

key_len

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_unset | Niveau supérieur | add_property_zval


add_u_assoc_zval

add_u_assoc_zval -- ...

Description

#include <zend_API.h>

int add_u_assoc_zval ( zval* arg, zend_uchar type, void* key, zval* value )

...

Liste de paramètres

arg

...

type

...

key

...

value

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_u_assoc_zval_ex | Niveau supérieur | array_init


add_u_assoc_zval_ex

add_u_assoc_zval_ex -- ...

Description

#include <zend_API.h>

int add_u_assoc_zval_ex ( zval* arg, zend_uchar type, void* key, uint key_len, zval* value )

...

Liste de paramètres

arg

...

type

...

key

...

key_len

...

value

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_property_zval | Niveau supérieur | add_u_assoc_zval


array_init

array_init -- ...

Description

#include <zend_API.h>

int array_init ( zval* arg )

...

Liste de paramètres

arg

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
add_u_assoc_zval | Niveau supérieur | call_user_function_ex


call_user_function

call_user_function -- ...

Description

#include <zend_API.h>

int call_user_function ( HashTable* function_table, zval** object_pp, zval* function_name, zval* retval_ptr, zend_uint param_count, zval* params[], magic TSRMLS_DC )

...

Liste de paramètres

function_table

...

object_pp

...

function_name

...

retval_ptr

...

param_count

...

params[]

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
call_user_function_ex | Niveau supérieur | compile_file


call_user_function_ex

call_user_function_ex -- ...

Description

#include <zend_API.h>

int call_user_function_ex ( HashTable* function_table, zval** object_pp, zval* function_name, zval** retval_ptr_ptr, zend_uint param_count, zval** params[], int no_separation, HashTable* symbol_table, magic TSRMLS_DC )

...

Liste de paramètres

function_table

...

object_pp

...

function_name

...

retval_ptr_ptr

...

param_count

...

params[]

...

no_separation

...

symbol_table

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
array_init | Niveau supérieur | call_user_function


compile_file

compile_file -- ...

Description

#include <zend_compile.h>

zend_op_array* compile_file ( zend_file_handle* file_handle, int type, magic TSRMLS_DC )

...

Liste de paramètres

file_handle

...

type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
call_user_function | Niveau supérieur | compile_filename


compile_filename

compile_filename -- ...

Description

#include <zend_compile.h>

zend_op_array* compile_filename ( int type, zval* filename, magic TSRMLS_DC )

...

Liste de paramètres

type

...

filename

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
compile_file | Niveau supérieur | compile_string


compile_string

compile_string -- ...

Description

#include <zend_compile.h>

zend_op_array* compile_string ( zval* source_string, char* filename, magic TSRMLS_DC )

...

Liste de paramètres

source_string

...

filename

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
compile_filename | Niveau supérieur | destroy_op_array


destroy_op_array

destroy_op_array -- ...

Description

#include <zend_compile.h>

void destroy_op_array ( zend_op_array* op_array, magic TSRMLS_DC )

...

Liste de paramètres

op_array

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
compile_string | Niveau supérieur | destroy_zend_class


destroy_zend_class

destroy_zend_class -- ...

Description

#include <zend_compile.h>

void destroy_zend_class ( zend_class_entry** pce )

...

Liste de paramètres

pce

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
destroy_op_array | Niveau supérieur | destroy_zend_function


destroy_zend_function

destroy_zend_function -- ...

Description

#include <zend_compile.h>

void destroy_zend_function ( zend_function* function, magic TSRMLS_DC )

...

Liste de paramètres

function

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
destroy_zend_class | Niveau supérieur | display_ini_entries


DISPLAY_INI_ENTRIES

DISPLAY_INI_ENTRIES -- ...

Description

#include <zend_ini.h>

void DISPLAY_INI_ENTRIES ( ... )

...

Liste de paramètres

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zval_update_constant | Niveau supérieur | INI_BOOL


do_bind_class

do_bind_class -- ...

Description

#include <zend_compile.h>

zend_class_entry* do_bind_class ( zend_op* opline, HashTable* class_table, zend_bool compile_time, magic TSRMLS_DC )

...

Liste de paramètres

opline

...

class_table

...

compile_time

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
display_ini_entries | Niveau supérieur | do_bind_function


do_bind_function

do_bind_function -- ...

Description

#include <zend_compile.h>

int do_bind_function ( zend_op* opline, HashTable* function_table, zend_bool compile_time )

...

Liste de paramètres

opline

...

function_table

...

compile_time

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
do_bind_class | Niveau supérieur | do_bind_inherited_class


do_bind_inherited_class

do_bind_inherited_class -- ...

Description

#include <zend_compile.h>

zend_class_entry* do_bind_inherited_class ( zend_op* opline, HashTable* class_table, zend_class_entry* parent_ce, zend_bool compile_time, magic TSRMLS_DC )

...

Liste de paramètres

opline

...

class_table

...

parent_ce

...

compile_time

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
do_bind_function | Niveau supérieur | estrndup_rel


estrndup

estrndup -- ...

Description

#include <zend_alloc.h>

char* estrndup ( const char* s, unsigned int length )

...

Liste de paramètres

s

...

length

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
estrndup_rel | Niveau supérieur | eustrdup


estrndup_rel

estrndup_rel -- ...

Description

#include <zend_alloc.h>

char* estrndup_rel ( const char* s, unsigned int length )

...

Liste de paramètres

s

...

length

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
do_bind_inherited_class | Niveau supérieur | estrndup


eustrdup

eustrdup -- ...

Description

#include <zend_alloc.h>

UChar* eustrdup ( const UChar* s )

...

Liste de paramètres

s

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
estrndup | Niveau supérieur | eustrndup_rel


eustrndup

eustrndup -- ...

Description

#include <zend_alloc.h>

UChar* eustrndup ( const UChar* s, uint length )

...

Liste de paramètres

s

...

length

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
eustrndup_rel | Niveau supérieur | execute_internal


eustrndup_rel

eustrndup_rel -- ...

Description

#include <zend_alloc.h>

UChar* eustrndup_rel ( const UChar* s, uint length )

...

Liste de paramètres

s

...

length

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
eustrdup | Niveau supérieur | eustrndup


execute

execute -- ...

Description

#include <zend_execute.h>

void execute ( zend_op_array* op_array, magic TSRMLS_DC )

...

Liste de paramètres

op_array

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
execute_internal | Niveau supérieur | free_estring


execute_internal

execute_internal -- ...

Description

#include <zend_execute.h>

void execute_internal ( zend_execute_data* execute_data_ptr, int return_value_used, magic TSRMLS_DC )

...

Liste de paramètres

execute_data_ptr

...

return_value_used

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
eustrndup | Niveau supérieur | execute


free_estring

free_estring -- ...

Description

#include <zend.h>

void free_estring ( char** str_p )

...

Liste de paramètres

str_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
execute | Niveau supérieur | full_mem_check


full_mem_check

full_mem_check -- ...

Description

#include <zend_alloc.h>

void full_mem_check ( ... silent )

...

Liste de paramètres

silent

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
free_estring | Niveau supérieur | function_add_ref


function_add_ref

function_add_ref -- ...

Description

#include <zend_compile.h>

void function_add_ref ( zend_function* function, magic TSRMLS_DC )

...

Liste de paramètres

function

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
full_mem_check | Niveau supérieur | get_active_class_name


get_active_class_name

get_active_class_name -- ...

Description

#include <zend_execute.h>

char* get_active_class_name ( char** space, magic TSRMLS_DC )

...

Liste de paramètres

space

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
function_add_ref | Niveau supérieur | get_active_function_name


get_active_function_name

get_active_function_name -- ...

Description

#include <zend_execute.h>

char* get_active_function_name ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
get_active_class_name | Niveau supérieur | get_binary_op


get_binary_op

get_binary_op -- ...

Description

#include <zend_compile.h>

void* get_binary_op ( int opcode )

...

Liste de paramètres

opcode

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
get_active_function_name | Niveau supérieur | get_unary_op


get_unary_op

get_unary_op -- ...

Description

#include <zend_compile.h>

unary_op_type get_unary_op ( int opcode )

...

Liste de paramètres

opcode

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
get_binary_op | Niveau supérieur | get_zend_version


get_zend_version

get_zend_version -- Get Zend Engine version string

Description

#include <zend.h>

char* get_zend_version ( void )

get_zend_version() returns a verbose version string containing both version and copyright information for the Zend Engine in use.

Valeurs de retour

A Zend version string like:

Zend Engine v2.0.5, Copyright (c) 1998-2006 Zend Technologies

Précédent | Sommaire | Suivant
get_unary_op | Niveau supérieur | highlight_file


highlight_file

highlight_file -- ...

Description

#include <zend_highlight.h>

int highlight_file ( char* filename, zend_syntax_highlighter_ini* syntax_highlighter_ini, magic TSRMLS_DC )

...

Liste de paramètres

filename

...

syntax_highlighter_ini

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
get_zend_version | Niveau supérieur | highlight_string


highlight_string

highlight_string -- ...

Description

#include <zend_highlight.h>

int highlight_string ( zval* str, zend_syntax_highlighter_ini* syntax_highlighter_ini, char* str_name, magic TSRMLS_DC )

...

Liste de paramètres

str

...

syntax_highlighter_ini

...

str_name

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
highlight_file | Niveau supérieur | init_op_array


INI_BOOL

INI_BOOL -- ...

Description

#include <zend_ini.h>

long INI_BOOL ( ... name) ((zend_bool )

...

Liste de paramètres

name) ((zend_bool

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
DISPLAY_INI_ENTRIES | Niveau supérieur | INI_FLT


INI_FLT

INI_FLT -- ...

Description

#include <zend_ini.h>

double INI_FLT ( char* name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
INI_BOOL | Niveau supérieur | INI_INT


INI_INT

INI_INT -- ...

Description

#include <zend_ini.h>

long INI_INT ( char* name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
INI_FLT | Niveau supérieur | INI_ORIG_BOOL


INI_ORIG_BOOL

INI_ORIG_BOOL -- ...

Description

#include <zend_ini.h>

long INI_ORIG_BOOL ( ... name) ((zend_bool )

...

Liste de paramètres

name) ((zend_bool

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
INI_INT | Niveau supérieur | INI_ORIG_FLT


INI_ORIG_FLT

INI_ORIG_FLT -- ...

Description

#include <zend_ini.h>

double INI_ORIG_FLT ( char* name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
INI_ORIG_BOOL | Niveau supérieur | INI_ORIG_INT


INI_ORIG_INT

INI_ORIG_INT -- ...

Description

#include <zend_ini.h>

long INI_ORIG_INT ( char* name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
INI_ORIG_FLT | Niveau supérieur | INI_ORIG_STR


INI_ORIG_STR

INI_ORIG_STR -- ...

Description

#include <zend_ini.h>

char* INI_ORIG_STR ( char* name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
INI_ORIG_INT | Niveau supérieur | INI_STR


INI_STR

INI_STR -- ...

Description

#include <zend_ini.h>

char* INI_STR ( char* name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
INI_ORIG_STR | Niveau supérieur | REGISTER_DOUBLE_CONSTANT


init_op_array

init_op_array -- ...

Description

#include <zend_compile.h>

void init_op_array ( zend_op_array* op_array, zend_uchar type, int initial_ops_size, magic TSRMLS_DC )

...

Liste de paramètres

op_array

...

type

...

initial_ops_size

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
highlight_string | Niveau supérieur | lex_scan


lex_scan

lex_scan -- ...

Description

#include <zend_compile.h>

int lex_scan ( zval* zendlval, magic TSRMLS_DC )

...

Liste de paramètres

zendlval

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
init_op_array | Niveau supérieur | mem_block_check


mem_block_check

mem_block_check -- ...

Description

#include <zend_alloc.h>

int mem_block_check ( void* ptr, ... silent )

...

Liste de paramètres

ptr

...

silent

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
lex_scan | Niveau supérieur | object_and_properties_init


object_and_properties_init

object_and_properties_init -- ...

Description

#include <zend_API.h>

int object_and_properties_init ( zval* arg, zend_class_entry* ce, HashTable* properties )

...

Liste de paramètres

arg

...

ce

...

properties

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
mem_block_check | Niveau supérieur | object_init_ex


object_init

object_init -- ...

Description

#include <zend_API.h>

int object_init ( zval* arg )

...

Liste de paramètres

arg

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
object_init_ex | Niveau supérieur | open_file_for_scanning


object_init_ex

object_init_ex -- ...

Description

#include <zend_API.h>

int object_init_ex ( zval* arg, zend_class_entry* ce )

...

Liste de paramètres

arg

...

ce

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
object_and_properties_init | Niveau supérieur | object_init


open_file_for_scanning

open_file_for_scanning -- ...

Description

#include <zend_compile.h>

int open_file_for_scanning ( zend_file_handle* file_handle, magic TSRMLS_DC )

...

Liste de paramètres

file_handle

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
object_init | Niveau supérieur | register_list_destructors


REGISTER_DOUBLE_CONSTANT

REGISTER_DOUBLE_CONSTANT -- ...

Description

#include <zend_constants.h>

void REGISTER_DOUBLE_CONSTANT ( char* name, double dval, int flags )

...

Liste de paramètres

name

...

dval

...

flags

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
INI_STR | Niveau supérieur | REGISTER_INI_BOOLEAN


REGISTER_INI_BOOLEAN

REGISTER_INI_BOOLEAN -- ...

Description

#include <zend_ini.h>

int REGISTER_INI_BOOLEAN ( char* name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
REGISTER_DOUBLE_CONSTANT | Niveau supérieur | REGISTER_INI_DISPLAYER


REGISTER_INI_DISPLAYER

REGISTER_INI_DISPLAYER -- ...

Description

#include <zend_ini.h>

int REGISTER_INI_DISPLAYER ( char* name, ... displayer )

...

Liste de paramètres

name

...

displayer

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
REGISTER_INI_BOOLEAN | Niveau supérieur | REGISTER_INI_ENTRIES


REGISTER_INI_ENTRIES

REGISTER_INI_ENTRIES -- ...

Description

#include <zend_ini.h>

int REGISTER_INI_ENTRIES ( ... )

...

Liste de paramètres

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
REGISTER_INI_DISPLAYER | Niveau supérieur | REGISTER_LONG_CONSTANT


register_list_destructors

register_list_destructors -- ...

Description

#include <zend_list.h>

int register_list_destructors ( ... ld, ... pld )

...

Liste de paramètres

ld

...

pld

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
open_file_for_scanning | Niveau supérieur | shutdown_memory_manager


REGISTER_LONG_CONSTANT

REGISTER_LONG_CONSTANT -- ...

Description

#include <zend_constants.h>

void REGISTER_LONG_CONSTANT ( char* name, long lval, int flags )

...

Liste de paramètres

name

...

lval

...

flags

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
REGISTER_INI_ENTRIES | Niveau supérieur | REGISTER_MAIN_DOUBLE_CONSTANT


REGISTER_MAIN_DOUBLE_CONSTANT

REGISTER_MAIN_DOUBLE_CONSTANT -- ...

Description

#include <zend_constants.h>

void REGISTER_MAIN_DOUBLE_CONSTANT ( char* name, double dval, int flags )

...

Liste de paramètres

name

...

dval

...

flags

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
REGISTER_LONG_CONSTANT | Niveau supérieur | REGISTER_MAIN_LONG_CONSTANT


REGISTER_MAIN_LONG_CONSTANT

REGISTER_MAIN_LONG_CONSTANT -- ...

Description

#include <zend_constants.h>

void REGISTER_MAIN_LONG_CONSTANT ( char* name, long lval, int flags )

...

Liste de paramètres

name

...

lval

...

flags

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
REGISTER_MAIN_DOUBLE_CONSTANT | Niveau supérieur | REGISTER_MAIN_STRING_CONSTANT


REGISTER_MAIN_STRING_CONSTANT

REGISTER_MAIN_STRING_CONSTANT -- ...

Description

#include <zend_constants.h>

void REGISTER_MAIN_STRING_CONSTANT ( char* name, ... str, int flags )

...

Liste de paramètres

name

...

str

...

flags

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
REGISTER_MAIN_LONG_CONSTANT | Niveau supérieur | REGISTER_MAIN_STRINGL_CONSTANT


REGISTER_MAIN_STRINGL_CONSTANT

REGISTER_MAIN_STRINGL_CONSTANT -- ...

Description

#include <zend_constants.h>

void REGISTER_MAIN_STRINGL_CONSTANT ( char* name, ... str, ... len, int flags )

...

Liste de paramètres

name

...

str

...

len

...

flags

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
REGISTER_MAIN_STRING_CONSTANT | Niveau supérieur | REGISTER_STRING_CONSTANT


REGISTER_STRING_CONSTANT

REGISTER_STRING_CONSTANT -- ...

Description

#include <zend_constants.h>

void REGISTER_STRING_CONSTANT ( char* name, ... str, int flags )

...

Liste de paramètres

name

...

str

...

flags

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
REGISTER_MAIN_STRINGL_CONSTANT | Niveau supérieur | REGISTER_STRINGL_CONSTANT


REGISTER_STRINGL_CONSTANT

REGISTER_STRINGL_CONSTANT -- ...

Description

#include <zend_constants.h>

void REGISTER_STRINGL_CONSTANT ( char* name, ... str, ... len, int flags )

...

Liste de paramètres

name

...

str

...

len

...

flags

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
REGISTER_STRING_CONSTANT | Niveau supérieur | RETURN_ASCII_STRING


shutdown_memory_manager

shutdown_memory_manager -- ...

Description

#include <zend_alloc.h>

void shutdown_memory_manager ( int silent, int full_shutdown, magic TSRMLS_DC )

...

Liste de paramètres

silent

...

full_shutdown

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
register_list_destructors | Niveau supérieur | start_memory_manager


start_memory_manager

start_memory_manager -- ...

Description

#include <zend_alloc.h>

void start_memory_manager ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
shutdown_memory_manager | Niveau supérieur | zend_alter_ini_entry


ts_allocate_id

ts_allocate_id -- ...

Description

#include <TSRM.h>

ts_rsrc_id ts_allocate_id ( ts_rsrc_id* rsrc_id, size_t size, ts_allocate_ctor ctor, ts_allocate_dtor dtor )

...

Liste de paramètres

rsrc_id

...

size

...

ctor

...

dtor

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
TSRM API | Niveau supérieur | ts_free_id


ts_free_id

ts_free_id -- ...

Description

#include <TSRM.h>

void ts_free_id ( ts_rsrc_id id )

...

Liste de paramètres

id

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ts_allocate_id | Niveau supérieur | ts_free_thread


ts_free_thread

ts_free_thread -- ...

Description

#include <TSRM.h>

void ts_free_thread ( void )

...

Liste de paramètres

void

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ts_free_id | Niveau supérieur | ts_resource_ex


ts_resource

ts_resource -- ...

Description

#include <TSRM.h>

void* ts_resource ( ts_rsrc_id id )

...

Liste de paramètres

id

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ts_resource_ex | Niveau supérieur | tsrm_error_set


ts_resource_ex

ts_resource_ex -- ...

Description

#include <TSRM.h>

void* ts_resource_ex ( ts_rsrc_id id, THREAD_T* th_id )

...

Liste de paramètres

id

...

th_id

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ts_free_thread | Niveau supérieur | ts_resource


tsrm_error

tsrm_error -- ...

Description

#include <TSRM.h>

int tsrm_error ( int level, const char* format, ... )

...

Liste de paramètres

level

...

format

...

...

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
tsrm_error_set | Niveau supérieur | tsrm_free_interpreter_context


tsrm_error_set

tsrm_error_set -- ...

Description

#include <TSRM.h>

void tsrm_error_set ( int level, char* debug_filename )

...

Liste de paramètres

level

...

debug_filename

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ts_resource | Niveau supérieur | tsrm_error


tsrm_free_interpreter_context

tsrm_free_interpreter_context -- ...

Description

#include <TSRM.h>

void tsrm_free_interpreter_context ( void* context )

...

Liste de paramètres

context

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
tsrm_error | Niveau supérieur | tsrm_mutex_alloc


tsrm_mutex_alloc

tsrm_mutex_alloc -- ...

Description

#include <TSRM.h>

MUTEX_T tsrm_mutex_alloc ( void )

...

Liste de paramètres

void

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
tsrm_free_interpreter_context | Niveau supérieur | tsrm_mutex_free


tsrm_mutex_free

tsrm_mutex_free -- ...

Description

#include <TSRM.h>

void tsrm_mutex_free ( MUTEX_T mutexp )

...

Liste de paramètres

mutexp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
tsrm_mutex_alloc | Niveau supérieur | tsrm_mutex_lock


tsrm_mutex_lock

tsrm_mutex_lock -- ...

Description

#include <TSRM.h>

int tsrm_mutex_lock ( MUTEX_T mutexp )

...

Liste de paramètres

mutexp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
tsrm_mutex_free | Niveau supérieur | tsrm_mutex_unlock


tsrm_mutex_unlock

tsrm_mutex_unlock -- ...

Description

#include <TSRM.h>

int tsrm_mutex_unlock ( MUTEX_T mutexp )

...

Liste de paramètres

mutexp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
tsrm_mutex_lock | Niveau supérieur | tsrm_new_interpreter_context


tsrm_new_interpreter_context

tsrm_new_interpreter_context -- ...

Description

#include <TSRM.h>

void* tsrm_new_interpreter_context ( void )

...

Liste de paramètres

void

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
tsrm_mutex_unlock | Niveau supérieur | tsrm_set_interpreter_context


tsrm_set_interpreter_context

tsrm_set_interpreter_context -- ...

Description

#include <TSRM.h>

void* tsrm_set_interpreter_context ( void* new_ctx )

...

Liste de paramètres

new_ctx

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
tsrm_new_interpreter_context | Niveau supérieur | tsrm_set_new_thread_begin_handler


tsrm_set_new_thread_begin_handler

tsrm_set_new_thread_begin_handler -- ...

Description

#include <TSRM.h>

void* tsrm_set_new_thread_begin_handler ( tsrm_thread_begin_func_t new_thread_begin_handler )

...

Liste de paramètres

new_thread_begin_handler

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
tsrm_set_interpreter_context | Niveau supérieur | tsrm_set_new_thread_end_handler


tsrm_set_new_thread_end_handler

tsrm_set_new_thread_end_handler -- ...

Description

#include <TSRM.h>

void* tsrm_set_new_thread_end_handler ( tsrm_thread_end_func_t new_thread_end_handler )

...

Liste de paramètres

new_thread_end_handler

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
tsrm_set_new_thread_begin_handler | Niveau supérieur | tsrm_shutdown


tsrm_shutdown

tsrm_shutdown -- ...

Description

#include <TSRM.h>

void tsrm_shutdown ( void )

...

Liste de paramètres

void

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
tsrm_set_new_thread_end_handler | Niveau supérieur | tsrm_startup


tsrm_startup

tsrm_startup -- ...

Description

#include <TSRM.h>

int tsrm_startup ( int expected_threads, int expected_resources, int debug_level, char* debug_filename )

...

Liste de paramètres

expected_threads

...

expected_resources

...

debug_level

...

debug_filename

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
tsrm_shutdown | Niveau supérieur | tsrm_thread_id


tsrm_thread_id

tsrm_thread_id -- ...

Description

#include <TSRM.h>

THREAD_T tsrm_thread_id ( void )

...

Liste de paramètres

void

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
tsrm_startup | Niveau supérieur | virtual_access


UNREGISTER_INI_ENTRIES

UNREGISTER_INI_ENTRIES -- ...

Description

#include <zend_ini.h>

void UNREGISTER_INI_ENTRIES ( ... )

...

Liste de paramètres

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_ZVAL | Niveau supérieur | Z_ARRVAL_P


virtual_access

virtual_access -- Check users permissions for a file

Description

#include <tsrm_virtual_cwd.h>

int virtual_access ( const char* pathname, int mode, magic TSRMLS_DC )

virtual_access() thread safe wrapper around the access() function that takes per-thread virtual working directories into account.

See also VCWD_ACCESS().

Liste de paramètres

pathname

File to check permissions for

mode

Mode mask

TSRMLS_DC

Thread context

Valeurs de retour

Returns 0 on success and -1 on errors.

Précédent | Sommaire | Suivant
tsrm_thread_id | Niveau supérieur | virtual_chdir_file


virtual_chdir

virtual_chdir -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_chdir ( const char* path, magic TSRMLS_DC )

...

Liste de paramètres

path

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_chdir_file | Niveau supérieur | virtual_chmod


virtual_chdir_file

virtual_chdir_file -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_chdir_file ( const char* path, int (*p_chdir)(const char *path TSRMLS_DC) chdir_func, magic TSRMLS_DC )

...

Liste de paramètres

path

...

chdir_func

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_access | Niveau supérieur | virtual_chdir


virtual_chmod

virtual_chmod -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_chmod ( const char* filename, mode_t mode, magic TSRMLS_DC )

...

Liste de paramètres

filename

...

mode

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_chdir | Niveau supérieur | virtual_chown


virtual_chown

virtual_chown -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_chown ( const char* filename, uid_t owner, gid_t group, int link, magic TSRMLS_DC )

...

Liste de paramètres

filename

...

owner

...

group

...

link

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_chmod | Niveau supérieur | virtual_creat


virtual_creat

virtual_creat -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_creat ( const char* path, mode_t mode, magic TSRMLS_DC )

...

Liste de paramètres

path

...

mode

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_chown | Niveau supérieur | virtual_cwd_shutdown


virtual_cwd_shutdown

virtual_cwd_shutdown -- ...

Description

#include <tsrm_virtual_cwd.h>

void virtual_cwd_shutdown ( void )

...

Liste de paramètres

void

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_creat | Niveau supérieur | virtual_cwd_startup


virtual_cwd_startup

virtual_cwd_startup -- ...

Description

#include <tsrm_virtual_cwd.h>

void virtual_cwd_startup ( void )

...

Liste de paramètres

void

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_cwd_shutdown | Niveau supérieur | virtual_file_ex


virtual_file_ex

virtual_file_ex -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_file_ex ( cwd_state* state, const char* path, verify_path_func verify_path, int use_realpath )

...

Liste de paramètres

state

...

path

...

verify_path

...

use_realpath

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_cwd_startup | Niveau supérieur | virtual_filepath_ex


virtual_filepath

virtual_filepath -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_filepath ( const char* path, char** filepath, magic TSRMLS_DC )

...

Liste de paramètres

path

...

filepath

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_filepath_ex | Niveau supérieur | virtual_fopen


virtual_filepath_ex

virtual_filepath_ex -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_filepath_ex ( const char* path, char** filepath, verify_path_func verify_path, magic TSRMLS_DC )

...

Liste de paramètres

path

...

filepath

...

verify_path

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_file_ex | Niveau supérieur | virtual_filepath


virtual_fopen

virtual_fopen -- ...

Description

#include <tsrm_virtual_cwd.h>

FILE* virtual_fopen ( const char* path, const char* mode, magic TSRMLS_DC )

...

Liste de paramètres

path

...

mode

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_filepath | Niveau supérieur | virtual_getcwd_ex


virtual_getcwd

virtual_getcwd -- ...

Description

#include <tsrm_virtual_cwd.h>

char* virtual_getcwd ( char* buf, size_t size, magic TSRMLS_DC )

...

Liste de paramètres

buf

...

size

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_getcwd_ex | Niveau supérieur | virtual_lstat


virtual_getcwd_ex

virtual_getcwd_ex -- ...

Description

#include <tsrm_virtual_cwd.h>

char* virtual_getcwd_ex ( size_t* length, magic TSRMLS_DC )

...

Liste de paramètres

length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_fopen | Niveau supérieur | virtual_getcwd


virtual_lstat

virtual_lstat -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_lstat ( const char* path, struct stat* buf, magic TSRMLS_DC )

...

Liste de paramètres

path

...

buf

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_getcwd | Niveau supérieur | virtual_mkdir


virtual_mkdir

virtual_mkdir -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_mkdir ( const char* pathname, mode_t mode, magic TSRMLS_DC )

...

Liste de paramètres

pathname

...

mode

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_lstat | Niveau supérieur | virtual_open


virtual_open

virtual_open -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_open ( const char* path, magic TSRMLS_DC, int flags, ... )

...

Liste de paramètres

path

...

TSRMLS_DC

...

flags

...

...

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_mkdir | Niveau supérieur | virtual_opendir


virtual_opendir

virtual_opendir -- ...

Description

#include <tsrm_virtual_cwd.h>

DIR* virtual_opendir ( const char* pathname, magic TSRMLS_DC )

...

Liste de paramètres

pathname

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_open | Niveau supérieur | virtual_popen


virtual_popen

virtual_popen -- ...

Description

#include <tsrm_virtual_cwd.h>

FILE* virtual_popen ( const char* command, const char* type, magic TSRMLS_DC )

...

Liste de paramètres

command

...

type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_opendir | Niveau supérieur | virtual_realpath


virtual_realpath

virtual_realpath -- ...

Description

#include <tsrm_virtual_cwd.h>

char* virtual_realpath ( const char* path, char* real_path, magic TSRMLS_DC )

...

Liste de paramètres

path

...

real_path

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_popen | Niveau supérieur | virtual_rename


virtual_rename

virtual_rename -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_rename ( char* oldname, char* newname, magic TSRMLS_DC )

...

Liste de paramètres

oldname

...

newname

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_realpath | Niveau supérieur | virtual_rmdir


virtual_rmdir

virtual_rmdir -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_rmdir ( const char* pathname, magic TSRMLS_DC )

...

Liste de paramètres

pathname

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_rename | Niveau supérieur | virtual_stat


virtual_stat

virtual_stat -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_stat ( const char* path, struct stat* buf, magic TSRMLS_DC )

...

Liste de paramètres

path

...

buf

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_rmdir | Niveau supérieur | virtual_unlink


virtual_unlink

virtual_unlink -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_unlink ( const char* path, magic TSRMLS_DC )

...

Liste de paramètres

path

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_stat | Niveau supérieur | virtual_utime


virtual_utime

virtual_utime -- ...

Description

#include <tsrm_virtual_cwd.h>

int virtual_utime ( const char* filename, struct utimbuf* buf, magic TSRMLS_DC )

...

Liste de paramètres

filename

...

buf

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_unlink | Niveau supérieur | VCWD_ACCESS


zend_alter_ini_entry

zend_alter_ini_entry -- ...

Description

#include <zend_ini.h>

int zend_alter_ini_entry ( char* name, uint name_length, char* new_value, uint new_value_length, int modify_type, int stage )

...

Liste de paramètres

name

...

name_length

...

new_value

...

new_value_length

...

modify_type

...

stage

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
start_memory_manager | Niveau supérieur | zend_auto_global_disable_jit


zend_auto_global_disable_jit

zend_auto_global_disable_jit -- ...

Description

#include <zend_compile.h>

int zend_auto_global_disable_jit ( char* varname, zend_uint varname_length, magic TSRMLS_DC )

...

Liste de paramètres

varname

...

varname_length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_alter_ini_entry | Niveau supérieur | zend_bailout


zend_bailout

zend_bailout -- ...

Description

#include <zend.h>

void zend_bailout ( ... )

...

Liste de paramètres

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_auto_global_disable_jit | Niveau supérieur | zend_call_function


zend_call_function

zend_call_function -- ...

Description

#include <zend_API.h>

int zend_call_function ( zend_fcall_info* fci, zend_fcall_info_cache* fci_cache, magic TSRMLS_DC )

...

Liste de paramètres

fci

...

fci_cache

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_bailout | Niveau supérieur | zend_call_method_with_0_params


zend_call_method

zend_call_method -- ...

Description

#include <zend_interfaces.h>

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

...

Liste de paramètres

object_pp

...

obj_ce

...

fn_proxy

...

function_name

...

function_name_len

...

retval_ptr_ptr

...

param_count

...

arg1

...

arg2

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_call_method_with_2_params | Niveau supérieur | zend_case_fold_string


zend_call_method_with_0_params

zend_call_method_with_0_params -- ...

Description

#include <zend_interfaces.h>

zval* zend_call_method_with_0_params ( ... obj, zend_class_entry* obj_ce, zend_function** fn_proxy, char* function_name, ... retval )

...

Liste de paramètres

obj

...

obj_ce

...

fn_proxy

...

function_name

...

retval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_call_function | Niveau supérieur | zend_call_method_with_1_params


zend_call_method_with_1_params

zend_call_method_with_1_params -- ...

Description

#include <zend_interfaces.h>

zval* zend_call_method_with_1_params ( ... obj, zend_class_entry* obj_ce, zend_function** fn_proxy, char* function_name, ... retval, zval* arg1 )

...

Liste de paramètres

obj

...

obj_ce

...

fn_proxy

...

function_name

...

retval

...

arg1

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_call_method_with_0_params | Niveau supérieur | zend_call_method_with_2_params


zend_call_method_with_2_params

zend_call_method_with_2_params -- ...

Description

#include <zend_interfaces.h>

zval* zend_call_method_with_2_params ( ... obj, zend_class_entry* obj_ce, zend_function** fn_proxy, char* function_name, ... retval, zval* arg1, zval* arg2 )

...

Liste de paramètres

obj

...

obj_ce

...

fn_proxy

...

function_name

...

retval

...

arg1

...

arg2

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_call_method_with_1_params | Niveau supérieur | zend_call_method


zend_case_fold_string

zend_case_fold_string -- ...

Description

#include <zend_unicode.h>

void zend_case_fold_string ( UChar** dest, int32_t* dest_len, UChar* src, int32_t src_len, uint32_t options, UErrorCode* status )

...

Liste de paramètres

dest

...

dest_len

...

src

...

src_len

...

options

...

status

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_call_method | Niveau supérieur | zend_check_magic_method_implementation


zend_check_magic_method_implementation

zend_check_magic_method_implementation -- ...

Description

#include <zend_API.h>

void zend_check_magic_method_implementation ( zend_class_entry* ce, zend_function* fptr, int error_type, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

fptr

...

error_type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_case_fold_string | Niveau supérieur | zend_check_private


zend_check_private

zend_check_private -- ...

Description

#include <zend_object_handlers.h>

int zend_check_private ( union _zend_function* fbc, zend_class_entry* ce, char* function_name_strval, int function_name_strlen, magic TSRMLS_DC )

...

Liste de paramètres

fbc

...

ce

...

function_name_strval

...

function_name_strlen

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_check_magic_method_implementation | Niveau supérieur | zend_check_property_access


zend_check_property_access

zend_check_property_access -- ...

Description

#include <zend_object_handlers.h>

int zend_check_property_access ( zend_object* zobj, zend_uchar utype, void* prop_info_name, magic TSRMLS_DC )

...

Liste de paramètres

zobj

...

utype

...

prop_info_name

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_check_private | Niveau supérieur | zend_check_protected


zend_check_protected

zend_check_protected -- ...

Description

#include <zend_object_handlers.h>

int zend_check_protected ( zend_class_entry* ce, zend_class_entry* scope )

...

Liste de paramètres

ce

...

scope

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_check_property_access | Niveau supérieur | zend_class_implements


zend_class_implements

zend_class_implements -- ...

Description

#include <zend_API.h>

void zend_class_implements ( zend_class_entry* class_entry, magic TSRMLS_DC, int num_interfaces, ... )

...

Liste de paramètres

class_entry

...

TSRMLS_DC

...

num_interfaces

...

...

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_check_protected | Niveau supérieur | zend_cleanup_class_data


zend_cleanup_class_data

zend_cleanup_class_data -- ...

Description

#include <zend_compile.h>

int zend_cleanup_class_data ( zend_class_entry** pce, magic TSRMLS_DC )

...

Liste de paramètres

pce

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_class_implements | Niveau supérieur | zend_cleanup_function_data


zend_cleanup_function_data

zend_cleanup_function_data -- ...

Description

#include <zend_compile.h>

int zend_cleanup_function_data ( zend_function* function, magic TSRMLS_DC )

...

Liste de paramètres

function

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_cleanup_class_data | Niveau supérieur | zend_clear_exception


zend_clear_exception

zend_clear_exception -- ...

Description

#include <zend_exceptions.h>

void zend_clear_exception ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_cleanup_function_data | Niveau supérieur | zend_cmp_unicode_and_literal


zend_cmp_unicode_and_literal

zend_cmp_unicode_and_literal -- ...

Description

#include <zend_unicode.h>

int zend_cmp_unicode_and_literal ( UChar* ustr, int32_t ulen, char* str, int32_t slen )

...

Liste de paramètres

ustr

...

ulen

...

str

...

slen

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_clear_exception | Niveau supérieur | zend_cmp_unicode_and_string


zend_cmp_unicode_and_string

zend_cmp_unicode_and_string -- ...

Description

#include <zend_unicode.h>

int zend_cmp_unicode_and_string ( UChar* ustr, char* str, uint len )

...

Liste de paramètres

ustr

...

str

...

len

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_cmp_unicode_and_literal | Niveau supérieur | zend_convert_encodings


zend_convert_encodings

zend_convert_encodings -- ...

Description

#include <zend_unicode.h>

void zend_convert_encodings ( UConverter* target_conv, UConverter* source_conv, char** target, int32_t* target_len, const char* source, int32_t source_len, UErrorCode* status )

...

Liste de paramètres

target_conv

...

source_conv

...

target

...

target_len

...

source

...

source_len

...

status

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_cmp_unicode_and_string | Niveau supérieur | zend_convert_from_unicode


zend_convert_from_unicode

zend_convert_from_unicode -- ...

Description

#include <zend_unicode.h>

void zend_convert_from_unicode ( UConverter* conv, char** target, int32_t* target_len, const UChar* source, int32_t source_len, UErrorCode* status )

...

Liste de paramètres

conv

...

target

...

target_len

...

source

...

source_len

...

status

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_convert_encodings | Niveau supérieur | zend_convert_scanner_output


zend_convert_scanner_output

zend_convert_scanner_output -- ...

Description

#include <zend_compile.h>

int32_t zend_convert_scanner_output ( UChar** target, int32_t* target_len, const char* source, int32_t source_len, UErrorCode* status, magic TSRMLS_DC )

...

Liste de paramètres

target

...

target_len

...

source

...

source_len

...

status

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_convert_from_unicode | Niveau supérieur | zend_convert_to_unicode


zend_convert_to_unicode

zend_convert_to_unicode -- ...

Description

#include <zend_unicode.h>

void zend_convert_to_unicode ( UConverter* conv, UChar** target, int32_t* target_len, const char* source, int32_t source_len, UErrorCode* status )

...

Liste de paramètres

conv

...

target

...

target_len

...

source

...

source_len

...

status

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_convert_scanner_output | Niveau supérieur | zend_copy_ini_directives


zend_copy_ini_directives

zend_copy_ini_directives -- ...

Description

#include <zend_ini.h>

int zend_copy_ini_directives ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_convert_to_unicode | Niveau supérieur | zend_copy_parameters_array


zend_copy_parameters_array

zend_copy_parameters_array -- ...

Description

#include <zend_API.h>

int zend_copy_parameters_array ( int param_count, zval* argument_array, magic TSRMLS_DC )

...

Liste de paramètres

param_count

...

argument_array

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_copy_ini_directives | Niveau supérieur | zend_declare_class_constant_bool


zend_declare_class_constant

zend_declare_class_constant -- ...

Description

#include <zend_API.h>

int zend_declare_class_constant ( zend_class_entry* ce, char* name, size_t name_length, zval* value, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_declare_class_constant_stringl | Niveau supérieur | zend_declare_property_bool


zend_declare_class_constant_bool

zend_declare_class_constant_bool -- ...

Description

#include <zend_API.h>

int zend_declare_class_constant_bool ( zend_class_entry* ce, char* name, size_t name_length, zend_bool value, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_copy_parameters_array | Niveau supérieur | zend_declare_class_constant_double


zend_declare_class_constant_double

zend_declare_class_constant_double -- ...

Description

#include <zend_API.h>

int zend_declare_class_constant_double ( zend_class_entry* ce, char* name, size_t name_length, double value, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_declare_class_constant_bool | Niveau supérieur | zend_declare_class_constant_long


zend_declare_class_constant_long

zend_declare_class_constant_long -- ...

Description

#include <zend_API.h>

int zend_declare_class_constant_long ( zend_class_entry* ce, char* name, size_t name_length, long value, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_declare_class_constant_double | Niveau supérieur | zend_declare_class_constant_string


zend_declare_class_constant_string

zend_declare_class_constant_string -- ...

Description

#include <zend_API.h>

int zend_declare_class_constant_string ( zend_class_entry* ce, char* name, size_t name_length, char* value, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_declare_class_constant_long | Niveau supérieur | zend_declare_class_constant_stringl


zend_declare_class_constant_stringl

zend_declare_class_constant_stringl -- ...

Description

#include <zend_API.h>

int zend_declare_class_constant_stringl ( zend_class_entry* ce, char* name, size_t name_length, char* value, size_t value_length, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

name

...

name_length

...

value

...

value_length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_declare_class_constant_string | Niveau supérieur | zend_declare_class_constant


zend_declare_property

zend_declare_property -- ...

Description

#include <zend_API.h>

int zend_declare_property ( zend_class_entry* ce, char* name, int name_length, zval* property, int access_type, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

name

...

name_length

...

property

...

access_type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_declare_property_stringl | Niveau supérieur | zend_delete_global_variable


zend_declare_property_bool

zend_declare_property_bool -- ...

Description

#include <zend_API.h>

int zend_declare_property_bool ( zend_class_entry* ce, char* name, int name_length, long value, int access_type, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

name

...

name_length

...

value

...

access_type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_declare_class_constant | Niveau supérieur | zend_declare_property_double


zend_declare_property_double

zend_declare_property_double -- ...

Description

#include <zend_API.h>

int zend_declare_property_double ( zend_class_entry* ce, char* name, int name_length, double value, int access_type, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

name

...

name_length

...

value

...

access_type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_declare_property_bool | Niveau supérieur | zend_declare_property_ex


zend_declare_property_ex

zend_declare_property_ex -- ...

Description

#include <zend_API.h>

int zend_declare_property_ex ( zend_class_entry* ce, char* name, int name_length, zval* property, int access_type, char* doc_comment, int doc_comment_len, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

name

...

name_length

...

property

...

access_type

...

doc_comment

...

doc_comment_len

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_declare_property_double | Niveau supérieur | zend_declare_property_long


zend_declare_property_long

zend_declare_property_long -- ...

Description

#include <zend_API.h>

int zend_declare_property_long ( zend_class_entry* ce, char* name, int name_length, long value, int access_type, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

name

...

name_length

...

value

...

access_type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_declare_property_ex | Niveau supérieur | zend_declare_property_null


zend_declare_property_null

zend_declare_property_null -- ...

Description

#include <zend_API.h>

int zend_declare_property_null ( zend_class_entry* ce, char* name, int name_length, int access_type, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

name

...

name_length

...

access_type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_declare_property_long | Niveau supérieur | zend_declare_property_string


zend_declare_property_string

zend_declare_property_string -- ...

Description

#include <zend_API.h>

int zend_declare_property_string ( zend_class_entry* ce, char* name, int name_length, char* value, int access_type, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

name

...

name_length

...

value

...

access_type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_declare_property_null | Niveau supérieur | zend_declare_property_stringl


zend_declare_property_stringl

zend_declare_property_stringl -- ...

Description

#include <zend_API.h>

int zend_declare_property_stringl ( zend_class_entry* ce, char* name, int name_length, char* value, int value_len, int access_type, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

name

...

name_length

...

value

...

value_len

...

access_type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_declare_property_string | Niveau supérieur | zend_declare_property


zend_delete_global_variable

zend_delete_global_variable -- ...

Description

#include <zend_API.h>

int zend_delete_global_variable ( char* name, int name_len, magic TSRMLS_DC )

...

Liste de paramètres

name

...

name_len

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_declare_property | Niveau supérieur | zend_destroy_file_handle


zend_destroy_file_handle

zend_destroy_file_handle -- ...

Description

#include <zend_compile.h>

void zend_destroy_file_handle ( zend_file_handle* file_handle, magic TSRMLS_DC )

...

Liste de paramètres

file_handle

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_delete_global_variable | Niveau supérieur | zend_disable_class


zend_disable_class

zend_disable_class -- ...

Description

#include <zend_API.h>

int zend_disable_class ( char* class_name, uint class_name_length, magic TSRMLS_DC )

...

Liste de paramètres

class_name

...

class_name_length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_destroy_file_handle | Niveau supérieur | zend_disable_function


zend_disable_function

zend_disable_function -- ...

Description

#include <zend_API.h>

int zend_disable_function ( char* function_name, uint function_name_length, magic TSRMLS_DC )

...

Liste de paramètres

function_name

...

function_name_length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_disable_class | Niveau supérieur | zend_do_fcall


zend_do_fcall

zend_do_fcall -- ...

Description

#include <zend_execute.h>

int zend_do_fcall ( ZEND_OPCODE_HANDLER_ARGS )

...

Liste de paramètres

ZEND_OPCODE_HANDLER_ARGS

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_disable_function | Niveau supérieur | zend_do_implement_interface


zend_do_implement_interface

zend_do_implement_interface -- ...

Description

#include <zend_compile.h>

void zend_do_implement_interface ( zend_class_entry* ce, zend_class_entry* iface, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

iface

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_do_fcall | Niveau supérieur | zend_do_inherit_interfaces


zend_do_inherit_interfaces

zend_do_inherit_interfaces -- ...

Description

#include <zend_compile.h>

void zend_do_inherit_interfaces ( zend_class_entry* ce, zend_class_entry* iface, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

iface

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_do_implement_interface | Niveau supérieur | zend_do_inheritance


zend_do_inheritance

zend_do_inheritance -- ...

Description

#include <zend_compile.h>

void zend_do_inheritance ( zend_class_entry* ce, zend_class_entry* parent_ce, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

parent_ce

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_do_inherit_interfaces | Niveau supérieur | zend_error


zend_error

zend_error -- Generate error message and trigger error handling

Description

#include <zend.h>

#include <zend_errors.h>

void zend_error ( int type, const char* format, ... )

...

Liste de paramètres

type

One of E_ERROR, E_WARNING, E_PARSE, E_NOTICE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE, E_STRICT, or E_RECOVERABLE_ERROR.

format

A printf() format string.

...

Output parameters for the format string.

Précédent | Sommaire | Suivant
zend_do_inheritance | Niveau supérieur | zend_eval_string_ex


zend_eval_string

zend_eval_string -- ...

Description

#include <zend_execute.h>

int zend_eval_string ( char* str, zval* retval_ptr, char* string_name, magic TSRMLS_DC )

...

Liste de paramètres

str

...

retval_ptr

...

string_name

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_eval_string_ex | Niveau supérieur | zend_exception_error


zend_eval_string_ex

zend_eval_string_ex -- ...

Description

#include <zend_execute.h>

int zend_eval_string_ex ( char* str, zval* retval_ptr, char* string_name, int handle_exceptions, magic TSRMLS_DC )

...

Liste de paramètres

str

...

retval_ptr

...

string_name

...

handle_exceptions

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_error | Niveau supérieur | zend_eval_string


zend_exception_error

zend_exception_error -- ...

Description

#include <zend_exceptions.h>

void zend_exception_error ( zval* exception, magic TSRMLS_DC )

...

Liste de paramètres

exception

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_eval_string | Niveau supérieur | zend_exception_get_default


zend_exception_get_default

zend_exception_get_default -- ...

Description

#include <zend_exceptions.h>

zend_class_entry* zend_exception_get_default ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_exception_error | Niveau supérieur | zend_execute_scripts


zend_execute_scripts

zend_execute_scripts -- ...

Description

#include <zend_compile.h>

int zend_execute_scripts ( int type, magic TSRMLS_DC, zval** retval, int file_count, ... )

...

Liste de paramètres

type

...

TSRMLS_DC

...

retval

...

file_count

...

...

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_exception_get_default | Niveau supérieur | zend_fetch_class


zend_fetch_class

zend_fetch_class -- ...

Description

#include <zend_execute.h>

zend_class_entry* zend_fetch_class ( char* class_name, uint class_name_len, int fetch_type, magic TSRMLS_DC )

...

Liste de paramètres

class_name

...

class_name_len

...

fetch_type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_execute_scripts | Niveau supérieur | zend_fetch_debug_backtrace


zend_fetch_debug_backtrace

zend_fetch_debug_backtrace -- ...

Description

#include <zend_builtin_functions.h>

void zend_fetch_debug_backtrace ( zval* return_value, int skip_last, int provide_object, magic TSRMLS_DC )

...

Liste de paramètres

return_value

...

skip_last

...

provide_object

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_fetch_class | Niveau supérieur | zend_fetch_list_dtor_id


zend_fetch_list_dtor_id

zend_fetch_list_dtor_id -- ...

Description

#include <zend_list.h>

int zend_fetch_list_dtor_id ( char* type_name )

...

Liste de paramètres

type_name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_fetch_debug_backtrace | Niveau supérieur | zend_fetch_resource


zend_fetch_resource

zend_fetch_resource -- ...

Description

#include <zend_list.h>

void* zend_fetch_resource ( zval** passed_id, magic TSRMLS_DC, int default_id, char* resource_type_name, int* found_resource_type, int num_resource_types, ... )

...

Liste de paramètres

passed_id

...

TSRMLS_DC

...

default_id

...

resource_type_name

...

found_resource_type

...

num_resource_types

...

...

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_fetch_list_dtor_id | Niveau supérieur | zend_file_handle_dtor


zend_file_handle_dtor

zend_file_handle_dtor -- ...

Description

#include <zend_compile.h>

void zend_file_handle_dtor ( zend_file_handle* fh )

...

Liste de paramètres

fh

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_fetch_resource | Niveau supérieur | zend_function_dtor


zend_function_dtor

zend_function_dtor -- ...

Description

#include <zend_compile.h>

void zend_function_dtor ( zend_function* function )

...

Liste de paramètres

function

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_file_handle_dtor | Niveau supérieur | zend_get_class_entry


zend_get_class_entry

zend_get_class_entry -- ...

Description

#include <zend_API.h>

zend_class_entry* zend_get_class_entry ( zval* zobject, magic TSRMLS_DC )

...

Liste de paramètres

zobject

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_function_dtor | Niveau supérieur | zend_get_compiled_filename


zend_get_compiled_filename

zend_get_compiled_filename -- ...

Description

#include <zend_compile.h>

char* zend_get_compiled_filename ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_class_entry | Niveau supérieur | zend_get_compiled_lineno


zend_get_compiled_lineno

zend_get_compiled_lineno -- ...

Description

#include <zend_compile.h>

int zend_get_compiled_lineno ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_compiled_filename | Niveau supérieur | zend_get_compiled_script_encoding


zend_get_compiled_script_encoding

zend_get_compiled_script_encoding -- ...

Description

#include <zend_compile.h>

char* zend_get_compiled_script_encoding ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_compiled_lineno | Niveau supérieur | zend_get_compiled_variable_name


zend_get_compiled_variable_name

zend_get_compiled_variable_name -- ...

Description

#include <zend_compile.h>

char* zend_get_compiled_variable_name ( zend_op_array* op_array, zend_uint var, int* name_len )

...

Liste de paramètres

op_array

...

var

...

name_len

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_compiled_script_encoding | Niveau supérieur | zend_get_compiled_variable_value


zend_get_compiled_variable_value

zend_get_compiled_variable_value -- ...

Description

#include <zend_execute.h>

zval** zend_get_compiled_variable_value ( zend_execute_data* execute_data_ptr, zend_uint var )

...

Liste de paramètres

execute_data_ptr

...

var

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_compiled_variable_name | Niveau supérieur | zend_get_configuration_directive


zend_get_configuration_directive

zend_get_configuration_directive -- ...

Description

#include <zend.h>

int zend_get_configuration_directive ( char* name, uint name_length, zval* contents )

...

Liste de paramètres

name

...

name_length

...

contents

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_compiled_variable_value | Niveau supérieur | zend_get_constant


zend_get_constant

zend_get_constant -- ...

Description

#include <zend_constants.h>

int zend_get_constant ( char* name, uint name_len, zval* result, magic TSRMLS_DC )

...

Liste de paramètres

name

...

name_len

...

result

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_configuration_directive | Niveau supérieur | zend_get_error_exception


zend_get_error_exception

zend_get_error_exception -- ...

Description

#include <zend_exceptions.h>

zend_class_entry* zend_get_error_exception ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_constant | Niveau supérieur | zend_get_executed_filename


zend_get_executed_filename

zend_get_executed_filename -- ...

Description

#include <zend_execute.h>

char* zend_get_executed_filename ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_error_exception | Niveau supérieur | zend_get_executed_lineno


zend_get_executed_lineno

zend_get_executed_lineno -- ...

Description

#include <zend_execute.h>

uint zend_get_executed_lineno ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_executed_filename | Niveau supérieur | zend_get_hash_value


zend_get_hash_value

zend_get_hash_value -- ...

Description

#include <zend_hash.h>

ulong zend_get_hash_value ( char* arKey, uint nKeyLength )

...

Liste de paramètres

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_executed_lineno | Niveau supérieur | zend_get_module_started


zend_get_module_started

zend_get_module_started -- ...

Description

#include <zend_API.h>

int zend_get_module_started ( char* module_name )

...

Liste de paramètres

module_name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_hash_value | Niveau supérieur | zend_get_module_version


zend_get_module_version

zend_get_module_version -- ...

Description

#include <zend_API.h>

char* zend_get_module_version ( char* module_name )

...

Liste de paramètres

module_name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_module_started | Niveau supérieur | zend_get_object_classname


zend_get_object_classname

zend_get_object_classname -- ...

Description

#include <zend_API.h>

int zend_get_object_classname ( zval* object, char** class_name, zend_uint* class_name_len, magic TSRMLS_DC )

...

Liste de paramètres

object

...

class_name

...

class_name_len

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_module_version | Niveau supérieur | zend_get_parameters_array_ex


zend_get_parameters

zend_get_parameters -- ...

Description

#include <zend_API.h>

int zend_get_parameters ( int ht, int param_count, ... )

...

Liste de paramètres

ht

...

param_count

...

...

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_parameters_ex | Niveau supérieur | zend_get_scanned_file_offset


zend_get_parameters_array

zend_get_parameters_array -- ...

Description

#include <zend_API.h>

int zend_get_parameters_array ( int ht, int param_count, zval** argument_array )

...

Liste de paramètres

ht

...

param_count

...

argument_array

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_parameters_array_ex | Niveau supérieur | zend_get_parameters_ex


zend_get_parameters_array_ex

zend_get_parameters_array_ex -- ...

Description

#include <zend_API.h>

int zend_get_parameters_array_ex ( int param_count, zval*** argument_array )

...

Liste de paramètres

param_count

...

argument_array

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_object_classname | Niveau supérieur | zend_get_parameters_array


zend_get_parameters_ex

zend_get_parameters_ex -- ...

Description

#include <zend_API.h>

int zend_get_parameters_ex ( int param_count, ... )

...

Liste de paramètres

param_count

...

...

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_parameters_array | Niveau supérieur | zend_get_parameters


zend_get_scanned_file_offset

zend_get_scanned_file_offset -- ...

Description

#include <zend_compile.h>

int zend_get_scanned_file_offset ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_parameters | Niveau supérieur | zend_get_std_object_handlers


zend_get_std_object_handlers

zend_get_std_object_handlers -- ...

Description

#include <zend_objects_API.h>

zend_object_handlers* zend_get_std_object_handlers ( magic )

...

Liste de paramètres

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_scanned_file_offset | Niveau supérieur | zend_get_unified_string_type


zend_get_unified_string_type

zend_get_unified_string_type -- ...

Description

#include <zend_API.h>

zend_uchar zend_get_unified_string_type ( int num_args, magic TSRMLS_DC, ... )

...

Liste de paramètres

num_args

...

TSRMLS_DC

...

...

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_std_object_handlers | Niveau supérieur | zend_get_user_opcode_handler


zend_get_user_opcode_handler

zend_get_user_opcode_handler -- ...

Description

#include <zend_execute.h>

opcode_handler_t zend_get_user_opcode_handler ( zend_uchar opcode )

...

Liste de paramètres

opcode

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_unified_string_type | Niveau supérieur | zend_get_zval_ptr_ptr


zend_get_zval_ptr

zend_get_zval_ptr -- ...

Description

#include <zend_execute.h>

zval* zend_get_zval_ptr ( znode* node, temp_variable* Ts, zend_free_op* should_free, int type, magic TSRMLS_DC )

...

Liste de paramètres

node

...

Ts

...

should_free

...

type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_zval_ptr_ptr | Niveau supérieur | zend_hash_add_empty_element


zend_get_zval_ptr_ptr

zend_get_zval_ptr_ptr -- ...

Description

#include <zend_execute.h>

zval** zend_get_zval_ptr_ptr ( znode* node, temp_variable* Ts, zend_free_op* should_free, int type, magic TSRMLS_DC )

...

Liste de paramètres

node

...

Ts

...

should_free

...

type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_user_opcode_handler | Niveau supérieur | zend_get_zval_ptr


zend_hash_add

zend_hash_add -- ...

Description

#include <zend_hash.h>

int zend_hash_add ( HashTable* ht, char* arKey, uint nKeyLength, void* pData, uint nDataSize, void** pDest )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

pData

...

nDataSize

...

pDest

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_add_empty_element | Niveau supérieur | zend_hash_apply_with_argument


zend_hash_add_empty_element

zend_hash_add_empty_element -- ...

Description

#include <zend_hash.h>

int zend_hash_add_empty_element ( HashTable* ht, char* arKey, uint nKeyLength )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_get_zval_ptr | Niveau supérieur | zend_hash_add


zend_hash_apply

zend_hash_apply -- ...

Description

#include <zend_hash.h>

void zend_hash_apply ( HashTable* ht, apply_func_t apply_func, magic TSRMLS_DC )

...

Liste de paramètres

ht

...

apply_func

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_apply_with_arguments | Niveau supérieur | zend_hash_clean


zend_hash_apply_with_argument

zend_hash_apply_with_argument -- ...

Description

#include <zend_hash.h>

void zend_hash_apply_with_argument ( HashTable* ht, apply_func_arg_t apply_func, void* , magic TSRMLS_DC )

...

Liste de paramètres

ht

...

apply_func

...

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_add | Niveau supérieur | zend_hash_apply_with_arguments


zend_hash_apply_with_arguments

zend_hash_apply_with_arguments -- ...

Description

#include <zend_hash.h>

void zend_hash_apply_with_arguments ( HashTable* ht, apply_func_args_t apply_func, int, ... )

...

Liste de paramètres

ht

...

apply_func

...

int

...

...

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_apply_with_argument | Niveau supérieur | zend_hash_apply


zend_hash_clean

zend_hash_clean -- ...

Description

#include <zend_hash.h>

void zend_hash_clean ( HashTable* ht )

...

Liste de paramètres

ht

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_apply | Niveau supérieur | zend_hash_compare


zend_hash_compare

zend_hash_compare -- ...

Description

#include <zend_hash.h>

int zend_hash_compare ( HashTable* ht1, HashTable* ht2, compare_func_t compar, zend_bool ordered, magic TSRMLS_DC )

...

Liste de paramètres

ht1

...

ht2

...

compar

...

ordered

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_clean | Niveau supérieur | zend_hash_copy


zend_hash_copy

zend_hash_copy -- ...

Description

#include <zend_hash.h>

void zend_hash_copy ( HashTable* target, HashTable* source, copy_ctor_func_t pCopyConstructor, void* tmp, uint size )

...

Liste de paramètres

target

...

source

...

pCopyConstructor

...

tmp

...

size

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_compare | Niveau supérieur | zend_hash_del_key_or_index


zend_hash_del

zend_hash_del -- ...

Description

#include <zend_hash.h>

int zend_hash_del ( HashTable* ht, char* arKey, uint nKeyLength )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_del_key_or_index | Niveau supérieur | zend_hash_destroy


zend_hash_del_key_or_index

zend_hash_del_key_or_index -- ...

Description

#include <zend_hash.h>

int zend_hash_del_key_or_index ( HashTable* ht, char* arKey, uint nKeyLength, ulong h, int flag )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

h

...

flag

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_copy | Niveau supérieur | zend_hash_del


zend_hash_destroy

zend_hash_destroy -- ...

Description

#include <zend_hash.h>

void zend_hash_destroy ( HashTable* ht )

...

Liste de paramètres

ht

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_del | Niveau supérieur | zend_hash_exists


zend_hash_exists

zend_hash_exists -- ...

Description

#include <zend_hash.h>

int zend_hash_exists ( HashTable* ht, char* arKey, uint nKeyLength )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_destroy | Niveau supérieur | zend_hash_find


zend_hash_find

zend_hash_find -- ...

Description

#include <zend_hash.h>

int zend_hash_find ( HashTable* ht, char* arKey, uint nKeyLength, void** pData )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

pData

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_exists | Niveau supérieur | zend_hash_func


zend_hash_func

zend_hash_func -- ...

Description

#include <zend_hash.h>

ulong zend_hash_func ( char* arKey, uint nKeyLength )

...

Liste de paramètres

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_find | Niveau supérieur | zend_hash_get_current_data_ex


zend_hash_get_current_data

zend_hash_get_current_data -- ...

Description

#include <zend_hash.h>

int zend_hash_get_current_data ( HashTable* ht, void** pData )

...

Liste de paramètres

ht

...

pData

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_get_current_data_ex | Niveau supérieur | zend_hash_get_current_key_ex


zend_hash_get_current_data_ex

zend_hash_get_current_data_ex -- ...

Description

#include <zend_hash.h>

int zend_hash_get_current_data_ex ( HashTable* ht, void** pData, HashPosition* pos )

...

Liste de paramètres

ht

...

pData

...

pos

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_func | Niveau supérieur | zend_hash_get_current_data


zend_hash_get_current_key

zend_hash_get_current_key -- ...

Description

#include <zend_hash.h>

int zend_hash_get_current_key ( HashTable* ht, char** str_index, ulong* num_index, zend_bool duplicate )

...

Liste de paramètres

ht

...

str_index

...

num_index

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_get_current_key_type | Niveau supérieur | zend_hash_graceful_destroy


zend_hash_get_current_key_ex

zend_hash_get_current_key_ex -- ...

Description

#include <zend_hash.h>

int zend_hash_get_current_key_ex ( HashTable* ht, char** str_index, uint* str_length, ulong* num_index, zend_bool duplicate, HashPosition* pos )

...

Liste de paramètres

ht

...

str_index

...

str_length

...

num_index

...

duplicate

...

pos

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_get_current_data | Niveau supérieur | zend_hash_get_current_key_type_ex


zend_hash_get_current_key_type

zend_hash_get_current_key_type -- ...

Description

#include <zend_hash.h>

int zend_hash_get_current_key_type ( HashTable* ht )

...

Liste de paramètres

ht

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_get_current_key_type_ex | Niveau supérieur | zend_hash_get_current_key


zend_hash_get_current_key_type_ex

zend_hash_get_current_key_type_ex -- ...

Description

#include <zend_hash.h>

int zend_hash_get_current_key_type_ex ( HashTable* ht, HashPosition* pos )

...

Liste de paramètres

ht

...

pos

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_get_current_key_ex | Niveau supérieur | zend_hash_get_current_key_type


zend_hash_graceful_destroy

zend_hash_graceful_destroy -- ...

Description

#include <zend_hash.h>

void zend_hash_graceful_destroy ( HashTable* ht )

...

Liste de paramètres

ht

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_get_current_key | Niveau supérieur | zend_hash_graceful_reverse_destroy


zend_hash_graceful_reverse_destroy

zend_hash_graceful_reverse_destroy -- ...

Description

#include <zend_hash.h>

void zend_hash_graceful_reverse_destroy ( HashTable* ht )

...

Liste de paramètres

ht

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_graceful_destroy | Niveau supérieur | zend_hash_index_del


zend_hash_index_del

zend_hash_index_del -- ...

Description

#include <zend_hash.h>

int zend_hash_index_del ( HashTable* ht, ulong h )

...

Liste de paramètres

ht

...

h

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_graceful_reverse_destroy | Niveau supérieur | zend_hash_index_exists


zend_hash_index_exists

zend_hash_index_exists -- ...

Description

#include <zend_hash.h>

int zend_hash_index_exists ( HashTable* ht, ulong h )

...

Liste de paramètres

ht

...

h

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_index_del | Niveau supérieur | zend_hash_index_find


zend_hash_index_find

zend_hash_index_find -- ...

Description

#include <zend_hash.h>

int zend_hash_index_find ( HashTable* ht, ulong h, void** pData )

...

Liste de paramètres

ht

...

h

...

pData

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_index_exists | Niveau supérieur | zend_hash_index_update


zend_hash_index_update

zend_hash_index_update -- ...

Description

#include <zend_hash.h>

int zend_hash_index_update ( HashTable* ht, ulong h, void* pData, uint nDataSize, void** pDest )

...

Liste de paramètres

ht

...

h

...

pData

...

nDataSize

...

pDest

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_index_find | Niveau supérieur | zend_hash_init_ex


zend_hash_init

zend_hash_init -- ...

Description

#include <zend_hash.h>

int zend_hash_init ( HashTable* ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent )

...

Liste de paramètres

ht

...

nSize

...

pHashFunction

...

pDestructor

...

persistent

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_init_ex | Niveau supérieur | zend_hash_internal_pointer_end_ex


zend_hash_init_ex

zend_hash_init_ex -- ...

Description

#include <zend_hash.h>

int zend_hash_init_ex ( HashTable* ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent, zend_bool bApplyProtection )

...

Liste de paramètres

ht

...

nSize

...

pHashFunction

...

pDestructor

...

persistent

...

bApplyProtection

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_index_update | Niveau supérieur | zend_hash_init


zend_hash_internal_pointer_end

zend_hash_internal_pointer_end -- ...

Description

#include <zend_hash.h>

void zend_hash_internal_pointer_end ( HashTable* ht )

...

Liste de paramètres

ht

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_internal_pointer_end_ex | Niveau supérieur | zend_hash_internal_pointer_reset_ex


zend_hash_internal_pointer_end_ex

zend_hash_internal_pointer_end_ex -- ...

Description

#include <zend_hash.h>

void zend_hash_internal_pointer_end_ex ( HashTable* ht, HashPosition* pos )

...

Liste de paramètres

ht

...

pos

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_init | Niveau supérieur | zend_hash_internal_pointer_end


zend_hash_internal_pointer_reset

zend_hash_internal_pointer_reset -- ...

Description

#include <zend_hash.h>

void zend_hash_internal_pointer_reset ( HashTable* ht )

...

Liste de paramètres

ht

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_internal_pointer_reset_ex | Niveau supérieur | zend_hash_merge_ex


zend_hash_internal_pointer_reset_ex

zend_hash_internal_pointer_reset_ex -- ...

Description

#include <zend_hash.h>

void zend_hash_internal_pointer_reset_ex ( HashTable* ht, HashPosition* pos )

...

Liste de paramètres

ht

...

pos

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_internal_pointer_end | Niveau supérieur | zend_hash_internal_pointer_reset


zend_hash_merge

zend_hash_merge -- ...

Description

#include <zend_hash.h>

void zend_hash_merge ( HashTable* target, HashTable* source, copy_ctor_func_t pCopyConstructor, void* tmp, uint size, int overwrite )

...

Liste de paramètres

target

...

source

...

pCopyConstructor

...

tmp

...

size

...

overwrite

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_merge_ex | Niveau supérieur | zend_hash_minmax


zend_hash_merge_ex

zend_hash_merge_ex -- ...

Description

#include <zend_hash.h>

void zend_hash_merge_ex ( HashTable* target, HashTable* source, copy_ctor_func_t pCopyConstructor, uint size, merge_checker_func_t pMergeSource, void* pParam )

...

Liste de paramètres

target

...

source

...

pCopyConstructor

...

size

...

pMergeSource

...

pParam

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_internal_pointer_reset | Niveau supérieur | zend_hash_merge


zend_hash_minmax

zend_hash_minmax -- ...

Description

#include <zend_hash.h>

int zend_hash_minmax ( HashTable* ht, compare_func_t compar, int flag, void** pData, magic TSRMLS_DC )

...

Liste de paramètres

ht

...

compar

...

flag

...

pData

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_merge | Niveau supérieur | zend_hash_move_backwards_ex


zend_hash_move_backwards

zend_hash_move_backwards -- ...

Description

#include <zend_hash.h>

int zend_hash_move_backwards ( HashTable* ht )

...

Liste de paramètres

ht

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_move_backwards_ex | Niveau supérieur | zend_hash_move_forward_ex


zend_hash_move_backwards_ex

zend_hash_move_backwards_ex -- ...

Description

#include <zend_hash.h>

int zend_hash_move_backwards_ex ( HashTable* ht, HashPosition* pos )

...

Liste de paramètres

ht

...

pos

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_minmax | Niveau supérieur | zend_hash_move_backwards


zend_hash_move_forward

zend_hash_move_forward -- ...

Description

#include <zend_hash.h>

int zend_hash_move_forward ( HashTable* ht )

...

Liste de paramètres

ht

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_move_forward_ex | Niveau supérieur | zend_hash_next_free_element


zend_hash_move_forward_ex

zend_hash_move_forward_ex -- ...

Description

#include <zend_hash.h>

int zend_hash_move_forward_ex ( HashTable* ht, HashPosition* pos )

...

Liste de paramètres

ht

...

pos

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_move_backwards | Niveau supérieur | zend_hash_move_forward


zend_hash_next_free_element

zend_hash_next_free_element -- ...

Description

#include <zend_hash.h>

ulong zend_hash_next_free_element ( HashTable* ht )

...

Liste de paramètres

ht

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_move_forward | Niveau supérieur | zend_hash_next_index_insert


zend_hash_next_index_insert

zend_hash_next_index_insert -- ...

Description

#include <zend_hash.h>

int zend_hash_next_index_insert ( HashTable* ht, void* pData, uint nDataSize, void** pDest )

...

Liste de paramètres

ht

...

pData

...

nDataSize

...

pDest

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_next_free_element | Niveau supérieur | zend_hash_num_elements


zend_hash_num_elements

zend_hash_num_elements -- ...

Description

#include <zend_hash.h>

int zend_hash_num_elements ( HashTable* ht )

...

Liste de paramètres

ht

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_next_index_insert | Niveau supérieur | zend_hash_quick_add


zend_hash_quick_add

zend_hash_quick_add -- ...

Description

#include <zend_hash.h>

int zend_hash_quick_add ( HashTable* ht, char* arKey, uint nKeyLength, ulong h, void* pData, uint nDataSize, void** pDest )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

h

...

pData

...

nDataSize

...

pDest

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_num_elements | Niveau supérieur | zend_hash_quick_exists


zend_hash_quick_exists

zend_hash_quick_exists -- ...

Description

#include <zend_hash.h>

int zend_hash_quick_exists ( HashTable* ht, char* arKey, uint nKeyLength, ulong h )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

h

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_quick_add | Niveau supérieur | zend_hash_quick_find


zend_hash_quick_find

zend_hash_quick_find -- ...

Description

#include <zend_hash.h>

int zend_hash_quick_find ( HashTable* ht, char* arKey, uint nKeyLength, ulong h, void** pData )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

h

...

pData

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_quick_exists | Niveau supérieur | zend_hash_quick_update


zend_hash_quick_update

zend_hash_quick_update -- ...

Description

#include <zend_hash.h>

int zend_hash_quick_update ( HashTable* ht, char* arKey, uint nKeyLength, ulong h, void* pData, uint nDataSize, void** pDest )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

h

...

pData

...

nDataSize

...

pDest

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_quick_find | Niveau supérieur | zend_hash_rehash


zend_hash_rehash

zend_hash_rehash -- ...

Description

#include <zend_hash.h>

int zend_hash_rehash ( HashTable* ht )

...

Liste de paramètres

ht

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_quick_update | Niveau supérieur | zend_hash_reverse_apply


zend_hash_reverse_apply

zend_hash_reverse_apply -- ...

Description

#include <zend_hash.h>

void zend_hash_reverse_apply ( HashTable* ht, apply_func_t apply_func, magic TSRMLS_DC )

...

Liste de paramètres

ht

...

apply_func

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_rehash | Niveau supérieur | zend_hash_sort


zend_hash_sort

zend_hash_sort -- ...

Description

#include <zend_hash.h>

int zend_hash_sort ( HashTable* ht, sort_func_t sort_func, compare_func_t compare_func, int renumber, magic TSRMLS_DC )

...

Liste de paramètres

ht

...

sort_func

...

compare_func

...

renumber

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_reverse_apply | Niveau supérieur | zend_hash_update_current_key_ex


zend_hash_update

zend_hash_update -- ...

Description

#include <zend_hash.h>

int zend_hash_update ( HashTable* ht, char* arKey, uint nKeyLength, void* pData, uint nDataSize, void** pDest )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

pData

...

nDataSize

...

pDest

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_update_current_key | Niveau supérieur | zend_highlight


zend_hash_update_current_key

zend_hash_update_current_key -- ...

Description

#include <zend_hash.h>

int zend_hash_update_current_key ( HashTable* ht, int key_type, char* str_index, uint str_length, ulong num_index )

...

Liste de paramètres

ht

...

key_type

...

str_index

...

str_length

...

num_index

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_update_current_key_ex | Niveau supérieur | zend_hash_update


zend_hash_update_current_key_ex

zend_hash_update_current_key_ex -- ...

Description

#include <zend_hash.h>

int zend_hash_update_current_key_ex ( HashTable* ht, int key_type, char* str_index, uint str_length, ulong num_index, HashPosition* pos )

...

Liste de paramètres

ht

...

key_type

...

str_index

...

str_length

...

num_index

...

pos

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_sort | Niveau supérieur | zend_hash_update_current_key


zend_highlight

zend_highlight -- ...

Description

#include <zend_highlight.h>

void zend_highlight ( zend_syntax_highlighter_ini* syntax_highlighter_ini, magic TSRMLS_DC )

...

Liste de paramètres

syntax_highlighter_ini

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_hash_update | Niveau supérieur | zend_html_putc


zend_html_putc

zend_html_putc -- ...

Description

#include <zend_highlight.h>

void zend_html_putc ( char c )

...

Liste de paramètres

c

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_highlight | Niveau supérieur | zend_html_puts


zend_html_puts

zend_html_puts -- ...

Description

#include <zend_highlight.h>

void zend_html_puts ( const char* s, uint len, magic TSRMLS_DC )

...

Liste de paramètres

s

...

len

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_html_putc | Niveau supérieur | zend_ini_deactivate


zend_ini_deactivate

zend_ini_deactivate -- ...

Description

#include <zend_ini.h>

int zend_ini_deactivate ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_html_puts | Niveau supérieur | zend_ini_double


zend_ini_double

zend_ini_double -- ...

Description

#include <zend_ini.h>

double zend_ini_double ( char* name, uint name_length, int orig )

...

Liste de paramètres

name

...

name_length

...

orig

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_ini_deactivate | Niveau supérieur | zend_ini_global_shutdown


zend_ini_global_shutdown

zend_ini_global_shutdown -- ...

Description

#include <zend_ini.h>

int zend_ini_global_shutdown ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_ini_double | Niveau supérieur | zend_ini_long


zend_ini_long

zend_ini_long -- ...

Description

#include <zend_ini.h>

long zend_ini_long ( char* name, uint name_length, int orig )

...

Liste de paramètres

name

...

name_length

...

orig

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_ini_global_shutdown | Niveau supérieur | zend_ini_refresh_caches


zend_ini_refresh_caches

zend_ini_refresh_caches -- ...

Description

#include <zend_ini.h>

void zend_ini_refresh_caches ( int stage, magic TSRMLS_DC )

...

Liste de paramètres

stage

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_ini_long | Niveau supérieur | zend_ini_register_displayer


zend_ini_register_displayer

zend_ini_register_displayer -- ...

Description

#include <zend_ini.h>

int zend_ini_register_displayer ( char* name, uint name_length, void (*displayer )

...

Liste de paramètres

name

...

name_length

...

(*displayer

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_ini_refresh_caches | Niveau supérieur | zend_ini_shutdown


zend_ini_shutdown

zend_ini_shutdown -- ...

Description

#include <zend_ini.h>

int zend_ini_shutdown ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_ini_register_displayer | Niveau supérieur | zend_ini_sort_entries


zend_ini_sort_entries

zend_ini_sort_entries -- ...

Description

#include <zend_ini.h>

void zend_ini_sort_entries ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_ini_shutdown | Niveau supérieur | zend_ini_startup


zend_ini_startup

zend_ini_startup -- ...

Description

#include <zend_ini.h>

int zend_ini_startup ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_ini_sort_entries | Niveau supérieur | zend_ini_string


zend_ini_string

zend_ini_string -- ...

Description

#include <zend_ini.h>

char* zend_ini_string ( char* name, uint name_length, int orig )

...

Liste de paramètres

name

...

name_length

...

orig

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_ini_startup | Niveau supérieur | zend_initialize_class_data


zend_initialize_class_data

zend_initialize_class_data -- ...

Description

#include <zend_compile.h>

void zend_initialize_class_data ( zend_class_entry* ce, zend_bool nullify_handlers, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

nullify_handlers

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_ini_string | Niveau supérieur | zend_is_auto_global


zend_is_auto_global

zend_is_auto_global -- ...

Description

#include <zend_compile.h>

zend_bool zend_is_auto_global ( char* name, uint name_len, magic TSRMLS_DC )

...

Liste de paramètres

name

...

name_len

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_initialize_class_data | Niveau supérieur | zend_is_callable_ex


zend_is_callable

zend_is_callable -- ...

Description

#include <zend_API.h>

zend_bool zend_is_callable ( zval* callable, uint check_flags, zval* callable_name )

...

Liste de paramètres

callable

...

check_flags

...

callable_name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_is_callable_ex | Niveau supérieur | zend_is_compiling


zend_is_callable_ex

zend_is_callable_ex -- ...

Description

#include <zend_API.h>

zend_bool zend_is_callable_ex ( zval* callable, uint check_flags, zval* callable_name, zend_class_entry** ce_ptr, zend_function** fptr_ptr, zval*** zobj_ptr_ptr, magic TSRMLS_DC )

...

Liste de paramètres

callable

...

check_flags

...

callable_name

...

ce_ptr

...

fptr_ptr

...

zobj_ptr_ptr

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_is_auto_global | Niveau supérieur | zend_is_callable


zend_is_compiling

zend_is_compiling -- ...

Description

#include <zend_compile.h>

zend_bool zend_is_compiling ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_is_callable | Niveau supérieur | zend_is_executing


zend_is_executing

zend_is_executing -- ...

Description

#include <zend_execute.h>

zend_bool zend_is_executing ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_is_compiling | Niveau supérieur | zend_is_true


zend_is_true

zend_is_true -- ...

Description

#include <zend_execute.h>

int zend_is_true ( zval* op )

...

Liste de paramètres

op

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_is_executing | Niveau supérieur | zend_is_valid_identifier


zend_is_valid_identifier

zend_is_valid_identifier -- ...

Description

#include <zend_unicode.h>

int zend_is_valid_identifier ( UChar* ident, int32_t ident_len )

...

Liste de paramètres

ident

...

ident_len

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_is_true | Niveau supérieur | zend_list_addref


zend_list_addref

zend_list_addref -- ...

Description

#include <zend_list.h>

int zend_list_addref ( int id )

...

Liste de paramètres

id

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_is_valid_identifier | Niveau supérieur | zend_list_delete


zend_list_delete

zend_list_delete -- ...

Description

#include <zend_list.h>

int zend_list_delete ( int id )

...

Liste de paramètres

id

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_list_addref | Niveau supérieur | zend_list_find


zend_list_find

zend_list_find -- ...

Description

#include <zend_list.h>

void* zend_list_find ( int id, int* type )

...

Liste de paramètres

id

...

type

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_list_delete | Niveau supérieur | zend_list_insert


zend_list_insert

zend_list_insert -- ...

Description

#include <zend_list.h>

int zend_list_insert ( void* ptr, int type )

...

Liste de paramètres

ptr

...

type

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_list_find | Niveau supérieur | zend_lookup_class


zend_lookup_class

zend_lookup_class -- ...

Description

#include <zend_execute.h>

int zend_lookup_class ( char* name, int name_length, zend_class_entry*** ce, magic TSRMLS_DC )

...

Liste de paramètres

name

...

name_length

...

ce

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_list_insert | Niveau supérieur | zend_make_callable


zend_make_callable

zend_make_callable -- ...

Description

#include <zend_API.h>

zend_bool zend_make_callable ( zval* callable, zval* callable_name, magic TSRMLS_DC )

...

Liste de paramètres

callable

...

callable_name

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_lookup_class | Niveau supérieur | zend_make_compiled_string_description


zend_make_compiled_string_description

zend_make_compiled_string_description -- ...

Description

#include <zend_compile.h>

char* zend_make_compiled_string_description ( char* name, magic TSRMLS_DC )

...

Liste de paramètres

name

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_make_callable | Niveau supérieur | zend_make_printable_zval


zend_make_printable_zval

zend_make_printable_zval -- ...

Description

#include <zend.h>

void zend_make_printable_zval ( zval* expr, zval* expr_copy, int* use_copy )

...

Liste de paramètres

expr

...

expr_copy

...

use_copy

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_make_compiled_string_description | Niveau supérieur | zend_make_string_zval


zend_make_string_zval

zend_make_string_zval -- ...

Description

#include <zend.h>

void zend_make_string_zval ( zval* expr, zval* expr_copy, int* use_copy )

...

Liste de paramètres

expr

...

expr_copy

...

use_copy

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_make_printable_zval | Niveau supérieur | zend_make_unicode_zval


zend_make_unicode_zval

zend_make_unicode_zval -- ...

Description

#include <zend.h>

void zend_make_unicode_zval ( zval* expr, zval* expr_copy, int* use_copy )

...

Liste de paramètres

expr

...

expr_copy

...

use_copy

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_make_string_zval | Niveau supérieur | zend_mangle_property_name


zend_mangle_property_name

zend_mangle_property_name -- ...

Description

#include <zend_compile.h>

void zend_mangle_property_name ( char** dest, int* dest_length, char* src1, int src1_length, char* src2, int src2_length, int internal )

...

Liste de paramètres

dest

...

dest_length

...

src1

...

src1_length

...

src2

...

src2_length

...

internal

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_make_unicode_zval | Niveau supérieur | zend_merge_properties


zend_merge_properties

zend_merge_properties -- ...

Description

#include <zend_API.h>

void zend_merge_properties ( zval* obj, HashTable* properties, int destroy_ht, magic TSRMLS_DC )

...

Liste de paramètres

obj

...

properties

...

destroy_ht

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_mangle_property_name | Niveau supérieur | zend_message_dispatcher


zend_message_dispatcher

zend_message_dispatcher -- ...

Description

#include <zend.h>

void zend_message_dispatcher ( long message, void* data )

...

Liste de paramètres

message

...

data

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_merge_properties | Niveau supérieur | zend_normalize_identifier


zend_normalize_identifier

zend_normalize_identifier -- ...

Description

#include <zend_unicode.h>

int zend_normalize_identifier ( UChar** dest, int32_t* dest_len, UChar* ident, int32_t ident_len, zend_bool fold_case )

...

Liste de paramètres

dest

...

dest_len

...

ident

...

ident_len

...

fold_case

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_message_dispatcher | Niveau supérieur | zend_object_create_proxy


zend_object_create_proxy

zend_object_create_proxy -- ...

Description

#include <zend_objects_API.h>

zval* zend_object_create_proxy ( zval* object, zval* member, magic TSRMLS_DC )

...

Liste de paramètres

object

...

member

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_normalize_identifier | Niveau supérieur | zend_object_store_ctor_failed


zend_object_store_ctor_failed

zend_object_store_ctor_failed -- ...

Description

#include <zend_objects_API.h>

void zend_object_store_ctor_failed ( zval* zobject, magic TSRMLS_DC )

...

Liste de paramètres

zobject

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_object_create_proxy | Niveau supérieur | zend_object_store_get_object


zend_object_store_get_object

zend_object_store_get_object -- ...

Description

#include <zend_objects_API.h>

void* zend_object_store_get_object ( zval* object, magic TSRMLS_DC )

...

Liste de paramètres

object

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_object_store_ctor_failed | Niveau supérieur | zend_object_store_set_object


zend_object_store_set_object

zend_object_store_set_object -- ...

Description

#include <zend_objects_API.h>

void zend_object_store_set_object ( zval* zobject, void* object, magic TSRMLS_DC )

...

Liste de paramètres

zobject

...

object

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_object_store_get_object | Niveau supérieur | zend_objects_clone_members


zend_objects_clone_members

zend_objects_clone_members -- ...

Description

#include <zend_objects.h>

void zend_objects_clone_members ( zend_object* new_object, zend_object_value new_obj_val, zend_object* old_object, zend_object_handle handle, magic TSRMLS_DC )

...

Liste de paramètres

new_object

...

new_obj_val

...

old_object

...

handle

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_object_store_set_object | Niveau supérieur | zend_objects_clone_obj


zend_objects_clone_obj

zend_objects_clone_obj -- ...

Description

#include <zend_objects.h>

zend_object_value zend_objects_clone_obj ( zval* object, magic TSRMLS_DC )

...

Liste de paramètres

object

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_clone_members | Niveau supérieur | zend_objects_destroy_object


zend_objects_destroy_object

zend_objects_destroy_object -- ...

Description

#include <zend_objects.h>

void zend_objects_destroy_object ( zend_object* object, zend_object_handle handle, magic TSRMLS_DC )

...

Liste de paramètres

object

...

handle

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_clone_obj | Niveau supérieur | zend_objects_free_object_storage


zend_objects_free_object_storage

zend_objects_free_object_storage -- ...

Description

#include <zend_objects.h>

void zend_objects_free_object_storage ( zend_object* object, magic TSRMLS_DC )

...

Liste de paramètres

object

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_destroy_object | Niveau supérieur | zend_objects_get_address


zend_objects_get_address

zend_objects_get_address -- ...

Description

#include <zend_objects.h>

zend_object* zend_objects_get_address ( zval* object, magic TSRMLS_DC )

...

Liste de paramètres

object

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_free_object_storage | Niveau supérieur | zend_objects_new


zend_objects_new

zend_objects_new -- ...

Description

#include <zend_objects.h>

zend_object_value zend_objects_new ( zend_object** object, zend_class_entry* class_type, magic TSRMLS_DC )

...

Liste de paramètres

object

...

class_type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_get_address | Niveau supérieur | zend_objects_store_add_ref


zend_objects_store_add_ref

zend_objects_store_add_ref -- ...

Description

#include <zend_objects_API.h>

void zend_objects_store_add_ref ( zval* object, magic TSRMLS_DC )

...

Liste de paramètres

object

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_new | Niveau supérieur | zend_objects_store_call_destructors


zend_objects_store_call_destructors

zend_objects_store_call_destructors -- ...

Description

#include <zend_objects_API.h>

void zend_objects_store_call_destructors ( zend_objects_store* objects, magic TSRMLS_DC )

...

Liste de paramètres

objects

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_store_add_ref | Niveau supérieur | zend_objects_store_clone_obj


zend_objects_store_clone_obj

zend_objects_store_clone_obj -- ...

Description

#include <zend_objects_API.h>

zend_object_value zend_objects_store_clone_obj ( zval* object, magic TSRMLS_DC )

...

Liste de paramètres

object

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_store_call_destructors | Niveau supérieur | zend_objects_store_del_ref


zend_objects_store_del_ref

zend_objects_store_del_ref -- ...

Description

#include <zend_objects_API.h>

void zend_objects_store_del_ref ( zval* object, magic TSRMLS_DC )

...

Liste de paramètres

object

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_store_clone_obj | Niveau supérieur | zend_objects_store_destroy


zend_objects_store_destroy

zend_objects_store_destroy -- ...

Description

#include <zend_objects_API.h>

void zend_objects_store_destroy ( zend_objects_store* objects )

...

Liste de paramètres

objects

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_store_del_ref | Niveau supérieur | zend_objects_store_free_object_storage


zend_objects_store_free_object_storage

zend_objects_store_free_object_storage -- ...

Description

#include <zend_objects_API.h>

void zend_objects_store_free_object_storage ( zend_objects_store* objects, magic TSRMLS_DC )

...

Liste de paramètres

objects

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_store_destroy | Niveau supérieur | zend_objects_store_init


zend_objects_store_init

zend_objects_store_init -- ...

Description

#include <zend_objects_API.h>

void zend_objects_store_init ( zend_objects_store* objects, zend_uint init_size )

...

Liste de paramètres

objects

...

init_size

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_store_free_object_storage | Niveau supérieur | zend_objects_store_mark_destructed


zend_objects_store_mark_destructed

zend_objects_store_mark_destructed -- ...

Description

#include <zend_objects_API.h>

void zend_objects_store_mark_destructed ( zend_objects_store* objects, magic TSRMLS_DC )

...

Liste de paramètres

objects

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_store_init | Niveau supérieur | zend_objects_store_put


zend_objects_store_put

zend_objects_store_put -- ...

Description

#include <zend_objects_API.h>

zend_object_handle zend_objects_store_put ( void* object, zend_objects_store_dtor_t dtor, zend_objects_free_object_storage_t storage, zend_objects_store_clone_t clone, magic TSRMLS_DC )

...

Liste de paramètres

object

...

dtor

...

storage

...

clone

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_store_mark_destructed | Niveau supérieur | zend_output_debug_string


zend_output_debug_string

zend_output_debug_string -- ...

Description

#include <zend.h>

void zend_output_debug_string ( zend_bool trigger_break, char* format, ... )

...

Liste de paramètres

trigger_break

...

format

...

...

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_objects_store_put | Niveau supérieur | zend_parse_ini_file


zend_parse_ini_file

zend_parse_ini_file -- ...

Description

#include <zend_ini.h>

int zend_parse_ini_file ( zend_file_handle* fh, zend_bool unbuffered_errors, zend_ini_parser_cb_t ini_parser_cb, void* arg )

...

Liste de paramètres

fh

...

unbuffered_errors

...

ini_parser_cb

...

arg

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_output_debug_string | Niveau supérieur | zend_parse_method_parameters_ex


zend_parse_method_parameters

zend_parse_method_parameters -- ...

Description

#include <zend_API.h>

int zend_parse_method_parameters ( int num_args, magic TSRMLS_DC, zval* this_ptr, char* type_spec, ... )

...

Liste de paramètres

num_args

...

TSRMLS_DC

...

this_ptr

...

type_spec

...

...

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_parse_method_parameters_ex | Niveau supérieur | zend_parse_parameters_ex


zend_parse_method_parameters_ex

zend_parse_method_parameters_ex -- ...

Description

#include <zend_API.h>

int zend_parse_method_parameters_ex ( int flags, int num_args, magic TSRMLS_DC, zval* this_ptr, char* type_spec, ... )

...

Liste de paramètres

flags

...

num_args

...

TSRMLS_DC

...

this_ptr

...

type_spec

...

...

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_parse_ini_file | Niveau supérieur | zend_parse_method_parameters


zend_parse_parameters

zend_parse_parameters -- ...

Description

#include <zend_API.h>

int zend_parse_parameters ( int num_args, magic TSRMLS_DC, char* type_spec, ... )

...

Liste de paramètres

num_args

...

TSRMLS_DC

...

type_spec

...

...

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_parse_parameters_ex | Niveau supérieur | zend_prepare_scanner_converters


zend_parse_parameters_ex

zend_parse_parameters_ex -- ...

Description

#include <zend_API.h>

int zend_parse_parameters_ex ( int flags, int num_args, magic TSRMLS_DC, char* type_spec, ... )

...

Liste de paramètres

flags

...

num_args

...

TSRMLS_DC

...

type_spec

...

...

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_parse_method_parameters | Niveau supérieur | zend_parse_parameters


zend_prepare_scanner_converters

zend_prepare_scanner_converters -- ...

Description

#include <zend_compile.h>

int zend_prepare_scanner_converters ( const char* onetime_encoding, int run_time, magic TSRMLS_DC )

...

Liste de paramètres

onetime_encoding

...

run_time

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_parse_parameters | Niveau supérieur | zend_print_flat_zval_r


zend_print_flat_zval_r

zend_print_flat_zval_r -- ...

Description

#include <zend.h>

void zend_print_flat_zval_r ( zval* expr, magic TSRMLS_DC )

...

Liste de paramètres

expr

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_prepare_scanner_converters | Niveau supérieur | zend_print_variable


zend_print_variable

zend_print_variable -- ...

Description

#include <zend_variables.h>

int zend_print_variable ( zval* var )

...

Liste de paramètres

var

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_print_flat_zval_r | Niveau supérieur | zend_print_zval_ex


zend_print_zval

zend_print_zval -- ...

Description

#include <zend.h>

int zend_print_zval ( zval* expr, int indent )

...

Liste de paramètres

expr

...

indent

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_print_zval_r | Niveau supérieur | zend_qsort


zend_print_zval_ex

zend_print_zval_ex -- ...

Description

#include <zend.h>

int zend_print_zval_ex ( zend_write_func_t write_func, zval* expr, int indent )

...

Liste de paramètres

write_func

...

expr

...

indent

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_print_variable | Niveau supérieur | zend_print_zval_r_ex


zend_print_zval_r

zend_print_zval_r -- ...

Description

#include <zend.h>

void zend_print_zval_r ( zval* expr, int indent, magic TSRMLS_DC )

...

Liste de paramètres

expr

...

indent

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_print_zval_r_ex | Niveau supérieur | zend_print_zval


zend_print_zval_r_ex

zend_print_zval_r_ex -- ...

Description

#include <zend.h>

void zend_print_zval_r_ex ( zend_write_func_t write_func, zval* expr, int indent, magic TSRMLS_DC )

...

Liste de paramètres

write_func

...

expr

...

indent

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_print_zval_ex | Niveau supérieur | zend_print_zval_r


zend_qsort

zend_qsort -- ...

Description

#include <zend_qsort.h>

void zend_qsort ( void* base, size_t nmemb, size_t siz, compare_func_t compare, magic TSRMLS_DC )

...

Liste de paramètres

base

...

nmemb

...

siz

...

compare

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_print_zval | Niveau supérieur | zend_read_property


zend_read_property

zend_read_property -- ...

Description

#include <zend_API.h>

zval* zend_read_property ( zend_class_entry* scope, zval* object, char* name, int name_length, zend_bool silent, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

object

...

name

...

name_length

...

silent

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_qsort | Niveau supérieur | zend_read_static_property


zend_read_static_property

zend_read_static_property -- ...

Description

#include <zend_API.h>

zval* zend_read_static_property ( zend_class_entry* scope, char* name, int name_length, zend_bool silent, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

name

...

name_length

...

silent

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_read_property | Niveau supérieur | zend_register_auto_global


zend_register_auto_global

zend_register_auto_global -- ...

Description

#include <zend_compile.h>

int zend_register_auto_global ( char* name, uint name_len, zend_auto_global_callback auto_global_callback, magic TSRMLS_DC )

...

Liste de paramètres

name

...

name_len

...

auto_global_callback

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_read_static_property | Niveau supérieur | zend_register_constant


zend_register_constant

zend_register_constant -- ...

Description

#include <zend_constants.h>

int zend_register_constant ( zend_constant* c, magic TSRMLS_DC )

...

Liste de paramètres

c

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_auto_global | Niveau supérieur | zend_register_default_classes


zend_register_default_classes

zend_register_default_classes -- ...

Description

#include <zend_exceptions.h>

void zend_register_default_classes ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_constant | Niveau supérieur | zend_register_double_constant


zend_register_double_constant

zend_register_double_constant -- ...

Description

#include <zend_constants.h>

void zend_register_double_constant ( char* name, uint name_len, double dval, int flags, int module_number, magic TSRMLS_DC )

...

Liste de paramètres

name

...

name_len

...

dval

...

flags

...

module_number

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_default_classes | Niveau supérieur | zend_register_functions


zend_register_functions

zend_register_functions -- ...

Description

#include <zend_API.h>

int zend_register_functions ( zend_class_entry* scope, zend_function_entry* functions, HashTable* function_table, int type, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

functions

...

function_table

...

type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_double_constant | Niveau supérieur | zend_register_ini_entries


zend_register_ini_entries

zend_register_ini_entries -- ...

Description

#include <zend_ini.h>

int zend_register_ini_entries ( zend_ini_entry* ini_entry, int module_number, magic TSRMLS_DC )

...

Liste de paramètres

ini_entry

...

module_number

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_functions | Niveau supérieur | zend_register_interfaces


zend_register_interfaces

zend_register_interfaces -- ...

Description

#include <zend_interfaces.h>

void zend_register_interfaces ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_ini_entries | Niveau supérieur | zend_register_internal_class_ex


zend_register_internal_class

zend_register_internal_class -- ...

Description

#include <zend_API.h>

zend_class_entry* zend_register_internal_class ( zend_class_entry* class_entry, magic TSRMLS_DC )

...

Liste de paramètres

class_entry

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_internal_class_ex | Niveau supérieur | zend_register_internal_interface


zend_register_internal_class_ex

zend_register_internal_class_ex -- ...

Description

#include <zend_API.h>

zend_class_entry* zend_register_internal_class_ex ( zend_class_entry* class_entry, zend_class_entry* parent_ce, char* parent_name, magic TSRMLS_DC )

...

Liste de paramètres

class_entry

...

parent_ce

...

parent_name

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_interfaces | Niveau supérieur | zend_register_internal_class


zend_register_internal_interface

zend_register_internal_interface -- ...

Description

#include <zend_API.h>

zend_class_entry* zend_register_internal_interface ( zend_class_entry* orig_class_entry, magic TSRMLS_DC )

...

Liste de paramètres

orig_class_entry

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_internal_class | Niveau supérieur | zend_register_internal_module


zend_register_internal_module

zend_register_internal_module -- ...

Description

#include <zend_API.h>

zend_module_entry* zend_register_internal_module ( zend_module_entry* module_entry, magic TSRMLS_DC )

...

Liste de paramètres

module_entry

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_internal_interface | Niveau supérieur | zend_register_list_destructors_ex


zend_register_list_destructors

zend_register_list_destructors -- ...

Description

#include <zend_list.h>

int zend_register_list_destructors ( void (*ld)(void* ), void (*pld)(void* ), int module_number )

...

Liste de paramètres

)

...

)

...

module_number

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_list_destructors_ex | Niveau supérieur | zend_register_long_constant


zend_register_list_destructors_ex

zend_register_list_destructors_ex -- ...

Description

#include <zend_list.h>

int zend_register_list_destructors_ex ( rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char* type_name, int module_number )

...

Liste de paramètres

ld

...

pld

...

type_name

...

module_number

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_internal_module | Niveau supérieur | zend_register_list_destructors


zend_register_long_constant

zend_register_long_constant -- ...

Description

#include <zend_constants.h>

void zend_register_long_constant ( char* name, uint name_len, long lval, int flags, int module_number, magic TSRMLS_DC )

...

Liste de paramètres

name

...

name_len

...

lval

...

flags

...

module_number

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_list_destructors | Niveau supérieur | zend_register_module_ex


zend_register_module

zend_register_module -- ...

Description

int zend_register_module ( zend_module_entry *module_entry )

...

Liste de paramètres

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_module_ex | Niveau supérieur | zend_register_resource


zend_register_module_ex

zend_register_module_ex -- ...

Description

#include <zend_API.h>

zend_module_entry* zend_register_module_ex ( zend_module_entry* module, magic TSRMLS_DC )

...

Liste de paramètres

module

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_long_constant | Niveau supérieur | zend_register_module


zend_register_resource

zend_register_resource -- ...

Description

#include <zend_list.h>

int zend_register_resource ( zval* rsrc_result, void* rsrc_pointer, int rsrc_type )

...

Liste de paramètres

rsrc_result

...

rsrc_pointer

...

rsrc_type

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_module | Niveau supérieur | zend_register_string_constant


zend_register_string_constant

zend_register_string_constant -- ...

Description

#include <zend_constants.h>

void zend_register_string_constant ( char* name, uint name_len, char* strval, int flags, int module_number, magic TSRMLS_DC )

...

Liste de paramètres

name

...

name_len

...

strval

...

flags

...

module_number

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_resource | Niveau supérieur | zend_register_stringl_constant


zend_register_stringl_constant

zend_register_stringl_constant -- ...

Description

#include <zend_constants.h>

void zend_register_stringl_constant ( char* name, uint name_len, char* strval, uint strlen, int flags, int module_number, magic TSRMLS_DC )

...

Liste de paramètres

name

...

name_len

...

strval

...

strlen

...

flags

...

module_number

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_string_constant | Niveau supérieur | zend_reset_all_cv


zend_reset_all_cv

zend_reset_all_cv -- ...

Description

#include <zend_API.h>

void zend_reset_all_cv ( HashTable* symbol_table, magic TSRMLS_DC )

...

Liste de paramètres

symbol_table

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_register_stringl_constant | Niveau supérieur | zend_reset_locale_deps


zend_reset_locale_deps

zend_reset_locale_deps -- ...

Description

#include <zend.h>

void zend_reset_locale_deps ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_reset_all_cv | Niveau supérieur | zend_restore_compiled_filename


zend_restore_compiled_filename

zend_restore_compiled_filename -- ...

Description

#include <zend_compile.h>

void zend_restore_compiled_filename ( char* original_compiled_filename, magic TSRMLS_DC )

...

Liste de paramètres

original_compiled_filename

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_reset_locale_deps | Niveau supérieur | zend_restore_compiled_script_encoding


zend_restore_compiled_script_encoding

zend_restore_compiled_script_encoding -- ...

Description

#include <zend_compile.h>

void zend_restore_compiled_script_encoding ( char* original_script_enc, magic TSRMLS_DC )

...

Liste de paramètres

original_script_enc

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_restore_compiled_filename | Niveau supérieur | zend_restore_ini_entry


zend_restore_ini_entry

zend_restore_ini_entry -- ...

Description

#include <zend_ini.h>

int zend_restore_ini_entry ( char* name, uint name_length, int stage )

...

Liste de paramètres

name

...

name_length

...

stage

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_restore_compiled_script_encoding | Niveau supérieur | zend_rsrc_list_get_rsrc_type


zend_rsrc_list_get_rsrc_type

zend_rsrc_list_get_rsrc_type -- ...

Description

#include <zend_list.h>

char* zend_rsrc_list_get_rsrc_type ( int resource, magic TSRMLS_DC )

...

Liste de paramètres

resource

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_restore_ini_entry | Niveau supérieur | zend_set_compiled_filename


zend_set_compiled_filename

zend_set_compiled_filename -- ...

Description

#include <zend_compile.h>

char* zend_set_compiled_filename ( char* new_compiled_filename, magic TSRMLS_DC )

...

Liste de paramètres

new_compiled_filename

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_rsrc_list_get_rsrc_type | Niveau supérieur | zend_set_compiled_script_encoding


zend_set_compiled_script_encoding

zend_set_compiled_script_encoding -- ...

Description

#include <zend_compile.h>

char* zend_set_compiled_script_encoding ( char* new_script_enc, magic TSRMLS_DC )

...

Liste de paramètres

new_script_enc

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_set_compiled_filename | Niveau supérieur | zend_set_memory_limit


zend_set_memory_limit

zend_set_memory_limit -- ...

Description

#include <zend_alloc.h>

int zend_set_memory_limit ( unsigned int memory_limit )

...

Liste de paramètres

memory_limit

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_set_compiled_script_encoding | Niveau supérieur | zend_set_timeout


zend_set_timeout

zend_set_timeout -- ...

Description

#include <zend_execute.h>

void zend_set_timeout ( long seconds )

...

Liste de paramètres

seconds

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_set_memory_limit | Niveau supérieur | zend_set_user_opcode_handler


zend_set_user_opcode_handler

zend_set_user_opcode_handler -- ...

Description

#include <zend_execute.h>

int zend_set_user_opcode_handler ( zend_uchar opcode, opcode_handler_t handler )

...

Liste de paramètres

opcode

...

handler

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_set_timeout | Niveau supérieur | zend_startup_module_ex


zend_startup_module

zend_startup_module -- ...

Description

#include <zend_API.h>

int zend_startup_module ( zend_module_entry* module_entry )

...

Liste de paramètres

module_entry

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_startup_module_ex | Niveau supérieur | zend_startup_modules


zend_startup_module_ex

zend_startup_module_ex -- ...

Description

#include <zend_API.h>

int zend_startup_module_ex ( zend_module_entry* module, magic TSRMLS_DC )

...

Liste de paramètres

module

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_set_user_opcode_handler | Niveau supérieur | zend_startup_module


zend_startup_modules

zend_startup_modules -- ...

Description

#include <zend_API.h>

int zend_startup_modules ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_startup_module | Niveau supérieur | zend_std_call_user_call


zend_std_call_user_call

zend_std_call_user_call -- ...

Description

#include <zend_object_handlers.h>

void zend_std_call_user_call ( INTERNAL_FUNCTION_PARAMETERS )

...

Liste de paramètres

INTERNAL_FUNCTION_PARAMETERS

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_startup_modules | Niveau supérieur | zend_std_cast_object_tostring


zend_std_cast_object_tostring

zend_std_cast_object_tostring -- ...

Description

#include <zend_object_handlers.h>

int zend_std_cast_object_tostring ( zval* readobj, zval* writeobj, int type, magic TSRMLS_DC )

...

Liste de paramètres

readobj

...

writeobj

...

type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_std_call_user_call | Niveau supérieur | zend_std_get_static_property


zend_std_get_static_property

zend_std_get_static_property -- ...

Description

#include <zend_object_handlers.h>

zval** zend_std_get_static_property ( zend_class_entry* ce, zend_uchar type, void* property_name, int property_name_len, zend_bool silent, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

type

...

property_name

...

property_name_len

...

silent

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_std_cast_object_tostring | Niveau supérieur | zend_std_unset_static_property


zend_std_unset_static_property

zend_std_unset_static_property -- ...

Description

#include <zend_object_handlers.h>

zend_bool zend_std_unset_static_property ( zend_class_entry* ce, zend_uchar type, void* property_name, int property_name_len, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

type

...

property_name

...

property_name_len

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_std_get_static_property | Niveau supérieur | zend_stream_close


zend_stream_close

zend_stream_close -- ...

Description

#include <zend_stream.h>

void zend_stream_close ( ... handle )

...

Liste de paramètres

handle

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_std_unset_static_property | Niveau supérieur | zend_stream_ferror


zend_stream_ferror

zend_stream_ferror -- ...

Description

#include <zend_stream.h>

int zend_stream_ferror ( zend_file_handle* file_handle, magic TSRMLS_DC )

...

Liste de paramètres

file_handle

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_stream_close | Niveau supérieur | zend_stream_fixup


zend_stream_fixup

zend_stream_fixup -- ...

Description

#include <zend_stream.h>

int zend_stream_fixup ( zend_file_handle* file_handle, magic TSRMLS_DC )

...

Liste de paramètres

file_handle

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_stream_ferror | Niveau supérieur | zend_stream_ftell


zend_stream_ftell

zend_stream_ftell -- ...

Description

#include <zend_stream.h>

long zend_stream_ftell ( zend_file_handle* file_handle, magic TSRMLS_DC )

...

Liste de paramètres

file_handle

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_stream_fixup | Niveau supérieur | zend_stream_getc


zend_stream_getc

zend_stream_getc -- ...

Description

#include <zend_stream.h>

int zend_stream_getc ( zend_file_handle* file_handle, magic TSRMLS_DC )

...

Liste de paramètres

file_handle

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_stream_ftell | Niveau supérieur | zend_stream_open


zend_stream_open

zend_stream_open -- ...

Description

#include <zend_stream.h>

int zend_stream_open ( const char* filename, zend_file_handle* handle, magic TSRMLS_DC )

...

Liste de paramètres

filename

...

handle

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_stream_getc | Niveau supérieur | zend_stream_read


zend_stream_read

zend_stream_read -- ...

Description

#include <zend_stream.h>

size_t zend_stream_read ( zend_file_handle* file_handle, char* buf, size_t len, magic TSRMLS_DC )

...

Liste de paramètres

file_handle

...

buf

...

len

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_stream_open | Niveau supérieur | zend_strip


zend_strip

zend_strip -- ...

Description

#include <zend_highlight.h>

void zend_strip ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_stream_read | Niveau supérieur | zend_strndup


zend_strndup

zend_strndup -- ...

Description

#include <zend_alloc.h>

char* zend_strndup ( const char* s, unsigned int length )

...

Liste de paramètres

s

...

length

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_strip | Niveau supérieur | zend_strtod


zend_strtod

zend_strtod -- ...

Description

#include <zend_strtod.h>

double zend_strtod ( const char* s00, char** se )

...

Liste de paramètres

s00

...

se

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_strndup | Niveau supérieur | zend_symtable_del


zend_symtable_del

zend_symtable_del -- ...

Description

#include <zend_hash.h>

int zend_symtable_del ( HashTable* ht, char* arKey, uint nKeyLength )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_strtod | Niveau supérieur | zend_symtable_exists


zend_symtable_exists

zend_symtable_exists -- ...

Description

#include <zend_hash.h>

int zend_symtable_exists ( HashTable* ht, char* arKey, uint nKeyLength )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_symtable_del | Niveau supérieur | zend_symtable_find


zend_symtable_find

zend_symtable_find -- ...

Description

#include <zend_hash.h>

int zend_symtable_find ( HashTable* ht, char* arKey, uint nKeyLength, void** pData )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

pData

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_symtable_exists | Niveau supérieur | zend_symtable_update_current_key


zend_symtable_update

zend_symtable_update -- ...

Description

#include <zend_hash.h>

int zend_symtable_update ( HashTable* ht, char* arKey, uint nKeyLength, void* pData, uint nDataSize, void** pDest )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

pData

...

nDataSize

...

pDest

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_symtable_update_current_key | Niveau supérieur | zend_throw_exception_object


zend_symtable_update_current_key

zend_symtable_update_current_key -- ...

Description

#include <zend_hash.h>

int zend_symtable_update_current_key ( HashTable* ht, char* arKey, uint nKeyLength )

...

Liste de paramètres

ht

...

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_symtable_find | Niveau supérieur | zend_symtable_update


zend_throw_exception_object

zend_throw_exception_object -- ...

Description

#include <zend_exceptions.h>

void zend_throw_exception_object ( zval* exception, magic TSRMLS_DC )

...

Liste de paramètres

exception

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_symtable_update | Niveau supérieur | zend_timeout


zend_timeout

zend_timeout -- ...

Description

#include <zend_execute.h>

void zend_timeout ( int dummy )

...

Liste de paramètres

dummy

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_throw_exception_object | Niveau supérieur | zend_u_declare_property_ex


zend_u_declare_property

zend_u_declare_property -- ...

Description

#include <zend_API.h>

int zend_u_declare_property ( zend_class_entry* ce, zend_uchar type, void* name, int name_length, zval* property, int access_type, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

type

...

name

...

name_length

...

property

...

access_type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_declare_property_ex | Niveau supérieur | zend_u_delete_global_variable


zend_u_declare_property_ex

zend_u_declare_property_ex -- ...

Description

#include <zend_API.h>

int zend_u_declare_property_ex ( zend_class_entry* ce, zend_uchar type, void* name, int name_length, zval* property, int access_type, char* doc_comment, int doc_comment_len, magic TSRMLS_DC )

...

Liste de paramètres

ce

...

type

...

name

...

name_length

...

property

...

access_type

...

doc_comment

...

doc_comment_len

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_timeout | Niveau supérieur | zend_u_declare_property


zend_u_delete_global_variable

zend_u_delete_global_variable -- ...

Description

#include <zend_API.h>

int zend_u_delete_global_variable ( zend_uchar type, void* name, int name_len, magic TSRMLS_DC )

...

Liste de paramètres

type

...

name

...

name_len

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_declare_property | Niveau supérieur | zend_u_eval_string_ex


zend_u_eval_string

zend_u_eval_string -- ...

Description

#include <zend_execute.h>

int zend_u_eval_string ( zend_uchar type, void* str, zval* retval_ptr, char* string_name, magic TSRMLS_DC )

...

Liste de paramètres

type

...

str

...

retval_ptr

...

string_name

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_eval_string_ex | Niveau supérieur | zend_u_fetch_class


zend_u_eval_string_ex

zend_u_eval_string_ex -- ...

Description

#include <zend_execute.h>

int zend_u_eval_string_ex ( zend_uchar type, void* str, zval* retval_ptr, char* string_name, int handle_exceptions, magic TSRMLS_DC )

...

Liste de paramètres

type

...

str

...

retval_ptr

...

string_name

...

handle_exceptions

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_delete_global_variable | Niveau supérieur | zend_u_eval_string


zend_u_fetch_class

zend_u_fetch_class -- ...

Description

#include <zend_execute.h>

zend_class_entry* zend_u_fetch_class ( zend_uchar type, void* class_name, uint class_name_len, int fetch_type, magic TSRMLS_DC )

...

Liste de paramètres

type

...

class_name

...

class_name_len

...

fetch_type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_eval_string | Niveau supérieur | zend_u_get_constant


zend_u_get_constant

zend_u_get_constant -- ...

Description

#include <zend_constants.h>

int zend_u_get_constant ( zend_uchar type, void* name, uint name_len, zval* result, magic TSRMLS_DC )

...

Liste de paramètres

type

...

name

...

name_len

...

result

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_fetch_class | Niveau supérieur | zend_u_get_hash_value


zend_u_get_hash_value

zend_u_get_hash_value -- ...

Description

#include <zend_hash.h>

ulong zend_u_get_hash_value ( zend_uchar type, char* arKey, uint nKeyLength )

...

Liste de paramètres

type

...

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_get_constant | Niveau supérieur | zend_u_hash_add_empty_element


zend_u_hash_add

zend_u_hash_add -- ...

Description

#include <zend_hash.h>

int zend_u_hash_add ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength, void* pData, uint nDataSize, void** pDest )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

pData

...

nDataSize

...

pDest

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_hash_add_empty_element | Niveau supérieur | zend_u_hash_del_key_or_index


zend_u_hash_add_empty_element

zend_u_hash_add_empty_element -- ...

Description

#include <zend_hash.h>

int zend_u_hash_add_empty_element ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_get_hash_value | Niveau supérieur | zend_u_hash_add


zend_u_hash_del

zend_u_hash_del -- ...

Description

#include <zend_hash.h>

int zend_u_hash_del ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_hash_del_key_or_index | Niveau supérieur | zend_u_hash_exists


zend_u_hash_del_key_or_index

zend_u_hash_del_key_or_index -- ...

Description

#include <zend_hash.h>

int zend_u_hash_del_key_or_index ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength, ulong h, int flag )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

h

...

flag

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_hash_add | Niveau supérieur | zend_u_hash_del


zend_u_hash_exists

zend_u_hash_exists -- ...

Description

#include <zend_hash.h>

int zend_u_hash_exists ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_hash_del | Niveau supérieur | zend_u_hash_find


zend_u_hash_find

zend_u_hash_find -- ...

Description

#include <zend_hash.h>

int zend_u_hash_find ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength, void** pData )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

pData

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_hash_exists | Niveau supérieur | zend_u_hash_func


zend_u_hash_func

zend_u_hash_func -- ...

Description

#include <zend_hash.h>

ulong zend_u_hash_func ( zend_uchar type, char* arKey, uint nKeyLength )

...

Liste de paramètres

type

...

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_hash_find | Niveau supérieur | zend_u_hash_init_ex


zend_u_hash_init

zend_u_hash_init -- ...

Description

#include <zend_hash.h>

int zend_u_hash_init ( HashTable* ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent, zend_bool unicode )

...

Liste de paramètres

ht

...

nSize

...

pHashFunction

...

pDestructor

...

persistent

...

unicode

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_hash_init_ex | Niveau supérieur | zend_u_hash_quick_add


zend_u_hash_init_ex

zend_u_hash_init_ex -- ...

Description

#include <zend_hash.h>

int zend_u_hash_init_ex ( HashTable* ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent, zend_bool unicode, zend_bool bApplyProtection )

...

Liste de paramètres

ht

...

nSize

...

pHashFunction

...

pDestructor

...

persistent

...

unicode

...

bApplyProtection

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_hash_func | Niveau supérieur | zend_u_hash_init


zend_u_hash_quick_add

zend_u_hash_quick_add -- ...

Description

#include <zend_hash.h>

int zend_u_hash_quick_add ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength, ulong h, void* pData, uint nDataSize, void** pDest )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

h

...

pData

...

nDataSize

...

pDest

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_hash_init | Niveau supérieur | zend_u_hash_quick_exists


zend_u_hash_quick_exists

zend_u_hash_quick_exists -- ...

Description

#include <zend_hash.h>

int zend_u_hash_quick_exists ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength, ulong h )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

h

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_hash_quick_add | Niveau supérieur | zend_u_hash_quick_find


zend_u_hash_quick_find

zend_u_hash_quick_find -- ...

Description

#include <zend_hash.h>

int zend_u_hash_quick_find ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength, ulong h, void** pData )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

h

...

pData

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_hash_quick_exists | Niveau supérieur | zend_u_hash_quick_update


zend_u_hash_quick_update

zend_u_hash_quick_update -- ...

Description

#include <zend_hash.h>

int zend_u_hash_quick_update ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength, ulong h, void* pData, uint nDataSize, void** pDest )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

h

...

pData

...

nDataSize

...

pDest

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_hash_quick_find | Niveau supérieur | zend_u_hash_update


zend_u_hash_update

zend_u_hash_update -- ...

Description

#include <zend_hash.h>

int zend_u_hash_update ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength, void* pData, uint nDataSize, void** pDest )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

pData

...

nDataSize

...

pDest

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_hash_quick_update | Niveau supérieur | zend_u_is_auto_global


zend_u_is_auto_global

zend_u_is_auto_global -- ...

Description

#include <zend_compile.h>

zend_bool zend_u_is_auto_global ( zend_uchar type, void* name, uint name_len, magic TSRMLS_DC )

...

Liste de paramètres

type

...

name

...

name_len

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_hash_update | Niveau supérieur | zend_u_lookup_class_ex


zend_u_lookup_class

zend_u_lookup_class -- ...

Description

#include <zend_execute.h>

int zend_u_lookup_class ( zend_uchar type, void* name, int name_length, zend_class_entry*** ce, magic TSRMLS_DC )

...

Liste de paramètres

type

...

name

...

name_length

...

ce

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_lookup_class_ex | Niveau supérieur | zend_u_mangle_property_name


zend_u_lookup_class_ex

zend_u_lookup_class_ex -- ...

Description

#include <zend_execute.h>

int zend_u_lookup_class_ex ( zend_uchar type, void* name, int name_length, int use_autoload, zend_class_entry*** ce, magic TSRMLS_DC )

...

Liste de paramètres

type

...

name

...

name_length

...

use_autoload

...

ce

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_is_auto_global | Niveau supérieur | zend_u_lookup_class


zend_u_mangle_property_name

zend_u_mangle_property_name -- ...

Description

#include <zend_compile.h>

void zend_u_mangle_property_name ( char** dest, int* dest_length, zend_uchar type, char* src1, int src1_length, char* src2, int src2_length, int internal )

...

Liste de paramètres

dest

...

dest_length

...

type

...

src1

...

src1_length

...

src2

...

src2_length

...

internal

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_lookup_class | Niveau supérieur | zend_u_register_constant


zend_u_register_constant

zend_u_register_constant -- ...

Description

#include <zend_constants.h>

int zend_u_register_constant ( zend_uchar type, zend_constant* c, magic TSRMLS_DC )

...

Liste de paramètres

type

...

c

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_mangle_property_name | Niveau supérieur | zend_u_symtable_del


zend_u_symtable_del

zend_u_symtable_del -- ...

Description

#include <zend_hash.h>

int zend_u_symtable_del ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_register_constant | Niveau supérieur | zend_u_symtable_exists


zend_u_symtable_exists

zend_u_symtable_exists -- ...

Description

#include <zend_hash.h>

int zend_u_symtable_exists ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_symtable_del | Niveau supérieur | zend_u_symtable_find


zend_u_symtable_find

zend_u_symtable_find -- ...

Description

#include <zend_hash.h>

int zend_u_symtable_find ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength, void** pData )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

pData

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_symtable_exists | Niveau supérieur | zend_u_symtable_update_current_key


zend_u_symtable_update

zend_u_symtable_update -- ...

Description

#include <zend_hash.h>

int zend_u_symtable_update ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength, void* pData, uint nDataSize, void** pDest )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

pData

...

nDataSize

...

pDest

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_symtable_update_current_key | Niveau supérieur | zend_u_unmangle_property_name


zend_u_symtable_update_current_key

zend_u_symtable_update_current_key -- ...

Description

#include <zend_hash.h>

int zend_u_symtable_update_current_key ( HashTable* ht, zend_uchar type, void* arKey, uint nKeyLength )

...

Liste de paramètres

ht

...

type

...

arKey

...

nKeyLength

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_symtable_find | Niveau supérieur | zend_u_symtable_update


zend_u_unmangle_property_name

zend_u_unmangle_property_name -- ...

Description

#include <zend_compile.h>

void zend_u_unmangle_property_name ( zend_uchar type, char* mangled_property, char** prop_name, char** class_name )

...

Liste de paramètres

type

...

mangled_property

...

prop_name

...

class_name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_symtable_update | Niveau supérieur | zend_unmangle_property_name


zend_unmangle_property_name

zend_unmangle_property_name -- ...

Description

#include <zend_compile.h>

void zend_unmangle_property_name ( char* mangled_property, char** prop_name, char** class_name )

...

Liste de paramètres

mangled_property

...

prop_name

...

class_name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_u_unmangle_property_name | Niveau supérieur | zend_unregister_functions


zend_unregister_functions

zend_unregister_functions -- ...

Description

#include <zend_API.h>

void zend_unregister_functions ( zend_function_entry* functions, int count, HashTable* function_table, magic TSRMLS_DC )

...

Liste de paramètres

functions

...

count

...

function_table

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_unmangle_property_name | Niveau supérieur | zend_unregister_ini_entries


zend_unregister_ini_entries

zend_unregister_ini_entries -- ...

Description

#include <zend_ini.h>

void zend_unregister_ini_entries ( int module_number, magic TSRMLS_DC )

...

Liste de paramètres

module_number

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_unregister_functions | Niveau supérieur | zend_unset_timeout


zend_unset_timeout

zend_unset_timeout -- ...

Description

#include <zend_execute.h>

void zend_unset_timeout ( TSRMLS_D )

...

Liste de paramètres

TSRMLS_D

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_unregister_ini_entries | Niveau supérieur | zend_update_class_constants


zend_update_class_constants

zend_update_class_constants -- ...

Description

#include <zend_API.h>

void zend_update_class_constants ( zend_class_entry* class_type, magic TSRMLS_DC )

...

Liste de paramètres

class_type

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_unset_timeout | Niveau supérieur | zend_update_property_ascii_string


zend_update_property

zend_update_property -- ...

Description

#include <zend_API.h>

void zend_update_property ( zend_class_entry* scope, zval* object, char* name, int name_length, zval* value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

object

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_property_unicodel | Niveau supérieur | zend_update_static_property_ascii_string


zend_update_property_ascii_string

zend_update_property_ascii_string -- ...

Description

#include <zend_API.h>

void zend_update_property_ascii_string ( zend_class_entry* scope, zval* object, char* name, int name_length, char* value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

object

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_class_constants | Niveau supérieur | zend_update_property_ascii_stringl


zend_update_property_ascii_stringl

zend_update_property_ascii_stringl -- ...

Description

#include <zend_API.h>

void zend_update_property_ascii_stringl ( zend_class_entry* scope, zval* object, char* name, int name_length, char* value, int value_length, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

object

...

name

...

name_length

...

value

...

value_length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_property_ascii_string | Niveau supérieur | zend_update_property_bool


zend_update_property_bool

zend_update_property_bool -- ...

Description

#include <zend_API.h>

void zend_update_property_bool ( zend_class_entry* scope, zval* object, char* name, int name_length, long value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

object

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_property_ascii_stringl | Niveau supérieur | zend_update_property_double


zend_update_property_double

zend_update_property_double -- ...

Description

#include <zend_API.h>

void zend_update_property_double ( zend_class_entry* scope, zval* object, char* name, int name_length, double value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

object

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_property_bool | Niveau supérieur | zend_update_property_long


zend_update_property_long

zend_update_property_long -- ...

Description

#include <zend_API.h>

void zend_update_property_long ( zend_class_entry* scope, zval* object, char* name, int name_length, long value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

object

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_property_double | Niveau supérieur | zend_update_property_null


zend_update_property_null

zend_update_property_null -- ...

Description

#include <zend_API.h>

void zend_update_property_null ( zend_class_entry* scope, zval* object, char* name, int name_length, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

object

...

name

...

name_length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_property_long | Niveau supérieur | zend_update_property_rt_string


zend_update_property_rt_string

zend_update_property_rt_string -- ...

Description

#include <zend_API.h>

void zend_update_property_rt_string ( zend_class_entry* scope, zval* object, char* name, int name_length, char* value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

object

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_property_null | Niveau supérieur | zend_update_property_rt_stringl


zend_update_property_rt_stringl

zend_update_property_rt_stringl -- ...

Description

#include <zend_API.h>

void zend_update_property_rt_stringl ( zend_class_entry* scope, zval* object, char* name, int name_length, char* value, int value_length, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

object

...

name

...

name_length

...

value

...

value_length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_property_rt_string | Niveau supérieur | zend_update_property_string


zend_update_property_string

zend_update_property_string -- ...

Description

#include <zend_API.h>

void zend_update_property_string ( zend_class_entry* scope, zval* object, char* name, int name_length, char* value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

object

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_property_rt_stringl | Niveau supérieur | zend_update_property_stringl


zend_update_property_stringl

zend_update_property_stringl -- ...

Description

#include <zend_API.h>

void zend_update_property_stringl ( zend_class_entry* scope, zval* object, char* name, int name_length, char* value, int value_length, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

object

...

name

...

name_length

...

value

...

value_length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_property_string | Niveau supérieur | zend_update_property_unicode


zend_update_property_unicode

zend_update_property_unicode -- ...

Description

#include <zend_API.h>

void zend_update_property_unicode ( zend_class_entry* scope, zval* object, char* name, int name_length, UChar* value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

object

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_property_stringl | Niveau supérieur | zend_update_property_unicodel


zend_update_property_unicodel

zend_update_property_unicodel -- ...

Description

#include <zend_API.h>

void zend_update_property_unicodel ( zend_class_entry* scope, zval* object, char* name, int name_length, UChar* value, int value_length, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

object

...

name

...

name_length

...

value

...

value_length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_property_unicode | Niveau supérieur | zend_update_property


zend_update_static_property

zend_update_static_property -- ...

Description

#include <zend_API.h>

int zend_update_static_property ( zend_class_entry* scope, char* name, int name_length, zval* value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_static_property_unicodel | Niveau supérieur | zend_ustrndup


zend_update_static_property_ascii_string

zend_update_static_property_ascii_string -- ...

Description

#include <zend_API.h>

int zend_update_static_property_ascii_string ( zend_class_entry* scope, char* name, int name_length, char* value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_property | Niveau supérieur | zend_update_static_property_ascii_stringl


zend_update_static_property_ascii_stringl

zend_update_static_property_ascii_stringl -- ...

Description

#include <zend_API.h>

int zend_update_static_property_ascii_stringl ( zend_class_entry* scope, char* name, int name_length, char* value, int value_length, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

name

...

name_length

...

value

...

value_length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_static_property_ascii_string | Niveau supérieur | zend_update_static_property_bool


zend_update_static_property_bool

zend_update_static_property_bool -- ...

Description

#include <zend_API.h>

int zend_update_static_property_bool ( zend_class_entry* scope, char* name, int name_length, long value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_static_property_ascii_stringl | Niveau supérieur | zend_update_static_property_double


zend_update_static_property_double

zend_update_static_property_double -- ...

Description

#include <zend_API.h>

int zend_update_static_property_double ( zend_class_entry* scope, char* name, int name_length, double value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_static_property_bool | Niveau supérieur | zend_update_static_property_long


zend_update_static_property_long

zend_update_static_property_long -- ...

Description

#include <zend_API.h>

int zend_update_static_property_long ( zend_class_entry* scope, char* name, int name_length, long value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_static_property_double | Niveau supérieur | zend_update_static_property_null


zend_update_static_property_null

zend_update_static_property_null -- ...

Description

#include <zend_API.h>

int zend_update_static_property_null ( zend_class_entry* scope, char* name, int name_length, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

name

...

name_length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_static_property_long | Niveau supérieur | zend_update_static_property_rt_string


zend_update_static_property_rt_string

zend_update_static_property_rt_string -- ...

Description

#include <zend_API.h>

int zend_update_static_property_rt_string ( zend_class_entry* scope, char* name, int name_length, char* value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_static_property_null | Niveau supérieur | zend_update_static_property_rt_stringl


zend_update_static_property_rt_stringl

zend_update_static_property_rt_stringl -- ...

Description

#include <zend_API.h>

int zend_update_static_property_rt_stringl ( zend_class_entry* scope, char* name, int name_length, char* value, int value_length, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

name

...

name_length

...

value

...

value_length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_static_property_rt_string | Niveau supérieur | zend_update_static_property_string


zend_update_static_property_string

zend_update_static_property_string -- ...

Description

#include <zend_API.h>

int zend_update_static_property_string ( zend_class_entry* scope, char* name, int name_length, char* value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_static_property_rt_stringl | Niveau supérieur | zend_update_static_property_stringl


zend_update_static_property_stringl

zend_update_static_property_stringl -- ...

Description

#include <zend_API.h>

int zend_update_static_property_stringl ( zend_class_entry* scope, char* name, int name_length, char* value, int value_length, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

name

...

name_length

...

value

...

value_length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_static_property_string | Niveau supérieur | zend_update_static_property_unicode


zend_update_static_property_unicode

zend_update_static_property_unicode -- ...

Description

#include <zend_API.h>

int zend_update_static_property_unicode ( zend_class_entry* scope, char* name, int name_length, UChar* value, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

name

...

name_length

...

value

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_static_property_stringl | Niveau supérieur | zend_update_static_property_unicodel


zend_update_static_property_unicodel

zend_update_static_property_unicodel -- ...

Description

#include <zend_API.h>

int zend_update_static_property_unicodel ( zend_class_entry* scope, char* name, int name_length, UChar* value, int value_length, magic TSRMLS_DC )

...

Liste de paramètres

scope

...

name

...

name_length

...

value

...

value_length

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_static_property_unicode | Niveau supérieur | zend_update_static_property


zend_ustrndup

zend_ustrndup -- ...

Description

#include <zend_alloc.h>

UChar* zend_ustrndup ( const UChar* s, uint length )

...

Liste de paramètres

s

...

length

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_update_static_property | Niveau supérieur | zend_wrong_param_count


zend_wrong_param_count

zend_wrong_param_count -- Generate standard error message for wrong parameter count in function or method call

Description

#include <zend_API.h>

void zend_wrong_param_count ( magic TSRMLS_D )

zend_wrong_param_count() produces a standard warning message for functions or class methods that have been called with a wrong number of parameters. The function automaticly puts the right function name and class name (if needed) into the error message.

Usually the ZEND_WRONG_PARAM_COUNT() and ZEND_WRONG_PARAM_COUNT_WITH_RETVAL() macros are used to invoke this function instead of calling it immediately as this saves typing the TSRMLS_C argument.

Liste de paramètres

TSRMLS_D

Thread context

Précédent | Sommaire | Suivant
zend_ustrndup | Niveau supérieur | zend_zval_type_name


zend_zval_type_name

zend_zval_type_name -- Returns the PHP type name for a given zval

Description

#include <zend_API.h>

char* zend_zval_type_name ( zval* arg )

zend_zval_type_name() returns the PHP typename for the current value of the zval pointed to by arg.

Liste de paramètres

arg

A pointer to the zval to be examined.

Valeurs de retour

A pointer to a static PHP typename string.

Précédent | Sommaire | Suivant
zend_wrong_param_count | Niveau supérieur | zval_add_ref


zval_add_ref

zval_add_ref -- ...

Description

#include <zend_variables.h>

void zval_add_ref ( zval** p )

...

Liste de paramètres

p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zend_zval_type_name | Niveau supérieur | zval_internal_dtor


zval_internal_dtor

zval_internal_dtor -- ...

Description

#include <zend_variables.h>

void zval_internal_dtor ( zval* zvalue )

...

Liste de paramètres

zvalue

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zval_add_ref | Niveau supérieur | zval_internal_ptr_dtor


zval_internal_ptr_dtor

zval_internal_ptr_dtor -- ...

Description

#include <zend_variables.h>

void zval_internal_ptr_dtor ( zval** zvalue )

...

Liste de paramètres

zvalue

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zval_internal_dtor | Niveau supérieur | zval_ptr_dtor


zval_ptr_dtor

zval_ptr_dtor -- ...

Description

#include <zend_variables.h>

void zval_ptr_dtor ( zval** zval_ptr )

...

Liste de paramètres

zval_ptr

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zval_internal_ptr_dtor | Niveau supérieur | zval_string_to_unicode_ex


zval_string_to_unicode

zval_string_to_unicode -- ...

Description

#include <zend_unicode.h>

int zval_string_to_unicode ( zval* string, magic TSRMLS_DC )

...

Liste de paramètres

string

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zval_string_to_unicode_ex | Niveau supérieur | zval_unicode_to_string


zval_string_to_unicode_ex

zval_string_to_unicode_ex -- ...

Description

#include <zend_unicode.h>

int zval_string_to_unicode_ex ( zval* string, UConverter* conv )

...

Liste de paramètres

string

...

conv

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zval_ptr_dtor | Niveau supérieur | zval_string_to_unicode


zval_unicode_to_string

zval_unicode_to_string -- ...

Description

#include <zend_unicode.h>

int zval_unicode_to_string ( zval* string, UConverter* conv, magic TSRMLS_DC )

...

Liste de paramètres

string

...

conv

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zval_string_to_unicode | Niveau supérieur | zval_update_constant


zval_update_constant

zval_update_constant -- ...

Description

#include <zend_execute.h>

int zval_update_constant ( zval** pp, void* arg, magic TSRMLS_DC )

...

Liste de paramètres

pp

...

arg

...

TSRMLS_DC

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
zval_unicode_to_string | Niveau supérieur | DISPLAY_INI_ENTRIES


RETURN_ASCII_STRING

RETURN_ASCII_STRING -- ...

Description

#include <zend_API.h>

??? RETURN_ASCII_STRING ( ??? t, ??? duplicate )

...

Liste de paramètres

t

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
REGISTER_STRINGL_CONSTANT | Niveau supérieur | RETURN_ASCII_STRINGL


RETURN_ASCII_STRINGL

RETURN_ASCII_STRINGL -- ...

Description

#include <zend_API.h>

??? RETURN_ASCII_STRINGL ( ??? t, ??? l, ??? duplicate )

...

Liste de paramètres

t

...

l

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_ASCII_STRING | Niveau supérieur | RETURN_BINARY


RETURN_BINARY

RETURN_BINARY -- ...

Description

#include <zend_API.h>

??? RETURN_BINARY ( ??? s, ??? duplicate )

...

Liste de paramètres

s

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_ASCII_STRINGL | Niveau supérieur | RETURN_BINARYL


RETURN_BINARYL

RETURN_BINARYL -- ...

Description

#include <zend_API.h>

??? RETURN_BINARYL ( ??? s, ??? l, ??? duplicate )

...

Liste de paramètres

s

...

l

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_BINARY | Niveau supérieur | RETURN_BOOL


RETURN_BOOL

RETURN_BOOL -- Return a bool value from a function

Description

#include <zend_API.h>

void RETURN_BOOL ( zend_bool b )

RETURN_BOOL() sets the return_value of the given function to b and returns control to the calling function.

Liste de paramètres

b

bool value to return.

Précédent | Sommaire | Suivant
RETURN_BINARYL | Niveau supérieur | RETURN_DOUBLE


RETURN_DOUBLE

RETURN_DOUBLE -- Return a double value from a function

Description

#include <zend_API.h>

void RETURN_DOUBLE ( double d )

RETURN_DOUBLE() sets the return_value of the given function to d and returns control to the calling function.

Liste de paramètres

d

double value to return.

Précédent | Sommaire | Suivant
RETURN_BOOL | Niveau supérieur | RETURN_EMPTY_BINARY


RETURN_EMPTY_BINARY

RETURN_EMPTY_BINARY -- ...

Description

#include <zend_API.h>

void RETURN_EMPTY_BINARY ( void )

...

Liste de paramètres

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_DOUBLE | Niveau supérieur | RETURN_EMPTY_STRING


RETURN_EMPTY_STRING

RETURN_EMPTY_STRING -- Return an empty string value from a function

Description

#include <zend_API.h>

void RETURN_EMPTY_STRING ( void )

This returns an empty string without the need to create such a string first.

Précédent | Sommaire | Suivant
RETURN_EMPTY_BINARY | Niveau supérieur | RETURN_EMPTY_UNICODE


RETURN_EMPTY_UNICODE

RETURN_EMPTY_UNICODE -- ...

Description

#include <zend_API.h>

void RETURN_EMPTY_UNICODE ( void )

...

Liste de paramètres

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_EMPTY_STRING | Niveau supérieur | RETURN_LONG


RETURN_LONG

RETURN_LONG -- Return a long value from a function

Description

#include <zend_API.h>

void RETURN_LONG ( long l )

RETURN_LONG() sets the return_value of the given function to l and returns control to the calling function.

Liste de paramètres

l

long value to return.

Précédent | Sommaire | Suivant
RETURN_EMPTY_UNICODE | Niveau supérieur | RETURN_NULL


RETURN_NULL

RETURN_NULL -- Return a null value from a function

Description

#include <zend_API.h>

void RETURN_NULL ( void )

RETURN_BOOL() sets the return_value of the given function to NULL and returns control to the calling function.

Précédent | Sommaire | Suivant
RETURN_LONG | Niveau supérieur | RETURN_RESOURCE


RETURN_RESOURCE

RETURN_RESOURCE -- Return a resource from a function

Description

#include <zend_API.h>

void RETURN_RESOURCE ( resource r )

RETURN_RESOURCE() sets the return_value of the given function to r and returns control to the calling function.

Liste de paramètres

r

The resource to be returned.

Précédent | Sommaire | Suivant
RETURN_NULL | Niveau supérieur | RETURN_RT_STRING


RETURN_RT_STRING

RETURN_RT_STRING -- ...

Description

#include <zend_API.h>

??? RETURN_RT_STRING ( ??? t, ??? duplicate )

...

Liste de paramètres

t

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_RESOURCE | Niveau supérieur | RETURN_RT_STRINGL


RETURN_RT_STRINGL

RETURN_RT_STRINGL -- ...

Description

#include <zend_API.h>

??? RETURN_RT_STRINGL ( ??? t, ??? l, ??? duplicate )

...

Liste de paramètres

t

...

l

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_RT_STRING | Niveau supérieur | RETURN_STRING


RETURN_STRING

RETURN_STRING -- ...

Description

#include <zend_API.h>

??? RETURN_STRING ( ??? s, ??? duplicate )

...

Liste de paramètres

s

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_RT_STRINGL | Niveau supérieur | RETURN_STRINGL


RETURN_STRINGL

RETURN_STRINGL -- ...

Description

#include <zend_API.h>

??? RETURN_STRINGL ( ??? s, ??? l, ??? duplicate )

...

Liste de paramètres

s

...

l

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_STRING | Niveau supérieur | RETURN_TEXT


RETURN_TEXT

RETURN_TEXT -- ...

Description

#include <zend_API.h>

??? RETURN_TEXT ( ??? t, ??? duplicate )

...

Liste de paramètres

t

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_STRINGL | Niveau supérieur | RETURN_TEXTL


RETURN_TEXTL

RETURN_TEXTL -- ...

Description

#include <zend_API.h>

??? RETURN_TEXTL ( ??? t, ??? l, ??? duplicate )

...

Liste de paramètres

t

...

l

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_TEXT | Niveau supérieur | RETURN_U_STRING


RETURN_U_STRING

RETURN_U_STRING -- ...

Description

#include <zend_API.h>

??? RETURN_U_STRING ( ??? conv, ??? t, ??? duplicate )

...

Liste de paramètres

conv

...

t

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_TEXTL | Niveau supérieur | RETURN_U_STRINGL


RETURN_U_STRINGL

RETURN_U_STRINGL -- ...

Description

#include <zend_API.h>

??? RETURN_U_STRINGL ( ??? conv, ??? t, ??? l, ??? duplicate )

...

Liste de paramètres

conv

...

t

...

l

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_U_STRING | Niveau supérieur | RETURN_UNICODE


RETURN_UNICODE

RETURN_UNICODE -- ...

Description

#include <zend_API.h>

??? RETURN_UNICODE ( ??? u, ??? duplicate )

...

Liste de paramètres

u

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_U_STRINGL | Niveau supérieur | RETURN_UNICODEL


RETURN_UNICODEL

RETURN_UNICODEL -- ...

Description

#include <zend_API.h>

??? RETURN_UNICODEL ( ??? u, ??? l, ??? duplicate )

...

Liste de paramètres

u

...

l

...

duplicate

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
RETURN_UNICODE | Niveau supérieur | RETURN_ZVAL


RETURN_ZVAL

RETURN_ZVAL -- Return a zval value from a function

Description

#include <zend_API.h>

void RETURN_ZVAL ( zval * zv, bool copy, bool dtor )

...

Liste de paramètres

zv

Pointer to the zval to return.

copy

Create a copy of zv before returning it?

dtor

Destruct the original value before returning from the function, this is needed if zv was only temporarily created within the function.

Précédent | Sommaire | Suivant
RETURN_UNICODEL | Niveau supérieur | UNREGISTER_INI_ENTRIES


VCWD_ACCESS

VCWD_ACCESS -- Check users permissions for a file

Description

#include <tsrm_virtual_cwd.h>

int VCWD_ACCESS ( const char * pathname, mode_t mode )

This is a convenience wrapper for virtual_access().

Liste de paramètres

pathname

...

mode

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
virtual_utime | Niveau supérieur | VCWD_CHDIR_FILE


VCWD_CHDIR

VCWD_CHDIR -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_CHDIR ( char * path )

...

Liste de paramètres

path

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_CHDIR_FILE | Niveau supérieur | VCWD_CHMOD


VCWD_CHDIR_FILE

VCWD_CHDIR_FILE -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_CHDIR_FILE ( char * path )

...

Liste de paramètres

path

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_ACCESS | Niveau supérieur | VCWD_CHDIR


VCWD_CHMOD

VCWD_CHMOD -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_CHMOD ( char * path, mode_t mode )

...

Liste de paramètres

path

...

mode

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_CHDIR | Niveau supérieur | VCWD_CHOWN


VCWD_CHOWN

VCWD_CHOWN -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_CHOWN ( char * path, uid_t owner, gid_t group )

...

Liste de paramètres

path

...

owner

...

group

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_CHMOD | Niveau supérieur | VCWD_CREAT


VCWD_CREAT

VCWD_CREAT -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_CREAT ( char * path, mode_t mode )

...

Liste de paramètres

path

...

mode

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_CHOWN | Niveau supérieur | VCWD_FOPEN


VCWD_FOPEN

VCWD_FOPEN -- ...

Description

#include <tsrm_virtual_cwd.h>

FILE * VCWD_FOPEN ( char * path, char * mode )

...

Liste de paramètres

path

...

mode

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_CREAT | Niveau supérieur | VCWD_GETCWD


VCWD_GETCWD

VCWD_GETCWD -- ...

Description

#include <tsrm_virtual_cwd.h>

char * VCWD_GETCWD ( char * buff, size_t size )

...

Liste de paramètres

buff

...

size

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_FOPEN | Niveau supérieur | VCWD_GETWD


VCWD_GETWD

VCWD_GETWD -- ...

Description

#include <tsrm_virtual_cwd.h>

char * VCWD_GETWD ( char * buf )

...

Liste de paramètres

buf

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_GETCWD | Niveau supérieur | VCWD_LCHOWN


VCWD_LCHOWN

VCWD_LCHOWN -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_LCHOWN ( char * path, uid_t owner, gid_t group )

...

Liste de paramètres

path

...

owner

...

group

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_GETWD | Niveau supérieur | VCWD_LSTAT


VCWD_LSTAT

VCWD_LSTAT -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_LSTAT ( char * path, struct stat * buff )

...

Liste de paramètres

path

...

buff

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_LCHOWN | Niveau supérieur | VCWD_MKDIR


VCWD_MKDIR

VCWD_MKDIR -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_MKDIR ( char * pathname, mode_t mode )

...

Liste de paramètres

pathname

...

mode

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_LSTAT | Niveau supérieur | VCWD_OPEN_MODE


VCWD_OPEN

VCWD_OPEN -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_OPEN ( char * path, int flags )

...

Liste de paramètres

path

...

flags

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_OPEN_MODE | Niveau supérieur | VCWD_OPENDIR


VCWD_OPEN_MODE

VCWD_OPEN_MODE -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_OPEN_MODE ( char * path, int flags, mode_t mode )

...

Liste de paramètres

path

...

flags

...

mode

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_MKDIR | Niveau supérieur | VCWD_OPEN


VCWD_OPENDIR

VCWD_OPENDIR -- ...

Description

#include <tsrm_virtual_cwd.h>

DIR * VCWD_OPENDIR ( char * pathname )

...

Liste de paramètres

pathname

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_OPEN | Niveau supérieur | VCWD_POPEN


VCWD_POPEN

VCWD_POPEN -- ...

Description

#include <tsrm_virtual_cwd.h>

FILE * VCWD_POPEN ( char * command, char * type )

...

Liste de paramètres

command

...

type

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_OPENDIR | Niveau supérieur | VCWD_REALPATH


VCWD_REALPATH

VCWD_REALPATH -- ...

Description

#include <tsrm_virtual_cwd.h>

char * VCWD_REALPATH ( char * path, char * real_path )

...

Liste de paramètres

path

...

real_path

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_POPEN | Niveau supérieur | VCWD_RENAME


VCWD_RENAME

VCWD_RENAME -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_RENAME ( char * oldname, char * newname )

...

Liste de paramètres

oldname

...

newname

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_REALPATH | Niveau supérieur | VCWD_RMDIR


VCWD_RMDIR

VCWD_RMDIR -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_RMDIR ( char * pathname )

...

Liste de paramètres

pathname

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_RENAME | Niveau supérieur | VCWD_STAT


VCWD_STAT

VCWD_STAT -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_STAT ( char * path, struct stat * buff )

...

Liste de paramètres

path

...

buff

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_RMDIR | Niveau supérieur | VCWD_UNLINK


VCWD_UNLINK

VCWD_UNLINK -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_UNLINK ( char * path )

...

Liste de paramètres

path

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_STAT | Niveau supérieur | VCWD_UTIME


VCWD_UTIME

VCWD_UTIME -- ...

Description

#include <tsrm_virtual_cwd.h>

int VCWD_UTIME ( char * path, struct utimebuf * time )

...

Liste de paramètres

path

...

time

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
VCWD_UNLINK | Niveau supérieur | Extending PHP 3


Z_ARRVAL

Z_ARRVAL -- ...

Description

#include <zend_operators.h>

HashTable Z_ARRVAL ( zval zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_ARRVAL_PP | Niveau supérieur | Z_BINLEN_P


Z_ARRVAL_P

Z_ARRVAL_P -- ...

Description

#include <zend_operators.h>

HashTable Z_ARRVAL_P ( zval * zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
UNREGISTER_INI_ENTRIES | Niveau supérieur | Z_ARRVAL_PP


Z_ARRVAL_PP

Z_ARRVAL_PP -- ...

Description

#include <zend_operators.h>

HashTable Z_ARRVAL_PP ( zval ** zval_pp )

...

Liste de paramètres

zval_pp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_ARRVAL_P | Niveau supérieur | Z_ARRVAL


Z_BINLEN

Z_BINLEN -- ...

Description

#include <zend_operators.h>

char * Z_BINLEN ( zval zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_BINLEN_PP | Niveau supérieur | Z_BINVAL_P


Z_BINLEN_P

Z_BINLEN_P -- ...

Description

#include <zend_operators.h>

char * Z_BINLEN_P ( zval * zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_ARRVAL | Niveau supérieur | Z_BINLEN_PP


Z_BINLEN_PP

Z_BINLEN_PP -- ...

Description

#include <zend_operators.h>

char * Z_BINLEN_PP ( zval ** zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_BINLEN_P | Niveau supérieur | Z_BINLEN


Z_BINVAL

Z_BINVAL -- ...

Description

#include <zend_operators.h>

??? Z_BINVAL ( ??? zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_BINVAL_PP | Niveau supérieur | Z_BVAL_P


Z_BINVAL_P

Z_BINVAL_P -- ...

Description

#include <zend_operators.h>

??? Z_BINVAL_P ( ??? zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_BINLEN | Niveau supérieur | Z_BINVAL_PP


Z_BINVAL_PP

Z_BINVAL_PP -- ...

Description

#include <zend_operators.h>

??? Z_BINVAL_PP ( ??? zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_BINVAL_P | Niveau supérieur | Z_BINVAL


Z_BVAL

Z_BVAL -- Return a zval lval element as bool

Description

#include <zend_operators.h>

zend_bool Z_BVAL ( zval zv )

Z_BVAL() returns the lval element of zv casted to zend_bool.

Liste de paramètres

zv

The zval structure to extract the result value from.

Valeurs de retour

The lval element of zv casted to a zend_bool which is either TRUE or FALSE.

Voir aussi

See Z_BVAL_P() and Z_BVAL_PP() for other macros that access the lval field of a zval as zend_bool.

For macros that extract other values from a zval ** see
Z_ARRVAL(), Z_BINLEN(),
Z_BINVAL(), ,
Z_DVAL(), Z_LVAL(),
Z_OBJCE(), Z_OBJ_HANDLE(),
Z_OBJ_HANDLER(), Z_OBJ_HT(),
Z_OBJPROP(), Z_OBJVAL(),
Z_RESVAL(), Z_STRLEN(),
Z_STRVAL(), Z_TYPE(),
Z_UNILEN(), Z_UNIVAL(),
Z_USTRCPLEN(), Z_USTRLEN(),
and Z_USTRVAL().

Précédent | Sommaire | Suivant
Z_BVAL_PP | Niveau supérieur | Z_DBG


Z_BVAL_P

Z_BVAL_P -- Dereference a zval pointer and return its lval element as bool

Description

#include <zend_operators.h>

zend_bool Z_BVAL_P ( zval * zval_p )

Z_BVAL_P() returns the lval element of the zval structure pointed to by zval_p casted to zend_bool.

Liste de paramètres

zval_p

Pointer to the zval structure to extract the result value from.

Valeurs de retour

The lval element of the zval structure pointed to by zval_p casted to a zend_bool which is either TRUE or FALSE.

Voir aussi

See Z_BVAL() and Z_BVAL_PP() for other macros that access the lval field of a zval as zend_bool.

For macros that extract other values from a zval ** see
Z_ARRVAL_P(), Z_BINLEN_P(),
Z_BINVAL_P(), ,
Z_DVAL_P(), Z_LVAL_P(),
Z_OBJCE_P(), Z_OBJ_HANDLE_P(),
Z_OBJ_HANDLER_P(), Z_OBJ_HT_P(),
Z_OBJPROP_P(), Z_OBJVAL_P(),
Z_RESVAL_P(), Z_STRLEN_P(),
Z_STRVAL_P(), Z_TYPE_P(),
Z_UNILEN_P(), Z_UNIVAL_P(),
Z_USTRCPLEN_P(), Z_USTRLEN_P(),
and Z_USTRVAL_P().

Précédent | Sommaire | Suivant
Z_BINVAL | Niveau supérieur | Z_BVAL_PP


Z_BVAL_PP

Z_BVAL_PP -- Dereference a pointer to a zval pointer and return its lval element as bool

Description

#include <zend_operators.h>

zend_bool Z_BVAL_PP ( zval ** zval_pp )

Z_BVAL_PP() returns the lval element of the zval structure indirectly pointed to by zval_pp casted to zend_bool.

Liste de paramètres

zval_pp

Pointer to a pointer to the zval structure to extract the result value from.

Valeurs de retour

The lval element of the zval structure pointed to by the pointer pointed to by zval_pp casted to a zend_bool which is either TRUE or FALSE.

Voir aussi

See Z_BVAL() and Z_BVAL_P() for other macros that access the lval field of a zval as zend_bool.

For macros that extract other values from a zval ** see
Z_ARRVAL_PP(), Z_BINLEN_PP(),
Z_BINVAL_PP(), ,
Z_DVAL_PP(), Z_LVAL_PP(),
Z_OBJCE_PP(), Z_OBJ_HANDLE_PP(),
Z_OBJ_HANDLER_PP(), Z_OBJ_HT_PP(),
Z_OBJPROP_PP(), Z_OBJVAL_PP(),
Z_RESVAL_PP(), Z_STRLEN_PP(),
Z_STRVAL_PP(), Z_TYPE_PP(),
Z_UNILEN_PP(), Z_UNIVAL_PP(),
Z_USTRCPLEN_PP(), Z_USTRLEN_PP(),
and Z_USTRVAL_PP().

Précédent | Sommaire | Suivant
Z_BVAL_P | Niveau supérieur | Z_BVAL


Z_DBG

Z_DBG -- ...

Description

#include <zend.h>

??? Z_DBG ( ??? expr )

...

Liste de paramètres

expr

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_BVAL | Niveau supérieur | Z_DVAL_P


Z_DVAL

Z_DVAL -- Return the dval element of a zval

Description

#include <zend_operators.h>

double Z_DVAL ( zval zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_DVAL_PP | Niveau supérieur | Z_LVAL_P


Z_DVAL_P

Z_DVAL_P -- Dereference a zval pointer and return its dval element

Description

#include <zend_operators.h>

double Z_DVAL_P ( zval * zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_DBG | Niveau supérieur | Z_DVAL_PP


Z_DVAL_PP

Z_DVAL_PP -- Dereference a pointer to a zval pointer and return its dval element

Description

#include <zend_operators.h>

double Z_DVAL_PP ( zval ** zval_pp )

...

Liste de paramètres

zval_pp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_DVAL_P | Niveau supérieur | Z_DVAL


Z_LVAL

Z_LVAL -- ...

Description

#include <zend_operators.h>

long Z_LVAL ( zval zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_LVAL_PP | Niveau supérieur | Z_OBJ_CLASS_NAME_P


Z_LVAL_P

Z_LVAL_P -- ...

Description

#include <zend_operators.h>

long Z_LVAL_P ( zval * zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_DVAL | Niveau supérieur | Z_LVAL_PP


Z_LVAL_PP

Z_LVAL_PP -- Dereference a pointer to a zval pointer and return its lval element

Description

#include <zend_operators.h>

long Z_LVAL_PP ( zval ** zval_pp )

...

Liste de paramètres

zval_pp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_LVAL_P | Niveau supérieur | Z_LVAL


Z_OBJ_CLASS_NAME_P

Z_OBJ_CLASS_NAME_P -- ...

Description

#include <zend_execute.h>

??? Z_OBJ_CLASS_NAME_P ( ??? zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_LVAL | Niveau supérieur | Z_OBJ_HANDLE_P


Z_OBJ_HANDLE

Z_OBJ_HANDLE -- ...

Description

#include <zend_operators.h>

??? Z_OBJ_HANDLE ( ??? zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJ_HANDLE_PP | Niveau supérieur | Z_OBJ_HANDLER_P


Z_OBJ_HANDLE_P

Z_OBJ_HANDLE_P -- ...

Description

#include <zend_operators.h>

??? Z_OBJ_HANDLE_P ( ??? zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJ_CLASS_NAME_P | Niveau supérieur | Z_OBJ_HANDLE_PP


Z_OBJ_HANDLE_PP

Z_OBJ_HANDLE_PP -- ...

Description

#include <zend_operators.h>

??? Z_OBJ_HANDLE_PP ( ??? zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJ_HANDLE_P | Niveau supérieur | Z_OBJ_HANDLE


Z_OBJ_HANDLER

Z_OBJ_HANDLER -- ...

Description

#include <zend_operators.h>

??? Z_OBJ_HANDLER ( ??? zval, ??? hf )

...

Liste de paramètres

zval

...

hf

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJ_HANDLER_PP | Niveau supérieur | Z_OBJ_HT_P


Z_OBJ_HANDLER_P

Z_OBJ_HANDLER_P -- ...

Description

#include <zend_operators.h>

??? Z_OBJ_HANDLER_P ( ??? zval_p, ??? h )

...

Liste de paramètres

zval_p

...

h

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJ_HANDLE | Niveau supérieur | Z_OBJ_HANDLER_PP


Z_OBJ_HANDLER_PP

Z_OBJ_HANDLER_PP -- ...

Description

#include <zend_operators.h>

??? Z_OBJ_HANDLER_PP ( ??? zval_p, ??? h )

...

Liste de paramètres

zval_p

...

h

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJ_HANDLER_P | Niveau supérieur | Z_OBJ_HANDLER


Z_OBJ_HT

Z_OBJ_HT -- ...

Description

#include <zend_operators.h>

??? Z_OBJ_HT ( ??? zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJ_HT_PP | Niveau supérieur | Z_OBJCE_P


Z_OBJ_HT_P

Z_OBJ_HT_P -- ...

Description

#include <zend_operators.h>

??? Z_OBJ_HT_P ( ??? zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJ_HANDLER | Niveau supérieur | Z_OBJ_HT_PP


Z_OBJ_HT_PP

Z_OBJ_HT_PP -- ...

Description

#include <zend_operators.h>

??? Z_OBJ_HT_PP ( ??? zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJ_HT_P | Niveau supérieur | Z_OBJ_HT


Z_OBJCE

Z_OBJCE -- ...

Description

#include <zend_operators.h>

??? Z_OBJCE ( ??? zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJCE_PP | Niveau supérieur | Z_OBJPROP_P


Z_OBJCE_P

Z_OBJCE_P -- ...

Description

#include <zend_operators.h>

??? Z_OBJCE_P ( ??? zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJ_HT | Niveau supérieur | Z_OBJCE_PP


Z_OBJCE_PP

Z_OBJCE_PP -- ...

Description

#include <zend_operators.h>

??? Z_OBJCE_PP ( ??? zval_pp )

...

Liste de paramètres

zval_pp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJCE_P | Niveau supérieur | Z_OBJCE


Z_OBJPROP

Z_OBJPROP -- ...

Description

#include <zend_operators.h>

??? Z_OBJPROP ( ??? zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJPROP_PP | Niveau supérieur | Z_OBJVAL_P


Z_OBJPROP_P

Z_OBJPROP_P -- ...

Description

#include <zend_operators.h>

??? Z_OBJPROP_P ( ??? zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJCE | Niveau supérieur | Z_OBJPROP_PP


Z_OBJPROP_PP

Z_OBJPROP_PP -- ...

Description

#include <zend_operators.h>

??? Z_OBJPROP_PP ( ??? zval_pp )

...

Liste de paramètres

zval_pp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJPROP_P | Niveau supérieur | Z_OBJPROP


Z_OBJVAL

Z_OBJVAL -- ...

Description

#include <zend_operators.h>

??? Z_OBJVAL ( ??? zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJVAL_PP | Niveau supérieur | Z_RESVAL_P


Z_OBJVAL_P

Z_OBJVAL_P -- ...

Description

#include <zend_operators.h>

??? Z_OBJVAL_P ( ??? zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJPROP | Niveau supérieur | Z_OBJVAL_PP


Z_OBJVAL_PP

Z_OBJVAL_PP -- ...

Description

#include <zend_operators.h>

??? Z_OBJVAL_PP ( ??? zval_pp )

...

Liste de paramètres

zval_pp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJVAL_P | Niveau supérieur | Z_OBJVAL


Z_RESVAL

Z_RESVAL -- ...

Description

#include <zend_operators.h>

??? Z_RESVAL ( ??? zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_RESVAL_PP | Niveau supérieur | Z_STRLEN_P


Z_RESVAL_P

Z_RESVAL_P -- ...

Description

#include <zend_operators.h>

??? Z_RESVAL_P ( ??? zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_OBJVAL | Niveau supérieur | Z_RESVAL_PP


Z_RESVAL_PP

Z_RESVAL_PP -- ...

Description

#include <zend_operators.h>

??? Z_RESVAL_PP ( ??? zval_pp )

...

Liste de paramètres

zval_pp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_RESVAL_P | Niveau supérieur | Z_RESVAL


Z_STRLEN

Z_STRLEN -- ...

Description

#include <zend_operators.h>

int Z_STRLEN ( zval zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_STRLEN_PP | Niveau supérieur | Z_STRVAL_P


Z_STRLEN_P

Z_STRLEN_P -- ...

Description

#include <zend_operators.h>

int Z_STRLEN_P ( zval * zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_RESVAL | Niveau supérieur | Z_STRLEN_PP


Z_STRLEN_PP

Z_STRLEN_PP -- ...

Description

#include <zend_operators.h>

int Z_STRLEN_PP ( zval ** zval_pp )

...

Liste de paramètres

zval_pp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_STRLEN_P | Niveau supérieur | Z_STRLEN


Z_STRVAL

Z_STRVAL -- ...

Description

#include <zend_operators.h>

char * Z_STRVAL ( zval zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_STRVAL_PP | Niveau supérieur | Z_TYPE_P


Z_STRVAL_P

Z_STRVAL_P -- ...

Description

#include <zend_operators.h>

char * Z_STRVAL_P ( zval * zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_STRLEN | Niveau supérieur | Z_STRVAL_PP


Z_STRVAL_PP

Z_STRVAL_PP -- ...

Description

#include <zend_operators.h>

char * Z_STRVAL_PP ( zval ** zval_pp )

...

Liste de paramètres

zval_pp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_STRVAL_P | Niveau supérieur | Z_STRVAL


Z_TYPE

Z_TYPE -- Get the type field of a zval

Description

#include <zend_operators.h>

zend_uchar Z_TYPE ( zval zv )

Return the type field of a zval.

Liste de paramètres

zv

A zval data structure.

Valeurs de retour

The type field of zv.

Précédent | Sommaire | Suivant
Z_TYPE_PP | Niveau supérieur | Z_UNILEN_P


Z_TYPE_P

Z_TYPE_P -- Get type field from zval pointer

Description

#include <zend_operators.h>

zend_uchar Z_TYPE_P ( zval * zval_p )

Return the type filed from the zval data structure pointed to by zval_p.

Liste de paramètres

zval_p

Pointer to a zval.

Valeurs de retour

Type of the zval pointed to.

Précédent | Sommaire | Suivant
Z_STRVAL | Niveau supérieur | Z_TYPE_PP


Z_TYPE_PP

Z_TYPE_PP -- Get type field from zval pointer pointer

Description

#include <zend_operators.h>

zend_uchar Z_TYPE_PP ( zval ** zval_pp )

Return the type filed from the zval data structure pointed to by the pointer pointed to by zval_pp.

Liste de paramètres

zval_pp

Pointer to a pointer to a zval structure.

Valeurs de retour

Type of the zval structure pointed to.

Précédent | Sommaire | Suivant
Z_TYPE_P | Niveau supérieur | Z_TYPE


Z_UNILEN

Z_UNILEN -- ...

Description

#include <zend_operators.h>

int Z_UNILEN ( zval zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_UNILEN_PP | Niveau supérieur | Z_UNIVAL_P


Z_UNILEN_P

Z_UNILEN_P -- ...

Description

#include <zend_operators.h>

int Z_UNILEN_P ( zval * zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_TYPE | Niveau supérieur | Z_UNILEN_PP


Z_UNILEN_PP

Z_UNILEN_PP -- ...

Description

#include <zend_operators.h>

int Z_UNILEN_PP ( zval ** zval_pp )

...

Liste de paramètres

zval_pp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_UNILEN_P | Niveau supérieur | Z_UNILEN


Z_UNIVAL

Z_UNIVAL -- ...

Description

#include <zend_operators.h>

char * Z_UNIVAL ( zval zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_UNIVAL_PP | Niveau supérieur | Z_USTRCPLEN_P


Z_UNIVAL_P

Z_UNIVAL_P -- ...

Description

#include <zend_operators.h>

char * Z_UNIVAL_P ( zval * zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_UNILEN | Niveau supérieur | Z_UNIVAL_PP


Z_UNIVAL_PP

Z_UNIVAL_PP -- ...

Description

#include <zend_operators.h>

char * Z_UNIVAL_PP ( zval ** zval_pp )

...

Liste de paramètres

zval_pp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_UNIVAL_P | Niveau supérieur | Z_UNIVAL


Z_USTRCPLEN

Z_USTRCPLEN -- ...

Description

#include <zend_operators.h>

int32_t Z_USTRCPLEN ( zval zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_USTRCPLEN_PP | Niveau supérieur | Z_USTRLEN_P


Z_USTRCPLEN_P

Z_USTRCPLEN_P -- ...

Description

#include <zend_operators.h>

int32_t Z_USTRCPLEN_P ( zval * zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_UNIVAL | Niveau supérieur | Z_USTRCPLEN_PP


Z_USTRCPLEN_PP

Z_USTRCPLEN_PP -- ...

Description

#include <zend_operators.h>

int32_t Z_USTRCPLEN_PP ( zval ** zval_pp )

...

Liste de paramètres

zval_pp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_USTRCPLEN_P | Niveau supérieur | Z_USTRCPLEN


Z_USTRLEN

Z_USTRLEN -- ...

Description

#include <zend_operators.h>

int32_t Z_USTRLEN ( zval zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_USTRLEN_PP | Niveau supérieur | Z_USTRVAL_P


Z_USTRLEN_P

Z_USTRLEN_P -- ...

Description

#include <zend_operators.h>

int32_t Z_USTRLEN_P ( zval * zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_USTRCPLEN | Niveau supérieur | Z_USTRLEN_PP


Z_USTRLEN_PP

Z_USTRLEN_PP -- ...

Description

#include <zend_operators.h>

int32_t Z_USTRLEN_PP ( zval ** zval_pp )

...

Liste de paramètres

zval_pp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_USTRLEN_P | Niveau supérieur | Z_USTRLEN


Z_USTRVAL

Z_USTRVAL -- ...

Description

#include <zend_operators.h>

UChar * Z_USTRVAL ( zval zval )

...

Liste de paramètres

zval

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_USTRVAL_PP | Niveau supérieur | ZEND_ABSTRACT_ME


Z_USTRVAL_P

Z_USTRVAL_P -- ...

Description

#include <zend_operators.h>

UChar * Z_USTRVAL_P ( zval * zval_p )

...

Liste de paramètres

zval_p

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_USTRLEN | Niveau supérieur | Z_USTRVAL_PP


Z_USTRVAL_PP

Z_USTRVAL_PP -- ...

Description

#include <zend_operators.h>

UChar * Z_USTRVAL_PP ( zval ** zval_pp )

...

Liste de paramètres

zval_pp

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_USTRVAL_P | Niveau supérieur | Z_USTRVAL


ZEND_ABSTRACT_ME

ZEND_ABSTRACT_ME -- ...

Description

#include <zend_API.h>

??? ZEND_ABSTRACT_ME ( ??? classname, ??? name, ??? arg_info )

...

Liste de paramètres

classname

...

name

...

arg_info

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
Z_USTRVAL | Niveau supérieur | ZEND_ARG_ARRAY_INFO


ZEND_ARG_ARRAY_INFO

ZEND_ARG_ARRAY_INFO -- ...

Description

#include <zend_API.h>

??? ZEND_ARG_ARRAY_INFO ( ??? pass_by_ref, ??? name, ??? allow_null )

...

Liste de paramètres

pass_by_ref

...

name

...

allow_null

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_ABSTRACT_ME | Niveau supérieur | ZEND_ARG_INFO


ZEND_ARG_INFO

ZEND_ARG_INFO -- ...

Description

#include <zend_API.h>

??? ZEND_ARG_INFO ( ??? pass_by_ref, ??? name )

...

Liste de paramètres

pass_by_ref

...

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_ARG_ARRAY_INFO | Niveau supérieur | ZEND_ARG_OBJ_INFO


ZEND_ARG_OBJ_INFO

ZEND_ARG_OBJ_INFO -- ...

Description

#include <zend_API.h>

??? ZEND_ARG_OBJ_INFO ( ??? pass_by_ref, ??? name, ??? classname, ??? allow_null )

...

Liste de paramètres

pass_by_ref

...

name

...

classname

...

allow_null

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_ARG_INFO | Niveau supérieur | ZEND_ARG_PASS_INFO


ZEND_ARG_PASS_INFO

ZEND_ARG_PASS_INFO -- ...

Description

#include <zend_API.h>

??? ZEND_ARG_PASS_INFO ( ??? pass_by_ref )

...

Liste de paramètres

pass_by_ref

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_ARG_OBJ_INFO | Niveau supérieur | ZEND_BEGIN_ARG_INFO_EX


ZEND_BEGIN_ARG_INFO

ZEND_BEGIN_ARG_INFO -- ...

Description

#include <zend_API.h>

??? ZEND_BEGIN_ARG_INFO ( ??? name, ??? pass_rest_by_reference )

...

Liste de paramètres

name

...

pass_rest_by_reference

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_BEGIN_ARG_INFO_EX | Niveau supérieur | ZEND_BEGIN_MODULE_GLOBALS


ZEND_BEGIN_ARG_INFO_EX

ZEND_BEGIN_ARG_INFO_EX -- ...

Description

#include <zend_API.h>

??? ZEND_BEGIN_ARG_INFO_EX ( ??? name, ??? pass_rest_by_reference, ??? return_reference, ??? required_num_args )

...

Liste de paramètres

name

...

pass_rest_by_reference

...

return_reference

...

required_num_args

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_ARG_PASS_INFO | Niveau supérieur | ZEND_BEGIN_ARG_INFO


ZEND_BEGIN_MODULE_GLOBALS

ZEND_BEGIN_MODULE_GLOBALS -- ...

Description

#include <zend_API.h>

??? ZEND_BEGIN_MODULE_GLOBALS ( ??? module_name )

...

Liste de paramètres

module_name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_BEGIN_ARG_INFO | Niveau supérieur | ZEND_COLL_RESULT


ZEND_COLL_RESULT

ZEND_COLL_RESULT -- ...

Description

#include <zend.h>

??? ZEND_COLL_RESULT ( ??? n )

...

Liste de paramètres

n

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_BEGIN_MODULE_GLOBALS | Niveau supérieur | ZEND_DECLARE_MODULE_GLOBALS


ZEND_DECLARE_MODULE_GLOBALS

ZEND_DECLARE_MODULE_GLOBALS -- ...

Description

#include <zend_API.h>

??? ZEND_DECLARE_MODULE_GLOBALS ( ??? module_name )

...

Liste de paramètres

module_name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_COLL_RESULT | Niveau supérieur | ZEND_DEFINE_PROPERTY


ZEND_DEFINE_PROPERTY

ZEND_DEFINE_PROPERTY -- ...

Description

#include <zend_API.h>

??? ZEND_DEFINE_PROPERTY ( ??? class_ptr, ??? name, ??? value, ??? mask )

...

Liste de paramètres

class_ptr

...

name

...

value

...

mask

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_DECLARE_MODULE_GLOBALS | Niveau supérieur | ZEND_END_ARG_INFO


ZEND_END_ARG_INFO

ZEND_END_ARG_INFO -- ...

Description

#include <zend_API.h>

??? ZEND_END_ARG_INFO ( ??? )

...

Liste de paramètres

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_DEFINE_PROPERTY | Niveau supérieur | ZEND_END_MODULE_GLOBALS


ZEND_END_MODULE_GLOBALS

ZEND_END_MODULE_GLOBALS -- ...

Description

#include <zend_API.h>

??? ZEND_END_MODULE_GLOBALS ( ??? module_name )

...

Liste de paramètres

module_name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_END_ARG_INFO | Niveau supérieur | ZEND_EXTERN_MODULE_GLOBALS


ZEND_EXTERN_MODULE_GLOBALS

ZEND_EXTERN_MODULE_GLOBALS -- ...

Description

#include <zend_API.h>

??? ZEND_EXTERN_MODULE_GLOBALS ( ??? module_name )

...

Liste de paramètres

module_name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_END_MODULE_GLOBALS | Niveau supérieur | ZEND_FALIAS


ZEND_FALIAS

ZEND_FALIAS -- ...

Description

#include <zend_API.h>

??? ZEND_FALIAS ( ??? name, ??? alias, ??? arg_info )

...

Liste de paramètres

name

...

alias

...

arg_info

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_EXTERN_MODULE_GLOBALS | Niveau supérieur | ZEND_FE


ZEND_FE

ZEND_FE -- ...

Description

#include <zend_API.h>

??? ZEND_FE ( ??? name, ??? arg_info )

...

Liste de paramètres

name

...

arg_info

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_FALIAS | Niveau supérieur | ZEND_FENTRY


ZEND_FENTRY

ZEND_FENTRY -- ...

Description

#include <zend_API.h>

??? ZEND_FENTRY ( ??? zend_name, ??? name, ??? arg_info, ??? flags )

...

Liste de paramètres

zend_name

...

name

...

arg_info

...

flags

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_FE | Niveau supérieur | ZEND_FETCH_RESOURCE2


ZEND_FETCH_RESOURCE

ZEND_FETCH_RESOURCE -- ...

Description

#include <zend_list.h>

??? ZEND_FETCH_RESOURCE ( ??? rsrc, ??? rsrc_type, ??? passed_id, ??? default_id, ??? resource_type_name, ??? resource_type )

...

Liste de paramètres

rsrc

...

rsrc_type

...

passed_id

...

default_id

...

resource_type_name

...

resource_type

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_FETCH_RESOURCE2 | Niveau supérieur | ZEND_FN_SCOPE_NAME


ZEND_FETCH_RESOURCE2

ZEND_FETCH_RESOURCE2 -- ...

Description

#include <zend_list.h>

??? ZEND_FETCH_RESOURCE2 ( ??? rsrc, ??? rsrc_type, ??? passed_id, ??? default_id, ??? resource_type_name, ??? resource_type1, ??? resource_type2 )

...

Liste de paramètres

rsrc

...

rsrc_type

...

passed_id

...

default_id

...

resource_type_name

...

resource_type1

...

resource_type2

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_FENTRY | Niveau supérieur | ZEND_FETCH_RESOURCE


ZEND_FN

ZEND_FN -- ...

Description

#include <zend_API.h>

??? ZEND_FN ( ??? name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_FN_SCOPE_NAME | Niveau supérieur | ZEND_FUNCTION


ZEND_FN_SCOPE_NAME

ZEND_FN_SCOPE_NAME -- ...

Description

#include <zend_compile.h>

??? ZEND_FN_SCOPE_NAME ( ??? function )

...

Liste de paramètres

function

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_FETCH_RESOURCE | Niveau supérieur | ZEND_FN


ZEND_FUNCTION

ZEND_FUNCTION -- ...

Description

#include <zend_API.h>

??? ZEND_FUNCTION ( ??? name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_FN | Niveau supérieur | ZEND_GET_MODULE


ZEND_GET_MODULE

ZEND_GET_MODULE -- ...

Description

#include <zend_API.h>

void ZEND_GET_MODULE ( char * name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_FUNCTION | Niveau supérieur | ZEND_GET_RESOURCE_TYPE_ID


ZEND_GET_RESOURCE_TYPE_ID

ZEND_GET_RESOURCE_TYPE_ID -- ...

Description

#include <zend_list.h>

??? ZEND_GET_RESOURCE_TYPE_ID ( ??? le_id, ??? le_type_name )

...

Liste de paramètres

le_id

...

le_type_name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_GET_MODULE | Niveau supérieur | ZEND_INI_BEGIN


ZEND_INI_BEGIN

ZEND_INI_BEGIN -- ...

Description

#include <zend_ini.h>

??? ZEND_INI_BEGIN ( ??? )

...

Liste de paramètres

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_GET_RESOURCE_TYPE_ID | Niveau supérieur | ZEND_INI_DISP


ZEND_INI_DISP

ZEND_INI_DISP -- ...

Description

#include <zend_ini.h>

??? ZEND_INI_DISP ( ??? name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INI_BEGIN | Niveau supérieur | ZEND_INI_END


ZEND_INI_END

ZEND_INI_END -- ...

Description

#include <zend_ini.h>

??? ZEND_INI_END ( ??? )

...

Liste de paramètres

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INI_DISP | Niveau supérieur | ZEND_INI_ENTRY_EX


ZEND_INI_ENTRY

ZEND_INI_ENTRY -- ...

Description

#include <zend_ini.h>

??? ZEND_INI_ENTRY ( ??? name, ??? default_value, ??? modifiable, ??? on_modify )

...

Liste de paramètres

name

...

default_value

...

modifiable

...

on_modify

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INI_ENTRY3 | Niveau supérieur | ZEND_INI_MH


ZEND_INI_ENTRY1

ZEND_INI_ENTRY1 -- ...

Description

#include <zend_ini.h>

??? ZEND_INI_ENTRY1 ( ??? name, ??? default_value, ??? modifiable, ??? on_modify, ??? arg1 )

...

Liste de paramètres

name

...

default_value

...

modifiable

...

on_modify

...

arg1

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INI_ENTRY1_EX | Niveau supérieur | ZEND_INI_ENTRY2_EX


ZEND_INI_ENTRY1_EX

ZEND_INI_ENTRY1_EX -- ...

Description

#include <zend_ini.h>

??? ZEND_INI_ENTRY1_EX ( ??? name, ??? default_value, ??? modifiable, ??? on_modify, ??? arg1, ??? displayer )

...

Liste de paramètres

name

...

default_value

...

modifiable

...

on_modify

...

arg1

...

displayer

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INI_ENTRY_EX | Niveau supérieur | ZEND_INI_ENTRY1


ZEND_INI_ENTRY2

ZEND_INI_ENTRY2 -- ...

Description

#include <zend_ini.h>

??? ZEND_INI_ENTRY2 ( ??? name, ??? default_value, ??? modifiable, ??? on_modify, ??? arg1, ??? arg2 )

...

Liste de paramètres

name

...

default_value

...

modifiable

...

on_modify

...

arg1

...

arg2

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INI_ENTRY2_EX | Niveau supérieur | ZEND_INI_ENTRY3_EX


ZEND_INI_ENTRY2_EX

ZEND_INI_ENTRY2_EX -- ...

Description

#include <zend_ini.h>

??? ZEND_INI_ENTRY2_EX ( ??? name, ??? default_value, ??? modifiable, ??? on_modify, ??? arg1, ??? arg2, ??? displayer )

...

Liste de paramètres

name

...

default_value

...

modifiable

...

on_modify

...

arg1

...

arg2

...

displayer

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INI_ENTRY1 | Niveau supérieur | ZEND_INI_ENTRY2


ZEND_INI_ENTRY3

ZEND_INI_ENTRY3 -- ...

Description

#include <zend_ini.h>

??? ZEND_INI_ENTRY3 ( ??? name, ??? default_value, ??? modifiable, ??? on_modify, ??? arg1, ??? arg2, ??? arg3 )

...

Liste de paramètres

name

...

default_value

...

modifiable

...

on_modify

...

arg1

...

arg2

...

arg3

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INI_ENTRY3_EX | Niveau supérieur | ZEND_INI_ENTRY


ZEND_INI_ENTRY3_EX

ZEND_INI_ENTRY3_EX -- ...

Description

#include <zend_ini.h>

??? ZEND_INI_ENTRY3_EX ( ??? name, ??? default_value, ??? modifiable, ??? on_modify, ??? arg1, ??? arg2, ??? arg3, ??? displayer )

...

Liste de paramètres

name

...

default_value

...

modifiable

...

on_modify

...

arg1

...

arg2

...

arg3

...

displayer

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INI_ENTRY2 | Niveau supérieur | ZEND_INI_ENTRY3


ZEND_INI_ENTRY_EX

ZEND_INI_ENTRY_EX -- ...

Description

#include <zend_ini.h>

??? ZEND_INI_ENTRY_EX ( ??? name, ??? default_value, ??? modifiable, ??? on_modify, ??? displayer )

...

Liste de paramètres

name

...

default_value

...

modifiable

...

on_modify

...

displayer

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INI_END | Niveau supérieur | ZEND_INI_ENTRY1_EX


ZEND_INI_MH

ZEND_INI_MH -- ...

Description

#include <zend_ini.h>

??? ZEND_INI_MH ( ??? name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INI_ENTRY | Niveau supérieur | ZEND_INIT_MODULE_GLOBALS


ZEND_INIT_MODULE_GLOBALS

ZEND_INIT_MODULE_GLOBALS -- ...

Description

#include <zend_API.h>

??? ZEND_INIT_MODULE_GLOBALS ( ??? module_name, ??? globals_ctor, ??? globals_dtor )

...

Liste de paramètres

module_name

...

globals_ctor

...

globals_dtor

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INI_MH | Niveau supérieur | ZEND_INIT_SYMTABLE_EX


ZEND_INIT_SYMTABLE

ZEND_INIT_SYMTABLE -- ...

Description

#include <zend_hash.h>

??? ZEND_INIT_SYMTABLE ( ??? ht )

...

Liste de paramètres

ht

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INIT_SYMTABLE_EX | Niveau supérieur | ZEND_LOG_XOR


ZEND_INIT_SYMTABLE_EX

ZEND_INIT_SYMTABLE_EX -- ...

Description

#include <zend_hash.h>

??? ZEND_INIT_SYMTABLE_EX ( ??? ht, ??? n, ??? persistent )

...

Liste de paramètres

ht

...

n

...

persistent

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INIT_MODULE_GLOBALS | Niveau supérieur | ZEND_INIT_SYMTABLE


ZEND_LOG_XOR

ZEND_LOG_XOR -- ...

Description

#include <zend.h>

??? ZEND_LOG_XOR ( ??? a, ??? b )

...

Liste de paramètres

a

...

b

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_INIT_SYMTABLE | Niveau supérieur | ZEND_MALIAS


ZEND_MALIAS

ZEND_MALIAS -- ...

Description

#include <zend_API.h>

??? ZEND_MALIAS ( ??? classname, ??? name, ??? alias, ??? arg_info, ??? flags )

...

Liste de paramètres

classname

...

name

...

alias

...

arg_info

...

flags

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_LOG_XOR | Niveau supérieur | ZEND_ME_MAPPING


ZEND_ME

ZEND_ME -- ...

Description

#include <zend_API.h>

??? ZEND_ME ( ??? classname, ??? name, ??? arg_info, ??? flags )

...

Liste de paramètres

classname

...

name

...

arg_info

...

flags

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_ME_MAPPING | Niveau supérieur | ZEND_METHOD


ZEND_ME_MAPPING

ZEND_ME_MAPPING -- ...

Description

#include <zend_API.h>

??? ZEND_ME_MAPPING ( ??? name, ??? func_name, ??? arg_types )

...

Liste de paramètres

name

...

func_name

...

arg_types

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MALIAS | Niveau supérieur | ZEND_ME


ZEND_METHOD

ZEND_METHOD -- ...

Description

#include <zend_API.h>

??? ZEND_METHOD ( ??? classname, ??? name )

...

Liste de paramètres

classname

...

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_ME | Niveau supérieur | ZEND_MOD_CONFLICTS_EX


ZEND_MOD_CONFLICTS

ZEND_MOD_CONFLICTS -- ...

Description

#include <zend_modules.h>

void ZEND_MOD_CONFLICTS ( char * name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MOD_CONFLICTS_EX | Niveau supérieur | ZEND_MOD_OPTIONAL_EX


ZEND_MOD_CONFLICTS_EX

ZEND_MOD_CONFLICTS_EX -- ...

Description

#include <zend_modules.h>

void ZEND_MOD_CONFLICTS_EX ( char * name, char * rel, char * ver )

...

Liste de paramètres

name

...

rel

...

ver

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_METHOD | Niveau supérieur | ZEND_MOD_CONFLICTS


ZEND_MOD_OPTIONAL

ZEND_MOD_OPTIONAL -- ...

Description

#include <zend_modules.h>

void ZEND_MOD_OPTIONAL ( char * name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MOD_OPTIONAL_EX | Niveau supérieur | ZEND_MOD_REQUIRED_EX


ZEND_MOD_OPTIONAL_EX

ZEND_MOD_OPTIONAL_EX -- ...

Description

#include <zend_modules.h>

void ZEND_MOD_OPTIONAL_EX ( char * name, char * rel, char * ver )

...

Liste de paramètres

name

...

rel

...

ver

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MOD_CONFLICTS | Niveau supérieur | ZEND_MOD_OPTIONAL


ZEND_MOD_REQUIRED

ZEND_MOD_REQUIRED -- Create a simple dependency entry for a required extension

Description

#include <zend_modules.h>

void ZEND_MOD_REQUIRED ( char * ext_name )

ZEND_MOD_REQUIRED() generates a zend_module_dep entry for the extension named by ext_name. A simple entry without further version specifications is generated. See ZEND_MOD_REQUIRED_EX() for an extended version of this macro that also allows to specify version dependencies.

Liste de paramètres

ext_name

The name of a required extension

Valeurs de retour

Code to register the required extension dependency

Voir aussi

See ZEND_MOD_REQUIRED_EX() if you also need to specify extension version requirements.

See also ZEND_MOD_OPTIONAL(),
ZEND_MOD_OPTIONAL_EX(),
ZEND_MOD_CONFLICTS(), and
ZEND_MOD_CONFLICTS_EX().

Précédent | Sommaire | Suivant
ZEND_MOD_REQUIRED_EX | Niveau supérieur | ZEND_MODULE_ACTIVATE_D


ZEND_MOD_REQUIRED_EX

ZEND_MOD_REQUIRED_EX -- Create a full dependency entry for the required version of an extension

Description

#include <zend_modules.h>

void ZEND_MOD_REQUIRED_EX ( char * name, char * rel, char * ver )

ZEND_MOD_REQUIRED_EX() generates a zend_module_dep entry for the extension named by ext_name, including version information. It allows to specify requirements like "up to version x.y", "starting with version x.y" or "exactly version x.y".

Avertissement

Version specific comparisons are not implemented yet, so for now ZEND_MOD_REUQUIRE() and ZEND_MOD_REQUIRE_EX() define identical behavior.

Liste de paramètres

name

Name of the required extension

rel

Comparison operator, one of eq, lt, le, gt, or ge

ver

Version string

Valeurs de retour

Code to register the required extension

Voir aussi

See ZEND_MOD_REQUIRED() if you do not need to specify extension version requirements.

See also ZEND_MOD_OPTIONAL(),
ZEND_MOD_OPTIONAL_EX(),
ZEND_MOD_CONFLICTS(), and
ZEND_MOD_CONFLICTS_EX().

Précédent | Sommaire | Suivant
ZEND_MOD_OPTIONAL | Niveau supérieur | ZEND_MOD_REQUIRED


ZEND_MODULE_ACTIVATE_D

ZEND_MODULE_ACTIVATE_D -- ...

Description

#include <zend_API.h>

??? ZEND_MODULE_ACTIVATE_D ( ??? module )

...

Liste de paramètres

module

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MOD_REQUIRED | Niveau supérieur | ZEND_MODULE_ACTIVATE_N


ZEND_MODULE_ACTIVATE_N

ZEND_MODULE_ACTIVATE_N -- ...

Description

#include <zend_API.h>

??? ZEND_MODULE_ACTIVATE_N ( ??? module )

...

Liste de paramètres

module

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MODULE_ACTIVATE_D | Niveau supérieur | ZEND_MODULE_DEACTIVATE_D


ZEND_MODULE_DEACTIVATE_D

ZEND_MODULE_DEACTIVATE_D -- ...

Description

#include <zend_API.h>

??? ZEND_MODULE_DEACTIVATE_D ( ??? module )

...

Liste de paramètres

module

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MODULE_ACTIVATE_N | Niveau supérieur | ZEND_MODULE_DEACTIVATE_N


ZEND_MODULE_DEACTIVATE_N

ZEND_MODULE_DEACTIVATE_N -- ...

Description

#include <zend_API.h>

??? ZEND_MODULE_DEACTIVATE_N ( ??? module )

...

Liste de paramètres

module

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MODULE_DEACTIVATE_D | Niveau supérieur | ZEND_MODULE_INFO_D


ZEND_MODULE_INFO_D

ZEND_MODULE_INFO_D -- ...

Description

#include <zend_API.h>

??? ZEND_MODULE_INFO_D ( ??? module )

...

Liste de paramètres

module

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MODULE_DEACTIVATE_N | Niveau supérieur | ZEND_MODULE_INFO_N


ZEND_MODULE_INFO_N

ZEND_MODULE_INFO_N -- ...

Description

#include <zend_API.h>

??? ZEND_MODULE_INFO_N ( ??? module )

...

Liste de paramètres

module

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MODULE_INFO_D | Niveau supérieur | ZEND_MODULE_POST_ZEND_DEACTIVATE_D


ZEND_MODULE_POST_ZEND_DEACTIVATE_D

ZEND_MODULE_POST_ZEND_DEACTIVATE_D -- ...

Description

#include <zend_API.h>

??? ZEND_MODULE_POST_ZEND_DEACTIVATE_D ( ??? module )

...

Liste de paramètres

module

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MODULE_INFO_N | Niveau supérieur | ZEND_MODULE_POST_ZEND_DEACTIVATE_N


ZEND_MODULE_POST_ZEND_DEACTIVATE_N

ZEND_MODULE_POST_ZEND_DEACTIVATE_N -- ...

Description

#include <zend_API.h>

??? ZEND_MODULE_POST_ZEND_DEACTIVATE_N ( ??? module )

...

Liste de paramètres

module

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MODULE_POST_ZEND_DEACTIVATE_D | Niveau supérieur | ZEND_MODULE_SHUTDOWN_D


ZEND_MODULE_SHUTDOWN_D

ZEND_MODULE_SHUTDOWN_D -- ...

Description

#include <zend_API.h>

??? ZEND_MODULE_SHUTDOWN_D ( ??? module )

...

Liste de paramètres

module

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MODULE_POST_ZEND_DEACTIVATE_N | Niveau supérieur | ZEND_MODULE_SHUTDOWN_N


ZEND_MODULE_SHUTDOWN_N

ZEND_MODULE_SHUTDOWN_N -- ...

Description

#include <zend_API.h>

??? ZEND_MODULE_SHUTDOWN_N ( ??? module )

...

Liste de paramètres

module

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MODULE_SHUTDOWN_D | Niveau supérieur | ZEND_MODULE_STARTUP_D


ZEND_MODULE_STARTUP_D

ZEND_MODULE_STARTUP_D -- ...

Description

#include <zend_API.h>

??? ZEND_MODULE_STARTUP_D ( ??? module )

...

Liste de paramètres

module

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MODULE_SHUTDOWN_N | Niveau supérieur | ZEND_MODULE_STARTUP_N


ZEND_MODULE_STARTUP_N

ZEND_MODULE_STARTUP_N -- ...

Description

#include <zend_API.h>

??? ZEND_MODULE_STARTUP_N ( ??? module )

...

Liste de paramètres

module

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MODULE_STARTUP_D | Niveau supérieur | ZEND_NAMED_FE


ZEND_NAMED_FE

ZEND_NAMED_FE -- ...

Description

#include <zend_API.h>

??? ZEND_NAMED_FE ( ??? zend_name, ??? name, ??? arg_info )

...

Liste de paramètres

zend_name

...

name

...

arg_info

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_MODULE_STARTUP_N | Niveau supérieur | ZEND_NAMED_FUNCTION


ZEND_NAMED_FUNCTION

ZEND_NAMED_FUNCTION -- ...

Description

#include <zend_API.h>

??? ZEND_NAMED_FUNCTION ( ??? name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_NAMED_FE | Niveau supérieur | ZEND_NORMALIZE_BOOL


ZEND_NORMALIZE_BOOL

ZEND_NORMALIZE_BOOL -- ...

Description

#include <zend.h>

??? ZEND_NORMALIZE_BOOL ( ??? n )

...

Liste de paramètres

n

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_NAMED_FUNCTION | Niveau supérieur | ZEND_NUM_ARGS


ZEND_NUM_ARGS

ZEND_NUM_ARGS -- ...

Description

#include <zend_API.h>

int ZEND_NUM_ARGS ( void )

ZEND_NUM_ARGS() returns the number of arguments that have been passed by the caller of the current PHP function.

Valeurs de retour

Number of arguments passed to the current PHP function.

Précédent | Sommaire | Suivant
ZEND_NORMALIZE_BOOL | Niveau supérieur | ZEND_PUTC


ZEND_PUTC

ZEND_PUTC -- Write a single character to the default output stream

Description

#include <zend.h>

int ZEND_PUTC ( char c )

Writes a single character c to the default output stream.

Liste de paramètres

c

Output character

Valeurs de retour

Number of characters written or -1 on errors.

Voir aussi

See also ZEND_PUTS() and ZEND_WRITE().

Précédent | Sommaire | Suivant
ZEND_NUM_ARGS | Niveau supérieur | ZEND_PUTS


ZEND_PUTS

ZEND_PUTS -- Write a string to the default output stream

Description

#include <zend.h>

int ZEND_PUTS ( char * str )

Writes the zero terminated string str to the default output stream.

Liste de paramètres

str

Output string

Valeurs de retour

Number of characters written or -1 on errors.

Voir aussi

See also ZEND_PUTC() and ZEND_WRITE().

Précédent | Sommaire | Suivant
ZEND_PUTC | Niveau supérieur | ZEND_REGISTER_RESOURCE


ZEND_REGISTER_RESOURCE

ZEND_REGISTER_RESOURCE -- ...

Description

#include <zend_list.h>

??? ZEND_REGISTER_RESOURCE ( ??? rsrc_result, ??? rsrc_pointer, ??? rsrc_type )

...

Liste de paramètres

rsrc_result

...

rsrc_pointer

...

rsrc_type

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_PUTS | Niveau supérieur | ZEND_RSRC_DTOR_FUNC


ZEND_RSRC_DTOR_FUNC

ZEND_RSRC_DTOR_FUNC -- ...

Description

#include <zend_list.h>

??? ZEND_RSRC_DTOR_FUNC ( ??? name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_REGISTER_RESOURCE | Niveau supérieur | ZEND_SET_GLOBAL_VAR_WITH_LENGTH


ZEND_SET_GLOBAL_VAR

ZEND_SET_GLOBAL_VAR -- ...

Description

#include <zend_API.h>

??? ZEND_SET_GLOBAL_VAR ( ??? name, ??? var )

...

Liste de paramètres

name

...

var

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_SET_GLOBAL_VAR_WITH_LENGTH | Niveau supérieur | ZEND_SET_SYMBOL_WITH_LENGTH


ZEND_SET_GLOBAL_VAR_WITH_LENGTH

ZEND_SET_GLOBAL_VAR_WITH_LENGTH -- ...

Description

#include <zend_API.h>

??? ZEND_SET_GLOBAL_VAR_WITH_LENGTH ( ??? name, ??? name_length, ??? var, ??? _refcount, ??? _is_ref )

...

Liste de paramètres

name

...

name_length

...

var

...

_refcount

...

_is_ref

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_RSRC_DTOR_FUNC | Niveau supérieur | ZEND_SET_GLOBAL_VAR


ZEND_SET_SYMBOL

ZEND_SET_SYMBOL -- ...

Description

#include <zend_API.h>

??? ZEND_SET_SYMBOL ( ??? symtable, ??? name, ??? var )

...

Liste de paramètres

symtable

...

name

...

var

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_SET_SYMBOL_WITH_LENGTH | Niveau supérieur | ZEND_STRL


ZEND_SET_SYMBOL_WITH_LENGTH

ZEND_SET_SYMBOL_WITH_LENGTH -- ...

Description

#include <zend_API.h>

??? ZEND_SET_SYMBOL_WITH_LENGTH ( ??? symtable, ??? name, ??? name_length, ??? var, ??? _refcount, ??? _is_ref )

...

Liste de paramètres

symtable

...

name

...

name_length

...

var

...

_refcount

...

_is_ref

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_SET_GLOBAL_VAR | Niveau supérieur | ZEND_SET_SYMBOL


ZEND_STRL

ZEND_STRL -- Pass string pointer and length in one operation

Description

#include <zend.h>

void ZEND_STRL ( char * str )

This is a convenience macro that can be used when passing a static string to a function that requires a string length argument together with a string. This saves duplicating the static string in the sourcecode or adding an extra variable for it.

Exemple 46-1. ZEND_STRL() example

write(0, ZEND_STRL("Hello World!"));
/* same as
char str[] = "Hello World!";
write(0, str, sizeof(str)-1);
*/

Liste de paramètres

str

Pointer to a zero terminated string.

Précédent | Sommaire | Suivant
ZEND_SET_SYMBOL | Niveau supérieur | ZEND_STRS


ZEND_STRS

ZEND_STRS -- Pass string pointer and buffer size in one operation

Description

#include <zend.h>

void ZEND_STRS ( char * str )

This is a convenience macro that can be used when passing a static string to a function that requires a buffer length argument together with a string. This saves duplicating the static string in the sourcecode or adding an extra variable for it.

Liste de paramètres

str

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_STRL | Niveau supérieur | ZEND_TRUTH


ZEND_TRUTH

ZEND_TRUTH -- Cast a value to zend_bool

Description

#include <zend.h>

zend_bool ZEND_TRUTH ( mixed x )

A simple conversion macro, actually defined as ((x) ? 1 : 0)

Liste de paramètres

x

Value to cast

Valeurs de retour

1 if x was considered TRUE, else 0

Précédent | Sommaire | Suivant
ZEND_STRS | Niveau supérieur | ZEND_U_CONVERTER


ZEND_U_CONVERTER

ZEND_U_CONVERTER -- ...

Description

#include <zend_unicode.h>

??? ZEND_U_CONVERTER ( ??? c )

...

Liste de paramètres

c

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_TRUTH | Niveau supérieur | ZEND_U_EQUAL


ZEND_U_EQUAL

ZEND_U_EQUAL -- ...

Description

#include <zend.h>

??? ZEND_U_EQUAL ( ??? type, ??? ustr, ??? ulen, ??? str, ??? slen )

...

Liste de paramètres

type

...

ustr

...

ulen

...

str

...

slen

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_U_CONVERTER | Niveau supérieur | ZEND_U_SET_SYMBOL_WITH_LENGTH


ZEND_U_SET_SYMBOL_WITH_LENGTH

ZEND_U_SET_SYMBOL_WITH_LENGTH -- ...

Description

#include <zend_API.h>

??? ZEND_U_SET_SYMBOL_WITH_LENGTH ( ??? symtable, ??? type, ??? name, ??? name_length, ??? var, ??? _refcount, ??? _is_ref )

...

Liste de paramètres

symtable

...

type

...

name

...

name_length

...

var

...

_refcount

...

_is_ref

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_U_EQUAL | Niveau supérieur | ZEND_UV


ZEND_UV

ZEND_UV -- ...

Description

#include <zend.h>

??? ZEND_UV ( ??? name )

...

Liste de paramètres

name

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_U_SET_SYMBOL_WITH_LENGTH | Niveau supérieur | ZEND_VERIFY_RESOURCE


ZEND_VERIFY_RESOURCE

ZEND_VERIFY_RESOURCE -- ...

Description

#include <zend_list.h>

??? ZEND_VERIFY_RESOURCE ( ??? rsrc )

...

Liste de paramètres

rsrc

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_UV | Niveau supérieur | ZEND_WRITE


ZEND_WRITE

ZEND_WRITE -- Write character buffer to the default output stream

Description

#include <zend.h>

int ZEND_WRITE ( char * str, int str_len )

Write str_len bytes from the buffer pointed to by str to the default output stream.

Liste de paramètres

str

Pointer to character buffer

str_len

Buffer length

Valeurs de retour

Number of characters written or -1 on errors.

Voir aussi

See also ZEND_PUTC() and ZEND_PUTS().

Précédent | Sommaire | Suivant
ZEND_VERIFY_RESOURCE | Niveau supérieur | ZEND_WRONG_PARAM_COUNT_WITH_RETVAL


ZEND_WRONG_PARAM_COUNT

ZEND_WRONG_PARAM_COUNT -- ...

Description

#include <zend_API.h>

??? ZEND_WRONG_PARAM_COUNT ( ??? )

...

Liste de paramètres

...

Valeurs de retour

...

Précédent | Sommaire | Suivant
ZEND_WRONG_PARAM_COUNT_WITH_RETVAL | Niveau supérieur | TSRM API


API Function and Macro reference (work in progress)

Table des matières
add_assoc_bool_ex -- Add a bool value to an assoc array with binary safe key
add_assoc_bool -- Add a bool value to an assoc array
add_assoc_double_ex -- Add a double value to an assoc array with binary safe key
add_assoc_double -- Add a double value to an assoc array
add_assoc_function -- Add a function pointer to an assoc array
add_assoc_long_ex -- Add a long value to an assoc array with binary safe key
add_assoc_long -- Add a long value to an assoc array
add_assoc_null_ex -- Add a null value to an assoc array with binary safe key
add_assoc_null -- Add a null value to an assoc array
add_assoc_resource_ex -- Add a resource value to an assoc array with binary safe key
add_assoc_resource -- Add a resource value to an assoc array
add_assoc_string_ex -- Add a string value to an assoc array with binary safe key
add_assoc_string -- Add a string value to an assoc array
add_assoc_stringl_ex -- Add a binary safe string value to an assoc array with binary safe key
add_assoc_stringl -- Add a binary safe string value to an assoc array
add_assoc_unicode_ex -- Add a unicode_string value to an assoc array with binary safe key
add_assoc_unicode -- Add a binary safe unicode_string value to an assoc array with binary safe key
add_assoc_unicodel_ex -- Add a binary safe unicode_string value to an assoc array with binary safe key
add_assoc_unicodel -- Add a binary safe unicode_string value to an assoc array
add_assoc_unset -- ...
add_assoc_zval_ex -- Add a zval value to an assoc array with binary safe key
add_assoc_zval -- Add a zval value to an assoc array
add_get_assoc_string_ex -- ...
add_get_assoc_string -- ...
add_get_assoc_stringl_ex -- ...
add_get_assoc_stringl -- ...
add_get_index_binary -- ...
add_get_index_binaryl -- ...
add_get_index_double -- ...
add_get_index_long -- ...
add_get_index_string -- ...
add_get_index_stringl -- ...
add_get_index_unicode -- ...
add_get_index_unicodel -- ...
add_index_binary -- Add binary_string value to assoc array using numeric index
add_index_binaryl -- Add binary safe binary_string value to assoc array using numeric index
add_index_bool -- Add bool value to assoc array using numeric index
add_index_double -- Add double value to assoc array using numeric index
add_index_long -- Add long value to assoc array using numeric index
add_index_null -- Add null value to assoc array using numeric index
add_index_resource -- Add resource value to assoc array using numeric index
add_index_string -- Add string value to assoc array using numeric index
add_index_stringl -- Add binary safe string value to assoc array using numeric index
add_index_unicode -- Add unicode value to assoc array using numeric index
add_index_unicodel -- Add binary safe unicode value to assoc array using numeric index
add_index_unset -- Add unset value to assoc array using numeric index
add_index_zval -- Add zval value to assoc array using numeric index
add_method -- ...
add_next_index_binary -- Add binary_string value to assoc array using next free numeric index
add_next_index_binaryl -- Add binary safe binary_string value to assoc array using next free numeric index
add_next_index_bool -- Add bool value to assoc array using next free numeric index
add_next_index_double -- Add double value to assoc array using next free numeric index
add_next_index_long -- Add long value to assoc array using next free numeric index
add_next_index_null -- Add null value to assoc array using next free numeric index
add_next_index_resource -- Add resource value to assoc array using next free numeric index
add_next_index_string -- Add string value to assoc array using next free numeric index
add_next_index_stringl -- Add binary safe string value to assoc array using next free numeric index
add_next_index_unicode -- Add unicode value to assoc array using next free numeric index
add_next_index_unicodel -- Add binary safe unicode value to assoc array using next free numeric index
add_next_index_unset -- Add unset value to assoc array using next free numeric index
add_next_index_zval -- Add zval value to assoc array using next free numeric index
add_property_ascii_string_ex -- ...
add_property_ascii_string -- ...
add_property_ascii_stringl_ex -- ...
add_property_ascii_stringl -- ...
add_property_bool_ex -- ...
add_property_bool -- ...
add_property_double_ex -- ...
add_property_double -- ...
add_property_long_ex -- ...
add_property_long -- ...
add_property_null_ex -- ...
add_property_null -- ...
add_property_resource_ex -- ...
add_property_resource -- ...
add_property_rt_string_ex -- ...
add_property_rt_string -- ...
add_property_rt_stringl_ex -- ...
add_property_rt_stringl -- ...
add_property_string_ex -- ...
add_property_string -- ...
add_property_stringl_ex -- ...
add_property_stringl -- ...
add_property_unicode_ex -- ...
add_property_unicode -- ...
add_property_unicodel_ex -- ...
add_property_unicodel -- ...
add_property_unset -- ...
add_property_zval_ex -- ...
add_property_zval -- ...
add_u_assoc_zval_ex -- ...
add_u_assoc_zval -- ...
array_init -- ...
call_user_function_ex -- ...
call_user_function -- ...
compile_file -- ...
compile_filename -- ...
compile_string -- ...
destroy_op_array -- ...
destroy_zend_class -- ...
destroy_zend_function -- ...
display_ini_entries -- ...
do_bind_class -- ...
do_bind_function -- ...
do_bind_inherited_class -- ...
estrndup_rel -- ...
estrndup -- ...
eustrdup -- ...
eustrndup_rel -- ...
eustrndup -- ...
execute_internal -- ...
execute -- ...
free_estring -- ...
full_mem_check -- ...
function_add_ref -- ...
get_active_class_name -- ...
get_active_function_name -- ...
get_binary_op -- ...
get_unary_op -- ...
get_zend_version -- Get Zend Engine version string
highlight_file -- ...
highlight_string -- ...
init_op_array -- ...
lex_scan -- ...
mem_block_check -- ...
object_and_properties_init -- ...
object_init_ex -- ...
object_init -- ...
open_file_for_scanning -- ...
register_list_destructors -- ...
shutdown_memory_manager -- ...
start_memory_manager -- ...
zend_alter_ini_entry -- ...
zend_auto_global_disable_jit -- ...
zend_bailout -- ...
zend_call_function -- ...
zend_call_method_with_0_params -- ...
zend_call_method_with_1_params -- ...
zend_call_method_with_2_params -- ...
zend_call_method -- ...
zend_case_fold_string -- ...
zend_check_magic_method_implementation -- ...
zend_check_private -- ...
zend_check_property_access -- ...
zend_check_protected -- ...
zend_class_implements -- ...
zend_cleanup_class_data -- ...
zend_cleanup_function_data -- ...
zend_clear_exception -- ...
zend_cmp_unicode_and_literal -- ...
zend_cmp_unicode_and_string -- ...
zend_convert_encodings -- ...
zend_convert_from_unicode -- ...
zend_convert_scanner_output -- ...
zend_convert_to_unicode -- ...
zend_copy_ini_directives -- ...
zend_copy_parameters_array -- ...
zend_declare_class_constant_bool -- ...
zend_declare_class_constant_double -- ...
zend_declare_class_constant_long -- ...
zend_declare_class_constant_string -- ...
zend_declare_class_constant_stringl -- ...
zend_declare_class_constant -- ...
zend_declare_property_bool -- ...
zend_declare_property_double -- ...
zend_declare_property_ex -- ...
zend_declare_property_long -- ...
zend_declare_property_null -- ...
zend_declare_property_string -- ...
zend_declare_property_stringl -- ...
zend_declare_property -- ...
zend_delete_global_variable -- ...
zend_destroy_file_handle -- ...
zend_disable_class -- ...
zend_disable_function -- ...
zend_do_fcall -- ...
zend_do_implement_interface -- ...
zend_do_inherit_interfaces -- ...
zend_do_inheritance -- ...
zend_error -- Generate error message and trigger error handling
zend_eval_string_ex -- ...
zend_eval_string -- ...
zend_exception_error -- ...
zend_exception_get_default -- ...
zend_execute_scripts -- ...
zend_fetch_class -- ...
zend_fetch_debug_backtrace -- ...
zend_fetch_list_dtor_id -- ...
zend_fetch_resource -- ...
zend_file_handle_dtor -- ...
zend_function_dtor -- ...
zend_get_class_entry -- ...
zend_get_compiled_filename -- ...
zend_get_compiled_lineno -- ...
zend_get_compiled_script_encoding -- ...
zend_get_compiled_variable_name -- ...
zend_get_compiled_variable_value -- ...
zend_get_configuration_directive -- ...
zend_get_constant -- ...
zend_get_error_exception -- ...
zend_get_executed_filename -- ...
zend_get_executed_lineno -- ...
zend_get_hash_value -- ...
zend_get_module_started -- ...
zend_get_module_version -- ...
zend_get_object_classname -- ...
zend_get_parameters_array_ex -- ...
zend_get_parameters_array -- ...
zend_get_parameters_ex -- ...
zend_get_parameters -- ...
zend_get_scanned_file_offset -- ...
zend_get_std_object_handlers -- ...
zend_get_unified_string_type -- ...
zend_get_user_opcode_handler -- ...
zend_get_zval_ptr_ptr -- ...
zend_get_zval_ptr -- ...
zend_hash_add_empty_element -- ...
zend_hash_add -- ...
zend_hash_apply_with_argument -- ...
zend_hash_apply_with_arguments -- ...
zend_hash_apply -- ...
zend_hash_clean -- ...
zend_hash_compare -- ...
zend_hash_copy -- ...
zend_hash_del_key_or_index -- ...
zend_hash_del -- ...
zend_hash_destroy -- ...
zend_hash_exists -- ...
zend_hash_find -- ...
zend_hash_func -- ...
zend_hash_get_current_data_ex -- ...
zend_hash_get_current_data -- ...
zend_hash_get_current_key_ex -- ...
zend_hash_get_current_key_type_ex -- ...
zend_hash_get_current_key_type -- ...
zend_hash_get_current_key -- ...
zend_hash_graceful_destroy -- ...
zend_hash_graceful_reverse_destroy -- ...
zend_hash_index_del -- ...
zend_hash_index_exists -- ...
zend_hash_index_find -- ...
zend_hash_index_update -- ...
zend_hash_init_ex -- ...
zend_hash_init -- ...
zend_hash_internal_pointer_end_ex -- ...
zend_hash_internal_pointer_end -- ...
zend_hash_internal_pointer_reset_ex -- ...
zend_hash_internal_pointer_reset -- ...
zend_hash_merge_ex -- ...
zend_hash_merge -- ...
zend_hash_minmax -- ...
zend_hash_move_backwards_ex -- ...
zend_hash_move_backwards -- ...
zend_hash_move_forward_ex -- ...
zend_hash_move_forward -- ...
zend_hash_next_free_element -- ...
zend_hash_next_index_insert -- ...
zend_hash_num_elements -- ...
zend_hash_quick_add -- ...
zend_hash_quick_exists -- ...
zend_hash_quick_find -- ...
zend_hash_quick_update -- ...
zend_hash_rehash -- ...
zend_hash_reverse_apply -- ...
zend_hash_sort -- ...
zend_hash_update_current_key_ex -- ...
zend_hash_update_current_key -- ...
zend_hash_update -- ...
zend_highlight -- ...
zend_html_putc -- ...
zend_html_puts -- ...
zend_ini_deactivate -- ...
zend_ini_double -- ...
zend_ini_global_shutdown -- ...
zend_ini_long -- ...
zend_ini_refresh_caches -- ...
zend_ini_register_displayer -- ...
zend_ini_shutdown -- ...
zend_ini_sort_entries -- ...
zend_ini_startup -- ...
zend_ini_string -- ...
zend_initialize_class_data -- ...
zend_is_auto_global -- ...
zend_is_callable_ex -- ...
zend_is_callable -- ...
zend_is_compiling -- ...
zend_is_executing -- ...
zend_is_true -- ...
zend_is_valid_identifier -- ...
zend_list_addref -- ...
zend_list_delete -- ...
zend_list_find -- ...
zend_list_insert -- ...
zend_lookup_class -- ...
zend_make_callable -- ...
zend_make_compiled_string_description -- ...
zend_make_printable_zval -- ...
zend_make_string_zval -- ...
zend_make_unicode_zval -- ...
zend_mangle_property_name -- ...
zend_merge_properties -- ...
zend_message_dispatcher -- ...
zend_normalize_identifier -- ...
zend_object_create_proxy -- ...
zend_object_store_ctor_failed -- ...
zend_object_store_get_object -- ...
zend_object_store_set_object -- ...
zend_objects_clone_members -- ...
zend_objects_clone_obj -- ...
zend_objects_destroy_object -- ...
zend_objects_free_object_storage -- ...
zend_objects_get_address -- ...
zend_objects_new -- ...
zend_objects_store_add_ref -- ...
zend_objects_store_call_destructors -- ...
zend_objects_store_clone_obj -- ...
zend_objects_store_del_ref -- ...
zend_objects_store_destroy -- ...
zend_objects_store_free_object_storage -- ...
zend_objects_store_init -- ...
zend_objects_store_mark_destructed -- ...
zend_objects_store_put -- ...
zend_output_debug_string -- ...
zend_parse_ini_file -- ...
zend_parse_method_parameters_ex -- ...
zend_parse_method_parameters -- ...
zend_parse_parameters_ex -- ...
zend_parse_parameters -- ...
zend_prepare_scanner_converters -- ...
zend_print_flat_zval_r -- ...
zend_print_variable -- ...
zend_print_zval_ex -- ...
zend_print_zval_r_ex -- ...
zend_print_zval_r -- ...
zend_print_zval -- ...
zend_qsort -- ...
zend_read_property -- ...
zend_read_static_property -- ...
zend_register_auto_global -- ...
zend_register_constant -- ...
zend_register_default_classes -- ...
zend_register_double_constant -- ...
zend_register_functions -- ...
zend_register_ini_entries -- ...
zend_register_interfaces -- ...
zend_register_internal_class_ex -- ...
zend_register_internal_class -- ...
zend_register_internal_interface -- ...
zend_register_internal_module -- ...
zend_register_list_destructors_ex -- ...
zend_register_list_destructors -- ...
zend_register_long_constant -- ...
zend_register_module_ex -- ...
zend_register_module -- ...
zend_register_resource -- ...
zend_register_string_constant -- ...
zend_register_stringl_constant -- ...
zend_reset_all_cv -- ...
zend_reset_locale_deps -- ...
zend_restore_compiled_filename -- ...
zend_restore_compiled_script_encoding -- ...
zend_restore_ini_entry -- ...
zend_rsrc_list_get_rsrc_type -- ...
zend_set_compiled_filename -- ...
zend_set_compiled_script_encoding -- ...
zend_set_memory_limit -- ...
zend_set_timeout -- ...
zend_set_user_opcode_handler -- ...
zend_startup_module_ex -- ...
zend_startup_module -- ...
zend_startup_modules -- ...
zend_std_call_user_call -- ...
zend_std_cast_object_tostring -- ...
zend_std_get_static_property -- ...
zend_std_unset_static_property -- ...
zend_stream_close -- ...
zend_stream_ferror -- ...
zend_stream_fixup -- ...
zend_stream_ftell -- ...
zend_stream_getc -- ...
zend_stream_open -- ...
zend_stream_read -- ...
zend_strip -- ...
zend_strndup -- ...
zend_strtod -- ...
zend_symtable_del -- ...
zend_symtable_exists -- ...
zend_symtable_find -- ...
zend_symtable_update_current_key -- ...
zend_symtable_update -- ...
zend_throw_exception_object -- ...
zend_timeout -- ...
zend_u_declare_property_ex -- ...
zend_u_declare_property -- ...
zend_u_delete_global_variable -- ...
zend_u_eval_string_ex -- ...
zend_u_eval_string -- ...
zend_u_fetch_class -- ...
zend_u_get_constant -- ...
zend_u_get_hash_value -- ...
zend_u_hash_add_empty_element -- ...
zend_u_hash_add -- ...
zend_u_hash_del_key_or_index -- ...
zend_u_hash_del -- ...
zend_u_hash_exists -- ...
zend_u_hash_find -- ...
zend_u_hash_func -- ...
zend_u_hash_init_ex -- ...
zend_u_hash_init -- ...
zend_u_hash_quick_add -- ...
zend_u_hash_quick_exists -- ...
zend_u_hash_quick_find -- ...
zend_u_hash_quick_update -- ...
zend_u_hash_update -- ...
zend_u_is_auto_global -- ...
zend_u_lookup_class_ex -- ...
zend_u_lookup_class -- ...
zend_u_mangle_property_name -- ...
zend_u_register_constant -- ...
zend_u_symtable_del -- ...
zend_u_symtable_exists -- ...
zend_u_symtable_find -- ...
zend_u_symtable_update_current_key -- ...
zend_u_symtable_update -- ...
zend_u_unmangle_property_name -- ...
zend_unmangle_property_name -- ...
zend_unregister_functions -- ...
zend_unregister_ini_entries -- ...
zend_unset_timeout -- ...
zend_update_class_constants -- ...
zend_update_property_ascii_string -- ...
zend_update_property_ascii_stringl -- ...
zend_update_property_bool -- ...
zend_update_property_double -- ...
zend_update_property_long -- ...
zend_update_property_null -- ...
zend_update_property_rt_string -- ...
zend_update_property_rt_stringl -- ...
zend_update_property_string -- ...
zend_update_property_stringl -- ...
zend_update_property_unicode -- ...
zend_update_property_unicodel -- ...
zend_update_property -- ...
zend_update_static_property_ascii_string -- ...
zend_update_static_property_ascii_stringl -- ...
zend_update_static_property_bool -- ...
zend_update_static_property_double -- ...
zend_update_static_property_long -- ...
zend_update_static_property_null -- ...
zend_update_static_property_rt_string -- ...
zend_update_static_property_rt_stringl -- ...
zend_update_static_property_string -- ...
zend_update_static_property_stringl -- ...
zend_update_static_property_unicode -- ...
zend_update_static_property_unicodel -- ...
zend_update_static_property -- ...
zend_ustrndup -- ...
zend_wrong_param_count -- Generate standard error message for wrong parameter count in function or method call
zend_zval_type_name -- Returns the PHP type name for a given zval
zval_add_ref -- ...
zval_internal_dtor -- ...
zval_internal_ptr_dtor -- ...
zval_ptr_dtor -- ...
zval_string_to_unicode_ex -- ...
zval_string_to_unicode -- ...
zval_unicode_to_string -- ...
zval_update_constant -- ...
DISPLAY_INI_ENTRIES -- ...
INI_BOOL -- ...
INI_FLT -- ...
INI_INT -- ...
INI_ORIG_BOOL -- ...
INI_ORIG_FLT -- ...
INI_ORIG_INT -- ...
INI_ORIG_STR -- ...
INI_STR -- ...
REGISTER_DOUBLE_CONSTANT -- ...
REGISTER_INI_BOOLEAN -- ...
REGISTER_INI_DISPLAYER -- ...
REGISTER_INI_ENTRIES -- ...
REGISTER_LONG_CONSTANT -- ...
REGISTER_MAIN_DOUBLE_CONSTANT -- ...
REGISTER_MAIN_LONG_CONSTANT -- ...
REGISTER_MAIN_STRING_CONSTANT -- ...
REGISTER_MAIN_STRINGL_CONSTANT -- ...
REGISTER_STRING_CONSTANT -- ...
REGISTER_STRINGL_CONSTANT -- ...
RETURN_ASCII_STRING -- ...
RETURN_ASCII_STRINGL -- ...
RETURN_BINARY -- ...
RETURN_BINARYL -- ...
RETURN_BOOL -- Return a bool value from a function
RETURN_DOUBLE -- Return a double value from a function
RETURN_EMPTY_BINARY -- ...
RETURN_EMPTY_STRING -- Return an empty string value from a function
RETURN_EMPTY_UNICODE -- ...
RETURN_LONG -- Return a long value from a function
RETURN_NULL -- Return a null value from a function
RETURN_RESOURCE -- Return a resource from a function
RETURN_RT_STRING -- ...
RETURN_RT_STRINGL -- ...
RETURN_STRING -- ...
RETURN_STRINGL -- ...
RETURN_TEXT -- ...
RETURN_TEXTL -- ...
RETURN_U_STRING -- ...
RETURN_U_STRINGL -- ...
RETURN_UNICODE -- ...
RETURN_UNICODEL -- ...
RETURN_ZVAL -- Return a zval value from a function
UNREGISTER_INI_ENTRIES -- ...
Z_ARRVAL_P -- ...
Z_ARRVAL_PP -- ...
Z_ARRVAL -- ...
Z_BINLEN_P -- ...
Z_BINLEN_PP -- ...
Z_BINLEN -- ...
Z_BINVAL_P -- ...
Z_BINVAL_PP -- ...
Z_BINVAL -- ...
Z_BVAL_P -- Dereference a zval pointer and return its lval element as bool
Z_BVAL_PP -- Dereference a pointer to a zval pointer and return its lval element as bool
Z_BVAL -- Return a zval lval element as bool
Z_DBG -- ...
Z_DVAL_P -- Dereference a zval pointer and return its dval element
Z_DVAL_PP -- Dereference a pointer to a zval pointer and return its dval element
Z_DVAL -- Return the dval element of a zval
Z_LVAL_P -- ...
Z_LVAL_PP -- Dereference a pointer to a zval pointer and return its lval element
Z_LVAL -- ...
Z_OBJ_CLASS_NAME_P -- ...
Z_OBJ_HANDLE_P -- ...
Z_OBJ_HANDLE_PP -- ...
Z_OBJ_HANDLE -- ...
Z_OBJ_HANDLER_P -- ...
Z_OBJ_HANDLER_PP -- ...
Z_OBJ_HANDLER -- ...
Z_OBJ_HT_P -- ...
Z_OBJ_HT_PP -- ...
Z_OBJ_HT -- ...
Z_OBJCE_P -- ...
Z_OBJCE_PP -- ...
Z_OBJCE -- ...
Z_OBJPROP_P -- ...
Z_OBJPROP_PP -- ...
Z_OBJPROP -- ...
Z_OBJVAL_P -- ...
Z_OBJVAL_PP -- ...
Z_OBJVAL -- ...
Z_RESVAL_P -- ...
Z_RESVAL_PP -- ...
Z_RESVAL -- ...
Z_STRLEN_P -- ...
Z_STRLEN_PP -- ...
Z_STRLEN -- ...
Z_STRVAL_P -- ...
Z_STRVAL_PP -- ...
Z_STRVAL -- ...
Z_TYPE_P -- Get type field from zval pointer
Z_TYPE_PP -- Get type field from zval pointer pointer
Z_TYPE -- Get the type field of a zval
Z_UNILEN_P -- ...
Z_UNILEN_PP -- ...
Z_UNILEN -- ...
Z_UNIVAL_P -- ...
Z_UNIVAL_PP -- ...
Z_UNIVAL -- ...
Z_USTRCPLEN_P -- ...
Z_USTRCPLEN_PP -- ...
Z_USTRCPLEN -- ...
Z_USTRLEN_P -- ...
Z_USTRLEN_PP -- ...
Z_USTRLEN -- ...
Z_USTRVAL_P -- ...
Z_USTRVAL_PP -- ...
Z_USTRVAL -- ...
ZEND_ABSTRACT_ME -- ...
ZEND_ARG_ARRAY_INFO -- ...
ZEND_ARG_INFO -- ...
ZEND_ARG_OBJ_INFO -- ...
ZEND_ARG_PASS_INFO -- ...
ZEND_BEGIN_ARG_INFO_EX -- ...
ZEND_BEGIN_ARG_INFO -- ...
ZEND_BEGIN_MODULE_GLOBALS -- ...
ZEND_COLL_RESULT -- ...
ZEND_DECLARE_MODULE_GLOBALS -- ...
ZEND_DEFINE_PROPERTY -- ...
ZEND_END_ARG_INFO -- ...
ZEND_END_MODULE_GLOBALS -- ...
ZEND_EXTERN_MODULE_GLOBALS -- ...
ZEND_FALIAS -- ...
ZEND_FE -- ...
ZEND_FENTRY -- ...
ZEND_FETCH_RESOURCE2 -- ...
ZEND_FETCH_RESOURCE -- ...
ZEND_FN_SCOPE_NAME -- ...
ZEND_FN -- ...
ZEND_FUNCTION -- ...
ZEND_GET_MODULE -- ...
ZEND_GET_RESOURCE_TYPE_ID -- ...
ZEND_INI_BEGIN -- ...
ZEND_INI_DISP -- ...
ZEND_INI_END -- ...
ZEND_INI_ENTRY_EX -- ...
ZEND_INI_ENTRY1_EX -- ...
ZEND_INI_ENTRY1 -- ...
ZEND_INI_ENTRY2_EX -- ...
ZEND_INI_ENTRY2 -- ...
ZEND_INI_ENTRY3_EX -- ...
ZEND_INI_ENTRY3 -- ...
ZEND_INI_ENTRY -- ...
ZEND_INI_MH -- ...
ZEND_INIT_MODULE_GLOBALS -- ...
ZEND_INIT_SYMTABLE_EX -- ...
ZEND_INIT_SYMTABLE -- ...
ZEND_LOG_XOR -- ...
ZEND_MALIAS -- ...
ZEND_ME_MAPPING -- ...
ZEND_ME -- ...
ZEND_METHOD -- ...
ZEND_MOD_CONFLICTS_EX -- ...
ZEND_MOD_CONFLICTS -- ...
ZEND_MOD_OPTIONAL_EX -- ...
ZEND_MOD_OPTIONAL -- ...
ZEND_MOD_REQUIRED_EX -- Create a full dependency entry for the required version of an extension
ZEND_MOD_REQUIRED -- Create a simple dependency entry for a required extension
ZEND_MODULE_ACTIVATE_D -- ...
ZEND_MODULE_ACTIVATE_N -- ...
ZEND_MODULE_DEACTIVATE_D -- ...
ZEND_MODULE_DEACTIVATE_N -- ...
ZEND_MODULE_INFO_D -- ...
ZEND_MODULE_INFO_N -- ...
ZEND_MODULE_POST_ZEND_DEACTIVATE_D -- ...
ZEND_MODULE_POST_ZEND_DEACTIVATE_N -- ...
ZEND_MODULE_SHUTDOWN_D -- ...
ZEND_MODULE_SHUTDOWN_N -- ...
ZEND_MODULE_STARTUP_D -- ...
ZEND_MODULE_STARTUP_N -- ...
ZEND_NAMED_FE -- ...
ZEND_NAMED_FUNCTION -- ...
ZEND_NORMALIZE_BOOL -- ...
ZEND_NUM_ARGS -- ...
ZEND_PUTC -- Write a single character to the default output stream
ZEND_PUTS -- Write a string to the default output stream
ZEND_REGISTER_RESOURCE -- ...
ZEND_RSRC_DTOR_FUNC -- ...
ZEND_SET_GLOBAL_VAR_WITH_LENGTH -- ...
ZEND_SET_GLOBAL_VAR -- ...
ZEND_SET_SYMBOL_WITH_LENGTH -- ...
ZEND_SET_SYMBOL -- ...
ZEND_STRL -- Pass string pointer and length in one operation
ZEND_STRS -- Pass string pointer and buffer size in one operation
ZEND_TRUTH -- Cast a value to zend_bool
ZEND_U_CONVERTER -- ...
ZEND_U_EQUAL -- ...
ZEND_U_SET_SYMBOL_WITH_LENGTH -- ...
ZEND_UV -- ...
ZEND_VERIFY_RESOURCE -- ...
ZEND_WRITE -- Write character buffer to the default output stream
ZEND_WRONG_PARAM_COUNT_WITH_RETVAL -- Generate standard error message and return custom value
ZEND_WRONG_PARAM_COUNT -- ...

Précédent | Sommaire | Suivant
API Macros | Niveau supérieur | add_assoc_bool_ex